2.14 文件和目录权限chmod

2.15 更改所有者和所属组chown

2.16 umask

2.17 隐藏权限lsattr/chattr





2.14 文件和目录权限chmod

ls -l 第一列文件权限

image.png

除了第一个字符-表示文件类型,接下来的9位表示文件的权限,分成三段(9位)

rw-    r--    r--

所有者(可读可写不可执行) 所属组(可读不可写不可执行) 除了所有者所属组之外其他用户的权限(可读不可写不可执行)  

是否可写r,是否读w,是否可执行x,如果不可以用-。

r=4 w=2 x=1可以用数字表示 如果rwx=7 rw-=6 --x=1 加起来   rw-r--r--=644(权限的表示)

chmod (change mode 修改权限)

比如修改2.txt权限改下,所有组读写执行其他的都是无权限 那就是 rwx------=700 chmod 700 2.txt就可以改了。

2018-3-28_第1张图片

image.png rwx ------.最后面有个点意味着这个文件受制于selinxu,如果把selinux彻底关闭,在创建新的文件就没.了。

chmod 生效的仅仅是目录本身,不会对目录下面的子目录和文件生效。

chmod -R可以改变目标以及目录下的子目录 批量的更改权限。

还有一种表示方式 chmod u=rwx,g=r,o=r /tmp/   后面不能有--,这样写法很直观,比较繁琐。

还有chmod a+x  wt (就所有文件后都加X 那也可以-X ,也可以u或g或o+X)






2.15 更改所有者和所属组chown

change owner

更改所有者

2018-3-28_第2张图片

chgrp(change group更改所属组)

2018-3-28_第3张图片

可以用chown一次更改2个

chown wt:wt /tmp/yum.log

只更改用户组的话chown  :wt /tmp/yum.log

chown -R这个命令文件下的文件目录的所以者和所属组也会改变。





2.16 umask

当我们登录系统之后创建一个文件总是有一个默认权限的,那么这个权限是怎么来的呢?这就是umask干的事情。umask设置了用户创建文件的默认 权限,它与chmod的效果刚好相反,umask设置的是权限“补码”,而chmod设置的是文件权限码。

2018-3-28_第4张图片

上图文件644,目录755,umask0022简写022,那就是目录初始777-022=755,文件666-022=644 

2018-3-28_第5张图片

更改umask值位00002,创建2.txt 目录234

2018-3-28_第6张图片

文件644  目录775,好像不对文件不是应该666-002=664吗。

umask改成003,创建新的1.txt

2018-3-28_第7张图片

还是664,那不能直接减法。要用这种形式表示 (rw-rw-rw)-(-- -- -- wx)=rw- rw- r-- 位减,最后得到664(-号减掉什么都是-号)

目录777-003=rwx rwx rwx - --- --- -wx=rwx rwx r--=774这就对了。



2.17 隐藏权限lsattr/chattr

chattr隐藏权限

给1.txt设置以一个权限

image.png

image.png

无法vi 因为是只读模式。

2018-3-28_第8张图片

按理来说root用户是可以写入的,但是不能 那可能是这个文件设置了隐藏权限。


image.png

lsattr 查看隐藏权限

重新创建一个2.txt ,没有任何隐藏权限

2018-3-28_第9张图片

  1. txt多了一个i,i权限不仅仅不能写,还无法改名,无法删除,也无法重新创建同样文件(更改时间信息)。i是一个很严谨的权限

  当vi保存不了的时候会出现1.txt~,这是一个保存的缓存文件。

 去掉i权限image.png

chattr -i  1.txt。

a权限,可以追加,可以更改时间信息,但是不能删除改名更改内容。

lsattr 查看的是一个目录下的子目录和子文件

查看目录本身用lsattr -d查看,给目录加权限和文件一样的效果。

lsattr -R 可以查看目录和子目录下的文件,不加仅仅只看一层。

lsattr -d 查看包括隐藏的文件