目录
一、用户与组管理
-
用户管理基础操作
# 创建用户(useradd与adduser功能相同) [root@zhangsan101 ~]# useradd wuaizhen [root@zhangsan101 ~]# adduser wuaizhen2 # 查看用户信息 [root@zhangsan101 ~]# id wuaizhen uid=1001(wuaizhen) gid=1001(wuaizhen) 组=1001(wuaizhen) # 修改用户属性 [root@zhangsan101 ~]# usermod -c "运维工程师" wuaizhen # 添加备注信息 [root@zhangsan101 ~]# usermod -s /bin/sh wuaizhen # 修改默认shell [root@zhangsan101 ~]# usermod -d /home/wz wuaizhen # 修改家目录 # 删除用户(-r选项同时删除家目录) [root@zhangsan101 ~]# userdel -r wuaizhen2 # 必须加-r,否则残留文件
-
组管理操作
# 创建组 [root@zhangsan101 ~]# groupadd wanggong # 创建指定GID的组 [root@zhangsan101 ~]# groupadd -g 3000 wg02 # 删除组(确保组中无用户) [root@zhangsan101 ~]# groupdel wg02
-
用户组关系管理
# 方法1:usermod添加用户到附加组 [root@zhangsan101 ~]# usermod -G wanggong wuaizhen # 方法2:gpasswd添加用户到组 [root@zhangsan101 ~]# gpasswd -a zhangsan wanggong # 验证结果 [root@zhangsan101 ~]# tail -1 /etc/group wanggong:x:1002:wuaizhen,zhangsan # 从组中移除用户 [root@zhangsan101 ~]# gpasswd -d zhangsan wanggong
二、权限管理详解
-
文件权限基础
Linux 文件权限分为读(r=4)、写(w=2)、执行(x=1),分别对应所有者、所属组、其他用户三类对象:[root@zhangsan101 ~]# ll m1.txt -rw-r--r--. 1 root root 0 6月 1 10:00 m1.txt # 第一个字符:-表示文件,d表示目录,l表示链接 # 接下来9个字符:rwx(所有者)r--(所属组)r--(其他用户)
-
修改所有者与所属组
# 修改所有者和所属组 [root@zhangsan101 ~]# chown zhangsan:lisi m1.txt # 只修改所有者 [root@zhangsan101 ~]# chown wuaizhen m2.txt # 只修改所属组(两种方式) [root@zhangsan101 ~]# chown :wangwu m3.txt [root@zhangsan101 ~]# chgrp wanggong m3.txt # 专用命令 # 递归修改目录及其内容 [root@zhangsan101 ~]# chown -R zhangsan:lisi aa/
-
修改权限属性
# 数字方式(推荐,更高效) [root@zhangsan101 ~]# chmod 750 aa # 所有者rwx,所属组r-x,其他无权限 # 符号方式(更直观) [root@zhangsan101 ~]# chmod u+x s2.sh # 给所有者添加执行权限 [root@zhangsan101 ~]# chmod g+w aa # 给所属组添加写权限 [root@zhangsan101 ~]# chmod o-r m1.txt # 移除其他用户的读权限
-
特殊权限设置
- SUID:让用户以文件所有者权限执行程序(如 passwd 命令)
- SGID:在目录中创建的文件继承目录的所属组
- Sticky:目录中只有文件所有者和 root 可删除文件(如 /tmp)
# 设置SGID(适合团队共享目录) [root@zhangsan101 ~]# mkdir /home/managers [root@zhangsan101 ~]# chmod 2770 /home/managers/ # 2表示SGID [root@zhangsan101 ~]# chown :wanggong /home/managers/
三、ACL 权限控制
当传统权限无法满足细粒度控制需求时,可使用 ACL(Access Control List):
-
设置 ACL 权限
# 给用户zhangsan添加rwx权限 [root@zhangsan101 ~]# setfacl -m u:zhangsan:rwx bb/ # 给组wangwu添加rw权限 [root@zhangsan101 ~]# setfacl -m g:wangwu:rw bb/ # 查看ACL设置 [root@zhangsan101 ~]# getfacl bb/ # file: bb/ # owner: root # group: root user::rwx user:zhangsan:rwx group::r-x group:wangwu:rw- mask::rwx other::r-x
-
删除 ACL 权限
# 删除指定用户的ACL [root@zhangsan101 ~]# setfacl -x u:zhangsan bb/ # 清除所有ACL [root@zhangsan101 ~]# setfacl -