Linux目录和文件中的常用命令(四)

摘要:2.14 文件和目录权限chmod

          2.15 更改所有者和所属组chown

          2.16 umask

          2.17 隐藏权限lsattr/chattr

一 文件和目录权限chmod

    1.文件权限

        1)-rwxr--r--:第一个字符表示文件类型,其余字符代表文件权限,

        2)权限位第一段:所有者权限[rwx],[可读(r)、可写(w)、可执行(x)、不可读/不可写/不可执行(-)];

              第二段:所属组权限[r--]

              第三段:其他用户对此文件的权限[r--]

        3)文件权限可以使用数字表示:r=4 w=2 x=1,三个权限用三个数字相加,如rwx=7 rw-=6 --x=1 rw-r--r--=644  rw-r-xr-x=655

    2.更改文件和目录权限

        1)chmod: change mode 更改权限,针对目录使用时,只对当前目录有效,子目录/子文件无效

        2)用法# chmod 【权限】 【文件名/目录】

        更改权限前:

Linux目录和文件中的常用命令(四)_第1张图片

        更改权限后:

Linux目录和文件中的常用命令(四)_第2张图片


        3)在文件权限后面有时候会有一个点【.】:表示此文件受制于selinux,当selinux开启时,它的文件权限位后面会有一个点,selinux有三种状态(「disabled」「permissive」「enforcing」);

Linux目录和文件中的常用命令(四)_第3张图片

        4)chmod -R:更改目录权限时,对子目录、子文件权限也有效;

        更改权限前目录和子目录的权限如下:

Linux目录和文件中的常用命令(四)_第4张图片

        更改权限后目录和子目录的权限如下:

Linux目录和文件中的常用命令(四)_第5张图片

    3.更改权限另一种写法

            1)# chmod u=rwx,g=r,o=r aming2:其中u表示user,g表示group ,o=表示other;

Linux目录和文件中的常用命令(四)_第6张图片

        2)chmod a+x aming2:其中a表示所有权限,a+x表示给文件或目录的三段权限都加上可执行(x)权限;

Linux目录和文件中的常用命令(四)_第7张图片

        3)chmod a-x aming2:表示给文件aming2所有x权限都被取消;

Linux目录和文件中的常用命令(四)_第8张图片

        4)另外还有的写法如:u-x  u+x  g-x  g+x

二 更改所有者和所属组

    1.chown

         change owner更改所有者

    2.查看系统用户

        # cat /etc/passwd

Linux目录和文件中的常用命令(四)_第9张图片

    3.更改所有者

        # chown 【用户名】 【文件名/目录】,含义为更改【文件名/目录】的所有者为【用户名】

Linux目录和文件中的常用命令(四)_第10张图片

    4.更改所属组

        1)# chown 【所有者用户名】:【所属组用户名】 【文件名/目录】:同时更改所有者和所属组

Linux目录和文件中的常用命令(四)_第11张图片

        2)#chown  :【用户名】 【文件名/目录】:更改【文件名/目录】的所属组为【用户名】

Linux目录和文件中的常用命令(四)_第12张图片

        3)# chgrp【用户名】 【文件名/目录】:change group更改所属组

Linux目录和文件中的常用命令(四)_第13张图片

        4)# chown -R :-R 选项表示更改目录的所有者或所属组时,目录下的子目录和子文件也会被更改所有者和所属组

总结:chown -R username:group filename

三 umask

    1.root用户系统umask值

            0022

    2.# umask 【值】

        更改系统umask值

Linux目录和文件中的常用命令(四)_第14张图片

    3.更改umask值后,新创建文件或目录权限

        更改前系统umask值为0022,新创建文件或目录的权限如下

Linux目录和文件中的常用命令(四)_第15张图片

        更改umask为002后,新创建文件或目录的权限如下:

Linux目录和文件中的常用命令(四)_第16张图片

        umask 值为022时,新创建的文件权限为644、新创建的目录权限为755

        umask 值为002时,新创建的文件权限为664、新创建的目录权限为775

权限规律:

1、目录必须有x权限

2、新创建目录权限计算公式(以umask=003为例):rwxrwxrwx - -------wx = rwxrwxr--(774)

3、新创建文件权限计算公式(以umask=003为例):rw-rw-rw- - -------wx = rw-rw-r--(664)

四 隐藏权限

    1.# chattr +【权限名】 【文件名/目录】

:        change file attributes on a Linux file system设置隐藏权限,用的少

Linux目录和文件中的常用命令(四)_第17张图片

    2  # chattr +i filename

        给filename 这个文件增加隐藏的i权限,有了这个权限,文件将不能写、不能改/移动文件名、不能删除文件,touch命令更改时间也无效,且使用ls -l命令查看其权限时并不能显示这个隐藏的权限,只能使用lsattr  filename这个命令才能查看隐藏权限

        文件名后带~符号:是使用vi命令时,会生成一个被编辑的副本文件,只有当保存退出时才会覆盖原来的文件,如果文件带有隐藏权限使文件不能被vi编辑,则这个带有~符号的文件副本就会被遗留下来

    3  # chattr -i filename

            去掉i权限

    4.# chattr +a filename

        +a表示只能追加内容到文件末尾,不能改名字、不能删除、不能移动、可以touch更改时间。如日志文件就有这个隐藏权限

        -a表示去掉这个a权限

    5.lsattr

        lsattr dirname:查看的是目录下子文件/子目录的隐藏权限

        lsattr -d dirname:查看的是目录本身的隐藏权限

        给目录加隐藏权限跟给文件加隐藏权限的效果是一样的,权限赋予的是目录本身,跟已经存在的子目录或子文件关系不大,当给目录加i  或a权限时,其子文件是可以编辑操作文件内容的;+i时是可以给目录touch文件的

        lsattr dirname:只能查看一层的文件/目录隐藏权限;

        lsattr -R dirname:可以查看到多层的文件/目录的隐藏权限

        lsattr -a /root/:可以查看到隐藏的文件

你可能感兴趣的:(Linux目录和文件中的常用命令(四))