Linux 基础命令之用户权限管理命令全解析

Linux 基础命令之用户权限管理命令全解析

1751816011@qq.com
2025-10-19 / 0 评论 / 4 阅读 / 正在检测是否收录...

## Linux 用户权限管理命令全解析

以下是 Linux 系统中用户权限相关的核心命令详解,包含使用场景、常用选项和实际示例:


用户管理命令

1. useradd - 创建新用户

# 基本用法
sudo useradd [选项] 用户名

# 常用选项
-m   # 创建用户主目录(/home/username)
-s   # 指定默认shell(如 /bin/bash)
-g   # 指定主用户组
-G   # 指定附加用户组
-d   # 指定主目录路径
-e   # 设置账户过期日期(YYYY-MM-DD)

# 创建带主目录的用户并指定shell
sudo useradd -m -s /bin/bash john

# 创建用户并加入附加组
sudo useradd -m -G developers,sysadmin alice

2. userdel - 删除用户

# 基本用法
sudo userdel [选项] 用户名

# 常用选项
-r   # 同时删除用户主目录和邮件

# 删除用户但保留主目录
sudo userdel john

# 完全删除用户及其文件
sudo userdel -r alice

3. usermod - 修改用户属性

# 基本用法
sudo usermod [选项] 用户名

# 常用选项
-aG  # 添加附加用户组(-a 表示追加)
-g   # 修改主用户组
-s   # 修改默认shell
-L   # 锁定账户
-U   # 解锁账户

# 将用户加入sudo组
sudo usermod -aG sudo john

# 修改用户主组
sudo usermod -g developers alice

# 锁定用户账户
sudo usermod -L john

用户组管理命令

4. groupadd - 创建新用户组

# 创建基本用户组
sudo groupadd developers

# 创建系统用户组(GID<1000)
sudo groupadd -r sysadmin

5. groupmod - 修改用户组属性

# 修改组名
sudo groupmod -n devs developers

# 修改组ID
sudo groupmod -g 2001 devs

6. groupdel - 删除用户组

# 删除空用户组
sudo groupdel devs

# 强制删除非空用户组(需先清空组成员)
sudo groupdel -f sysadmin

文件权限命令

7. chmod - 修改文件权限

# 符号模式
chmod [ugoa][+-=][rwx] 文件

# 数字模式
chmod XYZ 文件

# 常用选项
-R   # 递归修改

# 设置文件所有者为读写,其他用户只读
chmod u=rw,go=r file.txt

# 递归设置目录权限(rwxr-xr-x)
chmod -R 755 /project/

# 添加执行权限
chmod +x script.sh

8. chown - 修改文件所有者

# 基本用法
chown [用户][:组] 文件

# 修改文件所有者
sudo chown john report.txt

# 同时修改所有者和组
sudo chown john:developers project/

# 递归修改目录所有者
sudo chown -R alice:developers /webapp/

9. chgrp - 修改文件所属组

# 修改文件所属组
sudo chgrp developers config.ini

# 递归修改目录所属组
sudo chgrp -R sysadmin /logs/

权限控制命令

10. umask - 设置默认权限掩码

# 查看当前umask
umask       # 输出 0022

# 设置新umask(文件默认权限:666-022=644)
umask 0022

# 永久设置(添加到 ~/.bashrc 或 /etc/profile)
echo "umask 0027" >> ~/.bashrc

11. chattr - 修改文件扩展属性

# 基本用法
sudo chattr [+-=][属性] 文件

# 常用属性
+i   # 不可修改(免疫删除/重命名)
+a   # 只能追加内容(日志文件)
+A   # 不更新访问时间
+c   # 透明压缩(某些文件系统)

# 设置文件不可修改
sudo chattr +i /etc/passwd

# 设置日志文件只能追加
sudo chattr +a /var/log/syslog

12. lsattr - 查看文件扩展属性

# 查看文件属性
lsattr /etc/passwd

# 递归查看目录属性
lsattr -R /etc/ssh/

用户信息命令

13. id - 显示用户身份信息

# 显示当前用户信息
id

# 显示指定用户信息
id john

# 输出格式:
# uid=1001(john) gid=1001(john) groups=1001(john),27(sudo)

14. who - 显示已登录用户

# 基本用法
who

# 显示详细信息
who -Hu

# 输出示例:
# NAME   LINE    TIME         IDLE     PID COMMENT
# john   tty1    2023-08-01 09:30   .     1234

15. whoami - 显示当前用户名

# 简单显示当前用户
whoami
# 输出:john

16. last - 显示用户登录历史

# 显示所有登录记录
last

# 显示指定用户登录记录
last john

# 显示重启记录
last reboot

权限切换命令

17. su - 切换用户身份

# 切换到其他用户
su - john   # "-" 表示加载目标用户环境

# 切换后返回原用户
exit

18. sudo - 以超级用户权限执行命令

# 执行单条命令
sudo apt update

# 以其他用户身份执行
sudo -u john whoami

# 编辑sudoers文件
sudo visudo

19. w - 显示登录用户及其活动

# 显示所有登录用户的活动
w

# 精简输出
w -h

# 输出示例:
# 09:30:00 up 10 days, 1 user, load average: 0.00, 0.01, 0.05
# USER  TTY   FROM        LOGIN@   IDLE   JCPU   PCPU WHAT
# john  tty1  :0         09:15    5.00s  0.10s  0.00s w

高级权限命令

20. chpasswd - 批量修改密码

# 从标准输入修改密码
echo "john:newpassword" | sudo chpasswd

# 从文件批量修改
sudo chpasswd < users.txt

# users.txt 格式:
# username1:password1
# username2:password2

21. chroot - 切换根目录环境

# 创建受限环境
sudo mkdir /jail
sudo chroot /jail /bin/bash

# 用于系统恢复
sudo chroot /mnt/sysroot /bin/bash

权限管理最佳实践

  1. 最小权限原则

    # 使用sudo代替直接root登录
    sudo systemctl restart nginx
    
    # 限制sudo权限
    # /etc/sudoers 配置:
    john ALL=(ALL) /usr/bin/systemctl restart nginx, /usr/bin/apt update
  2. 安全审计

    # 检查空密码账户
    sudo awk -F: '($2 == "") {print $1}' /etc/shadow
    
    # 检查sudo权限用户
    sudo grep -Po '^sudo:\K.*$' /etc/group
  3. 密码策略

    # 修改密码策略
    sudo nano /etc/login.defs
    PASS_MAX_DAYS 90
    PASS_MIN_DAYS 7
    PASS_WARN_AGE 14
  4. 文件权限检查

    # 查找全局可写文件
    sudo find / -xdev -type f -perm -0002 -ls
    
    # 查找SUID文件
    sudo find / -xdev -type f -perm -4000 -ls

命令对比表

命令功能描述常用场景
useradd创建新用户系统初始化添加用户
usermod修改用户属性将用户加入特权组
chmod修改文件权限设置脚本可执行权限
chown修改文件所有者项目目录所有权转移
sudo以特权身份执行命令系统管理操作
chattr设置文件特殊属性保护关键配置文件
chroot创建受限环境系统恢复/安全沙箱
umask设置默认权限掩码控制新建文件默认权限
提示:所有特权命令(如 useradd、chown 等)通常需要 root 权限执行,使用 sudo 前缀或切换到 root 账户。生产环境中建议通过配置管理工具(如 Ansible)批量管理用户权限。
0

评论 (0)

取消