在Linux服务器上设置访问控制通常涉及以下几个方面:
用户和组管理:
sudo useradd username
sudo groupadd groupname
sudo usermod -aG groupname username
权限管理:
sudo chmod 755 filename # 设置读、写、执行权限给所有者,读、执行权限给组和其他用户
sudo chmod 644 filename # 设置读、写权限给所有者,读权限给组和其他用户
sudo chmod 755 directory # 设置读、写、执行权限给所有者,读、执行权限给组和其他用户
sudo chmod 775 directory # 设置读、写、执行权限给所有者,读、写、执行权限给组和其他用户
chmod
的符号表示法:
r
:读权限w
:写权限x
:执行权限-
:无权限u
:用户(所有者)g
:组o
:其他用户SELinux和AppArmor:
sudo yum install policycoreutils-python-utils
sudo setenforce 1 # 开启SELinux
sudo semanage fcontext -a -t httpd_sys_content_t "/var/www(/.*)?"
sudo restorecon -Rv /var/www
sudo apt-get install apparmor apparmor-utils
sudo aa-complain /etc/apparmor.d/usr.sbin.httpd
防火墙设置:
iptables
:sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT # 允许HTTP流量
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT # 允许HTTPS流量
sudo service iptables save
ufw
:sudo ufw allow 80/tcp # 允许HTTP流量
sudo ufw allow 443/tcp # 允许HTTPS流量
sudo ufw enable
SSH访问控制:
sudo nano /etc/ssh/sshd_config
AllowUsers username1 username2
PasswordAuthentication no
sudo systemctl restart sshd
使用访问控制列表(ACL):
acl
软件包:sudo yum install acl
sudo setfacl -m u:username:--- filename
sudo setfacl -m u:groupname:--- filename
getfacl filename
通过以上步骤,你可以在Linux服务器上设置基本的访问控制。根据具体需求,你可能还需要进行更复杂的配置。