Skip to main content

权限与用户管理

权限基础​

文件权限共三位(r 读 / w 写 / x 执行),分别对应:属主(owner) / 属组(group) / 其他(other)。

ls -l                   # 第一列为权限,如 -rwxr-xr--

chmod 修改权限​

chmod u+x file          # 给属主加执行权限
chmod g-w file # 去掉属组写权限
chmod o+r file # 给其他人加读权限
chmod a+rwx file # 所有人读写执行
chmod 755 file # 数字法:rwxr-xr-x
chmod 644 file # rw-r--r--(常用文件)
chmod 600 file # rw-------(私密文件,如私钥)
chmod -R 755 dir/ # 递归修改目录
数字权限说明
7rwx读+写+执行
6rw-读+写
5r-x读+执行
4r--只读

chown / chgrp 修改属主属组​

chown user file         # 修改属主
chown user:group file # 同时修改属主和属组
chgrp group file # 修改属组
chown -R user:group dir/# 递归修改

特殊权限与 ACL​

chmod u+s file          # SUID:以属主身份执行(如 passwd)
chmod g+s dir # SGID:目录内新建文件继承属组
chmod +t dir # sticky bit:目录内只能删自己的文件(如 /tmp)
chmod 4755 file # 上述 4 表示 SUID

getfacl file # 查看 ACL 权限
setfacl -m u:user:rw file # 给指定用户额外授权
setfacl -x u:user file # 移除用户 ACL

umask​

umask                   # 查看当前掩码,如 022
umask 0022 # 新文件默认 644,新目录默认 755

用户管理​

useradd -m -s /bin/bash user   # 创建用户并建家目录、指定 shell
passwd user # 设置 / 修改密码
usermod -aG sudo user # 将用户加入 sudo 组
usermod -s /bin/bash user # 修改登录 shell
userdel user # 删除用户
userdel -r user # 删除用户及其家目录
whoami # 当前用户名
id # 当前用户 uid/gid 及各组
groups # 查看用户所属组

组管理​

groupadd group          # 创建组
groupdel group # 删除组
gpasswd -a user group # 把用户加入组
gpasswd -d user group # 把用户移出组

提权与切换​

su - user               # 切换到其他用户(- 附带环境)
sudo command # 以 root 执行单条命令
sudo -i # 进入 root shell
sudo -u user command # 以指定用户身份执行
visudo # 编辑 sudoers,添加 sudo 权限

新用户加入 sudo 组后,需重新登录(或新开 ssh 会话)才生效。