二周第三次课(3月28日)

时间:2022-02-06 14:23:54

2.14 文件和目录权限chmod

文件权限

二周第三次课(3月28日)

前面的学习中我们知道,第一位表示文件类型,其后的九位是权限,为三段,分别为

           rwx     ---     ---

           用户     组     其他

第一段为用户权限,第二段为用户组权限,第三段为其他*限

其中 r表示可读  w表示可写  x表示可执行  -表示无权限

权限又可以用数字表示   r=4 w=2 x=1

例如:rwx=7  wx=3  rwx-w-r-x=715


另外:权限后面的"."表示文件受制于SELinux


chmod命令

chmod是更改权限的命令
#chmod 700 1.txt
例如:1.txt的权限为000,我们把它改为rwx --- ---
二周第三次课(3月28日)
二周第三次课(3月28日)

#chmod  -R  文件或目录   进行递归的持续更改,即连同子目录和下面的文件都更改

# ll /test                                                                //查看test文件夹
总用量 0
-rw-r--r--. 1 root root 0 3月  29 02:18 1.txt          //1.txt的权限为644
# chmod -R 700 /test/                                          //递归性修改test文件夹                           
# ll /test
总用量 0
-rwx------. 1 root root 0 3月  29 02:18 1.txt        //1.txt权限变为700

# ls -ld /test
drwx------. 2 root root 19 3月  29 02:18 /test       //test文件夹权限为700

另外还可以这样修改权限

a.修改test文件夹的权限为rw---xr-x

# chmod u=rw,g=x,o=xr  /test
# ls -ld /test
drw---xr-x. 2 root root 19 3月  29 02:18 /test

b. 给所有用户加上w权限 

#chmod a+x /test      //a表示all 即所有用户

#ls -ld /test/
drw--wxrwx. 2 root root 19 3月  29 02:18 /test/

同样也可以给所有用户减去w权限

# chmod a-w /test
# ls -ld /test/
dr----xr-x. 2 root root 19 3月  29 02:18 /test/

同样用法的还有 u (用户), g(用户组),o(其他用户)

例如:u+x   g-w  o+r


2.15 更改所有者和所属组chown

chown

是change  owner的缩写

用法1: chown  用户  文件

# chown xmlinux  /test/1.txt
# ls -l /test/1.txt
-rwx------. 1 xmlinux root 0 3月  29 02:18 /test/1.txt

用法2:chown 用户:组   文件 

同时修改用户和组       
#chown root:user1 /test/1.txt
# ls -l /test/1.txt
-rwx------. 1 root user1 0 3月  29 02:18 /test/1.txt
也可以只修改用户或组
#chown :root /test/1.txt
# ls -l !$
ls -l /test/1.txt
-rwx------. 1 root root 0 3月  29 02:18 /test/1.txt


chgrp 修改组

用法:chgrp 组名 文件
#chgrp user1 /test/1.txt
# ls -l /test/1.txt
-rwx------. 1 xmlinux user1 0 3月  29 02:18 /test/1.txt



2.16 umask

umask就是 指定目前用户在新建文件或目录时候的权限默认值

查看umask
# umask
0022           //第一个0暂时不管,后面3位才是权限值

修改umask
#umask 002

系统默认创建的文件的权限为666,文件夹的权限为777
而实际创建文件(夹)的权限=系统默认权限-umask
所以umask=022 则创建的文件权限=644  文件夹权限=755
例如:创建文件
# touch /1.txt
# ls -l /1.txt
-rw-r--r--. 1 root root 0 3月  29 04:11 /1.txt
 创建目录:
# mkdir /test1
# ls -ld /test1
drwxr-xr-x. 2 root root 6 3月  29 04:12 /test1


 注意:这并不是数字相减得来的
例如:umask=003 
则实际创建的文件权限=rw-rw-rw- 减去-------wx=rw-rw-r--=664
而不是数字相减得来的663

2.17 隐藏权限lsattrattr

chattr设置隐藏权限,主要的有i和a

i权限可以让文件不能被更改

二周第三次课(3月28日)


a权限可以让文件可以增加但不能删除,不能修改旧有的数据

给一个文件增加i权限

#chattr +i  1.txt

查看一个文件的隐藏权限

# lsattr 1.txt
----i----------- 1.txt

对文件夹增加特殊权限i时,不能增加、删除或修改文件,文件夹内的文件内容是可以修改的,

对test文件夹增加i权限后,是可以修改1.txt中的内容的

二周第三次课(3月28日)

a权限

对文件设置a权限

#chattr +a  1.txt

对文件夹设置a权限时,是可以在文件夹内增加新文件的,也可以修改文件内容,但不可以修改文件名

二周第三次课(3月28日)


lsattr -R 文件夹  连同子目录的数据一并显示出来

二周第三次课(3月28日)

lsattr -a 文件夹     将隐藏文件也显示出来 

二周第三次课(3月28日)

lsattr -d 文件夹      查看文件本身的隐藏权限

二周第三次课(3月28日)