linux权限模型,指的就是对用户、组、所有人这三个类别的用户对文件、文件夹的操作权限管控
使用ls -l
命令即可查看当前路径下的文件、文件夹的权限。
lrwxrwxrwx
。从左开始,第一个字符表示文件的类型,可以有l,-,d
其中l
表示当前项目是个链接文件,-
表示当前项目是文件,d
表示当前项目是文件夹。从截图中可以看到,前三个项目分别是:链接文件、文件夹、文件这部分操作是不改变文件所有者和所属组,而只对其现有所有者,组、其它人能操作文件、文件夹的权限进行修改。
以三位二进制来代表读、写、执行的权限。为1表示具有权限,0表示没有权限。3位二进制转成的十进制为从0到7。 比如二进制111,即为7,表示读写执行权限都有
chmod 764 sample
上述基于数字的方式赋权,需要计算二级制到十进制的转化,不够友好。而使用英文缩写的方式,见名知意,更容易使用。
用户角色的字母指代
而权限本身的字母指代为
将权限赋予给某个角色,或从某个角色上摘除的操作符如下
chmod u+x filename
给文件拥有者赋执行权限chmod u-x filename
将文件拥有者的执行权限移除chmod o=r filename
后,其它用户的权限就只有‘r‘了。但用户所有者和所属组的权限不会给覆盖可以chmod u+wx filename
一次性给某文件的所有者赋几个权限。
再次总结下,赋值符号,=和+,-的区别在于。=是会覆盖对应角色的所有权限,+和-只修改制定的权限项。比如你改的是执行权限,那么文件的读写权限还是原来的。
前面介绍的只是改文件对应角色的权限。这里介绍下,怎么改文件属于的角色。比如改其拥有者,改其所属组。
更改文件所有者的命令
chown user filename//更改文件的所有者
文件所有者,文件所属组一起更改
chown user:group filename
更改文件所属组
chgrp group_name filename
使用groups命令即可
id
通过/etc/group
文件即可。该文件中一行代表一个分组。一行的含义解读为
通过/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/
原文:https://www.cnblogs.com/niceshot/p/12901539.html