如何查看Linux用户权限?

查看用户基本权限信息

  1. id 命令
    显示用户UID(用户ID)、GID(主组ID)及所属的所有用户组:

    id username  # 查看指定用户
    id           # 查看当前用户

    输出示例
    uid=1000(ubuntu) gid=1000(ubuntu) groups=1000(ubuntu),4(adm),27(sudo)
    说明:用户ubuntu属于admsudo组,拥有管理员权限。

  2. groups 命令
    快速列出用户所属的用户组:

    groups username

检查用户特权权限

  1. sudo -l 命令
    查看当前用户被授予的sudo权限(需输入密码):

    sudo -l

    关键输出
    (ALL : ALL) ALL 表示用户可执行所有命令。
    (ALL) NOPASSWD: /usr/bin/apt 表示无需密码即可运行apt

  2. 查看 /etc/sudoers 文件
    系统级sudo配置(必须通过visudo安全编辑):

    sudo cat /etc/sudoers | grep -v '^#' | grep -v '^$'

    注意:直接编辑此文件可能导致系统故障,务必使用visudo


分析文件与目录权限

  1. ls -l 命令
    查看文件/目录的详细权限:

    ls -l /path/to/file

    权限标识解析
    -rwxr-xr-- 拆分为:

    • 首位 :文件类型(为文件,d为目录)
    • rwx:所有者权限(读、写、执行)
    • r-x:所属组权限
    • r--:其他用户权限
  2. namei 命令
    递归查看路径中所有组件的权限(适用于目录):

    namei -l /path/to/directory

检查系统配置文件

  1. 用户信息文件 /etc/passwd
    查看用户基础配置:

    grep username /etc/passwd

    字段说明
    ubuntu:x:1000:1000:Ubuntu User:/home/ubuntu:/bin/bash
    依次为:用户名、密码占位符、UID、GID、描述、家目录、登录Shell。

  2. 用户组文件 /etc/group
    确认组内成员:

    grep groupname /etc/group

    输出示例
    sudo:x:27:user1,user2 表示sudo组包含user1user2


特殊权限检测

  1. SUID/SGID/Sticky Bit

    • SUIDs):文件运行时以所有者权限执行(如/usr/bin/passwd)。
    • SGIDs):目录内新建文件继承组权限。
    • Sticky Bitt):仅文件所有者可删除目录内文件(如/tmp)。
      通过ls -l查看:
      -rwsr-xr-x(SUID)、drwxrwsr-x(SGID)、drwxrwxrwt(Sticky Bit)。
  2. umask
    显示新建文件的默认权限掩码:

    umask

    示例0022 表示默认权限为755(目录)或644(文件)。


权限管理建议

  1. 最小权限原则:用户仅获取必要权限,避免使用root账户日常操作。
  2. 定期审计:通过脚本自动化检查/etc/sudoers和用户组配置。
  3. 敏感文件防护:关键目录(如/etc)应限制为root写权限:
    ls -ld /etc  # 理想权限:drwxr-xr-x

Linux权限系统通过用户、组、文件权限的三层机制实现精细控制,掌握idsudo -lls -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

(0)
酷番叔酷番叔
上一篇 2025年7月9日 17:18
下一篇 2025年7月9日 17:42

相关推荐

  • 如何在Linux下运行Dev-C++开发工具?

    在Linux操作系统中直接运行Windows版的Dev-C++是不可能的,因为Dev-C++是专为Windows平台设计的C/C++集成开发环境(IDE),依赖于Windows的系统库和运行时环境,用户可以通过兼容层、替代IDE或命令行工具等方式,在Linux下实现类似Dev-C++的C/C++开发体验,以下是……

    2025年10月3日
    7000
  • Linux如何解压RAR文件?

    安装解压工具通过包管理器安装(推荐)Ubuntu/Debian:sudo apt updatesudo apt install unrar # 安装免费版unrar若需完整版(含压缩功能):sudo add-apt-repository multiverse # 启用非免费软件源sudo apt install……

    2025年7月17日
    9400
  • Linux如何ping通外网?测试外网连通性的疑问?

    在Linux系统中,ping命令是最基础的网络连通性测试工具,它基于ICMP(Internet Control Message Protocol,互联网控制报文协议)协议,通过向目标主机发送数据包并接收响应,来判断网络是否可达、延迟高低及丢包情况,要测试Linux主机能否访问外网,需从本地网络配置逐步排查到外网……

    2025年9月22日
    6600
  • Linux下如何同步时间设置?系统时间同步方法详解

    Linux系统中的时间管理涉及两个核心概念:系统时间(由内核维护,运行时保存在内存中)和硬件时钟(RTC,由主板电池供电,关机后仍运行),时间同步的目的是确保系统时间与标准时间源一致,避免因时间偏差导致日志混乱、证书失效等问题,以下是Linux下时间同步的详细方法及操作步骤,手动调整时间(临时方案)若仅需临时修……

    2025年10月7日
    5400
  • Linux系统如何连接并操作FTP服务器?

    在Linux系统中,FTP(File Transfer Protocol,文件传输协议)是一种常用的文件传输方式,主要用于在客户端和服务器之间上传、下载文件,尽管现代场景中更推荐使用SFTP(基于SSH的安全文件传输)或FTPS(FTP over SSL/TLS)等更安全的协议,但FTP因其简单性和兼容性仍被部……

    2025年9月9日
    8900

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信