温馨提示×

ubuntu文件管理怎样设置权限更安全

小樊
40
2025-11-23 04:51:51
栏目: 智能运维

Ubuntu 文件与目录权限安全设置指南

一 核心原则与权限基础

  • 坚持最小权限原则:仅授予完成工作所必需的最小权限,避免使用777或过度递归修改。
  • 理解权限对文件与目录的不同影响:
    • 文件:r 查看内容,w 修改内容,x 执行(脚本/二进制)。
    • 目录:r 列出条目,w 创建/删除条目,x 进入目录;删除文件取决于目录的wx,而非文件自身权限。
  • 三类主体:所有者 u / 所属组 g / 其他 o;权限位用rwx表示,可用数字模式(如 755、644)或符号模式(如 u+x、g-w、o=r)设置。

二 常用命令与典型安全配置

  • 查看与修改
    • 查看权限:ls -l /path
    • 修改权限:chmod 755 file|dir(目录常用),chmod 644 file(常规文件)
    • 递归设置:chmod -R 755 /path(谨慎使用 -R)
    • 修改所有者/组:sudo chown user:group file|dir,递归:sudo chown -R user:group /path
  • 典型安全配置
    • 可执行程序/目录:755(rwxr-xr-x)
    • 普通文件:644(rw-r–r–)
    • 私有文件(密钥、配置):600(rw-------)
    • 共享目录(组内协作):770(rwxrwx—),并将目录所属组设为共享组,必要时用 setgid 让新建文件继承组
    • 临时共享目录(如 /tmp 风格):1777(rwxrwxrwt,Sticky Bit 仅允许属主删除)
  • 特殊权限位
    • SUID(4):以文件所有者权限执行(如 passwd)
    • SGID(2):目录继承所属组;文件以所属组执行
    • Sticky Bit(1):目录内仅文件属主可删除
    • 建议:仅在确有必要时启用,并严格审计。

三 进阶控制与加固

  • 访问控制列表 ACL(细粒度授权)
    • 为用户/组授予超出传统 u/g/o 的权限:setfacl -m u:alice:rwx /data
    • 查看:getfacl /data
    • 递归与默认 ACL(目录新建文件继承):setfacl -R -d -m g:devs:rwx /data
  • 强制访问控制 MAC
    • Ubuntu 默认提供 AppArmor,可为关键服务(如 nginx、mysqld)加载受限策略,限制越权访问;必要时再考虑 SELinux。
  • 不可变属性防误删/篡改
    • 重要文件加不可变位:sudo chattr +i /path/file(撤销:sudo chattr -i /path/file
  • 系统级关键文件与目录
    • 确保系统身份与配置文件的权限正确,例如:/etc/passwd、/etc/group、/etc/shadow、/etc/hosts.allow、/etc/hosts.deny 等,避免被非授权修改。

四 风险排查与持续维护

  • 风险扫描
    • 查找过度开放权限的文件/目录:find /path -perm /o+w(其他可写)、find /path -perm /700(仅所有者全权)、find / -xdev -type f -perm -4000 -ls(SUID 文件)、find / -xdev -type f -perm -2000 -ls(SGID 文件)
  • 审计与监控
    • 使用 journalctl 与系统日志跟踪访问与异常行为,结合服务日志定位权限导致的故障。
  • 变更与回滚
    • 权限批量变更前先备份当前权限:getfacl -R /data > acl-backup.txt
    • 必要时按备份恢复:setfacl --restore=acl-backup.txt
  • 安全运维习惯
    • 定期更新系统与软件包;日常使用普通用户 + sudo,仅在必要时提权;对公网服务最小化端口与暴露面。

五 场景化配置示例

  • 私有家目录
    • 设置:chmod **700** ~chown **$USER:$USER** ~
    • 说明:仅属主可读写与进入,杜绝同机其他用户访问。
  • Web 服务目录(以 www-data 运行)
    • 设置:sudo chown -R www-data:www-data /var/www/htmlfind /var/www/html -type d -exec chmod **755** {} \;find /var/www/html -type f -exec chmod **644** {} \;
    • 说明:目录需 x 才能被访问,文件不需执行权限。
  • 共享开发目录(组内协作)
    • 设置:sudo chown -R :devs /datasudo chmod **770** /datasudo chmod **g+s** /data(新建文件继承组),按需添加 ACL:setfacl -d -m g:devs:rwx /data
    • 说明:组内成员可共同读写,其他用户无权限。

0