Linux中如何查看用户权限的具体信息及查看方式?

在Linux系统中,用户权限是保障系统安全与资源合理分配的核心机制,通过精细化的权限控制,确保不同用户只能访问其被授权的资源,要查看用户权限,需从用户身份、文件/目录权限、特殊权限、sudo授权等多个维度入手,结合多种命令和工具进行综合分析,以下将从基础到进阶,详细说明Linux中查看用户权限的方法及核心知识点。

在linux中如何查看用户权限

用户与用户组基础:权限的归属主体

Linux中的权限分配以用户(User)和用户组(Group)为单位,每个文件或目录都有明确的“属主”(Owner,即用户)、“属组”(Group,即用户组)及“其他用户”(Others)三类权限主体,理解用户与用户组的关系是查看权限的前提。

  • 用户标识:Linux通过用户ID(UID)唯一标识用户,普通用户UID通常大于1000(不同发行版略有差异),系统用户(如www-data、nobody)UID一般小于1000,可通过/etc/passwd文件查看所有用户信息,例如cat /etc/passwd | grep username会显示用户的UID、家目录、默认Shell等。
  • 用户组标识:用户组通过组ID(GID)标识,用户可属于一个主组(Primary Group,创建用户时自动生成)和多个附加组(Supplementary Groups)。/etc/group文件记录了所有组信息,例如cat /etc/group | grep groupname可查看组成员及GID。

权限表示方法:字符与数字的对应

Linux权限分为“读(r)”“写(w)”“执行(x)”三类,分别对应数字4、2、1(无权限为0),权限位通常以字符或数字形式呈现,常见于文件/目录的属性中。

字符表示法

通过ls -l命令可查看文件/目录的详细权限,
-rwxr-xr-- 1 user group 4096 Oct 20 10:30 file.txt

  • 第1位:文件类型(普通文件,d目录,l软链接等);
  • 第2-4位:属主权限(rwx,属主user可读、写、执行);
  • 第5-7位:属组权限(r-x,属组group可读、执行,不可写);
  • 第8-10位:其他用户权限(r–,其他用户仅可读)。

数字表示法

将三类权限的数字相加,得到简化的权限表示,

  • rwx = 4+2+1 = 7(完全权限);
  • r-x = 4+0+1 = 5(读+执行);
  • r– = 4+0+0 = 4(仅读)。
    上述file.txt的权限可简写为755(属主7,属组5,其他5)。

查看用户权限的核心命令

ls命令:查看文件/目录权限

ls是查看文件属性最常用的命令,结合不同选项可获取权限细节:

  • 基础权限ls -l file.txt(如上文所示,显示字符权限);
  • 隐藏文件权限ls -la(包含以开头的隐藏文件,如.bashrc);
  • 目录自身权限ls -ld /var/log(查看目录本身的权限,而非目录内文件);
  • 数字权限ls -n file.txt(以UID/GID形式显示属主/属组,而非用户名,便于调试)。

id命令:查看用户身份与组信息

id命令用于显示指定用户的UID、GID及所属组,是快速定位用户权限归属的关键工具:

在linux中如何查看用户权限

  • 当前用户信息id(输出示例:uid=1000(user) gid=1000(user) groups=1000(user),4(adm),27(sudo),显示UID、GID及所有附加组);
  • 指定用户信息id username(如id www-data,输出uid=33(www-data) gid=33(www-data) groups=33(www-data));
  • 仅显示UID/GIDid -u username(仅UID)、id -g username(仅GID)。

groups命令:查看用户所属组

groups命令以简洁方式列出用户的所有组(主组+附加组):

  • 当前用户组groups(输出:user : user adm sudo);
  • 指定用户组groups username(如groups mysql,输出mysql : mysql root)。

sudo -l命令:查看sudo授权权限

sudo(Superuser Do)允许普通用户以其他用户(通常是root)身份执行命令,sudo -l用于查看当前用户被授权执行的sudo命令:

  • 当前用户sudo权限sudo -l(输出示例:User user may run the following commands on hostname: (ALL : ALL) ALL,表示可切换为任何用户执行任何命令;或/usr/bin/apt update,表示仅可执行apt update);
  • 指定用户sudo权限sudo -l -U username(需root权限,查看其他用户的sudo授权)。

文件/目录权限的深度解读

文件权限与目录权限的区别

  • 文件权限
    • 读(r):查看文件内容(如cat file.txt);
    • 写(w):修改或删除文件(需对文件所在目录有写权限,否则无法删除);
    • 执行(x):运行可执行文件(如脚本、二进制程序,无x权限则无法通过./file.sh执行)。
  • 目录权限
    • 读(r):列出目录内容(如ls /var/log,需r权限);
    • 写(w):在目录中创建/删除文件/子目录(如touch /var/log/newfile,需w权限);
    • 执行(x):进入目录(如cd /var/log,需x权限,无x权限则无法访问目录内文件,即使有r权限)。

权限对操作的影响示例

假设目录/data权限为drwxr-x--- 2 root root 4096 Oct 20 11:00(属主root,属组root,权限750),文件/data/file.txt权限为-rw-r--r-- 1 user group 4096 Oct 20 11:00

  • 用户user(属group组)可ls /data(目录有rx权限),可cat /data/file.txt(文件有r权限),但无法touch /data/newfile(目录无w权限);
  • 其他用户(如guest)无法ls /data(目录无其他用户权限),更无法访问file.txt

特殊权限:SUID、SGID与Sticky Bit

除常规rwx权限外,Linux还支持三种特殊权限,用于满足特定场景需求:

特殊权限 作用场景 符号表示 数字表示 示例与说明
SUID 可执行文件 s 4 /usr/bin/passwd权限为-rwsr-xr-x,属root,用户执行时以root身份修改密码(仅影响文件执行过程)。
SGID 目录或可执行文件 s 2 /home/shared目录权限为drwxrws---,属组shared,用户在目录内创建的文件自动继承属组shared,便于团队协作。
Sticky Bit 公共目录 t 1 /tmp目录权限为drwxrwxrwt,普通用户可创建/删除自己的文件,但无法删除其他用户的文件(防止误删)。

查看特殊权限:ls -l中,若属主权限位为s(而非x)表示SUID,属组权限位为s表示SGID,其他用户权限位为t表示Sticky Bit。-rwsr-xr-t 1 root root 4096 file(包含SUID和Sticky Bit)。

ACL权限:更精细的访问控制

传统权限仅支持“用户-用户组-其他”三类主体,而ACL(Access Control List)可针对特定用户/用户组设置独立权限,适用于需要精细化控制的场景(如Web服务器目录)。

在linux中如何查看用户权限

查看ACL权限:getfacl

getfacl命令用于显示文件/目录的ACL权限:

getfacl /var/www/html
# 输出示例:
# file: var/www/html
# owner: root
# group: www-data
# user::rwx
# user:apache:r-x          # 用户apache有rx权限
# group::r-x               # 属组www-data有rx权限
# mask::r-x                # 权限掩码,限制最大有效权限
# other::r--               # 其他用户有r权限

设置ACL权限:setfacl

  • 为用户添加权限:setfacl -m u:username:rw /file(给用户username添加读写权限);
  • 为用户组添加权限:setfacl -m g:groupname:r-x /dir(给groupname组添加读执行权限);
  • 删除ACL权限:setfacl -x u:username /file(删除用户username的ACL权限)、setfacl -b /dir(删除所有ACL权限)。

实际应用场景:排查权限问题

当用户无法访问文件或执行命令时,可按以下步骤排查权限:

  1. 确认用户身份id username,查看UID/GID及所属组;
  2. 查看文件/目录权限ls -l /path,确认属主、属组及三类主体的rwx权限;
  3. 检查特殊权限ls -l中是否有s、t字符,或getfacl /path查看ACL权限;
  4. 验证sudo授权sudo -l -U username,确认是否有sudo权限执行目标命令。

权限字符与数字对应表

权限字符 权限含义 数字值 示例(权限位)
r 4 r– = 4
w 2 -w- = 2
x 执行 1 –x = 1
无权限 0 — = 0
s SUID/SGID 4/2 rws = 7 (SUID)
t Sticky Bit 1 rwt = 7 (Sticky)

文件权限与目录权限作用对比表

操作类型 文件权限要求 目录权限要求 说明
查看文件内容 r 需对文件有r权限,与目录权限无关(除非通过目录路径访问,此时需目录x权限)。
修改文件内容 w 需对文件有w权限,若要删除文件,需对文件所在目录有w权限。
执行文件 x 需对文件有x权限(如./script.sh)。
列出目录内容 r 需对目录有r权限(如ls /dir)。
进入目录 x 需对目录有x权限(如cd /dir),无x权限则无法访问目录内文件
在目录中创建/删除文件 w 需对目录有w权限(如touch /dir/filerm /dir/file)。

相关问答FAQs

Q1:为什么有些目录即使有r权限也无法进入?
A:目录的“执行(x)”权限是进入目录的必要条件,若仅有r权限无x权限,可通过ls /dir列出目录内容(因有r权限),但无法执行cd /dir进入目录(因缺少x权限),目录权限为drwxr-----(属主7,属组5,其他0),其他用户有r权限(4)但无x权限(1),因此无法进入。

Q2:如何查看某个用户是否有sudo权限?
A:可通过以下两种方式查看:

  1. 使用sudo -l命令(推荐):以root身份或目标用户身份执行sudo -l -U username,若输出“User username may run the following commands…”则表示有sudo权限,否则提示“User username is not allowed to run sudo on hostname”。
  2. 检查/etc/sudoers文件:需root权限,执行visudo(安全编辑/etc/sudoers),查找username ALL=(ALL:ALL) ALL或类似规则,存在则表示有sudo权限(ALL表示可从任何终端、以任何用户身份执行任何命令)。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/35799.html

(0)
酷番叔酷番叔
上一篇 2025年10月4日 15:15
下一篇 2025年10月4日 15:32

相关推荐

  • Linux压缩超大文件有哪些高效且不卡顿的方法?

    在Linux系统中处理超大文件压缩时,需综合考虑压缩率、速度、内存占用及存储空间等因素,由于超大文件(如数十GB以上的数据)对系统资源要求较高,需选择合适的工具和方法,避免因内存不足或磁盘I/O瓶颈导致压缩失败或效率低下,以下从基础工具到高级技巧,详细解析Linux中压缩超大文件的实践方法,基础压缩工具对比与选……

    2025年10月7日
    1000
  • 如何快速查看电脑/手机默认网关?

    在Linux系统中,删除默认网关是网络配置调整的常见操作,通常用于切换网络环境、解决路由冲突或故障排除,以下是三种主流方法,操作前请务必注意:备份当前配置:执行 ip route show > ip_route_backup.txt 保存现有路由表权限要求:所有命令需 root 权限(前缀 sudo 或切……

    2025年7月14日
    6300
  • 如何设置Linux系统语言为英文?

    在Linux系统中,将语言环境设置为英文通常是为了避免因编码问题导致的显示异常、符合开发环境需求,或使用部分仅支持英文的软件,以下是不同场景下设置Linux语言为英文的详细方法,涵盖图形界面和命令行操作,适用于主流发行版如Ubuntu、Debian、CentOS、Fedora等,通过图形界面设置(适合桌面用户……

    2025年8月25日
    3300
  • linux如何删除ip

    Linux中,删除IP地址可通过`ip addr del /

    2025年8月15日
    3300
  • 如何让老旧Linux设备启动提速50%?

    诊断启动瓶颈(先分析后优化)使用 systemd-analyze 工具systemd-analyze time # 查看总启动时间systemd-analyze blame # 列出各服务耗时(前10名)systemd-analyze critical-chain # 分析关键路径服务输出示例:Startup……

    2025年7月16日
    5400

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信