权限与用户管理
权限基础
文件权限共三位(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/ # 递归修改目录
| 数字 | 权限 | 说明 |
|---|---|---|
| 7 | rwx | 读+写+执行 |
| 6 | rw- | 读+写 |
| 5 | r-x | 读+执行 |
| 4 | r-- | 只读 |
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 会话)才生效。