1:umask的含义:
在linux系统中,我们创建一个新的文件或者目录的时候,这些新的文件或目录都会有默认的访问权限,umask命令与文件和目录的默认访问权限有关。若用户创建一个文件,则文件的默认访问权限为 -rw-rw-rw- ,创建目录的默认权限 drwxrwxrwx ,而umask值则表明了需要从默认权限中去掉哪些权限来成为最终的默认权限值。
详细解释就是:在用户创建默认文件/目录时,会自动赋这个文件/目录一定的权限。这个默认值就由umask来控制。默认情况下的umask是0022,第一位0是留给特殊权限SUID,SBIT这些的,先不管。后三位分别对应了owner,group和others。需要注意的是,新文件和新目录的umask基准值不一样。对于用户创建的文件,基准值是666,所以在022的umask下创建的新文件默认的权限是644。而用户创建新目录时基准值是777,所以在022umask下的新目录默认权限是755。
使用命令:umask可以查看默认值:
也可以临时设置umask的值为077,但是在shell关闭后,umask的值会恢复为默认值。如果想要修改默认值,则需要直接修改配置文件:/etc目录下的profile文件和bashrc文件。
设置完成之后,需要使用命令:command:source /etc/bashrc和source /etc/profile让其生效。
2:特殊权限
A:sticky ###粘制位
作用:只针对目录生效,当一个目录上有sticky权限时,在这个目录中的文件只能被文件的所有者删除。
如:建立一个公共目录,并在目录中创建文件1、文件2、文件3。使用chmod o+t /dir命令,讲该目录中的文件全部设置为只用文件的所有者可以删除该文件。###chmod o+t /dir =chmod 1xxx /dir。
B:sgid ####强制位
作用:
目标是文件,表示只对二进制的可执行文件,当文件上有sgid时的任何人执行此文件产生的进程都属文件的组;
对目录,则表示当目录上有sgid权限时任何人在此目录中建立的文件都属于目录的所有组。
设定方式:
chmod g+s /dir|file = chmod 2xxx dir|file;
如:创建公共目录/pub,执行chmod g+s /pub,改变pub目录的g属性,然后切换用户,在pub目录创建文件,可以看到创建的文件所有者是bbb,但是所属组是root。
C:
suid ##### 冒险位
作用:只针对二进制可执行文件当文件上有suid时任何人执行这个文件所产生的进程都属于文件所有人
设定方式:chmod u+s file = chmod 4xxx file;
如:对于/bin目录下的cat命令,执行chmod u+s命令,则无论是那个用户执行cat命令,产生的进程都属于root用户。
D:acl控制列表:
1:acl控制列表的作用:让特定的用户对于特定的文件有特定的权限、
2:可使用:getfacl 文件 ###查看facl开启的文件的权限
command:
setfacl -m u:westos:rwx text; ###设定westos用户对于text文件有特殊的rwx权限;
setfacl -m g:tom:rwx text; ###设定tom所属组的成员对于text文件有特殊的rwx权限;
setfacl -x g:tom text;###删除text上tom组成员的特殊权限。
setfacl -x u:westos text;###删除text上的westos特殊权限
setfacl -b text;###关闭text上的acl列表权限
acl的默认权限设置:
acl默认权限设置只能对设定完成之后新建的目录或者文件生效,已经存在的文件是不会继承默认权限的。
设定方式;
setfacl -m d:westos:rw- dir;###对于dir目录设定默认acl权限;
setfacl -k dir;###取消对于dir目录设定的acl权限。