Linux视频学习笔记(十一)--权限管理

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011099093/article/details/84585044

声明:本系列文章是博主根据 “兄弟连新版Linux视频教程”做的笔记和视频截图,只为学习和教学使用,不适用任何商业用途。

PS:文章基于Linux版本CentOS6.9,如果对Linux感兴趣,建议去看《细说Linux》,沈超老师和李明老师的教学风格我很喜欢:)

第八章 权限管理

8.1 ACL权限

视频8.1.1 ACL权限简介与开启

 

是否具有ACL权限不是看用户或文件是否支持,而是看文件所在的分区支不支持;

 

先使用df –h 命令查看分区容量

 

使用dumpe2fs –h /dev/sda5命令查看分区详细文件系统信息

 

 

 

/etc/fstab是系统开启自动挂载的文件;

 

视频8.1.2 ACL权限查看与设定

 

 

 

  1. 现在先在根目录下创建一个文件夹mkdir /project,再创建两个用户useradd user1 , useradd user2,创建一个用户组groupadd tmp1,将user1和user2添加到组tmp1中,gpasswd –a user1 tmp1 , gpasswd –a user2 tmp1. 查看gpasswd文件:

 

  1. user1和user2已经添加到tmp1组中,给/project设置用户和用户组:

chown root:tmp1 /project/ , 给/project设置文件夹权限:

chmod 770 /project/ ,查看文件夹信息,ll –d /project :

权限设置成功。

 

  1. 现在给用户st设置访问/project文件夹的r-x权限

 

给用户st设置acl权限:

setfacl –m u:st:rx /project/

如果给某个组设置acl,就要变为:

setfacl –m g:组名:权限 /project

 

  1. 设置完acl之后查看acl: getfacl /project/

会显示报错,但是不影响命令使用。可以看到除了user、group、other之外还有user:st的权限r-x,查看/project文件夹的信息,权限后多了个+:

 

  1. 此时通过用户st登录,发现可以访问/project,可以进入/project,但是不能在/project中创建文件,确认st用户的acl权限设置正确:

 

 

视频8.1.3 最大有效权限与删除ACL权限

也就是说,acl权限的设置最终要根据mask的权限来;

 

可以看到:

        即使组权限和acl组权限都是rwx,由于最大有效权限设置为r-x,生效的所属组权限和acl组权限也是r-x,但是不影响所有者用户的权限;

 

2.两种删除acl权限的方法:

1.使用-x选项

        2.使用-b选项

 

例子:删除/project文件夹的用户acl权限,发现用户acl权限没了。

        删除/project文件夹的所有acl权限:

        同时使用ll –d 命令,发现权限后面的+没有了

 

视频8.1.4 默认与递归ACL权限

注意:设定递归和默认ACL权限,都只针对目录,文件是不能设置这两个权限的

 

8.2 文件特殊权限

视频8.2.1 SetUID

 

 

第一个位置的数字分别代表:

4:SUID

2:SGID

1:SBIT

 

这里需注意:

在创建一个可执行文件abc后:

注意:

对其添加SetUID权限,结果出现大写S,这是系统报错,因为之前用户对abc不具备x权限,违反了SetUID的第二个前提:命令执行者要对该程序具有x(执行)权限

 

注意:

        只有root用户才能既使用vi命令又可以使用vim命令进行编辑;

        普通用户默认只能使用vim命令(经测试,无论使用vi还是vim结果都执行vim命令);

所以如果想要设置SetUID权限,需要修改vim命令的权限(注意这是一个及其危险的操作):

       

修改了vim命令的SetUID权限后,发现成功了,但是系统会将文件爆红提示:权限错误或权限过高!

        这时切换普通用户发现:可以修改/etc/passwd文件并且修改普通用户的用户组为超级用户:

       

       

        这时普通用户使用vim命令不仅可以修改passwd文件,也可以修改系统文件,这是非常危险的;

        取消vim命令的SetUID权限:

 

视频8.2.2 SetGID

 

普通用户在使用locate命令时,其实是去mlocate.db数据库查询文件索引,但是发现普通用户对mlocate.db没有权限(---用户组具备读(r)权限,而locate命令可以看到在组权限的x位置是s:说明具备SetGID权限,所以普通用户可以使用locate命令快速查找文件;

 

例子:普通用户lamp调用locate命令的过程:

 

 

 

 

 

视频8.2.3 Sticky BIT

 

比较常见的具有黏着位权限的目录是根目录下的/tmp目录:

 

例子:

用guest用户在/tmp下创建一个文件gtest,切换到普通用户user1:

发现无法删除gtest文件

 

 

视频8.3 文件系统属性chattr权限

使用man chattr 命令查看chattr命令的帮助说明:

 

 

先创建一个文件,使用追加重定向(echo)的方式写入一段数据:

 

注意:

        使用普通的ll命令查看不了文件(夹)的chattr属性,需要使用lsattr命令查看;

 

  1. 对文件使用chattr +i

使用chattr命令的i选项,相当于把文件锁起来,即使是root用户也无法修改和删除该文件:

 

  1. 对文件夹使用chattr +i命令

只能对该文件夹中的文件进行修改,而不能删除和添加文件:

 

  1. 对文件使用chattr +a选项

则该文件不能被删除,也不能使用vim进行修改,只能通过echo这样的方式进行追加:

 

4.对文件夹使用chattr +a命令

只能在文件夹中创建和修改文件,不能删除文件;

 

视频8.4 系统目录sudo权限

 

user1  ALL=(ALL)  command1

第一个ALL指的是允许用户user1指定分配的网段(或IP使用命令command1,一般这个位置的值为ALL或者本机IP如果设置为网段一般需要配置用户服务等才能使用

 

 

 

例子:

        给普通用户user1分配重启命令权限:

或者:

user1 192.168.110.105=/sbin/shutdown –r now

(192.168.110.105是Linux本机地址)

 

切换user1用户,查看sudo权限(第一次查看要输入用户密码,缓存时间内下次不用输密码):

可以看到当前具有的sudo权限,执行sudo权限需要加sudo:

sudo /sbin/shutdown –r now

其他选项则不具有权限:

 

注意:

        不能给普通用户赋予类似vim这样的工具命令的sudo权限,这会非常危险,这样普通用户就具备了修改系统文件的权限!

例子:

普通vim命令无法修改root用户创建的文件tes1:

 

使用sudo权限修改:

 

猜你喜欢

转载自blog.csdn.net/u011099093/article/details/84585044