linux如何查看用户权限
- Linux
- 2025-07-12
- 5
Linux系统中,查看用户权限是日常系统管理和运维的重要任务之一,通过了解和掌握如何查看用户权限,可以更好地进行系统安全配置、用户管理以及故障排查,下面将详细介绍几种常用的方法来查看Linux系统中的用户权限。
使用ls命令查看文件或目录的权限
ls命令是Linux中最常用的列出文件和目录信息的命令,通过添加不同的选项,可以查看详细的权限信息。
-
基本用法
- ls -l:显示当前目录下所有文件和目录的详细信息,包括权限、所有者、所属组、大小、修改时间等。
- ls -al:除了ls -l的功能外,还会显示隐藏文件(以开头的文件)。
-
示例输出
ls -l /home输出可能如下:
drwxr-xr-x 2 user group 4096 Jan 1 12:00 user drwxr-xr-x 2 root root 4096 Jan 1 12:00 root第一列表示权限,第二列表示所有者,第三列表示所属组。
-
权限字符串解释
- 第一位字符表示文件类型:d表示目录,表示普通文件,l表示符号链接,c表示字符设备文件,b表示块设备文件等。
- 接下来的三组字符分别表示所有者、所属组和其他用户的权限,每组三个字符依次为读(r)、写(w)、执行(x)权限。rwxr-xr--表示所有者有读、写、执行权限,所属组有读、执行权限,其他用户只有读权限。
使用id命令查看用户ID和组ID
id命令用于显示当前用户的用户ID(UID)和组ID(GID),以及所属的所有组。
-
基本用法
- id:显示当前用户的UID、GID以及所属的所有组。
- id username:显示指定用户的UID、GID以及所属的所有组。
-
示例输出
id输出可能如下:
uid=1000(user) gid=1000(group) groups=1000(group),27(sudo)这表示当前用户的UID是1000,属于group组,并且还属于sudo组。
使用cat /etc/passwd查看所有用户信息
/etc/passwd文件存储了系统中所有用户的基本信息,包括用户名、UID、GID、家目录、默认Shell等。
-
基本用法
- cat /etc/passwd:显示所有用户的详细信息。
-
示例输出
cat /etc/passwd
输出可能如下:
root:x:0:0:root:/root:/bin/bash user:x:1000:1000:User:/home/user:/bin/bash每行代表一个用户,字段之间用冒号分隔,常见字段含义如下:
- 第1列:用户名
- 第2列:密码占位符(通常为x)
- 第3列:UID
- 第4列:GID
- 第5列:用户描述
- 第6列:家目录
- 第7列:默认Shell
-
基本用法
- getent passwd:显示所有用户的详细信息。
-
示例输出
getent passwd输出格式与cat /etc/passwd相同。

-
基本用法
- groups:显示当前用户所属的所有组。
- groups username:显示指定用户所属的所有组。
-
示例输出
groups user输出可能如下:
user : user group sudo这表示用户user属于user组和sudo组。
-
基本用法
- sudo -l:显示当前用户的sudo权限。
- sudo -l -U username:显示指定用户的sudo权限。
-
示例输出
sudo -l
输出可能如下:
User user may run the following commands on this host: (ALL) ALL
这表示用户user可以在所有主机上执行任何命令。
-
基本用法
- stat filename:显示指定文件的详细信息。
- stat directory_name:显示指定目录的详细信息。
-
示例输出
stat /etc/passwd输出可能如下:
File: /etc/passwd Size: 2741 Blocks: 8 IO Block: 4096 regular file Device: 801h/2049d Inode: 40766 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2024-03-26 15:18:00.000000000 +0000 Modify: 2024-03-26 15:18:00.000000000 +0000 Change: 2024-03-26 15:18:00.000000000 +0000 Birth: -Access字段显示了文件的权限信息,格式为(数字模式/符号模式)。
-
基本用法
- getfacl filename:显示指定文件的ACL权限。
- getfacl directory_name:显示指定目录的ACL权限。
-
示例输出
getfacl /etc/passwd输出可能如下:
# file: /etc/passwd # owner: root # group: root user::rw- group::r-- other::r--这表示文件/etc/passwd的所有者有读写权限,所属组和其他用户只有读权限。
使用getent passwd查看用户信息
getent passwd命令与cat /etc/passwd类似,但它可以从多个源获取用户信息,适用于支持NSS(Name Service Switch)的系统。
使用groups命令查看用户所属的组
groups命令用于显示指定用户所属的所有组。

使用sudo -l查看用户的sudo权限
sudo -l命令用于显示当前用户的sudo权限,即哪些命令可以以超级用户的身份执行。
使用stat命令查看文件或目录的详细权限信息
stat命令提供了比ls更详细的文件或目录信息,包括权限、所有者、所属组、大小、修改时间等。
使用getfacl命令查看文件或目录的ACL权限
ACL(Access Control List)是一种更细粒度的权限控制机制,允许为单个用户或组设置特定的权限。
归纳与对比
以下是上述命令的简要对比:
命令 功能描述 适用场景 ls -l 显示文件或目录的详细信息,包括权限、所有者、所属组等 查看文件或目录的基本权限 id 显示当前用户的UID、GID及所属的所有组 查看当前用户的身份信息 cat /etc/passwd 显示所有用户的详细信息 查看系统中所有用户的基本信息 getent passwd 从多个源获取用户信息,类似于cat /etc/passwd 查看用户信息,支持多种源 groups 显示指定用户所属的所有组 查看用户所属的组 sudo -l 显示当前用户的sudo权限 查看用户的sudo权限 stat 显示文件或目录的详细信息,包括权限、所有者、所属组等 查看文件或目录的详细权限 getfacl 显示文件或目录的ACL权限 查看文件或目录的ACL权限