温馨提示×

Ubuntu文件管理如何保护系统文件安全

小樊
43
2026-01-01 12:05:04
栏目: 智能运维

Ubuntu 文件管理保护系统文件安全的实用方案

一 权限与所有权基线

  • 使用ls -l查看权限与属主,使用chmod设置权限、用chown/chgrp调整属主与属组;对可执行文件与系统目录遵循“最小权限”原则。常见基线示例:
    • 系统可执行文件与目录:目录用755(rwxr-xr-x),普通可执行文件用755,仅管理员可写的配置文件用600/644(如仅 root 可写的用 600)。
    • 仅属主访问的敏感文件或目录:用700(rwx------),避免对“其他”开放写/执行。
    • 示例:sudo chmod 755 /usr/local/bin/appsudo chmod 600 /etc/secret.confsudo chown root:root /etc/secret.conf
  • 利用ACL做细粒度授权(在需要时对特定用户/组追加权限):setfacl -m u:alice:rwx /opt/app/config;查看:getfacl /opt/app/config
  • 对共享目录设置粘滞位 sticky:仅文件所有者可删除自己文件,防止多用户互相删除;如 /tmp 默认即有:chmod +t /shared/tmp
  • 严格控制SUID/SGID:仅对确有必要的系统二进制开放,定期排查并移除不必要的 SUID/SGID 文件,降低提权风险。

二 关键系统与用户配置文件的加固

  • 保护账户与认证数据库:确保关键文件仅 root 可写,权限典型为644(如 /etc/passwd/etc/group),影子文件600(如 /etc/shadow/etc/gshadow)。示例:sudo chmod 600 /etc/shadow; sudo chown root:shadow /etc/shadow
  • 保护网络与服务访问控制:对 /etc/hosts.allow/etc/hosts.deny 设置合适权限(通常644),仅授权用户可编辑。
  • 保护日志与关键运行时文件:对持续增长或易被误写的日志,可设置只追加 a属性,防止被截断或删除;示例:sudo chattr +a /var/log/myapp.log(撤销:sudo chattr -a)。
  • 对极其关键的系统文件(如 /etc/passwd/etc/shadow/boot/grub/grub.cfg)可设置不可变 i属性,在维护窗口外禁止任何修改:sudo chattr +i /boot/grub/grub.cfg(撤销:sudo chattr -i)。注意:设置 i 后,包管理器与更新将无法写入,需按维护流程临时解除。

三 防误删与可恢复性

  • 利用不可变属性 i只追加 a防止关键文件被删除或篡改:sudo chattr +i /path/file;日志类用 sudo chattr +a /var/log/...
  • 对多用户共享目录启用粘滞位 stickychmod +t /shared/dir,避免用户互相删除文件。
  • 使用文件系统快照提供回滚点:
    • Btrfssudo btrfs subvolume snapshot / /snap-$(date +%F)
    • LVMsudo lvcreate -L 10G -n snap-root -s /dev/mapper/vg-root
  • 建立定期备份:本地/远程皆可,示例:rsync -aAX --info=progress2 / /backup/root-$(date +%F);可按需加入 --delete 做镜像。
  • 若发生误删,尽量减少写入并尽快从快照或备份恢复;必要时使用恢复工具(如 extundelete、photorec)。

四 加固挂载选项与访问控制

  • /etc/fstab 中为非系统分区启用安全挂载选项:如nodev(禁止设备文件)、nosuid(禁止 SUID)、noexec(禁止执行)等;示例:/dev/sdb1 /data ext4 defaults,nodev,nosuid,noexec 0 2
  • 对临时目录与共享内存挂载点使用更严格选项:如 /tmp 使用 tmpfs defaults,nodev,nosuid,noexec;必要时为 /var/tmp 单独挂载。
  • 结合UFW限制入站/出站访问,仅开放必要端口与服务,降低通过服务与脚本对系统文件的间接破坏面。

五 审计监控与维护流程

  • 启用AppArmor(或 SELinux)对关键服务(如 sshd、nginx、docker)进行强制访问控制,限制其对系统文件的访问范围与能力。
  • 集中与定期检查系统日志sudo journalctl -xesudo tail -f /var/log/auth.log /var/log/syslog;可配合 Logwatch 做日报。
  • 持续更新系统与软件包,最小化安装,定期清理不再使用的包与旧内核,减少攻击面。
  • 对关键变更(如修改 /etc/boot/usr)采用“变更前快照/备份—变更—验证—保留回滚点”的流程;变更窗口内临时解除不可变 i属性,完成后立即恢复。

0