六、详细解释:用户与权限操作命令

一、用户管理

1. useradd – 创建用户
  • 用途:创建新用户。

  • 语法

    useradd [选项] 用户名
    
  • 常用选项

    • -m:创建用户的家目录(如 /home/用户名)。
    • -s:指定用户的默认 Shell(如 /bin/bash)。
    • -g:指定主组(默认创建与用户名相同的组)。
    • -G:指定附加组(可加入多个组)。
  • 示例

    # 创建用户 alice,并指定家目录和 Shell
    sudo useradd -m -s /bin/bash alice
    
    # 创建用户 bob,并加入 developers 组
    sudo useradd -m -G developers bob
    

2. passwd – 修改用户密码
  • 用途:设置或修改用户密码。

  • 语法

    passwd [用户名]
    
  • 示例

    # 修改当前用户的密码
    passwd
    
    # 修改指定用户的密码(需管理员权限)
    sudo passwd alice
    

3. usermod – 修改用户属性
  • 用途:修改现有用户的属性(如组、Shell、家目录等)。

  • 语法

    usermod [选项] 用户名
    
  • 常用选项

    • -aG:将用户添加到附加组(需与 -G 一起使用)。
    • -s:修改用户的默认 Shell。
    • -d:修改用户的家目录。
    • -L:锁定用户(禁用登录)。
    • -U:解锁用户。
  • 示例

    # 将 alice 添加到 sudo 组
    sudo usermod -aG sudo alice
    
    # 修改 bob 的默认 Shell 为 /bin/zsh
    sudo usermod -s /bin/zsh bob
    
    # 锁定用户 alice
    sudo usermod -L alice
    

4. userdel – 删除用户
  • 用途:删除用户及其相关文件。

  • 语法

    userdel [选项] 用户名
    
  • 常用选项

    • -r:删除用户的家目录和邮件文件。
  • 示例

    # 删除用户 alice 及其家目录
    sudo userdel -r alice
    

二、组管理

1. groupadd – 创建组
  • 用途:创建新用户组。

  • 语法

    groupadd [选项] 组名
    
  • 示例

    # 创建 developers 组
    sudo groupadd developers
    

2. groupmod – 修改组属性
  • 用途:修改现有组的属性(如组名)。

  • 语法

    groupmod [选项] 组名
    
  • 常用选项

    • -n:修改组名。
  • 示例

    # 将组名 developers 改为 devs
    sudo groupmod -n devs developers
    

3. groupdel – 删除组
  • 用途:删除用户组。

  • 语法

    groupdel 组名
    
  • 示例

    # 删除 devs 组
    sudo groupdel devs
    

三、权限管理

1. chmod – 修改文件权限
  • 用途:修改文件或目录的权限(读 r、写 w、执行 x)。

  • 语法

    chmod [选项] 权限 文件或目录
    
  • 权限表示

    • 符号模式u(所有者)、g(所属组)、o(其他用户)。
      示例:chmod u+x script.sh(给所有者添加执行权限)。
    • 数字模式:三组数字分别对应所有者、组、其他用户的权限。
      权限计算:r=4w=2x=1(如 755 = rwxr-xr-x)。
  • 示例

    # 设置文件权限为 rw-r--r--
    chmod 644 file.txt
    
    # 给脚本添加执行权限
    chmod +x script.sh
    

2. chown – 修改文件所有者
  • 用途:修改文件或目录的所有者或所属组。

  • 语法

    chown [选项] 所有者[:组] 文件或目录
    
  • 常用选项

    • -R:递归修改目录及其内容。
  • 示例

    # 将文件所有者改为 alice
    sudo chown alice file.txt
    
    # 将文件所有者和组改为 alice:developers
    sudo chown alice:developers file.txt
    
    # 递归修改目录的所有者
    sudo chown -R alice:developers /project
    

3. chgrp – 修改文件所属组
  • 用途:修改文件或目录的所属组。

  • 语法

    chgrp [选项] 组名 文件或目录
    
  • 示例

    # 将文件所属组改为 developers
    sudo chgrp developers file.txt
    

四、权限与用户组实战案例

场景 1:共享目录权限管理
  1. 创建共享目录

    sudo mkdir /shared
    
  2. 创建用户组

    sudo groupadd team
    
  3. 设置目录权限

    sudo chown root:team /shared
    sudo chmod 775 /shared  # 允许组成员读写
    
  4. 将用户加入组

    sudo usermod -aG team alice
    sudo usermod -aG team bob
    
  5. 验证权限

    # 以 alice 身份创建文件
    sudo -u alice touch /shared/test.txt
    # 以 bob 身份编辑文件
    sudo -u bob echo "Hello" >> /shared/test.txt
    

场景 2:限制用户访问
  1. 锁定用户

    sudo usermod -L alice  # 锁定 alice
    sudo usermod -U alice  # 解锁 alice
    
  2. 限制用户 Shell

    sudo usermod -s /sbin/nologin alice  # 禁止登录
    

五、注意事项

  1. 权限分配原则

    • 遵循最小权限原则,避免过度授权。
    • 敏感文件(如 /etc/passwd)应限制为 root 可写。
  2. 特殊权限

    • SUID:允许用户以文件所有者的权限执行(如 /usr/bin/passwd)。
    • SGID:目录中新文件的组继承目录的组。
    • Sticky Bit:仅文件所有者可删除文件(如 /tmp)。
  3. 查看用户信息

    id alice  # 查看用户 UID、GID 及所属组
    
  4. 切换用户

    su - alice  # 切换到 alice 用户
    sudo -u alice command  # 以 alice 身份执行命令
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值