在Linux系统中,文件属性是操作系统管理文件的重要依据,通过修改文件属性可以控制文件的访问权限、所有者、时间戳等关键信息,Linux提供了多种命令来修改文件属性,这些命令功能强大且灵活,能够满足不同场景下的管理需求,本文将详细介绍常用的Linux文件属性修改命令,包括chmod、chown、chgrp、touch、ln等,并通过实例说明其具体用法。

修改文件权限:chmod命令
文件权限决定了用户对文件的读取、写入和执行权限,Linux中使用r(读)、w(写)、x(执行)表示不同权限,分别对应数字4、2、1。chmod命令用于修改文件或目录的权限,其有两种使用方式:符号模式和数字模式。
符号模式
符号模式通过who(用户类型)、operator(操作符)和permission(权限)组合来修改权限,用户类型包括u(所有者)、g(所属组)、o(其他用户)、a(所有用户);操作符包括(添加权限)、(移除权限)、(设置权限)。
chmod u+x file.txt:为文件所有者添加执行权限。chmod go-w file.txt:移除所属组和其他用户的写权限。chmod a=rwx file.txt:设置所有用户具有读写执行权限。
数字模式
数字模式通过八进制数字直接设置权限,例如755表示所有者有rwx权限(7=4+2+1),所属组和其他用户有r-x权限(5=4+1)。
chmod 644 file.txt:设置所有者读写权限,所属组和其他用户只读权限。chmod 755 script.sh:设置脚本文件所有者可执行,其他用户可读可执行。
递归修改目录权限
使用-R选项可以递归修改目录及其下所有文件的权限,例如chmod -R 700 directory会将目录及其所有内容设置为仅所有者可读写执行。

修改文件所有者和所属组:chown和chgrp命令
chown命令
chown命令用于修改文件的所有者,格式为chown [选项] 所有者:文件名。
chown user file.txt:将文件所有者改为user。chown user:group file.txt:同时修改所有者和所属组为user和group。chown -R user directory:递归修改目录及其下所有文件的所有者。
chgrp命令
chgrp命令专门用于修改文件的所属组,格式为chgrp [选项] 组名 文件名。
chgrp group file.txt:将文件所属组改为group。chgrp -R group directory:递归修改目录及其下所有文件的所属组。
修改文件时间戳:touch命令
touch命令主要用于修改文件的访问时间(atime)和修改时间(mtime),或创建新文件,默认情况下,touch会更新文件的时间戳为当前时间,
touch file.txt:若文件不存在则创建,否则更新时间戳。touch -t 202301011200 file.txt:设置文件时间为2023年1月1日12:00。touch -a file.txt:仅修改访问时间。touch -m file.txt:仅修改修改时间。
创建链接文件:ln命令
链接文件分为硬链接和软链接(符号链接),ln命令用于创建链接,硬链接与原文件共享同一inode,只能对普通文件创建;软链接是一个独立的文件,指向原文件的路径,可用于目录或跨文件系统。

ln source.txt hardlink.txt:创建硬链接。ln -s source.txt softlink.txt:创建软链接。ln -s /path/to/source /path/to/link:创建指向绝对路径的软链接。
其他文件属性修改命令
chattr命令
chattr用于修改文件的扩展属性,常用于保护文件不被修改。
chattr +i file.txt:设置文件为不可变,即使root用户也无法修改或删除。chattr -a file.txt:移除文件只能追加数据的属性。lsattr file.txt:查看文件的扩展属性。
file命令
file命令用于查看文件的类型和编码格式,
file file.txt:显示文件类型为“ASCII text”。file -i file.txt:显示文件的MIME类型。
文件属性修改场景示例
以下为常见场景的命令组合使用:
- 设置脚本文件可执行:
chmod +x script.sh。 - 批量修改目录权限:
find /path -type d -exec chmod 755 {} \;(设置目录权限为755)。 - 修改网站目录权限:
chown -R www:www /var/www/html(设置所有者为Web服务用户)。 - 保护重要文件:
chattr +i /etc/passwd(防止系统关键文件被篡改)。
文件权限与属性对照表
| 权限符号 | 数字表示 | 说明 |
|---|---|---|
| r | 4 | 读权限 |
| w | 2 | 写权限 |
| x | 1 | 执行权限 |
| 0 | 无对应权限 | |
| rwx | 7 | 读写执行权限 |
| r-x | 5 | 读和执行权限 |
| -w- | 2 | 仅写权限 |
相关问答FAQs
问题1:如何批量修改某个目录下所有文件的权限?
解答:可以使用find命令结合chmod实现批量修改,将/var/www/html目录下所有文件权限设置为644,所有目录权限设置为755,可执行以下命令:
find /var/www/html -type f -exec chmod 644 {} \; # 修改文件权限
find /var/www/html -type d -exec chmod 755 {} \; # 修改目录权限
如果需要递归修改,可直接使用chmod -R 755 /var/www/html,但需注意避免过度开放权限导致安全风险。
问题2:为什么使用chown修改文件所有者时提示“Operation not permitted”?
解答:该错误通常由以下原因导致:
- 当前用户非
root用户,且无权限修改文件所有者(chown一般需要root权限)。 - 文件系统挂载时设置了
nosuid选项,限制了所有者变更。 - 文件被设置为不可变属性(
chattr +i),需先使用chattr -i移除保护。
解决方法:以root用户执行命令,或检查文件系统挂载选项及文件扩展属性。
