一.umask 命令

		umask 临时设定系统保留的权限(即创建目录时不给予的权限)
例:umask 077 设定对当前用户保留077权限(创立文件时赋予700权限)

配置文件说明


如图,root用户创建目录A权限为755(umask=022)

student用户创建目录B权限为775(umask=002)


使用命令<umask 077>,创建目录B时默认权限为700(umask=077)


注意事项:

1.使用umask命令更改仅在当前shell环境下生效
2.若需永久更改则须更改配置文件

切换环境后创建目录C,默认权限仍为755(umask=022)

更改配置文件

###更改后不会立即生效,需重新读取配置文件

	vim  /etc/profile		          编辑系统配置文件
	vim  /etc/bashrc		         编辑shell的配置文件
	source /etc/profile 	重读系统配置文件,让更改立即生效
	source /etc/bashrc	重读shell配置文件,让更改在立即生效

二.特殊权限

1.sticky		粘制位
只针对目录生效,当一个目录上有sticky权限时
在这个目录中的文件只能被文件的所有者删除
两种设定方式:
chmod o+t  dir		
chmod 1xxx dir 

添加粘制位,虽然拥有pub目录的rwx权限,但用户st1无法删除其他用户的文件


2.sgid			强制位
对文件:只针对二进制可执行文件
当文件上有sgid时,任何人执行此文件产生的进程都属于文件目录的所有组
对目录:当目录上有sgid时,任何人在此目录中建立的文件都属于目录的所有组
chmod g+s  file/dir
chmod 2xxx file/dir

查看/bin/watch文件的元属性


用户st1使用watch检测进程名称,使用者用户名,所在组,此时均为st1


为/bin/watch添加强制位,并且切换到其他用户st1


重新调用watch,此时user为st1,而group变为watch文件的所属组root


3.suid			冒险位
当文件上有sgid时,任何人执行此文件产生的进程都属于文件所有者
chmod u+s  file
chmod 4xxx file

为watch添加冒险位,并以st1身份执行


以st1用户执行watch,执行者仍为文件拥有者root


三.acl权限列表

让特定的用户对特定文件拥有特定权限

acl列表查看

getfacl a 查看文件a的acl权限
setfacl -m u:user:rwx    a	为a文件开启acl权限管理并为指定用户user赋予mask:rwx权限
setfacl -m g:group:rwx   a	为a目录开启acl权限管理并为指定组group赋予mask:rwx权限


打开acl权限的文件标志(其中‘+’表示acl开启)


给目录pub添加acl权限并指定用户st1拥有rwx权限(默认其他所有组成员为r-x)


如图st1可在/mnt/pub写入,而st2不可


getfacl权限说明

# file : filename		  文件名为filename
# owner: root 			文件所有者为root
# group: root 			文件所有组为root
user::rw-			文件拥有者对文件的权限为rwx
user::username:rwx	 指定用户username对文件的权限为rwx
group::r--			文件所有组对文件的权限为r--
mask::rwx			可赋予用户的最大权限为rwx
other::r--			其他用户对文件的权限为r--

四.mask值

在权限列表中mask表示能生效的权限值(能赋予的最大权限值)
当用chmod减小开启acl的文件权限时,mask会发生变化
	chmod g-w filename 
恢复mask值:
	setfacl -m m:rwx filename

查看目录pub的acl权限,虽然用户st1有rwx权限,但mask=r-x,所以有效权限只有r-x


acl默认权限只针对目录设定(即默认在该目录下创建的文件继承目录的acl权限,未设定默认不继承)

setfacl -m d:u:username:rwx /filename
acl权限只针对设定完成之后新建立的文件或目录生效,而已经存在的文件时不会

先建立的a文件没有继承acl权限,而设定后的b文件继承了目录的acl权限