Linux是一个多用户多任务的操作环境。那么对于不同使用者而言,自己的文件管理就显得尤为重要。Linux将文件的存取身份分为三类,分别是owner;group;others,且三种身份各有read;write;execute等权限。因此,正确的管理自己的Linux就显得尤为重要,另外,你如果首次接触Linux的话,那么, 在Linux下面这么多的目录/文件,到底每个目录/文件代表什么意义呢?接下来,我们就了解一下。
1、使用者与群组
对于不同文件所具有的属性与权限,为了更加深入了解,引入下面两个概念:
-
文件拥有者
对于Linux这种多用户的操作系统来说,使用者自身的文件权限就必须得到最大的保障。为此引入“文件拥有着“这个概念,可以更好的操控文件! -
“群组”
在实际工作中,大家都是团队内部进行协作共同完成一个项目。那么这个时候,这个团队的文件如果只有自己可以修改或者查看,就极其不人性化。
那么建立群组,使得团队内部文件共享,大大提升效率,这也是Linux系统比较方便的一个原因。
再进一步说,大BOSS想要查看几个团队的进度,这个时候,权限的设定就起了一定的作用。也就是说,每个帐号可以有多个群组的支持。 -
其他人others
就是除了上面那两种人之外的人,嗯
从而,在Linux里面,任何一个文件都具有“User, Group及Others”三种身份的个别权限
Linux所有的群组名称都纪录在/etc/group内
2、Linux 文件权限
为了避免屏幕上更少的出现“Permission deny”,那我们就赶快来看看吧~
- Linux文件属性
操作 | 功能 |
---|---|
ls -ld file | 查看文件信息(属性及权限) |
ls -ld dir | 查看目录本身信息(属性及权限) |
ll file | 等同于ls -l file |
ll-d dir | 相当于ls -ld dir |
ls -LR dir | 递归显示子目录 |
[root@foundation18 ~]# ls -al
ls是“list”的意思,重点在显示文件的文件名与相关属性。而选项“-al”则表示列出所有的文件详细的权限与属性 (包含隐藏文件,就是文件名第一个字符为“.”的文件)。
上面程序的每一行都分为七个字段。从左到右依次是权限;链接;拥有者;群组;文件大小;修改日期;文件名。
在上面的字符中,以三个为一组,且均为“rwx”的三个参数的组合。其中,[r]代表可读、[w]代表可写(write)、[x]代表可执行(execute)。要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[-]而已
- 如何改变文件属性与权限
在Linux中每个文件的属性和权限很多,那么接下来就简单介绍一下
命令 | 功能 |
---|---|
chgrp | 改变文件所属群组 |
chown | 改变文件拥有者 |
chmod | 改变文件权限,SUID,SGID,SBIT等等的权限 |
chgrp groupname file|dir ##更改文件或目录的所有组
chgrp -R groupname dir ##更改目录本身及里面所有内容的所有组
在用charp命令改变群组操作时,要被改变的群组名称必须要 在/etc/group文件内存在才行,否则就会显示错误!
chown username file |dir ##更改文件或者目录的所有人
chown username.groupname file|dir ##更改文件或目录的所有人或所有组
chown -R username dir ##更改目录本身及里面所有内容的所有人
touch /mnt/file{1..5} ##先建立文件
mkdir /mnt/westos ##建立子目录
touch /mnt/westos/westfile{1..5} ##在子目录之下建立文件
useradd wind linu ##建立用户
chown ##修改用户名
chgrp ##修改用户组名
chown -R ##修改用户名及其子目录下的所有文件的用户名
chgrp -R ##修改用户组名及其子目录下的所有文件的用户组名
使用chown这个指令的时候,要注意的是,使用者必须是已经存在系统中的帐号,也就是在/etc/passwd这个文件中有纪录的使用者名称才能改变。
chmod [-R]<u|g|o><+|-|> = <r|w|x> file|dir ##总的修改格式
chmod u-x file ##文件file拥有者去掉x权限
chmod d+w file ##文件file拥有组添加w权限
chmod g+w file ##文件file拥有者添加w权限
chmod u+x,g-w file ##文件file拥有者加上x权限,拥有组去掉w权限
chmod ugo-r file ##文件file的用户,群组,其他人皆去掉r权限
文件的权限字符,可以用数字代表各个权限
字符 | 数字 |
---|---|
r | 4 |
w | 2 |
x | 1 |
每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为:[-rwxrwx---]分数则是:
owner=rwx=4+2+1=7>group=rwx=4+2+1=7>others=---=0+0+0=0
三种身份(1)user(2)group(3)others,那么我们就可以用u,g,o来代表三种身份的权限!此外a则代表all亦即全部的身份!那么读写的权限就可以写成r,w,x