12.3.3 通过实践测试目录属性对应的权限
12.3.3 通过实践测试目录属性对应的权限
1. 针对当下目录/oldboy属性测试权限
查看当下目录/oldboy属性,命令如下:
[root@oldboy ~]# ls -ld /oldboy/
drwxr-xr-x. 2 oldboy root 4096 Apr 30 11:05 /oldboy/
通过上述命令可知,/oldboy目录的用户为oldboy,用户组为root,因此,oldboy用户对/oldboy目录下的内容的权限看前三位(rwx),可以得知,其具备浏览oldboy目录下内容的权限、删除oldboy目录下文件的权限和切换到oldboy目录下的权限。而oldgirl及test用户对于/oldboy目录权限的属性来说,都属于其他用户角色,因此,对应权限都看最后三位(r-x),即都有浏览oldboy目录下内容的权限、切换到oldboy目录下的权限,但是无删除oldboy目录下文件的权限。测试实践过程如下。
使用oldboy用户进行测试:
[oldboy@oldboy /]$ whoami
oldboy
[oldboy@oldboy ~]$ ls -ld /oldboy
drwxr-xr-x. 2 oldboy root 4096 Apr 30 11:05 /oldboy
[oldboy@oldboy ~]$ touch /oldboy/{1..3}.txt
#<==在oldboy目录下创建文件是可以的,这是oldboy目录用户位中w权限的作用。
[oldboy@oldboy ~]$ ls /oldboy/ #<==列表目录下的内容也可以,这是oldboy目录用户位中r权限的作用。
1.txt 2.txt 3.txt
[oldboy@oldboy ~]$ ls -l /oldboy/
#<==列表目录下的内容及属性信息也是可以的,这是oldboy目录用户位中r权限的作用。
total 0
-rw-r--r--. 1 oldboy incahome 0 Apr 30 11:17 1.txt
-rw-r--r--. 1 oldboy incahome 0 Apr 30 11:17 2.txt
-rw-r--r--. 1 oldboy incahome 0 Apr 30 11:17 3.txt
[oldboy@oldboy ~]$ cd /oldboy/ #<==切换到oldboy目录下也可以,这是oldboy目录用户位中x权限的作用。
[oldboy@oldboy oldboy]$ pwd
/oldboy
[oldboy@oldboy oldboy]$ rm -f 1.txt #<==可以删除目录下的文件,这是oldboy目录用户位中w权限的作用。
[oldboy@oldboy oldboy]$ ls
2.txt 3.txt
在使用oldgirl、test用户测试时,会发现二者的权限相同,因此这里仅以oldgirl用户为例进行讲解,测试过程如下:
[oldgirl@oldboy oldboy]$ whoami
oldgirl
[oldgirl@oldboy ~]$ ls -ld /oldboy
drwxr-xr-x. 2 oldboy root 4096 Apr 30 11:17 /oldboy #<==oldgirl对应权限看最后三位(r-x)。
[oldgirl@oldboy ~]$ ls /oldboy #<==可以列表文件名,因为具有r权限。
2.txt 3.txt
[oldgirl@oldboy ~]$ ls -l /oldboy #<==可以列表属性信息。
total 0
-rw-r--r--. 1 oldboy incahome 0 Apr 30 11:17 2.txt
-rw-r--r--. 1 oldboy incahome 0 Apr 30 11:17 3.txt
[oldgirl@oldboy ~]$ touch /oldboy/{a.c}.txt #<==无法创建文件,因为没有w权限。
touch: cannot touch `/oldboy/{a.c}.txt': Permission denied
[oldgirl@oldboy ~]$ cd /oldboy #<==可以切换到oldboy目录下,因为有x权限。
[oldgirl@oldboy oldboy]$ pwd
/oldboy
[oldgirl@oldboy oldboy]$ ls
2.txt 3.txt
[oldgirl@oldboy oldboy]$ rm -f 2.txt #<==无法删除文件,因为没有w权限。
rm: cannot remove `2.txt': Permission denied
2. 测试oldboy目录权限中x和w与r的配合,以及r和w与x的配合
将文件的权限和用户及组调整为如下属性:
[root@oldboy ~]# chmod 736 /oldboy/ #<==读者原样输入即可,12.4.1节会详细讲解,这里无须关心为什么如此输入。
[root@oldboy ~]# chown oldboy.incahome /oldboy #<==修改用户及组。
[root@oldboy ~]# ls -ld /oldboy
drwx-wxrw-. 2 oldboy incahome 4096 Apr 30 11:17 /oldboy
根据修改后的目录属性信息可知,/oldboy目录的所属的用户及组分别为oldboy用户和incahome组,因此,oldboy用户对/oldboy目录的权限看前三位(rwx),而oldgirl用户属于incahome组,因此,oldgirl用户对/oldboy目录的权限看中三位(-wx),最后test用户对/oldboy目录的权限看最后三位(rw-)。
实践步骤如下。
下面是使用oldgirl用户进行测试的情况,注意这里要看中三位(-wx):
[oldgirl@oldboy ~]$ ls -ld /oldboy/
drwx-wxrw-. 2 oldboy incahome 4096 Apr 30 11:17 /oldboy/ #<==中三位(-wx)是old- girl对应的权限。
[oldgirl@oldboy ~]$ ls /oldboy #<==无法列表目录下的内容,因为无r权限。
ls: cannot open directory /oldboy: Permission denied
[oldgirl@oldboy ~]$ touch /oldboy/m.txt #<==可以创建文件,因为有w权限。
[oldgirl@oldboy ~]$ cd /oldboy #<==可以切换到目录。因为有x权限。
[oldgirl@oldboy oldboy]$ ls #<==无法列表目录下的内容,因为无r权限。
ls: cannot open directory .: Permission denied
[oldgirl@oldboy oldboy]$ rm -f m.txt #<==可以删除文件,因为具有w权限。
以下是使用test用户进行测试的情况,注意这里要看后三位(rw-):
[test@oldboy ~]$ whoami
test
[test@oldboy ~]$ ls -ld /oldboy
drwx-wxrw-. 2 oldboy incahome 4096 Apr 30 11:38 /oldboy #<==后三位(rw-)是test用户对应的权限。
[test@oldboy ~]$ ls /oldboy #<==可以列表目录下的内容,因为具有r权限。
ls: cannot access /oldboy/3.txt: Permission denied #<==但是缺少x权限配合,所以,报错了。
ls: cannot access /oldboy/2.txt: Permission denied
2.txt 3.txt #<==依然可以看到目录下的内容。
[test@oldboy ~]$ ls -l /oldboy #<==可以列表目录下内容的属性信息。
ls: cannot access /oldboy/3.txt: Permission denied
ls: cannot access /oldboy/2.txt: Permission denied
total 0
-????????? ? ? ? ? ? 2.txt #<==属性信息为多个问号属于不正常现象,因为缺少x权限配合。
-????????? ? ? ? ? ? 3.txt
[test@oldboy ~]$ touch /oldboy/n.txt #<==无法创建文件,虽然有w,但是没有x权限配合。
touch: cannot touch `/oldboy/n.txt': Permission denied
[test@oldboy ~]$ rm -f /oldboy/3.txt #<==无法删除文件,虽然有w,但是没有x权限配合。
rm: cannot remove `/oldboy/3.txt': Permission denied
[test@oldboy ~]$ cd /oldboy #<==无法进入目录,因为没有x权限配合。
-bash: cd: /oldboy: Permission denied
测试结论:
• 对于目录,r权限表示可以浏览目录下的内容(ls以及ls-l),w权限表示可以删除目录下的文件,以及在目录下创建文件,x权限表示切换到目录下。
• 没有x权限的配合,即使有w权限也无法删除和创建文件。
• 没有x权限的配合,即使有r权限,在查看目录内容及目录下的内容属性时也会报错或者显示问号,但依然可以看到列表的文件名。


