mirror of
https://github.com/samba-team/samba.git
synced 2024-12-24 21:34:56 +03:00
f025cc1a12
shfmt -f python/ | xargs shfmt -w -p -i 0 -fn Signed-off-by: Andreas Schneider <asn@samba.org> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
78 lines
2.4 KiB
Bash
Executable File
78 lines
2.4 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
PYTHON="$1"
|
|
PAM_WRAPPER_SO_PATH="$2"
|
|
PAM_SET_ITEMS_SO_PATH="$3"
|
|
shift 3
|
|
|
|
DOMAIN="$1"
|
|
export DOMAIN
|
|
USERNAME="$2"
|
|
export USERNAME
|
|
PASSWORD="$3"
|
|
export PASSWORD
|
|
NEWPASSWORD="$4"
|
|
export NEWPASSWORD
|
|
PAM_OPTIONS="$5"
|
|
export PAM_OPTIONS
|
|
CREATE_USER="$6"
|
|
shift 6
|
|
|
|
samba_bindir="$BINDIR"
|
|
samba_tool="$samba_bindir/samba-tool"
|
|
|
|
if [ "$CREATE_USER" = yes ]; then
|
|
CREATE_SERVER="$1"
|
|
CREATE_USERNAME="$2"
|
|
CREATE_PASSWORD="$3"
|
|
shift 3
|
|
$PYTHON $samba_tool user create "$USERNAME" "$PASSWORD" -H "ldap://$CREATE_SERVER" -U "$CREATE_USERNAME%$CREATE_PASSWORD"
|
|
# reset password policies beside of minimum password age of 0 days
|
|
$PYTHON $samba_tool domain passwordsettings set --complexity=default --history-length=default --min-pwd-length=default --min-pwd-age=0 --max-pwd-age=default -H "ldap://$CREATE_SERVER" -U "$CREATE_USERNAME%$CREATE_PASSWORD"
|
|
fi
|
|
|
|
PAM_WRAPPER_PATH="$BINDIR/default/third_party/pam_wrapper"
|
|
|
|
pam_winbind="$BINDIR/plugins/pam_winbind.so"
|
|
service_dir="$SELFTEST_TMPDIR/pam_services"
|
|
service_file="$service_dir/samba"
|
|
|
|
mkdir $service_dir
|
|
echo "auth required $pam_winbind debug debug_state $PAM_OPTIONS" >$service_file
|
|
echo "account required $pam_winbind debug debug_state $PAM_OPTIONS" >>$service_file
|
|
echo "password required $PAM_SET_ITEMS_SO_PATH" >>$service_file
|
|
echo "password required $pam_winbind debug debug_state $PAM_OPTIONS" >>$service_file
|
|
echo "session required $pam_winbind debug debug_state $PAM_OPTIONS" >>$service_file
|
|
|
|
PAM_WRAPPER_SERVICE_DIR="$service_dir"
|
|
export PAM_WRAPPER_SERVICE_DIR
|
|
LD_PRELOAD="$LD_PRELOAD:$PAM_WRAPPER_SO_PATH"
|
|
export LD_PRELOAD
|
|
|
|
PAM_WRAPPER_DEBUGLEVEL=${PAM_WRAPPER_DEBUGLEVEL:="2"}
|
|
export PAM_WRAPPER_DEBUGLEVEL
|
|
|
|
case $PAM_OPTIONS in
|
|
*use_authtok*)
|
|
PAM_AUTHTOK="$NEWPASSWORD"
|
|
export PAM_AUTHTOK
|
|
;;
|
|
*try_authtok*)
|
|
PAM_AUTHTOK="$NEWPASSWORD"
|
|
export PAM_AUTHTOK
|
|
;;
|
|
esac
|
|
|
|
PAM_WRAPPER="1" PYTHONPATH="$PYTHONPATH:$PAM_WRAPPER_PATH:$(dirname $0)" $PYTHON -m samba.subunit.run samba.tests.pam_winbind_chauthtok
|
|
exit_code=$?
|
|
|
|
rm -rf $service_dir
|
|
|
|
if [ "$CREATE_USER" = yes ]; then
|
|
$PYTHON $samba_tool user delete "$USERNAME" -H "ldap://$CREATE_SERVER" -U "$CREATE_USERNAME%$CREATE_PASSWORD"
|
|
# reset password policies
|
|
$PYTHON $samba_tool domain passwordsettings set --complexity=default --history-length=default --min-pwd-length=default --min-pwd-age=default --max-pwd-age=default -H "ldap://$CREATE_SERVER" -U "$CREATE_USERNAME%$CREATE_PASSWORD"
|
|
fi
|
|
|
|
exit $exit_code
|