-
Notifications
You must be signed in to change notification settings - Fork 441
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Linux的文件权限 #30
Comments
赞一个 |
简单清楚!!! |
问个问题: 对于目录来说, 单纯的x或者w是没有多大作用的? 因为不能读取目录结构列表. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Linux一般将文件可存取访问的身份分为3个类别:owner、group、others,且3种身份各有read、write、execute等权限。
一、用户和用户组
1、文件所有者
由于Linux是多用户、多任务的操作系统,因此可能常常有多人同时在某台主机上工作,但每个人均可在主机上设置文件的权限,让其成为个人的“私密文件”,即个人所有者。因为设置了适当的文件权限,除本人(文件所有者)之外的用户无法查看文件内容。
例如某个MM给你发了一封Email情书,你将情书转为文件之后存档在自己的主文件夹中。为了不让别人看到情书的内容,你就能利用所有者的身份去设置文件的适当权限,这样,即使你的情敌想偷看你的情书内容也是做不到的。
2、用户组
用户组最有用的功能就体现在多个团队在同一台主机上开发资源的时候。例如主机上有A、B两个团体,A中有a1,a2,a3三个成员,B中有b1,b2两个成员,这两个团体要共同完成一份报告F。由于设置了适当的权限,A、B团体中的成员都能互相修改对方的数据,但是团体C的成员则不能修改F的内容,甚至连查看的权限都没有。同时,团体的成员也能设置自己的私密文件,让团队的其它成员也读取不了文件数据。在Linux中,每个账户支持多个用户组。如用户ab1即可属于A用户组,也能属于B用户组。
3、其他人
这个是个相对概念。打个比方,大明、二明、小明一家三兄弟住在一间房,房产证上的登记者是大明,那么,大明一家就是一个用户组,这个组有大明、二明、小明三个成员;另外有个人交张三,和他们三没有关系,那么这个张三就是其他人了。
同时,大明、二明、小明有各自的房间,三者虽然能自由进出各自的房间,但是小明不能让大明看到自己的情书、日记等,这就是文件所有者(用户)的意义。
4、超级用户
在Linux中,还有一个神一样存在的用户,就是root。之所以称为超级用户,因为在所有用户中它拥有最大的权限 ,也管理着普通用户。
5、相关文件
在Linux系统中,默认的系统账户和普通账户信息记录在/etc/passwd文件中,个人密码在/etc/shadow文件下,用户组名称记录在/etc/group,所以,这三个文件是不能随便删的。
二、Linux文件权限的概念
要设置权限,就需要知道文件的一些基本属性和权限的分配规则。在Linux中,ls命令常用来查看文件的属性,ls是list的缩写,用于显示文件的文件名和相关属性。
含义如下:
![image](https://cloud.githubusercontent.com/assets/7871813/17443279/560334cc-5b6c-11e6-9bbc-0017890d80aa.png)
第一个字符[d]代表该文件是一个目录,[-]代表该文件是一个普通文件,test.txt是文件名,[l]是连接文件,[b]是设备文件等。
如前文所说,Linux中存在用户、用户组和其他人概念,各自有不同的权限,对于一个文件来说,其权限具体分配如下:
![image](https://cloud.githubusercontent.com/assets/7871813/17443291/64c1cf3c-5b6c-11e6-8dd6-5b3a371e13eb.png)
权限分配中,均是rwx的三个参数组合,且位置顺序不会变化。没有对应权限就用 – 代替。
三、改变文件属性和权限
Linux中有几个常用于用户组、所有者和各种身份的权限的修改的命令:
1、改变所属用户组
直接用chgrp就行,它是change group是缩写。不过,要被改变的组名必须在/etc/group文件内存在才行,否则出错。
2、改变文件所有者
change owner 的缩写是chown,用于改变所有者。不过,用户名必须存在于/etc/passwd文件内。
3、改变权限
文件权限的改变一般是用chmod命令,权限的设置方法有两种:
3.1 数字类型改变文件权限
Linux的基本权限有9个,即owner、group、others三种身份各有自己的r/w/x权限,三个为一组。各权限对应的数字是:r—>4,w—>2,x—>1.
每种身份(owner、group、others)的三个权限(r/w/x)分数是累加的,如-rw-r–r–转换数字是:
所以该文件的权限数字是644
xyz:数字类型的权限属性,为rwx属性数值的相加
—R:进行递归,可修改子目录下的文件
3.2 符号类型改变文件权限
这种方式就是用u,g,o来代表三种身份的权限,此外a代表all,即全部身份(owner、group、others)
四、目录和文件的权限意义
1、权限对文件的重要性
2、权限对目录的重要性
The text was updated successfully, but these errors were encountered: