[refpolicy] corrected/rebased samba patch

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Previous patch was somehow malformed; here's a clean and rebased one.

---

* Allow winbind to clean up its sockets on shutdown
* Allow nmbd to rename log files
* Update winbind interface to permit access to both sockets
* Add interface to allow creation (only) of home directories
* Add tunable to allow samba to create home directories on the fly.

 roles/unprivuser.if |   19 +++++++++++++++++++
 services/samba.if   |   18 +++++++++---------
 services/samba.te   |   17 +++++++++++++++--
 3 files changed, 43 insertions(+), 11 deletions(-)

Index: policy/modules/services/samba.if
===================================================================
--- policy/modules/services/samba.if	(revision 2770)
+++ policy/modules/services/samba.if	(working copy)
@@ -484,17 +484,17 @@
 ## </param>
 #
 interface(`samba_stream_connect_winbind',`
-	ifdef(`distro_redhat',`
-		gen_require(`
-			type samba_var_t, winbind_t, winbind_var_run_t;
-		')
+	gen_require(`
+		type samba_var_t, winbind_t, winbind_var_run_t;
+	')
 
-		files_search_pids($1)
-		allow $1 samba_var_t:dir search_dir_perms;
-		stream_connect_pattern($1, winbind_var_run_t, winbind_var_run_t, winbind_t)
-	',`
+	files_search_pids($1)
+	allow $1 samba_var_t:dir search_dir_perms;
+	stream_connect_pattern($1, winbind_var_run_t, winbind_var_run_t, winbind_t)
+	
+	ifndef(`distro_redhat', `
 		gen_require(`
-			type winbind_t, winbind_tmp_t;
+		    type winbind_tmp_t;
 		')
 
 		# the default for the socket is (poorly named):
Index: policy/modules/services/samba.te
===================================================================
--- policy/modules/services/samba.te	(revision 2770)
+++ policy/modules/services/samba.te	(working copy)
@@ -17,6 +17,13 @@
 
 ## <desc>
 ## <p>
+## Allow samba to create new home directories (e.g. via PAM)
+## </p>
+## </desc>
+gen_tunable(samba_create_home_dirs, false)
+
+## <desc>
+## <p>
 ## Allow samba to act as the domain controller, add users,
 ## groups and change passwords.
 ## 
@@ -379,6 +386,12 @@
 	unprivuser_home_dir_filetrans_home_content(nmbd_t, { file dir })
 ')
 
+tunable_policy(`samba_create_home_dirs',`
+	unprivuser_home_filetrans_home_dir(smbd_t)
+	unprivuser_create_home_dir(smbd_t)
+	allow smbd_t self:capability chown;
+')
+
 ########################################
 #
 # nmbd Local policy
@@ -404,8 +417,7 @@
 read_files_pattern(nmbd_t, samba_etc_t, samba_etc_t)
 
 manage_dirs_pattern(nmbd_t, samba_log_t, samba_log_t)
-append_files_pattern(nmbd_t, samba_log_t, samba_log_t)
-allow nmbd_t samba_log_t:file unlink;
+manage_files_pattern(nmbd_t, samba_log_t, samba_log_t)
 
 read_files_pattern(nmbd_t, samba_log_t, samba_log_t)
 create_files_pattern(nmbd_t, samba_log_t, samba_log_t)
@@ -675,6 +687,7 @@
 
 manage_dirs_pattern(winbind_t, winbind_tmp_t, winbind_tmp_t)
 manage_files_pattern(winbind_t, winbind_tmp_t, winbind_tmp_t)
+manage_sock_files_pattern(winbind_t, winbind_tmp_t, winbind_tmp_t)
 files_tmp_filetrans(winbind_t, winbind_tmp_t, { file dir })
 
 manage_files_pattern(winbind_t, winbind_var_run_t, winbind_var_run_t)
Index: policy/modules/roles/unprivuser.if
===================================================================
--- policy/modules/roles/unprivuser.if	(revision 2770)
+++ policy/modules/roles/unprivuser.if	(working copy)
@@ -126,6 +126,25 @@
 
 ########################################
 ## <summary>
+## Create generic user home directories
+## </summary>
+## <param name="domain">
+##  <summary>
+##  Domain allowed access.
+##  </summary>
+## </param>
+#
+interface(`unprivuser_create_home_dir',`
+	gen_require(`
+		type user_home_dir_t;
+	')
+
+	files_search_home($1)
+	allow $1 user_home_dir_t:dir create_dir_perms;
+')
+
+########################################
+## <summary>
 ##	Create, read, write, and delete generic user
 ##	home directories.
 ## </summary>

[Index of Archives]     [Selinux Refpolicy]     [Linux SGX]     [Fedora Users]     [Fedora Desktop]     [Yosemite Photos]     [Yosemite Camping]     [Yosemite Campsites]     [KDE Users]     [Gnome Users]

  Powered by Linux