美文网首页
文件和目录权限/更改所有者和所属组/umask/隐藏权限lsat

文件和目录权限/更改所有者和所属组/umask/隐藏权限lsat

作者: hch004 | 来源:发表于2017-12-21 08:32 被阅读0次

    文件和目录权限

    认识Linux文件属性以及它的所有者和所属组

    [root@localhost ~]# ls -lh word1.txt

    -rw-r--r--. 1 root root 0 12月 20 08:36 word1.txt

    第一列:我们从一个杠(-)开始认识,第一个杠(-)是表示文件属于哪种类型

    *-表示该文件为普通文件*d表示该文件为目录*l表示该文件为链接文件*b表示该文件为块设备文件(比如/dev/sda就是这样的文件,硬盘*c表示该文件为串行端口设备文件(又称字符设备文件),比如鼠标、键盘这些

    第二列:9个权限位rw-r--r--,每三个权限位为一段,第一段rw-;表示所有者的权限,第二段r--;表示为所属组的权限,第三段r--;表示为其他用户的权限

    权限里字母所表示的意思,以及权限位数字的表示:

    *r(4):可读*w(2):可写*x(1):可执行*-(0):没有权限;为空

    rw-r--r--;所有者权限为rw-既表示为可读可写不可执行,接下来的所属组和其他用户以此类推。

    u表示:所有者,g表示:所属组,o表示:其他用户,a=u+g+o

    第三列:(.)表示该文件占用的节点(inode),如果是目录,那这个数值与目录下是子目录数量有关

    第四列:表示该文件的所有者

    第五列:表示该文件的所属组

    chmod命令

    chmod是用来更改文件权限的一个命令,在Linux系统中,一个目录的默认权限为755:rwxr-xr-x,而一个文件的默认权限为644:

    [root@localhost ~]# chmod 777 word1.txt

    [root@localhost ~]# ls -lh word1.txt

    -rwxrwxrwx. 1 root root 0 12月 20 08:36 word1.txt

    更改所有者和所属组chown_chgrp

    chgrp命令

    chgrp命令可以用来更改文件的所属组,其格式为:chgrp[组名][文件名],示例

    [root@localhost ~]# groupadd hch

    [root@localhost ~]# chgrp hch word1.txt

    [root@localhost ~]# ls -lh

    总用量 4.0K

    -rwxrwxrwx. 1 root hch    0 12月 20 08:36 word1.txt

    -rw-r--r--. 1 root root    0 12月 20 08:37 word2.txt

    上例中有用到groupadd命令,该命令是用来创建一个所属组的。

    chown命令

    chown命令是用来更改文件或者目录的所有者,其格式为:chown[账户名][文件名]或者chown[-R][账户名:组名][文件名],以下示例:

    [root@localhost ~]# mkdir hch

    [root@localhost ~]# cd hch

    [root@localhost hch]# touch 123.txt

    [root@localhost hch]# cd

    [root@localhost ~]# chown -R hch1 hch

    [root@localhost ~]# ls -lh hch/123.txt

    -rw-r--r--. 1 hch1 root 0 12月 21 08:12 hch/123.txt

    上例中用到useradd命令,该命令是用来创建一个用户的。

    命令umask

    命令umask是用来改变文件的默认权限值的,其格式为:umask xxx(这里xxx表示数字),我们可以在命令行输umask查看当前的默认值

    *若用户建立普通文件时,则预设没有可执行权限,只有r、w两个权限,最大值为666(-rw-rw-rw-)*若用户建立普通目录时,则预设所有权限均开放,最大值777(drwxrwxrwx)

    umask数值代表的行以为以上两条规则中的默认值需要减去的权限,所以结果为:

    *目录的权限为rwxrwxrwx - ----w--w-=rwxr-xr-x*普通文件的权限为rw-rw-rw- - ----w--w- =rw-r--r--

    以下我们示例使用umask将数值改为002,在看下创建文件或者目录的时候默认权限

    [root@localhost ~]# umask 002

    [root@localhost ~]# mkdir hch02

    [root@localhost ~]# ls -l

    总用量 4

    drwxrwxr-x. 2 root root    6 12月 21 08:20 hch02

    drwxr-xr-x. 2 root root  19 12月 20 08:44 hello

    -rwxrwxrwx. 1 hch1 hch    0 12月 20 08:36 word1.txt

    -rw-r--r--. 1 root root    0 12月 20 08:37 word2.txt

    [root@localhost ~]# touch hch123.txt

    [root@localhost ~]# ls -lh hch123.txt

    -rw-rw-r--. 1 root root 0 12月 21 08:21 hch123.txt

    隐藏权限lsattr/chattr

    chattr命令

    命令chattr的格式为:chattr[+-=][Asaci][文件或者目录]其中+、-和=分别表示增加、减少和设定,各个权限如下。

    *A:增加该属性后,表示文件或目录的atime将不可以修改*s:增加该属性后,会见个数据同步写入磁盘中*a:增加该属性后,表示只能追加不能删除,非root用户不能设定该属性*c:增加该属性后,表示自动压缩该文件,读取是会自动解压*i:增加该属性后,表示文件不能删除、重命名、设定链接、写入以及新增数据。

    以上参数中a和i连个常用的权限,我们举例说明示范一下

    [root@localhost ~]# chattr +i hch

    [root@localhost ~]# touch hch/1234.txt

    touch: 无法创建"hch/1234.txt": 权限不够

    [root@localhost ~]# chattr  -i hch

    [root@localhost ~]# touch hch/1234.txt

    [root@localhost ~]# chattr  +i hch

    [root@localhost ~]# rm -f hch/1234.txt

    rm: 无法删除"hch/1234.txt": 权限不够

    示例中,给asklinux2目录加了i权限后,即使是root用户,也不能在asklinux2目录中创建或删除1.txt。

    接下来我们看下a权限的作用

    [root@localhost ~]# chattr -i hch

    [root@localhost ~]# touch hch/456.txt

    [root@localhost ~]# ls -lh hch

    总用量 0

    -rw-rw-r--. 1 root root 0 12月 21 08:26 1234.txt

    -rw-r--r--. 1 hch1 root 0 12月 21 08:26 123.txt

    -rw-rw-r--. 1 root root 0 12月 21 08:28 456.txt

    [root@localhost ~]# chattr +a hch

    [root@localhost ~]# rm -f hch/456.txt

    rm: 无法删除"hch/456.txt": 不允许的操作

    [root@localhost ~]# touch hch/789.txt

    [root@localhost ~]# ls hch

    1234.txt  123.txt  456.txt  789.txt

    上例中,asklinux2目录增加a权限后,只可以在里面创建文件,而不能删除文件,文件同适用以上权限。

    命令lsattr

    lsattr命令是用来读取文件或者目录的特殊权限,格式为:lsattr[-aR][文件/目录],我们看下a和R两个参数的定义

    *-a:类似于ls的-a参数,既连同隐藏文件一同列出* -R:连同子目录的数据一同列出

    示例:

    [root@localhost ~]# chattr +i hch/456.txt

    [root@localhost ~]# chattr +a hch/789.txt

    [root@localhost ~]# lsattr hch

    ---------------- hch/123.txt

    ---------------- hch/1234.txt

    ----i----------- hch/456.txt

    -----a---------- hch/789.txt

    [root@localhost ~]# lsattr -aR hch

    -----a---------- hch/.

    ---------------- hch/..

    ---------------- hch/123.txt

    ---------------- hch/1234.txt

    ----i----------- hch/456.txt

    -----a---------- hch/789.txt

    相关文章

      网友评论

          本文标题:文件和目录权限/更改所有者和所属组/umask/隐藏权限lsat

          本文链接:https://www.haomeiwen.com/subject/ivdowxtx.html