Debian 修改文件属性的常用方法
一 查看与理解文件属性
- 使用 ls -l 查看文件或目录的详细属性,输出如:-rw-r–r-- 1 user group 1234 Jan 1 12:34 /path。其中首字段的 10 个字符分别表示:文件类型(如 - 普通文件、d 目录)与三组权限 rwx(依次为所有者/组/其他);后续字段为所有者、所属组、大小、时间与路径。权限位含义:r=4、w=2、x=1,可组合为八进制(如 7=rwx、6=rw-、5=r-x、4=r–、0=—)。
二 修改访问权限 chmod
- 符号模式(便于按需增删权限)
- 为所有者添加写权限:chmod u+w file
- 移除组的执行权限:chmod g-x file
- 设置所有用户为只读:chmod a=r file
- 八进制模式(直观设定完整权限)
- 常见示例:
- 755:rwxr-xr-x(目录常用,所有者全权,组与其他可读执行)
- 644:rw-r–r–(常规文件常用)
- 600:rw-------(仅所有者可读写,私钥等敏感文件)
- 常用选项
- 示例
- 递归设置网站目录为 755:sudo chmod -R 755 /var/www/html
- 仅所有者读写私钥:chmod 600 ~/.ssh/id_rsa
- 提示
- 对目录而言,x 权限决定能否进入与访问其内容;对脚本/程序,x 使其可被直接执行。
三 修改所有者和所属组 chown 与 chgrp
- 更改所有者:chown newowner file(如:sudo chown alice file)
- 同时更改所有者与组:chown newowner:newgroup file(如:sudo chown alice:devs file)
- 仅更改所属组:chgrp newgroup file(如:sudo chgrp www-data file)
- 递归与反馈
- 示例
- 将项目目录及其内容归属 deploy:deploy:sudo chown -R deploy:deploy /opt/myapp
- 注意
- 修改所有者/组通常需要 root 权限(使用 sudo)。仅当操作者属于目标组且满足系统策略时,方可更改所属组。
四 设置默认权限 umask
- 作用:umask 决定新创建文件/目录的默认权限掩码(从“全开权限”中去除的位)。
- 查看与临时设置
- 查看:umask(常见输出如 0022)
- 临时设置:umask 0077(本会话生效)
- 永久设置
- 写入配置文件(如 ~/.bashrc、~/.profile 或 /etc/profile):
umask 0022
- 使配置生效:source ~/.bashrc
- 典型默认效果
- umask 0022 时,新文件通常为 644(rw-r–r–),新目录通常为 755(rwxr-xr-x)。
五 扩展 不可变等高级属性 chattr 与 lsattr
- 适用场景:需要防止文件被修改、删除或重命名(如保护关键配置文件)。
- 安装工具(若未安装):sudo apt-get install e2fsprogs
- 常用属性与命令
- 设置不可变(无法修改/删除/重命名):sudo chattr +i file
- 取消不可变:sudo chattr -i file
- 查看属性:lsattr file(如输出含 i 表示不可变)
- 重要提示
- 设置/取消 i 属性通常需要 root;对系统关键文件操作前务必评估影响并做好备份。