您好,登錄后才能下訂單哦!
這篇文章主要介紹了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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。