首页 > 系统服务 > 详细

linux 权限笔记

时间:2020-05-16 18:13:54      阅读:57      评论:0      收藏:0      [点我收藏+]

权限模型

技术分享图片

linux权限模型,指的就是对用户、组、所有人这三个类别的用户对文件、文件夹的操作权限管控

三种角色

  • user 文件、文件夹的创建者,所有人
  • group 一个group对应多个user,user自动具有group的权限
  • all 也叫others, 就是除开上述两个角色之外的所有用户

三种权限

  • 读 r .文件读表示可以读内容,文件夹的读,表示可以查看其下的文件列表。具体其下的文件的读写权限,要在单个的文件上控制
  • 写w. 文件的写权限能让你修改文件内容。文件夹的写权限,让你有权限在其下添加、删除文件和更改文件名。若果你没有文件夹的写权限,只有其下某个文件的写权限,那么你可以更改文件的内容,但确无法添加新文件,或删除该文件,或更改文件名
  • 执行x. 文件的可执行,就是能不能执行该文件,文件夹的可执行则是限制对应角色能否进入该文件夹,比如你把一个文件夹组的x的权限去掉,那么所有该组下的用户将无法进入该该文件夹

查阅方式

使用ls -l命令即可查看当前路径下的文件、文件夹的权限。

技术分享图片

  • 红色部分是文件所有人、文件所属组、其它用户各自的读、写、可执行的权限。形如:lrwxrwxrwx。从左开始,第一个字符表示文件的类型,可以有l,-,d 其中l表示当前项目是个链接文件,-表示当前项目是文件,d表示当前项目是文件夹。从截图中可以看到,前三个项目分别是:链接文件、文件夹、文件
  • 蓝色框选部分显示的是当前项目的所有人和所属组。第一个root是所有人,第二个root是所属组。一般一个用户创建后,其默认的分组跟他的用户名相同
  • 黑色框选部分,为项目的名称,即链接路径,或文件名,或文件夹名

权限更改

这部分操作是不改变文件所有者和所属组,而只对其现有所有者,组、其它人能操作文件、文件夹的权限进行修改。

数字更改

以三位二进制来代表读、写、执行的权限。为1表示具有权限,0表示没有权限。3位二进制转成的十进制为从0到7。 比如二进制111,即为7,表示读写执行权限都有
技术分享图片

chmod 764 sample

英文缩写更改

上述基于数字的方式赋权,需要计算二级制到十进制的转化,不够友好。而使用英文缩写的方式,见名知意,更容易使用。
用户角色的字母指代

  • u 文件、文件夹的拥有者user
  • g 文件、文件夹的所属组group
  • o 除上述两者之外的其它用户others
  • a 上述三个角色的指代 all

而权限本身的字母指代为

  • r 读权限read
  • w 写权限write
  • x 执行权限executive

将权限赋予给某个角色,或从某个角色上摘除的操作符如下

  • +表示添加权限 chmod u+x filename 给文件拥有者赋执行权限
  • -表示删除指定权限 chmod u-x filename 将文件拥有者的执行权限移除
  • = 重新设置对应角色的权限,也即会将对应角色的权限覆盖成新的。比如原来其它用户的权限为rwx, 你执行chmod o=r filename后,其它用户的权限就只有‘r‘了。但用户所有者和所属组的权限不会给覆盖

可以chmod u+wx filename一次性给某文件的所有者赋几个权限。
再次总结下,赋值符号,=和+,-的区别在于。=是会覆盖对应角色的所有权限,+和-只修改制定的权限项。比如你改的是执行权限,那么文件的读写权限还是原来的。

角色更改

前面介绍的只是改文件对应角色的权限。这里介绍下,怎么改文件属于的角色。比如改其拥有者,改其所属组。

更改文件所有者的命令

chown user filename//更改文件的所有者

文件所有者,文件所属组一起更改

chown user:group filename

更改文件所属组

chgrp group_name filename

查看当前用户的组

使用groups命令即可

查看当前用户的分组情况

id

查看系统都有哪些组

通过/etc/group文件即可。该文件中一行代表一个分组。一行的含义解读为
技术分享图片

  • 1表示分组名
  • 2表示密码,一般没使用密码功能,都是x
  • 3表示分组id
  • 4表示该分组下的用户列表,以逗号分隔

查看系统都有哪些用户

通过/etc/passwd查看。该文件每一行代表一个用户,每一行的解释如下

mark:x:1001:1001:mark,,,:/home/mark:/bin/bash
[--] - [--] [--] [-----] [--------] [--------]
|    |   |    |     |         |        |
|    |   |    |     |         |        +-> 7. Login shell
|    |   |    |     |         +----------> 6. Home directory
|    |   |    |     +--------------------> 5. GECOS
|    |   |    +--------------------------> 4. GID
|    |   +-------------------------------> 3. UID
|    +-----------------------------------> 2. Password
+----------------------------------------> 1. Username

查看一个组有哪些用户

前面说的/etc/group文件中,可以有一个组的用户列表,但通过这个文件去看一个组有哪些用户,往往是不准确的。因为一个组的用户,往往不一定在该文件中体现。最准确的查看方式为

lid -g groupname

参考资料

https://www.guru99.com/file-permissions.html
https://www.cyberciti.biz/faq/understanding-etcgroup-file/
https://linuxize.com/post/etc-passwd-file/

linux 权限笔记

原文:https://www.cnblogs.com/niceshot/p/12901539.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!