非常重要!!!关于Linux的安全优化权限详解

Linux安全优化权限的详解

1.对文件权限的理解

  1. 大家都知道Linux是一个多用户多界面的操作系统,那么,所谓的权限在Linux中就显得至关重要了。我们应该怎样去理解文件的权限呢?
  2. Linux文件的基本权限有9个,它们分别是拥有者(user),所属群组(group),其他人(others)这三种身份各自都有自己的读(read),写(write),执行(execute)权限。
  3. 文件的权限字符为【-rwxrwxrwx】,这九个权限三个为一组,第一组rwx为拥有者对文件的权限,第二组rwx为所属组对文件的权限,第三组rwx为其他人对文件的权限。
  4. r权限:对文件而言,表示可以查看文件的内容;对目录而言,表示可以列出目录中文件的名称。
    w权限:对文件而言,表示可以对文件的内容进行更改;对目录而言,表示可以更改目录中文件的数据。
    x权限:对文件而言,可以文件名称调用文件相应程序;对目录而言,表示是否可以进入此目录。

2.文件权限设定方式

1. 字符方式设定文件权限:
chmod u/g/o/a +/-/= (r/w/x) 文件/目录
chmod表示修改权限的命令;u/g/o/a代表用户身份;+代表加入权限,-代表减去权限,等号代表重新设置权限为,r代表可读,w代表可写,x代表可执行。

通过上面的介绍,我们对此应该有了初步的认识,那么来实践一下吧!

修改权限的身份必须是超级用户!!!
首先我们用cd命令切换到目录 /mnt/
然后用watch命令对目录 /mnt/ 进行监控,这样更有利于我们的观察。
非常重要!!!关于Linux的安全优化权限详解_第1张图片
监控的界面如下:
非常重要!!!关于Linux的安全优化权限详解_第2张图片
接下来我们首先打开一个新的shell
然后在 /mnt/ 用touch命令建立一个文件file,用mkdir命令建立目录xuruntian和目录file1,在监控界面我们可以清楚的看出文件和目录的初始权限。
非常重要!!!关于Linux的安全优化权限详解_第3张图片
接着我们用chmod命令对文件的权限进行修改,可以看出:拥有者增加了执行权限,拥有组增加了可写权限,其他人增加了可写权限。
非常重要!!!关于Linux的安全优化权限详解_第4张图片
注意:可以用等号对权限进行重置,可以看出,等号所对应的权限内容就是我们文件新的权限
非常重要!!!关于Linux的安全优化权限详解_第5张图片
同样的,加号代表对于相应身份权限的增加,下图我们可以看出目录相应的权限增加了。
非常重要!!!关于Linux的安全优化权限详解_第6张图片
同理:减号就代表了权限的减少,从下图可以看出,目录权限的减少变化。
非常重要!!!关于Linux的安全优化权限详解_第7张图片
注意:对于目录下面的文件权限的修改
这里要注意需要加 -R 才能改变目录下面文件的权限。下图中看出加了 -R 之后目录xuruntian底下的文件的权限才发生了改变。
非常重要!!!关于Linux的安全优化权限详解_第8张图片

2 .数字方式设定文件权限
chmod 4/2/1 文件/目录
4表示可读,2表示可写,1表示可执行,可以进行累加,所以,7就表示可读可写可执行,6就表示了可读可写,5就表示可写可执行。
数字方式修改权限的优势:比字符方式修改权限方便,操作简单。
下面我们来实践一下吧!!!
首先对文件 file进行755的权限修改,从下图可以看到文件对于拥有者可读可写可执行,对于拥有组可读可执行,其他人可读可执行。
非常重要!!!关于Linux的安全优化权限详解_第9张图片
同理:对于目录xuruntian的修改
非常重要!!!关于Linux的安全优化权限详解_第10张图片
如果需要对目录下面的文件进行修改,则需要加 -R
非常重要!!!关于Linux的安全优化权限详解_第11张图片

3.权限的复制
首先在目录 /mnt/ 下面建立文件 file 和 file2
然后用cat命令查看文件的内容
非常重要!!!关于Linux的安全优化权限详解_第12张图片
cp命令去复制文件的权限,可以看出,不仅文件的权限进行了复制,文件内容也被覆盖。那么,我们应该怎样复制权限而不覆盖文件内容呢?请往下看:
非常重要!!!关于Linux的安全优化权限详解_第13张图片
chmod –reference=文件1 文件2

–reference 表示只对文件的权限进行复制,从下图可以看出,文件的权限被复制了,但是文件的内容保持不变。故此,我们只对文件的权限进行了复制。
非常重要!!!关于Linux的安全优化权限详解_第14张图片

3.系统预留权限阀值

资源的存在价值在于共享资源,而权限影响着资源的共享,权限越大,资源共享越大,但是相应的安全性就降低了。所以对于系统而言,权限越小就越安全。所以我们引入了预留阀值。
怎样去改变预留阀值呢?
umask命令
首先我们用umask命令查看系统的预留阀值为022,我们新建文件和目录,可以看出文件的权限为644,目录的权限为755。
非常重要!!!关于Linux的安全优化权限详解_第15张图片
那么,我们怎样去提高阀值呢?
我们可以用命令umask加数字去改变,但是这种修改只是暂时性的当我们重新打开一个shell的时候,我们发现预留阀值为022,故这种方式只是暂时的。
非常重要!!!关于Linux的安全优化权限详解_第16张图片
那么,我们怎样永久设定预留阀值呢?
首先编辑文件 /etc/bashrc和/etc/profile文件,使它们的预留阀值为077,
非常重要!!!关于Linux的安全优化权限详解_第17张图片
非常重要!!!关于Linux的安全优化权限详解_第18张图片
从下图可以看出:对两个文件进行编辑后,然后source一下,我们就可以永久的改变了预留阀值,当我们重新打开一个shell时,可以发现预留阀值也是077。
非常重要!!!关于Linux的安全优化权限详解_第19张图片
永久设定预留阀值以后,我们新建文件和目录,从图中可以看出,文件和目录的初始权限变小了,安全性就得到了提高。
非常重要!!!关于Linux的安全优化权限详解_第20张图片

4.特殊权限

  1. STICKYID
    对于文件:表示文件即使没有被程序调用也会被加载到交换空间中;
    对于目录:表示当目录中有 STICKYID 的权限时 , 所有用户在该目录下均可创建文件 , 但只有文件拥有者和 root 用户可以删除该目录下的文件。

实验环境:/mnt/ ,建立目录Linux,然后对目录/mnt/Linux/ 进行监控
非常重要!!!关于Linux的安全优化权限详解_第21张图片
监控如下:
非常重要!!!关于Linux的安全优化权限详解_第22张图片
首先使用命令useradd建立用户xuruntianstudent,然后切换不同用户建立各自的文件,从监控中可以看出,两个用户分别建立了自己的文件。
非常重要!!!关于Linux的安全优化权限详解_第23张图片
注意:从下图发现我们用rm命令不仅可以删除 /mnt/Linux 目录下自己建立的文件,而且也删除了其他用户建立的文件。
非常重要!!!关于Linux的安全优化权限详解_第24张图片
那么,我们应该如何是好呢?
我们可以利用chmod o+t 来对文件的权限进行设定。
非常重要!!!关于Linux的安全优化权限详解_第25张图片
这样一来,我们通过对权限的修改,限制了对其他用户的权利,从图中可以看出,不同用户只能删除属于自己所建立的文件,而不能删除其他用户所建立的文件。
非常重要!!!关于Linux的安全优化权限详解_第26张图片
2 .SUID
只针对于二进制可执行文件 , 使用拥有SUID权限的文件,其中记录的程序时以 SUID 文件拥有者的身份去执行。

实验环境:首先用命令对其进行监控,以便于实验的观察
在这里插入图片描述
监控界面如下:
非常重要!!!关于Linux的安全优化权限详解_第27张图片
我们切换到student用户,执行二进制文件/bin/cat,可以看出,是student执行的命令。
非常重要!!!关于Linux的安全优化权限详解_第28张图片
当我们切换到HAHA用户时,执行二进制文件/bin/cat,可以看出执行用户为HAHA用户。
非常重要!!!关于Linux的安全优化权限详解_第29张图片
chmod u+s 二进制可执行文件
表示对文件的拥有者进行修改,使文件的执行身份为拥有者。
非常重要!!!关于Linux的安全优化权限详解_第30张图片
下图所示:用户HAHA在执行二进制可执行文件的执行身份为root,即拥有者的身份。
非常重要!!!关于Linux的安全优化权限详解_第31张图片
下图所示:用户student在执行二进制可执行文件的执行身份为root,即拥有者的身份。
非常重要!!!关于Linux的安全优化权限详解_第32张图片
3 . SGID
对于二进制可执行文件 : 该命令发起的程序是以该命令所有组的身份去执行SGID。
对于目录 : 目录新建文件的所属组与该目录的所有组保持一致。

chmod g+s 文件/目录
对二进制文件/bin/cat 进行所有组身份去执行的改变。
在这里插入图片描述
刚我们切换到HAHA用户时,可以从下图看出,该命令发起的的程序是以root组的身份去执行的。
非常重要!!!关于Linux的安全优化权限详解_第33张图片
刚我们切换到student用户时,可以从下图看出,该命令发起的的程序是以root组的身份去执行的。
非常重要!!!关于Linux的安全优化权限详解_第34张图片
另外:我们也可以用数字方式来改变特殊权限STICKYID,SUID和SGID
我们通过数字来改变,4代表SUID,2代表SGID,1代表STUCKYID

非常重要!!!关于Linux的安全优化权限详解_第35张图片

5.ACL权限列表

1.facl概述及注意事项
传统的权限仅有三种身份 (user,group,other)搭配三种权限 (r,w,x), 并没有办法单纯的针对某一个使用者或某一个群组来设置特定的权限需求 , 此时就得要使用ACL( 文件访问控制列表 ,Access Control List) 这个机制。
注意
因此目前 ACL 几乎已经默认加入在所有常见的 Linux 文件系统的挂载参数中
(ext2/ext3/ext4/xfs 等等 ), 但 rhel6.0以及之前的版本默认不支持 ACL 的功能。
2. 有关facl命令的使用

  1. 设定权限列表
    setfacl
    -m 设定权限
    -x 删除指定用户
    -b 关闭列表功能
    来!!!一起来看看实验操作。
    首先在/mnt/下建立文件file,然后查看文件的权限,并编辑文件内容为hello xiaoxu ,并查看文件内容。
    非常重要!!!关于Linux的安全优化权限详解_第36张图片
    然后切换用户身份为student编辑刚才建立的文件file
    非常重要!!!关于Linux的安全优化权限详解_第37张图片
    我们发现,student用户不能编写文件filestudent用户对文件只能读,不能写。
    非常重要!!!关于Linux的安全优化权限详解_第38张图片
    但是,我们用setfacl -m命令后,从图中可以看出用户student的可写权限被加入。
    非常重要!!!关于Linux的安全优化权限详解_第39张图片
    接下来我们再次切换到student用户,对文件file进行编辑,我们通过cat命令查看之后发现,student用户可以对文件进行编写功能。
    非常重要!!!关于Linux的安全优化权限详解_第40张图片
    setfacl -m 对指定用户xuruntian拥有组增加了文件的读写执行权限
    非常重要!!!关于Linux的安全优化权限详解_第41张图片
    setfacl -b 表示关闭了列表功能
    非常重要!!!关于Linux的安全优化权限详解_第42张图片
    setfacl -x 表示删除指定用户,从图中可以看出删除了用户xuruntian
    非常重要!!!关于Linux的安全优化权限详解_第43张图片

  2. 查看权限列表
    getfacl
    非常重要!!!关于Linux的安全优化权限详解_第44张图片

你可能感兴趣的:(rhcsa)