1. 程式人生 > >Centos7 nginx修改資料夾後 is forbidden (13: Permission denied)

Centos7 nginx修改資料夾後 is forbidden (13: Permission denied)

我們可以通過 ls -Z 這個命令來檢視我們檔案的上下文資訊,也就是SELinux資訊,我們發現其比傳統的 ls 命令多出來了 system_u:object_r:admin_home_t:s0 這個東西,我們現在就來分析一下這段語句所代表的含義

system_u:object_r:admin_home_t:s0

這條語句通過:劃分成了四段,第一段 system_u 代表的是使用者,第二段 object_r 表示的是角色,第三段是SELinux中最重要的資訊,admin_home 表示的是型別,最後一段 s0 是跟MLS、MCS相關的東西,暫時不需要管
①system_u  指的是SElinux使用者,root表示root賬戶身份,user_u表示普通使用者無特權使用者,system_u表示系統程序,通過使用者可以確認身份型別,一般搭配角色使用。身份和不同的角色搭配時有許可權不同,雖然可以使用su命令切換使用者但對於SElinux的使用者並沒有發生改變,賬戶之間切換時此使用者身份不變,在targeted策略環境下使用者標識沒有實質性作用。


②object_r  object_r一般為檔案目錄的角色、system_r一般為程序的角色,在targeted策略環境中使用者的角色一般為system_r。使用者的角色類似使用者組的概念,不同的角色具有不同的身份許可權,一個使用者可以具備多個角色,但是同一時間只能使用一個角色。在targeted策略環境下角色沒有實質作用,在targeted策略環境中所有的程序檔案的角色都是system_r角色。

③admin_home  檔案和程序都有一個型別,SElinux依據型別的相關組合來限制存取許可權。

ls -Z -d /usr/share/nginx/html drwxr-xr-x. root root system_u:object_r:usr_t:s0 /usr/share/nginx/html ls -z -d /data/web/default drwxr-xr-x. root root unconfined_u:object_r:default_t:s0 /data/web/default //==============================================================================// chcon -R -u system_u /data/web/default/ chcon -R -t usr_t /data/web/default/