博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第2周第3课:chmod、chown、umask、lsattr/chattr
阅读量:6115 次
发布时间:2019-06-21

本文共 2733 字,大约阅读时间需要 9 分钟。

hot3.png

2.14 文件和目录权限chmod

文件类型和文件权限

见下图列表第1组的内容

Markdown

以“drwxr-xr-x”为例说明。这10个字符,由两部分组成:

  1. 第1列,表示文件类型(目录或文件夹)。
  2. 从第2列开始的剩余部分, 表示文件权限。权限每3位为一组,分别表示:
  • 文件所有者(user)的权限
  • 文件所属组((group)的权限
  • 其他非本群组用户(others)的权限。

1)第1列的文件类型,大体分为如下几类:

  • d:目录
  • -:普通文件(文本文档、二进位字符串)
  • l:链接文件(link file),重定向
  • s:socket,通信设备
  • p:named pipe
  • b:block device,块设备
  • c:字符串设备

2)文件权限:

  • r:Read,可读
  • w:Write,可写
  • x:eXecute,可执行
  • -:无权限

解读drwxr-xr-x,则拆分为4部分,各部分分别表示:

  • d:文件为目录
  • rwx:文件所有者(user)可读、可写、可执行
  • r-x:文件所属组(group)可读、不可写、可执行
  • r-x:其他非本群组用户(others)可读、不可写、可执行

chmod命令(change mode)

  • Linux中可以用数字代替rwx来更改权限,具体规则:r=4,w=2,x=1,-=0
  • e.g:‘-rwxrwxrw-’用数字表示就是776,计算规则:rwx=4+2+1=7,rwx=4+2+1=7,rw-=4+2+0=6。

Markdown

语法:chmod [-R] xyz [filename] (-R 参数用于级联更改。xyz代表数字)

  1. 在Linux系统中,root用户默认一个目录的权限为755,而一个文件的权限为644。

  2. chmod支持使用rwx的方式来设置权限。3组(3位1组)文件权限分别所属于user,group,others。可以使用u,g,o来代表各自属性。此外,a则代表all,即全部。

这个方式容易混淆,不及数字方式表示快速、准确。平时不建议使用此方式。

e.g1,在下图的例子中,chmod命令的另一种表现方式:

  • chmod u=rwx,g=rx,o=r 1.txt    && 各组分别赋予某类权限
  • chmod u-x,g-x 1.txt        && 各组分别去掉某类权限

Markdown

e.g2,chmod命令,-R参数的用法

Markdown

2.15 更改所有者和所属组chown

chown命令(change owner)

  • 更改目录或文件的所有者以及所属组。
  • 语法:
  1. chown [-R] 账户名 filename 更改文件的所有者
  2. chown [-R] 账户名:组名 filename 更改所属组(-R的作用是级联更改)

Markdown

Markdown

Markdown

Markdown

chgrp命令(change group)

  • 更改文件或目录的所属组。
  • 语法:chgrp [-R] [组名] filename (-R表示级联更改,只针对目录文件)

e.g1:更改文件的所属组

Markdown

e.g2:更改目录的所属组

Markdown

e.g3:更改目录及其目录下的文件的所属组

Markdown

注:由于chgrp命令仅限于修改所属组(group),而不更改所有者(user),因此,及chown命令效率高。建议用chown命令代替chgrp命令。

2.16 umask

  • 语法:umask xx(这里的xxx代表三个数字)

Markdown

  • 数值定义的规则:
  1. 用户建立普通文件,则预设没有可执行权限只有rw(可读、可写)两个权限。最大数值为666(-rw-rw-rw-)。
  2. 用户建立为目录,则预设所有权限均开放,最大为777(drwxrwxrwx)。
  • umask数值代表的含义为,上述两条规则中的默认值(文件为666,目录为777)需要减去的权限。

  • 目录权限:umask的实际数值=rwx rwx rwx ---- -w- -w- = rwx r-x r-x

Markdown

  • 普通文件:umask的实际数值=rw- rw- rw- ---- -w- -w- = rw- r-- r--

Markdown

umask的值是可以自定义的。如果自定义为某个数值,则将此值换算为rwx的表现方式,套用到上面的两个公式中,就可以计算出在umask重新赋值后,新建目录或新建的普通文件,系统所给予的权限值是多少。

注意

  1. umask的计算,不建议转换成数字的方式。有时候会出现问题。用rwx的方式即可。
  2. umask可以在/etc/bashrc里面更改。预设情况下,root的umask为022,而一般使用者则为002。因为可写的权限非常重要,因此,预设会去掉写权限。
  3. 系统里的umask是4位数的,最前面还有一个0。这个0加与不加没有影响,它表示umask数值是八进制的。

2.17 隐藏权限lsattr/chattr

只有超级权限的用户才具有使用该命令的权限,这项指令可改变存放在ext2、ext3、ext4、xfs、ubifs、reiserfs、jfs等文件系统上的文件或目录属性。

chattr命令(change attribute)

  • 语法:chattr [+ - =][选项] [文件或者目录名],其中,+、-、=:分别表示增加、减少、设定 -选项:
  • [ ] A:增加该属性后,文件或目录的atime将不可修改
  • [ ] s:增加该属性后,会将数据同步写入磁盘中
  • [ ] a:增加该属性后,只能追加不能删除,非root用户不能设定该属性。

e.g1:针对文件,增加(+a)选项的实验:

Markdown

结果显示:该文件不能被删除、重命名、修改原内容。但可以新增(追加)内容、可以通过touch修改文件的编辑时间。

e.g2:针对目录,增加(+a)选项的实验:

Markdown

结果显示:该目录中所有已生成的文件或目录,均不能被删除、重命名,但可以生成新文件和新目录。也可以对其目录中存在的文件,编辑内容或追加内容。

  • [ ] c:自动压缩该文件,读取时会自动解压
  • [ ] i:增加该属性后,使文件不能被删除、重命名、设定链接、写入、新增数据

e.g1:针对文件,增加(+i)选项的实验:

Markdown

结果显示:不能对该文件进行删除、重命名、新增数据的操作。

e.g2:针对目录,增加(+i)选项的实验:

Markdown

结果显示:不能对该目录进行删除、重命名、新增文件的操作。但可以对目录下原有的文件的内容,进行追加(如用head命令)操作。

lsattr命令(list attribute)

该命令用来读取文件或者目录的特殊权限。

  • 语法:lsattr [-aR] [文件/目录名]
  • 选项:
  • [ ] -a:all,连同隐藏文件一同列出
  • [ ] -R:连同子目录的数据一同列出
  • [ ] -d:仅列出目录自身的数据

Markdown

转载于:https://my.oschina.net/greenfinch/blog/1592904

你可能感兴趣的文章
一道面试题带来的前端优化——实现星星点评
查看>>
CoderZh首款Python联机对战游戏 - NancyTetris1.0倾情发布(二)
查看>>
poj3250 Bad Hair Day
查看>>
WPF/Silverlight的数据绑定设计的真糟糕
查看>>
SQL复制多表数据
查看>>
python3-类与对象
查看>>
Python正则表达式指南
查看>>
22.4. rpcinfo
查看>>
对 ASP.NET 图像的颜色量化(Quantization)进行优化
查看>>
Oracle中NVARCHAR2字符集不匹配问题
查看>>
一起学微软Power BI系列-官方文档-入门指南(7)发布与共享-终结篇+完整PDF文档
查看>>
MVC 服务器文件下载
查看>>
【转】Arp的攻防实战
查看>>
1.5. mount
查看>>
7.3. cvs import
查看>>
五个对你有用的Everything搜索技巧
查看>>
LinuxMint 17.1 Cinnamon桌面窗口焦点bug
查看>>
WM8962 HPOUT 信号强度 时间周期
查看>>
[家里蹲大学数学杂志]第432期Hardy type inequalities
查看>>
Spring MVC 4.2 CORS 跨域访问
查看>>