查看用户基本权限信息
-
id
命令
显示用户UID(用户ID)、GID(主组ID)及所属的所有用户组:id username # 查看指定用户 id # 查看当前用户
输出示例:
uid=1000(ubuntu) gid=1000(ubuntu) groups=1000(ubuntu),4(adm),27(sudo)
说明:用户ubuntu
属于adm
和sudo
组,拥有管理员权限。 -
groups
命令
快速列出用户所属的用户组:groups username
检查用户特权权限
-
sudo -l
命令
查看当前用户被授予的sudo
权限(需输入密码):sudo -l
关键输出:
(ALL : ALL) ALL
表示用户可执行所有命令。(ALL) NOPASSWD: /usr/bin/apt
表示无需密码即可运行apt
。 -
查看
/etc/sudoers
文件
系统级sudo
配置(必须通过visudo
安全编辑):sudo cat /etc/sudoers | grep -v '^#' | grep -v '^$'
注意:直接编辑此文件可能导致系统故障,务必使用
visudo
。
分析文件与目录权限
-
ls -l
命令
查看文件/目录的详细权限:ls -l /path/to/file
权限标识解析:
-rwxr-xr--
拆分为:- 首位 :文件类型(为文件,
d
为目录) rwx
:所有者权限(读、写、执行)r-x
:所属组权限r--
:其他用户权限
- 首位 :文件类型(为文件,
-
namei
命令
递归查看路径中所有组件的权限(适用于目录):namei -l /path/to/directory
检查系统配置文件
-
用户信息文件
/etc/passwd
查看用户基础配置:grep username /etc/passwd
字段说明:
ubuntu:x:1000:1000:Ubuntu User:/home/ubuntu:/bin/bash
依次为:用户名、密码占位符、UID、GID、描述、家目录、登录Shell。 -
用户组文件
/etc/group
确认组内成员:grep groupname /etc/group
输出示例:
sudo:x:27:user1,user2
表示sudo
组包含user1
和user2
。
特殊权限检测
-
SUID/SGID/Sticky Bit
- SUID(
s
):文件运行时以所有者权限执行(如/usr/bin/passwd
)。 - SGID(
s
):目录内新建文件继承组权限。 - Sticky Bit(
t
):仅文件所有者可删除目录内文件(如/tmp
)。
通过ls -l
查看:
-rwsr-xr-x
(SUID)、drwxrwsr-x
(SGID)、drwxrwxrwt
(Sticky Bit)。
- SUID(
-
umask
值
显示新建文件的默认权限掩码:umask
示例:
0022
表示默认权限为755
(目录)或644
(文件)。
权限管理建议
- 最小权限原则:用户仅获取必要权限,避免使用
root
账户日常操作。 - 定期审计:通过脚本自动化检查
/etc/sudoers
和用户组配置。 - 敏感文件防护:关键目录(如
/etc
)应限制为root
写权限:ls -ld /etc # 理想权限:drwxr-xr-x
Linux权限系统通过用户、组、文件权限的三层机制实现精细控制,掌握id
、sudo -l
、ls -l
等命令是运维基础,而理解/etc/passwd
、/etc/group
及特殊权限(如SUID)能有效提升系统安全性,对于生产环境,建议结合审计工具(如auditd
)实现持续监控。
引用说明基于Linux核心文档(man pages)、Ubuntu官方安全指南及Red Hat权限管理最佳实践,命令测试环境为Linux Kernel 5.4+,兼容主流发行版(Ubuntu 20.04/CentOS 8)。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/6864.html