服务器运维中ACL(访问控制列表)的设置指南
ACL是一种精细化的权限管理机制,可突破传统Unix权限(所有者/组/其他)的限制,针对用户、组或IP地址等对象设置特定访问权限,广泛应用于文件系统和网络资源的访问控制。以下是分场景的详细设置步骤及注意事项:
cat /proc/filesystems | grep acl,若输出包含acl则表示内核支持。mount -o remount,acl /dev/sda1(/dev/sda1为目标分区)重新挂载分区,重启后失效。/etc/fstab文件,在对应分区挂载选项中添加acl(如/dev/sda1 / ext4 defaults,acl 1 1),保存后执行mount -o remount /或重启系统使设置生效。setfacl -m u:用户名:权限 文件/目录(如sudo setfacl -m u:tester:rw /data/file.txt,授予用户tester读写权限)。setfacl -m g:组名:权限 文件/目录(如sudo setfacl -m g:devgroup:rwx /project,授予devgroup组读写执行权限)。setfacl -d -m u:用户名:权限 文件/目录(如sudo setfacl -d -m u:tester:rx /project,使/project下新建文件自动继承tester的读执行权限)。-R参数,将权限应用到目录及所有子文件/子目录(如sudo setfacl -R -m u:tester:rwx /project)。setfacl -x u:用户名 文件/目录(如sudo setfacl -x u:tester /data/file.txt,删除tester的ACL权限);用setfacl -b 文件/目录删除所有ACL规则。getfacl 文件/目录(如getfacl /project),输出中带+号表示该文件/目录有ACL规则。mask决定了用户/组的实际权限(用户/组权限与mask进行“与”运算),可通过setfacl -m m:权限 文件/目录修改(如setfacl -m m:rx /project,即使组权限为rwx,实际有效权限为r-x)。getfacl -R /project > /backup/project_acl.bak),便于恢复。网络ACL用于控制服务器网络接口的流量(如限制IP访问端口),常用工具为iptables(传统)或nftables(较新系统)。
sudo iptables -A INPUT -p tcp --dport 80 -s 192.168.1.0/24 -j ACCEPT(允许192.168.1.0/24网段访问80端口)。sudo iptables -A INPUT -p tcp --dport 80 -j DROP(拒绝所有其他IP访问80端口)。sudo nft add rule inet filter input tcp dport 80 ip saddr 192.168.1.0/24 accept(允许192.168.1.0/24访问80端口),再添加drop规则拒绝其他流量。iptables -P INPUT DROP),仅允许必要流量,提升安全性。iptables规则重启后失效,需用iptables-save > /etc/iptables.rules保存,或在/etc/rc.local中添加加载命令。Windows通过“安全选项卡”或icacls命令管理ACL:
icacls命令(如icacls "C:\data\file.txt" /grant tester:(OI)(CI)F,授予tester对file.txt的完全控制权限,(OI)表示对象继承,(CI)表示容器继承)。su - tester切换用户),确认权限是否符合预期。rsyslog),监控ACL相关的访问请求(如/var/log/auth.log),及时发现异常。免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。