Linux文件权限

chmod

chmod = change mode (更改权限)

[root@xxlinux-02 02]# ls -l
总用量 12
-rw-r--r--. 1 root root   15 6月   7 22:57 3.txt
-rw-r--r--. 1 root root 1008 6月   7 22:05 passwd
-rw-r--r--. 1 root root 1008 6月   7 22:05 passwd01

第一列部分总共11位:

 第1位: 表示文件类型
  
 第2位到第10位共9位:表示文件的权限.2-4位是所有者权限,5-7位是所属组权限,8-10是其他用户权限
    
 在SELinux开启的情况下创建的文件或者目录才会有 “.”

r = 4,w = 2 ,x = 1

常用用法:

  • chmod xxx 文件名/目录名(xxx表示数字)
[root@xxlinux-02 02]# chmod 666 3.txt
[root@xxlinux-02 02]# ls -l
总用量 12
-rw-rw-rw-. 1 root root   15 6月   7 22:57 3.txt
-rw-r--r--. 1 root root 1008 6月   7 22:05 passwd
-rw-r--r--. 1 root root 1008 6月   7 22:05 passwd01
  • chmod -R xxx 目录名(xxx表示数字):级联更改,更改目录及目录下的所有子目录和文件的权限
[root@xxlinux-02 xxlinux]# ls -l 02
总用量 12
-rw-rw-rw-. 1 root root   15 6月   7 22:57 3.txt
-rw-r--r--. 1 root root 1008 6月   7 22:05 passwd
-rw-r--r--. 1 root root 1008 6月   7 22:05 passwd01
[root@xxlinux-02 xxlinux]# chmod -R 755 02
[root@xxlinux-02 xxlinux]# ls -l 02
总用量 12
-rwxr-xr-x. 1 root root   15 6月   7 22:57 3.txt
-rwxr-xr-x. 1 root root 1008 6月   7 22:05 passwd
-rwxr-xr-x. 1 root root 1008 6月   7 22:05 passwd01
  • chmod u=rwx,g=rx,o=rx 文件/目录 . u 表示 所有者,g 代表所属组,o代表其他用户

相当于 ”chmod 755 文件/目录“

  • “chmod a+r/w/x 文件/目录“ 或者 ”chmod a-r/w/x 文件/目录“

    “a”代表所有=ugo “a”的位置同样可以换成 u ,g,o


更改所有者所属组

chown(chown= change owner) chgrp(chgrp=change group)

语法: chown 用户名 文件名 // chown 用户名:组名 文件名
语法: chgrp 组名 文件/目录

用法:

  • chown 用户名 文件/目录 (更改文件/目录所有者)
[root@xxlinux-02 ~]# ll
总用量 4
-rw-r--r--. 1 root root    0 6月  10 00:26 1.txt
-rw-------. 1 root root 1422 5月  26 07:57 anaconda-ks.cfg
[root@xxlinux-02 ~]# chown xx 1.txt
[root@xxlinux-02 ~]# ll
总用量 4
-rw-r--r--. 1 xx   root    0 6月  10 00:26 1.txt
-rw-------. 1 root root 1422 5月  26 07:57 anaconda-ks.cfg
  • chgrp 组名 文件/目录 (更改文件目录所属组)
[root@xxlinux-02 ~]# ll
总用量 4
-rw-r--r--. 1 xx   root    0 6月  10 00:26 1.txt
-rw-------. 1 root root 1422 5月  26 07:57 anaconda-ks.cfg
[root@xxlinux-02 ~]# chgrp xx 1.txt
[root@xxlinux-02 ~]# ll
总用量 4
-rw-r--r--. 1 xx   xx      0 6月  10 00:26 1.txt
-rw-------. 1 root root 1422 5月  26 07:57 anaconda-ks.cfg
  • chown 用户名:组名 文件/目录 ( 更改文件/目录 所有者和所属组)
[root@xxlinux-02 ~]# ll
总用量 4
-rw-r--r--. 1 xx   xx      0 6月  10 00:26 1.txt
drwxr-xr-x. 2 root root    6 6月  10 00:34 abc
-rw-------. 1 root root 1422 5月  26 07:57 anaconda-ks.cfg
[root@xxlinux-02 ~]# chown xx:testx abc
[root@xxlinux-02 ~]# ll
总用量 4
-rw-r--r--. 1 xx   xx       0 6月  10 00:26 1.txt
drwxr-xr-x. 2 xx   testx    6 6月  10 00:34 abc
-rw-------. 1 root root  1422 5月  26 07:57 anaconda-ks.cfg
  • chown :组名 文件/目录 (更改文件/目录所属组)
[root@xxlinux-02 ~]# ll
总用量 4
-rw-r--r--. 1 xx   xx       0 6月  10 00:26 1.txt
drwxr-xr-x. 2 xx   testx    6 6月  10 00:34 abc
-rw-------. 1 root root  1422 5月  26 07:57 anaconda-ks.cfg
[root@xxlinux-02 ~]# chown :root abc
[root@xxlinux-02 ~]# ll
总用量 4
-rw-r--r--. 1 xx   xx      0 6月  10 00:26 1.txt
drwxr-xr-x. 2 xx   root    6 6月  10 00:34 abc
-rw-------. 1 root root 1422 5月  26 07:57 anaconda-ks.cfg

选项“-R”表示级联更改,更改目录及目录下所有子目录和文件


umask

umask :决定文件/目录的默认权限

  1. 执行 umask 命令可以查看 umask 的值
[root@xxlinux-02 ~]# umask
0022
  1. .新建目录的默认权限算法:777(rwxrwxrwx)-umask值022(----w--w-)=755(rwxr-wr-w)
[root@xxlinux-02 ~]# umask
0022
[root@xxlinux-02 ~]# mkdir bbb
[root@xxlinux-02 ~]# ll
总用量 4
-rw-r--r--. 1 xx   xx      0 6月  10 00:26 1.txt
drwxr-xr-x. 2 xx   root    6 6月  10 00:34 abc
-rw-------. 1 root root 1422 5月  26 07:57 anaconda-ks.cfg
drwxr-xr-x. 2 root root    6 6月  10 01:00 bbb
  1. 新建文件的默认权限算法:666(rw-rw-rw-)-umask值022(----w--w-)=644(rw-r--r--)
[root@xxlinux-02 ~]# touch 2.txt
[root@xxlinux-02 ~]# ll
总用量 4
-rw-r--r--. 1 xx   xx      0 6月  10 00:26 1.txt
-rw-r--r--. 1 root root    0 6月  10 01:05 2.txt
drwxr-xr-x. 2 xx   root    6 6月  10 00:34 abc
-rw-------. 1 root root 1422 5月  26 07:57 anaconda-ks.cfg
drwxr-xr-x. 2 root root    6 6月  10 01:00 bbb
  1. “ umask 数字” 可以更改umask的值
[root@xxlinux-02 ~]# umask
0022
[root@xxlinux-02 ~]# umask 002
[root@xxlinux-02 ~]# umask
0002

隐藏权限lsattr和chattr

命令 : chattr (修改文件/目录的特殊属性)

  • 语法: chattr [+-=] 选项 文件/目录名

    ‘+-=’ : 分别为增加、减少、设定

  • ‘i’ : 增加后,使文件不能被删除、重命名、设定链接、写入、新增数据

[root@localhost ~]# chattr +i aaa
[root@localhost ~]# touch aaa/1.txt
touch: 无法创建"aaa/1.txt": 权限不够
[root@localhost ~]# chattr -i aaa
[root@localhost ~]# touch aaa/1.txt
[root@localhost ~]# chattr +i aaa
[root@localhost ~]# rm -f aaa/1.txt
rm: 无法删除"aaa/1.txt": 权限不够
  • ‘a’ : 增加该属性后,只能追加不能删除(非root用户不能设定该属性)
[root@localhost ~]# chattr +a aaa/1.txt
[root@localhost ~]# head -n 2 /etc/passwd > aaa/1.txt
-bash: aaa/1.txt: 不允许的操作
[root@localhost ~]# head -n 2 /etc/passwd >> aaa/1.txt
[root@localhost ~]# cat aaa/1.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
[root@localhost ~]# rm -f aaa/1.txt
rm: 无法删除"aaa/1.txt": 不允许的操作

其他选项:

 ‘A’ : 增加该属性后,文件或目录的atime将不可被修改;
       
 ‘S’ : 增加该属性后,会将数据同步写入磁盘中
       
 ‘c’ : 自动压缩该文件,读取时会自动解压

命令 : lsattr 读取文件或者目录的特殊权限

语法: lsattr [-aR] [文件/目录名]

  • ‘-a’ : 类似与ls 的-a 选项,即连同隐藏文件一同列出
  • ‘-R’ : 连同子目录的数据一同列出
[root@localhost ~]# lsattr aaa
-----a---------- aaa/1.txt
[root@localhost ~]# lsattr -aR aaa
---------------- aaa/.
---------------- aaa/..
-----a---------- aaa/1.txt
posted @ 2017-08-31 12:21  指环王Raul  阅读(244)  评论(0编辑  收藏  举报