1. 如果/tmp是一个独立的磁盘分区,修改/etc/fstab文件中/tmp分区对应的挂载属性,加上nosuid、noexec、nodev三个选项即可
    LABEL=/tmp   /tmp          ext3    rw,nosuid,noexec,nodev   0 0 
    #nosuid、noexec、nodev选项表示不允许任何suid程序,在这个分区不能执行任何脚本等程序,以及不存在设备文件。

    在挂载属性设置完成后,重新挂载/tmp分区,保证设置生效。

  2. 对于/var/tmp,如果是独立分区,同样修改/etc/fstab文件即可;如果是/var分区下的一个目录,那么可以将/var/tmp目录下所有数据移动到/tmp分区下,然后在/var下做一个指向/tmp的软连接即可。也就是执行如下操作:
    [root@server ~]# mv /var/tmp/* /tmp  
    [root@server ~]# ln -s  /tmp /var/tmp
  3. 如果/tmp是根目录下的一个目录,那么设置稍微复杂,可以通过创建一个loopback文件系统来利用Linux内核的loopback特性将文件系统挂载到/tmp下,然后在挂载时指定限制加载选项即可
    [root@server ~]# dd if=/dev/zero of=/dev/tmpfs bs=1M count=10000 
    [root@server ~]# mke2fs -j /dev/tmpfs  
    [root@server ~]# cp -av /tmp /tmp.old  
    [root@server ~]# mount -o loop,noexec,nosuid,rw /dev/tmpfs /tmp  
    [root@server ~]# chmod 1777 /tmp  
    [root@server ~]# mv -f /tmp.old/* /tmp/  
    [root@server ~]# rm -rf /tmp.old

    编辑/etc/fstab,添加如下内容,以便系统在启动时自动加载loopback文件系统:

    /dev/tmpfs /tmp ext3 loop,nosuid,noexec,rw 0 0
  4. /dev/shm是一个共享内存设备,因此也可以通过修改/etc/fstab文件设置而实现,在默认情况下,/dev/shm通过defaults选项来加载,这样保证其安全性是不够的,需要修改/dev/shm的挂载属性,操作如下:
    tmpfs   /dev/shm    tmpfs   defaults,nosuid,noexec,rw  0 0
分类: 发行通用

2 条评论

发表回复

Avatar placeholder

您的邮箱地址不会被公开。 必填项已用 * 标注