这篇文章主要介绍了Linux权限列中加号及点的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
Linux中,ls -l命令可谓是最常用不过了。命令显示结果中的第一列也是我们比较关注的地方,一般说法是表示权限的字符占10个位置。可是,我们也经常看到在这一列中第十一个位置也有内容显示,最常见的非那个点(.)莫属了,还有加号(+)也会出现在这个位置,这到底是怎么回事呢?让我们亲手来实践一下吧?
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 var1234567891011121314151617181920
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-DIR123456
2.3 查看本机SELinux状态,并列举本目录下文件和目录关于SELinux的基本情况。
[root@DCGH ~]# getenforceEnforcing [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-DIR12345
3.4 关闭SELinux,再创建实验文件和目录,再次列举本目录及根下文件和目录关于SELinux的基本情况。
[root@DCGH ~]# sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config[root@DCGH ~]# reboot[root@DCGH ~]# getenforceDisabled [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 var12345678910111213141516171819202122232425262728293031323334
通过上面的例子,我们可以看出来,这个点(.)不是没有用的,而是作用巨大,我们平时没怎么注意而已。开启SELinux后创建的文件和目录都会在权限列显示这个点的,关闭SELinux后创建的文件和目录在权限列是不会显示这个点的,之前创建的文件或目录保持不变。
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-later123456789101112
我们可以看到,加了ACL权限控制之后,之前具有SELinux属性的文件和目录的权限列最后一个位置全部变成了加号(+)。移除原来的ACL权限之后,恢复原样。
4.1 Linux权限列的点不是无意义字符。在开启SELinux的情况下创建的目录和文件有具有这个点,权限列有这个点说明该目录或文件以及设置了SELinux相关的权限。在禁用SELinux权限之后,在之前开启SELinux权限时创建的文件或目录保持原来的权限不变,权限列的点依然显示。新创建的目录或文件在权限列无这个点显示。
4.2 权限列中最后一个位置如果是加号,说明这个目录或文件已经设置了ACL权限相关的内容。如果加号存在,则已经有点的目录或文件,点的显示会被覆盖,但原来的SELinux属性保持不变。
4.3 官方一点的说法:点表示该文件具有SELinux安全上下文,加号表示该文件配置了ACL权限,加号不会覆盖SELinux控制。
感谢你能够认真阅读完这篇文章,希望小编分享的“Linux权限列中加号及点的示例分析”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。