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
[!NOTE]说明 dirname为搜索目录的名称,通常需要关注系统关键目录:/bin、/boot、/usr、/lib64、/lib、/var等。
如果此类文件无实际作用,可通过如下命令删除。
rm -f filename
[!NOTE]说明 filename为步骤1找出的文件名。
umask值用来为新创建的文件和目录设置缺省权限。如果没有设定umask值,则生成的文件具有全局可写权限,存在一定的风险。守护进程负责系统上某个服务,让系统可以接受来自用户或者是网络客户的要求。为了提高守护进程所创建文件和目录的安全性,建议设置其umask值为0027。umask值代表的是权限的“补码”,umask值和权限的换算方法请参见 "附录 > umask值含义" 。
[!NOTE]说明 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
[!NOTE]说明
可通过如下命令确定对应文件或目录是否设置了粘滞位,若回显中包含T标记,则为粘滞位文件或目录。命令中的filename为需要查询文件或目录的名称。
ls -l filename
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命令安排工作,造成系统易受攻击,需要指定可使用该命令的用户。
删除/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命令用于普通用户以root权限执行命令。为了增强系统安全性,有必要对sudo命令的使用权进行控制,只允许root使用sudo命令,限制其他帐户使用。openEuler默认未限制非root用户使用sudo命令的权限。
sudo命令的使用控制通过修改/etc/sudoers文件实现,需要注释掉如下配置行:
#%wheel ALL=(ALL) ALL
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。