LinuxLinux

Linux权限管理

2019-12-10  本文已影响0人  李菜菜同学

一、基本权限

基本概述:不同用户有不同权限,在服务器上,每个用户都会定义合理的等级。一般只有一个管理员,其他都是普通用户。

二、文件基本权限

1.Linux文件权限的设定

- r w x

文件类型(-:普通文件 d:目录文件 l 软连接文件)

R:读  w:写  x:执行

修改权限命令:

Chmod 【选项】 模式 文件名

选项:-R 递归

模式:[ugoa][+ - =][rwx] //

      [mode=421]

图1 修改权限的方式

a:所有人

权限的数字表示:

R:4(2*2)     w:2(2*1)      x:1(2*0) 

例: rwxr-xr-x  :755

2.Linux文件权限的作用

文件权限作用

3.linux中权限对目录的作用

权限对目录的作用

对文件来讲:最高权限是x(执行)

对目录来讲:最高权限是w(写)

#whoami   //查看当前用户

#uaseradd user1  //添加用户user1

#passwd user1    //更改user1用户的密码

#是超级用户登录时候的提示符;$是普通用户登录的提示符

4.linux中其他权限的作用

#chown 用户名 文件名   //修改文件所有者  如果需要一个普通用户对一个文件有7权限,可以使用此命令

#chgrp 用户组 文件名  //修改文件的所属组

Linux中,不管添加多少用户,都会默认添加一个与用户名称相同的组作为初始组

#chown root:root 123  //修改文件的用户组和用户 为root

例子:#groupadd user //添加一个user用户组

#gpasswd -a user1 user  //把user1用户加入到user组 

核心原则

三、默认权限

1.文件的默认权限

1)文件的默认权限:Windows中,新建文件的权限是由上级所在目录继承过来的。

Linux中,是通过umask来定义文件的默认权限。

#umask  //查看默认权限

此时回车之后控制台自己输出的0022  //第一位0:文件的特殊权限  022:文件的默认权限.

文件的默认权限:

①文件默认不能建立为执行文件,必须手工赋予执行权限

②所以文件的默认权限最大为666

③默认权限需要换算成字母再相减

④建立文件之后的默认权限,为666减去umask的值

例子:文件的默认最大权限666,umask的值是022

      -Rw-rw-rw- 减去  - - - -w- -w 等于 -rw-r- -r- -

2.目录的默认权限

目录的默认权限:

①目录的默认权限最大是777

②默认权限需要换算成字母再相减

③建立文件之后的默认权限,为777减去 umask的值

例子:目录默认最大权限是777  umask值是022

     -Rwxrwxrwx  减去 - - - - -w- - w - 等于 -rwxr-xr-x

修改umask的值

 - umask 0002 //临时修改

  Vi /etc/profile //永久修改

永久修改profile文件

四、特殊权限

1.简介

简介:所有者和所属组有读写执行权限,其他人无权限。但是此时想要将一个人赋予权限r-w权限。不考虑这个用户是所有者还是所属组,直接把这个用户拿出来,赋予它acl的权限。

如何做:

第一步:查看分区acl权限是否开启

#dumpe2fs -h /dev/sda5   //dumpe2fs命令是查询指定分区详细文件系统信息的命令

选项:-h  //仅显示超级块中信息,而不显示磁盘块组的详细信息

图示

第二步:如果ACL权限没有打开,需要临时开启ACL权限

#mount -o remount,acl /   //重新挂载根分区,并挂载加入acl权限

第三步:如果想要ACL权限永久生效,需要修改配置文件

#vi /etc/fstab

图示

2.linux中acl权限查看与设定

 #getfacl 文件名  //查看acl的权限

     #setfacl 选项 文件名 //设定acl权限的命令

选项:-m:设定acl权限

           -x:删除指定的acl的权限

           -b:删除所有的acl的权限

           -d:设定默认acl的权限

           -k :删除默认的ACL的权限

           -r:递归设定acl的权限

例子 例子 图示

3.ACL最大权限与删除

1)最大有效权限mask

Mask是用来指定最大有效权限的。如果给用户赋予了acl权限,是需要和mask的权限“相与”才能得到用户的真正权限。

相与 图示 图示

2)删除acl权限

#setfacl -x u:用户名 文件名   //删除指定用户的acl权限

#setfacl -x g:组名 文件名   //删除指定用户组的acl权限

#setfacl -b 文件名         //删除文件的所有的acl权限

4.默认的ACL权限和递归ACL权限

图示

如果使用递归权限,就难以避免会出现权限溢出。因为执行权限,对目录和文件是不一样的,如果对目录赋予权限,对该目录下的文件赋予递归权限,该文件就会得到目录的权限。除非,对该目录下的文件一个一个赋予权限,就可以避免权限溢出。

图示

如果递归之后,又重新建立文件,此时新建的文件,没有递归的权限。但是可以使用默认权限。

图示 图示

此时再新建文件,就会有acl权限了。

默认权限也是只针对目录生效!!!!

五、Sudo权限

1.基本概述

root把本来只能超级用户执行的命令赋予普通用户执行, Sudo的操作对象是系统命令。

图示

例子:授权普通用户重启电脑

#visudo

#su - user1    //普通用户登录

#sudo /sbin/shutdown   //普通用户重启电脑 

图示

2.授权普通用户可以添加其他用户

图示

用户如果不设定密码时,无法正常登录;所以要给它赋予设定密码的权限。

图示

例子:给普通用户赋予vi权限,可以查看修改/etc/shadow文件

#visudo

添加#  user1 ALL=/bin/vi

此时普通用户会有vi权限

普通用户登录之后

$ sudo /bin/vi  /etc/shadow  

六、特殊文件权限

注:特殊权限尽量少去修改。

1.SetUID功能:

①只有可以执行的二进制程序才能设定SUID权限

②命令执行者要对该程序拥有x(执行)权限

③命令执行者在执行该程序时获得该程序文件属主的身份(在执行程序的过程中,灵魂附体为文件的属主)

④SetUID权限只在该程序执行过程中有效,也就是说身份改变只在程序执行过程中有效。

当输入mask的时候,回车会出现 0022;第一位0就是特殊权限,后三位是文件的基本权限。

图示 图示

2.取消SetUID的方法

#chmod 0755 文件名  //取消文件的权限,用0

#chmod u -s 文件名  //取消组文件的权限

注意:

①关键目录应严格控制写权限。比如“/”“/usr”等

②用户的密码设置要严格遵守密码三原则

③对系统中默认应该具有SetUID权限的文件作一列表,定时检查有没有这之外的文件被设置了SetUID权限。

 Suid脚本:定时检查有没有文件被设置了suid权限。

例子1-1 例子1-2

3.linux中的setGID

SetGID针对文件的作用:

①只有可执行的二进制程序才能设置SGID权限

②命令执行者要对该程序拥有x(执行)权限

③]命令执行在执行程序的时候,组身份升级为该程序文件的属组

④SetGID权限同样只在该程序执行过程中有效,也就是说组身份改变只在程序执行过程中有效。

例子:

①/usr/bin/locate是可执行二进制程序,可以赋予SGID

②执行用户lamp对/usr/bin/locate命令拥有执行权限

③执行/usr/bin/locate命令时,组身份会升级为slocate组,而slocate组对/var/lib/mlocate/mlocate.db 数据库拥有r权限,所以普通用户可以使用locate命令 查询 mlocate.db数据库

④命令结束,lamp用户的组身份返回为lamp组

SetGID针对目录的作用:

①普通用户必须对此目录拥有r和x权限,才能进入此目录

②普通用户在此目录中的有效组会变成此目录的属组

③若普通用户对此目录拥有w权限时候,新建的文件的默认属组是这个目录的属组

设定 例子 取消

4.SBIT权限

SBIT粘着位的作用

①粘着位目前只是针对目录有效

②普通用户对该目录拥有w和x权限,即普通用户可以在此目录拥有写入权限

③如果没有粘着位,因为普通用户拥有w权限,所以可以删除此目录下的所有文件。

一旦赋予了粘着位,除了root可以删除所有文件,普通用户就算拥有w权限,也只能删除自己建立的文件,但是不能删除其他用户建立的文件。

注意:不建议手工建立拥有粘着位的目录,因为它要求必须给其他用户赋予7最高权限。

设置粘着位:

#chmod 1755目录名

#chmod o+t目录名

取消粘着位:

#chmod 0777目录名

#chmod o-t目录名

例子

七、不可改变位权限

chattr权限:

Chattr [+ - =] [选项] 文件或者目录名

 +:增加权限

 -:删除权限

 =:等于某权限

[选项]:

i:等价于insert。如果对文件设置i属性,那么不允许对文件进行删除、改名,也不能添加和修改数据;如果对目录设置i属性,那么只能修改目录文件下的数据,但不允许建立和删除文件。

A:等价于append(追加)。如果对文件设置a属性,那么只能在文件中增加数据,但是不能删除也不能修改数据;如果对目录设置a属性,那么只允许在目录中建立和修改文件,但是不允许删除。

例子

不仅对于文件如此;对目录也是如此(目录中的文件的内容可以修改)

例子 例子
上一篇下一篇

猜你喜欢

热点阅读