预备知识:1.在linux中,任何一个档案都具有”所有者、用户组、其他用户“这三种身份的个别权限。
2.每一个用户都有它自身的读(所有者权限),写和执行权限。
3. Linux用户和用户组记录文件:在我们linux系统中,默认情况下,所有系统上的账号的相关信息都会记录在/etc/passwd这个文件内。个人密码则会记录在/etc/shadow这文件下。此外,linux所有的组名都会记录在/etc/group内。
步骤一:
①ls -al:列出所有档案的详细权限与属性(包括隐藏文件)(见图1.1)
图1.1
注:
连接数:每个档案都会将他的权限和属性记录到文件系统的inode中,每个档案名都会连接到一个inode。这个连接数就是记录有多少不同的档案名连接到相同的一个inode号码去了。
拥有者就是这个档案所属的拥有者账号了。
用户组:表示这个档案所属的群组
第五列就是这个档案占用的容量大小,默认单位是bytes
修改日期就是这个档案最近被修改的日期
权限可分为10列,如下图:
第一个字符代表档案的类型:
d:代表是目录
-:代表是文件
l:代表是连接文件(相当于windows里面的快捷方式)
b:代表块设备(如硬盘)
c:代表字符设备(如键盘,鼠标等)
接下来的字符中,以三个为一组,均为”rwx“的三个参数的组合。分别是r:可读;w:可写;x:可执行。注意,这三个权限的位置不会改变,如果没有权限,就是:”-“。
(-rw-------只有所有者才有读和写的权限,-rw-r--r--只有所有者才有读和写的权限,组群和其他人只有读的权限,-rwx------只有所有者才有读,写,执行的权限)
第一组为拥有者的权限,第二组为同群组的权限,第三组为其他非本群组的权限。
步骤二:
①chown(change owner) 账号名称 文件或目录:修改文件或目录拥有者(见图2.1)
图2.1
注:1.现在/tmp目录下新建文件heetian,再建立用户heetian,显示当前目录下所有档案及其详细权限属性,可以看到,heetian目录的拥有者是root,使用chown命令后,就将拥有者改成heetian了,
(chown heetian(此为用户名)./heetian(此为目录名))
2.chown -R :递归改变目录,连同该目录下所有的档案都改变
②chgrp(change group) 账号名称 文件或目录:改变所属用户组(chgrp -R:递归改变目录。连同该目录下所有的档案都改变)(见图2.2)
图2.2
步骤三:
①chmod xyz 文件或目录:改变文件权限(chmod -R递归改变目录,-R同上。)(见图3.1)
图3.1
注:xyz是三个数字,
每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为[-rwxrwxr--]分数则是:
owner(所有者):rwx=4+2+1=7
group(用户组):rwx=4+2+1=7
others(其他用户):r--=4+0+0=4
②符号类型改变权限:chmod 【u=【rwx】,g=【rwx】,o【rwx】,a=【rwx】】 文件或目录。(见图3.2)
ugo,分别代表user,group和others,a代表all
图3.2
注:文件与目录权限意义如下图:
③
为什么/tmp/heetian/test.txt文件的权限是“000”的时候,heetian用户还是能够把它删除呢?
答:因为test.txt在heetian目录下,heetian目录对拥有者和群组有w权限,可以被删除,所以test.txt可以被删。(见图3.3)
图3.3
为什么/tmp/heetian/test.txt文件所有者和用户组都是root,对于heetian来说只有可读权限,为啥heetian也能把它删除了?
答:因为heetian有heetian目录的w权限,所以可以删
分析思考:1.任何人皆可读取、修改或编辑、可以执行,但不一定能删除。
2.chmod 755 目录名 -R
3.更改 /tmp/heetian.txt 的用户组和拥有者都为 root
答题: