插件窝 干货文章 如何进行Linux系统的用户和权限管理

如何进行Linux系统的用户和权限管理

username bash 用户 权限 988    来源:    2025-04-10

Linux系统用户与权限管理指南

一、用户管理

1. 用户账户操作

  • 添加用户

    sudo useradd username  # 创建用户
    sudo passwd username   # 设置密码
    
  • 删除用户

    sudo userdel username          # 删除用户但保留家目录
    sudo userdel -r username       # 删除用户及家目录
    
  • 修改用户属性

    sudo usermod -l newname oldname  # 修改用户名
    sudo usermod -d /new/home username  # 修改家目录
    sudo usermod -aG groupname username  # 将用户添加到附加组
    

2. 用户信息查看

  • 查看所有用户:

    cat /etc/passwd
    
  • 查看用户所属组:

    groups username
    id username
    

二、用户组管理

1. 组操作

  • 创建组

    sudo groupadd groupname
    
  • 删除组

    sudo groupdel groupname
    
  • 修改组名

    sudo groupmod -n newgroup oldgroup
    

2. 组成员管理

  • 添加用户到组:

    sudo gpasswd -a username groupname
    
  • 从组中移除用户:

    sudo gpasswd -d username groupname
    

三、文件权限管理

1. 基本权限

  • 查看权限

    ls -l filename
    
  • 修改权限

    chmod u=rwx,g=rx,o=r filename  # 设置具体权限
    chmod 754 filename             # 数字表示法
    

    权限数字表示:

    • 4 = 读(r)
    • 2 = 写(w)
    • 1 = 执行(x)

2. 特殊权限

  • SUID (4):以文件所有者身份执行

    chmod u+s filename
    
  • SGID (2):以文件所属组身份执行

    chmod g+s filename
    
  • 粘滞位 (1):只有所有者能删除/重命名文件

    chmod +t directory
    

3. 所有权管理

  • 修改文件所有者:

    sudo chown username filename
    
  • 修改文件所属组:

    sudo chgrp groupname filename
    
  • 同时修改所有者和组:

    sudo chown username:groupname filename
    

四、高级权限管理

1. ACL (访问控制列表)

  • 查看ACL:

    getfacl filename
    
  • 设置ACL:

    setfacl -m u:username:permissions filename
    setfacl -m g:groupname:permissions filename
    
  • 删除ACL:

    setfacl -x u:username filename
    

2. sudo权限

  • 编辑sudoers文件:

    sudo visudo
    
  • 授权示例:

    username ALL=(ALL) ALL  # 完全sudo权限
    username ALL=(ALL) NOPASSWD: ALL  # 无需密码
    %groupname ALL=(ALL) ALL  # 给组授权
    

五、安全最佳实践

  1. 遵循最小权限原则
  2. 定期审计用户和权限
  3. 为不同服务使用不同账户
  4. 禁用不必要的系统账户
  5. 使用强密码策略
  6. 限制root直接登录
  7. 监控/etc/passwd和/etc/shadow的变更

六、常见问题排查

  • 用户无法登录:

    grep username /etc/passwd
    grep username /etc/shadow
    
  • 权限拒绝:

    ls -l /path/to/file
    id username
    getfacl /path/to/file
    
  • sudo权限问题:

    sudo -l -U username
    

通过以上命令和技巧,您可以有效地管理Linux系统中的用户账户和文件权限,确保系统安全性和资源访问控制。