用户与用户组管理
Linux系统通过用户和用户组实现权限管理,确保系统安全与资源合理分配,用户是系统操作的主体,用户组则将多个用户归类,便于统一授权。
用户管理基础命令
创建用户使用useradd
命令,例如sudo useradd -m -s /bin/bash newuser
,其中-m
自动创建家目录,-s
指定默认shell,修改用户信息可通过usermod
,如usermod -aG sudo newuser
将用户加入sudo
组,删除用户则用userdel -r newuser
,-r
选项会同时删除家目录。
查看用户信息常用id
命令,显示用户UID、GID及所属组;cat /etc/passwd
可查看所有用户列表,每行包含用户名、UID、家目录等关键信息。
用户组管理命令
创建用户组使用groupadd groupname
,修改组名用groupmod -n newgroup oldgroup
,删除组则执行groupdel groupname
,将用户加入组可通过usermod -aG groupname username
,-a
确保用户保留原有组 membership,查看用户所属组使用groups username
或id -Gn username
。
文件权限详解
Linux文件权限分为读(r)、写(w)、执行(x),分别对应数字4、2、1,权限主体分为三类:文件所有者(owner)、所属组(group)、其他用户(others)。
权限查看与修改
ls -l
命令显示文件详细信息,如-rw-r--r-- 1 user group 0 Jan 1 12:00 file.txt
,表示所有者有读写权限,组和其他用户仅有读权限。
修改权限使用chmod
命令,可通过符号或数字模式,符号模式如chmod u+x file.txt
为所有者添加执行权限;数字模式如chmod 755 file.txt
设置所有者权限为7(rwx),组和其他用户为5(r-x)。
修改文件所有者用chown
,如sudo chown user:group file.txt
同时修改所有者和所属组;仅修改所属组则用chgrp group file.txt
。
特殊权限与属性
除了基本权限,Linux还支持SUID、SGID、Sticky Bit特殊权限,SUID(设置用户ID)允许用户以文件所有者身份执行程序,如passwd
命令;SGID(设置组ID)使新建文件继承父目录所属组;Sticky Bit则限制其他用户删除目录中的文件,仅所有者可删除,如/tmp
目录。
查看特殊权限可通过ls -l
,若权限位显示为s
或t
(如rwsr-xr-t
)则表示存在特殊权限,设置特殊权限使用chmod u+s file
或chmod 4755 file
(SUID)。
高级权限管理工具
sudo权限配置
sudo
允许普通用户以超级用户身份执行命令,通过编辑/etc/sudoers
文件配置,添加username ALL=(ALL:ALL) ALL
赋予用户所有权限,或使用username ALL=(ALL:ALL) /usr/bin/apt
限制仅允许执行apt
命令。
ACL(访问控制列表)
对于复杂权限需求,ACL提供更灵活的权限管理,使用setfacl -m u:user:rwx file.txt
为指定用户设置权限,getfacl file.txt
查看详细ACL规则,ACL支持默认权限继承,通过setfacl -d -m g::rwx directory
设置目录新建文件的默认组权限。
文件系统属性
Linux还支持chattr
命令修改文件系统属性,如chattr +i file.txt
使文件不可修改或删除,chattr +a file.txt
允许仅追加内容,这些属性对系统关键文件保护尤为重要,可通过lsattr
查看。
权限管理最佳实践
- 最小权限原则:仅授予用户完成工作所必需的最小权限,避免使用
root
账户日常操作。 - 定期审计:通过
grep 'sudo' /var/log/auth.log
查看sudo日志,监控特权命令使用情况。 - 组策略应用:将同类用户归入同一用户组,通过组权限简化管理,减少重复配置。
- 敏感文件保护:对
/etc/passwd
、/etc/shadow
等关键文件设置严格权限,如chmod 600 /etc/shadow
仅允许root读写。
Linux用户权限管理是系统安全的核心,通过合理运用用户、用户组、文件权限及高级工具,可有效平衡安全性与可用性,掌握useradd
、chmod
、sudo
等基础命令,并结合ACL和特殊权限,可构建精细化的权限体系,为系统稳定运行提供保障。