小小白祈祷中...

在 Linux/Unix 系统中,用户权限管理是非常重要的内容。以下是一些与用户权限相关的常用命令及其功能说明。这些命令主要用于管理用户、组、文件权限和特权操作。


用户和组管理相关命令

添加用户

useradd

用于添加新用户。

1
sudo useradd 用户名
  • 常用选项

    选项 说明
    -m 自动为用户创建主目录。
    -s /bin/bash 指定用户的默认 Shell,例如 /bin/bash
    -G 组名 将用户添加到指定组。
    -u 用户ID 指定用户 ID(UID)。
  • 示例

    1
    sudo useradd -m -s /bin/bash -G sudo alice
    • 创建用户 alice,并为其分配主目录、默认 Shell 为 /bin/bash,同时将其加入 sudo 组。

删除用户

userdel

用于删除用户账户。

1
sudo userdel 用户名
  • 常用选项

    选项 说明
    -r 删除用户的同时删除其主目录和文件。
  • 示例

    1
    sudo userdel -r alice
    • 删除用户 alice 及其主目录。

修改用户

usermod

用于修改已存在的用户账户。

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

    选项 说明
    -l 新用户名 修改用户名。
    -G 组名 将用户添加到新组(覆盖现有组)。
    -aG 组名 将用户追加到一个附加组(不覆盖原有组)。
    -s /bin/bash 修改用户的默认 Shell。
    -d 目录路径 修改用户主目录。
  • 示例

    1
    sudo usermod -aG docker alice
    • 将用户 alice 添加到 docker 组。

查看用户信息

id

显示用户的 UID、GID 和用户所属组。

1
id 用户名
  • 示例

    1
    id alice
    • 输出
      1
      uid=1001(alice) gid=1001(alice) groups=1001(alice),27(sudo)

who

查看当前在线用户。

1
who
  • 输出示例
    1
    alice    pts/0        2024-12-09 10:00 (192.168.1.100)

last

显示最近登录的用户列表。

1
last
  • 输出示例
    1
    alice    pts/0        192.168.1.100    Mon Dec  9 10:00   still logged in

管理用户组

groupadd

创建新组。

1
sudo groupadd 组名
  • 示例
    1
    sudo groupadd developers

groupdel

删除组。

1
sudo groupdel 组名
  • 示例
    1
    sudo groupdel developers

gpasswd

用于添加或移除用户到组。

1
2
sudo gpasswd -a 用户名 组名
sudo gpasswd -d 用户名 组名
  • 示例
    1
    2
    sudo gpasswd -a alice developers
    sudo gpasswd -d alice developers

文件权限管理相关命令

查看文件权限

ls -l

查看文件的详细信息,包括权限。

1
ls -l 文件名
  • 输出示例

    1
    -rw-r--r-- 1 alice alice 1234 Dec 9 12:34 file.txt
    • 权限字段 -rw-r--r--
      • 第一位:文件类型(- 表示普通文件,d 表示目录)。
      • 后 9 位:分为 3 组,每组 3 位,分别表示 所有者其他用户 的权限。
        • r:可读,w:可写,x:可执行。

修改文件权限

chmod

修改文件或目录的权限。

1
chmod [权限模式] 文件名
  • 权限模式

    • 数字模式(常用):
      • 4:可读(r)。
      • 2:可写(w)。
      • 1:可执行(x)。
      • 通过加和表示权限,例如 7 = r + w + x
    • 符号模式
      • u:用户(所有者),g:组,o:其他用户。
      • +:添加权限,-:移除权限,=:设置精确权限。
  • 示例

    1
    chmod 755 file.txt
    • 设置权限为:
      1
      -rwxr-xr-x
    1
    chmod u+w,g-r,o-x file.txt
    • 给用户添加写权限,移除组的读权限,移除其他用户的执行权限。

修改文件所有者

chown

修改文件或目录的所有者和所属组。

1
sudo chown [所有者][:组] 文件名
  • 示例
    1
    2
    sudo chown alice file.txt
    sudo chown alice:developers file.txt

修改文件组

chgrp

修改文件的所属组。

1
sudo chgrp 组名 文件名
  • 示例
    1
    sudo chgrp developers file.txt

特权操作相关命令

提权操作

sudo

以超级用户(root)权限执行命令。

1
sudo 命令
  • 示例
    1
    sudo apt update

切换用户

su

切换到其他用户。

1
su [用户名]
  • 示例

    1
    su alice
    • 如果用户名为空,则切换到 root 用户。

临时获取 root 权限

sudo -isudo su

切换到 root 用户环境。

1
sudo -i
  • 提示输入当前用户密码后,进入 root 环境。

权限相关的系统文件

用户信息文件

/etc/passwd

存储所有用户的信息。

1
cat /etc/passwd
  • 输出示例
    1
    alice:x:1001:1001:Alice:/home/alice:/bin/bash

用户密码文件

/etc/shadow

存储用户密码的加密信息(仅 root 可访问)。

1
sudo cat /etc/shadow

组信息文件

/etc/group

存储所有组的信息。

1
cat /etc/group
  • 输出示例
    1
    developers:x:1002:alice

权限管理常见任务总结

任务 命令
添加用户 sudo useradd -m -s /bin/bash 用户名
删除用户 sudo userdel -r 用户名
添加用户到组 sudo usermod -aG 组名 用户名
修改文件权限 chmod 755 文件名
修改文件所有者 sudo chown 用户名 文件名
查看用户所属组 id 用户名
切换到其他用户 su 用户名
提升到 root 权限 sudo -isudo su

通过这些命令,可以灵活管理 Linux 系统中的用户、组和权限!

本文作者:LuoYing @ 小小白的笔记屋

本文链接:https://luoying.netlify.app/2024/10/08/o85pl50g/

本文标题:Linux命令详解---用户权限相关

本文版权:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!