linux之权限设定

3A机制:
[帐号:account]:useradd,userdel,usermod,groupadd,groupdel,groupmod
[认证:authorization]:passwd,chage
[授权:authorzed]:下面要说的!!!

1.文件权限存在的意义

文件权限的存在是系统最底层安全设定方法之一,保证文件可以被可用的用户做相应操作。

2.文件权限的查看

命令 说明
ls -l file 查看文件权限
ls -ld dir 查看目录权限
ll 查看文件和目录所有信息(相当于ls –l file)
ls -li 查看文件和目录所有信息,可以输出id号
ls –LR dir 递归显示子目录

linux之权限设定_第1张图片

3. 文件属性查看详解

	-|rw-rw-r--.| 1| kiosk| kiosk| 0| Nov 15 01:49| file|
    1     2       3    4      5    6      7          8

1-7通称为用户的属性,叫做源数据(matadate),源数据的每个数据类型用一个字节来表示,大小为1byte,文件名是一个字符,又3个字节,总共有7+4=11byte。

(1)文件类型

表示 说明
- 普通文本
d 目录
l 软链接(快捷方式)
s 套接字(socket)
b 块设备(block)
c 字符设备

linux之权限设定_第2张图片

套接字:到程序内部进行交流,需要对外开放一个接口,用户可以通过接口来访问内部的程序,这个接口叫套结字。比如数据库
块设备:存储系统的资源和文件的设备,叫块设备(比如U盘,虚拟硬盘)。

linux之权限设定_第3张图片

(2)文件权限

权限 说明
r read
w write
x execute
- 没开

一个用户对一个文件的身份有:u(user),g(group),o(others)

	rw-|rw-|r--
     1   2   3

1:u(所有人);2:g(所有组);3:o(其他人)

(3)文件内容被系统记录的次数(硬链接)

对文件 文件内容被系统记录的次数(文件硬链接个数)
对目录 目录中文件属性的字节数(目录中子目录的个数)

对于文件来说:
linux之权限设定_第4张图片

软链接:多个节点号对应一个数据
硬链接:一个节点号对应多个数据

(4)用户名字:“root”(文件的所有人)
(5)用户组名字:“root”(文件的所有组)
(6)文件内容的大小

对文件:文件大小
对目录:目录中子文件元数据(matedata元数据可以理解为文件案的属性)大小加上文件本身的大小6,文件夹的时间戳不算

注意:默认会有两个隐藏目录(. 和 …),元数据大小为6。

(7)文件最后一次被修改的时间
(8)文件名字

4. 文件所有人和所有组的修改

(1)文件所有人的修改

命令 功能
chown username file或dir 更改文件或者目录的所有人
chown user.group file或dir 更改文件或者目录的所有人和所有组
chown -R user.group dir 递归更改目录的用户和用户组

linux之权限设定_第5张图片

(2)文件所有组的修改

命令 说明
chgrp group file或dir 改变文件或者目录的所有人
chgrp -R group dir 递归改变目录的所有组

linux之权限设定_第6张图片

5. 改变文件的权限

(1)对权限的理解

r:
	对文件:是否可以查看文件的内容,相当于cat file
	对目录:是否可以查看目录中有什么子文件或者子目录,相当于ls dir   

w:
	对文件:是否可以改变文件里面记录的字符	
	对目录:是否可以对目录中子目录或者子文件的源数据进行更改
注意:是否可以删除目录中的文件,看的是目录是否有写的权限,与里面的文件无关。

x:
	对文件:是否可以通过文件名称调用文件内记录的程序。
	对目录:是否可以进入目录。
注意:给目录w权限必须给r和x权限,要不没用。文件的执行权限是不安全的。 		

(2)对权限的修改

只有超级用户才可以修改权限

a. 字符方式修改权限

#增加或减少文件或目录u(g或o)的r(w或x)权限
chmod u(g|o) -|+ file|dir
#指定文件或目录u(g或o)的权限为r(w或x)
chmod u(g|o)=r(w|x) file|dir
#使目录和文件的权限同时修改为相同的操作
chmod -R r|w|x dir

linux之权限设定_第7张图片

b.数字的方式修改权限

r=4,w=2,x=1,-=0

比如:rwx=7,rw-=6,—=0,-w-=4

linux之权限设定_第8张图片
上面的命令相当于:chmod u=rw,g+w,o+w file

6.文件和目录的默认权限

从系统存在角度来说,开放权力越大,系统存在意义越高
从系统安全角度来说,开放权力越少,系统安全性越高
所以系统设定新建文件或目录会去掉一些权限

在超级用户中默认的umask为022,普通用户为002,因此建立的目录权限为777-022=755(dir),文件权限为:666-022=644(file)。

对于超级用户:
linux之权限设定_第9张图片

对于普通用户:

linux之权限设定_第10张图片

为了安全性,将umask设置为077(umask 077) ,则建立的目录为777-077=700,文件为666-077=600,但是这种修改之时暂时的,只对当前的shell生效,当退出当前shell以后,设置的值就会取消,还是之前默认的022。

linux之权限设定_第11张图片

永久生效:

编辑/etc/bashrc

vim /etc/bashrc

linux之权限设定_第12张图片

重启:

source /etc/bashrc

编辑/etc/profile:

vim /etc/profile

linux之权限设定_第13张图片

重启使生效:

source /etc/profile

注意:这两个配置文件必须都要修改,并且要修改一致,而且要重启才能生效。

7. 特殊权限

(1)sticky

sticky:粘制位,t权限 ,适用于开放的共享目录。

作用:之针对目录生效,当一个目录上又sticky权限时,在这个目录中文件只能被文件的所有者删除。

设定方式(这两种方式一样):

chmod o+t dir
chmod 1xxx dir (xxx为原始权限)

目录没加t权限:
linux之权限设定_第14张图片

目录加上t权限以后:

linux之权限设定_第15张图片

(2)sgid

强制位,s权限

作用:
	对文件:只针对于二进制可执行文件,当文件上有sgid时任何人执行此文件产生的进程都属于文件的组
	对目录:当目录上有sgid权限时任何人在此目录中建立的文件都属于目录的所有组

设定方式:

chmod g+s file|dir
chmod 2xxx file|dir

针对目录:

linux之权限设定_第16张图片

注意:sgid不会影响目录中已经存在文件的所有组。

针对文件:

linux之权限设定_第17张图片

注意:只针对与二进制可执行文件

(3)suid

冒险位,任何用户执行标有suid的文件时用户身份都会变成root。

作用:只针对与二进制的可执行文件,当文件上有suid时,任何人执行这个文件产生的进程都属于文件的所有人。

设定方式:

	chmod u+s   file                   
	chmod 4xxx  file

应用:权力的下方和提升。

linux之权限设定_第18张图片

8.acl权限列表

(1)作用

acl(access control list),让特定的用户对特定的文件拥有特定的权限

(2)acl列表查看

-rw-rwxr--+ 1 root root 0 Jul 2 15:45 file
		  ^
	  表示acl开启

注意:当acl权限列表开启后,使用ls -l查看的文件权限将不准确,必须使用getfacl filename 查看文件权限。

getfacl file		#查看acl开启的文件的权限
	file: file		#文件名称
	owner: file 	#文件拥有者
	group: root		#文件拥有组
	user::rw-		#文件拥有者权限
	user:kiosk:rw	#指定用户的权限
	group::r--		#组的权限
	mask::rw-		#赋予用户的最大权限
	other::r--		#其他人拥有的权限

(3)acl列表管理

#当acl开启后,查看文件权限
getfacl file
#设定username对file拥有rwx权限。0:什么都做不了。(m:modify)
setfacl -m u:username:rwx file
#设定group组成员对file拥有rwx权限
setfacl -m g:group:rwx file
#从acl列表中删除username
setfacl -x u:username file	
#关闭file上的acl列表
setfacl -b file	

linux之权限设定_第19张图片

(4)mask值

在权限列表中mask表示能生效的最大权力值,当开启acl后,再使用chmod减小文件的权限时,实际减小的是mask值,而不是特定的权限值。

如果要恢复mask值:

serfacl -m m:rwx file

linux之权限设定_第20张图片

如果要想恢复mask权限

linux之权限设定_第21张图片

(5)acl的默认权限设置

acl默认权限只针对目录设定。

##递归设置文件的acl权限。会将之前创建的文件添加acl权限,
##而新建的文件没有开启acl权限
setfacl -R -m u:tom:rwx westos
##在新建的文件或目录上添加acl权限,之前存在的文件是不会继承acl权限的
setfacl -m d:u:tom:rw westos
##关闭目录的默认权限
setfacl -k westos

针对已经存在的文件:
linux之权限设定_第22张图片

针对新建的文件继承acl’权限:

linux之权限设定_第23张图片

文件的目录有默认的default权限:

linux之权限设定_第24张图片

关闭default权限:

linux之权限设定_第25张图片

(6)acl权限列表排序

uerperm > acluser > aclgroup > groupperm > otherperm

9. chattr和lsattr命令

linux之权限设定_第26张图片

应用:该命令主要被用在一些只能看不能新建或删除的目录上,起到保护的作用。比如/bin

linux之权限设定_第27张图片

应用:使用与系统的审计。

所以:开放权力不一定使权力变大。

你可能感兴趣的:(linux)