linux文件权限简单备忘知识点

前言

已经拖更好几天了,有些坚持的事情一旦中断便很难再捡起来了,所以还是尽可能的坚持下去,今天就简单记录一下文件权限相关的操作。

file_ls

这里先扔出一张图,这么懒的我居然画了一张图!不过前几天感冒状态不太好,这张图画了好几晚上才完成,就凑活看吧。

基本上看注释就能明白各列的含义,关于“文件硬链接数”这一列还有点疑问,在CentOS上测试,确实如注释所言,普通文件显示的硬链接数,目录文件显示的是第一级子目录的个数,但是在WSL上却不符合这个说法,暂时还没有找到原因,接下来还是列举下文件权限相关的操作吧。

基础概念

在linux系统中的每个用户必须属于一个组,不能独立于组外。而每个文件的权限区分所有者、所在组、其它人,就像图片中展示的那样

  • 所有者:指创建文件的人,拥有第一组权限
  • 所在组:指的是和所有者在同组的人,拥有第二组权限
  • 其他人:指排除掉前两类的其他人,拥有第三组权限

每组权限都分为读、写、执行三种具体权限,对应数字分别是4、2、1,字母表示为r、w、x,没有权限可以用-表示,也就是0,因为有这些表示方法,修改文件的命令形式也有很多种。

一个文件的访问权限是可以进行修改的,用户可以使用 chmod 命令来重新设定不同的访问权限,可以使用 chown 命令来更改某个文件或目录的所有者,也可以利用 chgrp 命令来更改某个文件或目录的用户组。

chmod 命令

上面说到文件的权限分为所有者、同组人、其他人三组,每组权限又有r、w、x三种权限,分别用数字4、2、1表示,举几个对照的例子如下

1
2
3
rwx r-x r–x  755
rw- r–- –-- 640
rw- rw- r–- 664

因为表示的多样性,该命令有通常有字母表达式和数字表达式两种用法,格式如下:

1
chmod [who] [+ | – | =] [mode] filename

命令中各选项的含义为:

命令中的 who 可是下述字母中的任一个或者它们的组合:

  • u 表示所有者user
  • g 表示同组用户group
  • o 表示其他人other
  • a 表示所有用户all,是系统默认值

权限改变的符号可以是:

  • + 添加某个权限
  • 取消某个权限
  • = 赋予给定权限并取消其他所有权限(如果有的话)

命令中的 mode 所表示的权限可用下述字母的任意组合:

  • r 可读权限
  • w 可写权限
  • x 可执行权限
  • X 只有目标文件对某些用户是可执行的或该目标文件是目录时才追加 x 属性
  • u 与文件属主拥有一样的权限
  • g 与和文件属主同组的用户拥有一样的权限
  • o 与其他用户拥有一样的权限

常见写法如下:

1
2
3
$ chmod a+x happy.txt
$ chmod ug+w file.xml
$ chmod 755 a.out

chgrp 命令

该命令能改变文件或目录所属的组,语法如下:

1
chgrp [option] group filename

option参数可选:

-f,–quiet,–silent:  不显示错误信息
-R,–recursive:      递归处理,将指定目录下的所有文件及子目录一并处理
-v,–verbose:        显示指令执行过程

命令中group可以是用户组ID,也可以是/etc/group文件中用户组的组名。文件名是以空格分开的要改变属组的文件列表,支持通配符。如果用户不是该文件的属主或超级用户,则不能改变该文件的组的。

1
$chgrp -R mysql /opt/local/my.ini

chown 命令

该命令可以更改某个文件或目录的属主,也就是所有者。语法如下:

1
chown [option] groupname|username filename

chown可以将指定文件的拥有者改为指定的用户或组。用户可以是用户名或用户ID。组可以是组名或组ID。与 chgrp命令一样,参数文件也是以空格分开的要改变权限的文件列表,支持通配符。

option参数可选:

-f: 若该文件拥有者无法被更改也不要显示错误讯息
-h: 只对于连结(link)进行变更,而非该 link 真正指向的文件
-v: 显示拥有者变更的详细资料
-R: 对目前目录下的所有档案与子目录进行相同的拥有者变更(即以递回的方式逐个变更)

修改文件所有者的例子如下:

1
$ chown redis /ect/redis/redis.config

总结

  • ls -l 命令执行后的第5列,表示文件的硬连接数
  • chmod a+x happy.txt 可以修改文件的权限信息
  • chgrp a+x fruit.txt 可以修改文件的所有组信息
  • chown redis /ect/redis/redis.config 可以修改文件的所有者信息

==>> 反爬链接,请勿点击,原地爆炸,概不负责!<<==

鲁迅先生说“我向来是不惮以最坏的恶意,来推测中国人的,然而我还不料,也不信竟会下劣凶残到这地步。”
其实黑暗中往往也透露着光明~

2021-5-1 01:26:36

Albert Shi wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客