【Linux】文件的权限管理及特殊属性-粘滞位(sticky bit)概述

发布时间:2024-01-11 10:00

(一)linux文件属性

Linux文件属性不仅规定了文件的所有者(user)和所属组(group),还规定了所有者,所属组以及其他用户对该文件的权限。我们可以用 ls -l 或ls -al命令来查看这些属性。如下:

【Linux】文件的权限管理及特殊属性-粘滞位(sticky bit)概述_第1张图片

第一列中包含文件的类型,以及文件所有者、所属组和其他用户对文件的权限。
第一列第一个字符代表文件类型:
上例中我们只看到“d”和“-”两种文件类型,除此之外的文件类型还有“l”,“b”,“c”,“s”等。具体描述如下:
“ d ” 表示该文件为目录 ;
“ - ”表示该文件为普通文件;
“ l ” 表示该文件为链接文件(linkfile);
“ b ”表示该文件是块设备,即设备文件里面的可供存储的接口设备;
“ c ”表示该文件为设备文件里面的串行端口设备(例如:鼠标、键盘等一次性读取设备);
“ s ”表示该文件为套接字文件(socket),用于进程间通信。
接下来的九个字符以三个字符为单位分别表示文件所有者,文件所属用户组,其他用户的权限(可读(read)、可写(write)、可执行(eXecute))。
例如:上图中的 .bash history,该文件是一个普通文件文件拥有者对该文件可读、可写但不可执行,文件所属组和其他用户对该文件不可读、不可写、不可执行。

(二)更改文件权限
2.1   chgrp命令
功能:(change group)改变文件所属用户组。
格式:chgrp [组名] [文件名]
【Linux】文件的权限管理及特殊属性-粘滞位(sticky bit)概述_第2张图片
当然,chgrp命令也可以更改文件目录的所属组,例如:
【Linux】文件的权限管理及特殊属性-粘滞位(sticky bit)概述_第3张图片
但是,这里我们可以发现chgrp只改变了目录本身,并没有改变目录下的其他文件或目录属性。那如果我们想要级联更改子目录及子文件呢?这里就不得不提到 -R参数:
使用  chgrp -R dirname    -R 进行递归的持续更改,即连子目录下的所有文件、目录都更新成这个用户组
【Linux】文件的权限管理及特殊属性-粘滞位(sticky bit)概述_第4张图片

2.2  chown命令
功能:(change owner)更改文件所有者。
格式:chown [所有者] [文件名]   /  chown  -R  [所有者] [文件名]
【Linux】文件的权限管理及特殊属性-粘滞位(sticky bit)概述_第5张图片

2.3 chmod命令
功能:更改文件权限
格式:
①符号类型改变文件权限  如:chmod  u=rwx,o=r,g=r   filename
前文中我们已经介绍了文件权限格式,例如,-rwxr--r--则表示该文件对所有者可读可写可执行,但对于所属组和其他用户只可读、不可写、不可执行。我们可以使用“u”,“g”,“o”来分别表示user,group,other的属性。我们可以对“u”,“g”,“o”分别赋值来实现权限的更改,也可以针对“u”,“g”,“o”增加或减少某个权限。具体规则如下表:
【Linux】文件的权限管理及特殊属性-粘滞位(sticky bit)概述_第6张图片

②数字类型改变文件权限  如:chmod  644 filename
前文中我们已经介绍了文件权限格式,例如,-rwxr--r--则表示该文件对所有者可读可写可执行,但对于所属组和其他用户只可读、不可写、不可执行。Linux下可使用数字代替“rwx”,具体规则为:r=4,w=2,x=1,-=0。那么上述的权限“-rwxr--r--”用数字表示就是744。具体算法为:rwx=4+2+1=7,r--=4+0+0=4,r--=4+0+0=4。
具体操作如下图:

【Linux】文件的权限管理及特殊属性-粘滞位(sticky bit)概述_第7张图片

2.4  umask命令

功能:改变文件的缺省权限

格式:umask xxx  (这里的xxx表示三个数字),也可以直接输入umask查看其预设的值。

知道了这些,那么umask的值应该怎么设置呢?我们先看以下两条规则:

  • 若用户建立一个普通文件,则预设是没有可执行权限的,即最大值为666(-rw-rw-rw-)。
  • 若用户建立的是目录,则预设为所有权限都开放,即777(drwxrwxrwx)。

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号