読者です 読者をやめる 読者になる 読者になる

FC5 + Sambaでディレクトリ作成不可

OSS/Linux

selinux-policy-2.2.25-3.fc5 の場合、Samba(smbd_t)がユーザのホームディレクトリ以下にディレクトリを作成する権限がない。
このため、Samba区画をマウントしてもディレクトリを作成する段階ではねられる。
ユーザのホームディレクトリの権限を設定しているのはpolicy/modules/system/userdomain.te というファイル。
ここから samba_per_userdomain_template(user) というマクロが呼び出されて、これがSambaの user ホームディレクトリに対する権限を設定する。

samba_per_userdomain_template() は policy/modules/services/samba.if で
定義されており、以下のようになっているが、ディレクトリを作成する権限が抜けている。
そこで、policy/modules/services/samba.if を編集してuserdom_manage_user_home_content_dirs($1, smbd_t)の記述を加える。これでホームディレクトリ上にディレクトリを作成する権限が付与される。

template(`samba_per_userdomain_template',`
gen_require(`
type smbd_t;
')

tunable_policy(`samba_enable_home_dirs',`
userdom_manage_user_home_content_files($1,smbd_t)
userdom_manage_user_home_content_symlinks($1,smbd_t)
userdom_manage_user_home_content_sockets($1,smbd_t)
userdom_manage_user_home_content_pipes($1,smbd_t)
userdom_manage_user_home_content_dirs($1, smbd_t)
userdom_user_home_dir_filetrans_user_home_content($1,smbd_t, \
{ dir file lnk_file sock_file fifo_file })
')
')

なお、public_html/ 以下はまた別の権限が付与されるので、上記の設定だけではダメ