1#! /bin/sh 2 3# Copyright (c) 2012 FUJITSU LIMITED 4# 5# This program is free software; you can redistribute it and/or modify 6# it under the terms of the GNU General Public License as published by 7# the Free Software Foundation; either version 2 of the License, or 8# (at your option) any later version. 9# 10# This program is distributed in the hope that it will be useful, 11# but WITHOUT ANY WARRANTY; without even the implied warranty of 12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See 13# the GNU General Public License for more details. 14# 15# You should have received a copy of the GNU General Public License 16# along with this program; if not, write to the Free Software 17# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18# 19# Description: Test override_homedir in the configuration file. 20# Author: Peng Haitao <penght@cn.fujitsu.com> 21# History: 2012/02/17 - Created. 22# 23 24. ./sssd-lib.sh || exit 1 25 26sssd_case1() 27{ 28 export TST_COUNT=1 29 30 tst_resm TINFO "test override_homedir with absolute path in [nss]" 31 32 # Create the configuration file specific to this test case. 33 make_config_file 34 sed -i -e "/\[nss\]/ a\override_homedir = $LTPTMP" $CONFIG_FILE 35 sleep 1 36 37 getent passwd $username@LOCAL | grep "$LTPTMP" >/dev/null 2>&1 38 if [ $? -eq 0 ]; then 39 tst_resm TFAIL "sssd: user home dir should be not $LTPTMP." 40 : $(( TFAILCNT += 1 )) 41 return $TFAILCNT 42 fi 43 44 restart_sssd_daemon 45 46 getent passwd $username@LOCAL | grep "$LTPTMP" >/dev/null 2>&1 47 if [ $? -eq 0 ]; then 48 tst_resm TPASS "sssd: user home dir is $LTPTMP." 49 else 50 tst_resm TFAIL "sssd: user home dir should be $LTPTMP." 51 : $(( TFAILCNT += 1 )) 52 return $TFAILCNT 53 fi 54 55 return 0 56} 57 58sssd_case2() 59{ 60 export TST_COUNT=2 61 62 tst_resm TINFO "test override_homedir with template in [domain/LOCAL]" 63 64 # Create the configuration file specific to this test case. 65 make_config_file 66 sed -i -e "/\[domain\/LOCAL\]/ a\override_homedir = $LTPTMP/%u_%U@%d" \ 67 $CONFIG_FILE 68 sleep 1 69 70 uid=`id -u $username` 71 home_dir="$LTPTMP/${username}_$uid@LOCAL" 72 getent passwd $username@LOCAL | grep "$home_dir" >/dev/null 2>&1 73 if [ $? -eq 0 ]; then 74 tst_resm TFAIL "sssd: user home dir should be not $home_dir." 75 : $(( TFAILCNT += 1 )) 76 return $TFAILCNT 77 fi 78 79 restart_sssd_daemon 80 81 getent passwd $username@LOCAL | grep "$home_dir" >/dev/null 2>&1 82 if [ $? -eq 0 ]; then 83 tst_resm TPASS "sssd: user home dir is $home_dir." 84 else 85 tst_resm TFAIL "sssd: user home dir should be $home_dir." 86 : $(( TFAILCNT += 1 )) 87 return $TFAILCNT 88 fi 89 90 return 0 91} 92 93sssd_case3() 94{ 95 export TST_COUNT=3 96 97 tst_resm TINFO "test override_homedir with absolute path in [nss]" 98 99 # Create the configuration file specific to this test case. 100 make_config_file 101 sed -i -e "/\[nss\]/ a\override_homedir = $LTPTMP/%f" $CONFIG_FILE 102 sleep 1 103 104 home_dir="$LTPTMP/$username@LOCAL" 105 getent passwd $username@LOCAL | grep "$home_dir" >/dev/null 2>&1 106 if [ $? -eq 0 ]; then 107 tst_resm TFAIL "sssd: user home dir should be not $home_dir." 108 : $(( TFAILCNT += 1 )) 109 return $TFAILCNT 110 fi 111 112 restart_sssd_daemon 113 114 getent passwd $username@LOCAL | grep "$home_dir" >/dev/null 2>&1 115 if [ $? -eq 0 ]; then 116 tst_resm TPASS "sssd: user home dir is $home_dir." 117 else 118 tst_resm TFAIL "sssd: user home dir should be $home_dir." 119 : $(( TFAILCNT += 1 )) 120 return $TFAILCNT 121 fi 122 123 return 0 124} 125 126export TST_TOTAL=3 127export TCID=sssd01 128 129TFAILCNT=0 130username="sssd_test_user" 131 132make_config_file 133# make sure config file is OK 134sleep 1 135restart_sssd_daemon 136sss_useradd $username 137 138for i in $(seq 1 $TST_TOTAL); do 139 sssd_case$i 140done 141 142sss_userdel $username 143cleanup ${TFAILCNT:=0} 144