Linux通常将文件可存取访问的身份分为3个类别:owner、group、others,且3种身份各有read、write、execute等权限。html
因为Linux是多用户、多任务的操做系统,所以可能经常有多人同时在某台主机上工做,但每一个人都可在主机上设置文件的权限,让其成为我的的“私密文件”,即我的全部者。由于设置了适当的文件权限,除本人(文件全部者)以外的用户没法查看文件内容。数组
例如某个MM给你发了一封Email情书,你将情书转为文件以后存档在本身的主文件夹中。为了避免让别人看到情书的内容,你就能利用全部者的身份去设置文件的适当权限,这样,即便你的情敌想偷看你的情书内容也是作不到的。spa
用户组最有用的功能就体如今多个团队在同一台主机上开发资源的时候。例如主机上有A、B两个团体,A中有a1,a2,a3三个成员,B中有b1,b2两个成员,这两个团体要共同完成一份报告F。因为设置了适当的权限,A、B团体中的成员都能互相修改对方的数据,可是团体C的成员则不能修改F的内容,甚至连查看的权限都没有。同时,团体的成员也能设置本身的私密文件,让团队的其它成员也读取不了文件数据。在Linux中,每一个帐户支持多个用户组。如用户ab1便可属于A用户组,也能属于B用户组。操作系统
这个是个相对概念。打个比方,大明、二明、小明一家三兄弟住在一间房,房产证上的登记者是大明,那么,大明一家就是一个用户组,这个组有大明、二明、小明三个成员;另外有我的交张三,和他们三没有关系,那么这个张三就是其余人了。code
同时,大明、二明、小明有各自的房间,三者虽然能自由进出各自的房间,可是小明不能让大明看到本身的情书、日记等,这就是文件全部者(用户)的意义。htm
在Linux中,还有一个神同样存在的用户,就是root。之因此陈伟超级用户,由于在全部用户中它拥有最大的权限 ,也管理着普通用户。递归
在Linux系统中,默认的系统帐户和普通帐户信息记录在/etc/passwd文件中,我的密码在/etc/shadow文件下,用户组名称记录在/etc/group,因此,这三个文件是不能随便删的。图片
要设置权限,就须要知道文件的一些基本属性和权限的分配规则。在Linux中,ls命令经常使用来查看文件的属性,ls是list的缩写,用于显示文件的文件名和相关属性。内存
[root@www ~]# ls -al total 45 drwxr-x--- 4 root root 4096 Sep 8 14:06 -rw-r--r-- 1 root root 43043 Sep 4 18:34 test.txt
第一个字符[d]表明该文件是一个目录,[-]表明该文件是一个普通文件,test.txt是文件名,[l]是链接文件,[b]是设备文件等。资源
如前文所说,Linux中存在用户、用户组和其余人概念,各自有不一样的权限,对于一个文件来讲,其权限具体分配以下:
权限分配中,均是rwx的三个参数组合,且位置顺序不会变化。没有对应权限就用 – 代替。
Linux中有几个经常使用于用户组、全部者和各类身份的权限的修改的命令:
chgrp:改变文件所属用户组 chown:改变文件全部者 chmod:改变文件权限
直接用chgrp就行,它是change group是缩写。不过,要被改变的组名必须在/etc/group文件内存在才行,不然出错。
[root@www ~]# chgrp [-R] 文件名/目录名 —R:进行递归,可修改子目录下的文件
change owner的缩写是chown,用于改变全部者。不过,用户名必须存在于/etc/passwd文件内。
[root@www ~]# chown [-R] 帐号名称 文件名/目录名 [root@www ~]# chown [-R] 帐号名称:组名 文件名/目录名 —R:进行递归,可修改子目录下的文件
文件权限的改变通常是用chmod命令,权限的设置方法有两种:
Linux的基本权限有9个,即owner、group、others三种身份各有本身的r/w/x权限,三个为一组。各权限对应的数字是:r—>4,w—>2,x—>1.
每种身份(owner、group、others)的三个权限(r/w/x)分数是累加的,如-rw-r–r–转换数字是:
owner=rw-=4+2+0=6 group=r–=4+0+0=4 others=r–=4+0+0=4
因此该文件的权限数字是644
[root@www ~]# chmod [-R] xyz 文件名/目录名 xyz:数字类型的权限属性,为rwx属性数值的相加 —R:进行递归,可修改子目录下的文件
修改test.txt的权限为777
[root@www ~]# chmod 777 test.txt
这种方式就是用u,g,o来表明三种身份的权限,此外a表明all,即所有身份(owner、group、others)
修改test.txt的权限为rwxr-xr-x
[root@www ~]# chmod u=rwx,go=rx test.txt
去掉test.txt全部身份的x权限
[root@www ~]# chmod a-x test.txt
再添加test.txt全部身份的x权限
[root@www ~]# chmod a+x test.txt
r(read):读取文件内容,如读取文本的文字内容等
w(write):能够编辑、新增、修改文件的内容(但不含删除该文件)
x(execute):具备被系统执行的权限。注意:在Linux中,文件是否可否被执行是由文件是否具备x权限决定的,与文件名的扩展名无关。
r(read contents in directory):具备读取目录结构列表的权限,与用户可否进入该目录无关。
w(modify contents of directory):具备更改该目录结构列表的权限,包括新建文件或目录、删除文件和目录(不论该文件权限如何)、对文件或目录进行重命名、转移文件或目录位置。
x(execute directory):具备进入该目录的权限,使该目录成为工做目录,即目前所在的目录。若是没有x权限,即便有r权限,也没法切换到该目录执行该目录下的命令。