关于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       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 328 10:23 DCGH
drwxr-xr-x. 2 root root 6 328 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.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-later

我们可以看到,加了ACL权限控制之后,之前具有SELinux属性的文件和目录的权限列最后一个位置全部变成了加号(+)。移除原来的ACL权限之后,恢复原样。

四、总结

4.1 Linux权限列的点不是无意义字符。在开启SELinux的情况下创建的目录和文件有具有这个点,权限列有这个点说明该目录或文件以及设置了SELinux相关的权限。在禁用SELinux权限之后,在之前开启SELinux权限时创建的文件或目录保持原来的权限不变,权限列的点依然显示。新创建的目录或文件在权限列无这个点显示。

4.2 权限列中最后一个位置如果是加号,说明这个目录或文件已经设置了ACL权限相关的内容。如果加号存在,则已经有点的目录或文件,点的显示会被覆盖,但原来的SELinux属性保持不变。

4.3 官方一点的说法:点表示该文件具有SELinux安全上下文,加号表示该文件配置了ACL权限,加号不会覆盖SELinux控制。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux ,可以使用 chmod 命令来给文件赋予不同的权限。下面是一些常用的权限: - r(读权限):允许读取文件内容。 - w(写权限):允许修改文件内容。 - x(执行权限):允许执行该文件(如果是可执行文件)。 使用 chmod 命令时,需要指定需要修改权限的文件名、所属用户和用户组,以及需要赋予的权限。命令格式如下: ``` chmod [选项]... [MODE]... FILE... ``` 其,MODE 可以有多种表示方式: - 数字表示法:用三个数字表示文件权限。每个数字代表一个权限组,分别对应所有者、所属组和其他用户的权限。数字权限分别为 4(读)、2(写)和 1(执行)。例如,777 表示所有用户都拥有读、写、执行权限。 - 符号表示法:用符号表示文件权限。符号包括 u(所有者)、g(所属组)、o(其他用户)和 a(所有用户)。加号(+)表示增加权限,减号(-)表示减少权限,等号(=)表示设置权限。例如,u+r 表示给所有者增加读权限,o-r 表示去除其他用户的读权限。 以下是一些常见的 chmod 命令示例: - 给文件所有者赋予读、写、执行权限,同时给所属组和其他用户赋予读权限: ``` chmod 755 file.txt ``` - 给文件所有用户赋予读、写、执行权限: ``` chmod a+rwx file.txt ``` - 给文件所有者和所属组赋予读、写权限,其他用户没有权限: ``` chmod ug+rw file.txt ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值