文件权限
设置文件的权限和属主
说明
Linux将所有对象都当作文件来处理,即使一个目录也被看作是包含有多个其他文件的大文件。因此,Linux中最重要的就是文件和目录的安全性。文件和目录的安全性主要通过权限和属主来保证。
openEuler默认对系统中的常用目录、可执行文件和配置文件设置了权限和属主。
实现
以/bin目录为例,修改文件权限和文件属主的操作如下:
修改文件权限。例如将/bin目录权限设置为755。
chmod 755 /bin
修改文件属主。例如将/bin目录的拥有者和群组设置为root:root。
chown root:root /bin
删除无主文件
说明
系统管理员在删除用户/群组时,存在着忘记删除该用户/该群组所拥有文件的问题。如果后续新创建的用户/群组与被删除的用户/群组同名,则新用户/新群组会拥有部分不属于其权限的文件,建议将此类文件删除。
实现
删除用户ID不存在的文件
查找用户ID不存在的文件。
find / -nouser
删除查找到的文件。其中 filename 为用户ID不存在文件的文件名。
rm -f filename
删除群组ID不存在的文件
查找群组ID不存在的文件。
find / -nogroup
删除查找到的文件。其中 filename 为群组ID不存在文件的文件名。
rm -f filename
处理空链接文件
说明
无指向的空链接文件,可能会被恶意用户利用,影响系统安全性。建议用户删除无效的空链接文件,提高系统安全性。
特殊场景
openEuler系统安装完成后,可能存在空链接文件,这些空链接文件可能有对应用途(有些空链接文件是预制的,会被其他组件依赖)。请用户根据实际环境进行处理,处理方式请参见实现。
例如,openEuler支持UEFI和legacy BIOS两种安装模式,两种引导场景支持的grub相关包默认都安装,当用户选择legacy BIOS模式安装时,形成空链接文件“/etc/grub2-efi.cfg”;当用户选择UEFI模式安装时,会形成空链接文件“/etc/grub2.cfg”,需要用户根据实际情况处理空链接。
实现
find dirname -type l -follow 2>/dev/null
说明:
dirname为搜索目录的名称,通常需要关注系统关键目录:/bin、/boot、/usr、/lib64、/lib、/var等。如果此类文件无实际作用,可通过如下命令删除。
rm -f filename
说明:
filename为步骤1找出的文件名。
设置守护进程的umask值
说明
umask值用来为新创建的文件和目录设置缺省权限。如果没有设定umask值,则生成的文件具有全局可写权限,存在一定的风险。守护进程负责系统上某个服务,让系统可以接受来自用户或者是网络客户的要求。为了提高守护进程所创建文件和目录的安全性,建议设置其umask值为0027。umask值代表的是权限的“补码”,umask值和权限的换算方法请参见 "附录 > umask值含义" 。
说明:
openEuler默认已设置守护进程的umask值为0022。
实现
在配置文件/etc/sysconfig/init中新增一行:umask 0027。
为全局可写目录添加粘滞位属性
说明
任意用户可以删除、修改全局可写目录中的文件和目录,为了确保全局可写目录中的文件和目录不会被任意删除,需要为全局可写目录添加粘滞位属性。
实现
搜索全局可写目录。
find / -type d -perm -0002 ! -perm -1000 -ls | grep -v proc
为全局可写目录添加粘滞位属性。dirname 为实际查找到的目录名。
chmod +t dirname
删除非授权文件的全局可写属性
说明
全局可写文件可被系统中的任意用户修改,影响系统完整性。
实现
列举系统中所有的全局可写文件。
find / -type d ( -perm -o+w ) | grep -v proc find / -type f ( -perm -o+w ) | grep -v proc
查看步骤1列举的所有文件(粘滞位的文件和目录可以排除在外),删除文件或去掉其全局可写权限。使用以下命令去掉权限,其中filename为对应文件名:
chmod o-w filename
说明:
可通过如下命令确定对应文件或目录是否设置了粘滞位,若回显中包含T标记,则为粘滞位文件或目录。命令中的filename为需要查询文件或目录的名称。ls -l filename
限制at命令的使用权限
说明
at命令用于创建在指定时间自动执行的任务。为避免任意用户通过at命令安排工作,造成系统易受攻击,需要指定可使用该命令的用户。
实现
删除/etc/at.deny文件。
rm -f /etc/at.deny
创建/etc/at.allow并将/etc/at.allow的文件属主改为root:root。
touch /etc/at.allow chown root:root /etc/at.allow
控制/etc/at.allow的文件权限,仅root可操作。
chmod og-rwx /etc/at.allow
限制cron命令的使用权限
说明
cron命令用于创建例行性任务。为避免任意用户通过cron命令安排工作,造成系统易受攻击,需要指定可使用该命令的用户。
实现
删除/etc/cron.deny文件。
rm -f /etc/cron.deny
创建/etc/cron.allow并将/etc/cron.allow的文件属主改为root:root。
touch /etc/cron.allow chown root:root /etc/cron.allow
控制/etc/cron.allow的文件权限,仅root可操作。
chmod og-rwx /etc/cron.allow
限制sudo命令的使用权限
说明
sudo命令用于普通用户以root权限执行命令。为了增强系统安全性,有必要对sudo命令的使用权进行控制,只允许root使用sudo命令,限制其他帐户使用。openEuler默认未限制wheel组内的非root用户使用sudo命令的权限。
实现
sudo命令的使用控制通过修改/etc/sudoers文件实现,需要注释掉如下配置行:
#%wheel ALL=(ALL) ALL