chmod命令chown命令umask值和隐藏权限

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了chmod命令chown命令umask值和隐藏权限相关的知识,希望对你有一定的参考价值。

chmod命令(change mode)

使用 ls -l 可以看到文件或目录的权限。权限一共有9位,分为3段,分别代表拥有者权限、拥有组权限和其他人权限。每一段都有3位,分别是 r(读)、w(写)和 x(执行)。若没有相应的权限,则使用 - 代替。

技术分享图片


每种权限的意义:

r:对于目录来说,允许列出目录的内容。(ls)

对于文件来说,允许查看文件内容。(cat、more、less、head、tail、tac)

w:对于目录来说,允许在其下创建删除文件。(mkdir、touch、rm、cp、mv)

对于文件来说,允许编辑其内容。(vi、vim)

x:对于目录来说,允许进入目录或以长格式显示目录。(cd、ls -l)

对于文件来说,允许执行。(脚本需要x权限)


权限的数字表示法:r=4,w=2,x=1。

chmod xyz 文件或目录名:更改文件的权限。(xyz表示数字,x代表拥有者权限,y代表拥有组权限,z代表其他人权限)

技术分享图片


权限的字符表示法:u(拥有者权限)、g(拥有组权限)、o(其他人权限)、a(全部,相当于ugo)。

chmod u=?,g=?,o=? 文件或目录名:更改文件权限。(?代表相应权限,若什么权限都没有,则使用- 代替。若拥有者和拥有组权限一样,则可以直接合并写成ug=?。若u、g、o都一样,则可以直接写成a=?)

技术分享图片


此外,我们还可以针对u、g、o和a,增加或减少它们的某个权限。

chmod u+?,g-?,o+? 文件或目录名

技术分享图片


ls -l 看到的第一列的最后面一位的 . 代表受selinux制约,如果关闭selinux则没有这个 . 。

永久关闭selinux需要进入配置文件 /etc/selinux/config。


chmod只对当前目录或文件生效,不会对子目录或文件产生影响。

chmod -R :递归更改权限。(更改当前目录以及所有子目录或子文件的权限)

技术分享图片


chown命令(change owner)

chown 拥有者 目录或文件:更改目录或文件的拥有者。

chgrp 拥有组 目录或文件:更改目录或文件的拥有组。

技术分享图片


chown 拥有者:拥有组 文件或目录:更改文件或目录的拥有者和拥有组。(同时修改)

chown :拥有组 文件或目录:更改文件或目录的拥有组。(相当于chgrp命令)

技术分享图片

技术分享图片


chown -R:递归更改目录及子目录的拥有者(组)。


只有root用户可以更改文件的拥有者和拥有组。


umask值

umask值用于设置用户在创建文件或目录时的默认权限,当我们在系统中创建目录或文件时,目录或文件所具有的默认权限就是由umask值决定的。


umask :查看当前用户的umask值。一共有四位,第1位用于定义特殊权限,我们一般不予考虑。与一般权限有关的是后3位数字,所以一般使用后三位。

技术分享图片


umask 数字:设置umask值。(临时生效,若想永久有效,则需要修改/etc/bashrc)


目录的预设权限是777,文件的预设权限是666(文件一般没有x权限)。

root用户的默认umask值是022,所以root用户新建目录或者文件的默认权限为:

目录:rwxrwxrwx(777) - ----w--w-(022) = rwxr-xr-x(755)

文件:rw-rw-rw-(666) - ----w--w-(022) = rw-r--r--(644)


普通用户的默认umask值为002,所以普通用户新建目录或者文件的默认权限为:

目录:rwxrwxrwx(777) - -------w-(002) = rwxrwxr-x(775)

文件:rw-rw-rw-(666) - -------w-(002) = rw-rw-r--(664)


计算默认权限不能直接使用数字做减法,有时候可能会出错。比如说umask值为003,如果直接做减法,那么文件的默认权限为666-003=663。而通过真实计算得到:rw-rw-rw-(666) - -------wx(003) = rw-rw-r--(664),所以最好还是转化为权限位来计算默认权限而不是直接用数字做减法。


隐藏权限

chattr :设置文件或目录的隐藏属性。

lsattr :查看文件或目录的隐藏属性。

技术分享图片


对于文件来说:

i权限:不能被修改、删除、移动(改名)、更改时间戳、更改普通权限,可以查看、复制。

chattr +i 文件名:给文件设置i权限。

chattr -i 文件名:去掉文件的i权限。

技术分享图片


若一个文件被设置了i权限,则使用vi修改它之后无法保存退出,只能q!退出。但是当前目录下会自动生成一个同名的文件(后缀多了一个~),这是缓存文件,如果正常编辑之后wq保存退出,那么这个缓存文件就会覆盖原文件,这里无法正常保存退出,所以这个缓存文件就不会覆盖原文件。

技术分享图片

技术分享图片

技术分享图片


a权限:只能追加文件内容,不能修改、删除、移动(改名)、更改普通权限,可以复制、查看、更改时间戳。

技术分享图片


对于目录来说:

lsattr 目录名:查看当前目录底下所有子目录或子文件的隐藏权限。

lsattr -d 目录名:查看目录本身的隐藏权限。

技术分享图片


i权限:不能删除(自己和子目录)、移动(改名)(自己和子目录)、在里面创建文件或目录、更改普通权限(自己)、更改时间戳(自己)。可以在子目录中创建文件或者编辑子文件的内容、更改子目录或文件的权限以及时间戳。

技术分享图片


a权限:不能删除(自己和子目录)、移动(改名)(自己和子目录)、更改普通权限(自己)。可以在里面创建文件或目录、在子目录中创建文件或者编辑子文件的内容、更改子目录或文件的权限以及时间戳、更改自己的时间戳。

技术分享图片


以上是关于chmod命令chown命令umask值和隐藏权限的主要内容,如果未能解决你的问题,请参考以下文章

Linux文件和目录权限:chmod更改所有者和所属组:chown,umask命令,隐藏权限:lsattr/chattr

2.14 文件和目录权限chmod 2.15 更改所有者和所属组chown 2.16 umask 2

26期20180606 chmod chown umask 隐藏权限

26期20180606 chmod chown umask 隐藏权限

八文件权限和目录权限chmod;更改所有者和所属组chown;umask;隐藏权限

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