文件和目录权限chmod 、更改所有者和所属组chown 、umask 、 隐藏权限lsattr/chattr

chmod命令

查看文件信息,使用ls -l命令,执行后其结果如下:

[root@test-01 ~]# ls -l
总用量 4
drwxr-xr-x. 2 root root   6 12月 19 08:17 4
-rw-------. 1 root root 973 12月 12 17:09 anaconda-ks.cfg

如上面显示,文件类型由第一位表示,文件或目录的权限由后面9个权限位组成,三位一组,2-4位表示文件或目录的所有者的权限,5-7位表示文件所属组对这个文件的权限,8-10位表示所有者和所属组外的其他用户对该文件的权限。权限表示顺序是是否可读、是否可写、是否可执行=rwx ,比如说没有写的权限,就表示为r-x 。 其中r=4 w=2 x=1 rwx=7 ,rw-=6 , --x=1 , rw-r--r--=644 。

chmod命令=change mode 更改目录或者文件的权限。用法如下:

[root@test-01 tmp]# ls -la 1
总用量 4
drwxr-xr-x. 2 root root    6 12月 19 21:13 .
drwxrwxrwt. 9 root root 4096 12月 21 15:38 ..
[root@test-01 tmp]# chmod 700 1
[root@test-01 tmp]# !ls
ls -la 1
总用量 4
drwx------. 2 root root    6 12月 19 21:13 .
drwxrwxrwt. 9 root root 4096 12月 21 15:38 ..


这样就更改了目录tmp/1的权限。drwxr-xr-x.这个字符串最后一个“.”表示这个目录或文件受制于SELinux。

chmod -R命令

chmod -R 命令更改目录的权限时会将该目录下所有的子目录,子文件都更改权限。级联更改。

chmod命令还有一种格式

chmod u=rwx,g=r,o=r filname。这条命令当中,u 表示所有者,g 表示所属组,o表示其他用户。 chmod a-x filname,其中a表示所有,这条命令的意思是,对于这个文件,所有者、所属组、其他用户都没有执行权限;chmod a+x _filname_这条命令表示对于这个文件,所有者,所属组,其他用户都有执行权限。

chown命令=change owner 更改所有者

使用格式为 :chown _username _filname

[root@test-01 ~]# useradd lc1
[root@test-01 ~]# useradd lc2
[root@test-01 ~]# ls -l /tmp/yum.log 
-rw-------. 1 root root 0 12月 12 17:07 /tmp/yum.log
[root@test-01 ~]# chown lc1 /tmp/yum.log 
[root@test-01 ~]# !ls
ls -l /tmp/yum.log 
-rw-------. 1 lc1 root 0 12月 12 17:07 /tmp/yum.log
[root@test-01 ~]#

chgrp命令=更改所属组

命令格式为:chgrp_ username__ filename_

[root@test-01 ~]# !ls
ls -l /tmp/yum.log 
-rw-------. 1 lc1 root 0 12月 12 17:07 /tmp/yum.log
[root@test-01 ~]# chgrp lc1 /tmp/yum.log 
[root@test-01 ~]# !ls
ls -l /tmp/yum.log 
-rw-------. 1 lc1 lc1 0 12月 12 17:07 /tmp/yum.log
[root@test-01 ~]# 

** 使用chown 也可以更改文件的所属组,其使用格式为:chown username:group filename,这条命令中如果username省略,表示只更改所属组。*

chown -R 跟chmod -R 用法一样,可以更改目录下所有子目录子文件的属主、属组

chattr 命令 修改文件的特殊属性

chattr的格式为chattr [+-=] 参数 [文件或目录] 参数如下:

  • A:增加该属性后,表示文件或目录的atime将不可修改
  • s:增加该属性后,会将数据同步写入磁盘中
  • a:增加该属性后,表示只能追加内容,不能删除,只能root用户设定该属性
  • c:增加该属性后,表示自动压缩该文件,读取时会自动解压
  • i:增加该属性后,表示文件不能删除、重命名、设定链接、写入及新增数据 常用的参数是a和i
[root@test-01 ~]# chattr +a /tmp/1
[root@test-01 ~]# lsattr /tmp/1
[root@test-01 ~]# lsattr /tmp
---------------- /tmp/yum.log
-----a-A-------- /tmp/1
[root@test-01 ~]# chattr -A /tmp/1
[root@test-01 ~]# lsattr /tmp/1
[root@test-01 ~]# lsattr /tmp
---------------- /tmp/yum.log
-----a---------- /tmp/1
[root@test-01 ~]# mkdir /tmp/1/2
[root@test-01 ~]# rmdir /tmp/1/2
rmdir: 删除 "/tmp/1/2" 失败: 不允许的操作
[root@test-01 ~]# 

一个文件被赋予这个a的属性后,只能追加内容,不能删除文件里面的内容

[root@test-01 ~]# vi /tmp/1/1.txt 
[root@test-01 ~]# chattr +a /tmp/1/1.txt 
[root@test-01 ~]# !head
head -n 10 /etc/passwd >> /tmp/1/1.txt 
[root@test-01 ~]# vi /tmp/1/1.txt 


E325: ATTENTION
Found a swap file by the name "/tmp/1/1_txt.swp"
          owned by: root   dated: Sat Dec 23 03:30:18 2017
         file name: /tmp/1/1.txt
          modified: no
/etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
~                                                                     
~                                                                     
~                                                                     
"/tmp/1/1.txt"
"/tmp/1/1.txt" E212: Can't open file for writing
Press ENTER or type command to continue
[root@test-01 ~]# rm -f /tmp/1/1.txt 
rm: 无法删除"/tmp/1/1.txt": 不允许的操作
[root@test-01 ~]# 


当一个文件被赋予i属性时,不能删除,不能重命名不能写入,不能新增数据

[root@test-01 ~]# head -n 10 /etc/passwd >> /tmp/1/1.txt 
-bash: /tmp/1/1.txt: 权限不够
[root@test-01 ~]# vi /tmp/1/1.txt 
[root@test-01 ~]# mv /tmp/1/1.txt /tmp/1/2.txt
mv: 无法将"/tmp/1/1.txt" 移动至"/tmp/1/2.txt": 不允许的操作
[root@test-01 ~]# 

lsattr 命令

该命令用于读取文件或目录的特殊权限,格式为:lsattr 参数 文件或目录

  • a:类似于ls -a 选项,连同隐藏的文件一同列出
  • R:连同子目录的数据一同列出
[root@localhost ~]# lsattr -R /tmp
---------------- /tmp/test_mv

/tmp/test_mv:
---------------- /tmp/test_mv/3

/tmp/test_mv/3:
---------------- /tmp/test_mv/3/2

/tmp/test_mv/3/2:
---------------- /tmp/test_mv/3/2/2.txt

---------------- /tmp/test_mv/3/4

/tmp/test_mv/3/4:
---------------- /tmp/test_mv/3/4/2.txt
---------------- /tmp/test_mv/3/4/2

/tmp/test_mv/3/4/2:
---------------- /tmp/test_mv/3/4/2/2.txt


猜你喜欢

转载自my.oschina.net/u/3731306/blog/1826096
今日推荐