/
githubmirror
/
libuser
Обзор
Документация
Войти
/
githubmirror
/
libuser
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
libuser-0.56.14
tests/utils_test
202 строки
7 KB
Miloslav Trmač
Finish handling of dubious home directories.
08 дек 2009, 20:13
08 дек 2009, 20:13
21609b3
Код
Авторство
О чём код?
#! /bin/sh # Automated libuser utilities regression tester # # Copyright (c) 2004, 2005, 2008 Red Hat, Inc. All rights reserved. # # This is free software; you can redistribute it and/or modify it under # the terms of the GNU Library General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU Library General Public # License along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # # Author: Miloslav Trmac <mitr@redhat.com> srcdir=$srcdir/tests workdir=$(pwd)/test_utils trap 'status=$?; rm -rf "$workdir"; exit $status' 0 trap '(exit 1); exit 1' 1 2 13 15 rm -rf "$workdir" mkdir "$workdir" # Set up an the environment mkdir "$workdir"/files > "$workdir"/files/passwd > "$workdir"/files/shadow > "$workdir"/files/group > "$workdir"/files/gshadow # Set up the client LIBUSER_CONF=$workdir/libuser.conf export LIBUSER_CONF sed "s|@WORKDIR@|$workdir|g; s|@TOP_BUILDDIR@|$(pwd)|g" \ < "$srcdir"/utils.conf.in > "$LIBUSER_CONF" PATH=$(pwd)/apps:$PATH LARGE_ID=2147483648 ( set -e # lgroupadd: lgroupadd -g "$(expr $LARGE_ID + 110)" group1_1 # untested: -r # lgroupdel: lgroupadd group2_1 lgroupdel group2_1 # lgroupmod: lgroupadd -g "$(expr $LARGE_ID + 310)" group3_1 lgroupmod -A user3_1,user3_2 -g "$(expr $LARGE_ID + 311)" -L \ -M user3_3,user3_4 -n group3_2 -p '01vokOibos3pg' group3_1 lgroupmod -a user3_1,user3_1notexist -m user3_3,user3_2notexist -L group3_2 lgroupadd -g "$(expr $LARGE_ID + 330)" group3_3 lgroupmod -p '!!02yd6IWnPes66' group3_3 lgroupmod -U group3_3 # Handling of GID change for primary and secondary groups lgroupadd -g "$(expr $LARGE_ID + 340)" group3_4 luseradd -M -g group3_4 -u "$(expr $LARGE_ID + 350)" user3_5 lgroupadd -g "$(expr $LARGE_ID + 350)" group3_5 luseradd -M -g group3_5 -u "$(expr $LARGE_ID + 360)" user3_6 lgroupmod -M user3_6 group3_4 lgroupmod -g "$(expr $LARGE_ID + 341)" group3_4 # untested: -P # lchage: lgroupadd -g "$(expr $LARGE_ID + 410)" user4_1 luseradd -M -u "$(expr $LARGE_ID + 410)" user4_1 lchage -d 400 -E 410 -I 420 -m 430 -M 440 -W 450 user4_1 LC_ALL=C lchage -l user4_1 > "$workdir"/lchage_output diff - "$workdir"/lchage_output <<\EOF Account is locked. Minimum: 430 Maximum: 440 Warning: 450 Inactive: 420 Last Change: 02/05/71 Password Expires: 04/20/72 Password Inactive: 06/14/73 Account Expires: 02/15/71 EOF # lchfn: untested (requires system account) # lchsh: untested (requires system account) # lid: lgroupadd -g "$(expr $LARGE_ID + 510)" group5_1 lgroupadd -g "$(expr $LARGE_ID + 520)" group5_2 lgroupadd -g "$(expr $LARGE_ID + 530)" group5_3 luseradd -M -g group5_1 -u "$(expr $LARGE_ID + 510)" user5_1 luseradd -M -g group5_3 -u "$(expr $LARGE_ID + 520)" user5_2 lgroupmod -M user5_1,user5_2 group5_2 lgroupmod -M user5_2 group5_1 lid user5_1 > "$workdir"/lid_output1 diff - "$workdir"/lid_output1 <<EOF group5_1(gid=$(expr $LARGE_ID + 510)) group5_2(gid=$(expr $LARGE_ID + 520)) EOF lid -n user5_1 > "$workdir"/lid_output2 diff - "$workdir"/lid_output2 <<\EOF group5_1 group5_2 EOF lid -g group5_1 > "$workdir"/lid_output3 diff - "$workdir"/lid_output3 <<EOF user5_1(uid=$(expr $LARGE_ID + 510)) user5_2(uid=$(expr $LARGE_ID + 520)) EOF lid -g -n group5_1 > "$workdir"/lid_output4 diff - "$workdir"/lid_output4 <<\EOF user5_1 user5_2 EOF # lnewusers: lgroupadd -g "$(expr $LARGE_ID + 620)" user6_2 lgroupadd -g "$(expr $LARGE_ID + 630)" group6_3 LC_ALL=C lnewusers -M -n 2> "$workdir"/lnewusers_output <<EOF user6_1:password:$(expr $LARGE_ID + 610):$(expr $LARGE_ID + 610):GECOS6_1:HomeDir6_1:Shell6_1 user6_2:password:$(expr $LARGE_ID + 620):::: Invalid line user6_3:password:$(expr $LARGE_ID + 630):$(expr $LARGE_ID + 630)::: user6_4:password:$(expr $LARGE_ID + 640):group6_4::: .:password:$(expr $LARGE_ID + 650):$(expr $LARGE_ID + 650)::: ..:password:$(expr $LARGE_ID + 660):$(expr $LARGE_ID + 660)::: EOF diff - "$workdir"/lnewusers_output <<\EOF Error creating account for `Invalid line': line improperly formatted. Refusing to use dangerous home directory `/home/.' for . by default Refusing to use dangerous home directory `/home/..' for .. by default EOF # lpasswd: untested (requires system account) # luseradd: lgroupadd -g "$(expr $LARGE_ID + 710)" group7_1 luseradd -c GECOS7_1 -d HomeDir7_1 -g group7_1 -M -p '03dgZm5nZvqOc' \ -s Shell7_1 -u "$(expr $LARGE_ID + 710)" user7_1 # untested: -k, -r, -n, -P # Handling numeric user names: default to the same numeric group name lgroupadd -g "$(expr $LARGE_ID + 720)" "$(expr $LARGE_ID + 721)" luseradd -M -u "$(expr $LARGE_ID + 722)" "$(expr $LARGE_ID + 721)" # luserdel: lgroupadd -g "$(expr $LARGE_ID + 810)" group8_1 luseradd -g group8_1 -M user8_1 luserdel user8_1 luseradd -M user8_2 luserdel user8_2 lgroupadd -g "$(expr $LARGE_ID + 830)" user8_3 luseradd -M user8_3 luserdel -G user8_3 # lusermod: lgroupadd -g "$(expr $LARGE_ID + 910)" group9_1 luseradd -g group9_1 -u "$(expr $LARGE_ID + 910)" -M user9_1 lgroupadd -g "$(expr $LARGE_ID + 920)" group9_2 lusermod -c GECOS9_1 -d HomeDir9_1 -g "$(expr $LARGE_ID + 920)" -l user9_2 \ -p '04aqostCGmvZM' -s Shell9_1 -u "$(expr $LARGE_ID + 911)" user9_1 lusermod -L user9_2 lgroupadd -g "$(expr $LARGE_ID + 930)" group9_3 luseradd -g group9_3 -u "$(expr $LARGE_ID + 930)" -M user9_3 lusermod -p '!!05FdoegP8UniQ' user9_3 lusermod -U user9_3 # Handling of username change for primary and secondary groups lgroupadd -g "$(expr $LARGE_ID + 940)" group9_4 lgroupadd -g "$(expr $LARGE_ID + 950)" group9_5 luseradd -g "$(expr $LARGE_ID + 940)" -u "$(expr $LARGE_ID + 940)" -M user9_4 lgroupmod -M user9_4 group9_5 lusermod -l user9_5 user9_4 # lusermod -g warns if the group does not exist lgroupadd -g "$(expr $LARGE_ID + 960)" group9_6 luseradd -g group9_6 -u "$(expr $LARGE_ID + 960)" -M user9_6 LC_ALL=C lusermod -g "$(expr $LARGE_ID + 961)" user9_6 \ 2>"$workdir"/lusermod_output diff - "$workdir"/lusermod_output <<EOF Warning: Group with ID $(expr $LARGE_ID + 961) does not exist. EOF # untested: -m, -P sed 's/^group6_4:x:[0123456789]*:$/group6_4:x:GID:/' < "$workdir"/files/group \ | grep -v '^\.\.\?:' > "$workdir"/group diff -u "$srcdir"/utils_group "$workdir"/group grep -v '^\.\.\?:' < "$workdir"/files/gshadow > "$workdir"/gshadow diff -u "$srcdir"/utils_gshadow "$workdir"/gshadow sed 's/^\(user6_4:x:[^:]*\):[0123456789]*:\(.*\)$/\1:GID:\2/' \ < "$workdir"/files/passwd > "$workdir"/passwd diff -u "$srcdir"/utils_passwd "$workdir"/passwd sed -e 's/^\([^:]*:[^:]*\):[0123456789]\{5,\}:\(.*\)$/\1:DATE:\2/' \ -e 's/^\([^:]*\):\$1\$[^:]*:\(.*\)$/\1:HASH:\2/' \ < "$workdir"/files/shadow \ | grep -v '^\.\.\?:' > "$workdir"/shadow diff -u "$srcdir"/utils_shadow "$workdir"/shadow )