Linux基础权限管理篇一
一、权限概述
Linux系统一般将文件可存/取访问的身份分为3个类别:owner(拥有者)、group(和所有者同组的用户)、others(其他人,除了所有者,除了同组的用户以及除了超级管理员),
且三种身份各有read(读),write(写)、execute(执行)等权限
二、权限介绍
在多用户(可以不同时)计算机系统的管理中,权限是指某个特定的用户具有特定的系统资源使用权力。像是文件夹、特定系统指令的使用或存储量的限制。
在Linux中分别有读,写,执行权限。
读权限:
对于目录来说,读权限影响用户是否能够列出目录结构
对于文件来说,读权限影响用户是否可以查看文件内容
写权限:
对于目录来说,影响用户是否可以执行cd命令
对于文件来说,特别是脚本文件,执行权限影响文件是否可以运行
三、身份介绍
owner(文件所有者)
由于linux是多用户,多任务的操作系统,因此可能常常有很多人同时在一台主机上工作,但每个人均可在主机上设置文件的权限,让其成为个人的“私密文件”,即个人所有者,因为设置了适当
的文件权限,除本人(文件所有者)之外的用户无法查看文件内容。
Group身份(与文件所有者同组的用户)
与文件所有者同组最有用的功能就体现在多个团队在同一台主机上开发资源的时候,例如主机上有A,B两个团体(用户组),A中有a1,a2,a3三个成员,B中有b1,b2两个成员,
这两个团体要共同完成一份报告F,由于设置了适当的权限,A,B团体中的成员都能互相修改对方的数据,但是团体C中的成员则不能修改F的内容,甚至连查看的权限都没有。
同时,团体的成员也能设置自己的私密文件,让团体的其他成员也读取不了文件数据,在Linux中,每个账户,支持多个用户组。如用户a1、b1即可属于A用户组,也能属于B用户组【主组和附加组】
others身份(其他人,相对于所有者与同组用户)
这个是相对概念,打个比方,大明、二明、小明一家住在一间房,房产证上登记的是大明(owner所有者),那么大明一家就是一个用户组,这个组有大明,二明,小明三个成员,另外有个人
叫张三,和他们三没有关系,那么这个张三就是(others)了。
同时,大明,二明,小明,有各自的房间,三者虽然能各自进出各自的房间,但是小明不能让大明看见自己的情书日记等,这就是文件所有者(用户)的意义。
root用户(超级用户)
在linux中还有一个神一样的用户,这就是root用户,因为在所有用户中他拥有最大的权限,所以管理着普通的用户。
四、linux权限介绍
要设置权限,就需要知道文件的一些基本属性和权限的分配规则,在linux中,ls命令常用来查看文件的属性,用于显示文件的文件名和相关属性
linux中存在用户(owner),用户组(group)和其他人others概念,各自有不同的权限,对于一个文档来说,其权限具体分配如下:
十位字符表示含义:
第一位:表示文档类型,取值常见的有“d表示文件夹”、“-表示文件”、“l表示软链接”、“s表示套接字”、“c表示字符设备”、“b表示块状设备”等等
第二至四位:表示文档所有者的权限情况,第二位表示读权限情况,取值r、-;第三位表示写权限的情况,w表示可写,-表示不可写,第四位表示执行权限的情况,取值有x、-
第五至七位:表示与所有者同在一个组的用户的权限情况,第五位表示读权限情况,取值r、-;第六位表示写权限的情况,w表示可写,-表示不可写,第七位表示执行权限的情况,取值有x、-
第八至十位:表示除了上面的前2部分的用户之外的其他用户的权限情况,第八位表示读权限情况,取值r、-;第九位表示写权限的情况,w表示可写,-表示不可写,第十位表示执行权限的情况,取值有x、-
权限分配中,均是rwx的三个参数组合,且位置顺序不会变化,没有对应的权限就用-代替
五、权限设置
语法:chmod 选项 权限模式 文档
权限模式:就是该文档需要设置的权限信息
文档:可以是文件,也可以是文件夹,可以是相对路径,也可以是绝对路径。
注意点:如果想要给文档设置权限,操作者要么是root用户,要么就是文档的所有者。
1.字母形式
给谁设置:
u:表示所有者身份owner(user)
g:表示给所有者同组用户设置(group)
o:表示others,给其他用户设置权限
a:表示all,给所有人(包含ugo部分)设置权限
如果在设置权限的时候不指定给谁设置,则默认给所有用户设置
权限字符:
r:读
w:写
x:执行
-:没有权限
权限分配方式:
+表示给具体的用户新增权限(相对当前)
-表示删除用户的权限(相对当前)
=:表示将权限设置成具体的值(注重结果)[赋值]
eg:需要给/root/anaconda-ks.cfg文件 (-rw-------)设置权限,要求所有者拥有全部权限,同组用户拥有读和写权限,其他用户只读权限
[root@andy ~]# chmod u+x,g+rw,o+r anaconda-ks.cfg
[root@andy ~]# ls -l
总用量 4
-rwxrw-r--. 1 root root 1261 7月 3 08:02 anaconda-ks.cfg
[root@andy ~]#
2.数字形式
经常会在一些技术性的网页上看到类似于#chmod 777 a.txt 这样的一个权限。这种形式称之为数字形式权限(777).
读 r(4)
写w (2)
执行x (1)
没有任何权限:0 对应---
eg:需要给anaconda-ks.cfg设置权限,权限要求所有者拥有全部权限,同组用户拥有读执行权限,其他用户只读
所有者权限=全部权限=4+2+1=7
同组用户权限=读权限+执行权限=4+1=5
其他用户权限=读权限=4
最终得出的结果为754
[root@andy ~]# chmod 754 anaconda-ks.cfg
[root@andy ~]# ls -l
总用量 4
-rwxr-xr--. 1 root root 1261 7月 3 08:02 anaconda-ks.cfg
[root@andy ~]#
六、属主和属组设置
属主:所属的用户(文件的主人),文档所有者
属组:所属的用户组
[root@andy ~]# ls -l
总用量 4
-rwxr-xr--. 1 root root 1261 7月 3 08:02 anaconda-ks.cfg
[root@andy ~]#
前面那个root就是属主
后面那个root就是属组
这两项信息在文档创建的时候会使用创建者的信息(用户名放在前面的root、用户所属的主组名称放在后面root)
之所以需要设置这个:如果有时候去删除某个用户,则该用户对应的文档的属主和属组的信息就要更改(类似离职之前的工作交接)
chown
作用:更改文档的所属用户(change owner)
语法:#chown -R 新的username:新的属组 文档路径
-R表示选项,文档不需要-R
如果要对目录操作加-R
chown user:group filename
[root@andy ~]# chown andy:G1 text
[root@andy ~]# ls -l
总用量 4
-rwxr-xr--. 1 root root 1261 7月 3 08:02 anaconda-ks.cfg
-rw-r--r-- 1 andy G1 0 11月 27 20:08 text
[root@andy ~]#
chown user filename 更改属主
-rwxr-xr--. 1 root root 1261 7月 3 08:02 anaconda-ks.cfg
-rw-r--r-- 1 andy G1 0 11月 27 20:08 text
[root@andy ~]# chown andy1 text
[root@andy ~]# ls -l
总用量 4
-rwxr-xr--. 1 root root 1261 7月 3 08:02 anaconda-ks.cfg
-rw-r--r-- 1 andy1 G1 0 11月 27 20:08 text
[root@andy ~]#
chown :group filename更改属组
[root@andy ~]# groupadd G2
[root@andy ~]# chown :G2 text
[root@andy ~]# ls -l
总用量 4
-rwxr-xr--. 1 root root 1261 7月 3 08:02 anaconda-ks.cfg
-rw-r--r-- 1 andy1 G2 0 11月 27 20:08 text
[root@andy ~]#
chown user: filename自动继承这个用户的所有组
chown -R(递归,目录下的所有内容都更改,否则只修改目录)