umask:系统里的目录文件默认权限值与他相关,它本身值是0022
文件默认的权限是666,一般是不带有x可执行权限的
目录默认的权限是777,他们与umask的关系是
文件:rw-rw-rw- 减去----w–w- 最后创建的默认权限是644
目录:rwxrwxrwx减去 ----w–w-最后的权限是755
umask可以自己更改:直接输入命令unask 0002,就能更改成002。
chattr 设置隐藏权限, chattr +i 1.txt ,给1.txt增加个隐藏权限。-i的作用,不可写,不能mv、rm、等等。相当于固定死了。
即便是在root用户下的文件,root权限都写不了。
执行一次 chattr -i 1.txt,会删除隐藏文件。
chattr还有一个常用的选项,chattr +a 1.txt 它的作用是只能追加,其他的操作也不允许,
head -n2 /etc/passwd >> 1.txt 这样追加可以。
chattr -a 1.txt 可以去掉这个权限。
给目录加上i隐藏权限 无法再目录下创建文件等操作,但是可以在已有的文件里更改文件内容。
给目录增加a权限,可以在目录下创建文件,也可以在已有文件里更改文件内容。
lsattr 查看一个目录或者文件的隐藏权限
lsattr -R 可以查看目录下的子目录以及子目录下的文件的隐藏权限。
lsattr -a 查看目录里的隐藏文件。
lsattr -d 查看目录本身。
set_uid权限
这里的权限包含有个s权限,他就是set_uid
一般用户更改密码的时候,他会更改一个密码的文件/etc/shadow,但是这个文件的权限是000,任何用户都没办法更改,但是root用户有可以更改这个文件权限的权限,也相当于有改密码的权利,普通用户想改自己的密码,但是这个密码文件又不让他改。set_uid这时候的作用就体现出来里,当普通用户在执行含有set_uid权限命令的时候,他会临时被赋予这个命令的所有者身份,也就是root用户。
给文件设置zet_uid权限的前提是,这个文件是二进制文件,给普通的文件或者目录设置这个权限没有意义。
给ls命令增加set_uid权限:chmod u+s /usr/bin/ls
然后使用其他用户ls root用户就能执行了
去掉set_uid 权限 chmod u-s /usr/bin/ls
set_gid权限
他可以作用在文件上,还可以作用在目录上。作用在文件上类似于set_uid,
他可以让临时执行这个文件的普通用户临时拥有该文件的所属组身份。
作用目录上的时候,你在该目录上创建的子目录和父目录的所属组保持一致,
stick_bit权限
防删除,普通用户删除其他普通用户的文件。但是可以更改。
chmod o+t /tmp/111/ ,这样就给了/tmp/111/目录增加了stick_bit权限。