所有者和群组
由于Linux是一个多人多工的系统,因此可能常常会有多人同时使用这部主机的情况,所有者和群组是一个健全的的安全防护措施.每个用户拥有可操作的文件,且只能操作有权限的
文件拥有者
一个文件只能被拥有这个文件权限(读,写)的用户操作,其他用户无法对此文件操作
群组
群组在团队开发时候很有用处.一个群组里的人可以共享权限,同时又可以对群组里的 人细化权限,组员拥有共享的文件,也可以有私有的文件.
比如一个家庭是一个群组,这个家庭是[王大毛家],家里有王大毛,王二毛,王三毛.这三个人分别有自己的房间,同时共同拥有一个客厅.
- 拥有者: 由于三人分别有各自的房间,所以王二毛可以进入王三毛的房间,但是王二毛不能动王三毛的抽屉,抽屉是王三毛的私人空间,二毛没有权利去动
- 群组: 由于共同拥有客厅,客厅内的资源,比如电视,沙发,游戏机等三个人都可以使用.
在这里王大毛家就是群组,三兄弟就是三个使用者,这三个使用者在一个群组里,同时这三个人可以拥有自己的私人空间,同时共享公共空间.
一个账号可以从属与多个群组
其他人
张小猪是[张小猪家]这个群组的,一般情况下他是无法进入到[王大毛家]这个群组,但是如果张小猪认识三毛,可以通过三毛的关系进入到[王大毛家],这个时候张小猪就是属于其他人
特殊
Linux里有个特殊的账号root,他拥有所有的权限,可以去任何他想去的地方
Linux使用者和群组的记录
Linux中预设情况下,账号相关信息记录在
/etc/passwd
这个文件中.个人的密码记录在/etc/shadow
文件下.群组记录在/etc/group
内.这个三个文件是Linux中账号,密码,群组信息的集中地.
文件权限
文件属性
第一栏文件类型权限
文件权限有十个字元,如下图
- 第一个表示这个文档是文件,目录,连接档等:
- d: 表示为目录
- -: 表示为文件
- l: 表示为连接档(link file),类似于快捷方式
- b: 表示为块设备,可供存储的周边设备
- c: 字符设备文件,比如鼠标,键盘
- 接下来的字元,以三个一组,且均为[rwx]三个参数的组合,
r
表示可读,w
表示可写,x
表示可执行.这个三个顺序不可改变,入股偶没有权限就会出现-
- 第一组为文件拥有者的权限
- 第二组为群组中账号的权限
- 第三组为非本人且没有加入群组(others)的权限
第二栏表示有多少个档名连接到此节点
每个档案都会将他的权限与属性记录到档案系统的i-node中.在目录树中,我们使用档案名来做记录,此处的意思就是有多少个档案名连接到同一个i-node中
第三栏表示该档案拥有者
第四栏表示该档案的所属群组
第五栏表示该档案的大小,预设单位为bytes
第六栏为该档案创建时间或者更新时间
第七栏是该档案名称,如果档案名前有个.
则表示为隐藏档案
改变属性和权限
改变群组chgrp
改变的群组必须存在于系统中,也就是/etc/group
中有这个群组信息
1 | chgrp [-R] dirname/filename ... |
改变拥有者chown
改变的拥有者账号必须存在于系统中,也就是/etc/passwd
中有这个账号信息
1 | 将档案或者目录拥有者改为xxx |
改变权限 chmod
数字类型权限
[rwx]在Linux中对应着不同数字,可以通过数字来更改类型,规则如下:r: 4,w: 2,x: 1
比如 owner = rwx = 4 + 2 + 1 = 7
group =rwx = 4 + 2 + 1 = 7
others= — = 0+0+0 = 0
这个情况下,数字类型的权限即为
770
1
chmod -R xxx 档案或目录
符号型权限
符号权限:
操作 | 身份 | 权限 | |
---|---|---|---|
chmod | u(用户),g(组),o(其他),a(all) | rwx | +(加入),-(去除),=(设定) |
1 | # owner = rwx g = rx o = rx u=rwx,go=rx 是連在一起的,中間並沒有任何空白字元! |