Linux Minimal系统文件权限管理指南
Linux Minimal系统(如CentOS Minimal、Ubuntu Minimal)的权限管理以“最小权限原则”为核心,通过基础命令与高级工具实现细粒度的访问控制,保障系统安全。
Linux文件权限分为三类:所有者(Owner)(文件创建者)、所属组(Group)(文件所属用户组)、其他用户(Others)(未归属前两类的用户)。每类权限包含三种操作:读(r,4)、写(w,2)、执行(x,1),权限值通过三者之和表示(如rwx=7,rw-=6)。
chmod 640 file.txt 表示所有者有读写权限(6),所属组有读权限(4),其他用户无权限(0);chmod u+x script.sh 表示给所有者添加执行权限。755用于目录,644用于普通文件)。chmod g-w file.txt 移除组的写权限,chmod o+r file.txt 给其他用户添加读权限)。chown:同时修改所有者和组(如chown user:group file.txt);chgrp:仅修改所属组(如chgrp developers file.txt)。chmod u+s /usr/bin/passwd,允许普通用户修改密码);chmod g+s /var/www,方便团队协作);chmod +t /tmp,仅文件所有者可删除自己的文件)。基础权限无法满足复杂场景时,可使用**访问控制列表(ACL)**为特定用户或组设置额外权限。
acl包(如CentOS用yum install acl,Ubuntu用apt install acl);setfacl -m u:user1:rw file.txt 给user1添加读写权限,setfacl -m g:devs:rwx /project 给devs组添加读写执行权限;getfacl file.txt 显示文件的详细权限信息;setfacl -d -m u:user1:rwx /project 设置目录的默认ACL,新建文件自动继承。umask定义新创建文件的默认权限(通过屏蔽基础权限实现)。
umask 022 表示新文件权限为644(666-022=644),新目录权限为755(777-022=755);umask命令;umask 022添加到~/.bashrc(用户级)或/etc/profile(系统级)。chmod o-w file.txt),敏感文件(如/etc/shadow)设置600权限;chmod 777(完全开放权限),否则可能导致系统被入侵;ls -l查看文件权限,用find / -type f -perm 777 -exec ls -ld {} \;查找系统中权限过高的文件;/etc/sudoers文件(用visudo命令),允许特定用户使用sudo执行管理命令(如username ALL=(ALL) NOPASSWD: /usr/bin/apt);setenforce 1)或AppArmor(systemctl enable apparmor)提供强制访问控制,限制进程的权限范围。