r、w、x为普通权限,i、a隐藏权限,特殊权限set_uid、set_gid、stick_bit linux默认的权限umask是0022,对应0022 文件644 目录755 修改linux默认权限umask
umask 0002
0002的文件是664 目录是775 umask算法,假如umask=0002,把第一位去掉就是002,(目录最高权限为777,文件最高权限为666)
666-002
文件666=(rw-rw-rw-)—(-------w-)=rw-rw-r--644
777-002
目录777=(rwxrwxrwx)—(-------w-)=rwxrwxr-x775
最高权限减去默认权限等于文件目录权限
r=4 w=2 x=1
r=只读 w=读写 x=执行
文件隐藏权限i,只能查看,不能删除,不能修改,不能追加,不能修改时间
文件隐藏权限a,只能在文件的末尾追加,可以更改时间,不行写入,不能删除,不能重命名
目录隐藏权限i,不能删除目录,不能修改目录的名称,但可以追加目录下边文件的内容
目录隐藏权限a,可以修改目录下面的文件,但是无法删除
chown使用方法
chown xiaoqie /etc/123 更改文件所有者
chown :jie /etc/123 更改文件组
chown xiaoqie:jie /etc/123 更改文件所有者和组
chattr添加删除隐藏权限
chattr +i xiaoqie/ 添加隐藏权限
chattr -i xiaoqie/ 删除隐藏权限
lsattr查看隐藏权限
lsattr xiaoqie/查看子目录的隐藏权限,子目录没有隐藏权限则不会显示
lsattr -d xiaoqie/查看目录本身的隐藏权限
lsattr -R xiaoqie/ 查看目录下面的子目录和子目录下面应隐藏权限
特殊权限set_uid 是作用在用户上的他可以让普通用户除了所有者之外的其他用户去执行带set_uid的命令,当普通用户去执行这个命令的时候就可以临时拥有超级管理员的权限,使普通用户也可以用ls查看超级管理员的文件,它用于给一个二进制可执行的文件,它可以给一个普通文件赋予uid的权限,但是这样并没有意义 set_uid用法
chmod u+s /usr/bin/ls 赋予ls命令uid的权限
chmod u-s /usr/bin/ls 取消uid的权限
特殊权限set_gid 是作用在所属组上的它可以是用在文件或者目录上,当作用在文件上的时候是和UID类似的,让执行这个文件的用户;临时拥有所属组的身份,作用在目录上的时候,创建子目录或子文件的时候,创建的子目录和子文件的所属组和该目录的所属组保持一致, set_gid用法
chmod g+s /usr/bin/ls 赋予ls命令gid的权限
chmod g+s 234/ 赋予234目录gid的权限
chmod g-s /usr/bin/ls 删除ls命令gid的权限
chmod g-s 234/ 删除234目录gid的权限
特殊权限stick_bit 作用是防止删除文件,但是可以修改文件,只能删除自己的文件,root用户可以删除所有文件,但是如果在其他用户目录下创建一个文件,那么其他用户也是可以删除文件的 stick_bit用法
chmod o+t 234/ 赋予234目录bit权限
chmod o-t 234/ 删除234目录bit权限
chmod命令还可以修改文件或目录的rwx权限
chmod 777 234/
chmod 666 1.txt
chmod u=rwx g=rwx o=rwx 234/
chmod a=x 234/
u是所有者,g是所属组,o是其他用户,a是全部权限