1、综述Linux中,ls -l命令可谓是最经常使用不过了。命令显示结果中的第一列也是咱们比较关注的地方,通常说法是表示权限的字符占10个位置。但是,咱们也常常看到在这一列中第十一个位置也有内容显示,最多见的非那个点(.)莫属了,还有加号(+)也会出如今这个位置,这究竟是怎么回事呢?让咱们亲手来实践一下吧?
2、关于权限列内的点(.)2.1 让咱们来看一下根目录。
[root@DCGH ~]# ls -lZ /
lrwxrwxrwx. root root system_u:object_r:bin_t:s0 bin -> usr/bin
dr-xr-xr-x. root root system_u:object_r:boot_t:s0 boot
drwxr-xr-x. root root system_u:object_r:device_t:s0 dev
drwxr-xr-x. root root system_u:object_r:etc_t:s0 etc
drwxr-xr-x. root root system_u:object_r:home_root_t:s0 home
lrwxrwxrwx. root root system_u:object_r:lib_t:s0 lib -> usr/lib
lrwxrwxrwx. root root system_u:object_r:lib_t:s0 lib64 -> usr/lib64
drwxr-xr-x. root root system_u:object_r:mnt_t:s0 media
drwxr-xr-x. root root system_u:object_r:mnt_t:s0 mnt
drwxr-xr-x. root root system_u:object_r:usr_t:s0 opt
dr-xr-xr-x. root root system_u:object_r:proc_t:s0 proc
dr-xr-x---. root root system_u:object_r:admin_home_t:s0 root
drwxr-xr-x. root root system_u:object_r:var_run_t:s0 run
lrwxrwxrwx. root root system_u:object_r:bin_t:s0 sbin -> usr/sbin
drwxr-xr-x. root root system_u:object_r:var_t:s0 srv
dr-xr-xr-x. root root system_u:object_r:sysfs_t:s0 sys
drwxrwxrwt. root root system_u:object_r:tmp_t:s0 tmp
drwxr-xr-x. root root system_u:object_r:usr_t:s0 usr
drwxr-xr-x. root root system_u:object_r:var_t:s0 var
2.2 在HOME目录分别建立一个文件和目录,观察权限了第十一个位置的详细状况。
[root@DCGH ~]# touch DCGH
[root@DCGH ~]# mkdir DCGH-DIR
[root@DCGH ~]# ls -l
总用量 0
-rw-r--r--. 1 root root 0 3月 28 10:23 DCGH
drwxr-xr-x. 2 root root 6 3月 28 10:24 DCGH-DIR
2.3 查看本机SELinux状态,并列举本目录下文件和目录关于SELinux的基本状况。
[root@DCGH ~]# getenforce
Enforcing
[root@DCGH ~]# ls -lZ
-rw-r--r--. root root unconfined_u:object_r:admin_home_t:s0 DCGH
drwxr-xr-x. root root unconfined_u:object_r:admin_home_t:s0 DCGH-DIR
3.4 关闭SELinux,再建立实验文件和目录,再次列举本目录及根下文件和目录关于SELinux的基本状况。
[root@DCGH ~]# sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
[root@DCGH ~]# reboot
[root@DCGH ~]# getenforce
Disabled
[root@DCGH ~]# ls -lZ
-rw-r--r--. root root unconfined_u:object_r:admin_home_t:s0 DCGH
drwxr-xr-x. root root unconfined_u:object_r:admin_home_t:s0 DCGH-DIR
[root@DCGH ~]# touch DCGH-later
[root@DCGH ~]# mkdir DCGH-later-dir
[root@DCGH ~]# ls -lZ
-rw-r--r--. root root unconfined_u:object_r:admin_home_t:s0 DCGH
drwxr-xr-x. root root unconfined_u:object_r:admin_home_t:s0 DCGH-DIR
-rw-r--r-- root root ? DCGH-later
drwxr-xr-x root root ? DCGH-later-dir
[root@DCGH ~]# ls -lZ /lrwxrwxrwx. root root system_u:object_r:bin_t:s0 bin -> usr/bin
dr-xr-xr-x. root root system_u:object_r:boot_t:s0 boot
drwxr-xr-x root root ? dev
drwxr-xr-x. root root system_u:object_r:etc_t:s0 etc
drwxr-xr-x. root root system_u:object_r:home_root_t:s0 home
lrwxrwxrwx. root root system_u:object_r:lib_t:s0 lib -> usr/lib
lrwxrwxrwx. root root system_u:object_r:lib_t:s0 lib64 -> usr/lib64
drwxr-xr-x. root root system_u:object_r:mnt_t:s0 media
drwxr-xr-x. root root system_u:object_r:mnt_t:s0 mnt
drwxr-xr-x. root root system_u:object_r:usr_t:s0 opt
dr-xr-xr-x root root ? proc
dr-xr-x---. root root system_u:object_r:admin_home_t:s0 root
drwxr-xr-x root root ? run
lrwxrwxrwx. root root system_u:object_r:bin_t:s0 sbin -> usr/sbin
drwxr-xr-x. root root system_u:object_r:var_t:s0 srv
dr-xr-xr-x root root ? sys
drwxrwxrwt. root root system_u:object_r:tmp_t:s0 tmp
drwxr-xr-x. root root system_u:object_r:usr_t:s0 usr
drwxr-xr-x. root root system_u:object_r:var_t:s0 var
经过上面的例子,咱们能够看出来,这个点(.)不是没有用的,而是做用巨大,咱们平时没怎么注意而已。开启SELinux后建立的文件和目录都会在权限列显示这个点的,关闭SELinux后建立的文件和目录在权限列是不会显示这个点的,以前建立的文件或目录保持不变。
3、关于权限列的加号(+)
3.1 了解过Linux中ACL权限设置的朋友对于这个加号确定不陌生。不过仍是让咱们经过实验来验证一下。
[root@DCGH ~]# setfacl -m u:dcgh:rwx *
[root@DCGH ~]# ls -lZ
-rw-rwxr--+ root root unconfined_u:object_r:admin_home_t:s0 DCGH
drwxrwxr-x+ root root unconfined_u:object_r:admin_home_t:s0 DCGH-DIR
drwxrwxr-x+ root root ? DCGH-DIR-later
-rw-rwxr--+ root root ? DCGH-later
[root@DCGH ~]# setfacl -b *
[root@DCGH ~]# ls -lZ
-rw-r--r--. root root unconfined_u:object_r:admin_home_t:s0 DCGH
drwxr-xr-x. root root unconfined_u:object_r:admin_home_t:s0 DCGH-DIR
drwxr-xr-x root root ? DCGH-DIR-later
-rw-r--r-- root root ? DCGH-laterlinux
咱们能够看到,加了ACL权限控制以后,以前具备SELinux属性的文件和目录的权限列最后一个位置所有变成了加号(+)。移除原来的ACL权限以后,恢复原样。blog
4、总结
4.1 Linux权限列的点不是无心义字符。在开启SELinux的状况下建立的目录和文件有具备这个点,权限列有这个点说明该目录或文件以及设置了SELinux相关的权限。在禁用SELinux权限以后,在以前开启SELinux权限时建立的文件或目录保持原来的权限不便,权限列的点依然显示。新建立的目录或文件在权限列无这个点显示。ci
4.2 权限列中最后一个位置若是是加号,说明这个目录或文件已经设置了ACL权限相关的内容。若是加号存在,则已经有点的目录或文件,点的显示会被覆盖,但原来的SELinux属性保持不变get