diff --git a/refpolicy/policy/modules/admin/usermanage.if b/refpolicy/policy/modules/admin/usermanage.if new file mode 100644 index 00000000..42558ebc --- /dev/null +++ b/refpolicy/policy/modules/admin/usermanage.if @@ -0,0 +1,249 @@ +# Copyright (C) 2005 Tresys Technology, LLC +## +## Policy for managing user accounts. + +######################################## +## +## +## Execute chfn in the chfn domain. +## +## +## The type of the process performing this action. +## +## +## +# +define(`usermanage_chfn_transition',` +requires_block_template(`$0'_depend) +allow $1 chfn_exec_t:file { getattr read execute }; +allow $1 chfn_t:process transition; +type_transition $1 chfn_exec_t:process chfn_t; +dontaudit $1 chfn_t:process { noatsecure siginh rlimitinh }; +allow $1 chfn_t:fd use; +allow chfn_t $1:fd use; +allow chfn_t $1:fifo_file rw_file_perms; +allow chfn_t $1:process sigchld; +') + +define(`usermanage_chfn_transition_depend',` +type chfn_t, chfn_exec_t; +class file { getattr read execute }; +class process { transition noatsecure siginh rlimitinh sigchld }; +class fd use; +class fifo_file rw_file_perms; +') + +######################################## +## +## +## Execute chfn in the chfn domain, and +## allow the specified role the chfn domain. +## +## +## The type of the process performing this action. +## +## +## The role to be allowed the chfn domain. +## +## +## The type of the terminal allow the chfn domain to use. +## +## +## +# +define(`usermanage_chfn_transition_add_role_use_terminal',` +requires_block_template(`$0'_depend) +usermanage_chfn_transition($1) +role $2 types chfn_t; +allow chfn_t $3:chr_file { getattr read write ioctl }; +') + +define(`usermanage_chfn_transition_add_role_use_terminal_depend',` +type chfn_t; +class chr_file { getattr read write ioctl }; +') + +######################################## +## +## +## Execute groupadd in the groupadd domain. +## +## +## The type of the process performing this action. +## +## +## +# +define(`usermanage_groupadd_transition',` +requires_block_template(`$0'_depend) +allow $1 groupadd_exec_t:file { getattr read execute }; +allow $1 groupadd_t:process transition; +type_transition $1 groupadd_exec_t:process groupadd_t; +dontaudit $1 groupadd_t:process { noatsecure siginh rlimitinh }; +allow $1 groupadd_t:fd use; +allow groupadd_t $1:fd use; +allow groupadd_t $1:fifo_file rw_file_perms; +allow groupadd_t $1:process sigchld; +') + +define(`usermanage_groupadd_transition_depend',` +type groupadd_t, groupadd_exec_t; +class file { getattr read execute }; +class process { transition noatsecure siginh rlimitinh sigchld }; +class fd use; +class fifo_file rw_file_perms; +') + +######################################## +## +## +## Execute groupadd in the groupadd domain, and +## allow the specified role the groupadd domain. +## +## +## The type of the process performing this action. +## +## +## The role to be allowed the groupadd domain. +## +## +## The type of the terminal allow the groupadd domain to use. +## +## +## +# +define(`usermanage_groupadd_transition_add_role_use_terminal',` +requires_block_template(`$0'_depend) +usermanage_groupadd_transition($1) +role $2 types groupadd_t; +allow groupadd_t $3:chr_file { getattr read write ioctl }; +') + +define(`usermanage_groupadd_transition_add_role_use_terminal_depend',` +type groupadd_t; +class chr_file { getattr read write ioctl }; +') + +######################################## +## +## +## Execute passwd in the passwd domain. +## +## +## The type of the process performing this action. +## +## +## +# +define(`usermanage_passwd_transition',` +requires_block_template(`$0'_depend) +allow $1 passwd_exec_t:file { getattr read execute }; +allow $1 passwd_t:process transition; +type_transition $1 passwd_exec_t:process passwd_t; +dontaudit $1 passwd_t:process { noatsecure siginh rlimitinh }; +allow $1 passwd_t:fd use; +allow passwd_t $1:fd use; +allow passwd_t $1:fifo_file rw_file_perms; +allow passwd_t $1:process sigchld; +') + +define(`usermanage_passwd_transition_depend',` +type passwd_t, passwd_exec_t; +class file { getattr read execute }; +class process { transition noatsecure siginh rlimitinh sigchld }; +class fd use; +class fifo_file rw_file_perms; +') + +######################################## +## +## +## Execute passwd in the passwd domain, and +## allow the specified role the passwd domain. +## +## +## The type of the process performing this action. +## +## +## The role to be allowed the passwd domain. +## +## +## The type of the terminal allow the passwd domain to use. +## +## +## +# +define(`usermanage_passwd_transition_add_role_use_terminal',` +requires_block_template(`$0'_depend) +usermanage_passwd_transition($1) +role $2 types passwd_t; +allow passwd_t $3:chr_file { getattr read write ioctl }; +') + +define(`usermanage_passwd_transition_add_role_use_terminal_depend',` +type passwd_t; +class chr_file { getattr read write ioctl }; +') + +######################################## +## +## +## Execute useradd in the useradd domain. +## +## +## The type of the process performing this action. +## +## +## +# +define(`usermanage_useradd_transition',` +requires_block_template(`$0'_depend) +allow $1 useradd_exec_t:file { getattr read execute }; +allow $1 useradd_t:process transition; +type_transition $1 useradd_exec_t:process useradd_t; +dontaudit $1 useradd_t:process { noatsecure siginh rlimitinh }; +allow $1 useradd_t:fd use; +allow useradd_t $1:fd use; +allow useradd_t $1:fifo_file rw_file_perms; +allow useradd_t $1:process sigchld; +') + +define(`usermanage_useradd_transition_depend',` +type useradd_t, useradd_exec_t; +class file { getattr read execute }; +class process { transition noatsecure siginh rlimitinh sigchld }; +class fd use; +class fifo_file rw_file_perms; +') + +######################################## +## +## +## Execute useradd in the useradd domain, and +## allow the specified role the useradd domain. +## +## +## The type of the process performing this action. +## +## +## The role to be allowed the useradd domain. +## +## +## The type of the terminal allow the useradd domain to use. +## +## +## +# +define(`usermanage_useradd_transition_add_role_use_terminal',` +requires_block_template(`$0'_depend) +usermanage_useradd_transition($1) +role $2 types useradd_t; +allow useradd_t $3:chr_file { getattr read write ioctl }; +') + +define(`usermanage_useradd_transition_add_role_use_terminal_depend',` +type useradd_t; +class chr_file { getattr read write ioctl }; +') + +##