作为IT工程师,掌握Linux用户和权限管理是基础技能。以下是详细的Linux用户和权限管理方法:
# 添加新用户
sudo useradd username # 创建用户
sudo passwd username # 设置密码
# 修改用户属性
sudo usermod -aG groupname username # 将用户添加到附加组
sudo usermod -d /new/home username # 修改用户主目录
sudo usermod -s /bin/bash username # 修改用户默认shell
# 删除用户
sudo userdel username # 删除用户(保留主目录)
sudo userdel -r username # 删除用户及主目录
/etc/passwd
- 用户账户信息/etc/shadow
- 加密密码存储/etc/group
- 组信息/etc/skel/
- 新用户默认配置文件目录# 创建组
sudo groupadd groupname
# 修改组
sudo groupmod -n newname oldname # 重命名组
# 删除组
sudo groupdel groupname
# 查看用户所属组
groups username
id username
Linux文件权限分为三类: - 用户(owner)权限 - 组(group)权限 - 其他用户(other)权限
每种权限包含: - 读(r/4) - 写(w/2) - 执行(x/1)
# 查看权限
ls -l filename
# 修改权限(chmod)
chmod u+rwx filename # 给用户添加读写执行权限
chmod g-rwx filename # 移除组的全部权限
chmod o=rx filename # 设置其他用户权限为读执行
chmod 755 filename # 数字表示法(用户:rwx, 组:r-x, 其他:r-x)
# 修改所有者(chown)
sudo chown username filename # 修改文件所有者
sudo chown username:group filename # 同时修改所有者和组
# 修改所属组(chgrp)
sudo chgrp groupname filename
# 设置SUID(4)
chmod u+s filename # 执行时以文件所有者身份运行
chmod 4755 filename
# 设置SGID(2)
chmod g+s filename # 执行时以文件所属组身份运行
chmod 2755 filename
# 设置粘滞位(1)
chmod +t directory # 只有文件所有者才能删除目录中的文件
chmod 1777 directory
# 查看ACL
getfacl filename
# 设置ACL
setfacl -m u:username:rwx filename # 为用户设置权限
setfacl -m g:groupname:rx filename # 为组设置权限
setfacl -x u:username filename # 删除用户ACL条目
# 默认ACL(用于目录)
setfacl -d -m u:username:rwx directory
通过/etc/sudoers
文件管理(使用visudo
命令编辑):
# 允许用户执行所有命令
username ALL=(ALL) ALL
# 允许组执行特定命令
%groupname ALL=/sbin/service,/sbin/chkconfig
# 无需密码执行
username ALL=(ALL) NOPASSWD: ALL
通过以上方法,您可以有效地管理Linux系统中的用户和权限,确保系统安全性和资源合理分配。