当前位置:首页 > Linux > 正文

Linux怎么查看用户权限?

使用 id 命令查看用户 UID、GID 及所属组, groups 命令直接显示用户所属组,检查 /etc/sudoers 或运行 sudo -l 查看 sudo 权限。

核心概念:Linux权限的组成

在操作前,需明确权限的三大要素:

  1. 用户身份:当前登录账户(如 root 或普通用户)。
  2. 组归属:用户所属的用户组(如 sudo、admin)。
  3. 文件/目录权限:通过 rwx(读/写/执行)控制访问。


查看当前用户权限的5种方法

方法1:检查用户身份与组归属

# 查看当前用户名 whoami # 查看用户所属的全部组 groups # 查看用户UID、GID及所属组 id

输出示例

uid=1000(ubuntu) gid=1000(ubuntu) groups=1000(ubuntu),4(adm),27(sudo)

解析

  • uid=1000(ubuntu):用户ID和用户名。
  • groups 后的列表:用户所属组(含 sudo 表示有管理员权限)。

方法2:验证sudo权限

sudo -l

输出示例

User ubuntu may run the following commands on host: (ALL : ALL) ALL

解析

若显示 (ALL : ALL) ALL,表明用户拥有完整的 sudo 权限(可执行任何命令)。

方法3:检查文件/目录权限

# 查看当前目录权限 ls -ld . # 查看指定文件权限(如 /etc/passwd) ls -l /etc/passwd

输出示例

解析

  • -rw-r--r--:权限标识(root用户可读写,其他用户只读)。
  • 首字符: 表示文件,d 表示目录。

方法4:测试命令执行权限

# 尝试读取受限文件(如 /etc/shadow) cat /etc/shadow 2>&1 | grep "Permission denied" # 尝试创建系统文件 touch /root/test.txt 2>&1 | grep "Permission denied"

解析

若返回 Permission denied,说明当前用户无权限操作。

方法5:使用权限检测工具

# 安装并运行 capability 检测工具(需提前安装 libcap-ng-utils) getpcaps $$

输出示例

Capabilities for `1234': = cap_net_raw+ep

解析

显示进程的特殊权限(如 cap_net_raw 允许原始网络操作)。


权限管理最佳实践

  1. 最小权限原则:日常操作使用普通账户,必要时通过 sudo 提权。
  2. 定期审计:使用 sudo -l 检查授权命令,避免过度赋权。
  3. 敏感文件防护:关键配置文件(如 /etc/sudoers)应设置为 root:root 440 权限。
  4. 组权限管理:通过 usermod -aG groupname username 添加用户组,避免直接修改 /etc/group。


常见问题排查

  • 问题:sudo 命令返回 user is not in the sudoers file。

    解决:联系管理员将用户加入 sudo 组:usermod -aG sudo username。

  • 问题:无法修改文件。

    解决

    1. 检查所有权:ls -l 文件名。
    2. 临时获取权限:sudo chown 用户名 文件名。


掌握 whoami、groups、sudo -l、ls -l 等命令,可快速定位权限范围,权限管理直接影响系统安全,建议遵循最小化授权原则,定期审查账户权限,避免安全风险。

引用说明

0