1458cbf0aSEnji Cooper 2458cbf0aSEnji Cooper# Import helper functions 3458cbf0aSEnji Cooper. $(atf_get_srcdir)/helper_functions.shin 4458cbf0aSEnji Cooper 5458cbf0aSEnji Cooper 6458cbf0aSEnji Cooper# Test that a user can be deleted when another user is part of this 7458cbf0aSEnji Cooper# user's default group and does not go into an infinate loop. 8458cbf0aSEnji Cooper# PR: 191427 9458cbf0aSEnji Cooperatf_test_case rmuser_seperate_group cleanup 10458cbf0aSEnji Cooperrmuser_seperate_group_head() { 11458cbf0aSEnji Cooper atf_set "timeout" "30" 12458cbf0aSEnji Cooper} 13458cbf0aSEnji Cooperrmuser_seperate_group_body() { 14458cbf0aSEnji Cooper populate_etc_skel 15458cbf0aSEnji Cooper ${PW} useradd test || atf_fail "Creating test user" 16458cbf0aSEnji Cooper ${PW} groupmod test -M 'test,root' || \ 17458cbf0aSEnji Cooper atf_fail "Modifying the group" 18458cbf0aSEnji Cooper ${PW} userdel test || atf_fail "Delete the test user" 19458cbf0aSEnji Cooper} 20458cbf0aSEnji Cooper 21458cbf0aSEnji Cooper 22458cbf0aSEnji Cooperatf_test_case user_do_not_try_to_delete_root_if_user_unknown 23458cbf0aSEnji Cooperuser_do_not_try_to_delete_root_if_user_unknown_head() { 24458cbf0aSEnji Cooper atf_set "descr" \ 25458cbf0aSEnji Cooper "Make sure not to try to remove root if deleting an unknown user" 26458cbf0aSEnji Cooper} 27458cbf0aSEnji Cooperuser_do_not_try_to_delete_root_if_user_unknown_body() { 28458cbf0aSEnji Cooper populate_etc_skel 29458cbf0aSEnji Cooper atf_check -e inline:"pw: Bad id 'plop': invalid\n" -s exit:64 -x \ 30458cbf0aSEnji Cooper ${PW} userdel -u plop 31458cbf0aSEnji Cooper} 32458cbf0aSEnji Cooper 33458cbf0aSEnji Cooperatf_test_case delete_files 34458cbf0aSEnji Cooperdelete_files_body() { 35458cbf0aSEnji Cooper populate_root_etc_skel 36458cbf0aSEnji Cooper 37458cbf0aSEnji Cooper mkdir -p ${HOME}/skel 38458cbf0aSEnji Cooper touch ${HOME}/skel/a 39458cbf0aSEnji Cooper mkdir -p ${HOME}/home 40458cbf0aSEnji Cooper mkdir -p ${HOME}/var/mail 41458cbf0aSEnji Cooper atf_check -s exit:0 ${RPW} useradd foo -k /skel -m 42458cbf0aSEnji Cooper test -d ${HOME}/home || atf_fail "Fail to create home directory" 43458cbf0aSEnji Cooper test -f ${HOME}/var/mail/foo || atf_fail "Mail file not created" 44458cbf0aSEnji Cooper atf_check -s exit:0 ${RPW} userdel foo -r 45458cbf0aSEnji Cooper if test -f ${HOME}/var/mail/foo; then 46458cbf0aSEnji Cooper atf_fail "Mail file not removed" 47458cbf0aSEnji Cooper fi 48458cbf0aSEnji Cooper} 49458cbf0aSEnji Cooper 50458cbf0aSEnji Cooperatf_test_case delete_numeric_name 51458cbf0aSEnji Cooperdelete_numeric_name_body() { 52458cbf0aSEnji Cooper populate_etc_skel 53458cbf0aSEnji Cooper 54458cbf0aSEnji Cooper atf_check ${PW} useradd -n foo -u 4001 55458cbf0aSEnji Cooper atf_check -e inline:"pw: no such user \`4001'\n" -s exit:67 \ 56458cbf0aSEnji Cooper ${PW} userdel -n 4001 57458cbf0aSEnji Cooper} 58458cbf0aSEnji Cooper 59458cbf0aSEnji Cooperatf_test_case home_not_a_dir 60458cbf0aSEnji Cooperhome_not_a_dir_body() { 61458cbf0aSEnji Cooper populate_root_etc_skel 62458cbf0aSEnji Cooper touch ${HOME}/foo 63458cbf0aSEnji Cooper atf_check ${RPW} useradd foo -d /foo 64458cbf0aSEnji Cooper atf_check ${RPW} userdel foo -r 65458cbf0aSEnji Cooper} 66458cbf0aSEnji Cooper 67*a75f9261SBaptiste Daroussinatf_test_case home_shared 68*a75f9261SBaptiste Daroussinhome_shared_body() { 69*a75f9261SBaptiste Daroussin populate_root_etc_skel 70*a75f9261SBaptiste Daroussin mkdir ${HOME}/shared 71*a75f9261SBaptiste Daroussin atf_check ${RPW} useradd -n testuser1 -d /shared 72*a75f9261SBaptiste Daroussin atf_check ${RPW} useradd -n testuser2 -d /shared 73*a75f9261SBaptiste Daroussin atf_check ${RPW} userdel -n testuser1 -r 74*a75f9261SBaptiste Daroussin test -d ${HOME}/shared || atf_fail "Shared home has been removed" 75*a75f9261SBaptiste Daroussin} 76*a75f9261SBaptiste Daroussin 77*a75f9261SBaptiste Daroussinatf_test_case home_regular_dir 78*a75f9261SBaptiste Daroussinhome_regular_dir_body() { 79*a75f9261SBaptiste Daroussin populate_root_etc_skel 80*a75f9261SBaptiste Daroussin atf_check ${RPW} useradd -n foo -d /foo 81*a75f9261SBaptiste Daroussin atf_check ${RPW} userdel -n foo -r 82*a75f9261SBaptiste Daroussin [ ! -d ${HOME}/foo ] || atf_fail "Home has not been removed" 83*a75f9261SBaptiste Daroussin} 84*a75f9261SBaptiste Daroussin 85458cbf0aSEnji Cooperatf_init_test_cases() { 86458cbf0aSEnji Cooper atf_add_test_case rmuser_seperate_group 87458cbf0aSEnji Cooper atf_add_test_case user_do_not_try_to_delete_root_if_user_unknown 88458cbf0aSEnji Cooper atf_add_test_case delete_files 89458cbf0aSEnji Cooper atf_add_test_case delete_numeric_name 90458cbf0aSEnji Cooper atf_add_test_case home_not_a_dir 91*a75f9261SBaptiste Daroussin atf_add_test_case home_shared 92*a75f9261SBaptiste Daroussin atf_add_test_case home_regular_dir 93458cbf0aSEnji Cooper} 94