1.# ls -dZ /samba-share/
2.drwxr-xr-x root root root:object_r:root_t /myshare/
3. # chcon -R -t public_content_rw_t /myshare/
4. # ls -dZ /myshare/
5.drwxr-xr-x nobody nobody root:object_r:public_content_rw_t /myshare/
.
6.註:public_content_t(讀)與public_content_rw_t(寫)是所有domain
.共同可以存取的檔案type,後者通常需要打開allow_xxx_anon_write項目
.的布林值,否則只具備讀的權限而已。
*SELinux預設不開啟這個布林值,所以只能讀取不能寫入。
# getsebool -a | grep allow_smbd_anon_write
allow_smbd_anon_write --> off
*開啟這個布林值之後就可以做寫入的動作。
# setsebool -P allow_smbd_anon_write=1
-----------------------------------------------------------------------------------
或是使用以下方式:
設定SElinux
chcon -t samba_share_t /home/files
採用這樣的配置方式,更改在重啟後是繼續有效的;但是如果目錄和檔存在預設策略,則新增加的文件和資料夾,將會應用默認設置,而不會使用上面的策略。 如果要對新增的檔也起到作用,則需要將規則添加到策略中。
#先安裝配置命令
dnf install policycoreutils-python-utils
#下面是配置
semanage fcontext -a -t samba_share_t "/home/files(/.*)?"
由於使用了 (/.*)?" ,該規則將應用於“files”目錄的所有內容以及目錄本身。 為了驗證該策略是否起作用,可以通過列出系統上正在使用的標籤來驗證是否已將規則添加到策略中。
semanage fcontext -l | grep /home/files
#顯示的內容
/home/files(/.*)? all files system_u:object_r
為了進一步調整samba配置,我們可能還需要設定selinux的布林值。 例如,將現有的系統使用者添加到samba中時,如果要共用其主目錄,則必須啟用專用的selinux的布林值。
#列出與samba相關的所有布林值
semanage boolean -l|grep samba
#內容可能如下:
# 配置項名稱 當前值 預設值 簡要說明
samba_create_home_dirs (off , off) Allow samba to create home dirs
samba_domain_controller (off , off) Allow samba to domain controller
samba_enable_home_dirs (off , off) Allow samba to enable home dirs
samba_export_all_ro (off , off) Allow samba to export all ro
samba_export_all_rw (off , off) Allow samba to export all rw
samba_load_libgfapi (off , off) Allow samba to load libgfapi
samba_portmapper (off , off) Allow samba to portmapper
samba_run_unconfined (off , off) Allow samba to run unconfined
samba_share_fusefs (off , off) Allow samba to share fusefs
samba_share_nfs (off , off) Allow samba to share nfs
sanlock_use_samba (off , off) Allow sanlock to use samba
tmpreaper_use_samba (off , off) Allow tmpreaper to use samba
use_samba_home_dirs (off , off) Allow use to samba home dirs
virt_use_samba (off , off) Allow virt to use samba
仍以我們要啟動啟用主目錄共用,則對應的布林值專案是samba_enable_home_dirs ,需要使用setsebool命令執行操作
setsebool -P samba_enable_home_dirs=1