# 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 }; ') ##