CentOS文件管理安全设置指南
文件权限是文件安全的基石,需遵循“最小权限原则”分配访问权。
ls -l
查看文件权限(如-rw-r--r--
表示所有者可读写,组和其他用户仅可读),ls -ld
查看目录本身权限(避免混淆内容权限)。chmod u=rwx,g=rx,o=r filename
(精确设置所有者、组、其他用户的权限);chmod u+x script.sh
(给所有者添加执行权限)。chmod 755 /usr/bin
(所有者7=读+写+执行,组和其他5=读+执行,适合可执行目录);chmod 600 /etc/shadow
(仅所有者可读写,严格保护敏感文件)。chown root:admin /data
(将/data
的所有者设为root
,组设为admin
);chgrp developers /project
(将/project
的组改为developers
)。chmod u+s /usr/bin/passwd
(允许普通用户以root
身份运行passwd
命令,修改密码);chmod g+s /shared
(目录内新建文件继承父目录组,方便团队协作);chmod +t /tmp
(仅文件所有者可删除/tmp
中的文件,防止误删他人文件)。当基础权限无法满足复杂需求时,使用**访问控制列表(ACL)**实现更细粒度的权限分配。
yum install -y acl
(CentOS默认未安装,需手动安装)。setfacl -m u:username:rwx /path/to/dir
(给特定用户username
添加目录的读、写、执行权限);setfacl -m g:groupname:r-- /etc/sensitive.conf
(给特定组groupname
添加文件的只读权限)。getfacl /path/to/file
(显示文件的ACL规则)。SELinux(安全增强型Linux)提供强制访问控制(MAC),限制进程对文件的访问,弥补传统权限的不足。
sestatus
(显示SELinux是否启用,Enforcing
表示强制模式)。setenforce 1
(临时切换为强制模式);修改/etc/selinux/config
中的SELINUX=enforcing
(永久生效)。chcon -t etc_t /etc/passwd
(将/etc/passwd
的SELinux上下文设为etc_t
,符合系统标准);restorecon -v /etc/passwd
(恢复默认上下文)。使用chattr
命令设置文件不可变属性,避免文件被删除、修改或重命名(即使root
用户也无法操作)。
chattr +i /etc/passwd
(锁定/etc/passwd
,防止篡改);chattr +i /etc/shadow
(锁定密码文件)。lsattr /etc/passwd
(显示文件的属性,i
表示不可变)。chattr -i /etc/passwd
(需修改文件时取消不可变属性)。通过合理的用户和组管理,限制用户对文件的访问范围。
usermod -s /sbin/nologin username
(禁止用户username
切换到root
);passwd -l username
(锁定用户账户)。useradd -s /bin/rbash restricteduser
(使用受限shell,限制用户只能执行特定命令)。groupadd developers
(创建developers
组);usermod -aG developers user1
(将user1
加入developers
组,通过组权限控制访问)。通过审计工具监控文件访问,及时发现异常行为。
yum install -y audit
(安装auditd
服务)。systemctl enable --now auditd
(启动审计服务并设置开机自启)。auditctl -w /etc/passwd -p wa -k passwd_changes
(监控/etc/passwd
的写和属性修改操作,标记为passwd_changes
)。ausearch -k passwd_changes
(查看passwd_changes
相关的审计日志)。定期备份重要文件,确保数据可恢复。
tar -czvf /backup/etc_backup.tar.gz /etc
(压缩备份/etc
目录到/backup
)。rsync -avz /data /backup/data
(增量同步/data
目录到/backup/data
)。Bacula
、Amanda
等备份软件,实现自动化备份和保留策略。GnuPG
加密文件(gpg --symmetric --cipher-algo AES256 sensitive.txt
),解密时需输入密码。/boot
、/home
、/var
等目录挂载到独立分区,限制分区权限(如noexec
禁止执行)。firewalld
限制对文件管理服务的访问(如firewall-cmd --add-service=ssh --permanent
,仅允许SSH连接)。