Linux中如何查看文件及目录的权限信息?

Linux文件权限是系统安全的核心机制,决定了不同用户对文件的访问操作,查看文件权限是日常管理和排查问题的基础操作,本文将详细介绍Linux中查看文件权限的各种方法、权限位含义及关联知识。

linux如何查看文件权限

基础查看命令:ls

ls是Linux中最常用的文件列表命令,结合不同选项可查看详细的权限信息。

ls -l:显示长格式权限

ls -l会以长格式列出文件信息,输出结果中每行包含权限、所有者、所属组、大小、修改时间等字段,

-rw-r--r-- 1 user group 1024 Oct 20 10:30 test.txt  
drwxr-x--- 2 user group 4096 Oct 20 09:15 Documents/  

字段解析(从左到右):

  • 第1位:文件类型,表示普通文件,d表示目录,l表示软链接,b/c表示块设备/字符设备等。
  • 第2-10位:权限位,分3组,每组3位,分别对应用户(User,文件所有者)、组(Group,所属组)、其他(Others,其他用户)的权限,每组顺序为读(r)、写(w)、执行(x)。
    • 示例中-rw-r--r--:普通文件,用户有读写权限(rw-),组和其他用户只有读权限(r–)。
    • 示例中drwxr-x---:目录,用户有读、写、执行权限(rwx,目录的“执行”权限表示可进入目录),组有读、执行权限(r-x),其他用户无权限(—)。
  • 第11位:硬链接数(普通文件为1,目录的硬链接数包含和,所以通常≥2)。
  • 第12-13位:所有者(user)和所属组(group)。
  • 后续字段:文件大小(字节)、修改时间、文件名。

ls常用选项组合

选项 作用 示例
-a 显示所有文件(包括隐藏文件,以开头) ls -la
-h 以人类可读格式显示大小(如K、M、G) ls -lh
-i 显示文件的inode号 ls -li
-d 显示目录本身信息(不列出目录内容) ls -ld Documents/

详细权限查看:stat命令

stat命令比ls -l提供更详细的文件元数据,包括精确的时间戳、权限、UID/GID等。

示例输出:

  File: test.txt  
  Size: 1024        Blocks: 8          IO Block: 4096   regular file  
Device: 801h/2049d  Inode: 131073      Links: 1  
Access: (0644/-rw-r--r--)  Uid: ( 1000/   user)   Gid: ( 1000/  group)  
Access: 2023-10-20 10:30:00.000000000 +0800  
Modify: 2023-10-20 10:30:00.000000000 +0800  
Change: 2023-10-20 10:30:00.000000000 +0800  
 Birth: -  

关键信息:

  • Access:权限的八进制表示(0644)和符号表示(-rw-r--r--),八进制中第一位表示文件类型(0普通文件,4目录等),后三位对应r=4、w=2、x=1的组合(如6=4+2即rw-,4=4+0即r–)。
  • Uid/Gid:文件所有者和所属组的数字ID(可通过/etc/passwd和/etc/group查看对应用户名/组名)。
  • Access/Modify/Change:
    • Access(访问时间):最后一次读取文件内容的时间。
    • Modify(修改时间):最后一次修改文件内容的时间。
    • Change(状态改变时间):最后一次修改文件元数据(如权限、所有者)的时间。

权限位深入解析

符号权限与八进制权限

权限 符号表示 八进制值 含义
读 r 4 可查看文件内容(文件)/可列出目录内文件(目录)
写 w 2 可修改文件内容(文件)/可在目录中创建/删除文件(目录)
执行 x 1 可执行文件(文件)/可进入目录(目录)

组合示例:

linux如何查看文件权限

  • rwx(7):用户权限,可读、写、执行(如所有者权限)。
  • r-x(5):组权限,可读、执行,不可写。
  • (0):其他用户无权限。

特殊权限

除了基本rwx权限,Linux还有3种特殊权限,用于特定场景:

特殊权限 符号表示 八进制值 作用 示例
SUID u=s 4 用户执行时以文件所有者身份运行(仅对可执行文件有效) /usr/bin/passwd(普通用户修改密码时以root身份执行)
SGID g=s 2 用户执行时以文件所属组身份运行;目录设置后,新建文件/目录继承该组权限 共享目录(如/project,确保组内成员统一权限)
Sticky Bit o=t 1 仅对目录有效,目录下文件只有所有者或root可删除 /tmp(防止普通用户删除其他用户文件)

查看特殊权限:ls -l中若权限位出现s或t,则表示有特殊权限(如rwsr-xr-t,用户权限位为s,其他权限位为t)。

ACL(访问控制列表)精细权限

当需要为特定用户/组设置独立于基本权限的精细权限时,可使用ACL。

查看ACL:getfacl

getfacl test.txt

输出示例:

# file: test.txt  
# owner: user  
# group: group  
# flags: -s-   # 表示有SGID权限  
user::rw-              # 用户权限:rw-  
user:alice:r--         # 特定用户alice:r--  
group::r--             # 组权限:r--  
group:dev:rwx          # 特定组dev:rwx  
mask::r--              # 掩码(限制有效权限)  
other::r--             # 其他用户权限:r--  

设置ACL:setfacl

# 给用户alice添加读写权限
setfacl -m u:alice:rw test.txt  
# 给dev组添加执行权限
setfacl -m g:dev:x test.txt  
# 移除alice的权限
setfacl -x u:alice test.txt  

高级技巧:查找与递归查看

查找特定权限的文件:find

# 查找当前目录下所有用户可读的文件
find . -type f -perm /u+r  
# 查找权限为755的目录
find . -type d -perm 755  
# 查找其他用户无权限的文件
find . -type f -perm /o=-  

递归查看目录权限:ls -R或tree

# 递归列出所有文件和目录的权限(输出较长)
ls -lR Documents/  
# 使用tree命令以树形结构显示(需安装tree包)
tree -p -u -g -s Documents/  # -p显示权限,-u显示所有者,-g显示组,-s显示大小  

查看当前用户的默认权限:umask

umask决定新建文件/目录的默认权限(权限取反计算),

umask 0022  # 默认权限:文件666-022=644(rw-r--r--),目录777-022=755(rwxr-xr-x)

关联操作:权限修改与所有者变更

虽然本文聚焦“查看”,但了解关联命令有助于理解权限体系:

linux如何查看文件权限

  • 修改权限:chmod(符号模式chmod u+x file或八进制模式chmod 755 file)。
  • 修改所有者:chown user:group file(user为所有者,group为所属组)。
  • 修改所属组:chgrp group file。

相关问答FAQs

Q1:为什么有些文件显示为红色或蓝色?
A:Linux终端中文件颜色默认表示文件类型:蓝色(d)表示目录,绿色(可执行文件)表示可执行程序(如/bin/ls),红色()表示压缩文件(如.tar.gz),浅蓝色(l)表示软链接,灰色表示隐含文件,颜色可通过LS_COLORS环境变量自定义,例如export LS_COLORS="di=01;34"(目录显示为加粗蓝色)。

Q2:如何查看文件的所有者和所属组的详细信息(如UID/GID对应的真实用户名)?
A:ls -l会直接显示所有者用户名和所属组名,若需查看UID/GID,可结合id命令:

# 查看用户user的UID和所属组
id user  
# 输出示例:uid=1000(user) gid=1000(group) groups=1000(group),4(adm)  

若已知UID,可通过/etc/passwd查看用户名:grep "1000" /etc/passwd(输出格式:x:1000:1000::/home/user:/bin/bash),同理,GID对应组名在/etc/group中查询。

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

赞 (0)
酷番叔酷番叔
上一篇 2025年8月23日 05:58
下一篇 2025年8月23日 06:11

相关推荐

  • linux如何切换root用户

    Linux 中,切换 root 用户通常使用命令 su – 或 sudo -i。

    2025年8月16日
    24100
  • 在Linux系统中如何设置程序开机自启动?

    Linux系统开机自启动程序的配置是系统管理和运维中的常见需求,通过合理设置可确保关键服务或脚本在系统启动时自动运行,提升运维效率,本文将详细介绍几种主流的开机自启动配置方法,涵盖不同Linux发行版的应用场景和操作步骤,Systemd服务管理(主流推荐)Systemd是目前大多数现代Linux发行版(如Ubu……

    2025年9月16日
    21900
  • Linux如何进入U盘启动项?

    在Linux系统中进入U盘启动项是安装系统、运行Live环境或进行系统修复的常见操作,具体方法根据场景可分为两类:通过BIOS/UEFI设置直接启动U盘,或在已运行的Linux系统中通过GRUB引导加载U盘,以下是详细操作步骤和注意事项,前提条件:确保U盘可正常启动在尝试进入U盘启动前,需确认U盘已正确制作启动……

    2025年10月7日
    33900
  • 如何解决你常遇到的5大问题?

    在Linux GNOME桌面环境中更换软件源(Repository)是提升软件下载速度、获取稳定更新的关键操作,以下为详细步骤及注意事项,适用于Ubuntu、Debian等主流发行版(其他发行版逻辑类似):为什么需要换源?加速下载:国内用户访问官方源速度较慢,更换为国内镜像源(如阿里云、清华、中科大)可显著提升……

    2025年7月27日
    35400
  • Linux如何正确使用关机命令?常用命令及操作方法有哪些?

    Linux系统作为多用户、多任务的操作系统,安全、规范的关机操作至关重要,不当的关机方式可能导致数据丢失、文件系统损坏甚至硬件故障,本文将详细介绍Linux系统中常用的关机命令,包括其功能、参数、使用场景及注意事项,帮助用户根据实际需求选择合适的关机方式,Linux关机命令详解Linux系统提供了多种关机命令……

    2025年8月23日
    30900

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信