RELATEED CONSULTING
相关咨询
欢迎选择下列在线客服咨询
微信客服
微信客服二维码
热线电话:13863516421
7x24小时,全年无休
我们服务器的承诺:
关闭右侧工具栏

境外国外服务器专题

如何查看CentOS 9系统中文件的所属用户和用户组?

  • 来源:本站
  • 编辑: 超级管理员
  • 时间:2025-06-20 15:56:19
  • 阅读0次


在 CentOS 9 系统中,查看文件所属用户和用户组的方法主要通过命令行工具实现。以下是详细的操作方式及相关工具的使用说明:

一、使用ls命令查看基础权限信息

ls命令是最常用的文件查看工具,可直接显示文件的所有者和所属组。

1. 基本用法

bash

ls -l 文件名/目录名

# 或简写为

ll 文件名/目录名

2. 输出结果解析

以输出行-rw-r--r--. 1 root root 1234 6月 20 10:00 文档.txt为例:


第一列(-rw-r--r--):文件类型与权限(首位-表示普通文件,d表示目录)。

第三列(root):所有者(User),即文件的拥有者。

第四列(root):所属组(Group),即文件所属的用户组。

其他列:文件大小、修改时间等信息。

3. 批量查看目录下所有文件

bash

ls -la 目录名  # -a显示隐藏文件,-l显示详细信息

二、使用stat命令查看详细元数据

stat命令可显示文件的完整元数据,包括所有者和所属组的数字 ID(UID/GID)。

1. 语法

bash

stat 文件名/目录名

2. 关键输出示例

plaintext

  File: '文档.txt'

  Size: 1234            Blocks: 8          IO Block: 4096   普通文件

Device: fd00h/64768d    Inode: 1234567     Links: 1

Access: (0644/-rw-r--r--)  Uid: (    0/    root)  Gid: (    0/    root)

Access time: 2025-06-20 10:00:00

Modify time: 2025-06-20 10:00:00

Change time: 2025-06-20 10:00:00


Uid:所有者的用户名(root)和用户 ID(0)。

Gid:所属组的组名(root)和组 ID(0)。

三、使用getfacl命令查看 ACL 权限中的用户 / 组信息

如果文件启用了 ACL(访问控制列表),getfacl可显示更精细的权限配置,包括额外授权的用户和组。

1. 语法

bash

getfacl 文件名/目录名

2. 输出示例

plaintext

# file: 文档.txt

# owner: root

# group: root

user::rw-

user:user1:rwx                  # 额外授权user1读写执行

group::r--

mask::rwx

other::r--


owner:文件所有者(root)。

group:文件所属组(root)。

user:user1:rwx:ACL 中额外授权的用户user1及其权限。

四、通过文件路径递归查看(批量处理)

1. 使用find命令筛选并查看

bash

# 查找指定目录下所有文件的所有者和所属组

find /目录路径 -type f -exec ls -l {} \;


# 示例:查看/home目录下所有文件的详细信息

find /home -type f -exec ls -l {} \;

2. 结合xargs优化批量操作

bash

# 更高效地批量查看(避免命令过长)

find /目录路径 -type f | xargs ls -l

五、查看用户和组的映射关系(ID 与名称对应)

如果需要通过 UID/GID 反查用户名或组名,可使用以下方法:

1. 通过 UID 查用户名

bash

id -un UID号  # 示例:id -un 0 → root

2. 通过 GID 查组名

bash

id -gn GID号  # 示例:id -gn 0 → root

3. 直接查看系统用户和组文件

用户信息:cat /etc/passwd(格式:用户名:密码:UID:GID:描述:家目录:Shell)。

组信息:cat /etc/group(格式:组名:密码:GID:组成员)。

六、脚本化批量查看(示例)

若需定期查看大量文件的权限信息,可编写脚本:


bash

#!/bin/bash

# 文件名:check_permissions.sh

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin

export PATH


# 指定要检查的目录(默认当前目录)

DIR=${1:-$(pwd)}


echo "===== 文件权限检查报告 ====="

echo "目录:$DIR"

echo "检查时间:$(date)"

echo "------------------------"


# 递归查看目录下所有文件的所有者和所属组

find "$DIR" -type f -exec ls -l {} \; | while read line; do

    # 提取文件名、所有者、所属组

    file=$(echo $line | awk '{print $9}')

    owner=$(echo $line | awk '{print $3}')

    group=$(echo $line | awk '{print $4}')

    echo "文件:$file | 所有者:$owner | 所属组:$group"

done


保存后赋予执行权限:chmod +x check_permissions.sh,运行:./check_permissions.sh /目标目录。

七、安全运维建议

定期审计:通过find / -type f -not -user root -not -user 普通用户查找非 root 且非指定用户的文件,排查异常。

关注 SUID/SGID 文件:使用find / -type f -perm -4000(SUID)或find / -type f -perm -2000(SGID)查看特殊权限文件,避免恶意程序。

结合 ACL 管理复杂权限:当基础权限(所有者 / 组 / 其他用户)不足时,通过getfacl和setfacl配置精细化权限。


通过以上方法,可快速准确地查看 CentOS 9 系统中文件的所属用户和用户组,助力系统权限管理与安全审计。


我们提供7X24小时售后服务,了解更多机房产品和服务,敬请联系
购买咨询 售后服务