Option to restore default SElinux context for a home dir

This commit is contained in:
Jamie Cameron
2012-12-31 23:01:14 -08:00
parent 365e3de5ec
commit 075b7fb822
2 changed files with 11 additions and 3 deletions

View File

@@ -4,7 +4,7 @@ user_files=Copy files into new home directories from,9,40,3
home_base=Automatic home directory base,3,Not set
real_base=Real home directory base,3,Same as above
home_style=Automatic home directory style,4,0-home/username,1-home/u/username,2-home/u/us/username,3-home/u/s/username,4-Just base directory,5-home/primary_group/username
selinux_con=SElinux context for new home directories,3,None
selinux_con=SElinux context for new home directories,10,-None,*-System default
line2=New user options,11
base_uid=Lowest UID for new users,0,5

View File

@@ -2632,8 +2632,16 @@ $home ||= $user->{'home'};
oct($config{'homedir_perms'}), $home) ||
&error(&text('usave_echmod', $!));
if ($config{'selinux_con'} && &is_selinux_enabled() && &has_command("chcon")) {
&system_logged("chcon ".quotemeta($config{'selinux_con'}).
" ".quotemeta($home)." >/dev/null 2>&1");
if ($config{'selinux_con'} eq "*") {
# Restore default context
&system_logged("restorecon -r ".
quotemeta($home)." >/dev/null 2>&1");
}
else {
# Use specific context
&system_logged("chcon ".quotemeta($config{'selinux_con'}).
" ".quotemeta($home)." >/dev/null 2>&1");
}
}
&unlock_file($home);
}