From 0fda4df4f1a0be86dead68b306cb5a219667ccb5 Mon Sep 17 00:00:00 2001 From: Chris Hofstaedtler Date: Sat, 22 Jun 2024 17:34:25 +0200 Subject: [PATCH] New upstream version 4.15.2 --- Makefile.am | 1 + Makefile.in | 3 +- aclocal.m4 | 99 +- configure | 906 +++++---- configure.ac | 13 +- contrib/Makefile.in | 1 + doc/Makefile.in | 1 + etc/Makefile.in | 1 + etc/pam.d/Makefile.in | 1 + etc/shadow-maint/Makefile.in | 1 + lib/Makefile.am | 6 +- lib/Makefile.in | 142 +- lib/alloc.h | 37 +- lib/atoi/a2i.c | 46 + lib/atoi/a2i.h | 386 ++++ lib/atoi/str2i.c | 18 + lib/atoi/str2i.h | 108 ++ lib/atoi/strtou_noneg.c | 5 - lib/atoi/strtou_noneg.h | 31 +- lib/cast.h | 8 +- lib/chkname.c | 35 +- lib/chkname.h | 9 +- lib/csrand.c | 12 +- lib/env.c | 28 +- lib/get_gid.c | 6 +- lib/get_pid.c | 19 +- lib/get_uid.c | 6 +- lib/getdef.c | 9 +- lib/getgr_nam_gid.c | 6 +- lib/getlong.c | 36 - lib/getrange.c | 97 +- lib/gettime.c | 56 +- lib/getulong.c | 37 - lib/idmapping.c | 8 +- lib/limits.c | 24 +- lib/port.c | 2 +- lib/prefix_flag.c | 10 +- lib/prototypes.h | 8 - lib/rlogin.c | 7 +- lib/sgetspent.c | 15 +- lib/shadow.c | 16 +- lib/strtoday.c | 5 +- lib/subordinateio.c | 5 +- libsubid/Makefile.in | 1 + ltmain.sh | 855 +++++---- m4/libtool.m4 | 229 ++- m4/ltoptions.m4 | 4 +- m4/ltsugar.m4 | 2 +- m4/ltversion.m4 | 13 +- m4/lt~obsolete.m4 | 4 +- man/Makefile.in | 1 + man/config.xml | 2 +- man/cs/Makefile.in | 1 + man/da/Makefile.in | 1 + man/da/man1/chfn.1 | 6 +- man/da/man1/groups.1 | 6 +- man/da/man1/id.1 | 6 +- man/da/man1/newgrp.1 | 6 +- man/da/man1/sg.1 | 6 +- man/da/man5/gshadow.5 | 6 +- man/da/man8/groupdel.8 | 6 +- man/da/man8/logoutd.8 | 6 +- man/da/man8/nologin.8 | 6 +- man/da/man8/vipw.8 | 6 +- man/de/Makefile.in | 1 + man/de/man1/chage.1 | 6 +- man/de/man1/chfn.1 | 6 +- man/de/man1/chsh.1 | 6 +- man/de/man1/expiry.1 | 6 +- man/de/man1/gpasswd.1 | 6 +- man/de/man1/groups.1 | 6 +- man/de/man1/id.1 | 6 +- man/de/man1/login.1 | 6 +- man/de/man1/newgrp.1 | 6 +- man/de/man1/passwd.1 | 6 +- man/de/man1/sg.1 | 6 +- man/de/man1/su.1 | 6 +- man/de/man3/shadow.3 | 6 +- man/de/man5/faillog.5 | 6 +- man/de/man5/gshadow.5 | 6 +- man/de/man5/limits.5 | 6 +- man/de/man5/login.access.5 | 6 +- man/de/man5/login.defs.5 | 6 +- man/de/man5/passwd.5 | 6 +- man/de/man5/porttime.5 | 6 +- man/de/man5/shadow.5 | 6 +- man/de/man5/suauth.5 | 6 +- man/de/man8/chgpasswd.8 | 6 +- man/de/man8/chpasswd.8 | 6 +- man/de/man8/faillog.8 | 6 +- man/de/man8/groupadd.8 | 6 +- man/de/man8/groupdel.8 | 6 +- man/de/man8/groupmems.8 | 6 +- man/de/man8/groupmod.8 | 6 +- man/de/man8/grpck.8 | 6 +- man/de/man8/lastlog.8 | 8 +- man/de/man8/logoutd.8 | 6 +- man/de/man8/newusers.8 | 6 +- man/de/man8/nologin.8 | 6 +- man/de/man8/pwck.8 | 6 +- man/de/man8/pwconv.8 | 6 +- man/de/man8/sulogin.8 | 6 +- man/de/man8/useradd.8 | 8 +- man/de/man8/userdel.8 | 6 +- man/de/man8/usermod.8 | 6 +- man/de/man8/vipw.8 | 6 +- man/es/Makefile.in | 1 + man/fi/Makefile.in | 1 + man/fr/Makefile.in | 1 + man/fr/man1/chage.1 | 6 +- man/fr/man1/chfn.1 | 6 +- man/fr/man1/chsh.1 | 6 +- man/fr/man1/expiry.1 | 6 +- man/fr/man1/gpasswd.1 | 6 +- man/fr/man1/groups.1 | 6 +- man/fr/man1/id.1 | 6 +- man/fr/man1/login.1 | 6 +- man/fr/man1/newgidmap.1 | 10 +- man/fr/man1/newgrp.1 | 6 +- man/fr/man1/newuidmap.1 | 10 +- man/fr/man1/passwd.1 | 6 +- man/fr/man1/sg.1 | 6 +- man/fr/man1/su.1 | 6 +- man/fr/man3/shadow.3 | 6 +- man/fr/man5/faillog.5 | 6 +- man/fr/man5/gshadow.5 | 6 +- man/fr/man5/limits.5 | 6 +- man/fr/man5/login.access.5 | 6 +- man/fr/man5/login.defs.5 | 6 +- man/fr/man5/passwd.5 | 6 +- man/fr/man5/porttime.5 | 6 +- man/fr/man5/shadow.5 | 6 +- man/fr/man5/suauth.5 | 6 +- man/fr/man5/subgid.5 | 6 +- man/fr/man5/subuid.5 | 6 +- man/fr/man8/chgpasswd.8 | 6 +- man/fr/man8/chpasswd.8 | 6 +- man/fr/man8/faillog.8 | 6 +- man/fr/man8/groupadd.8 | 6 +- man/fr/man8/groupdel.8 | 6 +- man/fr/man8/groupmems.8 | 6 +- man/fr/man8/groupmod.8 | 6 +- man/fr/man8/grpck.8 | 6 +- man/fr/man8/lastlog.8 | 8 +- man/fr/man8/logoutd.8 | 6 +- man/fr/man8/newusers.8 | 6 +- man/fr/man8/nologin.8 | 6 +- man/fr/man8/pwck.8 | 6 +- man/fr/man8/pwconv.8 | 6 +- man/fr/man8/sulogin.8 | 6 +- man/fr/man8/useradd.8 | 8 +- man/fr/man8/userdel.8 | 6 +- man/fr/man8/usermod.8 | 6 +- man/fr/man8/vipw.8 | 6 +- man/hu/Makefile.in | 1 + man/id/Makefile.in | 1 + man/it/Makefile.in | 1 + man/it/man1/chage.1 | 6 +- man/it/man1/chfn.1 | 6 +- man/it/man1/chsh.1 | 6 +- man/it/man1/expiry.1 | 6 +- man/it/man1/gpasswd.1 | 6 +- man/it/man1/groups.1 | 6 +- man/it/man1/id.1 | 6 +- man/it/man1/login.1 | 6 +- man/it/man1/newgrp.1 | 6 +- man/it/man1/passwd.1 | 6 +- man/it/man1/sg.1 | 6 +- man/it/man1/su.1 | 6 +- man/it/man3/shadow.3 | 6 +- man/it/man5/faillog.5 | 6 +- man/it/man5/gshadow.5 | 6 +- man/it/man5/limits.5 | 6 +- man/it/man5/login.access.5 | 6 +- man/it/man5/login.defs.5 | 6 +- man/it/man5/passwd.5 | 6 +- man/it/man5/porttime.5 | 6 +- man/it/man5/shadow.5 | 6 +- man/it/man5/suauth.5 | 6 +- man/it/man8/chgpasswd.8 | 6 +- man/it/man8/chpasswd.8 | 6 +- man/it/man8/faillog.8 | 6 +- man/it/man8/groupadd.8 | 6 +- man/it/man8/groupdel.8 | 6 +- man/it/man8/groupmems.8 | 6 +- man/it/man8/groupmod.8 | 6 +- man/it/man8/grpck.8 | 6 +- man/it/man8/lastlog.8 | 8 +- man/it/man8/logoutd.8 | 6 +- man/it/man8/newusers.8 | 6 +- man/it/man8/nologin.8 | 6 +- man/it/man8/pwck.8 | 6 +- man/it/man8/pwconv.8 | 6 +- man/it/man8/sulogin.8 | 6 +- man/it/man8/useradd.8 | 8 +- man/it/man8/userdel.8 | 6 +- man/it/man8/usermod.8 | 6 +- man/it/man8/vipw.8 | 6 +- man/ja/Makefile.in | 1 + man/ko/Makefile.in | 1 + man/lastlog.8.xml | 4 +- man/man1/chage.1 | 6 +- man/man1/chfn.1 | 6 +- man/man1/chsh.1 | 6 +- man/man1/expiry.1 | 6 +- man/man1/getsubids.1 | 6 +- man/man1/gpasswd.1 | 6 +- man/man1/groups.1 | 6 +- man/man1/id.1 | 6 +- man/man1/login.1 | 6 +- man/man1/newgidmap.1 | 10 +- man/man1/newgrp.1 | 6 +- man/man1/newuidmap.1 | 10 +- man/man1/passwd.1 | 6 +- man/man1/sg.1 | 6 +- man/man1/su.1 | 6 +- man/man3/shadow.3 | 6 +- man/man5/faillog.5 | 6 +- man/man5/gshadow.5 | 6 +- man/man5/limits.5 | 6 +- man/man5/login.access.5 | 6 +- man/man5/login.defs.5 | 6 +- man/man5/passwd.5 | 6 +- man/man5/porttime.5 | 6 +- man/man5/shadow.5 | 6 +- man/man5/suauth.5 | 6 +- man/man5/subgid.5 | 6 +- man/man5/subuid.5 | 6 +- man/man8/chgpasswd.8 | 6 +- man/man8/chpasswd.8 | 6 +- man/man8/faillog.8 | 6 +- man/man8/groupadd.8 | 6 +- man/man8/groupdel.8 | 6 +- man/man8/groupmems.8 | 6 +- man/man8/groupmod.8 | 6 +- man/man8/grpck.8 | 6 +- man/man8/lastlog.8 | 8 +- man/man8/logoutd.8 | 6 +- man/man8/newusers.8 | 6 +- man/man8/nologin.8 | 6 +- man/man8/pwck.8 | 6 +- man/man8/pwconv.8 | 6 +- man/man8/sulogin.8 | 6 +- man/man8/useradd.8 | 8 +- man/man8/userdel.8 | 6 +- man/man8/usermod.8 | 6 +- man/man8/vipw.8 | 6 +- man/newgidmap.1.xml | 4 +- man/newuidmap.1.xml | 4 +- man/pl/Makefile.in | 1 + man/pl/man1/chage.1 | 6 +- man/pl/man1/chsh.1 | 6 +- man/pl/man1/expiry.1 | 6 +- man/pl/man1/groups.1 | 6 +- man/pl/man1/id.1 | 6 +- man/pl/man1/newgrp.1 | 6 +- man/pl/man1/sg.1 | 6 +- man/pl/man3/shadow.3 | 6 +- man/pl/man5/faillog.5 | 6 +- man/pl/man5/porttime.5 | 6 +- man/pl/man8/faillog.8 | 6 +- man/pl/man8/groupadd.8 | 6 +- man/pl/man8/groupdel.8 | 6 +- man/pl/man8/groupmems.8 | 6 +- man/pl/man8/groupmod.8 | 6 +- man/pl/man8/grpck.8 | 6 +- man/pl/man8/lastlog.8 | 8 +- man/pl/man8/logoutd.8 | 6 +- man/pl/man8/userdel.8 | 6 +- man/pl/man8/usermod.8 | 6 +- man/pl/man8/vipw.8 | 6 +- man/po/da.po | 4 +- man/po/de.po | 4 +- man/po/fr.po | 4 +- man/po/it.po | 4 +- man/po/pl.po | 2 +- man/po/ru.po | 4 +- man/po/shadow-man-pages.pot | 2 +- man/po/sv.po | 2 +- man/po/uk.po | 4 +- man/po/zh_CN.po | 4 +- man/pt_BR/Makefile.in | 1 + man/ru/Makefile.in | 1 + man/ru/man1/chage.1 | 6 +- man/ru/man1/chfn.1 | 6 +- man/ru/man1/chsh.1 | 6 +- man/ru/man1/expiry.1 | 6 +- man/ru/man1/gpasswd.1 | 6 +- man/ru/man1/groups.1 | 6 +- man/ru/man1/id.1 | 6 +- man/ru/man1/login.1 | 6 +- man/ru/man1/newgrp.1 | 6 +- man/ru/man1/passwd.1 | 6 +- man/ru/man1/sg.1 | 6 +- man/ru/man1/su.1 | 6 +- man/ru/man3/shadow.3 | 6 +- man/ru/man5/faillog.5 | 6 +- man/ru/man5/gshadow.5 | 6 +- man/ru/man5/limits.5 | 6 +- man/ru/man5/login.access.5 | 6 +- man/ru/man5/login.defs.5 | 6 +- man/ru/man5/passwd.5 | 6 +- man/ru/man5/porttime.5 | 6 +- man/ru/man5/shadow.5 | 6 +- man/ru/man5/suauth.5 | 6 +- man/ru/man8/chgpasswd.8 | 6 +- man/ru/man8/chpasswd.8 | 6 +- man/ru/man8/faillog.8 | 6 +- man/ru/man8/groupadd.8 | 6 +- man/ru/man8/groupdel.8 | 6 +- man/ru/man8/groupmems.8 | 6 +- man/ru/man8/groupmod.8 | 6 +- man/ru/man8/grpck.8 | 6 +- man/ru/man8/lastlog.8 | 8 +- man/ru/man8/logoutd.8 | 6 +- man/ru/man8/newusers.8 | 6 +- man/ru/man8/nologin.8 | 6 +- man/ru/man8/pwck.8 | 6 +- man/ru/man8/pwconv.8 | 6 +- man/ru/man8/sulogin.8 | 6 +- man/ru/man8/useradd.8 | 8 +- man/ru/man8/userdel.8 | 6 +- man/ru/man8/usermod.8 | 6 +- man/ru/man8/vipw.8 | 6 +- man/sv/Makefile.in | 1 + man/sv/man1/chage.1 | 6 +- man/sv/man1/chsh.1 | 6 +- man/sv/man1/expiry.1 | 6 +- man/sv/man1/groups.1 | 6 +- man/sv/man1/id.1 | 6 +- man/sv/man1/newgrp.1 | 6 +- man/sv/man1/passwd.1 | 6 +- man/sv/man1/sg.1 | 6 +- man/sv/man3/shadow.3 | 6 +- man/sv/man5/faillog.5 | 6 +- man/sv/man5/gshadow.5 | 6 +- man/sv/man5/limits.5 | 6 +- man/sv/man5/passwd.5 | 6 +- man/sv/man5/porttime.5 | 6 +- man/sv/man5/suauth.5 | 6 +- man/sv/man8/faillog.8 | 6 +- man/sv/man8/groupadd.8 | 6 +- man/sv/man8/groupdel.8 | 6 +- man/sv/man8/groupmems.8 | 6 +- man/sv/man8/groupmod.8 | 6 +- man/sv/man8/grpck.8 | 6 +- man/sv/man8/lastlog.8 | 8 +- man/sv/man8/logoutd.8 | 6 +- man/sv/man8/nologin.8 | 6 +- man/sv/man8/pwck.8 | 6 +- man/sv/man8/userdel.8 | 6 +- man/sv/man8/vipw.8 | 6 +- man/tr/Makefile.in | 1 + man/uk/Makefile.in | 1 + man/uk/man1/chage.1 | 6 +- man/uk/man1/chfn.1 | 6 +- man/uk/man1/chsh.1 | 6 +- man/uk/man1/expiry.1 | 6 +- man/uk/man1/gpasswd.1 | 6 +- man/uk/man1/groups.1 | 6 +- man/uk/man1/id.1 | 6 +- man/uk/man1/login.1 | 6 +- man/uk/man1/newgrp.1 | 6 +- man/uk/man1/passwd.1 | 6 +- man/uk/man1/sg.1 | 6 +- man/uk/man1/su.1 | 6 +- man/uk/man3/shadow.3 | 6 +- man/uk/man5/faillog.5 | 6 +- man/uk/man5/gshadow.5 | 6 +- man/uk/man5/login.access.5 | 6 +- man/uk/man5/login.defs.5 | 6 +- man/uk/man5/passwd.5 | 6 +- man/uk/man5/porttime.5 | 6 +- man/uk/man5/shadow.5 | 6 +- man/uk/man5/suauth.5 | 6 +- man/uk/man8/chgpasswd.8 | 6 +- man/uk/man8/chpasswd.8 | 6 +- man/uk/man8/faillog.8 | 6 +- man/uk/man8/groupadd.8 | 6 +- man/uk/man8/groupdel.8 | 6 +- man/uk/man8/groupmems.8 | 6 +- man/uk/man8/groupmod.8 | 6 +- man/uk/man8/grpck.8 | 6 +- man/uk/man8/lastlog.8 | 12 +- man/uk/man8/logoutd.8 | 6 +- man/uk/man8/newusers.8 | 6 +- man/uk/man8/nologin.8 | 6 +- man/uk/man8/pwck.8 | 6 +- man/uk/man8/pwconv.8 | 6 +- man/uk/man8/sulogin.8 | 6 +- man/uk/man8/useradd.8 | 8 +- man/uk/man8/userdel.8 | 6 +- man/uk/man8/usermod.8 | 6 +- man/uk/man8/vipw.8 | 6 +- man/useradd.8.xml | 2 +- man/zh_CN/Makefile.in | 1 + man/zh_CN/man1/chage.1 | 6 +- man/zh_CN/man1/chfn.1 | 6 +- man/zh_CN/man1/chsh.1 | 6 +- man/zh_CN/man1/expiry.1 | 6 +- man/zh_CN/man1/gpasswd.1 | 6 +- man/zh_CN/man1/groups.1 | 6 +- man/zh_CN/man1/id.1 | 6 +- man/zh_CN/man1/login.1 | 6 +- man/zh_CN/man1/newgrp.1 | 6 +- man/zh_CN/man1/passwd.1 | 6 +- man/zh_CN/man1/sg.1 | 6 +- man/zh_CN/man1/su.1 | 6 +- man/zh_CN/man3/shadow.3 | 6 +- man/zh_CN/man5/faillog.5 | 6 +- man/zh_CN/man5/gshadow.5 | 6 +- man/zh_CN/man5/limits.5 | 6 +- man/zh_CN/man5/login.access.5 | 6 +- man/zh_CN/man5/login.defs.5 | 6 +- man/zh_CN/man5/passwd.5 | 6 +- man/zh_CN/man5/porttime.5 | 6 +- man/zh_CN/man5/shadow.5 | 6 +- man/zh_CN/man5/suauth.5 | 6 +- man/zh_CN/man8/chgpasswd.8 | 6 +- man/zh_CN/man8/chpasswd.8 | 6 +- man/zh_CN/man8/faillog.8 | 6 +- man/zh_CN/man8/groupadd.8 | 6 +- man/zh_CN/man8/groupdel.8 | 6 +- man/zh_CN/man8/groupmems.8 | 6 +- man/zh_CN/man8/groupmod.8 | 6 +- man/zh_CN/man8/grpck.8 | 6 +- man/zh_CN/man8/lastlog.8 | 8 +- man/zh_CN/man8/logoutd.8 | 6 +- man/zh_CN/man8/newusers.8 | 6 +- man/zh_CN/man8/nologin.8 | 6 +- man/zh_CN/man8/pwck.8 | 6 +- man/zh_CN/man8/pwconv.8 | 6 +- man/zh_CN/man8/sulogin.8 | 6 +- man/zh_CN/man8/useradd.8 | 8 +- man/zh_CN/man8/userdel.8 | 6 +- man/zh_CN/man8/usermod.8 | 6 +- man/zh_CN/man8/vipw.8 | 6 +- man/zh_TW/Makefile.in | 1 + po/POTFILES.in | 1 - po/bs.po | 9 +- po/ca.gmo | Bin 64976 -> 64794 bytes po/ca.po | 16 +- po/cs.gmo | Bin 67409 -> 67218 bytes po/cs.po | 16 +- po/da.gmo | Bin 60646 -> 60496 bytes po/da.po | 16 +- po/de.gmo | Bin 66523 -> 66320 bytes po/de.po | 16 +- po/dz.gmo | Bin 30906 -> 30605 bytes po/dz.po | 16 +- po/el.gmo | Bin 81634 -> 81341 bytes po/el.po | 16 +- po/es.gmo | Bin 58487 -> 58297 bytes po/es.po | 18 +- po/eu.gmo | Bin 46078 -> 45911 bytes po/eu.po | 16 +- po/fi.gmo | Bin 18037 -> 17856 bytes po/fi.po | 16 +- po/fr.gmo | Bin 85418 -> 85223 bytes po/fr.po | 17 +- po/gl.gmo | Bin 18133 -> 17915 bytes po/gl.po | 16 +- po/he.gmo | Bin 4599 -> 4540 bytes po/he.po | 12 +- po/hu.gmo | Bin 17828 -> 17635 bytes po/hu.po | 16 +- po/id.gmo | Bin 15311 -> 15129 bytes po/id.po | 16 +- po/it.gmo | Bin 20307 -> 20119 bytes po/it.po | 16 +- po/ja.gmo | Bin 69894 -> 69659 bytes po/ja.po | 16 +- po/ka.gmo | Bin 127184 -> 126863 bytes po/ka.po | 16 +- po/kk.gmo | Bin 80984 -> 80737 bytes po/kk.po | 16 +- po/km.gmo | Bin 26823 -> 26518 bytes po/km.po | 16 +- po/ko.gmo | Bin 30191 -> 29994 bytes po/ko.po | 16 +- po/nb.gmo | Bin 64005 -> 63851 bytes po/nb.po | 16 +- po/ne.gmo | Bin 26796 -> 26502 bytes po/ne.po | 16 +- po/nl.gmo | Bin 82086 -> 86354 bytes po/nl.po | 219 +-- po/nn.gmo | Bin 12273 -> 12114 bytes po/nn.po | 16 +- po/pl.gmo | Bin 18204 -> 17995 bytes po/pl.po | 16 +- po/pt.gmo | Bin 64469 -> 64276 bytes po/pt.po | 18 +- po/pt_BR.gmo | Bin 55589 -> 55421 bytes po/pt_BR.po | 16 +- po/ro.gmo | Bin 17974 -> 17796 bytes po/ro.po | 16 +- po/ru.gmo | Bin 87223 -> 86939 bytes po/ru.po | 16 +- po/shadow.pot | 11 +- po/sk.gmo | Bin 42134 -> 41925 bytes po/sk.po | 16 +- po/sq.po | 9 +- po/sv.gmo | Bin 53103 -> 52938 bytes po/sv.po | 16 +- po/tl.gmo | Bin 18024 -> 17855 bytes po/tl.po | 16 +- po/tr.gmo | Bin 19708 -> 19549 bytes po/tr.po | 16 +- po/uk.gmo | Bin 102203 -> 101973 bytes po/uk.po | 16 +- po/vi.gmo | Bin 72304 -> 72137 bytes po/vi.po | 16 +- po/zh_CN.gmo | Bin 69139 -> 68997 bytes po/zh_CN.po | 16 +- po/zh_TW.gmo | Bin 65288 -> 65146 bytes po/zh_TW.po | 16 +- src/Makefile.in | 1 + src/chage.c | 17 +- src/check_subid_range.c | 8 +- src/chgpasswd.c | 9 +- src/chpasswd.c | 9 +- src/faillog.c | 8 +- src/getsubids.c | 1 + src/groupmod.c | 2 - src/lastlog.c | 6 +- src/login.c | 7 +- src/newusers.c | 7 +- src/passwd.c | 10 +- src/useradd.c | 79 +- src/usermod.c | 437 +++-- tests/tests/README | 19 + tests/tests/bug332198-test.exp | 61 + tests/tests/bug334803-test.exp | 83 + tests/tests/chage/01/data/chage1 | 7 + tests/tests/chage/01/data/chage2 | 7 + tests/tests/chage/01/data/chage3 | 7 + tests/tests/chage/01/data/chage4 | 7 + tests/tests/chage/01/data/chage5 | 7 + tests/tests/chage/01/data/chage6 | 7 + tests/tests/chage/01/data/chage7 | 7 + tests/tests/chage/01/data/chage7b | 7 + tests/tests/chage/01/data/chage8 | 1 + tests/tests/chage/01/data/group | 42 + tests/tests/chage/01/data/gshadow | 42 + tests/tests/chage/01/data/passwd | 26 + tests/tests/chage/01/data/shadow | 26 + tests/tests/chage/01/data/usage | 16 + tests/tests/chage/01/run | 206 ++ tests/tests/chage/01/run1.exp | 31 + tests/tests/chage/01/run2.exp | 31 + tests/tests/chage/02/data/group | 42 + tests/tests/chage/02/data/gshadow | 42 + tests/tests/chage/02/data/passwd | 20 + tests/tests/chage/02/data/shadow | 20 + tests/tests/chage/02/run | 50 + tests/tests/chage/02/run.exp | 83 + tests/tests/chage/03_chsh_usage/chage.test | 48 + tests/tests/chage/03_chsh_usage/config.txt | 0 .../chage/03_chsh_usage/config/etc/group | 42 + .../chage/03_chsh_usage/config/etc/gshadow | 42 + .../chage/03_chsh_usage/config/etc/passwd | 26 + .../chage/03_chsh_usage/config/etc/shadow | 26 + .../tests/chage/03_chsh_usage/data/usage.out | 16 + .../04_chsh_usage_invalid_option/chage.test | 54 + .../04_chsh_usage_invalid_option/config.txt | 0 .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 26 + .../config/etc/shadow | 26 + .../data/usage.out | 17 + .../chage/05_chsh_usage_2_users/chage.test | 54 + .../chage/05_chsh_usage_2_users/config.txt | 0 .../05_chsh_usage_2_users/config/etc/group | 42 + .../05_chsh_usage_2_users/config/etc/gshadow | 42 + .../05_chsh_usage_2_users/config/etc/passwd | 26 + .../05_chsh_usage_2_users/config/etc/shadow | 26 + .../05_chsh_usage_2_users/data/usage.out | 16 + .../chage/06_chsh_usage_no_users/chage.test | 54 + .../chage/06_chsh_usage_no_users/config.txt | 0 .../06_chsh_usage_no_users/config/etc/group | 42 + .../06_chsh_usage_no_users/config/etc/gshadow | 42 + .../06_chsh_usage_no_users/config/etc/passwd | 26 + .../06_chsh_usage_no_users/config/etc/shadow | 26 + .../06_chsh_usage_no_users/data/usage.out | 16 + .../07_chsh_usage-l_exclusive/chage.test | 57 + .../07_chsh_usage-l_exclusive/config.txt | 0 .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 26 + .../config/etc/shadow | 26 + .../07_chsh_usage-l_exclusive/data/usage.out | 17 + .../08_chsh_usage_invalid_date/chage.test | 59 + .../08_chsh_usage_invalid_date/config.txt | 0 .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 26 + .../config/etc/shadow | 26 + .../08_chsh_usage_invalid_date/data/usage.out | 17 + .../chage.test | 59 + .../config.txt | 0 .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 26 + .../config/etc/shadow | 26 + .../data/usage.out | 17 + tests/tests/chage/10_chsh-l/chage.test | 51 + tests/tests/chage/10_chsh-l/config.txt | 0 tests/tests/chage/10_chsh-l/config/etc/group | 42 + .../tests/chage/10_chsh-l/config/etc/gshadow | 42 + tests/tests/chage/10_chsh-l/config/etc/passwd | 32 + tests/tests/chage/10_chsh-l/config/etc/shadow | 30 + tests/tests/chage/10_chsh-l/data/myuser1 | 7 + tests/tests/chage/10_chsh-l/data/myuser10 | 7 + tests/tests/chage/10_chsh-l/data/myuser11 | 7 + tests/tests/chage/10_chsh-l/data/myuser2 | 7 + tests/tests/chage/10_chsh-l/data/myuser3 | 7 + tests/tests/chage/10_chsh-l/data/myuser4 | 7 + tests/tests/chage/10_chsh-l/data/myuser5 | 7 + tests/tests/chage/10_chsh-l/data/myuser6 | 7 + tests/tests/chage/10_chsh-l/data/myuser7 | 7 + tests/tests/chage/10_chsh-l/data/myuser8 | 7 + tests/tests/chage/10_chsh-l/data/myuser9 | 7 + .../11_chsh_usage_invalid_user/chage.test | 54 + .../11_chsh_usage_invalid_user/config.txt | 0 .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 26 + .../config/etc/shadow | 26 + .../11_chsh_usage_invalid_user/data/usage.out | 1 + .../12_chsh_usage-l_invalid_user2/chage.test | 54 + .../12_chsh_usage-l_invalid_user2/config.txt | 0 .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 26 + .../config/etc/shadow | 26 + .../data/usage.out | 1 + .../chage/13_chsh_locked_passwd/chage.test | 59 + .../chage/13_chsh_locked_passwd/config.txt | 0 .../13_chsh_locked_passwd/config/etc/group | 42 + .../13_chsh_locked_passwd/config/etc/gshadow | 42 + .../13_chsh_locked_passwd/config/etc/passwd | 26 + .../13_chsh_locked_passwd/config/etc/shadow | 26 + .../13_chsh_locked_passwd/data/usage.out | 2 + .../chage/14_chsh_locked_shadow/chage.test | 59 + .../chage/14_chsh_locked_shadow/config.txt | 0 .../14_chsh_locked_shadow/config/etc/group | 42 + .../14_chsh_locked_shadow/config/etc/gshadow | 42 + .../14_chsh_locked_shadow/config/etc/passwd | 26 + .../14_chsh_locked_shadow/config/etc/shadow | 26 + .../14_chsh_locked_shadow/data/usage.out | 2 + .../15_chage-I_no_shadow_entry/chage.test | 39 + .../15_chage-I_no_shadow_entry/config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 19 + .../15_chage-I_no_shadow_entry/data/passwd | 20 + .../15_chage-I_no_shadow_entry/data/shadow | 20 + .../16_chage-m_no_shadow_entry/chage.test | 39 + .../16_chage-m_no_shadow_entry/config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 19 + .../16_chage-m_no_shadow_entry/data/passwd | 20 + .../16_chage-m_no_shadow_entry/data/shadow | 20 + .../17_chage-M_no_shadow_entry/chage.test | 39 + .../17_chage-M_no_shadow_entry/config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 19 + .../17_chage-M_no_shadow_entry/data/passwd | 20 + .../17_chage-M_no_shadow_entry/data/shadow | 20 + .../18_chage-d_no_shadow_entry/chage.test | 39 + .../18_chage-d_no_shadow_entry/config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 19 + .../18_chage-d_no_shadow_entry/data/passwd | 20 + .../18_chage-d_no_shadow_entry/data/shadow | 20 + .../19_chage-W_no_shadow_entry/chage.test | 39 + .../19_chage-W_no_shadow_entry/config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 19 + .../19_chage-W_no_shadow_entry/data/passwd | 20 + .../19_chage-W_no_shadow_entry/data/shadow | 20 + .../20_chage-E_no_shadow_entry/chage.test | 39 + .../20_chage-E_no_shadow_entry/config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 19 + .../20_chage-E_no_shadow_entry/data/passwd | 20 + .../20_chage-E_no_shadow_entry/data/shadow | 20 + .../chage/21_chage_no_shadow_file/chage.test | 58 + .../chage/21_chage_no_shadow_file/config.txt | 0 .../21_chage_no_shadow_file/config/etc/group | 42 + .../config/etc/gshadow | 42 + .../21_chage_no_shadow_file/config/etc/passwd | 26 + .../21_chage_no_shadow_file/config/etc/shadow | 26 + .../21_chage_no_shadow_file/data/usage.out | 1 + .../tests/chage/22_chage_myuser-l/chage.test | 51 + .../tests/chage/22_chage_myuser-l/config.txt | 0 .../chage/22_chage_myuser-l/config/etc/group | 42 + .../22_chage_myuser-l/config/etc/gshadow | 42 + .../chage/22_chage_myuser-l/config/etc/passwd | 32 + .../chage/22_chage_myuser-l/config/etc/shadow | 30 + .../chage/22_chage_myuser-l/data/myuser1 | 7 + .../tests/chage/23_chage_myuser-I/chage.test | 54 + .../tests/chage/23_chage_myuser-I/config.txt | 0 .../chage/23_chage_myuser-I/config/etc/group | 42 + .../23_chage_myuser-I/config/etc/gshadow | 42 + .../chage/23_chage_myuser-I/config/etc/passwd | 26 + .../chage/23_chage_myuser-I/config/etc/shadow | 26 + .../chage/23_chage_myuser-I/data/usage.out | 1 + .../chage/24_chage_myuser-l_other/chage.test | 54 + .../chage/24_chage_myuser-l_other/config.txt | 0 .../24_chage_myuser-l_other/config/etc/group | 42 + .../config/etc/gshadow | 42 + .../24_chage_myuser-l_other/config/etc/passwd | 26 + .../24_chage_myuser-l_other/config/etc/shadow | 26 + .../24_chage_myuser-l_other/data/usage.out | 1 + .../chage/25_chage_interactive/chage.test | 39 + .../chage/25_chage_interactive/config.txt | 1 + .../25_chage_interactive/config/etc/group | 42 + .../25_chage_interactive/config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../25_chage_interactive/config/etc/passwd | 26 + .../25_chage_interactive/config/etc/shadow | 26 + .../chage/25_chage_interactive/data/shadow | 26 + .../tests/chage/25_chage_interactive/run.exp | 31 + .../26_chage_interactive_date_0/chage.test | 39 + .../26_chage_interactive_date_0/config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 26 + .../config/etc/shadow | 26 + .../26_chage_interactive_date_0/data/shadow | 26 + .../chage/26_chage_interactive_date_0/run.exp | 31 + .../27_chage_interactive_date_-1/chage.test | 39 + .../27_chage_interactive_date_-1/config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 26 + .../config/etc/shadow | 26 + .../27_chage_interactive_date_-1/data/shadow | 26 + .../27_chage_interactive_date_-1/run.exp | 31 + .../chage.test | 39 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 26 + .../config/etc/shadow | 26 + .../data/shadow | 26 + .../28_chage_interactive_date_EPOCH/run.exp | 31 + .../chage.test | 39 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 26 + .../config/etc/shadow | 26 + .../run.exp | 26 + .../chage.test | 39 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 26 + .../config/etc/shadow | 26 + .../run.exp | 32 + .../chage.test | 39 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 26 + .../config/etc/shadow | 26 + .../31_chage_interactive_date_invalid/run.exp | 26 + .../chage.test | 39 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 26 + .../config/etc/shadow | 26 + .../run.exp | 26 + .../chage.test | 39 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 26 + .../config/etc/shadow | 26 + .../33_chage_interactive-W_invalid1/run.exp | 32 + .../chage.test | 39 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 26 + .../config/etc/shadow | 26 + .../34_chage_interactive-W_invalid2/run.exp | 32 + .../chage/35_chage_interactive-W-1/chage.test | 39 + .../chage/35_chage_interactive-W-1/config.txt | 1 + .../35_chage_interactive-W-1/config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 26 + .../config/etc/shadow | 26 + .../35_chage_interactive-W-1/data/shadow | 26 + .../chage/35_chage_interactive-W-1/run.exp | 31 + .../chage.test | 39 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 26 + .../config/etc/shadow | 26 + .../36_chage_interactive-I_invalid1/run.exp | 32 + .../chage.test | 39 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 26 + .../config/etc/shadow | 26 + .../37_chage_interactive-I_invalid2/run.exp | 32 + .../chage/38_chage_interactive-I-1/chage.test | 39 + .../chage/38_chage_interactive-I-1/config.txt | 1 + .../38_chage_interactive-I-1/config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 26 + .../config/etc/shadow | 26 + .../38_chage_interactive-I-1/data/shadow | 26 + .../chage/38_chage_interactive-I-1/run.exp | 31 + .../chage/39_chage_interactive-d-1/chage.test | 39 + .../chage/39_chage_interactive-d-1/config.txt | 1 + .../39_chage_interactive-d-1/config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 26 + .../config/etc/shadow | 26 + .../39_chage_interactive-d-1/data/shadow | 26 + .../chage/39_chage_interactive-d-1/run.exp | 31 + .../chroot/chage/01_chage--root/chage.test | 52 + .../chroot/chage/01_chage--root/config.txt | 10 + .../01_chage--root/config/etc/default/useradd | 36 + .../chage/01_chage--root/config/etc/group | 41 + .../chage/01_chage--root/config/etc/gshadow | 41 + .../chage/01_chage--root/config/etc/passwd | 19 + .../chage/01_chage--root/config/etc/shadow | 19 + .../01_chage--root/config_chroot/etc/group | 42 + .../01_chage--root/config_chroot/etc/gshadow | 42 + .../config_chroot/etc/login.defs | 334 ++++ .../01_chage--root/config_chroot/etc/passwd | 21 + .../01_chage--root/config_chroot/etc/shadow | 20 + .../chroot/chage/01_chage--root/data/shadow | 20 + .../01_chgpasswd--root/chgpasswd.test | 50 + .../chgpasswd/01_chgpasswd--root/config.txt | 10 + .../config/etc/default/useradd | 36 + .../01_chgpasswd--root/config/etc/group | 41 + .../01_chgpasswd--root/config/etc/gshadow | 41 + .../01_chgpasswd--root/config/etc/passwd | 19 + .../01_chgpasswd--root/config/etc/shadow | 19 + .../config_chroot/etc/group | 42 + .../config_chroot/etc/gshadow | 42 + .../config_chroot/etc/login.defs | 334 ++++ .../config_chroot/etc/passwd | 21 + .../config_chroot/etc/shadow | 20 + .../chgpasswd/01_chgpasswd--root/data/gshadow | 42 + .../01_chpasswd--root_nopam/chpasswd.test | 50 + .../01_chpasswd--root_nopam/config.txt | 10 + .../config/etc/default/useradd | 36 + .../01_chpasswd--root_nopam/config/etc/group | 41 + .../config/etc/gshadow | 41 + .../01_chpasswd--root_nopam/config/etc/passwd | 19 + .../01_chpasswd--root_nopam/config/etc/shadow | 19 + .../config_chroot/etc/group | 42 + .../config_chroot/etc/gshadow | 42 + .../config_chroot/etc/login.defs | 334 ++++ .../config_chroot/etc/passwd | 21 + .../config_chroot/etc/shadow | 20 + .../01_chpasswd--root_nopam/data/shadow | 20 + .../02_chpasswd--root_pam/chpasswd.test | 50 + .../chpasswd/02_chpasswd--root_pam/config.txt | 10 + .../config/etc/default/useradd | 36 + .../02_chpasswd--root_pam/config/etc/group | 41 + .../02_chpasswd--root_pam/config/etc/gshadow | 41 + .../02_chpasswd--root_pam/config/etc/passwd | 19 + .../02_chpasswd--root_pam/config/etc/shadow | 19 + .../config_chroot/etc/group | 42 + .../config_chroot/etc/gshadow | 42 + .../config_chroot/etc/login.defs | 334 ++++ .../config_chroot/etc/pam.d/chpasswd | 5 + .../config_chroot/etc/pam.d/common-password | 33 + .../config_chroot/etc/passwd | 21 + .../config_chroot/etc/shadow | 20 + .../02_chpasswd--root_pam/data/shadow | 20 + .../tests/chroot/chsh/01_chsh--root/chsh.test | 52 + .../chroot/chsh/01_chsh--root/config.txt | 10 + .../01_chsh--root/config/etc/default/useradd | 36 + .../chsh/01_chsh--root/config/etc/group | 41 + .../chsh/01_chsh--root/config/etc/gshadow | 41 + .../chsh/01_chsh--root/config/etc/passwd | 19 + .../chsh/01_chsh--root/config/etc/shadow | 19 + .../chsh/01_chsh--root/config_chroot.list | 1 + .../01_chsh--root/config_chroot/etc/group | 42 + .../01_chsh--root/config_chroot/etc/gshadow | 42 + .../config_chroot/etc/login.defs | 334 ++++ .../config_chroot/etc/pam.d/chsh | 20 + .../config_chroot/etc/pam.d/common-account | 25 + .../config_chroot/etc/pam.d/common-auth | 25 + .../config_chroot/etc/pam.d/common-session | 25 + .../01_chsh--root/config_chroot/etc/passwd | 21 + .../01_chsh--root/config_chroot/etc/shadow | 20 + .../01_chsh--root/config_chroot/etc/shells | 3 + .../chroot/chsh/01_chsh--root/data/passwd | 21 + .../gpasswd/01_gpasswd--root/config.txt | 10 + .../config/etc/default/useradd | 36 + .../gpasswd/01_gpasswd--root/config/etc/group | 41 + .../01_gpasswd--root/config/etc/gshadow | 41 + .../01_gpasswd--root/config/etc/passwd | 19 + .../01_gpasswd--root/config/etc/shadow | 19 + .../01_gpasswd--root/config_chroot/etc/group | 42 + .../config_chroot/etc/gshadow | 42 + .../config_chroot/etc/login.defs | 334 ++++ .../01_gpasswd--root/config_chroot/etc/passwd | 21 + .../01_gpasswd--root/config_chroot/etc/shadow | 20 + .../gpasswd/01_gpasswd--root/data/group | 42 + .../gpasswd/01_gpasswd--root/data/gshadow | 42 + .../gpasswd/01_gpasswd--root/gpasswd.test | 52 + .../groupadd/01_groupadd--root/config.txt | 10 + .../config/etc/default/useradd | 36 + .../01_groupadd--root/config/etc/group | 41 + .../01_groupadd--root/config/etc/gshadow | 41 + .../01_groupadd--root/config/etc/passwd | 19 + .../01_groupadd--root/config/etc/shadow | 19 + .../01_groupadd--root/config_chroot/etc/group | 42 + .../config_chroot/etc/gshadow | 42 + .../config_chroot/etc/login.defs | 334 ++++ .../config_chroot/etc/passwd | 21 + .../config_chroot/etc/shadow | 20 + .../groupadd/01_groupadd--root/data/group | 43 + .../groupadd/01_groupadd--root/data/gshadow | 43 + .../groupadd/01_groupadd--root/groupadd.test | 52 + .../groupdel/01_groupdel--root/config.txt | 10 + .../config/etc/default/useradd | 36 + .../01_groupdel--root/config/etc/group | 41 + .../01_groupdel--root/config/etc/gshadow | 41 + .../01_groupdel--root/config/etc/passwd | 19 + .../01_groupdel--root/config/etc/shadow | 19 + .../01_groupdel--root/config_chroot/etc/group | 42 + .../config_chroot/etc/gshadow | 42 + .../config_chroot/etc/login.defs | 334 ++++ .../config_chroot/etc/passwd | 21 + .../config_chroot/etc/shadow | 20 + .../groupdel/01_groupdel--root/data/group | 41 + .../groupdel/01_groupdel--root/data/gshadow | 41 + .../groupdel/01_groupdel--root/groupdel.test | 52 + .../groupmod/01_groupmod--root/config.txt | 10 + .../config/etc/default/useradd | 36 + .../01_groupmod--root/config/etc/group | 41 + .../01_groupmod--root/config/etc/gshadow | 41 + .../01_groupmod--root/config/etc/passwd | 19 + .../01_groupmod--root/config/etc/shadow | 19 + .../01_groupmod--root/config_chroot/etc/group | 42 + .../config_chroot/etc/gshadow | 42 + .../config_chroot/etc/login.defs | 334 ++++ .../config_chroot/etc/passwd | 21 + .../config_chroot/etc/shadow | 20 + .../groupmod/01_groupmod--root/data/group | 42 + .../groupmod/01_groupmod--root/data/gshadow | 42 + .../groupmod/01_groupmod--root/groupmod.test | 52 + .../chroot/grpck/01_grpck--root/config.txt | 10 + .../01_grpck--root/config/etc/default/useradd | 36 + .../grpck/01_grpck--root/config/etc/group | 41 + .../grpck/01_grpck--root/config/etc/gshadow | 41 + .../grpck/01_grpck--root/config/etc/passwd | 19 + .../grpck/01_grpck--root/config/etc/shadow | 19 + .../01_grpck--root/config_chroot/etc/group | 42 + .../01_grpck--root/config_chroot/etc/gshadow | 42 + .../config_chroot/etc/login.defs | 334 ++++ .../01_grpck--root/config_chroot/etc/passwd | 21 + .../01_grpck--root/config_chroot/etc/shadow | 20 + .../chroot/grpck/01_grpck--root/data/group | 42 + .../chroot/grpck/01_grpck--root/data/gshadow | 42 + .../chroot/grpck/01_grpck--root/grpck.test | 50 + .../grpconv/01_grpconv--root/config.txt | 10 + .../config/etc/default/useradd | 36 + .../grpconv/01_grpconv--root/config/etc/group | 41 + .../01_grpconv--root/config/etc/gshadow | 41 + .../01_grpconv--root/config/etc/passwd | 19 + .../01_grpconv--root/config/etc/shadow | 19 + .../01_grpconv--root/config_chroot/etc/group | 42 + .../config_chroot/etc/login.defs | 334 ++++ .../01_grpconv--root/config_chroot/etc/passwd | 21 + .../01_grpconv--root/config_chroot/etc/shadow | 20 + .../grpconv/01_grpconv--root/data/group | 42 + .../grpconv/01_grpconv--root/data/gshadow | 42 + .../grpconv/01_grpconv--root/grpconv.test | 50 + .../grpunconv/01_grpunconv--root/config.txt | 10 + .../config/etc/default/useradd | 36 + .../01_grpunconv--root/config/etc/group | 41 + .../01_grpunconv--root/config/etc/gshadow | 41 + .../01_grpunconv--root/config/etc/passwd | 19 + .../01_grpunconv--root/config/etc/shadow | 19 + .../config_chroot/etc/group | 42 + .../config_chroot/etc/gshadow | 42 + .../config_chroot/etc/login.defs | 334 ++++ .../config_chroot/etc/passwd | 21 + .../config_chroot/etc/shadow | 20 + .../grpunconv/01_grpunconv--root/data/group | 42 + .../01_grpunconv--root/grpunconv.test | 52 + .../lastlog/01_lastlog--root/config.txt | 10 + .../config/etc/default/useradd | 36 + .../lastlog/01_lastlog--root/config/etc/group | 41 + .../01_lastlog--root/config/etc/gshadow | 41 + .../01_lastlog--root/config/etc/passwd | 19 + .../01_lastlog--root/config/etc/shadow | 19 + .../01_lastlog--root/config_chroot/etc/group | 42 + .../config_chroot/etc/gshadow | 42 + .../config_chroot/etc/login.defs | 334 ++++ .../01_lastlog--root/config_chroot/etc/passwd | 21 + .../01_lastlog--root/config_chroot/etc/shadow | 20 + .../lastlog/01_lastlog--root/data/group | 42 + .../lastlog/01_lastlog--root/data/gshadow | 42 + .../01_lastlog--root/data/lastlog.list | 2 + .../lastlog/01_lastlog--root/lastlog.test | 47 + .../chroot/login/01_login_sublogin/config.txt | 3 + .../login/01_login_sublogin/config/etc/group | 42 + .../01_login_sublogin/config/etc/gshadow | 42 + .../01_login_sublogin/config/etc/login.defs | 314 +++ .../login/01_login_sublogin/config/etc/passwd | 21 + .../login/01_login_sublogin/config/etc/shadow | 20 + .../01_login_sublogin/config_chroot.list | 3 + .../01_login_sublogin/config_chroot/etc/group | 42 + .../config_chroot/etc/gshadow | 42 + .../config_chroot/etc/login.defs | 314 +++ .../config_chroot/etc/pam.d/common-account | 25 + .../config_chroot/etc/pam.d/common-auth | 25 + .../config_chroot/etc/pam.d/common-password | 33 + .../config_chroot/etc/pam.d/common-session | 25 + .../etc/pam.d/common-session-noninteractive | 25 + .../config_chroot/etc/pam.d/login | 107 ++ .../config_chroot/etc/pam.d/other | 16 + .../config_chroot/etc/passwd | 21 + .../config_chroot/etc/securetty | 390 ++++ .../config_chroot/etc/security/limits.conf | 0 .../config_chroot/etc/shadow | 20 + .../chroot/login/01_login_sublogin/login.exp | 25 + .../chroot/login/01_login_sublogin/login.test | 33 + .../chroot/pwck/01_pwck--root/config.txt | 10 + .../01_pwck--root/config/etc/default/useradd | 36 + .../pwck/01_pwck--root/config/etc/group | 41 + .../pwck/01_pwck--root/config/etc/gshadow | 41 + .../pwck/01_pwck--root/config/etc/passwd | 19 + .../pwck/01_pwck--root/config/etc/shadow | 19 + .../01_pwck--root/config_chroot/etc/group | 42 + .../01_pwck--root/config_chroot/etc/gshadow | 42 + .../config_chroot/etc/login.defs | 334 ++++ .../01_pwck--root/config_chroot/etc/passwd | 23 + .../01_pwck--root/config_chroot/etc/shadow | 20 + .../chroot/pwck/01_pwck--root/data/pwck.out | 59 + .../tests/chroot/pwck/01_pwck--root/pwck.test | 67 + .../chroot/pwconv/01_pwconv--root/config.txt | 10 + .../config/etc/default/useradd | 36 + .../pwconv/01_pwconv--root/config/etc/group | 41 + .../pwconv/01_pwconv--root/config/etc/gshadow | 41 + .../pwconv/01_pwconv--root/config/etc/passwd | 19 + .../pwconv/01_pwconv--root/config/etc/shadow | 19 + .../01_pwconv--root/config_chroot/etc/group | 42 + .../01_pwconv--root/config_chroot/etc/gshadow | 42 + .../config_chroot/etc/login.defs | 334 ++++ .../01_pwconv--root/config_chroot/etc/passwd | 21 + .../chroot/pwconv/01_pwconv--root/data/passwd | 21 + .../chroot/pwconv/01_pwconv--root/data/shadow | 21 + .../chroot/pwconv/01_pwconv--root/pwconv.test | 50 + .../pwunconv/01_pwunconv--root/config.txt | 10 + .../config/etc/default/useradd | 36 + .../01_pwunconv--root/config/etc/group | 41 + .../01_pwunconv--root/config/etc/gshadow | 41 + .../01_pwunconv--root/config/etc/passwd | 19 + .../01_pwunconv--root/config/etc/shadow | 19 + .../01_pwunconv--root/config_chroot/etc/group | 42 + .../config_chroot/etc/gshadow | 42 + .../config_chroot/etc/login.defs | 334 ++++ .../config_chroot/etc/passwd | 21 + .../config_chroot/etc/shadow | 20 + .../pwunconv/01_pwunconv--root/data/passwd | 21 + .../pwunconv/01_pwunconv--root/pwunconv.test | 52 + .../useradd/01_useradd--root/config.txt | 10 + .../config/etc/default/useradd | 36 + .../useradd/01_useradd--root/config/etc/group | 41 + .../01_useradd--root/config/etc/gshadow | 41 + .../01_useradd--root/config/etc/passwd | 19 + .../01_useradd--root/config/etc/shadow | 19 + .../01_useradd--root/config_chroot/etc/group | 42 + .../config_chroot/etc/gshadow | 42 + .../config_chroot/etc/login.defs | 334 ++++ .../01_useradd--root/config_chroot/etc/passwd | 21 + .../01_useradd--root/config_chroot/etc/shadow | 20 + .../useradd/01_useradd--root/data/group | 43 + .../useradd/01_useradd--root/data/gshadow | 43 + .../useradd/01_useradd--root/data/passwd | 22 + .../useradd/01_useradd--root/data/shadow | 21 + .../useradd/01_useradd--root/useradd.test | 52 + .../02_useradd--root_login.defs/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../config_chroot/etc/group | 42 + .../config_chroot/etc/gshadow | 42 + .../config_chroot/etc/login.defs | 334 ++++ .../config_chroot/etc/passwd | 21 + .../config_chroot/etc/shadow | 20 + .../02_useradd--root_login.defs/data/group | 43 + .../02_useradd--root_login.defs/data/gshadow | 43 + .../02_useradd--root_login.defs/data/passwd | 22 + .../02_useradd--root_login.defs/data/shadow | 21 + .../02_useradd--root_login.defs/useradd.test | 52 + .../config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../config_chroot/etc/default/useradd | 36 + .../config_chroot/etc/group | 42 + .../config_chroot/etc/gshadow | 42 + .../config_chroot/etc/login.defs | 334 ++++ .../config_chroot/etc/passwd | 21 + .../config_chroot/etc/shadow | 20 + .../data/group | 43 + .../data/gshadow | 43 + .../data/passwd | 22 + .../data/shadow | 21 + .../useradd.test | 52 + .../04_useradd--root_useradd-D/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../config_chroot/etc/default/useradd | 36 + .../config_chroot/etc/group | 42 + .../config_chroot/etc/gshadow | 42 + .../config_chroot/etc/login.defs | 334 ++++ .../config_chroot/etc/passwd | 21 + .../config_chroot/etc/shadow | 20 + .../data/useradd.out | 7 + .../04_useradd--root_useradd-D/useradd.test | 61 + .../05_useradd--root_useradd-D-e-g/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../config_chroot/etc/default/useradd | 36 + .../config_chroot/etc/group | 42 + .../config_chroot/etc/gshadow | 42 + .../config_chroot/etc/login.defs | 334 ++++ .../config_chroot/etc/passwd | 21 + .../config_chroot/etc/shadow | 20 + .../data/useradd.default | 38 + .../useradd.test | 56 + .../userdel/01_userdel--root/config.txt | 10 + .../config/etc/default/useradd | 36 + .../userdel/01_userdel--root/config/etc/group | 41 + .../01_userdel--root/config/etc/gshadow | 41 + .../01_userdel--root/config/etc/passwd | 19 + .../01_userdel--root/config/etc/shadow | 19 + .../01_userdel--root/config_chroot/etc/group | 42 + .../config_chroot/etc/gshadow | 42 + .../config_chroot/etc/login.defs | 334 ++++ .../01_userdel--root/config_chroot/etc/passwd | 21 + .../01_userdel--root/config_chroot/etc/shadow | 20 + .../userdel/01_userdel--root/data/group | 41 + .../userdel/01_userdel--root/data/gshadow | 41 + .../userdel/01_userdel--root/data/passwd | 20 + .../userdel/01_userdel--root/data/shadow | 19 + .../userdel/01_userdel--root/userdel.test | 52 + .../usermod/01_usermod--root/config.txt | 10 + .../config/etc/default/useradd | 36 + .../usermod/01_usermod--root/config/etc/group | 41 + .../01_usermod--root/config/etc/gshadow | 41 + .../01_usermod--root/config/etc/passwd | 19 + .../01_usermod--root/config/etc/shadow | 19 + .../01_usermod--root/config_chroot/etc/group | 42 + .../config_chroot/etc/gshadow | 42 + .../config_chroot/etc/login.defs | 334 ++++ .../01_usermod--root/config_chroot/etc/passwd | 21 + .../01_usermod--root/config_chroot/etc/shadow | 20 + .../usermod/01_usermod--root/data/passwd | 21 + .../usermod/01_usermod--root/usermod.test | 52 + tests/tests/chsh/01/data/chsh1 | 1 + tests/tests/chsh/01/data/chsh2 | 1 + tests/tests/chsh/01/data/group | 42 + tests/tests/chsh/01/data/gshadow | 42 + tests/tests/chsh/01/data/passwd | 21 + tests/tests/chsh/01/data/shadow | 21 + tests/tests/chsh/01/data/shells | 16 + tests/tests/chsh/01/run | 143 ++ tests/tests/chsh/01/run.exp | 38 + tests/tests/chsh/02_chsh_usage/chsh.test | 48 + tests/tests/chsh/02_chsh_usage/config.txt | 0 .../tests/chsh/02_chsh_usage/config/etc/group | 0 .../chsh/02_chsh_usage/config/etc/gshadow | 0 .../chsh/02_chsh_usage/config/etc/passwd | 0 .../chsh/02_chsh_usage/config/etc/shadow | 0 tests/tests/chsh/02_chsh_usage/data/usage.out | 7 + .../03_chsh_usage_invalid_option/chsh.test | 54 + .../03_chsh_usage_invalid_option/config.txt | 0 .../config/etc/group | 0 .../config/etc/gshadow | 0 .../config/etc/passwd | 0 .../config/etc/shadow | 0 .../data/usage.out | 8 + .../chsh/04_chsh_usage_2_users/chsh.test | 54 + .../chsh/04_chsh_usage_2_users/config.txt | 0 .../04_chsh_usage_2_users/config/etc/group | 0 .../04_chsh_usage_2_users/config/etc/gshadow | 0 .../04_chsh_usage_2_users/config/etc/passwd | 0 .../04_chsh_usage_2_users/config/etc/shadow | 0 .../chsh/04_chsh_usage_2_users/data/usage.out | 7 + .../05_chsh_myuser_restricted_shell/chsh.test | 41 + .../config.txt | 0 .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../config/etc/shells | 15 + .../05_chsh_myuser_restricted_shell/run.exp | 34 + .../chsh.test | 41 + .../config.txt | 0 .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../config/etc/shells | 16 + .../data/passwd | 21 + .../run.exp | 40 + .../chsh/07_chsh_usage_invalid_user/chsh.test | 54 + .../07_chsh_usage_invalid_user/config.txt | 0 .../config/etc/group | 0 .../config/etc/gshadow | 0 .../config/etc/passwd | 0 .../config/etc/shadow | 0 .../07_chsh_usage_invalid_user/data/usage.out | 1 + .../chsh.test | 41 + .../config.txt | 0 .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../config/etc/shells | 15 + .../data/passwd | 21 + .../run.exp | 41 + .../09_chsh_myuser_to_missing_shell/chsh.test | 42 + .../config.txt | 0 .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../config/etc/shells | 15 + .../data/passwd | 21 + .../09_chsh_myuser_to_missing_shell/run.exp | 41 + .../chsh.test | 46 + .../config.txt | 0 .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../config/etc/shells | 15 + .../data/passwd | 21 + .../run.exp | 41 + .../tests/chsh/11_chsh_auth_failure/chsh.test | 41 + .../chsh/11_chsh_auth_failure/config.txt | 0 .../11_chsh_auth_failure/config/etc/group | 42 + .../11_chsh_auth_failure/config/etc/gshadow | 42 + .../11_chsh_auth_failure/config/etc/passwd | 21 + .../11_chsh_auth_failure/config/etc/shadow | 21 + .../11_chsh_auth_failure/config/etc/shells | 15 + .../chsh/11_chsh_auth_failure/data/passwd | 21 + tests/tests/chsh/11_chsh_auth_failure/run.exp | 36 + .../12_chsh_warning_missing_shell/chsh.test | 48 + .../12_chsh_warning_missing_shell/config.txt | 0 .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/pam.d/chsh | 20 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../config/etc/shells | 16 + .../data/chsh.err | 1 + .../12_chsh_warning_missing_shell/data/passwd | 21 + .../13_chsh_warning_non_executable/chsh.test | 52 + .../13_chsh_warning_non_executable/config.txt | 0 .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/pam.d/chsh | 20 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../config/etc/shells | 16 + .../data/chsh.err | 1 + .../data/passwd | 21 + .../chsh/14_chsh_locked_passwd/chsh.test | 59 + .../chsh/14_chsh_locked_passwd/config.txt | 0 .../14_chsh_locked_passwd/config/etc/group | 42 + .../14_chsh_locked_passwd/config/etc/gshadow | 42 + .../14_chsh_locked_passwd/config/etc/passwd | 26 + .../14_chsh_locked_passwd/config/etc/shadow | 26 + .../chsh/14_chsh_locked_passwd/data/chsh.err | 2 + tests/tests/chsh/15_chsh_PAM_error/chsh.test | 58 + tests/tests/chsh/15_chsh_PAM_error/config.txt | 0 .../chsh/15_chsh_PAM_error/config/etc/group | 42 + .../chsh/15_chsh_PAM_error/config/etc/gshadow | 42 + .../15_chsh_PAM_error/config/etc/pam.d/chsh | 1 + .../15_chsh_PAM_error/config/etc/pam.d/other | 1 + .../chsh/15_chsh_PAM_error/config/etc/passwd | 26 + .../chsh/15_chsh_PAM_error/config/etc/shadow | 26 + .../chsh/15_chsh_PAM_error/data/chsh.err | 1 + tests/tests/cktools/01/data/group | 41 + tests/tests/cktools/01/data/gshadow | 41 + tests/tests/cktools/01/data/passwd | 19 + tests/tests/cktools/01/data/run2.err | 0 tests/tests/cktools/01/data/run2.out | 13 + tests/tests/cktools/01/data/shadow | 19 + tests/tests/cktools/01/run1 | 54 + tests/tests/cktools/01/run2 | 62 + tests/tests/cktools/02_pwck_sort/config.txt | 5 + .../cktools/02_pwck_sort/config/etc/group | 42 + .../cktools/02_pwck_sort/config/etc/gshadow | 42 + .../cktools/02_pwck_sort/config/etc/passwd | 20 + .../cktools/02_pwck_sort/config/etc/shadow | 20 + tests/tests/cktools/02_pwck_sort/data/passwd | 20 + tests/tests/cktools/02_pwck_sort/data/shadow | 20 + tests/tests/cktools/02_pwck_sort/pwck.test | 39 + tests/tests/cktools/03_grpck_sort/config.txt | 5 + .../cktools/03_grpck_sort/config/etc/group | 42 + .../cktools/03_grpck_sort/config/etc/gshadow | 42 + .../cktools/03_grpck_sort/config/etc/passwd | 20 + .../cktools/03_grpck_sort/config/etc/shadow | 20 + tests/tests/cktools/03_grpck_sort/data/group | 42 + .../tests/cktools/03_grpck_sort/data/gshadow | 42 + tests/tests/cktools/03_grpck_sort/grpck.test | 39 + .../config.txt | 5 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 19 + .../data/passwd | 20 + .../data/shadow | 19 + .../pwck.test | 39 + .../config.txt | 5 + .../config/etc/group | 42 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 42 + .../data/gshadow | 41 + .../grpck.test | 39 + .../06_pwck_sort_NIS_server/config.txt | 5 + .../06_pwck_sort_NIS_server/config/etc/group | 43 + .../config/etc/gshadow | 43 + .../06_pwck_sort_NIS_server/config/etc/passwd | 24 + .../06_pwck_sort_NIS_server/config/etc/shadow | 21 + .../06_pwck_sort_NIS_server/data/passwd | 24 + .../06_pwck_sort_NIS_server/data/shadow | 21 + .../cktools/06_pwck_sort_NIS_server/pwck.test | 39 + .../07_pwck_sort_NIS_client/config.txt | 5 + .../07_pwck_sort_NIS_client/config/etc/group | 45 + .../config/etc/gshadow | 43 + .../07_pwck_sort_NIS_client/config/etc/passwd | 22 + .../07_pwck_sort_NIS_client/config/etc/shadow | 22 + .../07_pwck_sort_NIS_client/data/passwd | 22 + .../07_pwck_sort_NIS_client/data/shadow | 22 + .../cktools/07_pwck_sort_NIS_client/pwck.test | 39 + .../config.txt | 2 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 41 + .../data/gshadow | 41 + .../grpck.exp | 23 + .../grpck.test | 37 + .../config.txt | 2 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/gshadow | 41 + .../grpck.exp | 23 + .../grpck.test | 37 + .../config.txt | 2 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../grpck.exp | 23 + .../grpck.test | 37 + .../config.txt | 2 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/gshadow | 42 + .../grpck.exp | 23 + .../grpck.test | 37 + .../config.txt | 2 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/gshadow | 41 + .../grpck.exp | 23 + .../grpck.test | 37 + .../config.txt | 2 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../grpck.exp | 23 + .../grpck.test | 37 + .../config.txt | 2 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 41 + .../data/gshadow | 41 + .../grpck.exp | 23 + .../grpck.test | 45 + .../config.txt | 2 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 42 + .../data/gshadow | 42 + .../data/shadow | 20 + .../grpck.exp | 23 + .../grpck.test | 45 + .../12_grpck_unknown_user_group/config.txt | 2 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../12_grpck_unknown_user_group/data/group | 42 + .../12_grpck_unknown_user_group/grpck.exp | 20 + .../12_grpck_unknown_user_group/grpck.test | 37 + .../13_grpck_unknown_user_gshadow/config.txt | 2 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/gshadow | 42 + .../13_grpck_unknown_user_gshadow/grpck.exp | 21 + .../13_grpck_unknown_user_gshadow/grpck.test | 37 + .../config.txt | 2 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/gshadow | 42 + .../grpck.exp | 31 + .../grpck.test | 37 + .../config.txt | 2 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 42 + .../grpck.exp | 23 + .../grpck.test | 37 + .../16_grpck_duplicate_entry_group/config.txt | 2 + .../config/etc/group | 43 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../16_grpck_duplicate_entry_group/data/group | 42 + .../16_grpck_duplicate_entry_group/grpck.exp | 20 + .../16_grpck_duplicate_entry_group/grpck.test | 37 + .../config.txt | 2 + .../config/etc/group | 42 + .../config/etc/gshadow | 43 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/gshadow | 42 + .../grpck.exp | 20 + .../grpck.test | 37 + .../config.txt | 2 + .../config/etc/group | 43 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../grpck.exp | 24 + .../grpck.test | 37 + .../config.txt | 2 + .../config/etc/group | 42 + .../config/etc/gshadow | 43 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../grpck.exp | 23 + .../grpck.test | 37 + .../config.txt | 2 + .../config/etc/group | 42 + .../config/etc/gshadow | 43 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/gshadow | 42 + .../grpck.exp | 23 + .../grpck.test | 37 + .../21_grpck_invalid_group_name/config.txt | 2 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../21_grpck_invalid_group_name/grpck.exp | 17 + .../21_grpck_invalid_group_name/grpck.test | 37 + .../22_grpck_invalid_group_ID_-1/config.txt | 2 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../22_grpck_invalid_group_ID_-1/data/group | 41 + .../22_grpck_invalid_group_ID_-1/data/gshadow | 41 + .../22_grpck_invalid_group_ID_-1/grpck.exp | 23 + .../22_grpck_invalid_group_ID_-1/grpck.test | 37 + .../config.txt | 2 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../grpck.exp | 18 + .../grpck.test | 37 + .../config.txt | 2 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 41 + .../data/gshadow | 41 + .../grpck.exp | 23 + .../grpck.test | 37 + .../config.txt | 2 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../grpck.exp | 23 + .../grpck.test | 37 + .../grpck/26_grpck_no_gshadow_file/config.txt | 5 + .../26_grpck_no_gshadow_file/config/etc/group | 42 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../26_grpck_no_gshadow_file/data/grpck.out | 3 + .../grpck/26_grpck_no_gshadow_file/grpck.test | 58 + .../27_grpck_sort_no_gshadow_file/config.txt | 5 + .../config/etc/group | 42 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../27_grpck_sort_no_gshadow_file/data/group | 42 + .../27_grpck_sort_no_gshadow_file/grpck.test | 43 + .../cktools/grpck/28_grpck_usage/config.txt | 10 + .../28_grpck_usage/config/etc/default/useradd | 36 + .../grpck/28_grpck_usage/config/etc/group | 41 + .../grpck/28_grpck_usage/config/etc/gshadow | 41 + .../grpck/28_grpck_usage/config/etc/passwd | 19 + .../grpck/28_grpck_usage/config/etc/shadow | 19 + .../grpck/28_grpck_usage/data/usage.out | 9 + .../cktools/grpck/28_grpck_usage/grpck.test | 47 + .../grpck/29_grpck_sort_readonly/config.txt | 10 + .../config/etc/default/useradd | 36 + .../29_grpck_sort_readonly/config/etc/group | 41 + .../29_grpck_sort_readonly/config/etc/gshadow | 41 + .../29_grpck_sort_readonly/config/etc/passwd | 19 + .../29_grpck_sort_readonly/config/etc/shadow | 19 + .../29_grpck_sort_readonly/data/usage.out | 1 + .../grpck/29_grpck_sort_readonly/grpck.test | 54 + .../cktools/grpck/30_grpck_3_files/config.txt | 10 + .../config/etc/default/useradd | 36 + .../grpck/30_grpck_3_files/config/etc/group | 41 + .../grpck/30_grpck_3_files/config/etc/gshadow | 41 + .../grpck/30_grpck_3_files/config/etc/passwd | 19 + .../grpck/30_grpck_3_files/config/etc/shadow | 19 + .../grpck/30_grpck_3_files/data/usage.out | 9 + .../cktools/grpck/30_grpck_3_files/grpck.test | 54 + .../config.txt | 2 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 41 + .../grpck.exp | 20 + .../grpck.test | 44 + .../grpck/32_grpck_sort_nis/config.txt | 5 + .../grpck/32_grpck_sort_nis/config/etc/group | 45 + .../32_grpck_sort_nis/config/etc/gshadow | 42 + .../grpck/32_grpck_sort_nis/config/etc/passwd | 20 + .../grpck/32_grpck_sort_nis/config/etc/shadow | 20 + .../grpck/32_grpck_sort_nis/data/group | 45 + .../grpck/32_grpck_sort_nis/data/gshadow | 42 + .../grpck/32_grpck_sort_nis/grpck.test | 39 + .../grpck/33_grpck_locked_group/config.txt | 0 .../config/etc/default/useradd | 36 + .../33_grpck_locked_group/config/etc/group | 42 + .../33_grpck_locked_group/config/etc/gshadow | 42 + .../33_grpck_locked_group/config/etc/passwd | 20 + .../33_grpck_locked_group/config/etc/shadow | 20 + .../33_grpck_locked_group/data/grpck.err | 2 + .../grpck/33_grpck_locked_group/grpck.test | 60 + .../grpck/34_grpck_locked_gshadow/config.txt | 0 .../config/etc/default/useradd | 36 + .../34_grpck_locked_gshadow/config/etc/group | 42 + .../config/etc/gshadow | 42 + .../34_grpck_locked_gshadow/config/etc/passwd | 20 + .../34_grpck_locked_gshadow/config/etc/shadow | 20 + .../34_grpck_locked_gshadow/data/grpck.err | 2 + .../grpck/34_grpck_locked_gshadow/grpck.test | 60 + .../config.txt | 2 + .../config/etc/group | 45 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 44 + .../grpck.exp | 20 + .../grpck.test | 37 + .../config.txt | 5 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/grpck.out | 2 + .../grpck.test | 54 + .../grpck/37_grpck_invalid_option/config.txt | 10 + .../37_grpck_invalid_option/config/etc/group | 41 + .../config/etc/gshadow | 41 + .../37_grpck_invalid_option/config/etc/passwd | 19 + .../37_grpck_invalid_option/config/etc/shadow | 19 + .../37_grpck_invalid_option/data/usage.out | 10 + .../grpck/37_grpck_invalid_option/grpck.test | 54 + .../config.txt | 2 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 11 + .../config/etc/shadow | 11 + .../data/passwd | 10 + .../data/shadow | 10 + .../pwck.exp | 23 + .../pwck.test | 37 + .../config.txt | 2 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 11 + .../config/etc/shadow | 11 + .../data/shadow | 10 + .../pwck.exp | 22 + .../pwck.test | 37 + .../config.txt | 2 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 11 + .../config/etc/shadow | 11 + .../pwck.exp | 23 + .../pwck.test | 37 + .../config.txt | 2 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 11 + .../config/etc/shadow | 11 + .../data/shadow | 11 + .../07_pwck_missing_field_shadow_add/pwck.exp | 23 + .../pwck.test | 37 + .../config.txt | 2 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 11 + .../config/etc/shadow | 11 + .../data/shadow | 10 + .../pwck.exp | 23 + .../pwck.test | 37 + .../config.txt | 2 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 11 + .../config/etc/shadow | 11 + .../pwck.exp | 23 + .../pwck.test | 37 + .../config.txt | 2 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 11 + .../config/etc/shadow | 11 + .../data/passwd | 10 + .../data/shadow | 10 + .../pwck.exp | 23 + .../pwck.test | 45 + .../config.txt | 2 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 11 + .../config/etc/shadow | 11 + .../data/passwd | 11 + .../data/shadow | 11 + .../pwck.exp | 23 + .../pwck.test | 45 + .../12_pwck_unknown_user_group_ID/config.txt | 2 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 11 + .../config/etc/shadow | 11 + .../12_pwck_unknown_user_group_ID/pwck.exp | 18 + .../12_pwck_unknown_user_group_ID/pwck.test | 37 + .../13_pwck_duplicate_entry_passwd/config.txt | 2 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 12 + .../config/etc/shadow | 11 + .../data/passwd | 11 + .../13_pwck_duplicate_entry_passwd/pwck.exp | 20 + .../13_pwck_duplicate_entry_passwd/pwck.test | 37 + .../14_pwck_duplicate_entry_shadow/config.txt | 2 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 11 + .../config/etc/shadow | 12 + .../data/shadow | 11 + .../14_pwck_duplicate_entry_shadow/pwck.exp | 20 + .../14_pwck_duplicate_entry_shadow/pwck.test | 37 + .../config.txt | 2 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 12 + .../config/etc/shadow | 11 + .../pwck.exp | 23 + .../pwck.test | 37 + .../config.txt | 2 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 11 + .../config/etc/shadow | 12 + .../pwck.exp | 23 + .../pwck.test | 37 + .../config.txt | 2 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 12 + .../config/etc/shadow | 11 + .../data/passwd | 11 + .../pwck.exp | 23 + .../pwck.test | 37 + .../pwck/18_pwck_invalid_user_name/config.txt | 2 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 11 + .../config/etc/shadow | 11 + .../pwck/18_pwck_invalid_user_name/pwck.exp | 18 + .../pwck/18_pwck_invalid_user_name/pwck.test | 37 + .../19_pwck_invalid_user_ID_-1/config.txt | 2 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 11 + .../config/etc/shadow | 11 + .../19_pwck_invalid_user_ID_-1/data/passwd | 10 + .../19_pwck_invalid_user_ID_-1/data/shadow | 10 + .../pwck/19_pwck_invalid_user_ID_-1/pwck.exp | 23 + .../pwck/19_pwck_invalid_user_ID_-1/pwck.test | 37 + .../config.txt | 2 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 11 + .../config/etc/shadow | 11 + .../pwck.exp | 18 + .../pwck.test | 37 + .../config.txt | 2 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 11 + .../config/etc/shadow | 11 + .../data/passwd | 10 + .../data/shadow | 10 + .../pwck.exp | 23 + .../pwck.test | 37 + .../cktools/pwck/22_pwck_usage/config.txt | 10 + .../pwck/22_pwck_usage/config/etc/group | 41 + .../pwck/22_pwck_usage/config/etc/gshadow | 41 + .../pwck/22_pwck_usage/config/etc/passwd | 19 + .../pwck/22_pwck_usage/config/etc/shadow | 19 + .../cktools/pwck/22_pwck_usage/data/usage.out | 10 + .../cktools/pwck/22_pwck_usage/pwck.test | 47 + .../pwck/23_pwck_locked_passwd/config.txt | 0 .../23_pwck_locked_passwd/config/etc/group | 42 + .../23_pwck_locked_passwd/config/etc/gshadow | 42 + .../23_pwck_locked_passwd/config/etc/passwd | 20 + .../23_pwck_locked_passwd/config/etc/shadow | 20 + .../pwck/23_pwck_locked_passwd/data/pwck.err | 2 + .../pwck/23_pwck_locked_passwd/pwck.test | 60 + .../pwck/24_pwck_locked_shadow/config.txt | 0 .../24_pwck_locked_shadow/config/etc/group | 42 + .../24_pwck_locked_shadow/config/etc/gshadow | 42 + .../24_pwck_locked_shadow/config/etc/passwd | 20 + .../24_pwck_locked_shadow/config/etc/shadow | 20 + .../pwck/24_pwck_locked_shadow/data/pwck.err | 2 + .../pwck/24_pwck_locked_shadow/pwck.test | 60 + .../25_pwck_usage_invalid_option/config.txt | 0 .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/pwck.err | 11 + .../25_pwck_usage_invalid_option/pwck.test | 56 + .../cktools/pwck/26_pwck_usage-s-r/config.txt | 0 .../pwck/26_pwck_usage-s-r/config/etc/group | 42 + .../pwck/26_pwck_usage-s-r/config/etc/gshadow | 42 + .../pwck/26_pwck_usage-s-r/config/etc/passwd | 20 + .../pwck/26_pwck_usage-s-r/config/etc/shadow | 20 + .../pwck/26_pwck_usage-s-r/data/pwck.err | 1 + .../cktools/pwck/26_pwck_usage-s-r/pwck.test | 56 + .../pwck/27_pwck_usage_3_files/config.txt | 0 .../27_pwck_usage_3_files/config/etc/group | 42 + .../27_pwck_usage_3_files/config/etc/gshadow | 42 + .../27_pwck_usage_3_files/config/etc/passwd | 20 + .../27_pwck_usage_3_files/config/etc/shadow | 20 + .../pwck/27_pwck_usage_3_files/data/pwck.err | 10 + .../pwck/27_pwck_usage_3_files/pwck.test | 56 + .../pwck/28_pwck_no_shadow_file/config.txt | 10 + .../28_pwck_no_shadow_file/config/etc/group | 42 + .../28_pwck_no_shadow_file/config/etc/gshadow | 42 + .../28_pwck_no_shadow_file/config/etc/passwd | 23 + .../28_pwck_no_shadow_file/config/etc/shadow | 20 + .../pwck/28_pwck_no_shadow_file/data/pwck.out | 7 + .../pwck/28_pwck_no_shadow_file/pwck.test | 58 + .../config.txt | 10 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/pwck.out | 2 + .../pwck.test | 54 + .../pwck/30_pwck_NIS_entries/config.txt | 10 + .../pwck/30_pwck_NIS_entries/config/etc/group | 42 + .../30_pwck_NIS_entries/config/etc/gshadow | 42 + .../30_pwck_NIS_entries/config/etc/passwd | 23 + .../30_pwck_NIS_entries/config/etc/shadow | 23 + .../pwck/30_pwck_NIS_entries/data/pwck.out | 10 + .../pwck/30_pwck_NIS_entries/pwck.test | 54 + .../config.txt | 10 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/pwck.out | 2 + .../pwck.test | 54 + .../cktools/pwck/32_pwck_quiet/config.txt | 10 + .../pwck/32_pwck_quiet/config/etc/group | 41 + .../pwck/32_pwck_quiet/config/etc/gshadow | 41 + .../pwck/32_pwck_quiet/config/etc/passwd | 22 + .../pwck/32_pwck_quiet/config/etc/shadow | 19 + .../cktools/pwck/32_pwck_quiet/data/pwck.out | 9 + .../cktools/pwck/32_pwck_quiet/pwck.test | 54 + tests/tests/cleanup.sh | 33 + tests/tests/common/Makefile | 14 + tests/tests/common/compare_file.pl | 116 ++ tests/tests/common/config.sh | 132 ++ tests/tests/common/config_chroot-i386.list | 25 + tests/tests/common/config_chroot-powerpc.list | 25 + tests/tests/common/fopen_failure.c | 46 + tests/tests/common/link_failure.c | 51 + tests/tests/common/log.sh | 46 + tests/tests/common/open_RDONLY_failure.c | 51 + tests/tests/common/open_RDWR_failure.c | 51 + tests/tests/common/rename_failure.c | 50 + tests/tests/common/rmdir_failure.c | 51 + tests/tests/common/time_0.c | 16 + tests/tests/common/time_past.c | 52 + tests/tests/common/unlink_failure.c | 51 + tests/tests/common/unlinkat_failure.c | 62 + tests/tests/convtools/01/data/1/group | 42 + tests/tests/convtools/01/data/1/passwd | 21 + tests/tests/convtools/01/data/2/group | 42 + tests/tests/convtools/01/data/2/gshadow | 42 + tests/tests/convtools/01/data/2/passwd | 21 + tests/tests/convtools/01/data/2/shadow | 21 + tests/tests/convtools/01/run | 117 ++ .../config.txt | 2 + .../config/etc/group | 42 + .../config/etc/gshadow | 43 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/gshadow | 42 + .../grpconv.test | 39 + .../03_grpconv_copy_passwd/config.txt | 2 + .../03_grpconv_copy_passwd/config/etc/group | 42 + .../03_grpconv_copy_passwd/config/etc/gshadow | 41 + .../03_grpconv_copy_passwd/config/etc/passwd | 19 + .../03_grpconv_copy_passwd/config/etc/shadow | 19 + .../03_grpconv_copy_passwd/data/group | 42 + .../03_grpconv_copy_passwd/data/gshadow | 42 + .../03_grpconv_copy_passwd/grpconv.test | 39 + .../04_grpconv_no_password/config.txt | 2 + .../04_grpconv_no_password/config/etc/group | 42 + .../04_grpconv_no_password/config/etc/gshadow | 41 + .../04_grpconv_no_password/config/etc/passwd | 19 + .../04_grpconv_no_password/config/etc/shadow | 19 + .../04_grpconv_no_password/data/group | 42 + .../04_grpconv_no_password/data/gshadow | 42 + .../04_grpconv_no_password/grpconv.test | 39 + .../config.txt | 3 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/group | 42 + .../data/gshadow | 42 + .../grpconv.test | 39 + .../06_grpconv_error_group_locked/config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/grpconv.err | 2 + .../grpconv.test | 63 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/grpconv.err | 2 + .../grpconv.test | 62 + .../08_grpunconv_no_gshadow_file/config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 43 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../grpunconv.test | 43 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/grpunconv.err | 2 + .../grpunconv.test | 62 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/grpunconv.err | 2 + .../grpunconv.test | 62 + .../11_pwconv_error_passwd_locked/config.txt | 5 + .../config/etc/group | 42 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/pwconv.err | 2 + .../11_pwconv_error_passwd_locked/pwconv.test | 62 + .../12_pwconv_error_shadow_locked/config.txt | 5 + .../config/etc/group | 42 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/pwconv.err | 2 + .../12_pwconv_error_shadow_locked/pwconv.test | 62 + .../config.txt | 5 + .../config/etc/group | 42 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/pwunconv.err | 2 + .../pwunconv.test | 62 + .../config.txt | 5 + .../config/etc/group | 42 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/pwunconv.err | 2 + .../pwunconv.test | 62 + .../config.txt | 2 + .../config/etc/group | 42 + .../config/etc/gshadow | 43 + .../config/etc/passwd | 20 + .../config/etc/shadow | 21 + .../data/shadow | 20 + .../pwconv.test | 39 + .../16_pwconv_copy_passwd/config.txt | 1 + .../16_pwconv_copy_passwd/config/etc/group | 42 + .../16_pwconv_copy_passwd/config/etc/gshadow | 41 + .../16_pwconv_copy_passwd/config/etc/passwd | 20 + .../16_pwconv_copy_passwd/config/etc/shadow | 20 + .../16_pwconv_copy_passwd/data/passwd | 20 + .../16_pwconv_copy_passwd/data/shadow | 20 + .../16_pwconv_copy_passwd/pwconv.test | 39 + .../17_pwunconv_no_shadow_file/config.txt | 6 + .../config/etc/group | 42 + .../config/etc/gshadow | 43 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../17_pwunconv_no_shadow_file/pwunconv.test | 43 + .../18_pwunconv_user_not_in_shadow/config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 20 + .../config/etc/shadow | 19 + .../data/passwd | 20 + .../pwunconv.test | 39 + .../tests/convtools/19_pwconv_NIS/config.txt | 1 + .../convtools/19_pwconv_NIS/config/etc/group | 42 + .../19_pwconv_NIS/config/etc/gshadow | 41 + .../convtools/19_pwconv_NIS/config/etc/passwd | 22 + .../convtools/19_pwconv_NIS/config/etc/shadow | 20 + .../tests/convtools/19_pwconv_NIS/data/passwd | 22 + .../tests/convtools/19_pwconv_NIS/data/shadow | 20 + .../tests/convtools/19_pwconv_NIS/pwconv.test | 43 + .../20_pwunconv_usage_option/config.txt | 10 + .../20_pwunconv_usage_option/config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../20_pwunconv_usage_option/data/usage.out | 7 + .../20_pwunconv_usage_option/pwunconv.test | 54 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/passwd | 20 + .../pwunconv.test | 39 + .../22_grpunconv_usage_option/config.txt | 10 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../22_grpunconv_usage_option/data/usage.out | 7 + .../22_grpunconv_usage_option/grpunconv.test | 54 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 42 + .../grpunconv.test | 39 + .../24_grpunconv_no_gshadow_entry/config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../24_grpunconv_no_gshadow_entry/data/group | 42 + .../grpunconv.test | 39 + .../25_pwconv_usage_option/config.txt | 0 .../25_pwconv_usage_option/config/etc/group | 0 .../25_pwconv_usage_option/config/etc/gshadow | 0 .../25_pwconv_usage_option/config/etc/passwd | 0 .../25_pwconv_usage_option/config/etc/shadow | 0 .../25_pwconv_usage_option/data/usage.out | 7 + .../25_pwconv_usage_option/pwconv.test | 54 + .../26_grpconv_usage_option/config.txt | 0 .../26_grpconv_usage_option/config/etc/group | 0 .../config/etc/gshadow | 0 .../26_grpconv_usage_option/config/etc/passwd | 0 .../26_grpconv_usage_option/config/etc/shadow | 0 .../26_grpconv_usage_option/data/usage.out | 7 + .../26_grpconv_usage_option/grpconv.test | 54 + .../convtools/27_pwunconv_usage/config.txt | 10 + .../27_pwunconv_usage/config/etc/group | 41 + .../27_pwunconv_usage/config/etc/gshadow | 41 + .../27_pwunconv_usage/config/etc/passwd | 19 + .../27_pwunconv_usage/config/etc/shadow | 19 + .../27_pwunconv_usage/data/usage.out | 6 + .../convtools/27_pwunconv_usage/pwunconv.test | 48 + .../28_pwunconv_usage_extra_arg/config.txt | 10 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/usage.out | 6 + .../28_pwunconv_usage_extra_arg/pwunconv.test | 54 + .../convtools/29_grpconv_usage/config.txt | 0 .../29_grpconv_usage/config/etc/group | 0 .../29_grpconv_usage/config/etc/gshadow | 0 .../29_grpconv_usage/config/etc/passwd | 0 .../29_grpconv_usage/config/etc/shadow | 0 .../convtools/29_grpconv_usage/data/usage.out | 6 + .../convtools/29_grpconv_usage/grpconv.test | 48 + .../30_grpconv_usage_extra_arg/config.txt | 0 .../config/etc/group | 0 .../config/etc/gshadow | 0 .../config/etc/passwd | 0 .../config/etc/shadow | 0 .../30_grpconv_usage_extra_arg/data/usage.out | 6 + .../30_grpconv_usage_extra_arg/grpconv.test | 54 + .../convtools/31_pwconv_usage/config.txt | 0 .../31_pwconv_usage/config/etc/group | 0 .../31_pwconv_usage/config/etc/gshadow | 0 .../31_pwconv_usage/config/etc/passwd | 0 .../31_pwconv_usage/config/etc/shadow | 0 .../convtools/31_pwconv_usage/data/usage.out | 6 + .../convtools/31_pwconv_usage/pwconv.test | 48 + .../32_pwconv_usage_extra_arg/config.txt | 0 .../config/etc/group | 0 .../config/etc/gshadow | 0 .../config/etc/passwd | 0 .../config/etc/shadow | 0 .../32_pwconv_usage_extra_arg/data/usage.out | 6 + .../32_pwconv_usage_extra_arg/pwconv.test | 54 + .../convtools/33_grpunconv_usage/config.txt | 10 + .../33_grpunconv_usage/config/etc/group | 41 + .../33_grpunconv_usage/config/etc/gshadow | 41 + .../33_grpunconv_usage/config/etc/passwd | 19 + .../33_grpunconv_usage/config/etc/shadow | 19 + .../33_grpunconv_usage/data/usage.out | 6 + .../33_grpunconv_usage/grpunconv.test | 48 + .../34_grpunconv_usage_extra_arg/config.txt | 10 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/usage.out | 6 + .../grpunconv.test | 54 + tests/tests/coverage.sh | 11 + tests/tests/cptools/01/data/group | 41 + tests/tests/cptools/01/data/group.new | 42 + tests/tests/cptools/01/data/gshadow | 41 + tests/tests/cptools/01/data/gshadow.new | 42 + tests/tests/cptools/01/data/passwd | 19 + tests/tests/cptools/01/data/passwd.new | 20 + tests/tests/cptools/01/data/shadow | 19 + tests/tests/cptools/01/data/shadow.new | 20 + tests/tests/cptools/01/run1 | 57 + tests/tests/cptools/01/run2 | 57 + tests/tests/cptools/01/run3 | 57 + tests/tests/cptools/01/run4 | 57 + tests/tests/cptools/02_cppw_usage/config.txt | 0 .../cptools/02_cppw_usage/config/etc/group | 0 .../cptools/02_cppw_usage/config/etc/gshadow | 0 .../cptools/02_cppw_usage/config/etc/passwd | 0 .../cptools/02_cppw_usage/config/etc/shadow | 0 tests/tests/cptools/02_cppw_usage/cppw.test | 48 + .../cptools/02_cppw_usage/data/usage.out | 3 + .../03_cppw_usage_invalid_option/config.txt | 0 .../config/etc/group | 0 .../config/etc/gshadow | 0 .../config/etc/passwd | 0 .../config/etc/shadow | 0 .../03_cppw_usage_invalid_option/cppw.test | 54 + .../data/usage.out | 4 + .../04_cppw_no_file_argument/config.txt | 0 .../04_cppw_no_file_argument/config/etc/group | 0 .../config/etc/gshadow | 0 .../config/etc/passwd | 0 .../config/etc/shadow | 0 .../04_cppw_no_file_argument/cppw.test | 54 + .../04_cppw_no_file_argument/data/usage.out | 2 + .../tests/cptools/05_cppw_2_files/config.txt | 0 .../cptools/05_cppw_2_files/config/etc/group | 42 + .../05_cppw_2_files/config/etc/gshadow | 42 + .../cptools/05_cppw_2_files/config/etc/passwd | 21 + .../cptools/05_cppw_2_files/config/etc/shadow | 21 + tests/tests/cptools/05_cppw_2_files/cppw.test | 54 + .../tests/cptools/05_cppw_2_files/data/passwd | 17 + .../cptools/05_cppw_2_files/data/usage.out | 2 + .../tests/cptools/06_cppw_no_file/config.txt | 0 .../cptools/06_cppw_no_file/config/etc/group | 0 .../06_cppw_no_file/config/etc/gshadow | 0 .../cptools/06_cppw_no_file/config/etc/passwd | 0 .../cptools/06_cppw_no_file/config/etc/shadow | 0 tests/tests/cptools/06_cppw_no_file/cppw.test | 54 + .../cptools/06_cppw_no_file/data/usage.out | 2 + .../cptools/07_cppw_locked_passwd/config.txt | 0 .../07_cppw_locked_passwd/config/etc/group | 0 .../07_cppw_locked_passwd/config/etc/gshadow | 0 .../07_cppw_locked_passwd/config/etc/passwd | 0 .../07_cppw_locked_passwd/config/etc/shadow | 0 .../cptools/07_cppw_locked_passwd/cppw.test | 60 + .../cptools/07_cppw_locked_passwd/data/passwd | 0 .../07_cppw_locked_passwd/data/usage.out | 3 + tests/tests/cptools/08_cppw-p/config.txt | 0 .../tests/cptools/08_cppw-p/config/etc/group | 0 .../cptools/08_cppw-p/config/etc/gshadow | 0 .../tests/cptools/08_cppw-p/config/etc/passwd | 0 .../tests/cptools/08_cppw-p/config/etc/shadow | 0 tests/tests/cptools/08_cppw-p/cppw.test | 39 + tests/tests/cptools/08_cppw-p/data/passwd | 0 tests/tests/cptools/09_cppw-g/config.txt | 0 .../tests/cptools/09_cppw-g/config/etc/group | 42 + .../cptools/09_cppw-g/config/etc/gshadow | 42 + .../tests/cptools/09_cppw-g/config/etc/passwd | 20 + .../tests/cptools/09_cppw-g/config/etc/shadow | 20 + tests/tests/cptools/09_cppw-g/cppw.test | 39 + tests/tests/cptools/09_cppw-g/data/group | 39 + tests/tests/cptools/10_cppw-g-s/config.txt | 0 .../cptools/10_cppw-g-s/config/etc/group | 42 + .../cptools/10_cppw-g-s/config/etc/gshadow | 42 + .../cptools/10_cppw-g-s/config/etc/passwd | 20 + .../cptools/10_cppw-g-s/config/etc/shadow | 20 + tests/tests/cptools/10_cppw-g-s/cppw.test | 39 + tests/tests/cptools/10_cppw-g-s/data/gshadow | 39 + tests/tests/cptools/11_cppw-p-s/config.txt | 0 .../cptools/11_cppw-p-s/config/etc/group | 42 + .../cptools/11_cppw-p-s/config/etc/gshadow | 42 + .../cptools/11_cppw-p-s/config/etc/passwd | 20 + .../cptools/11_cppw-p-s/config/etc/shadow | 20 + tests/tests/cptools/11_cppw-p-s/cppw.test | 39 + tests/tests/cptools/11_cppw-p-s/data/shadow | 16 + .../12_cppw-s_no_shadow_file/config.txt | 0 .../12_cppw-s_no_shadow_file/config/etc/group | 0 .../config/etc/gshadow | 0 .../config/etc/passwd | 0 .../config/etc/shadow | 0 .../12_cppw-s_no_shadow_file/cppw.test | 58 + .../12_cppw-s_no_shadow_file/data/cppw.err | 2 + .../12_cppw-s_no_shadow_file/data/shadow | 0 .../01_chpasswd.test | 39 + .../01_chpasswd/group | 41 + .../01_chpasswd/gshadow | 41 + .../01_chpasswd/passwd | 19 + .../01_chpasswd/shadow | 19 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/login.defs | 317 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../crypt/login.defs_DES/01_chpasswd.test | 39 + .../crypt/login.defs_DES/01_chpasswd/group | 41 + .../crypt/login.defs_DES/01_chpasswd/gshadow | 41 + .../crypt/login.defs_DES/01_chpasswd/passwd | 19 + .../crypt/login.defs_DES/01_chpasswd/shadow | 19 + .../02_chpasswd--crypt-method-MD5.test | 39 + .../02_chpasswd--crypt-method-MD5/group | 41 + .../02_chpasswd--crypt-method-MD5/gshadow | 41 + .../02_chpasswd--crypt-method-MD5/passwd | 19 + .../02_chpasswd--crypt-method-MD5/passwd.new | 19 + .../02_chpasswd--crypt-method-MD5/shadow | 19 + .../03_chpasswd--crypt-method-DES.test | 39 + .../03_chpasswd--crypt-method-DES/group | 41 + .../03_chpasswd--crypt-method-DES/gshadow | 41 + .../03_chpasswd--crypt-method-DES/passwd | 19 + .../03_chpasswd--crypt-method-DES/shadow | 19 + .../04_chpasswd--crypt-method-NONE.test | 39 + .../04_chpasswd--crypt-method-NONE/group | 41 + .../04_chpasswd--crypt-method-NONE/gshadow | 41 + .../04_chpasswd--crypt-method-NONE/passwd | 19 + .../04_chpasswd--crypt-method-NONE/shadow | 19 + .../crypt/login.defs_DES/05_chpasswd-e.test | 39 + .../crypt/login.defs_DES/05_chpasswd-e/group | 41 + .../login.defs_DES/05_chpasswd-e/gshadow | 41 + .../crypt/login.defs_DES/05_chpasswd-e/passwd | 19 + .../crypt/login.defs_DES/05_chpasswd-e/shadow | 19 + .../crypt/login.defs_DES/06_chpasswd-m.test | 39 + .../crypt/login.defs_DES/06_chpasswd-m/group | 41 + .../login.defs_DES/06_chpasswd-m/gshadow | 41 + .../crypt/login.defs_DES/06_chpasswd-m/passwd | 19 + .../crypt/login.defs_DES/06_chpasswd-m/shadow | 19 + .../crypt/login.defs_DES/07_chgpasswd.test | 39 + .../crypt/login.defs_DES/07_chgpasswd/group | 41 + .../crypt/login.defs_DES/07_chgpasswd/gshadow | 41 + .../crypt/login.defs_DES/07_chgpasswd/passwd | 19 + .../crypt/login.defs_DES/07_chgpasswd/shadow | 19 + .../08_chgpasswd--crypt-method-MD5.test | 39 + .../08_chgpasswd--crypt-method-MD5/group | 41 + .../08_chgpasswd--crypt-method-MD5/gshadow | 41 + .../08_chgpasswd--crypt-method-MD5/passwd | 19 + .../08_chgpasswd--crypt-method-MD5/shadow | 19 + .../09_chgpasswd--crypt-method-DES.test | 39 + .../09_chgpasswd--crypt-method-DES/group | 41 + .../09_chgpasswd--crypt-method-DES/gshadow | 41 + .../09_chgpasswd--crypt-method-DES/passwd | 19 + .../09_chgpasswd--crypt-method-DES/shadow | 19 + .../10_chgpasswd--crypt-method-NONE.test | 39 + .../10_chgpasswd--crypt-method-NONE/group | 41 + .../10_chgpasswd--crypt-method-NONE/gshadow | 41 + .../10_chgpasswd--crypt-method-NONE/passwd | 19 + .../10_chgpasswd--crypt-method-NONE/shadow | 19 + .../crypt/login.defs_DES/11_chgpasswd-e.test | 39 + .../crypt/login.defs_DES/11_chgpasswd-e/group | 41 + .../login.defs_DES/11_chgpasswd-e/gshadow | 41 + .../login.defs_DES/11_chgpasswd-e/passwd | 19 + .../login.defs_DES/11_chgpasswd-e/shadow | 19 + .../crypt/login.defs_DES/12_chgpasswd-m.test | 39 + .../crypt/login.defs_DES/12_chgpasswd-m/group | 41 + .../login.defs_DES/12_chgpasswd-m/gshadow | 41 + .../login.defs_DES/12_chgpasswd-m/passwd | 19 + .../login.defs_DES/12_chgpasswd-m/shadow | 19 + .../crypt/login.defs_DES/config/etc/group | 41 + .../crypt/login.defs_DES/config/etc/gshadow | 41 + .../login.defs_DES/config/etc/login.defs | 317 +++ .../crypt/login.defs_DES/config/etc/passwd | 19 + .../crypt/login.defs_DES/config/etc/shadow | 19 + .../crypt/login.defs_MD5/01_chpasswd.test | 39 + .../crypt/login.defs_MD5/01_chpasswd/group | 41 + .../crypt/login.defs_MD5/01_chpasswd/gshadow | 41 + .../crypt/login.defs_MD5/01_chpasswd/passwd | 19 + .../crypt/login.defs_MD5/01_chpasswd/shadow | 19 + .../crypt/login.defs_MD5/02_chgpasswd.test | 39 + .../crypt/login.defs_MD5/02_chgpasswd/group | 41 + .../crypt/login.defs_MD5/02_chgpasswd/gshadow | 41 + .../crypt/login.defs_MD5/02_chgpasswd/passwd | 19 + .../crypt/login.defs_MD5/02_chgpasswd/shadow | 19 + .../crypt/login.defs_MD5/config/etc/group | 41 + .../crypt/login.defs_MD5/config/etc/gshadow | 41 + .../login.defs_MD5/config/etc/login.defs | 317 +++ .../crypt/login.defs_MD5/config/etc/passwd | 19 + .../crypt/login.defs_MD5/config/etc/shadow | 19 + .../01_chpasswd.test | 39 + .../01_chpasswd/shadow | 19 + .../02_chgpasswd.test | 39 + .../02_chgpasswd/gshadow | 41 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/login.defs | 317 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../01_chpasswd.test | 45 + .../01_chpasswd/shadow | 19 + .../02_chgpasswd.test | 45 + .../02_chgpasswd/gshadow | 41 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/login.defs | 317 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../01_chpasswd.test | 64 + .../01_chpasswd/shadow | 19 + .../02_chgpasswd.test | 64 + .../02_chgpasswd/gshadow | 41 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/login.defs | 317 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../01_chpasswd.test | 45 + .../01_chpasswd/shadow | 19 + .../02_chgpasswd.test | 45 + .../02_chgpasswd/gshadow | 41 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/login.defs | 317 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../crypt/login.defs_SHA256/01_chpasswd.test | 39 + .../login.defs_SHA256/01_chpasswd/shadow | 19 + .../crypt/login.defs_SHA256/02_chgpasswd.test | 39 + .../login.defs_SHA256/02_chgpasswd/gshadow | 41 + .../crypt/login.defs_SHA256/config/etc/group | 41 + .../login.defs_SHA256/config/etc/gshadow | 41 + .../login.defs_SHA256/config/etc/login.defs | 317 +++ .../crypt/login.defs_SHA256/config/etc/passwd | 19 + .../crypt/login.defs_SHA256/config/etc/shadow | 19 + .../crypt/login.defs_SHA512/01_chpasswd.test | 39 + .../login.defs_SHA512/01_chpasswd/shadow | 19 + .../crypt/login.defs_SHA512/02_chgpasswd.test | 39 + .../login.defs_SHA512/02_chgpasswd/gshadow | 41 + .../crypt/login.defs_SHA512/config/etc/group | 41 + .../login.defs_SHA512/config/etc/gshadow | 41 + .../login.defs_SHA512/config/etc/login.defs | 317 +++ .../crypt/login.defs_SHA512/config/etc/passwd | 19 + .../crypt/login.defs_SHA512/config/etc/shadow | 19 + .../crypt/login.defs_none/01_chpasswd.test | 39 + .../crypt/login.defs_none/01_chpasswd/shadow | 19 + .../crypt/login.defs_none/02_chgpasswd.test | 39 + .../login.defs_none/02_chgpasswd/gshadow | 41 + .../crypt/login.defs_none/config/etc/group | 41 + .../crypt/login.defs_none/config/etc/gshadow | 41 + .../login.defs_none/config/etc/login.defs | 317 +++ .../crypt/login.defs_none/config/etc/passwd | 19 + .../crypt/login.defs_none/config/etc/shadow | 19 + tests/tests/debian/01/data/login_files | 296 +++ tests/tests/debian/01/data/passwd_files | 400 ++++ tests/tests/debian/01/run | 33 + tests/tests/debian/02/run | 28 + .../01_expiry_-c_no_expiry/config/etc/group | 42 + .../01_expiry_-c_no_expiry/config/etc/gshadow | 42 + .../01_expiry_-c_no_expiry/config/etc/passwd | 20 + .../01_expiry_-c_no_expiry/config/etc/shadow | 20 + .../expiry/01_expiry_-c_no_expiry/expiry.exp | 17 + .../expiry/01_expiry_-c_no_expiry/expiry.test | 37 + .../02_expiry_-c_expired/config/etc/group | 42 + .../02_expiry_-c_expired/config/etc/gshadow | 42 + .../02_expiry_-c_expired/config/etc/passwd | 20 + .../02_expiry_-c_expired/config/etc/shadow | 20 + .../expiry/02_expiry_-c_expired/expiry.exp | 17 + .../expiry/02_expiry_-c_expired/expiry.test | 37 + .../03_expiry_-f_expired/config/etc/group | 42 + .../03_expiry_-f_expired/config/etc/gshadow | 42 + .../config/etc/pam.d/common-password | 33 + .../03_expiry_-f_expired/config/etc/passwd | 20 + .../03_expiry_-f_expired/config/etc/shadow | 20 + .../expiry/03_expiry_-f_expired/data/shadow | 20 + .../expiry/03_expiry_-f_expired/expiry.exp | 23 + .../expiry/03_expiry_-f_expired/expiry.test | 37 + .../04_expiry_no_options/config/etc/group | 42 + .../04_expiry_no_options/config/etc/gshadow | 42 + .../04_expiry_no_options/config/etc/passwd | 20 + .../04_expiry_no_options/config/etc/shadow | 20 + .../04_expiry_no_options/data/usage.out | 8 + .../expiry/04_expiry_no_options/expiry.test | 54 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../05_expiry_-c_no_shadow_file/expiry.exp | 17 + .../05_expiry_-c_no_shadow_file/expiry.test | 41 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 19 + .../06_expiry_-c_no_shadow_entry/expiry.exp | 17 + .../06_expiry_-c_no_shadow_entry/expiry.test | 37 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../07_expiry_-c_expired_account/expiry.exp | 17 + .../07_expiry_-c_expired_account/expiry.test | 37 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../08_expiry_-c_expired_max+inact/expiry.exp | 17 + .../expiry.test | 37 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../expiry.exp | 17 + .../expiry.test | 37 + .../10_expiry_bad_option/config/etc/group | 42 + .../10_expiry_bad_option/config/etc/gshadow | 42 + .../10_expiry_bad_option/config/etc/passwd | 20 + .../10_expiry_bad_option/config/etc/shadow | 20 + .../10_expiry_bad_option/data/usage.out | 9 + .../expiry/10_expiry_bad_option/expiry.test | 53 + .../expiry/11_expiry_usage/config/etc/group | 42 + .../expiry/11_expiry_usage/config/etc/gshadow | 42 + .../expiry/11_expiry_usage/config/etc/passwd | 20 + .../expiry/11_expiry_usage/config/etc/shadow | 20 + .../expiry/11_expiry_usage/data/usage.out | 8 + .../tests/expiry/11_expiry_usage/expiry.test | 47 + .../12_expiry_extra_arg/config/etc/group | 42 + .../12_expiry_extra_arg/config/etc/gshadow | 42 + .../12_expiry_extra_arg/config/etc/passwd | 20 + .../12_expiry_extra_arg/config/etc/shadow | 20 + .../expiry/12_expiry_extra_arg/data/usage.out | 9 + .../expiry/12_expiry_extra_arg/expiry.test | 53 + .../13_expiry_usage-c-f/config/etc/group | 42 + .../13_expiry_usage-c-f/config/etc/gshadow | 42 + .../13_expiry_usage-c-f/config/etc/passwd | 20 + .../13_expiry_usage-c-f/config/etc/shadow | 20 + .../expiry/13_expiry_usage-c-f/data/usage.out | 9 + .../expiry/13_expiry_usage-c-f/expiry.test | 53 + .../01_chage_openRW_passwd_failure/chage.test | 62 + .../01_chage_openRW_passwd_failure/config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/chage.err | 2 + .../02_chage_openRO_passwd_failure/chage.test | 62 + .../02_chage_openRO_passwd_failure/config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/chage.err | 2 + .../03_chage_openRW_shadow_failure/chage.test | 62 + .../03_chage_openRW_shadow_failure/config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/chage.err | 2 + .../04_chage_openRO_shadow_failure/chage.test | 62 + .../04_chage_openRO_shadow_failure/config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/chage.err | 2 + .../05_chage_rename_shadow_failure/chage.test | 62 + .../05_chage_rename_shadow_failure/config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/chage.err | 2 + .../06_chage_rename_passwd_failure/chage.test | 62 + .../06_chage_rename_passwd_failure/config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 19 + .../data/chage.err | 2 + .../data/shadow | 20 + .../chgpasswd.test | 55 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/chgpasswd.err | 2 + .../chgpasswd.test | 55 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/chgpasswd.err | 2 + .../chgpasswd.test | 55 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 41 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 19 + .../data/chgpasswd.err | 2 + .../data/gshadow | 41 + .../chgpasswd.test | 55 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 19 + .../data/chgpasswd.err | 2 + .../chpasswd.test | 55 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/chpasswd.err | 2 + .../chpasswd.test | 55 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/chpasswd.err | 2 + .../chpasswd.test | 55 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 19 + .../data/chpasswd.err | 2 + .../data/shadow | 19 + .../chpasswd.test | 55 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 19 + .../data/chpasswd.err | 2 + .../05_chpasswd-e_time_0/chpasswd.test | 40 + .../05_chpasswd-e_time_0/config.txt | 2 + .../05_chpasswd-e_time_0/config/etc/group | 42 + .../05_chpasswd-e_time_0/config/etc/gshadow | 42 + .../05_chpasswd-e_time_0/config/etc/passwd | 20 + .../05_chpasswd-e_time_0/config/etc/shadow | 20 + .../05_chpasswd-e_time_0/data/shadow | 20 + .../01_chsh_open_passwd_failure/chsh.test | 54 + .../01_chsh_open_passwd_failure/config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../01_chsh_open_passwd_failure/data/chsh.err | 2 + .../02_chsh_rename_passwd_failure/chsh.test | 54 + .../02_chsh_rename_passwd_failure/config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/chsh.err | 2 + .../02_chsh_rename_passwd_failure/data/shadow | 20 + .../01_cppw_open_passwd_in_failure/config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../01_cppw_open_passwd_in_failure/cppw.test | 54 + .../data/cppw.err | 3 + .../data/passwd | 17 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../cppw.test | 54 + .../data/cppw.err | 3 + .../data/passwd | 17 + .../03_cppw_rename_passwd_failure/config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../03_cppw_rename_passwd_failure/cppw.test | 54 + .../data/cppw.err | 3 + .../03_cppw_rename_passwd_failure/data/passwd | 17 + .../01_gpasswd_group_open_failure/config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/gpasswd.err | 2 + .../gpasswd.test | 54 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/gpasswd.err | 2 + .../gpasswd.test | 54 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/gpasswd.err | 2 + .../gpasswd.test | 54 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/gpasswd.err | 2 + .../gpasswd.test | 54 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/gpasswd.err | 2 + .../gpasswd.test | 54 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/gpasswd.err | 2 + .../gpasswd.test | 54 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/gpasswd.err | 2 + .../gpasswd.test | 54 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/gpasswd.err | 2 + .../gpasswd.test | 54 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/gpasswd.err | 2 + .../gpasswd.test | 54 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/gpasswd.err | 2 + .../gpasswd.test | 54 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/gpasswd.err | 2 + .../data/group | 42 + .../gpasswd.test | 54 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/group | 42 + .../data/groupadd.err | 2 + .../groupadd.test | 54 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/groupadd.err | 2 + .../groupadd.test | 54 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/groupadd.err | 2 + .../groupadd.test | 54 + .../04_groupadd_group_open_failure/config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/groupadd.err | 2 + .../groupadd.test | 54 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/group | 41 + .../data/groupdel.err | 2 + .../groupdel.test | 54 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/groupdel.err | 2 + .../groupdel.test | 54 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/groupdel.err | 2 + .../groupdel.test | 54 + .../04_groupdel_group_open_failure/config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/groupdel.err | 2 + .../groupdel.test | 54 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/groupmems.err | 2 + .../groupmems.test | 54 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/groupmems.err | 2 + .../groupmems.test | 54 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/group | 42 + .../data/groupmod.err | 2 + .../groupmod.test | 54 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 42 + .../data/groupmod.err | 2 + .../groupmod.test | 54 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/groupmod.err | 2 + .../groupmod.test | 54 + .../04_groupmod_group_open_failure/config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/groupmod.err | 2 + .../groupmod.test | 54 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/groupmod.err | 2 + .../groupmod.test | 54 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/group | 42 + .../groupmod.test | 39 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/groupmod.err | 2 + .../groupmod.test | 54 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../groupmod.test | 39 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 42 + .../data/gshadow | 42 + .../groupmod.test | 39 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/grpck.err | 2 + .../grpck.test | 54 + .../02_grpck_group_open_failure/config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/grpck.err | 2 + .../02_grpck_group_open_failure/grpck.test | 54 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/grpck.err | 2 + .../grpck.test | 54 + .../04_grpck_gshadow_open_failure/config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../04_grpck_gshadow_open_failure/data/group | 42 + .../data/grpck.err | 2 + .../data/gshadow | 42 + .../04_grpck_gshadow_open_failure/grpck.test | 54 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/grpck.err | 2 + .../grpck.test | 54 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 42 + .../data/grpck.err | 2 + .../grpck.test | 54 + .../01_grpconv_open_group_failure/config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/grpconv.err | 2 + .../grpconv.test | 58 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/grpconv.err | 2 + .../grpconv.test | 58 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/grpconv.err | 2 + .../data/gshadow | 42 + .../grpconv.test | 58 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/grpconv.err | 2 + .../grpconv.test | 58 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/grpunconv.err | 2 + .../grpunconv.test | 54 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/grpunconv.err | 2 + .../grpunconv.test | 54 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/grpunconv.err | 2 + .../grpunconv.test | 54 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 42 + .../data/grpunconv.err | 2 + .../grpunconv.test | 54 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/newusers.err | 2 + .../data/newusers.list | 1 + .../newusers.test | 54 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/newusers.err | 2 + .../data/newusers.list | 1 + .../newusers.test | 54 + .../03_newusers_open_group_failure/config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/newusers.err | 2 + .../data/newusers.list | 1 + .../newusers.test | 54 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/newusers.err | 2 + .../data/newusers.list | 1 + .../newusers.test | 54 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/newusers.err | 2 + .../data/newusers.list | 1 + .../newusers.test | 54 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/newusers.err | 2 + .../data/newusers.list | 1 + .../data/passwd | 20 + .../newusers.test | 54 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/newusers.err | 2 + .../data/newusers.list | 1 + .../data/passwd | 20 + .../data/shadow | 20 + .../newusers.test | 54 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/group | 43 + .../data/newusers.err | 2 + .../data/newusers.list | 1 + .../data/passwd | 20 + .../data/shadow | 20 + .../newusers.test | 54 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 20 + .../data/group | 43 + .../data/gshadow | 43 + .../data/newusers.err | 4 + .../data/newusers.list | 1 + .../data/passwd | 20 + .../newusers.test | 54 + .../newusers/10_newusers_time_0/config.txt | 2 + .../config/etc/default/useradd | 36 + .../10_newusers_time_0/config/etc/group | 41 + .../10_newusers_time_0/config/etc/gshadow | 41 + .../config/etc/pam.d/common-password | 33 + .../10_newusers_time_0/config/etc/passwd | 19 + .../10_newusers_time_0/config/etc/shadow | 19 + .../newusers/10_newusers_time_0/data/group | 42 + .../newusers/10_newusers_time_0/data/gshadow | 42 + .../10_newusers_time_0/data/newusers.list | 1 + .../newusers/10_newusers_time_0/data/passwd | 20 + .../newusers/10_newusers_time_0/data/shadow | 20 + .../newusers/10_newusers_time_0/newusers.test | 39 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/pwck.err | 2 + .../pwck.test | 54 + .../02_pwck_passwd_open_failure/config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../02_pwck_passwd_open_failure/data/pwck.err | 2 + .../02_pwck_passwd_open_failure/pwck.test | 54 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/pwck.err | 2 + .../pwck.test | 54 + .../04_pwck_shadow_open_failure/config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../04_pwck_shadow_open_failure/data/passwd | 19 + .../04_pwck_shadow_open_failure/data/pwck.err | 2 + .../04_pwck_shadow_open_failure/pwck.test | 54 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/pwck.err | 2 + .../pwck.test | 54 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/passwd | 20 + .../data/pwck.err | 2 + .../pwck.test | 54 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/passwd | 20 + .../data/pwck.err | 2 + .../pwck.test | 59 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/passwd | 20 + .../data/passwd.out | 20 + .../data/pwck.err | 2 + .../data/shadow | 20 + .../pwck.test | 59 + .../config.txt | 2 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 12 + .../config/etc/shadow | 11 + .../data/shadow | 12 + .../pwck.exp | 20 + .../pwck.test | 37 + .../01_pwconv_open_passwd_failure/config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/pwconv.err | 2 + .../01_pwconv_open_passwd_failure/pwconv.test | 58 + .../02_pwconv_open_shadow_failure/config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/pwconv.err | 2 + .../02_pwconv_open_shadow_failure/pwconv.test | 58 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/pwconv.err | 2 + .../data/shadow | 20 + .../pwconv.test | 58 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/pwconv.err | 2 + .../pwconv.test | 58 + .../pwconv/05_pwconv_time_0/config.txt | 2 + .../pwconv/05_pwconv_time_0/config/etc/group | 42 + .../05_pwconv_time_0/config/etc/gshadow | 42 + .../pwconv/05_pwconv_time_0/config/etc/passwd | 20 + .../pwconv/05_pwconv_time_0/config/etc/shadow | 20 + .../pwconv/05_pwconv_time_0/data/passwd | 20 + .../pwconv/05_pwconv_time_0/data/shadow | 20 + .../pwconv/05_pwconv_time_0/pwconv.test | 43 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/pwunconv.err | 2 + .../pwunconv.test | 54 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/pwunconv.err | 2 + .../pwunconv.test | 54 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/pwunconv.err | 2 + .../pwunconv.test | 54 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/passwd | 20 + .../data/pwunconv.err | 2 + .../pwunconv.test | 54 + .../01_useradd_open_passwd_failure/config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/useradd.err | 2 + .../useradd.test | 54 + .../02_useradd_open_shadow_failure/config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/useradd.err | 2 + .../useradd.test | 54 + .../03_useradd_open_group_failure/config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/useradd.err | 2 + .../useradd.test | 54 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/useradd.err | 2 + .../useradd.test | 54 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/useradd.err | 2 + .../useradd.test | 54 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/passwd | 20 + .../data/useradd.err | 2 + .../useradd.test | 54 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/passwd | 20 + .../data/shadow | 20 + .../data/useradd.err | 2 + .../useradd.test | 54 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/group | 42 + .../data/passwd | 20 + .../data/shadow | 20 + .../data/useradd.err | 2 + .../useradd.test | 54 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/useradd.err | 2 + .../useradd.test | 55 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/useradd.err | 2 + .../useradd.test | 54 + .../useradd/11_useradd_time_0/config.txt | 2 + .../config/etc/default/useradd | 36 + .../11_useradd_time_0/config/etc/group | 41 + .../11_useradd_time_0/config/etc/gshadow | 41 + .../config/etc/pam.d/common-password | 33 + .../11_useradd_time_0/config/etc/passwd | 19 + .../11_useradd_time_0/config/etc/shadow | 19 + .../useradd/11_useradd_time_0/data/group | 42 + .../useradd/11_useradd_time_0/data/gshadow | 42 + .../11_useradd_time_0/data/newusers.list | 1 + .../useradd/11_useradd_time_0/data/passwd | 20 + .../useradd/11_useradd_time_0/data/shadow | 20 + .../useradd/11_useradd_time_0/useradd.test | 39 + .../12_useradd_open_subuid_failure/config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../config/etc/subgid | 0 .../config/etc/subuid | 0 .../data/useradd.err | 2 + .../useradd.test | 60 + .../13_useradd_open_subgid_failure/config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../config/etc/subgid | 0 .../config/etc/subuid | 0 .../data/useradd.err | 2 + .../useradd.test | 60 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../config/etc/subgid | 0 .../config/etc/subuid | 0 .../data/group | 42 + .../data/gshadow | 42 + .../data/passwd | 20 + .../data/shadow | 20 + .../data/useradd.err | 2 + .../useradd.test | 60 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../config/etc/subgid | 0 .../config/etc/subuid | 0 .../data/group | 42 + .../data/gshadow | 42 + .../data/passwd | 20 + .../data/shadow | 20 + .../data/subuid | 1 + .../data/useradd.err | 2 + .../useradd.test | 60 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 41 + .../data/passwd | 19 + .../data/shadow | 19 + .../data/userdel.err | 2 + .../userdel.test | 54 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/passwd | 19 + .../data/shadow | 19 + .../data/userdel.err | 2 + .../userdel.test | 54 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/passwd | 19 + .../data/userdel.err | 2 + .../userdel.test | 54 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/userdel.err | 2 + .../userdel.test | 54 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../config/var/mail/foo | 0 .../data/group | 41 + .../data/gshadow | 41 + .../data/passwd | 19 + .../data/shadow | 19 + .../data/userdel.err | 3 + .../userdel.test | 58 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 41 + .../data/gshadow | 41 + .../data/passwd | 19 + .../data/shadow | 19 + .../data/userdel.err | 3 + .../userdel.test | 64 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 41 + .../data/gshadow | 41 + .../data/passwd | 19 + .../data/shadow | 19 + .../data/userdel.err | 3 + .../userdel.test | 64 + .../08_userdel_open_passwd_failure/config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/userdel.err | 2 + .../userdel.test | 54 + .../09_userdel_open_shadow_failure/config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/userdel.err | 2 + .../userdel.test | 54 + .../10_userdel_open_group_failure/config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/userdel.err | 2 + .../userdel.test | 54 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/userdel.err | 2 + .../userdel.test | 54 + .../12_userdel_open_subuid_failure/config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../config/etc/subgid | 0 .../config/etc/subuid | 0 .../data/userdel.err | 2 + .../userdel.test | 60 + .../13_userdel_open_subgid_failure/config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../config/etc/subgid | 0 .../config/etc/subuid | 0 .../data/userdel.err | 2 + .../userdel.test | 60 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../config/etc/subgid | 1 + .../config/etc/subuid | 1 + .../data/group | 41 + .../data/gshadow | 41 + .../data/passwd | 19 + .../data/shadow | 19 + .../data/userdel.err | 2 + .../usedel.test | 60 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../config/etc/subgid | 1 + .../config/etc/subuid | 2 + .../data/group | 41 + .../data/gshadow | 41 + .../data/passwd | 19 + .../data/shadow | 19 + .../data/subuid | 1 + .../data/userdel.err | 2 + .../usedel.test | 60 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 42 + .../data/passwd | 20 + .../data/shadow | 20 + .../data/usermod.err | 2 + .../usermod.test | 54 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/usermod.err | 2 + .../usermod.test | 54 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/passwd | 20 + .../data/shadow | 20 + .../data/usermod.err | 2 + .../usermod.test | 54 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/passwd | 20 + .../data/shadow | 20 + .../usermod.test | 39 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/passwd | 20 + .../data/usermod.err | 2 + .../usermod.test | 54 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/usermod.err | 2 + .../usermod.test | 54 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/usermod.err | 2 + .../usermod.test | 54 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/usermod.err | 2 + .../usermod.test | 54 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/usermod.err | 2 + .../usermod.test | 54 + .../usermod/10_usermod_-p_time_0/config.txt | 2 + .../config/etc/default/useradd | 36 + .../10_usermod_-p_time_0/config/etc/group | 42 + .../10_usermod_-p_time_0/config/etc/gshadow | 42 + .../10_usermod_-p_time_0/config/etc/passwd | 20 + .../10_usermod_-p_time_0/config/etc/shadow | 20 + .../usermod/10_usermod_-p_time_0/data/passwd | 20 + .../usermod/10_usermod_-p_time_0/data/shadow | 20 + .../usermod/10_usermod_-p_time_0/usermod.test | 39 + .../config.txt | 2 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 19 + .../data/shadow | 20 + .../usermod.test | 39 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/usermod.err | 2 + .../usermod.test | 50 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../config/etc/subgid | 0 .../config/etc/subuid | 0 .../data/usermod.err | 2 + .../usermod.test | 60 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../config/etc/subgid | 0 .../config/etc/subuid | 0 .../data/usermod.err | 2 + .../usermod.test | 60 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../config/etc/subgid | 0 .../config/etc/subuid | 0 .../data/usermod.err | 2 + .../usermod.test | 60 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../config/etc/subgid | 0 .../config/etc/subuid | 0 .../data/usermod.err | 2 + .../usermod.test | 60 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../config/etc/subgid | 0 .../config/etc/subuid | 0 .../data/usermod.err | 2 + .../usermod.test | 60 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../config/etc/subgid | 0 .../config/etc/subuid | 0 .../data/usermod.err | 2 + .../usermod.test | 60 + .../01_chgpasswd_invalid_group/chgpasswd.test | 56 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/login.defs | 317 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/chgpasswd.err | 2 + .../chgpasswd.test | 40 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/login.defs | 317 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../02_chgpasswd_multiple_groups/data/gshadow | 41 + .../chgpasswd.test | 44 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/login.defs | 317 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../03_chgpasswd_no_gshadow_file/data/group | 41 + .../chgpasswd.test | 40 + .../config/etc/group | 41 + .../config/etc/gshadow | 40 + .../config/etc/login.defs | 317 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../04_chgpasswd_no_gshadow_entry/data/group | 41 + .../data/gshadow | 41 + .../chgpasswd.test | 55 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/login.defs | 317 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/chgpasswd.err | 2 + .../06_chgpasswd_usage/chgpasswd.test | 48 + .../chgpasswd/06_chgpasswd_usage/config.txt | 10 + .../config/etc/default/useradd | 36 + .../06_chgpasswd_usage/config/etc/group | 41 + .../06_chgpasswd_usage/config/etc/gshadow | 41 + .../06_chgpasswd_usage/config/etc/passwd | 19 + .../06_chgpasswd_usage/config/etc/shadow | 19 + .../06_chgpasswd_usage/data/usage.out | 12 + .../chgpasswd.test | 54 + .../07_chgpasswd_usage_bad_option/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/usage.out | 13 + .../chgpasswd.test | 54 + .../config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 20 + .../config/etc/shadow | 19 + .../data/usage.out | 13 + .../chgpasswd.test | 54 + .../config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 20 + .../config/etc/shadow | 19 + .../data/usage.out | 13 + .../chgpasswd.test | 54 + .../config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 20 + .../config/etc/shadow | 19 + .../data/usage.out | 13 + .../chgpasswd.test | 54 + .../11_chgpasswd_usage-s_without-c/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 20 + .../config/etc/shadow | 19 + .../data/usage.out | 13 + .../chgpasswd.test | 54 + .../12_chgpasswd_usage-s_invalid/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 20 + .../config/etc/shadow | 19 + .../data/usage.out | 13 + .../chgpasswd.test | 54 + .../13_chgpasswd_usage-c_invalid/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 20 + .../config/etc/shadow | 19 + .../data/usage.out | 13 + .../chgpasswd.test | 40 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/gshadow | 41 + .../15_chgpasswd_password_md5/chgpasswd.test | 40 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../15_chgpasswd_password_md5/data/gshadow | 41 + .../16_chgpasswd_password_NONE/chgpasswd.test | 40 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../16_chgpasswd_password_NONE/data/gshadow | 41 + .../17_chgpasswd_password_MD5/chgpasswd.test | 40 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../17_chgpasswd_password_MD5/data/gshadow | 41 + .../18_chgpasswd_password_DES/chgpasswd.test | 40 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../18_chgpasswd_password_DES/data/gshadow | 41 + .../chgpasswd.test | 40 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../19_chgpasswd_password_SHA256/data/gshadow | 41 + .../chgpasswd.test | 41 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/gshadow | 41 + .../chgpasswd.test | 41 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/gshadow | 41 + .../chgpasswd.test | 40 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../22_chgpasswd_password_SHA512/data/gshadow | 41 + .../chgpasswd.test | 41 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/gshadow | 41 + .../chgpasswd.test | 41 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/gshadow | 41 + .../chgpasswd.test | 44 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../25_chgpasswd-e_no_gshadow_file/data/group | 41 + .../chgpasswd.test | 44 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/group | 41 + .../chgpasswd.test | 40 + .../config/etc/group | 41 + .../config/etc/gshadow | 40 + .../config/etc/passwd | 19 + .../config/etc/shadow | 18 + .../data/group | 41 + .../data/gshadow | 41 + .../30_chgpasswd_locked_group/chgpasswd.test | 61 + .../30_chgpasswd_locked_group/config.txt | 0 .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/chgpasswd.err | 2 + .../chgpasswd.test | 61 + .../31_chgpasswd_locked_gshadow/config.txt | 0 .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/chgpasswd.err | 2 + .../32_chgpasswd_invalid_group/chgpasswd.test | 56 + .../32_chgpasswd_invalid_group/config.txt | 0 .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/chgpasswd.err | 2 + .../01_gpasswd_change_member_list/config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../01_gpasswd_change_member_list/data/group | 42 + .../data/gshadow | 42 + .../gpasswd.test | 39 + .../02_gpasswd_change_member_list/config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../02_gpasswd_change_member_list/data/group | 42 + .../data/gshadow | 42 + .../gpasswd.test | 39 + .../03_gpasswd_change_member_list/config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../03_gpasswd_change_member_list/data/group | 42 + .../data/gshadow | 42 + .../gpasswd.test | 39 + .../04_gpasswd_change_member_list/config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../04_gpasswd_change_member_list/data/group | 42 + .../data/gshadow | 42 + .../gpasswd.test | 39 + .../05_gpasswd_change_member_list/config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../05_gpasswd_change_member_list/data/group | 42 + .../data/gshadow | 42 + .../gpasswd.test | 39 + .../06_gpasswd_change_member_list/config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../06_gpasswd_change_member_list/data/group | 42 + .../data/gshadow | 42 + .../gpasswd.test | 39 + .../config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 42 + .../data/gshadow | 42 + .../gpasswd.test | 39 + .../config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 42 + .../data/gshadow | 42 + .../gpasswd.test | 39 + .../config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 42 + .../data/gshadow | 42 + .../gpasswd.test | 39 + .../config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 42 + .../data/gshadow | 42 + .../gpasswd.test | 39 + .../config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 42 + .../data/gshadow | 42 + .../gpasswd.test | 39 + .../config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 42 + .../data/gshadow | 42 + .../gpasswd.test | 39 + .../config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 42 + .../gpasswd.test | 42 + .../config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 42 + .../gpasswd.test | 42 + .../config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 42 + .../gpasswd.test | 42 + .../config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 42 + .../gpasswd.test | 42 + .../config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 42 + .../gpasswd.test | 43 + .../config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 42 + .../gpasswd.test | 42 + .../19_gpasswd_change_passwd-root/config.txt | 3 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 334 ++++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/gshadow | 42 + .../19_gpasswd_change_passwd-root/gpasswd.exp | 70 + .../gpasswd.test | 42 + .../config.txt | 3 + .../config/etc/group | 42 + .../config/etc/gshadow | 41 + .../config/etc/login.defs | 334 ++++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/gshadow | 42 + .../gpasswd.exp | 70 + .../gpasswd.test | 42 + .../config.txt | 3 + .../config/etc/group | 42 + .../config/etc/gshadow | 41 + .../config/etc/login.defs | 334 ++++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 42 + .../gpasswd.exp | 70 + .../gpasswd.test | 45 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 334 ++++ .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../data/gshadow | 42 + .../gpasswd.exp | 70 + .../gpasswd.test | 42 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../gpasswd.exp | 60 + .../gpasswd.test | 42 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../gpasswd.exp | 59 + .../gpasswd.test | 45 + .../25_gpasswd_remove_password/config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../25_gpasswd_remove_password/data/group | 42 + .../25_gpasswd_remove_password/data/gshadow | 42 + .../25_gpasswd_remove_password/gpasswd.test | 39 + .../config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 42 + .../data/gshadow | 42 + .../gpasswd.test | 39 + .../config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 42 + .../gpasswd.test | 42 + .../28_gpasswd_lock_password/config.txt | 5 + .../config/etc/default/useradd | 36 + .../28_gpasswd_lock_password/config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../28_gpasswd_lock_password/data/group | 42 + .../28_gpasswd_lock_password/data/gshadow | 42 + .../28_gpasswd_lock_password/gpasswd.test | 39 + .../config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 42 + .../data/gshadow | 42 + .../gpasswd.test | 39 + .../config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 42 + .../gpasswd.test | 42 + .../31_gpasswd_add_user_to_group/config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../31_gpasswd_add_user_to_group/data/group | 42 + .../31_gpasswd_add_user_to_group/data/gshadow | 42 + .../31_gpasswd_add_user_to_group/gpasswd.test | 39 + .../config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 42 + .../data/gshadow | 42 + .../gpasswd.test | 39 + .../config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 42 + .../gpasswd.test | 42 + .../config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 42 + .../data/gshadow | 42 + .../gpasswd.test | 39 + .../config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 42 + .../data/gshadow | 42 + .../gpasswd.test | 39 + .../config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 42 + .../data/gshadow | 42 + .../gpasswd.test | 40 + .../config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 42 + .../data/gshadow | 42 + .../gpasswd.test | 39 + .../config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 42 + .../data/gshadow | 42 + .../gpasswd.test | 39 + .../config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 42 + .../data/gshadow | 42 + .../gpasswd.test | 39 + .../config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 42 + .../gpasswd.test | 42 + .../config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 42 + .../gpasswd.test | 42 + .../config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 42 + .../gpasswd.test | 42 + .../43_gpasswd_-r_locked_group/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/gpasswd.err | 2 + .../43_gpasswd_-r_locked_group/gpasswd.test | 60 + .../44_gpasswd_-r_locked_gshadow/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/gpasswd.err | 2 + .../44_gpasswd_-r_locked_gshadow/gpasswd.test | 60 + .../45_gpasswd_-r_unknown_group/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/gpasswd.err | 1 + .../45_gpasswd_-r_unknown_group/gpasswd.test | 54 + .../46_gpasswd_-a_unknown_user/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/gpasswd.err | 1 + .../46_gpasswd_-a_unknown_user/gpasswd.test | 54 + .../47_gpasswd_-M_unknown_user/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/gpasswd.err | 1 + .../47_gpasswd_-M_unknown_user/gpasswd.test | 54 + .../48_gpasswd_change_admin_list/config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../48_gpasswd_change_admin_list/data/gshadow | 42 + .../48_gpasswd_change_admin_list/gpasswd.test | 39 + .../49_gpasswd_change_admin_list/config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../49_gpasswd_change_admin_list/data/gshadow | 42 + .../49_gpasswd_change_admin_list/gpasswd.test | 39 + .../50_gpasswd_change_admin_list/config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../50_gpasswd_change_admin_list/data/gshadow | 42 + .../50_gpasswd_change_admin_list/gpasswd.test | 39 + .../51_gpasswd_change_admin_list/config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../51_gpasswd_change_admin_list/data/gshadow | 42 + .../51_gpasswd_change_admin_list/gpasswd.test | 39 + .../52_gpasswd_change_admin_list/config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../52_gpasswd_change_admin_list/data/gshadow | 42 + .../52_gpasswd_change_admin_list/gpasswd.test | 39 + .../53_gpasswd_change_admin_list/config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../53_gpasswd_change_admin_list/data/gshadow | 42 + .../53_gpasswd_change_admin_list/gpasswd.test | 39 + .../config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/gshadow | 42 + .../gpasswd.test | 39 + .../config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/gpasswd.err | 1 + .../gpasswd.test | 57 + .../56_gpasswd_add_user_to_group/config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../56_gpasswd_add_user_to_group/gpasswd.test | 39 + .../config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/gpasswd.err | 1 + .../gpasswd.test | 54 + .../config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 42 + .../gpasswd.test | 39 + .../config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/gshadow | 42 + .../gpasswd.test | 39 + .../config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 42 + .../data/gshadow | 42 + .../gpasswd.test | 39 + .../gpasswd/61_gpasswd_usage/config.txt | 10 + .../gpasswd/61_gpasswd_usage/config/etc/group | 41 + .../61_gpasswd_usage/config/etc/gshadow | 41 + .../61_gpasswd_usage/config/etc/passwd | 19 + .../61_gpasswd_usage/config/etc/shadow | 19 + .../gpasswd/61_gpasswd_usage/data/usage.out | 13 + .../gpasswd/61_gpasswd_usage/gpasswd.test | 49 + .../62_gpasswd_-A_unknown_user/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/gpasswd.err | 1 + .../62_gpasswd_-A_unknown_user/gpasswd.test | 54 + .../63_gpasswd_usage_bad_option/config.txt | 10 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/usage.out | 14 + .../63_gpasswd_usage_bad_option/gpasswd.test | 54 + .../gpasswd/64_gpasswd_usage-a-d/config.txt | 10 + .../64_gpasswd_usage-a-d/config/etc/group | 41 + .../64_gpasswd_usage-a-d/config/etc/gshadow | 41 + .../64_gpasswd_usage-a-d/config/etc/passwd | 19 + .../64_gpasswd_usage-a-d/config/etc/shadow | 19 + .../64_gpasswd_usage-a-d/data/usage.out | 13 + .../gpasswd/64_gpasswd_usage-a-d/gpasswd.test | 54 + .../65_gpasswd_usage_no_groups/config.txt | 10 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../65_gpasswd_usage_no_groups/data/usage.out | 13 + .../65_gpasswd_usage_no_groups/gpasswd.test | 54 + .../66_gpasswd_usage_2_groups/config.txt | 10 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../66_gpasswd_usage_2_groups/data/usage.out | 13 + .../66_gpasswd_usage_2_groups/gpasswd.test | 54 + .../gpasswd/67_gpasswd-A_myuser/config.txt | 1 + .../67_gpasswd-A_myuser/config/etc/group | 42 + .../67_gpasswd-A_myuser/config/etc/gshadow | 42 + .../67_gpasswd-A_myuser/config/etc/passwd | 21 + .../67_gpasswd-A_myuser/config/etc/shadow | 21 + .../gpasswd/67_gpasswd-A_myuser/gpasswd.exp | 59 + .../gpasswd/67_gpasswd-A_myuser/gpasswd.test | 42 + .../gpasswd/68_gpasswd-M_myuser/config.txt | 1 + .../68_gpasswd-M_myuser/config/etc/group | 42 + .../68_gpasswd-M_myuser/config/etc/gshadow | 42 + .../68_gpasswd-M_myuser/config/etc/passwd | 21 + .../68_gpasswd-M_myuser/config/etc/shadow | 21 + .../gpasswd/68_gpasswd-M_myuser/gpasswd.exp | 60 + .../gpasswd/68_gpasswd-M_myuser/gpasswd.test | 42 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 334 ++++ .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../data/gshadow | 42 + .../gpasswd.exp | 87 + .../gpasswd.test | 42 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 334 ++++ .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../data/gshadow | 42 + .../gpasswd.exp | 96 + .../gpasswd.test | 42 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 334 ++++ .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../gpasswd.exp | 96 + .../gpasswd.test | 42 + .../gpasswd/72_gpasswd-M-A/config.txt | 5 + .../gpasswd/72_gpasswd-M-A/config/etc/group | 42 + .../gpasswd/72_gpasswd-M-A/config/etc/gshadow | 42 + .../gpasswd/72_gpasswd-M-A/config/etc/passwd | 20 + .../gpasswd/72_gpasswd-M-A/config/etc/shadow | 20 + .../gpasswd/72_gpasswd-M-A/data/group | 42 + .../gpasswd/72_gpasswd-M-A/data/gshadow | 42 + .../gpasswd/72_gpasswd-M-A/gpasswd.test | 39 + .../groupadd/01_groupadd_add_group/config.txt | 5 + .../config/etc/default/useradd | 36 + .../01_groupadd_add_group/config/etc/group | 41 + .../01_groupadd_add_group/config/etc/gshadow | 41 + .../config/etc/login.defs | 314 +++ .../01_groupadd_add_group/config/etc/passwd | 19 + .../01_groupadd_add_group/config/etc/shadow | 19 + .../groupadd/01_groupadd_add_group/data/group | 42 + .../01_groupadd_add_group/data/gshadow | 42 + .../01_groupadd_add_group/groupadd.test | 39 + .../02_groupadd_add_group_GID_MIN/config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../02_groupadd_add_group_GID_MIN/data/group | 42 + .../data/gshadow | 42 + .../groupadd.test | 39 + .../config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/group | 42 + .../data/gshadow | 42 + .../groupadd.test | 39 + .../04_groupadd_set_password/config.txt | 5 + .../config/etc/default/useradd | 36 + .../04_groupadd_set_password/config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../04_groupadd_set_password/data/group | 42 + .../04_groupadd_set_password/data/gshadow | 42 + .../04_groupadd_set_password/groupadd.test | 39 + .../groupadd/05_groupadd_set_GID/config.txt | 5 + .../config/etc/default/useradd | 36 + .../05_groupadd_set_GID/config/etc/group | 41 + .../05_groupadd_set_GID/config/etc/gshadow | 41 + .../05_groupadd_set_GID/config/etc/login.defs | 314 +++ .../05_groupadd_set_GID/config/etc/passwd | 19 + .../05_groupadd_set_GID/config/etc/shadow | 19 + .../groupadd/05_groupadd_set_GID/data/group | 42 + .../groupadd/05_groupadd_set_GID/data/gshadow | 42 + .../05_groupadd_set_GID/groupadd.test | 39 + .../config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../groupadd.test | 39 + .../config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/group | 43 + .../data/gshadow | 43 + .../groupadd.test | 39 + .../08_groupadd_locked_group/config.txt | 10 + .../config/etc/default/useradd | 36 + .../08_groupadd_locked_group/config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/groupadd.err | 2 + .../08_groupadd_locked_group/groupadd.test | 60 + .../09_groupadd_locked_gshadow/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/groupadd.err | 2 + .../09_groupadd_locked_gshadow/groupadd.test | 60 + .../config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/group | 43 + .../data/gshadow | 43 + .../groupadd.test | 39 + .../11_groupadd_invalid_GID/config.txt | 10 + .../config/etc/default/useradd | 36 + .../11_groupadd_invalid_GID/config/etc/group | 41 + .../config/etc/gshadow | 41 + .../11_groupadd_invalid_GID/config/etc/passwd | 19 + .../11_groupadd_invalid_GID/config/etc/shadow | 19 + .../11_groupadd_invalid_GID/data/groupadd.err | 1 + .../11_groupadd_invalid_GID/groupadd.test | 54 + .../12_groupadd_negative_GID/config.txt | 10 + .../config/etc/default/useradd | 36 + .../12_groupadd_negative_GID/config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/groupadd.err | 1 + .../12_groupadd_negative_GID/groupadd.test | 54 + .../13_groupadd_invalid_name/config.txt | 10 + .../config/etc/default/useradd | 36 + .../13_groupadd_invalid_name/config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/groupadd.err | 1 + .../13_groupadd_invalid_name/groupadd.test | 54 + .../14_groupadd_invalid_-K_option/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/groupadd.err | 1 + .../groupadd.test | 54 + .../15_groupadd_invalid_-K_no_=/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/groupadd.err | 1 + .../15_groupadd_invalid_-K_no_=/groupadd.test | 54 + .../16_groupadd_existing_group/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/groupadd.err | 1 + .../16_groupadd_existing_group/groupadd.test | 54 + .../17_groupadd_add_systemgroup/config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/login.defs | 315 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../17_groupadd_add_systemgroup/data/group | 42 + .../17_groupadd_add_systemgroup/data/gshadow | 42 + .../17_groupadd_add_systemgroup/groupadd.test | 39 + .../18_groupadd_no_more_GID/config.txt | 10 + .../config/etc/default/useradd | 36 + .../18_groupadd_no_more_GID/config/etc/group | 43 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../18_groupadd_no_more_GID/config/etc/passwd | 19 + .../18_groupadd_no_more_GID/config/etc/shadow | 19 + .../18_groupadd_no_more_GID/data/groupadd.err | 1 + .../18_groupadd_no_more_GID/groupadd.test | 54 + .../config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 43 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 316 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/groupadd.err | 1 + .../groupadd.test | 54 + .../20_groupadd_add_existing_GID/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/groupadd.err | 1 + .../groupadd.test | 54 + .../config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/groupadd.err | 1 + .../groupadd.test | 54 + .../groupadd/22_groupadd_usage/config.txt | 10 + .../config/etc/default/useradd | 36 + .../22_groupadd_usage/config/etc/group | 41 + .../22_groupadd_usage/config/etc/gshadow | 41 + .../22_groupadd_usage/config/etc/passwd | 19 + .../22_groupadd_usage/config/etc/shadow | 19 + .../groupadd/22_groupadd_usage/data/usage.out | 14 + .../groupadd/22_groupadd_usage/groupadd.test | 49 + .../groupadd/23_groupadd_no_groups/config.txt | 10 + .../config/etc/default/useradd | 36 + .../23_groupadd_no_groups/config/etc/group | 41 + .../23_groupadd_no_groups/config/etc/gshadow | 41 + .../23_groupadd_no_groups/config/etc/passwd | 19 + .../23_groupadd_no_groups/config/etc/shadow | 19 + .../23_groupadd_no_groups/data/groupadd.err | 14 + .../23_groupadd_no_groups/groupadd.test | 54 + .../groupadd/24_groupadd_2_groups/config.txt | 10 + .../config/etc/default/useradd | 36 + .../24_groupadd_2_groups/config/etc/group | 41 + .../24_groupadd_2_groups/config/etc/gshadow | 41 + .../24_groupadd_2_groups/config/etc/passwd | 19 + .../24_groupadd_2_groups/config/etc/shadow | 19 + .../24_groupadd_2_groups/data/groupadd.err | 14 + .../24_groupadd_2_groups/groupadd.test | 54 + .../25_groupadd_no_gshadow/config.txt | 5 + .../config/etc/default/useradd | 36 + .../25_groupadd_no_gshadow/config/etc/group | 41 + .../25_groupadd_no_gshadow/config/etc/gshadow | 41 + .../config/etc/login.defs | 314 +++ .../25_groupadd_no_gshadow/config/etc/passwd | 19 + .../25_groupadd_no_gshadow/config/etc/shadow | 19 + .../25_groupadd_no_gshadow/data/group | 42 + .../25_groupadd_no_gshadow/groupadd.test | 43 + .../26_groupadd_-o_without_-g/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/groupadd.err | 14 + .../26_groupadd_-o_without_-g/groupadd.test | 54 + .../27_groupadd_invalid_option/config.txt | 10 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/groupadd.err | 15 + .../27_groupadd_invalid_option/groupadd.test | 54 + .../01_groupdel_delete_group/config.txt | 5 + .../config/etc/default/useradd | 36 + .../01_groupdel_delete_group/config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../01_groupdel_delete_group/data/group | 41 + .../01_groupdel_delete_group/data/gshadow | 41 + .../01_groupdel_delete_group/groupdel.test | 39 + .../config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 41 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/group | 41 + .../groupdel.test | 39 + .../config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/group | 41 + .../groupdel.test | 42 + .../config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/groupdel.err | 1 + .../groupdel.test | 54 + .../config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/groupdel.err | 1 + .../groupdel.test | 54 + .../config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/groupdel.err | 2 + .../groupdel.test | 60 + .../config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/groupdel.err | 2 + .../groupdel.test | 60 + .../config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/groupdel.err | 6 + .../groupdel.test | 54 + .../config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/groupdel.err | 6 + .../groupdel.test | 54 + .../groupdel/10_groupdel_usage/config.txt | 5 + .../config/etc/default/useradd | 36 + .../10_groupdel_usage/config/etc/group | 42 + .../10_groupdel_usage/config/etc/gshadow | 42 + .../10_groupdel_usage/config/etc/login.defs | 314 +++ .../10_groupdel_usage/config/etc/passwd | 20 + .../10_groupdel_usage/config/etc/shadow | 20 + .../groupdel/10_groupdel_usage/data/usage.out | 6 + .../groupdel/10_groupdel_usage/groupdel.test | 48 + .../11_groupdel_invalid_option/config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/groupdel.err | 7 + .../11_groupdel_invalid_option/groupdel.test | 54 + .../01_groupmems_root_add_user/config.txt | 2 + .../config/etc/group | 44 + .../config/etc/gshadow | 44 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../01_groupmems_root_add_user/data/group | 44 + .../01_groupmems_root_add_user/data/gshadow | 44 + .../01_groupmems_root_add_user/groupmems.test | 39 + .../02_groupmems_root_del_user/config.txt | 2 + .../config/etc/group | 44 + .../config/etc/gshadow | 44 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../02_groupmems_root_del_user/data/group | 44 + .../02_groupmems_root_del_user/data/gshadow | 44 + .../02_groupmems_root_del_user/groupmems.test | 39 + .../config.txt | 2 + .../config/etc/group | 44 + .../config/etc/gshadow | 44 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 44 + .../data/gshadow | 44 + .../groupmems.test | 39 + .../config.txt | 2 + .../config/etc/group | 44 + .../config/etc/gshadow | 44 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 44 + .../data/gshadow | 44 + .../groupmems.test | 39 + .../config.txt | 2 + .../config/etc/group | 44 + .../config/etc/gshadow | 44 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 44 + .../data/gshadow | 44 + .../groupmems.test | 39 + .../config.txt | 2 + .../config/etc/group | 44 + .../config/etc/gshadow | 44 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 44 + .../data/gshadow | 44 + .../groupmems.test | 39 + .../config.txt | 2 + .../config/etc/group | 44 + .../config/etc/gshadow | 44 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 44 + .../data/gshadow | 44 + .../groupmems.test | 39 + .../config.txt | 2 + .../config/etc/group | 44 + .../config/etc/gshadow | 44 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 44 + .../data/gshadow | 44 + .../groupmems.test | 39 + .../09_groupmems_root_purge_user/config.txt | 2 + .../config/etc/group | 44 + .../config/etc/gshadow | 44 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../09_groupmems_root_purge_user/data/group | 44 + .../09_groupmems_root_purge_user/data/gshadow | 44 + .../groupmems.test | 39 + .../config.txt | 2 + .../config/etc/group | 44 + .../config/etc/gshadow | 44 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 44 + .../data/gshadow | 44 + .../groupmems.test | 39 + .../config.txt | 2 + .../config/etc/group | 44 + .../config/etc/gshadow | 44 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 44 + .../data/gshadow | 44 + .../groupmems.test | 39 + .../12_groupmems_user_add_user/config.txt | 1 + .../config/etc/group | 44 + .../config/etc/gshadow | 44 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../12_groupmems_user_add_user/data/group | 44 + .../12_groupmems_user_add_user/data/gshadow | 44 + .../12_groupmems_user_add_user/groupmems.test | 39 + .../run_groupmems.exp | 49 + .../13_groupmems_user_del_user/config.txt | 1 + .../config/etc/group | 44 + .../config/etc/gshadow | 44 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../13_groupmems_user_del_user/data/group | 44 + .../13_groupmems_user_del_user/data/gshadow | 44 + .../13_groupmems_user_del_user/groupmems.test | 39 + .../run_groupmems.exp | 49 + .../config.txt | 1 + .../config/etc/group | 44 + .../config/etc/gshadow | 44 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../data/group | 44 + .../data/gshadow | 44 + .../groupmems.test | 39 + .../run_groupmems.exp | 49 + .../config.txt | 1 + .../config/etc/group | 44 + .../config/etc/gshadow | 44 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../data/group | 44 + .../data/gshadow | 44 + .../groupmems.test | 39 + .../run_groupmems.exp | 49 + .../config.txt | 1 + .../config/etc/group | 44 + .../config/etc/gshadow | 44 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../data/group | 44 + .../data/gshadow | 44 + .../groupmems.test | 39 + .../run_groupmems.exp | 49 + .../config.txt | 1 + .../config/etc/group | 44 + .../config/etc/gshadow | 44 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../data/group | 44 + .../data/gshadow | 44 + .../groupmems.test | 39 + .../run_groupmems.exp | 49 + .../config.txt | 1 + .../config/etc/group | 44 + .../config/etc/gshadow | 44 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../data/group | 44 + .../data/gshadow | 44 + .../groupmems.test | 39 + .../run_groupmems.exp | 49 + .../config.txt | 1 + .../config/etc/group | 44 + .../config/etc/gshadow | 44 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../data/group | 44 + .../data/gshadow | 44 + .../groupmems.test | 39 + .../run_groupmems.exp | 49 + .../20_groupmems_user_purge_user/config.txt | 1 + .../config/etc/group | 44 + .../config/etc/gshadow | 44 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../20_groupmems_user_purge_user/data/group | 44 + .../20_groupmems_user_purge_user/data/gshadow | 44 + .../groupmems.test | 39 + .../run_groupmems.exp | 49 + .../config.txt | 1 + .../config/etc/group | 44 + .../config/etc/gshadow | 44 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../data/group | 44 + .../data/gshadow | 44 + .../groupmems.test | 39 + .../run_groupmems.exp | 49 + .../config.txt | 1 + .../config/etc/group | 44 + .../config/etc/gshadow | 44 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../data/group | 44 + .../data/gshadow | 44 + .../groupmems.test | 39 + .../run_groupmems.exp | 49 + .../config.txt | 1 + .../config/etc/group | 44 + .../config/etc/gshadow | 44 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../groupmems.test | 39 + .../run_groupmems.exp | 41 + .../config.txt | 1 + .../config/etc/group | 45 + .../config/etc/gshadow | 45 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../groupmems.test | 39 + .../run_groupmems.exp | 42 + .../config.txt | 1 + .../config/etc/group | 45 + .../config/etc/gshadow | 45 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../groupmems.test | 39 + .../run_groupmems.exp | 42 + .../config.txt | 1 + .../config/etc/group | 44 + .../config/etc/gshadow | 44 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../groupmems.test | 39 + .../run_groupmems.exp | 50 + .../config.txt | 1 + .../config/etc/group | 44 + .../config/etc/gshadow | 44 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../groupmems.test | 39 + .../run_groupmems.exp | 50 + .../config.txt | 1 + .../config/etc/group | 44 + .../config/etc/gshadow | 44 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../data/group | 44 + .../groupmems.test | 39 + .../run_groupmems.exp | 48 + .../config.txt | 1 + .../config/etc/group | 44 + .../config/etc/gshadow | 44 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../groupmems.test | 39 + .../run_groupmems.exp | 42 + .../config.txt | 1 + .../config/etc/group | 44 + .../config/etc/gshadow | 43 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../data/group | 44 + .../data/gshadow | 44 + .../groupmems.test | 39 + .../run_groupmems.exp | 49 + .../config.txt | 1 + .../config/etc/group | 44 + .../config/etc/gshadow | 43 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../data/group | 44 + .../groupmems.test | 42 + .../run_groupmems.exp | 49 + .../config.txt | 1 + .../config/etc/group | 44 + .../config/etc/gshadow | 44 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../groupmems.test | 39 + .../run_groupmems.exp | 50 + .../config.txt | 1 + .../config/etc/group | 44 + .../config/etc/gshadow | 44 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../data/group | 44 + .../groupmems.test | 39 + .../run_groupmems.exp | 48 + .../config.txt | 1 + .../config/etc/group | 44 + .../config/etc/gshadow | 44 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../data/group | 44 + .../data/gshadow | 44 + .../groupmems.test | 39 + .../run_groupmems.exp | 48 + .../config.txt | 1 + .../config/etc/group | 44 + .../config/etc/gshadow | 43 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../data/group | 44 + .../data/gshadow | 44 + .../groupmems.test | 39 + .../run_groupmems.exp | 49 + .../config.txt | 1 + .../config/etc/group | 44 + .../config/etc/gshadow | 44 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../data/group | 44 + .../groupmems.test | 42 + .../run_groupmems.exp | 49 + .../config.txt | 1 + .../config/etc/group | 44 + .../config/etc/gshadow | 44 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../data/gshadow | 44 + .../groupmems.test | 39 + .../run_groupmems.exp | 49 + .../config.txt | 1 + .../config/etc/group | 44 + .../config/etc/gshadow | 43 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../data/group | 44 + .../data/gshadow | 44 + .../groupmems.test | 39 + .../run_groupmems.exp | 49 + .../config.txt | 1 + .../config/etc/group | 44 + .../config/etc/gshadow | 44 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../data/group | 44 + .../groupmems.test | 42 + .../run_groupmems.exp | 49 + .../config.txt | 1 + .../config/etc/group | 45 + .../config/etc/gshadow | 45 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../groupmems.test | 39 + .../run_groupmems.exp | 42 + .../config.txt | 1 + .../config/etc/group | 45 + .../config/etc/gshadow | 45 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../groupmems.test | 39 + .../run_groupmems.exp | 42 + .../42_groupmems_user_list_users/config.txt | 1 + .../config/etc/group | 44 + .../config/etc/gshadow | 44 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../groupmems.test | 39 + .../run_groupmems.exp | 42 + .../config.txt | 1 + .../config/etc/group | 44 + .../config/etc/gshadow | 44 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../groupmems.test | 39 + .../run_groupmems.exp | 42 + .../config.txt | 1 + .../config/etc/group | 45 + .../config/etc/gshadow | 45 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../groupmems.test | 39 + .../run_groupmems.exp | 42 + .../config.txt | 1 + .../config/etc/group | 44 + .../config/etc/gshadow | 44 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../groupmems.test | 45 + .../run_groupmems.exp | 42 + .../config.txt | 1 + .../config/etc/group | 44 + .../config/etc/gshadow | 44 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../groupmems.test | 45 + .../run_groupmems.exp | 42 + .../config.txt | 1 + .../config/etc/group | 44 + .../config/etc/gshadow | 44 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../groupmems.test | 45 + .../run_groupmems.exp | 50 + .../config.txt | 1 + .../config/etc/group | 44 + .../config/etc/gshadow | 44 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../groupmems.test | 45 + .../run_groupmems.exp | 50 + .../config.txt | 1 + .../config/etc/group | 44 + .../config/etc/gshadow | 44 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../groupmems.test | 45 + .../run_groupmems.exp | 50 + .../config.txt | 1 + .../config/etc/group | 44 + .../config/etc/gshadow | 44 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../groupmems.test | 45 + .../run_groupmems.exp | 50 + .../config.txt | 1 + .../config/etc/group | 44 + .../config/etc/gshadow | 44 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../groupmems.test | 45 + .../run_groupmems.exp | 50 + .../config.txt | 1 + .../config/etc/group | 44 + .../config/etc/gshadow | 44 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../groupmems.test | 45 + .../run_groupmems.exp | 50 + .../groupmems/53_groupmems_usage/config.txt | 10 + .../53_groupmems_usage/config/etc/group | 41 + .../53_groupmems_usage/config/etc/gshadow | 41 + .../53_groupmems_usage/config/etc/passwd | 19 + .../53_groupmems_usage/config/etc/shadow | 19 + .../53_groupmems_usage/data/usage.out | 13 + .../53_groupmems_usage/groupmems.test | 49 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/groupmems.err | 14 + .../groupmems.test | 54 + .../55_groupmems_usage-a-d/config.txt | 1 + .../55_groupmems_usage-a-d/config/etc/group | 42 + .../55_groupmems_usage-a-d/config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../55_groupmems_usage-a-d/config/etc/passwd | 19 + .../55_groupmems_usage-a-d/config/etc/shadow | 19 + .../55_groupmems_usage-a-d/data/groupmems.err | 13 + .../55_groupmems_usage-a-d/groupmems.test | 54 + .../56_groupmems_usage_extra_arg/config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/groupmems.err | 13 + .../groupmems.test | 54 + .../57_groupmems_authentication/config.txt | 1 + .../config/etc/group | 45 + .../config/etc/gshadow | 45 + .../config/etc/pam.d/common-account | 25 + .../config/etc/pam.d/common-auth | 25 + .../config/etc/pam.d/groupmems | 8 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../57_groupmems_authentication/data/group | 45 + .../57_groupmems_authentication/data/gshadow | 45 + .../groupmems.test | 39 + .../run_groupmems.exp | 43 + .../config.txt | 1 + .../config/etc/group | 45 + .../config/etc/gshadow | 45 + .../config/etc/pam.d/common-account | 25 + .../config/etc/pam.d/common-auth | 25 + .../config/etc/pam.d/groupmems | 8 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../groupmems.test | 39 + .../run_groupmems.exp | 44 + .../config.txt | 1 + .../config/etc/group | 45 + .../config/etc/gshadow | 45 + .../config/etc/pam.d/common-account | 1 + .../config/etc/pam.d/common-auth | 25 + .../config/etc/pam.d/groupmems | 8 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../groupmems.test | 39 + .../run_groupmems.exp | 44 + .../config.txt | 1 + .../config/etc/group | 45 + .../config/etc/gshadow | 45 + .../config/etc/pam.d/groupmems | 1 + .../config/etc/pam.d/other | 1 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../groupmems.test | 43 + .../run_groupmems.exp | 42 + .../01_groupmod_change_gid/config.txt | 1 + .../config/etc/default/useradd | 36 + .../01_groupmod_change_gid/config/etc/group | 42 + .../01_groupmod_change_gid/config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../01_groupmod_change_gid/config/etc/passwd | 19 + .../01_groupmod_change_gid/config/etc/shadow | 19 + .../01_groupmod_change_gid/data/group | 42 + .../01_groupmod_change_gid/groupmod.test | 39 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 42 + .../data/passwd | 20 + .../groupmod.test | 39 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 41 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/group | 42 + .../groupmod.test | 39 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/group | 42 + .../groupmod.test | 42 + .../config.txt | 2 + .../config/etc/default/useradd | 36 + .../config/etc/group | 43 + .../config/etc/gshadow | 43 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/group | 43 + .../groupmod.test | 39 + .../06_groupmod_change_group_name/config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../06_groupmod_change_group_name/data/group | 42 + .../data/gshadow | 42 + .../groupmod.test | 39 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 41 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/group | 42 + .../groupmod.test | 39 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/group | 42 + .../groupmod.test | 42 + .../09_groupmod_set_password/config.txt | 1 + .../config/etc/default/useradd | 36 + .../09_groupmod_set_password/config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../09_groupmod_set_password/data/gshadow | 42 + .../09_groupmod_set_password/groupmod.test | 39 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 41 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/gshadow | 42 + .../groupmod.test | 39 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/group | 42 + .../groupmod.test | 42 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/groupmod.err | 1 + .../groupmod.test | 54 + .../config.txt | 2 + .../config/etc/default/useradd | 36 + .../config/etc/group | 43 + .../config/etc/gshadow | 43 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/groupmod.err | 1 + .../groupmod.test | 54 + .../config.txt | 2 + .../config/etc/default/useradd | 36 + .../config/etc/group | 43 + .../config/etc/gshadow | 43 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/groupmod.err | 1 + .../groupmod.test | 54 + .../config.txt | 2 + .../config/etc/default/useradd | 36 + .../config/etc/group | 43 + .../config/etc/gshadow | 43 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/groupmod.err | 1 + .../groupmod.test | 54 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../groupmod.test | 39 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/groupmod.err | 2 + .../groupmod.test | 60 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/group | 42 + .../groupmod.test | 47 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/groupmod.err | 1 + .../groupmod.test | 54 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/groupmod.err | 1 + .../groupmod.test | 54 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/groupmod.err | 11 + .../groupmod.test | 60 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/group | 42 + .../data/gshadow | 42 + .../groupmod.test | 39 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 20 + .../config/etc/shadow | 19 + .../data/group | 42 + .../data/gshadow | 42 + .../data/passwd | 20 + .../groupmod.test | 39 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/groupmod.err | 2 + .../groupmod.test | 60 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/groupmod.err | 2 + .../groupmod.test | 60 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/group | 42 + .../data/gshadow | 42 + .../groupmod.test | 47 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/groupmod.err | 1 + .../groupmod.test | 54 + .../groupmod/28_groupmod_usage/config.txt | 10 + .../config/etc/default/useradd | 36 + .../28_groupmod_usage/config/etc/group | 41 + .../28_groupmod_usage/config/etc/gshadow | 41 + .../28_groupmod_usage/config/etc/passwd | 19 + .../28_groupmod_usage/config/etc/shadow | 19 + .../groupmod/28_groupmod_usage/data/usage.out | 11 + .../groupmod/28_groupmod_usage/groupmod.test | 49 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/group | 42 + .../data/gshadow | 42 + .../groupmod.test | 39 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../groupmod.test | 39 + .../31_groupmod_-g_same_gid/config.txt | 1 + .../config/etc/default/useradd | 36 + .../31_groupmod_-g_same_gid/config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../31_groupmod_-g_same_gid/config/etc/passwd | 19 + .../31_groupmod_-g_same_gid/config/etc/shadow | 19 + .../31_groupmod_-g_same_gid/groupmod.test | 39 + .../32_groupmod_-o_without_-g/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/groupmod.err | 11 + .../32_groupmod_-o_without_-g/groupmod.test | 54 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/group | 42 + .../groupmod.test | 42 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/group | 42 + .../data/gshadow | 42 + .../groupmod.test | 39 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 41 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/group | 42 + .../groupmod.test | 39 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 41 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/gshadow | 42 + .../groupmod.test | 39 + .../37_groupmod_invalid_option/config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/groupmod.err | 12 + .../37_groupmod_invalid_option/groupmod.test | 54 + .../tests/libsubid/01_list_ranges/config.txt | 0 .../libsubid/01_list_ranges/config/etc/subgid | 2 + .../libsubid/01_list_ranges/config/etc/subuid | 3 + .../libsubid/01_list_ranges/list_ranges.test | 38 + .../libsubid/02_get_subid_owners/config.txt | 0 .../02_get_subid_owners/config/etc/passwd | 20 + .../02_get_subid_owners/config/etc/subgid | 2 + .../02_get_subid_owners/config/etc/subuid | 4 + .../02_get_subid_owners/get_subid_owners.test | 52 + .../03_add_remove/add_remove_subids.test | 59 + tests/tests/libsubid/03_add_remove/config.txt | 0 .../libsubid/03_add_remove/config/etc/passwd | 20 + .../libsubid/03_add_remove/config/etc/subgid | 2 + .../libsubid/03_add_remove/config/etc/subuid | 1 + tests/tests/libsubid/04_nss/Makefile | 12 + tests/tests/libsubid/04_nss/empty | 0 tests/tests/libsubid/04_nss/libsubid_zzz.c | 140 ++ tests/tests/libsubid/04_nss/nsswitch1.conf | 20 + tests/tests/libsubid/04_nss/nsswitch2.conf | 22 + tests/tests/libsubid/04_nss/nsswitch3.conf | 22 + tests/tests/libsubid/04_nss/subidnss.test | 22 + tests/tests/libsubid/04_nss/test_nss.c | 72 + tests/tests/libsubid/04_nss/test_range | 52 + .../faillog/01_faillog_no_faillog/config.txt | 1 + .../01_faillog_no_faillog/config/etc/group | 42 + .../01_faillog_no_faillog/config/etc/gshadow | 42 + .../01_faillog_no_faillog/config/etc/passwd | 20 + .../01_faillog_no_faillog/config/etc/shadow | 20 + .../01_faillog_no_faillog/data/faillog.err | 1 + .../01_faillog_no_faillog/faillog.test | 51 + .../log/faillog/02_faillog_usage/config.txt | 10 + .../faillog/02_faillog_usage/config/etc/group | 41 + .../02_faillog_usage/config/etc/gshadow | 41 + .../02_faillog_usage/config/etc/passwd | 19 + .../02_faillog_usage/config/etc/shadow | 19 + .../faillog/02_faillog_usage/data/usage.out | 14 + .../log/faillog/02_faillog_usage/faillog.test | 35 + .../log/faillog/03_faillog_format/config.txt | 1 + .../03_faillog_format/config/etc/group | 42 + .../03_faillog_format/config/etc/gshadow | 42 + .../03_faillog_format/config/etc/pam.d/login | 111 ++ .../03_faillog_format/config/etc/passwd | 20 + .../03_faillog_format/config/etc/shadow | 20 + .../03_faillog_format/data/faillog.out | 2 + .../03_faillog_format/data/lastlog.out | 20 + .../faillog/03_faillog_format/faillog.test | 57 + .../log/faillog/03_faillog_format/login.exp | 17 + .../faillog/04_faillog_multiple/config.txt | 1 + .../04_faillog_multiple/config/etc/group | 42 + .../04_faillog_multiple/config/etc/gshadow | 42 + .../config/etc/pam.d/login | 111 ++ .../04_faillog_multiple/config/etc/passwd | 22 + .../04_faillog_multiple/config/etc/shadow | 22 + .../04_faillog_multiple/data/faillog.list | 5 + .../faillog/04_faillog_multiple/faillog.test | 52 + .../log/faillog/04_faillog_multiple/login.exp | 26 + .../log/faillog/05_faillog-u_ID/config.txt | 1 + .../faillog/05_faillog-u_ID/config/etc/group | 42 + .../05_faillog-u_ID/config/etc/gshadow | 42 + .../faillog/05_faillog-u_ID/config/etc/passwd | 22 + .../faillog/05_faillog-u_ID/config/etc/shadow | 22 + .../faillog/05_faillog-u_ID/data/faillog.list | 3 + .../log/faillog/05_faillog-u_ID/faillog.test | 42 + .../log/faillog/06_faillog-u_name/config.txt | 1 + .../06_faillog-u_name/config/etc/group | 42 + .../06_faillog-u_name/config/etc/gshadow | 42 + .../06_faillog-u_name/config/etc/passwd | 22 + .../06_faillog-u_name/config/etc/shadow | 22 + .../06_faillog-u_name/data/faillog.list | 3 + .../faillog/06_faillog-u_name/faillog.test | 42 + .../07_faillog-u_ID_invalid/config.txt | 1 + .../07_faillog-u_ID_invalid/config/etc/group | 42 + .../config/etc/gshadow | 42 + .../07_faillog-u_ID_invalid/config/etc/passwd | 22 + .../07_faillog-u_ID_invalid/config/etc/shadow | 22 + .../07_faillog-u_ID_invalid/data/faillog.list | 0 .../07_faillog-u_ID_invalid/faillog.test | 41 + .../08_faillog-u_name_invalid/config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 22 + .../config/etc/shadow | 22 + .../data/faillog.err | 1 + .../08_faillog-u_name_invalid/faillog.test | 45 + .../log/faillog/09_faillog-u_range/config.txt | 1 + .../09_faillog-u_range/config/etc/group | 42 + .../09_faillog-u_range/config/etc/gshadow | 42 + .../09_faillog-u_range/config/etc/pam.d/login | 111 ++ .../09_faillog-u_range/config/etc/passwd | 22 + .../09_faillog-u_range/config/etc/shadow | 22 + .../09_faillog-u_range/data/faillog.list | 4 + .../faillog/09_faillog-u_range/faillog.test | 50 + .../log/faillog/09_faillog-u_range/login.exp | 26 + .../10_faillog-u_open_range/config.txt | 1 + .../10_faillog-u_open_range/config/etc/group | 42 + .../config/etc/gshadow | 42 + .../10_faillog-u_open_range/config/etc/passwd | 22 + .../10_faillog-u_open_range/config/etc/shadow | 22 + .../10_faillog-u_open_range/data/faillog.list | 22 + .../10_faillog-u_open_range/faillog.test | 42 + .../11_faillog-u_range_open/config.txt | 1 + .../11_faillog-u_range_open/config/etc/group | 42 + .../config/etc/gshadow | 42 + .../11_faillog-u_range_open/config/etc/passwd | 22 + .../11_faillog-u_range_open/config/etc/shadow | 22 + .../11_faillog-u_range_open/data/faillog.list | 10 + .../11_faillog-u_range_open/faillog.test | 42 + .../12_faillog-u_range_invalid1/config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 22 + .../config/etc/shadow | 22 + .../data/faillog.err | 1 + .../12_faillog-u_range_invalid1/faillog.test | 45 + .../13_faillog-u_range_invalid2/config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 22 + .../config/etc/shadow | 22 + .../data/faillog.err | 1 + .../13_faillog-u_range_invalid2/faillog.test | 45 + .../14_faillog-u_range_invalid3/config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 22 + .../config/etc/shadow | 22 + .../data/faillog.err | 1 + .../14_faillog-u_range_invalid3/faillog.test | 45 + .../faillog/15_faillog_bad_option/config.txt | 10 + .../15_faillog_bad_option/config/etc/group | 41 + .../15_faillog_bad_option/config/etc/gshadow | 41 + .../15_faillog_bad_option/config/etc/passwd | 19 + .../15_faillog_bad_option/config/etc/shadow | 19 + .../15_faillog_bad_option/data/usage.out | 15 + .../15_faillog_bad_option/faillog.test | 41 + .../faillog/16_faillog_extra_arg/config.txt | 10 + .../16_faillog_extra_arg/config/etc/group | 41 + .../16_faillog_extra_arg/config/etc/gshadow | 41 + .../16_faillog_extra_arg/config/etc/passwd | 19 + .../16_faillog_extra_arg/config/etc/shadow | 19 + .../16_faillog_extra_arg/data/usage.out | 15 + .../faillog/16_faillog_extra_arg/faillog.test | 41 + .../tests/log/faillog/17_faillog-t/config.txt | 1 + .../log/faillog/17_faillog-t/config/etc/group | 42 + .../faillog/17_faillog-t/config/etc/gshadow | 42 + .../17_faillog-t/config/etc/pam.d/login | 111 ++ .../faillog/17_faillog-t/config/etc/passwd | 22 + .../faillog/17_faillog-t/config/etc/shadow | 22 + .../faillog/17_faillog-t/data/faillog.list | 4 + .../log/faillog/17_faillog-t/faillog.test | 52 + .../tests/log/faillog/17_faillog-t/login.exp | 26 + .../faillog/18_faillog-t_invalid/config.txt | 1 + .../18_faillog-t_invalid/config/etc/group | 42 + .../18_faillog-t_invalid/config/etc/gshadow | 42 + .../18_faillog-t_invalid/config/etc/passwd | 22 + .../18_faillog-t_invalid/config/etc/shadow | 22 + .../18_faillog-t_invalid/data/faillog.err | 1 + .../faillog/18_faillog-t_invalid/faillog.test | 45 + .../19_faillog_multiple_same_user/config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/pam.d/login | 111 ++ .../config/etc/passwd | 22 + .../config/etc/shadow | 22 + .../data/faillog.list | 5 + .../faillog.test | 55 + .../19_faillog_multiple_same_user/login.exp | 26 + .../log/faillog/20_faillog-r-u/config.txt | 1 + .../faillog/20_faillog-r-u/config/etc/group | 42 + .../faillog/20_faillog-r-u/config/etc/gshadow | 42 + .../20_faillog-r-u/config/etc/pam.d/login | 111 ++ .../faillog/20_faillog-r-u/config/etc/passwd | 22 + .../faillog/20_faillog-r-u/config/etc/shadow | 22 + .../faillog/20_faillog-r-u/data/faillog.list | 5 + .../log/faillog/20_faillog-r-u/faillog.test | 56 + .../log/faillog/20_faillog-r-u/login.exp | 26 + .../faillog/21_faillog-r-u_range/config.txt | 1 + .../21_faillog-r-u_range/config/etc/group | 42 + .../21_faillog-r-u_range/config/etc/gshadow | 42 + .../config/etc/pam.d/login | 111 ++ .../21_faillog-r-u_range/config/etc/passwd | 22 + .../21_faillog-r-u_range/config/etc/shadow | 22 + .../21_faillog-r-u_range/data/faillog.list | 5 + .../faillog/21_faillog-r-u_range/faillog.test | 56 + .../faillog/21_faillog-r-u_range/login.exp | 26 + .../22_faillog_removed_user/config.txt | 1 + .../22_faillog_removed_user/config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/pam.d/login | 111 ++ .../22_faillog_removed_user/config/etc/passwd | 22 + .../22_faillog_removed_user/config/etc/shadow | 22 + .../22_faillog_removed_user/data/faillog.list | 4 + .../22_faillog_removed_user/faillog.test | 57 + .../faillog/22_faillog_removed_user/login.exp | 26 + .../23_faillog-a_removed_user/config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/pam.d/login | 111 ++ .../config/etc/passwd | 22 + .../config/etc/shadow | 22 + .../data/faillog.list | 23 + .../23_faillog-a_removed_user/faillog.test | 57 + .../23_faillog-a_removed_user/login.exp | 26 + .../24_faillog-u_removed_user/config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/pam.d/login | 111 ++ .../config/etc/passwd | 22 + .../config/etc/shadow | 22 + .../data/faillog.list | 0 .../24_faillog-u_removed_user/faillog.test | 57 + .../24_faillog-u_removed_user/login.exp | 26 + .../25_faillog-r-u_removed_user/config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/pam.d/login | 111 ++ .../config/etc/passwd | 22 + .../config/etc/shadow | 22 + .../data/faillog.list | 24 + .../25_faillog-r-u_removed_user/faillog.test | 60 + .../25_faillog-r-u_removed_user/login.exp | 26 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/pam.d/login | 111 ++ .../config/etc/passwd | 22 + .../config/etc/shadow | 22 + .../data/faillog.list | 24 + .../faillog.test | 60 + .../login.exp | 26 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/pam.d/login | 111 ++ .../config/etc/passwd | 22 + .../config/etc/shadow | 22 + .../data/faillog.list | 24 + .../faillog.test | 66 + .../login.exp | 26 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/pam.d/login | 111 ++ .../config/etc/passwd | 22 + .../config/etc/shadow | 22 + .../data/faillog.list | 24 + .../faillog.test | 66 + .../login.exp | 26 + .../config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/pam.d/login | 111 ++ .../config/etc/passwd | 22 + .../config/etc/shadow | 22 + .../data/faillog.list | 24 + .../faillog.test | 66 + .../login.exp | 26 + .../tests/log/faillog/30_faillog-r/config.txt | 1 + .../log/faillog/30_faillog-r/config/etc/group | 42 + .../faillog/30_faillog-r/config/etc/gshadow | 42 + .../30_faillog-r/config/etc/pam.d/login | 111 ++ .../faillog/30_faillog-r/config/etc/passwd | 22 + .../faillog/30_faillog-r/config/etc/shadow | 22 + .../faillog/30_faillog-r/data/faillog.list | 5 + .../log/faillog/30_faillog-r/faillog.test | 56 + .../tests/log/faillog/30_faillog-r/login.exp | 26 + .../31_faillog-r-u_open_range/config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/pam.d/login | 111 ++ .../config/etc/passwd | 22 + .../config/etc/shadow | 22 + .../data/faillog.list | 5 + .../31_faillog-r-u_open_range/faillog.test | 56 + .../31_faillog-r-u_open_range/login.exp | 26 + .../tests/log/faillog/32_faillog-l/config.txt | 1 + .../log/faillog/32_faillog-l/config/etc/group | 42 + .../faillog/32_faillog-l/config/etc/gshadow | 42 + .../32_faillog-l/config/etc/pam.d/login | 111 ++ .../faillog/32_faillog-l/config/etc/passwd | 22 + .../faillog/32_faillog-l/config/etc/shadow | 22 + .../faillog/32_faillog-l/data/faillog.list | 5 + .../log/faillog/32_faillog-l/faillog.test | 63 + .../tests/log/faillog/32_faillog-l/login.exp | 26 + .../faillog/33_faillog-l-u_user/config.txt | 1 + .../33_faillog-l-u_user/config/etc/group | 42 + .../33_faillog-l-u_user/config/etc/gshadow | 42 + .../config/etc/pam.d/login | 111 ++ .../33_faillog-l-u_user/config/etc/passwd | 22 + .../33_faillog-l-u_user/config/etc/shadow | 22 + .../33_faillog-l-u_user/data/faillog.list | 1 + .../faillog/33_faillog-l-u_user/faillog.test | 60 + .../log/faillog/33_faillog-l-u_user/login.exp | 26 + .../faillog/34_faillog-l-u_range/config.txt | 1 + .../34_faillog-l-u_range/config/etc/group | 42 + .../34_faillog-l-u_range/config/etc/gshadow | 42 + .../config/etc/pam.d/login | 111 ++ .../34_faillog-l-u_range/config/etc/passwd | 22 + .../34_faillog-l-u_range/config/etc/shadow | 22 + .../34_faillog-l-u_range/data/faillog.list | 5 + .../faillog/34_faillog-l-u_range/faillog.test | 63 + .../faillog/34_faillog-l-u_range/login.exp | 26 + .../35_faillog-l-u_open_range/config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/pam.d/login | 111 ++ .../config/etc/passwd | 22 + .../config/etc/shadow | 22 + .../data/faillog.list | 5 + .../35_faillog-l-u_open_range/faillog.test | 63 + .../35_faillog-l-u_open_range/login.exp | 26 + .../36_faillog-l-u_range_open/config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/pam.d/login | 111 ++ .../config/etc/passwd | 22 + .../config/etc/shadow | 22 + .../data/faillog.list | 5 + .../36_faillog-l-u_range_open/faillog.test | 63 + .../36_faillog-l-u_range_open/login.exp | 26 + .../faillog/37_faillog-l-a-u_user/config.txt | 1 + .../37_faillog-l-a-u_user/config/etc/group | 42 + .../37_faillog-l-a-u_user/config/etc/gshadow | 42 + .../config/etc/pam.d/login | 111 ++ .../37_faillog-l-a-u_user/config/etc/passwd | 22 + .../37_faillog-l-a-u_user/config/etc/shadow | 22 + .../37_faillog-l-a-u_user/data/faillog.list | 1 + .../37_faillog-l-a-u_user/faillog.test | 70 + .../faillog/37_faillog-l-a-u_user/login.exp | 26 + .../faillog/38_faillog-l-a-u_range/config.txt | 1 + .../38_faillog-l-a-u_range/config/etc/group | 42 + .../38_faillog-l-a-u_range/config/etc/gshadow | 42 + .../config/etc/pam.d/login | 111 ++ .../38_faillog-l-a-u_range/config/etc/passwd | 22 + .../38_faillog-l-a-u_range/config/etc/shadow | 22 + .../38_faillog-l-a-u_range/data/faillog.list | 5 + .../38_faillog-l-a-u_range/faillog.test | 73 + .../faillog/38_faillog-l-a-u_range/login.exp | 26 + .../39_faillog-l-a-u_open_range/config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/pam.d/login | 111 ++ .../config/etc/passwd | 22 + .../config/etc/shadow | 22 + .../data/faillog.list | 5 + .../39_faillog-l-a-u_open_range/faillog.test | 73 + .../39_faillog-l-a-u_open_range/login.exp | 26 + .../40_faillog-l-a-u_range_open/config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/pam.d/login | 111 ++ .../config/etc/passwd | 22 + .../config/etc/shadow | 22 + .../data/faillog.list | 5 + .../40_faillog-l-a-u_range_open/faillog.test | 73 + .../40_faillog-l-a-u_range_open/login.exp | 26 + .../faillog/41_faillog-l_invalid/config.txt | 1 + .../41_faillog-l_invalid/config/etc/group | 42 + .../41_faillog-l_invalid/config/etc/gshadow | 42 + .../41_faillog-l_invalid/config/etc/passwd | 22 + .../41_faillog-l_invalid/config/etc/shadow | 22 + .../41_faillog-l_invalid/data/faillog.err | 1 + .../faillog/41_faillog-l_invalid/faillog.test | 45 + .../tests/log/faillog/42_faillog-m/config.txt | 1 + .../log/faillog/42_faillog-m/config/etc/group | 42 + .../faillog/42_faillog-m/config/etc/gshadow | 42 + .../42_faillog-m/config/etc/pam.d/login | 111 ++ .../faillog/42_faillog-m/config/etc/passwd | 22 + .../faillog/42_faillog-m/config/etc/shadow | 22 + .../faillog/42_faillog-m/data/faillog.list | 5 + .../log/faillog/42_faillog-m/faillog.test | 57 + .../tests/log/faillog/42_faillog-m/login.exp | 26 + .../faillog/43_faillog-m-u_user/config.txt | 1 + .../43_faillog-m-u_user/config/etc/group | 42 + .../43_faillog-m-u_user/config/etc/gshadow | 42 + .../config/etc/pam.d/login | 111 ++ .../43_faillog-m-u_user/config/etc/passwd | 22 + .../43_faillog-m-u_user/config/etc/shadow | 22 + .../43_faillog-m-u_user/data/faillog.list | 5 + .../faillog/43_faillog-m-u_user/faillog.test | 57 + .../log/faillog/43_faillog-m-u_user/login.exp | 26 + .../faillog/44_faillog-m-u_range/config.txt | 1 + .../44_faillog-m-u_range/config/etc/group | 42 + .../44_faillog-m-u_range/config/etc/gshadow | 42 + .../config/etc/pam.d/login | 111 ++ .../44_faillog-m-u_range/config/etc/passwd | 22 + .../44_faillog-m-u_range/config/etc/shadow | 22 + .../44_faillog-m-u_range/data/faillog.list | 5 + .../faillog/44_faillog-m-u_range/faillog.test | 57 + .../faillog/44_faillog-m-u_range/login.exp | 26 + .../45_faillog-m-u_open_range/config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/pam.d/login | 111 ++ .../config/etc/passwd | 22 + .../config/etc/shadow | 22 + .../data/faillog.list | 5 + .../45_faillog-m-u_open_range/faillog.test | 57 + .../45_faillog-m-u_open_range/login.exp | 26 + .../46_faillog-m-u_range_open/config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/pam.d/login | 111 ++ .../config/etc/passwd | 22 + .../config/etc/shadow | 22 + .../data/faillog.list | 5 + .../46_faillog-m-u_range_open/faillog.test | 57 + .../46_faillog-m-u_range_open/login.exp | 26 + .../faillog/47_faillog-m-a-u_user/config.txt | 1 + .../47_faillog-m-a-u_user/config/etc/group | 42 + .../47_faillog-m-a-u_user/config/etc/gshadow | 42 + .../config/etc/pam.d/login | 111 ++ .../47_faillog-m-a-u_user/config/etc/passwd | 22 + .../47_faillog-m-a-u_user/config/etc/shadow | 22 + .../47_faillog-m-a-u_user/data/faillog.list | 5 + .../47_faillog-m-a-u_user/faillog.test | 67 + .../faillog/47_faillog-m-a-u_user/login.exp | 26 + .../faillog/48_faillog-m-a-u_range/config.txt | 1 + .../48_faillog-m-a-u_range/config/etc/group | 42 + .../48_faillog-m-a-u_range/config/etc/gshadow | 42 + .../config/etc/pam.d/login | 111 ++ .../48_faillog-m-a-u_range/config/etc/passwd | 22 + .../48_faillog-m-a-u_range/config/etc/shadow | 22 + .../48_faillog-m-a-u_range/data/faillog.list | 5 + .../48_faillog-m-a-u_range/faillog.test | 67 + .../faillog/48_faillog-m-a-u_range/login.exp | 26 + .../49_faillog-m-a-u_open_range/config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/pam.d/login | 111 ++ .../config/etc/passwd | 22 + .../config/etc/shadow | 22 + .../data/faillog.list | 5 + .../49_faillog-m-a-u_open_range/faillog.test | 67 + .../49_faillog-m-a-u_open_range/login.exp | 26 + .../50_faillog-m-a-u_range_open/config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/pam.d/login | 111 ++ .../config/etc/passwd | 22 + .../config/etc/shadow | 22 + .../data/faillog.list | 5 + .../50_faillog-m-a-u_range_open/faillog.test | 67 + .../50_faillog-m-a-u_range_open/login.exp | 26 + .../faillog/51_faillog-m_invalid/config.txt | 1 + .../51_faillog-m_invalid/config/etc/group | 42 + .../51_faillog-m_invalid/config/etc/gshadow | 42 + .../51_faillog-m_invalid/config/etc/passwd | 22 + .../51_faillog-m_invalid/config/etc/shadow | 22 + .../51_faillog-m_invalid/data/faillog.err | 1 + .../faillog/51_faillog-m_invalid/faillog.test | 45 + .../52_faillog-t-l_exclusive/config.txt | 10 + .../52_faillog-t-l_exclusive/config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../52_faillog-t-l_exclusive/data/usage.out | 14 + .../52_faillog-t-l_exclusive/faillog.test | 41 + .../53_faillog-t-m_exclusive/config.txt | 10 + .../53_faillog-t-m_exclusive/config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../53_faillog-t-m_exclusive/data/usage.out | 14 + .../53_faillog-t-m_exclusive/faillog.test | 41 + .../54_faillog-t-r_exclusive/config.txt | 10 + .../54_faillog-t-r_exclusive/config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../54_faillog-t-r_exclusive/data/usage.out | 14 + .../54_faillog-t-r_exclusive/faillog.test | 41 + .../faillog/55_faillog_no_changes/config.txt | 1 + .../55_faillog_no_changes/config/etc/group | 42 + .../55_faillog_no_changes/config/etc/gshadow | 42 + .../config/etc/pam.d/login | 111 ++ .../55_faillog_no_changes/config/etc/passwd | 22 + .../55_faillog_no_changes/config/etc/shadow | 22 + .../55_faillog_no_changes/data/faillog.stat | 1 + .../55_faillog_no_changes/faillog.test | 35 + .../faillog/55_faillog_no_changes/login.exp | 26 + .../56_faillog-l-m_empty_file/config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/pam.d/login | 111 ++ .../config/etc/passwd | 22 + .../config/etc/shadow | 22 + .../data/faillog.stat | 1 + .../56_faillog-l-m_empty_file/faillog.test | 35 + .../57_faillog-r_empty_file/config.txt | 1 + .../57_faillog-r_empty_file/config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/pam.d/login | 111 ++ .../57_faillog-r_empty_file/config/etc/passwd | 22 + .../57_faillog-r_empty_file/config/etc/shadow | 22 + .../57_faillog-r_empty_file/data/faillog.stat | 1 + .../57_faillog-r_empty_file/faillog.test | 35 + .../58_faillog-l_no_failcount/config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/pam.d/login | 111 ++ .../config/etc/passwd | 22 + .../config/etc/shadow | 22 + .../data/faillog.list | 3 + .../58_faillog-l_no_failcount/faillog.test | 57 + .../58_faillog-l_no_failcount/login.exp | 26 + .../lastlog/01_lastlog_no_lastlog/config.txt | 1 + .../01_lastlog_no_lastlog/config/etc/group | 42 + .../01_lastlog_no_lastlog/config/etc/gshadow | 42 + .../01_lastlog_no_lastlog/config/etc/passwd | 20 + .../01_lastlog_no_lastlog/config/etc/shadow | 20 + .../01_lastlog_no_lastlog/data/lastlog.err | 1 + .../01_lastlog_no_lastlog/lastlog.test | 51 + .../log/lastlog/02_lastlog_usage/config.txt | 10 + .../lastlog/02_lastlog_usage/config/etc/group | 41 + .../02_lastlog_usage/config/etc/gshadow | 41 + .../02_lastlog_usage/config/etc/passwd | 19 + .../02_lastlog_usage/config/etc/shadow | 19 + .../lastlog/02_lastlog_usage/data/usage.out | 9 + .../log/lastlog/02_lastlog_usage/lastlog.test | 35 + .../log/lastlog/03_lastlog_format/config.txt | 1 + .../03_lastlog_format/config/etc/group | 42 + .../03_lastlog_format/config/etc/gshadow | 42 + .../03_lastlog_format/config/etc/passwd | 20 + .../03_lastlog_format/config/etc/shadow | 20 + .../03_lastlog_format/data/lastlog.out | 20 + .../lastlog/03_lastlog_format/lastlog.test | 60 + .../log/lastlog/03_lastlog_format/login.exp | 13 + .../lastlog/04_lastlog_multiple/config.txt | 1 + .../04_lastlog_multiple/config/etc/group | 42 + .../04_lastlog_multiple/config/etc/gshadow | 42 + .../04_lastlog_multiple/config/etc/passwd | 22 + .../04_lastlog_multiple/config/etc/shadow | 22 + .../04_lastlog_multiple/data/lastlog.list | 4 + .../lastlog/04_lastlog_multiple/lastlog.test | 52 + .../log/lastlog/04_lastlog_multiple/login.exp | 19 + .../log/lastlog/05_lastlog-u_ID/config.txt | 1 + .../lastlog/05_lastlog-u_ID/config/etc/group | 42 + .../05_lastlog-u_ID/config/etc/gshadow | 42 + .../lastlog/05_lastlog-u_ID/config/etc/passwd | 22 + .../lastlog/05_lastlog-u_ID/config/etc/shadow | 22 + .../lastlog/05_lastlog-u_ID/data/lastlog.list | 2 + .../log/lastlog/05_lastlog-u_ID/lastlog.test | 42 + .../log/lastlog/06_lastlog-u_name/config.txt | 1 + .../06_lastlog-u_name/config/etc/group | 42 + .../06_lastlog-u_name/config/etc/gshadow | 42 + .../06_lastlog-u_name/config/etc/passwd | 22 + .../06_lastlog-u_name/config/etc/shadow | 22 + .../06_lastlog-u_name/data/lastlog.list | 2 + .../lastlog/06_lastlog-u_name/lastlog.test | 42 + .../07_lastlog-u_ID_invalid/config.txt | 1 + .../07_lastlog-u_ID_invalid/config/etc/group | 42 + .../config/etc/gshadow | 42 + .../07_lastlog-u_ID_invalid/config/etc/passwd | 22 + .../07_lastlog-u_ID_invalid/config/etc/shadow | 22 + .../07_lastlog-u_ID_invalid/data/lastlog.list | 0 .../07_lastlog-u_ID_invalid/lastlog.test | 41 + .../08_lastlog-u_name_invalid/config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 22 + .../config/etc/shadow | 22 + .../data/lastlog.err | 1 + .../08_lastlog-u_name_invalid/lastlog.test | 45 + .../log/lastlog/09_lastlog-u_range/config.txt | 1 + .../09_lastlog-u_range/config/etc/group | 42 + .../09_lastlog-u_range/config/etc/gshadow | 42 + .../09_lastlog-u_range/config/etc/passwd | 22 + .../09_lastlog-u_range/config/etc/shadow | 22 + .../09_lastlog-u_range/data/lastlog.list | 7 + .../lastlog/09_lastlog-u_range/lastlog.test | 42 + .../10_lastlog-u_open_range/config.txt | 1 + .../10_lastlog-u_open_range/config/etc/group | 42 + .../config/etc/gshadow | 42 + .../10_lastlog-u_open_range/config/etc/passwd | 22 + .../10_lastlog-u_open_range/config/etc/shadow | 22 + .../10_lastlog-u_open_range/data/lastlog.list | 21 + .../10_lastlog-u_open_range/lastlog.test | 42 + .../11_lastlog-u_range_open/config.txt | 1 + .../11_lastlog-u_range_open/config/etc/group | 42 + .../config/etc/gshadow | 42 + .../11_lastlog-u_range_open/config/etc/passwd | 22 + .../11_lastlog-u_range_open/config/etc/shadow | 22 + .../11_lastlog-u_range_open/data/lastlog.list | 9 + .../11_lastlog-u_range_open/lastlog.test | 42 + .../12_lastlog-u_range_invalid1/config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 22 + .../config/etc/shadow | 22 + .../data/lastlog.err | 1 + .../12_lastlog-u_range_invalid1/lastlog.test | 45 + .../13_lastlog-u_range_invalid2/config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 22 + .../config/etc/shadow | 22 + .../data/lastlog.err | 1 + .../13_lastlog-u_range_invalid2/lastlog.test | 45 + .../14_lastlog-u_range_invalid3/config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 22 + .../config/etc/shadow | 22 + .../data/lastlog.err | 1 + .../14_lastlog-u_range_invalid3/lastlog.test | 45 + .../lastlog/15_lastlog_bad_option/config.txt | 10 + .../15_lastlog_bad_option/config/etc/group | 41 + .../15_lastlog_bad_option/config/etc/gshadow | 41 + .../15_lastlog_bad_option/config/etc/passwd | 19 + .../15_lastlog_bad_option/config/etc/shadow | 19 + .../15_lastlog_bad_option/data/usage.out | 10 + .../15_lastlog_bad_option/lastlog.test | 41 + .../lastlog/16_lastlog_extra_arg/config.txt | 10 + .../16_lastlog_extra_arg/config/etc/group | 41 + .../16_lastlog_extra_arg/config/etc/gshadow | 41 + .../16_lastlog_extra_arg/config/etc/passwd | 19 + .../16_lastlog_extra_arg/config/etc/shadow | 19 + .../16_lastlog_extra_arg/data/usage.out | 10 + .../lastlog/16_lastlog_extra_arg/lastlog.test | 41 + .../tests/log/lastlog/17_lastlog-t/config.txt | 1 + .../log/lastlog/17_lastlog-t/config/etc/group | 42 + .../lastlog/17_lastlog-t/config/etc/gshadow | 42 + .../lastlog/17_lastlog-t/config/etc/passwd | 22 + .../lastlog/17_lastlog-t/config/etc/shadow | 22 + .../lastlog/17_lastlog-t/data/lastlog.list | 3 + .../log/lastlog/17_lastlog-t/lastlog.test | 52 + .../tests/log/lastlog/17_lastlog-t/login.exp | 19 + .../tests/log/lastlog/18_lastlog-b/config.txt | 1 + .../log/lastlog/18_lastlog-b/config/etc/group | 42 + .../lastlog/18_lastlog-b/config/etc/gshadow | 42 + .../lastlog/18_lastlog-b/config/etc/passwd | 22 + .../lastlog/18_lastlog-b/config/etc/shadow | 22 + .../lastlog/18_lastlog-b/data/lastlog.list | 21 + .../log/lastlog/18_lastlog-b/lastlog.test | 52 + .../tests/log/lastlog/18_lastlog-b/login.exp | 19 + .../lastlog/19_lastlog-t_invalid/config.txt | 1 + .../19_lastlog-t_invalid/config/etc/group | 42 + .../19_lastlog-t_invalid/config/etc/gshadow | 42 + .../19_lastlog-t_invalid/config/etc/passwd | 22 + .../19_lastlog-t_invalid/config/etc/shadow | 22 + .../19_lastlog-t_invalid/data/lastlog.err | 1 + .../lastlog/19_lastlog-t_invalid/lastlog.test | 45 + .../lastlog/20_lastlog-b_invalid/config.txt | 1 + .../20_lastlog-b_invalid/config/etc/group | 42 + .../20_lastlog-b_invalid/config/etc/gshadow | 42 + .../20_lastlog-b_invalid/config/etc/passwd | 22 + .../20_lastlog-b_invalid/config/etc/shadow | 22 + .../20_lastlog-b_invalid/data/lastlog.err | 1 + .../lastlog/20_lastlog-b_invalid/lastlog.test | 45 + tests/tests/login/01_login_prompt/config.txt | 3 + .../login/01_login_prompt/config/etc/group | 42 + .../login/01_login_prompt/config/etc/gshadow | 42 + .../01_login_prompt/config/etc/login.defs | 314 +++ .../login/01_login_prompt/config/etc/passwd | 21 + .../login/01_login_prompt/config/etc/shadow | 20 + tests/tests/login/01_login_prompt/login.exp | 23 + tests/tests/login/01_login_prompt/login.test | 26 + tests/tests/login/02_login_user/config.txt | 3 + .../login/02_login_user/config/etc/group | 42 + .../login/02_login_user/config/etc/gshadow | 42 + .../login/02_login_user/config/etc/login.defs | 314 +++ .../login/02_login_user/config/etc/passwd | 21 + .../login/02_login_user/config/etc/shadow | 20 + tests/tests/login/02_login_user/login.exp | 20 + tests/tests/login/02_login_user/login.test | 26 + .../tests/login/03_login_check_tty/config.txt | 3 + .../login/03_login_check_tty/config/etc/group | 42 + .../03_login_check_tty/config/etc/gshadow | 42 + .../03_login_check_tty/config/etc/login.defs | 314 +++ .../03_login_check_tty/config/etc/passwd | 21 + .../03_login_check_tty/config/etc/shadow | 20 + .../tests/login/03_login_check_tty/login.exp | 22 + .../tests/login/03_login_check_tty/login.test | 26 + tests/tests/newgidmap/01_newgidmap/config.txt | 0 .../newgidmap/01_newgidmap/config/etc/group | 43 + .../01_newgidmap/config/etc/login.defs | 341 ++++ .../newgidmap/01_newgidmap/config/etc/passwd | 20 + .../newgidmap/01_newgidmap/config/etc/subgid | 1 + .../newgidmap/01_newgidmap/config/etc/subuid | 1 + .../tests/newgidmap/01_newgidmap/data/gid_map | 2 + .../newgidmap/01_newgidmap/newgidmap.test | 62 + .../02_newgidmap_relaxed_gid_check/config.txt | 0 .../config/etc/group | 43 + .../config/etc/login.defs | 342 ++++ .../config/etc/passwd | 20 + .../config/etc/subgid | 1 + .../config/etc/subuid | 1 + .../data/gid_map | 2 + .../data/gid_map.bar | 2 + .../newgidmap.test | 67 + tests/tests/newuidmap/01_newuidmap/config.txt | 0 .../newuidmap/01_newuidmap/config/etc/group | 43 + .../01_newuidmap/config/etc/login.defs | 343 ++++ .../newuidmap/01_newuidmap/config/etc/passwd | 20 + .../newuidmap/01_newuidmap/config/etc/subgid | 1 + .../newuidmap/01_newuidmap/config/etc/subuid | 1 + .../tests/newuidmap/01_newuidmap/data/uid_map | 2 + .../newuidmap/01_newuidmap/newuidmap.test | 62 + .../02_newuidmap_relaxed_gid_check/config.txt | 0 .../config/etc/group | 43 + .../config/etc/login.defs | 342 ++++ .../config/etc/passwd | 20 + .../config/etc/subgid | 1 + .../config/etc/subuid | 1 + .../data/uid_map | 2 + .../newuidmap.test | 54 + .../tests/newusers/01_create_user/config.txt | 0 .../newusers/01_create_user/config/etc/group | 41 + .../01_create_user/config/etc/gshadow | 41 + .../config/etc/pam.d/common-password | 33 + .../01_create_user/config/etc/pam.d/newusers | 6 + .../newusers/01_create_user/config/etc/passwd | 19 + .../newusers/01_create_user/config/etc/shadow | 19 + .../tests/newusers/01_create_user/data/group | 42 + .../newusers/01_create_user/data/gshadow | 42 + .../01_create_user/data/newusers.list | 1 + .../tests/newusers/01_create_user/data/passwd | 20 + .../tests/newusers/01_create_user/data/shadow | 20 + .../newusers/01_create_user/newusers.test | 37 + .../newusers/02_update_password/config.txt | 1 + .../02_update_password/config/etc/group | 42 + .../02_update_password/config/etc/gshadow | 41 + .../config/etc/pam.d/common-password | 33 + .../config/etc/pam.d/newusers | 6 + .../02_update_password/config/etc/passwd | 20 + .../02_update_password/config/etc/shadow | 20 + .../02_update_password/data/newusers.list | 1 + .../newusers/02_update_password/data/shadow | 20 + .../newusers/02_update_password/newusers.test | 37 + .../newusers/03_no_update_pid/config.txt | 1 + .../03_no_update_pid/config/etc/group | 42 + .../03_no_update_pid/config/etc/gshadow | 41 + .../config/etc/pam.d/common-password | 33 + .../config/etc/pam.d/newusers | 6 + .../03_no_update_pid/config/etc/passwd | 20 + .../03_no_update_pid/config/etc/shadow | 20 + .../03_no_update_pid/data/newusers.list | 1 + .../newusers/03_no_update_pid/data/shadow | 20 + .../newusers/03_no_update_pid/newusers.test | 37 + .../newusers/04_no_update_gid/config.txt | 1 + .../04_no_update_gid/config/etc/group | 42 + .../04_no_update_gid/config/etc/gshadow | 41 + .../config/etc/pam.d/common-password | 33 + .../config/etc/pam.d/newusers | 6 + .../04_no_update_gid/config/etc/passwd | 20 + .../04_no_update_gid/config/etc/shadow | 20 + .../04_no_update_gid/data/newusers.list | 1 + .../newusers/04_no_update_gid/data/shadow | 20 + .../newusers/04_no_update_gid/newusers.test | 37 + .../newusers/05_create_user_pid/config.txt | 0 .../05_create_user_pid/config/etc/group | 41 + .../05_create_user_pid/config/etc/gshadow | 41 + .../config/etc/pam.d/common-password | 33 + .../config/etc/pam.d/newusers | 6 + .../05_create_user_pid/config/etc/passwd | 19 + .../05_create_user_pid/config/etc/shadow | 19 + .../newusers/05_create_user_pid/data/group | 42 + .../newusers/05_create_user_pid/data/gshadow | 42 + .../05_create_user_pid/data/newusers.list | 1 + .../newusers/05_create_user_pid/data/passwd | 20 + .../newusers/05_create_user_pid/data/shadow | 20 + .../newusers/05_create_user_pid/newusers.test | 37 + .../newusers/06_create_user_gid/config.txt | 0 .../06_create_user_gid/config/etc/group | 41 + .../06_create_user_gid/config/etc/gshadow | 41 + .../config/etc/pam.d/common-password | 33 + .../config/etc/pam.d/newusers | 6 + .../06_create_user_gid/config/etc/passwd | 19 + .../06_create_user_gid/config/etc/shadow | 19 + .../newusers/06_create_user_gid/data/group | 42 + .../newusers/06_create_user_gid/data/gshadow | 42 + .../06_create_user_gid/data/newusers.list | 1 + .../newusers/06_create_user_gid/data/passwd | 20 + .../newusers/06_create_user_gid/data/shadow | 20 + .../newusers/06_create_user_gid/newusers.test | 37 + .../07_create_user_pid_gid/config.txt | 0 .../07_create_user_pid_gid/config/etc/group | 41 + .../07_create_user_pid_gid/config/etc/gshadow | 41 + .../config/etc/pam.d/common-password | 33 + .../config/etc/pam.d/newusers | 6 + .../07_create_user_pid_gid/config/etc/passwd | 19 + .../07_create_user_pid_gid/config/etc/shadow | 19 + .../07_create_user_pid_gid/data/group | 42 + .../07_create_user_pid_gid/data/gshadow | 42 + .../07_create_user_pid_gid/data/newusers.list | 1 + .../07_create_user_pid_gid/data/passwd | 20 + .../07_create_user_pid_gid/data/shadow | 20 + .../07_create_user_pid_gid/newusers.test | 37 + .../08_create_user_pid_other-gid/config.txt | 0 .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/pam.d/common-password | 33 + .../config/etc/pam.d/newusers | 6 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../08_create_user_pid_other-gid/data/group | 42 + .../08_create_user_pid_other-gid/data/gshadow | 42 + .../data/newusers.list | 1 + .../08_create_user_pid_other-gid/data/passwd | 20 + .../08_create_user_pid_other-gid/data/shadow | 20 + .../newusers.test | 37 + .../09_create_user_pid-as-user-bar/config.txt | 0 .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/pam.d/common-password | 33 + .../config/etc/pam.d/newusers | 6 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../09_create_user_pid-as-user-bar/data/group | 43 + .../data/gshadow | 43 + .../data/newusers.list | 1 + .../data/passwd | 21 + .../data/shadow | 21 + .../newusers.test | 37 + .../config.txt | 0 .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/pam.d/common-password | 33 + .../config/etc/pam.d/newusers | 6 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/newusers.list | 1 + .../data/passwd | 21 + .../data/shadow | 21 + .../newusers.test | 37 + .../tests/newusers/11_update_gecos/config.txt | 1 + .../newusers/11_update_gecos/config/etc/group | 42 + .../11_update_gecos/config/etc/gshadow | 41 + .../config/etc/pam.d/common-password | 33 + .../11_update_gecos/config/etc/pam.d/newusers | 6 + .../11_update_gecos/config/etc/passwd | 20 + .../11_update_gecos/config/etc/shadow | 20 + .../11_update_gecos/data/newusers.list | 1 + .../newusers/11_update_gecos/data/passwd | 20 + .../newusers/11_update_gecos/data/shadow | 20 + .../newusers/11_update_gecos/newusers.test | 37 + .../tests/newusers/12_update_shell/config.txt | 1 + .../newusers/12_update_shell/config/etc/group | 42 + .../12_update_shell/config/etc/gshadow | 41 + .../config/etc/pam.d/common-password | 33 + .../12_update_shell/config/etc/pam.d/newusers | 6 + .../12_update_shell/config/etc/passwd | 20 + .../12_update_shell/config/etc/shadow | 20 + .../12_update_shell/data/newusers.list | 1 + .../newusers/12_update_shell/data/passwd | 20 + .../newusers/12_update_shell/data/shadow | 20 + .../newusers/12_update_shell/newusers.test | 37 + .../13_create_user_new-home/config.txt | 0 .../13_create_user_new-home/config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/pam.d/common-password | 33 + .../config/etc/pam.d/newusers | 6 + .../13_create_user_new-home/config/etc/passwd | 19 + .../13_create_user_new-home/config/etc/shadow | 19 + .../13_create_user_new-home/data/group | 42 + .../13_create_user_new-home/data/gshadow | 42 + .../13_create_user_new-home/data/home_ls-a | 2 + .../data/newusers.list | 1 + .../13_create_user_new-home/data/passwd | 20 + .../13_create_user_new-home/data/shadow | 20 + .../13_create_user_new-home/newusers.test | 59 + .../14_create_user_existing-home/config.txt | 0 .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/pam.d/common-password | 33 + .../config/etc/pam.d/newusers | 6 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../14_create_user_existing-home/data/group | 42 + .../14_create_user_existing-home/data/gshadow | 42 + .../data/home_ls-a | 2 + .../data/newusers.list | 1 + .../14_create_user_existing-home/data/passwd | 20 + .../14_create_user_existing-home/data/shadow | 20 + .../newusers.test | 61 + .../newusers/15_update_new-home/config.txt | 1 + .../15_update_new-home/config/etc/group | 42 + .../15_update_new-home/config/etc/gshadow | 41 + .../config/etc/pam.d/common-password | 33 + .../config/etc/pam.d/newusers | 6 + .../15_update_new-home/config/etc/passwd | 20 + .../15_update_new-home/config/etc/shadow | 20 + .../15_update_new-home/data/home_ls-a | 2 + .../15_update_new-home/data/newusers.list | 1 + .../newusers/15_update_new-home/data/passwd | 20 + .../newusers/15_update_new-home/data/shadow | 20 + .../newusers/15_update_new-home/newusers.test | 60 + .../16_update_existing-home/config.txt | 1 + .../16_update_existing-home/config/etc/group | 42 + .../config/etc/gshadow | 41 + .../config/etc/pam.d/common-password | 33 + .../config/etc/pam.d/newusers | 6 + .../16_update_existing-home/config/etc/passwd | 20 + .../16_update_existing-home/config/etc/shadow | 20 + .../16_update_existing-home/data/home_ls-a | 2 + .../data/newusers.list | 1 + .../16_update_existing-home/data/passwd | 20 + .../16_update_existing-home/data/shadow | 20 + .../16_update_existing-home/newusers.test | 60 + .../config.txt | 0 .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/pam.d/common-password | 33 + .../config/etc/pam.d/newusers | 6 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 43 + .../data/gshadow | 43 + .../data/newusers.list | 1 + .../data/passwd | 21 + .../data/shadow | 21 + .../newusers.test | 37 + .../config.txt | 0 .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/pam.d/common-password | 33 + .../config/etc/pam.d/newusers | 6 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/newusers.list | 1 + .../data/passwd | 21 + .../data/shadow | 21 + .../newusers.test | 37 + .../19_update_keep-old-home/config.txt | 1 + .../19_update_keep-old-home/config/etc/group | 42 + .../config/etc/gshadow | 41 + .../config/etc/pam.d/common-password | 33 + .../config/etc/pam.d/newusers | 6 + .../19_update_keep-old-home/config/etc/passwd | 20 + .../19_update_keep-old-home/config/etc/shadow | 20 + .../19_update_keep-old-home/data/home_ls-a | 2 + .../data/home_ls-a.old | 3 + .../data/newusers.list | 1 + .../19_update_keep-old-home/data/passwd | 20 + .../19_update_keep-old-home/data/shadow | 20 + .../19_update_keep-old-home/newusers.test | 69 + .../newusers/20_multiple_users/config.txt | 1 + .../20_multiple_users/config/etc/group | 42 + .../20_multiple_users/config/etc/gshadow | 41 + .../config/etc/pam.d/common-password | 33 + .../config/etc/pam.d/newusers | 6 + .../20_multiple_users/config/etc/passwd | 20 + .../20_multiple_users/config/etc/shadow | 20 + .../newusers/20_multiple_users/data/group | 58 + .../newusers/20_multiple_users/data/gshadow | 57 + .../20_multiple_users/data/newusers.list | 17 + .../newusers/20_multiple_users/data/passwd | 37 + .../newusers/20_multiple_users/data/shadow | 37 + .../newusers/20_multiple_users/newusers.test | 38 + .../21_create_user_UID_MAX/config.txt | 0 .../21_create_user_UID_MAX/config/etc/group | 41 + .../21_create_user_UID_MAX/config/etc/gshadow | 41 + .../config/etc/pam.d/common-password | 33 + .../config/etc/pam.d/newusers | 6 + .../21_create_user_UID_MAX/config/etc/passwd | 19 + .../21_create_user_UID_MAX/config/etc/shadow | 19 + .../21_create_user_UID_MAX/data/group | 43 + .../21_create_user_UID_MAX/data/gshadow | 43 + .../21_create_user_UID_MAX/data/newusers.list | 2 + .../21_create_user_UID_MAX/data/passwd | 21 + .../21_create_user_UID_MAX/data/shadow | 21 + .../21_create_user_UID_MAX/newusers.test | 37 + .../22_create_user_GID_MAX/config.txt | 0 .../22_create_user_GID_MAX/config/etc/group | 41 + .../22_create_user_GID_MAX/config/etc/gshadow | 41 + .../config/etc/pam.d/common-password | 33 + .../config/etc/pam.d/newusers | 6 + .../22_create_user_GID_MAX/config/etc/passwd | 19 + .../22_create_user_GID_MAX/config/etc/shadow | 19 + .../22_create_user_GID_MAX/data/group | 43 + .../22_create_user_GID_MAX/data/gshadow | 43 + .../22_create_user_GID_MAX/data/newusers.list | 2 + .../22_create_user_GID_MAX/data/passwd | 21 + .../22_create_user_GID_MAX/data/shadow | 21 + .../22_create_user_GID_MAX/newusers.test | 37 + .../config.txt | 0 .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/newusers.err | 3 + .../data/newusers.list | 1 + .../newusers.test | 54 + .../config.txt | 0 .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/newusers.err | 3 + .../data/newusers.list | 1 + .../newusers.test | 54 + .../config.txt | 2 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/newusers.err | 3 + .../data/newusers.list | 3 + .../newusers.test | 55 + .../config.txt | 4 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/login.defs | 314 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/newusers.err | 3 + .../data/newusers.list | 3 + .../newusers.test | 55 + .../config.txt | 0 .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/newusers.err | 3 + .../data/newusers.list | 1 + .../newusers.test | 54 + .../config.txt | 0 .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/newusers.err | 3 + .../data/newusers.list | 1 + .../newusers.test | 54 + .../config.txt | 0 .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/newusers.err | 3 + .../data/newusers.list | 1 + .../newusers.test | 54 + .../config.txt | 0 .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/pam.d/common-password | 33 + .../config/etc/pam.d/newusers | 6 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/group | 42 + .../data/gshadow | 42 + .../data/newusers.list | 1 + .../data/passwd | 20 + .../data/shadow | 20 + .../newusers.test | 37 + .../config.txt | 0 .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/newusers.err | 3 + .../data/newusers.list | 1 + .../newusers.test | 54 + .../config.txt | 1 + .../config/etc/group | 41 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/newusers.err | 3 + .../data/newusers.list | 1 + .../newusers.test | 54 + .../config.txt | 2 + .../config/etc/group | 42 + .../config/etc/gshadow | 41 + .../config/etc/pam.d/common-password | 33 + .../config/etc/pam.d/newusers | 6 + .../config/etc/passwd | 20 + .../config/etc/shadow | 19 + .../data/newusers.list | 1 + .../data/passwd | 20 + .../newusers.test | 37 + .../34_update_password_no_shadow/config.txt | 2 + .../config/etc/group | 42 + .../config/etc/gshadow | 41 + .../config/etc/pam.d/common-password | 33 + .../config/etc/pam.d/newusers | 6 + .../config/etc/passwd | 20 + .../config/etc/shadow | 19 + .../data/newusers.list | 1 + .../34_update_password_no_shadow/data/passwd | 20 + .../newusers.test | 38 + .../newusers/35_read_from_stdin/config.txt | 0 .../35_read_from_stdin/config/etc/group | 41 + .../35_read_from_stdin/config/etc/gshadow | 41 + .../config/etc/pam.d/common-password | 33 + .../config/etc/pam.d/newusers | 6 + .../35_read_from_stdin/config/etc/passwd | 19 + .../35_read_from_stdin/config/etc/shadow | 19 + .../newusers/35_read_from_stdin/data/group | 43 + .../newusers/35_read_from_stdin/data/gshadow | 43 + .../35_read_from_stdin/data/newusers.list | 2 + .../newusers/35_read_from_stdin/data/passwd | 21 + .../newusers/35_read_from_stdin/data/shadow | 21 + .../newusers/35_read_from_stdin/newusers.test | 37 + .../36_create_user_encrypted/config.txt | 0 .../36_create_user_encrypted/config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../36_create_user_encrypted/data/group | 42 + .../36_create_user_encrypted/data/gshadow | 42 + .../data/newusers.list | 1 + .../36_create_user_encrypted/data/passwd | 20 + .../36_create_user_encrypted/data/shadow | 20 + .../36_create_user_encrypted/newusers.test | 37 + .../37_create_user_encrypt_MD5-PAM/config.txt | 0 .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/pam.d/common-password | 33 + .../config/etc/pam.d/newusers | 6 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../37_create_user_encrypt_MD5-PAM/data/group | 42 + .../data/gshadow | 42 + .../data/newusers.list | 1 + .../data/passwd | 20 + .../data/shadow | 20 + .../newusers.test | 37 + .../37_create_user_encrypt_MD5/config.txt | 0 .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../37_create_user_encrypt_MD5/data/group | 42 + .../37_create_user_encrypt_MD5/data/gshadow | 42 + .../data/newusers.list | 1 + .../37_create_user_encrypt_MD5/data/passwd | 20 + .../37_create_user_encrypt_MD5/data/shadow | 20 + .../37_create_user_encrypt_MD5/newusers.test | 37 + .../config.txt | 2 + .../config/etc/group | 42 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 20 + .../config/etc/shadow | 19 + .../data/newusers.list | 1 + .../data/passwd | 20 + .../newusers.test | 38 + .../config.txt | 2 + .../config/etc/group | 42 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 20 + .../config/etc/shadow | 19 + .../data/newusers.list | 1 + .../data/passwd | 20 + .../newusers.test | 37 + .../40_update_password_encrypted/config.txt | 1 + .../config/etc/group | 42 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/newusers.list | 1 + .../40_update_password_encrypted/data/shadow | 20 + .../newusers.test | 37 + .../config.txt | 0 .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/pam.d/common-password | 33 + .../config/etc/pam.d/newusers | 6 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/group | 42 + .../data/gshadow | 42 + .../data/newusers.list | 1 + .../data/passwd | 20 + .../data/shadow | 20 + .../newusers.test | 37 + .../41_create_user_encrypt_SHA256/config.txt | 0 .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../41_create_user_encrypt_SHA256/data/group | 42 + .../data/gshadow | 42 + .../data/newusers.list | 1 + .../41_create_user_encrypt_SHA256/data/passwd | 20 + .../41_create_user_encrypt_SHA256/data/shadow | 20 + .../newusers.test | 37 + .../config.txt | 0 .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/pam.d/common-password | 33 + .../config/etc/pam.d/newusers | 6 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/group | 42 + .../data/gshadow | 42 + .../data/newusers.list | 1 + .../data/passwd | 20 + .../data/shadow | 20 + .../newusers.test | 37 + .../42_create_user_encrypt_SHA512/config.txt | 0 .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../42_create_user_encrypt_SHA512/data/group | 42 + .../data/gshadow | 42 + .../data/newusers.list | 1 + .../42_create_user_encrypt_SHA512/data/passwd | 20 + .../42_create_user_encrypt_SHA512/data/shadow | 20 + .../newusers.test | 37 + .../config.txt | 0 .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/pam.d/common-password | 33 + .../config/etc/pam.d/newusers | 6 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/group | 42 + .../data/gshadow | 42 + .../data/newusers.list | 1 + .../data/passwd | 20 + .../data/shadow | 20 + .../newusers.test | 47 + .../config.txt | 0 .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/group | 42 + .../data/gshadow | 42 + .../data/newusers.list | 1 + .../data/passwd | 20 + .../data/shadow | 20 + .../newusers.test | 47 + .../config.txt | 0 .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/pam.d/common-password | 33 + .../config/etc/pam.d/newusers | 6 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/group | 42 + .../data/gshadow | 42 + .../data/newusers.list | 1 + .../data/passwd | 20 + .../data/shadow | 20 + .../newusers.test | 47 + .../config.txt | 0 .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/group | 42 + .../data/gshadow | 42 + .../data/newusers.list | 1 + .../data/passwd | 20 + .../data/shadow | 20 + .../newusers.test | 47 + .../config.txt | 0 .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/newusers.err | 8 + .../data/newusers.list | 1 + .../newusers.test | 54 + .../config.txt | 0 .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/group | 42 + .../data/gshadow | 42 + .../data/newusers.list | 1 + .../data/passwd | 20 + .../data/shadow | 20 + .../newusers.test | 38 + .../config.txt | 0 .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/newusers.err | 3 + .../data/newusers.list | 1 + .../newusers.test | 54 + .../config.txt | 0 .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/newusers.err | 3 + .../data/newusers.list | 1 + .../newusers.test | 54 + .../49_multiple_system_users/config.txt | 1 + .../49_multiple_system_users/config/etc/group | 43 + .../config/etc/gshadow | 43 + .../config/etc/pam.d/common-password | 33 + .../config/etc/pam.d/newusers | 6 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../49_multiple_system_users/data/group | 59 + .../49_multiple_system_users/data/gshadow | 59 + .../data/newusers.list | 17 + .../49_multiple_system_users/data/passwd | 38 + .../49_multiple_system_users/data/shadow | 38 + .../49_multiple_system_users/newusers.test | 37 + tests/tests/newusers/50_usage/config.txt | 0 .../tests/newusers/50_usage/config/etc/group | 42 + .../newusers/50_usage/config/etc/gshadow | 42 + .../tests/newusers/50_usage/config/etc/passwd | 26 + .../tests/newusers/50_usage/config/etc/shadow | 26 + tests/tests/newusers/50_usage/data/usage.out | 7 + tests/tests/newusers/50_usage/newusers.test | 48 + .../51_usage_invalid_option/config.txt | 0 .../51_usage_invalid_option/config/etc/group | 42 + .../config/etc/gshadow | 42 + .../51_usage_invalid_option/config/etc/passwd | 26 + .../51_usage_invalid_option/config/etc/shadow | 26 + .../51_usage_invalid_option/data/usage.out | 8 + .../51_usage_invalid_option/newusers.test | 54 + .../52_usage_2_input_files/config.txt | 0 .../52_usage_2_input_files/config/etc/group | 42 + .../52_usage_2_input_files/config/etc/gshadow | 42 + .../52_usage_2_input_files/config/etc/passwd | 26 + .../52_usage_2_input_files/config/etc/shadow | 26 + .../52_usage_2_input_files/data/usage.out | 7 + .../52_usage_2_input_files/newusers.test | 54 + .../newusers/53_locked_passwd/config.txt | 0 .../53_locked_passwd/config/etc/group | 42 + .../53_locked_passwd/config/etc/gshadow | 42 + .../53_locked_passwd/config/etc/passwd | 26 + .../53_locked_passwd/config/etc/shadow | 26 + .../53_locked_passwd/data/newusers.list | 1 + .../newusers/53_locked_passwd/data/usage.out | 2 + .../newusers/53_locked_passwd/newusers.test | 59 + .../newusers/54_locked_shadow/config.txt | 0 .../54_locked_shadow/config/etc/group | 42 + .../54_locked_shadow/config/etc/gshadow | 42 + .../54_locked_shadow/config/etc/passwd | 26 + .../54_locked_shadow/config/etc/shadow | 26 + .../54_locked_shadow/data/newusers.list | 1 + .../newusers/54_locked_shadow/data/usage.out | 2 + .../newusers/54_locked_shadow/newusers.test | 59 + .../tests/newusers/55_locked_group/config.txt | 0 .../newusers/55_locked_group/config/etc/group | 42 + .../55_locked_group/config/etc/gshadow | 42 + .../55_locked_group/config/etc/passwd | 26 + .../55_locked_group/config/etc/shadow | 26 + .../55_locked_group/data/newusers.list | 1 + .../newusers/55_locked_group/data/usage.out | 2 + .../newusers/55_locked_group/newusers.test | 59 + .../newusers/56_locked_gshadow/config.txt | 0 .../56_locked_gshadow/config/etc/group | 42 + .../56_locked_gshadow/config/etc/gshadow | 42 + .../56_locked_gshadow/config/etc/passwd | 26 + .../56_locked_gshadow/config/etc/shadow | 26 + .../56_locked_gshadow/data/newusers.list | 1 + .../newusers/56_locked_gshadow/data/usage.out | 2 + .../newusers/56_locked_gshadow/newusers.test | 59 + .../newusers/57_missing_input_file/config.txt | 0 .../57_missing_input_file/config/etc/group | 42 + .../57_missing_input_file/config/etc/gshadow | 42 + .../57_missing_input_file/config/etc/passwd | 26 + .../57_missing_input_file/config/etc/shadow | 26 + .../57_missing_input_file/data/usage.out | 1 + .../57_missing_input_file/newusers.test | 54 + .../newusers/58_invalid_input_file/config.txt | 0 .../58_invalid_input_file/config/etc/group | 42 + .../58_invalid_input_file/config/etc/gshadow | 42 + .../58_invalid_input_file/config/etc/passwd | 26 + .../58_invalid_input_file/config/etc/shadow | 26 + .../58_invalid_input_file/data/newusers.err | 2 + .../58_invalid_input_file/data/newusers.list | 1 + .../58_invalid_input_file/newusers.test | 54 + .../newusers/59_no_gshadow_file/config.txt | 2 + .../59_no_gshadow_file/config/etc/group | 41 + .../59_no_gshadow_file/config/etc/gshadow | 41 + .../config/etc/pam.d/common-password | 33 + .../config/etc/pam.d/newusers | 6 + .../59_no_gshadow_file/config/etc/passwd | 19 + .../59_no_gshadow_file/config/etc/shadow | 19 + .../newusers/59_no_gshadow_file/data/group | 42 + .../59_no_gshadow_file/data/newusers.list | 1 + .../newusers/59_no_gshadow_file/data/passwd | 20 + .../newusers/59_no_gshadow_file/data/shadow | 20 + .../newusers/59_no_gshadow_file/newusers.test | 38 + .../newusers/60_update_no_gecos/config.txt | 1 + .../60_update_no_gecos/config/etc/group | 42 + .../60_update_no_gecos/config/etc/gshadow | 41 + .../config/etc/pam.d/common-password | 33 + .../config/etc/pam.d/newusers | 6 + .../60_update_no_gecos/config/etc/passwd | 20 + .../60_update_no_gecos/config/etc/shadow | 20 + .../60_update_no_gecos/data/newusers.list | 1 + .../newusers/60_update_no_gecos/data/passwd | 20 + .../newusers/60_update_no_gecos/data/shadow | 20 + .../newusers/60_update_no_gecos/newusers.test | 37 + .../newusers/61_update_no_shell/config.txt | 1 + .../61_update_no_shell/config/etc/group | 42 + .../61_update_no_shell/config/etc/gshadow | 41 + .../config/etc/pam.d/common-password | 33 + .../config/etc/pam.d/newusers | 6 + .../61_update_no_shell/config/etc/passwd | 20 + .../61_update_no_shell/config/etc/shadow | 20 + .../61_update_no_shell/data/newusers.list | 1 + .../newusers/61_update_no_shell/data/passwd | 20 + .../newusers/61_update_no_shell/data/shadow | 20 + .../newusers/61_update_no_shell/newusers.test | 37 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/passwd.out | 1 + .../passwd.test | 48 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/passwd.out | 1 + .../passwd.test | 48 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/passwd.out | 1 + .../passwd.test | 48 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/passwd.out | 1 + .../passwd.test | 52 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 19 + .../data/passwd.out | 1 + .../passwd.test | 48 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/passwd.out | 1 + .../data/shadow | 20 + .../passwd.test | 48 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 19 + .../data/passwd | 20 + .../data/passwd.out | 1 + .../passwd.test | 48 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/passwd.out | 1 + .../data/shadow | 20 + .../passwd.test | 48 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/passwd.err | 2 + .../passwd.test | 54 + .../passwd/10_passwd_-d_root/config/etc/group | 42 + .../10_passwd_-d_root/config/etc/gshadow | 42 + .../10_passwd_-d_root/config/etc/passwd | 20 + .../10_passwd_-d_root/config/etc/shadow | 20 + .../passwd/10_passwd_-d_root/data/passwd.out | 1 + .../passwd/10_passwd_-d_root/data/shadow | 20 + .../passwd/10_passwd_-d_root/passwd.test | 48 + .../11_passwd_--mindays_root/config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../11_passwd_--mindays_root/data/passwd.out | 1 + .../11_passwd_--mindays_root/data/shadow | 20 + .../11_passwd_--mindays_root/passwd.test | 48 + .../12_passwd_--maxdays_root/config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../12_passwd_--maxdays_root/data/passwd.out | 1 + .../12_passwd_--maxdays_root/data/shadow | 20 + .../12_passwd_--maxdays_root/passwd.test | 48 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../13_passwd_--warndays_root/data/passwd.out | 1 + .../13_passwd_--warndays_root/data/shadow | 20 + .../13_passwd_--warndays_root/passwd.test | 48 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../14_passwd_--inactive_root/data/passwd.out | 1 + .../14_passwd_--inactive_root/data/shadow | 20 + .../14_passwd_--inactive_root/passwd.test | 48 + .../15_passwd_--expire_root/config/etc/group | 42 + .../config/etc/gshadow | 42 + .../15_passwd_--expire_root/config/etc/passwd | 20 + .../15_passwd_--expire_root/config/etc/shadow | 20 + .../15_passwd_--expire_root/data/passwd.out | 1 + .../15_passwd_--expire_root/data/shadow | 20 + .../15_passwd_--expire_root/passwd.test | 48 + .../16_passwd_-S-a_root/config/etc/group | 42 + .../16_passwd_-S-a_root/config/etc/gshadow | 42 + .../16_passwd_-S-a_root/config/etc/passwd | 20 + .../16_passwd_-S-a_root/config/etc/shadow | 20 + .../16_passwd_-S-a_root/data/passwd.out | 20 + .../passwd/16_passwd_-S-a_root/passwd.test | 47 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/pam.d/common-password | 33 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/shadow | 20 + .../17_passwd_root_change_password/passwd.exp | 22 + .../passwd.test | 37 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/pam.d/common-password | 33 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/shadow | 20 + .../passwd.exp | 22 + .../passwd.test | 37 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/pam.d/common-password | 33 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/shadow | 20 + .../19_passwd_user_change_password/passwd.exp | 31 + .../passwd.test | 37 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/pam.d/common-password | 33 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/shadow | 20 + .../passwd.exp | 31 + .../passwd.test | 37 + .../config/etc/group | 43 + .../config/etc/gshadow | 43 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../data/passwd.err | 1 + .../passwd.test | 53 + tests/tests/passwd/22_passwd_usage/config.txt | 10 + .../passwd/22_passwd_usage/config/etc/group | 41 + .../passwd/22_passwd_usage/config/etc/gshadow | 41 + .../passwd/22_passwd_usage/config/etc/passwd | 19 + .../passwd/22_passwd_usage/config/etc/shadow | 19 + .../passwd/22_passwd_usage/data/usage.out | 22 + .../tests/passwd/22_passwd_usage/passwd.test | 47 + tests/tests/run_all | 1310 +++++++++++++ tests/tests/run_all.coverage | 1329 +++++++++++++ tests/tests/run_some | 153 ++ .../01_useradd_split_group/config.txt | 5 + .../config/etc/default/useradd | 36 + .../01_useradd_split_group/config/etc/group | 44 + .../01_useradd_split_group/config/etc/gshadow | 44 + .../config/etc/login.defs | 316 +++ .../01_useradd_split_group/config/etc/passwd | 21 + .../01_useradd_split_group/config/etc/shadow | 21 + .../01_useradd_split_group/data/group | 46 + .../01_useradd_split_group/data/gshadow | 45 + .../01_useradd_split_group/data/passwd | 22 + .../01_useradd_split_group/data/shadow | 22 + .../01_useradd_split_group/useradd.test | 39 + .../02_useradd_no_split_group/config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 44 + .../config/etc/gshadow | 44 + .../config/etc/login.defs | 316 +++ .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../02_useradd_no_split_group/data/group | 45 + .../02_useradd_no_split_group/data/gshadow | 45 + .../02_useradd_no_split_group/data/passwd | 22 + .../02_useradd_no_split_group/data/shadow | 22 + .../02_useradd_no_split_group/useradd.test | 39 + .../config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 46 + .../config/etc/gshadow | 45 + .../config/etc/login.defs | 316 +++ .../config/etc/passwd | 22 + .../config/etc/shadow | 22 + .../data/group | 47 + .../data/gshadow | 46 + .../data/passwd | 23 + .../data/shadow | 23 + .../useradd.test | 39 + .../config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 45 + .../config/etc/gshadow | 45 + .../config/etc/login.defs | 316 +++ .../config/etc/passwd | 22 + .../config/etc/shadow | 22 + .../data/group | 47 + .../data/gshadow | 46 + .../data/passwd | 23 + .../data/shadow | 23 + .../useradd.test | 39 + .../config.txt | 5 + .../config/etc/group | 46 + .../config/etc/gshadow | 45 + .../config/etc/login.defs | 316 +++ .../config/etc/passwd | 22 + .../config/etc/shadow | 22 + .../data/useradd.err | 2 + .../useradd.test | 54 + .../config.txt | 5 + .../config/etc/group | 46 + .../config/etc/gshadow | 45 + .../config/etc/login.defs | 316 +++ .../config/etc/passwd | 22 + .../config/etc/shadow | 22 + .../data/useradd.err | 2 + .../useradd.test | 54 + .../config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 46 + .../config/etc/gshadow | 45 + .../config/etc/login.defs | 316 +++ .../config/etc/passwd | 22 + .../config/etc/shadow | 22 + .../data/group | 47 + .../data/gshadow | 46 + .../data/passwd | 23 + .../data/shadow | 23 + .../useradd.test | 39 + .../config.txt | 5 + .../config/etc/group | 46 + .../config/etc/gshadow | 45 + .../config/etc/login.defs | 316 +++ .../config/etc/passwd | 22 + .../config/etc/shadow | 22 + .../data/useradd.err | 2 + .../useradd.test | 54 + .../config.txt | 5 + .../config/etc/group | 46 + .../config/etc/gshadow | 45 + .../config/etc/login.defs | 316 +++ .../config/etc/passwd | 22 + .../config/etc/shadow | 22 + .../data/group | 44 + .../data/gshadow | 44 + .../groupdel.test | 39 + .../config.txt | 5 + .../config/etc/group | 46 + .../config/etc/gshadow | 45 + .../config/etc/login.defs | 316 +++ .../config/etc/passwd | 22 + .../config/etc/shadow | 22 + .../data/groupdel.err | 2 + .../groupdel.test | 54 + tests/tests/su/01/config.txt | 3 + tests/tests/su/01/config/etc/group | 42 + tests/tests/su/01/config/etc/gshadow | 42 + tests/tests/su/01/config/etc/passwd | 21 + tests/tests/su/01/config/etc/shadow | 20 + tests/tests/su/01/run_su.exp | 73 + tests/tests/su/01/su_root.test | 25 + tests/tests/su/01/su_user.test | 25 + tests/tests/su/02/config.txt | 5 + tests/tests/su/02/config/etc/group | 42 + tests/tests/su/02/config/etc/gshadow | 42 + tests/tests/su/02/config/etc/passwd | 21 + tests/tests/su/02/config/etc/profile | 0 tests/tests/su/02/config/etc/shadow | 20 + tests/tests/su/02/env_FOO-options_ | 40 + tests/tests/su/02/env_FOO-options_- | 40 + tests/tests/su/02/env_FOO-options_--login | 40 + tests/tests/su/02/env_FOO-options_--login.exp | 48 + .../tests/su/02/env_FOO-options_--login_bash | 40 + .../02/env_FOO-options_--preserve-environment | 40 + ...env_FOO-options_--preserve-environment.exp | 48 + ...nv_FOO-options_--preserve-environment_bash | 40 + tests/tests/su/02/env_FOO-options_-.exp | 48 + tests/tests/su/02/env_FOO-options_-_bash | 40 + tests/tests/su/02/env_FOO-options_-l | 40 + tests/tests/su/02/env_FOO-options_-l-m | 40 + tests/tests/su/02/env_FOO-options_-l-m.exp | 48 + tests/tests/su/02/env_FOO-options_-l-m_bash | 40 + tests/tests/su/02/env_FOO-options_-l.exp | 48 + tests/tests/su/02/env_FOO-options_-l_bash | 40 + tests/tests/su/02/env_FOO-options_-m | 40 + tests/tests/su/02/env_FOO-options_-m.exp | 48 + tests/tests/su/02/env_FOO-options_-m_bash | 40 + tests/tests/su/02/env_FOO-options_-p | 40 + tests/tests/su/02/env_FOO-options_-p- | 40 + tests/tests/su/02/env_FOO-options_-p-.exp | 48 + tests/tests/su/02/env_FOO-options_-p-_bash | 40 + tests/tests/su/02/env_FOO-options_-p.exp | 48 + tests/tests/su/02/env_FOO-options_-p_bash | 40 + tests/tests/su/02/env_FOO-options_.exp | 48 + tests/tests/su/02/env_FOO-options__bash | 40 + tests/tests/su/02/env_special-options_ | 40 + tests/tests/su/02/env_special-options_-l | 40 + tests/tests/su/02/env_special-options_-l-p | 40 + .../tests/su/02/env_special-options_-l-p.exp | 55 + .../tests/su/02/env_special-options_-l-p_bash | 40 + tests/tests/su/02/env_special-options_-l.exp | 54 + tests/tests/su/02/env_special-options_-l_bash | 40 + tests/tests/su/02/env_special-options_-p | 40 + tests/tests/su/02/env_special-options_-p.exp | 56 + tests/tests/su/02/env_special-options_-p_bash | 40 + tests/tests/su/02/env_special-options_.exp | 55 + tests/tests/su/02/env_special-options__bash | 40 + tests/tests/su/02/env_special_root-options_ | 40 + tests/tests/su/02/env_special_root-options_-l | 40 + .../tests/su/02/env_special_root-options_-l-p | 40 + .../su/02/env_special_root-options_-l-p.exp | 57 + .../su/02/env_special_root-options_-l-p_bash | 40 + .../su/02/env_special_root-options_-l.exp | 54 + .../su/02/env_special_root-options_-l_bash | 40 + tests/tests/su/02/env_special_root-options_-p | 40 + .../su/02/env_special_root-options_-p.exp | 56 + .../su/02/env_special_root-options_-p_bash | 40 + .../tests/su/02/env_special_root-options_.exp | 55 + .../su/02/env_special_root-options__bash | 40 + tests/tests/su/02/run_env_test.sh | 40 + tests/tests/su/03/config/etc/group | 42 + tests/tests/su/03/config/etc/gshadow | 42 + tests/tests/su/03/config/etc/passwd | 21 + tests/tests/su/03/config/etc/shadow | 20 + tests/tests/su/03/data/ls.out | 1 + tests/tests/su/03/su_run_command01.test | 43 + tests/tests/su/03/su_run_command02.test | 36 + tests/tests/su/03/su_run_command03.test | 36 + tests/tests/su/03/su_run_command04.test | 36 + tests/tests/su/03/su_run_command05.test | 36 + tests/tests/su/03/su_run_command06.test | 45 + tests/tests/su/03/su_run_command07.test | 45 + tests/tests/su/03/su_run_command08.test | 45 + tests/tests/su/03/su_run_command09.test | 45 + tests/tests/su/03/su_run_command10.test | 45 + tests/tests/su/03/su_run_command11.test | 45 + tests/tests/su/03/su_run_command12.test | 45 + tests/tests/su/03/su_run_command13.test | 51 + tests/tests/su/03/su_run_command14.test | 46 + tests/tests/su/03/su_run_command15.test | 53 + tests/tests/su/03/su_run_command16.test | 46 + tests/tests/su/03/su_run_command17.test | 46 + tests/tests/su/04/config.txt | 3 + tests/tests/su/04/config/etc/group | 42 + tests/tests/su/04/config/etc/gshadow | 42 + tests/tests/su/04/config/etc/login.defs | 314 +++ tests/tests/su/04/config/etc/passwd | 21 + tests/tests/su/04/config/etc/shadow | 20 + tests/tests/su/04/config/var/log/auth.log | 0 tests/tests/su/04/data/wrong_user.err | 1 + tests/tests/su/04/run_su_failed.exp | 58 + tests/tests/su/04/su_user_wrong_passwd.test | 24 + .../su/04/su_user_wrong_passwd_syslog.test | 40 + tests/tests/su/04/su_wrong_user.test | 47 + tests/tests/su/05/config.txt | 5 + tests/tests/su/05/config/etc/group | 42 + tests/tests/su/05/config/etc/gshadow | 42 + tests/tests/su/05/config/etc/login.defs | 314 +++ tests/tests/su/05/config/etc/passwd | 21 + tests/tests/su/05/config/etc/shadow | 20 + tests/tests/su/05/config/var/log/auth.log | 0 tests/tests/su/05/run_su_failed.exp | 58 + .../su/05/su_user_wrong_passwd_syslog.test | 40 + tests/tests/su/06/config.txt | 3 + tests/tests/su/06/config/etc/group | 42 + tests/tests/su/06/config/etc/gshadow | 42 + tests/tests/su/06/config/etc/login.defs | 314 +++ tests/tests/su/06/config/etc/passwd | 21 + tests/tests/su/06/config/etc/shadow | 20 + tests/tests/su/06/config/var/log/auth.log | 0 tests/tests/su/06/run_su.exp | 73 + tests/tests/su/06/su_user_syslog.test | 39 + tests/tests/su/07/config.txt | 3 + tests/tests/su/07/config/etc/group | 42 + tests/tests/su/07/config/etc/gshadow | 42 + tests/tests/su/07/config/etc/login.defs | 314 +++ tests/tests/su/07/config/etc/passwd | 21 + tests/tests/su/07/config/etc/shadow | 20 + tests/tests/su/07/config/var/log/auth.log | 0 tests/tests/su/07/run_su.exp | 73 + tests/tests/su/07/su_user_syslog.test | 44 + tests/tests/su/08/config.txt | 0 tests/tests/su/08/config/etc/group | 42 + tests/tests/su/08/config/etc/gshadow | 42 + tests/tests/su/08/config/etc/login.defs | 314 +++ tests/tests/su/08/config/etc/passwd | 21 + tests/tests/su/08/config/etc/shadow | 20 + tests/tests/su/08/env_special-options_ | 40 + tests/tests/su/08/env_special-options_.exp | 55 + tests/tests/su/08/env_special_root-options_ | 40 + .../tests/su/08/env_special_root-options_.exp | 55 + tests/tests/su/09/config.txt | 3 + tests/tests/su/09/config/etc/group | 42 + tests/tests/su/09/config/etc/gshadow | 42 + tests/tests/su/09/config/etc/login.defs | 314 +++ tests/tests/su/09/config/etc/passwd | 21 + tests/tests/su/09/config/etc/shadow | 20 + tests/tests/su/09/env_special-options_ | 40 + tests/tests/su/09/env_special-options_.exp | 55 + tests/tests/su/09/env_special_root-options_ | 40 + .../tests/su/09/env_special_root-options_.exp | 55 + tests/tests/su/10_su_sulog_success/config.txt | 3 + .../su/10_su_sulog_success/config/etc/group | 42 + .../su/10_su_sulog_success/config/etc/gshadow | 42 + .../10_su_sulog_success/config/etc/login.defs | 314 +++ .../su/10_su_sulog_success/config/etc/passwd | 21 + .../su/10_su_sulog_success/config/etc/shadow | 20 + .../10_su_sulog_success/config/var/log/sulog | 0 tests/tests/su/10_su_sulog_success/data/sulog | 1 + tests/tests/su/10_su_sulog_success/run_su.exp | 73 + tests/tests/su/10_su_sulog_success/su.test | 40 + tests/tests/su/11_su_sulog_failure/config.txt | 3 + .../su/11_su_sulog_failure/config/etc/group | 42 + .../su/11_su_sulog_failure/config/etc/gshadow | 42 + .../11_su_sulog_failure/config/etc/login.defs | 314 +++ .../su/11_su_sulog_failure/config/etc/passwd | 21 + .../su/11_su_sulog_failure/config/etc/shadow | 20 + .../11_su_sulog_failure/config/var/log/sulog | 0 tests/tests/su/11_su_sulog_failure/data/sulog | 1 + tests/tests/su/11_su_sulog_failure/run_su.exp | 67 + tests/tests/su/11_su_sulog_failure/su.test | 43 + tests/tests/su/12_su_child_failure/config.txt | 3 + .../su/12_su_child_failure/config/etc/group | 42 + .../su/12_su_child_failure/config/etc/gshadow | 42 + .../12_su_child_failure/config/etc/login.defs | 314 +++ .../su/12_su_child_failure/config/etc/passwd | 21 + .../su/12_su_child_failure/config/etc/shadow | 20 + .../12_su_child_failure/config/var/log/sulog | 0 tests/tests/su/12_su_child_failure/su.test | 37 + tests/tests/su/13_su_child_success/config.txt | 3 + .../su/13_su_child_success/config/etc/group | 42 + .../su/13_su_child_success/config/etc/gshadow | 42 + .../13_su_child_success/config/etc/login.defs | 314 +++ .../su/13_su_child_success/config/etc/passwd | 21 + .../su/13_su_child_success/config/etc/shadow | 20 + .../13_su_child_success/config/var/log/sulog | 0 tests/tests/su/13_su_child_success/su.test | 31 + .../subids/01_useradd_no_subids/config.txt | 0 .../config/etc/default/useradd | 36 + .../01_useradd_no_subids/config/etc/group | 41 + .../01_useradd_no_subids/config/etc/gshadow | 41 + .../01_useradd_no_subids/config/etc/passwd | 19 + .../01_useradd_no_subids/config/etc/shadow | 19 + .../01_useradd_no_subids/config/etc/subgid | 0 .../01_useradd_no_subids/config/etc/subuid | 0 .../subids/01_useradd_no_subids/data/group | 42 + .../subids/01_useradd_no_subids/data/gshadow | 42 + .../subids/01_useradd_no_subids/data/passwd | 20 + .../subids/01_useradd_no_subids/data/shadow | 20 + .../subids/01_useradd_no_subids/useradd.test | 47 + .../subids/02_useradd_with_subids/config.txt | 0 .../config/etc/default/useradd | 36 + .../02_useradd_with_subids/config/etc/group | 41 + .../02_useradd_with_subids/config/etc/gshadow | 41 + .../02_useradd_with_subids/config/etc/passwd | 19 + .../02_useradd_with_subids/config/etc/shadow | 19 + .../02_useradd_with_subids/config/etc/subgid | 0 .../02_useradd_with_subids/config/etc/subuid | 0 .../subids/02_useradd_with_subids/data/group | 42 + .../02_useradd_with_subids/data/gshadow | 42 + .../subids/02_useradd_with_subids/data/passwd | 20 + .../subids/02_useradd_with_subids/data/shadow | 20 + .../subids/02_useradd_with_subids/data/subgid | 1 + .../subids/02_useradd_with_subids/data/subuid | 1 + .../02_useradd_with_subids/useradd.test | 45 + .../subids/03_useradd_no_subgid/config.txt | 0 .../config/etc/default/useradd | 36 + .../03_useradd_no_subgid/config/etc/group | 41 + .../03_useradd_no_subgid/config/etc/gshadow | 41 + .../03_useradd_no_subgid/config/etc/passwd | 19 + .../03_useradd_no_subgid/config/etc/shadow | 19 + .../03_useradd_no_subgid/config/etc/subgid | 0 .../03_useradd_no_subgid/config/etc/subuid | 0 .../subids/03_useradd_no_subgid/data/group | 42 + .../subids/03_useradd_no_subgid/data/gshadow | 42 + .../subids/03_useradd_no_subgid/data/passwd | 20 + .../subids/03_useradd_no_subgid/data/shadow | 20 + .../subids/03_useradd_no_subgid/data/subuid | 1 + .../subids/03_useradd_no_subgid/useradd.test | 49 + .../subids/04_useradd_no_subuid/config.txt | 0 .../config/etc/default/useradd | 36 + .../04_useradd_no_subuid/config/etc/group | 41 + .../04_useradd_no_subuid/config/etc/gshadow | 41 + .../04_useradd_no_subuid/config/etc/passwd | 19 + .../04_useradd_no_subuid/config/etc/shadow | 19 + .../04_useradd_no_subuid/config/etc/subgid | 0 .../04_useradd_no_subuid/config/etc/subuid | 0 .../subids/04_useradd_no_subuid/data/group | 42 + .../subids/04_useradd_no_subuid/data/gshadow | 42 + .../subids/04_useradd_no_subuid/data/passwd | 20 + .../subids/04_useradd_no_subuid/data/shadow | 20 + .../subids/04_useradd_no_subuid/data/subgid | 1 + .../subids/04_useradd_no_subuid/useradd.test | 49 + .../05_useradd_fill_gap_start/config.txt | 0 .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../config/etc/subgid | 1 + .../config/etc/subuid | 1 + .../05_useradd_fill_gap_start/data/group | 42 + .../05_useradd_fill_gap_start/data/gshadow | 42 + .../05_useradd_fill_gap_start/data/passwd | 20 + .../05_useradd_fill_gap_start/data/shadow | 20 + .../05_useradd_fill_gap_start/data/subgid | 2 + .../05_useradd_fill_gap_start/data/subuid | 2 + .../05_useradd_fill_gap_start/useradd.test | 45 + .../06_useradd_fill_gap_middle/config.txt | 0 .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../config/etc/subgid | 2 + .../config/etc/subuid | 2 + .../06_useradd_fill_gap_middle/data/group | 42 + .../06_useradd_fill_gap_middle/data/gshadow | 42 + .../06_useradd_fill_gap_middle/data/passwd | 20 + .../06_useradd_fill_gap_middle/data/shadow | 20 + .../06_useradd_fill_gap_middle/data/subgid | 3 + .../06_useradd_fill_gap_middle/data/subuid | 3 + .../06_useradd_fill_gap_middle/useradd.test | 45 + .../subids/07_useradd_fill_gap_end/config.txt | 0 .../config/etc/default/useradd | 36 + .../07_useradd_fill_gap_end/config/etc/group | 41 + .../config/etc/gshadow | 41 + .../07_useradd_fill_gap_end/config/etc/passwd | 19 + .../07_useradd_fill_gap_end/config/etc/shadow | 19 + .../07_useradd_fill_gap_end/config/etc/subgid | 1 + .../07_useradd_fill_gap_end/config/etc/subuid | 1 + .../subids/07_useradd_fill_gap_end/data/group | 42 + .../07_useradd_fill_gap_end/data/gshadow | 42 + .../07_useradd_fill_gap_end/data/passwd | 20 + .../07_useradd_fill_gap_end/data/shadow | 20 + .../07_useradd_fill_gap_end/data/subgid | 2 + .../07_useradd_fill_gap_end/data/subuid | 2 + .../07_useradd_fill_gap_end/useradd.test | 45 + .../config.txt | 0 .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../config/etc/subgid | 1 + .../config/etc/subuid | 1 + .../data/useradd.err | 2 + .../useradd.test | 60 + .../config.txt | 0 .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../config/etc/subgid | 1 + .../config/etc/subuid | 1 + .../data/useradd.err | 2 + .../useradd.test | 60 + .../10_useradd_no_more_subuids_end/config.txt | 0 .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../config/etc/subgid | 1 + .../config/etc/subuid | 1 + .../data/useradd.err | 2 + .../useradd.test | 60 + .../11_useradd_no_more_subgids_end/config.txt | 0 .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../config/etc/subgid | 1 + .../config/etc/subuid | 1 + .../data/useradd.err | 2 + .../useradd.test | 60 + .../config.txt | 0 .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/login.defs | 342 ++++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../config/etc/subgid | 0 .../config/etc/subuid | 0 .../data/useradd.err | 2 + .../useradd.test | 60 + .../config.txt | 0 .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/login.defs | 342 ++++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../config/etc/subgid | 0 .../config/etc/subuid | 0 .../data/useradd.err | 2 + .../useradd.test | 60 + .../config.txt | 0 .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/login.defs | 342 ++++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../config/etc/subgid | 0 .../config/etc/subuid | 0 .../data/useradd.err | 2 + .../useradd.test | 60 + .../config.txt | 0 .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/login.defs | 342 ++++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../config/etc/subgid | 0 .../config/etc/subuid | 0 .../data/useradd.err | 2 + .../useradd.test | 60 + .../config.txt | 0 .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/login.defs | 342 ++++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../config/etc/subgid | 0 .../config/etc/subuid | 0 .../data/useradd.err | 2 + .../useradd.test | 60 + .../config.txt | 0 .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/login.defs | 342 ++++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../config/etc/subgid | 0 .../config/etc/subuid | 0 .../data/useradd.err | 2 + .../useradd.test | 60 + .../subids/18_useradd_min=max/config.txt | 0 .../config/etc/default/useradd | 36 + .../18_useradd_min=max/config/etc/group | 41 + .../18_useradd_min=max/config/etc/gshadow | 41 + .../18_useradd_min=max/config/etc/login.defs | 342 ++++ .../18_useradd_min=max/config/etc/passwd | 19 + .../18_useradd_min=max/config/etc/shadow | 19 + .../18_useradd_min=max/config/etc/subgid | 0 .../18_useradd_min=max/config/etc/subuid | 0 .../subids/18_useradd_min=max/data/group | 42 + .../subids/18_useradd_min=max/data/gshadow | 42 + .../subids/18_useradd_min=max/data/passwd | 20 + .../subids/18_useradd_min=max/data/shadow | 20 + .../subids/18_useradd_min=max/data/subgid | 1 + .../subids/18_useradd_min=max/data/subuid | 1 + .../subids/18_useradd_min=max/useradd.test | 45 + .../19_useradd_locked_subuid/config.txt | 0 .../config/etc/default/useradd | 36 + .../19_useradd_locked_subuid/config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../config/etc/subgid | 0 .../config/etc/subuid | 0 .../19_useradd_locked_subuid/data/useradd.err | 2 + .../19_useradd_locked_subuid/useradd.test | 66 + .../20_useradd_locked_subgid/config.txt | 0 .../config/etc/default/useradd | 36 + .../20_useradd_locked_subgid/config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../config/etc/subgid | 0 .../config/etc/subuid | 0 .../20_useradd_locked_subgid/data/useradd.err | 2 + .../20_useradd_locked_subgid/useradd.test | 66 + .../21_usermod_create_subuid_range/config.txt | 6 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../config/etc/subgid | 0 .../config/etc/subuid | 0 .../data/subuid | 1 + .../usermod.test | 45 + .../22_usermod_create_subgid_range/config.txt | 6 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../config/etc/subgid | 0 .../config/etc/subuid | 0 .../data/subgid | 1 + .../usermod.test | 45 + .../config.txt | 6 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../config/etc/subgid | 0 .../config/etc/subuid | 0 .../data/subgid | 3 + .../data/subuid | 2 + .../usermod.test | 45 + .../config.txt | 6 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../config/etc/subgid | 0 .../config/etc/subuid | 0 .../data/subgid | 3 + .../data/subuid | 4 + .../usermod.test | 45 + .../subids/25_usermod_add_range/config.txt | 6 + .../config/etc/default/useradd | 36 + .../25_usermod_add_range/config/etc/group | 42 + .../25_usermod_add_range/config/etc/gshadow | 42 + .../25_usermod_add_range/config/etc/passwd | 20 + .../25_usermod_add_range/config/etc/shadow | 20 + .../25_usermod_add_range/config/etc/subgid | 1 + .../25_usermod_add_range/config/etc/subuid | 1 + .../subids/25_usermod_add_range/data/subgid | 2 + .../subids/25_usermod_add_range/data/subuid | 2 + .../subids/25_usermod_add_range/usermod.test | 45 + .../config.txt | 6 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../config/etc/subgid | 2 + .../config/etc/subuid | 2 + .../data/subgid | 3 + .../data/subuid | 3 + .../usermod.test | 45 + .../27_usermod_remove_range_all/config.txt | 6 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../config/etc/subgid | 1 + .../config/etc/subuid | 1 + .../27_usermod_remove_range_all/data/subgid | 0 .../27_usermod_remove_range_all/data/subuid | 0 .../27_usermod_remove_range_all/usermod.test | 45 + .../config.txt | 6 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../config/etc/subgid | 2 + .../config/etc/subuid | 2 + .../data/subgid | 2 + .../data/subuid | 2 + .../usermod.test | 45 + .../config.txt | 6 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../config/etc/subgid | 1 + .../config/etc/subuid | 2 + .../data/subgid | 2 + .../data/subuid | 4 + .../usermod.test | 45 + .../config.txt | 6 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../config/etc/subgid | 1 + .../config/etc/subuid | 2 + .../data/subgid | 1 + .../data/subuid | 2 + .../usermod.test | 45 + .../config.txt | 6 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../config/etc/subgid | 2 + .../config/etc/subuid | 2 + .../data/subgid | 2 + .../data/subuid | 2 + .../usermod.test | 45 + .../config.txt | 6 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../config/etc/subgid | 1 + .../config/etc/subuid | 2 + .../data/subgid | 1 + .../data/subuid | 2 + .../usermod.test | 45 + .../config.txt | 6 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../config/etc/subgid | 1 + .../config/etc/subuid | 2 + .../data/subgid | 1 + .../data/subuid | 2 + .../usermod.test | 45 + .../config.txt | 6 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../config/etc/subgid | 1 + .../config/etc/subuid | 2 + .../data/subgid | 0 .../data/subuid | 1 + .../usermod.test | 45 + .../config.txt | 6 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../config/etc/subgid | 4 + .../config/etc/subuid | 4 + .../data/subgid | 2 + .../data/subuid | 2 + .../usermod.test | 45 + .../36_usermod_remove_with_comment/config.txt | 6 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../config/etc/subgid | 3 + .../config/etc/subuid | 3 + .../data/subgid | 1 + .../data/subuid | 1 + .../usermod.test | 45 + .../37_usermod_-v_invalid_range/config.txt | 6 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../config/etc/subgid | 1 + .../config/etc/subuid | 2 + .../data/usermod.err | 1 + .../37_usermod_-v_invalid_range/usermod.test | 60 + .../38_usermod_-V_invalid_range/config.txt | 6 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../config/etc/subgid | 1 + .../config/etc/subuid | 2 + .../data/usermod.err | 1 + .../38_usermod_-V_invalid_range/usermod.test | 60 + .../39_usermod_-w_invalid_range/config.txt | 6 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../config/etc/subgid | 1 + .../config/etc/subuid | 2 + .../data/usermod.err | 1 + .../39_usermod_-w_invalid_range/usermod.test | 60 + .../40_usermod_-W_invalid_range/config.txt | 6 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../config/etc/subgid | 1 + .../config/etc/subuid | 2 + .../data/usermod.err | 1 + .../40_usermod_-W_invalid_range/usermod.test | 60 + .../41_usermod_locked_subuid/config.txt | 0 .../config/etc/default/useradd | 36 + .../41_usermod_locked_subuid/config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../config/etc/subgid | 0 .../config/etc/subuid | 0 .../41_usermod_locked_subuid/data/usermod.err | 2 + .../41_usermod_locked_subuid/usermod.test | 66 + .../42_usermod_locked_subgid/config.txt | 0 .../config/etc/default/useradd | 36 + .../42_usermod_locked_subgid/config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../config/etc/subgid | 0 .../config/etc/subuid | 0 .../42_usermod_locked_subgid/data/usermod.err | 2 + .../42_usermod_locked_subgid/usermod.test | 66 + .../subids/43_usermod_-w_no_subgid/config.txt | 0 .../config/etc/default/useradd | 36 + .../43_usermod_-w_no_subgid/config/etc/group | 42 + .../config/etc/gshadow | 42 + .../43_usermod_-w_no_subgid/config/etc/passwd | 20 + .../43_usermod_-w_no_subgid/config/etc/shadow | 20 + .../43_usermod_-w_no_subgid/config/etc/subgid | 0 .../43_usermod_-w_no_subgid/config/etc/subuid | 0 .../43_usermod_-w_no_subgid/data/usermod.err | 1 + .../43_usermod_-w_no_subgid/usermod.test | 64 + .../subids/44_usermod_-W_no_subgid/config.txt | 0 .../config/etc/default/useradd | 36 + .../44_usermod_-W_no_subgid/config/etc/group | 42 + .../config/etc/gshadow | 42 + .../44_usermod_-W_no_subgid/config/etc/passwd | 20 + .../44_usermod_-W_no_subgid/config/etc/shadow | 20 + .../44_usermod_-W_no_subgid/config/etc/subgid | 0 .../44_usermod_-W_no_subgid/config/etc/subuid | 0 .../44_usermod_-W_no_subgid/data/usermod.err | 1 + .../44_usermod_-W_no_subgid/usermod.test | 64 + .../subids/45_usermod_-v_no_subgid/config.txt | 0 .../config/etc/default/useradd | 36 + .../45_usermod_-v_no_subgid/config/etc/group | 42 + .../config/etc/gshadow | 42 + .../45_usermod_-v_no_subgid/config/etc/passwd | 20 + .../45_usermod_-v_no_subgid/config/etc/shadow | 20 + .../45_usermod_-v_no_subgid/config/etc/subgid | 0 .../45_usermod_-v_no_subgid/config/etc/subuid | 0 .../45_usermod_-v_no_subgid/data/usermod.err | 1 + .../45_usermod_-v_no_subgid/usermod.test | 64 + .../subids/46_usermod_-V_no_subgid/config.txt | 0 .../config/etc/default/useradd | 36 + .../46_usermod_-V_no_subgid/config/etc/group | 42 + .../config/etc/gshadow | 42 + .../46_usermod_-V_no_subgid/config/etc/passwd | 20 + .../46_usermod_-V_no_subgid/config/etc/shadow | 20 + .../46_usermod_-V_no_subgid/config/etc/subgid | 0 .../46_usermod_-V_no_subgid/config/etc/subuid | 0 .../46_usermod_-V_no_subgid/data/usermod.err | 1 + .../46_usermod_-V_no_subgid/usermod.test | 64 + .../47_usermod_-v_invalid_range2/config.txt | 6 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../config/etc/subgid | 1 + .../config/etc/subuid | 2 + .../data/usermod.err | 1 + .../47_usermod_-v_invalid_range2/usermod.test | 60 + .../48_usermod_-v_invalid_range3/config.txt | 6 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../config/etc/subgid | 1 + .../config/etc/subuid | 2 + .../data/usermod.err | 1 + .../48_usermod_-v_invalid_range3/usermod.test | 60 + .../49_usermod_-v_invalid_range4/config.txt | 6 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../config/etc/subgid | 1 + .../config/etc/subuid | 2 + .../data/usermod.err | 1 + .../49_usermod_-v_invalid_range4/usermod.test | 60 + .../50_usermod_-v_invalid_range5/config.txt | 6 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../config/etc/subgid | 1 + .../config/etc/subuid | 2 + .../data/usermod.err | 1 + .../50_usermod_-v_invalid_range5/usermod.test | 60 + .../51_usermod_-v_invalid_range6/config.txt | 6 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../config/etc/subgid | 1 + .../config/etc/subuid | 2 + .../data/usermod.err | 1 + .../51_usermod_-v_invalid_range6/usermod.test | 60 + .../52_usermod_-v_invalid_range7/config.txt | 6 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../config/etc/subgid | 1 + .../config/etc/subuid | 2 + .../data/usermod.err | 1 + .../52_usermod_-v_invalid_range7/usermod.test | 60 + .../53_userdel_one_subuid_range/config.txt | 6 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../config/etc/subgid | 0 .../config/etc/subuid | 1 + .../53_userdel_one_subuid_range/data/group | 41 + .../53_userdel_one_subuid_range/data/gshadow | 41 + .../53_userdel_one_subuid_range/data/passwd | 19 + .../53_userdel_one_subuid_range/data/shadow | 19 + .../53_userdel_one_subuid_range/data/subuid | 0 .../53_userdel_one_subuid_range/userdel.test | 45 + .../54_userdel_one_subgid_range/config.txt | 6 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../config/etc/subgid | 1 + .../config/etc/subuid | 0 .../54_userdel_one_subgid_range/data/group | 41 + .../54_userdel_one_subgid_range/data/gshadow | 41 + .../54_userdel_one_subgid_range/data/passwd | 19 + .../54_userdel_one_subgid_range/data/shadow | 19 + .../54_userdel_one_subgid_range/data/subgid | 0 .../54_userdel_one_subgid_range/userdel.test | 45 + .../subids/55_userdel_no_subuid/config.txt | 6 + .../config/etc/default/useradd | 36 + .../55_userdel_no_subuid/config/etc/group | 42 + .../55_userdel_no_subuid/config/etc/gshadow | 42 + .../55_userdel_no_subuid/config/etc/passwd | 20 + .../55_userdel_no_subuid/config/etc/shadow | 20 + .../55_userdel_no_subuid/config/etc/subgid | 1 + .../55_userdel_no_subuid/config/etc/subuid | 0 .../subids/55_userdel_no_subuid/data/group | 41 + .../subids/55_userdel_no_subuid/data/gshadow | 41 + .../subids/55_userdel_no_subuid/data/passwd | 19 + .../subids/55_userdel_no_subuid/data/shadow | 19 + .../subids/55_userdel_no_subuid/data/subgid | 0 .../subids/55_userdel_no_subuid/userdel.test | 49 + .../subids/56_userdel_no_subgid/config.txt | 6 + .../config/etc/default/useradd | 36 + .../56_userdel_no_subgid/config/etc/group | 42 + .../56_userdel_no_subgid/config/etc/gshadow | 42 + .../56_userdel_no_subgid/config/etc/passwd | 20 + .../56_userdel_no_subgid/config/etc/shadow | 20 + .../56_userdel_no_subgid/config/etc/subgid | 0 .../56_userdel_no_subgid/config/etc/subuid | 1 + .../subids/56_userdel_no_subgid/data/group | 41 + .../subids/56_userdel_no_subgid/data/gshadow | 41 + .../subids/56_userdel_no_subgid/data/passwd | 19 + .../subids/56_userdel_no_subgid/data/shadow | 19 + .../subids/56_userdel_no_subgid/data/subuid | 0 .../subids/56_userdel_no_subgid/userdel.test | 49 + .../57_userdel_multiple_ranges/config.txt | 6 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../config/etc/subgid | 14 + .../config/etc/subuid | 14 + .../57_userdel_multiple_ranges/data/group | 41 + .../57_userdel_multiple_ranges/data/gshadow | 41 + .../57_userdel_multiple_ranges/data/passwd | 19 + .../57_userdel_multiple_ranges/data/shadow | 19 + .../57_userdel_multiple_ranges/data/subgid | 6 + .../57_userdel_multiple_ranges/data/subuid | 6 + .../57_userdel_multiple_ranges/userdel.test | 45 + .../subids/58_newusers_with_subids/config.txt | 0 .../58_newusers_with_subids/config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/pam.d/common-password | 33 + .../config/etc/pam.d/newusers | 6 + .../58_newusers_with_subids/config/etc/passwd | 19 + .../58_newusers_with_subids/config/etc/shadow | 19 + .../58_newusers_with_subids/config/etc/subgid | 0 .../58_newusers_with_subids/config/etc/subuid | 0 .../subids/58_newusers_with_subids/data/group | 42 + .../58_newusers_with_subids/data/gshadow | 42 + .../data/newusers.list | 1 + .../58_newusers_with_subids/data/passwd | 20 + .../58_newusers_with_subids/data/shadow | 20 + .../58_newusers_with_subids/data/subgid | 1 + .../58_newusers_with_subids/data/subuid | 1 + .../58_newusers_with_subids/newusers.test | 43 + .../subids/59_newusers_no_subuid/config.txt | 0 .../59_newusers_no_subuid/config/etc/group | 41 + .../59_newusers_no_subuid/config/etc/gshadow | 41 + .../config/etc/pam.d/common-password | 33 + .../config/etc/pam.d/newusers | 6 + .../59_newusers_no_subuid/config/etc/passwd | 19 + .../59_newusers_no_subuid/config/etc/shadow | 19 + .../59_newusers_no_subuid/config/etc/subgid | 0 .../59_newusers_no_subuid/config/etc/subuid | 0 .../subids/59_newusers_no_subuid/data/group | 42 + .../subids/59_newusers_no_subuid/data/gshadow | 42 + .../59_newusers_no_subuid/data/newusers.list | 1 + .../subids/59_newusers_no_subuid/data/passwd | 20 + .../subids/59_newusers_no_subuid/data/shadow | 20 + .../subids/59_newusers_no_subuid/data/subgid | 1 + .../59_newusers_no_subuid/newusers.test | 47 + .../subids/60_newusers_no_subgid/config.txt | 0 .../60_newusers_no_subgid/config/etc/group | 41 + .../60_newusers_no_subgid/config/etc/gshadow | 41 + .../config/etc/pam.d/common-password | 33 + .../config/etc/pam.d/newusers | 6 + .../60_newusers_no_subgid/config/etc/passwd | 19 + .../60_newusers_no_subgid/config/etc/shadow | 19 + .../60_newusers_no_subgid/config/etc/subgid | 0 .../60_newusers_no_subgid/config/etc/subuid | 0 .../subids/60_newusers_no_subgid/data/group | 42 + .../subids/60_newusers_no_subgid/data/gshadow | 42 + .../60_newusers_no_subgid/data/newusers.list | 1 + .../subids/60_newusers_no_subgid/data/passwd | 20 + .../subids/60_newusers_no_subgid/data/shadow | 20 + .../subids/60_newusers_no_subgid/data/subuid | 1 + .../60_newusers_no_subgid/newusers.test | 47 + .../config.txt | 0 .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/pam.d/common-password | 33 + .../config/etc/pam.d/newusers | 6 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../config/etc/subgid | 1 + .../config/etc/subuid | 0 .../data/group | 42 + .../data/gshadow | 42 + .../data/newusers.list | 1 + .../data/passwd | 20 + .../data/shadow | 20 + .../data/subuid | 1 + .../newusers.test | 43 + .../config.txt | 0 .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/pam.d/common-password | 33 + .../config/etc/pam.d/newusers | 6 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../config/etc/subgid | 0 .../config/etc/subuid | 2 + .../data/group | 42 + .../data/gshadow | 42 + .../data/newusers.list | 1 + .../data/passwd | 20 + .../data/shadow | 20 + .../data/subgid | 1 + .../newusers.test | 43 + .../subids/63_useradd_fill_gap4/config.txt | 0 .../config/etc/default/useradd | 36 + .../63_useradd_fill_gap4/config/etc/group | 41 + .../63_useradd_fill_gap4/config/etc/gshadow | 41 + .../63_useradd_fill_gap4/config/etc/passwd | 19 + .../63_useradd_fill_gap4/config/etc/shadow | 19 + .../63_useradd_fill_gap4/config/etc/subgid | 1 + .../63_useradd_fill_gap4/config/etc/subuid | 3 + .../subids/63_useradd_fill_gap4/data/group | 42 + .../subids/63_useradd_fill_gap4/data/gshadow | 42 + .../subids/63_useradd_fill_gap4/data/passwd | 20 + .../subids/63_useradd_fill_gap4/data/shadow | 20 + .../subids/63_useradd_fill_gap4/data/subgid | 2 + .../subids/63_useradd_fill_gap4/data/subuid | 4 + .../subids/63_useradd_fill_gap4/useradd.test | 45 + .../subids/64_useradd_fill_gap5/config.txt | 0 .../config/etc/default/useradd | 36 + .../64_useradd_fill_gap5/config/etc/group | 41 + .../64_useradd_fill_gap5/config/etc/gshadow | 41 + .../64_useradd_fill_gap5/config/etc/passwd | 19 + .../64_useradd_fill_gap5/config/etc/shadow | 19 + .../64_useradd_fill_gap5/config/etc/subgid | 1 + .../64_useradd_fill_gap5/config/etc/subuid | 3 + .../subids/64_useradd_fill_gap5/data/group | 42 + .../subids/64_useradd_fill_gap5/data/gshadow | 42 + .../subids/64_useradd_fill_gap5/data/passwd | 20 + .../subids/64_useradd_fill_gap5/data/shadow | 20 + .../subids/64_useradd_fill_gap5/data/subgid | 2 + .../subids/64_useradd_fill_gap5/data/subuid | 4 + .../subids/64_useradd_fill_gap5/useradd.test | 45 + .../subids/65_useradd_fill_gap6/config.txt | 0 .../config/etc/default/useradd | 36 + .../65_useradd_fill_gap6/config/etc/group | 41 + .../65_useradd_fill_gap6/config/etc/gshadow | 41 + .../65_useradd_fill_gap6/config/etc/passwd | 19 + .../65_useradd_fill_gap6/config/etc/shadow | 19 + .../65_useradd_fill_gap6/config/etc/subgid | 1 + .../65_useradd_fill_gap6/config/etc/subuid | 1 + .../subids/65_useradd_fill_gap6/data/group | 42 + .../subids/65_useradd_fill_gap6/data/gshadow | 42 + .../subids/65_useradd_fill_gap6/data/passwd | 20 + .../subids/65_useradd_fill_gap6/data/shadow | 20 + .../subids/65_useradd_fill_gap6/data/subgid | 2 + .../subids/65_useradd_fill_gap6/data/subuid | 2 + .../subids/65_useradd_fill_gap6/useradd.test | 45 + .../66_subordinate_range_cmp/config.txt | 0 .../config/etc/default/useradd | 36 + .../66_subordinate_range_cmp/config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../config/etc/subgid | 1 + .../config/etc/subuid | 15 + .../66_subordinate_range_cmp/data/group | 42 + .../66_subordinate_range_cmp/data/gshadow | 42 + .../66_subordinate_range_cmp/data/passwd | 20 + .../66_subordinate_range_cmp/data/shadow | 20 + .../66_subordinate_range_cmp/data/subgid | 2 + .../66_subordinate_range_cmp/data/subuid | 16 + .../66_subordinate_range_cmp/useradd.test | 45 + .../subids/67_invalid_subuid_file1/config.txt | 0 .../config/etc/default/useradd | 36 + .../67_invalid_subuid_file1/config/etc/group | 41 + .../config/etc/gshadow | 41 + .../67_invalid_subuid_file1/config/etc/passwd | 19 + .../67_invalid_subuid_file1/config/etc/shadow | 19 + .../67_invalid_subuid_file1/config/etc/subgid | 1 + .../67_invalid_subuid_file1/config/etc/subuid | 2 + .../subids/67_invalid_subuid_file1/data/group | 42 + .../67_invalid_subuid_file1/data/gshadow | 42 + .../67_invalid_subuid_file1/data/passwd | 20 + .../67_invalid_subuid_file1/data/shadow | 20 + .../67_invalid_subuid_file1/data/subgid | 2 + .../67_invalid_subuid_file1/data/subuid | 3 + .../67_invalid_subuid_file1/useradd.test | 45 + .../subids/68_invalid_subuid_file2/config.txt | 0 .../config/etc/default/useradd | 36 + .../68_invalid_subuid_file2/config/etc/group | 41 + .../config/etc/gshadow | 41 + .../68_invalid_subuid_file2/config/etc/passwd | 19 + .../68_invalid_subuid_file2/config/etc/shadow | 19 + .../68_invalid_subuid_file2/config/etc/subgid | 1 + .../68_invalid_subuid_file2/config/etc/subuid | 2 + .../subids/68_invalid_subuid_file2/data/group | 42 + .../68_invalid_subuid_file2/data/gshadow | 42 + .../68_invalid_subuid_file2/data/passwd | 20 + .../68_invalid_subuid_file2/data/shadow | 20 + .../68_invalid_subuid_file2/data/subgid | 2 + .../68_invalid_subuid_file2/data/subuid | 3 + .../68_invalid_subuid_file2/useradd.test | 45 + .../subids/69_invalid_subuid_file3/config.txt | 0 .../config/etc/default/useradd | 36 + .../69_invalid_subuid_file3/config/etc/group | 41 + .../config/etc/gshadow | 41 + .../69_invalid_subuid_file3/config/etc/passwd | 19 + .../69_invalid_subuid_file3/config/etc/shadow | 19 + .../69_invalid_subuid_file3/config/etc/subgid | 1 + .../69_invalid_subuid_file3/config/etc/subuid | 2 + .../subids/69_invalid_subuid_file3/data/group | 42 + .../69_invalid_subuid_file3/data/gshadow | 42 + .../69_invalid_subuid_file3/data/passwd | 20 + .../69_invalid_subuid_file3/data/shadow | 20 + .../69_invalid_subuid_file3/data/subgid | 2 + .../69_invalid_subuid_file3/data/subuid | 3 + .../69_invalid_subuid_file3/useradd.test | 45 + .../subids/70_invalid_subuid_file4/config.txt | 0 .../config/etc/default/useradd | 36 + .../70_invalid_subuid_file4/config/etc/group | 41 + .../config/etc/gshadow | 41 + .../70_invalid_subuid_file4/config/etc/passwd | 19 + .../70_invalid_subuid_file4/config/etc/shadow | 19 + .../70_invalid_subuid_file4/config/etc/subgid | 1 + .../70_invalid_subuid_file4/config/etc/subuid | 5 + .../subids/70_invalid_subuid_file4/data/group | 42 + .../70_invalid_subuid_file4/data/gshadow | 42 + .../70_invalid_subuid_file4/data/passwd | 20 + .../70_invalid_subuid_file4/data/shadow | 20 + .../70_invalid_subuid_file4/data/subgid | 2 + .../70_invalid_subuid_file4/data/subuid | 6 + .../70_invalid_subuid_file4/useradd.test | 45 + .../71_useradd_subids_for_system/config.txt | 0 .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../config/etc/subgid | 0 .../config/etc/subuid | 0 .../71_useradd_subids_for_system/data/subgid | 1 + .../71_useradd_subids_for_system/data/subuid | 1 + .../71_useradd_subids_for_system/useradd.test | 32 + tests/tests/unit/.deps/test_adds-test_adds.Po | 1 + .../test_atoi_strtoi-test_atoi_strtoi.Po | 1 + .../unit/.deps/test_chkname-test_chkname.Po | 1 + .../unit/.deps/test_logind-test_logind.Po | 1 + .../unit/.deps/test_sprintf-test_sprintf.Po | 1 + .../unit/.deps/test_strncpy-test_strncpy.Po | 1 + .../unit/.deps/test_strtcpy-test_strtcpy.Po | 1 + .../.deps/test_xasprintf-test_xasprintf.Po | 1 + .../.deps/test_zustr2stp-test_zustr2stp.Po | 1 + tests/tests/unit/.gitignore | 6 + tests/tests/unit/Makefile | 1702 +++++++++++++++++ tests/tests/unit/Makefile.am | 145 ++ tests/tests/unit/Makefile.in | 1702 +++++++++++++++++ tests/tests/unit/test_adds.c | 105 + tests/tests/unit/test_atoi_strtoi.c | 157 ++ tests/tests/unit/test_chkname.c | 149 ++ tests/tests/unit/test_logind.c | 69 + tests/tests/unit/test_sprintf.c | 66 + tests/tests/unit/test_strncpy.c | 85 + tests/tests/unit/test_strtcpy.c | 67 + tests/tests/unit/test_xasprintf.c | 114 ++ tests/tests/unit/test_zustr2stp.c | 53 + .../usertools/01/01_useradd_add_user.test | 42 + .../usertools/01/01_useradd_add_user/group | 42 + .../usertools/01/01_useradd_add_user/gshadow | 42 + .../usertools/01/01_useradd_add_user/passwd | 20 + .../usertools/01/01_useradd_add_user/shadow | 20 + .../usertools/01/01_userdel_delete_user.test | 45 + .../01/02_useradd_recreate_deleted_user.test | 48 + .../01/02_useradd_recreate_deleted_user/group | 42 + .../02_useradd_recreate_deleted_user/gshadow | 42 + .../02_useradd_recreate_deleted_user/passwd | 20 + .../02_useradd_recreate_deleted_user/shadow | 20 + .../01/03_useradd_additional_options.test | 50 + .../01/03_useradd_additional_options/group | 42 + .../01/03_useradd_additional_options/gshadow | 42 + .../01/03_useradd_additional_options/passwd | 20 + .../01/03_useradd_additional_options/shadow | 20 + ...eradd_add_user_with_existing_UID_fail.test | 60 + .../group | 42 + .../gshadow | 42 + .../passwd | 20 + .../shadow | 20 + .../useradd.err | 1 + ...dd_add_user_with_existing_UID_with_-o.test | 48 + .../group | 43 + .../gshadow | 43 + .../passwd | 21 + .../shadow | 21 + .../01/04_useradd_specified_UID.test | 42 + .../01/04_useradd_specified_UID/group | 42 + .../01/04_useradd_specified_UID/gshadow | 42 + .../01/04_useradd_specified_UID/passwd | 20 + .../01/04_useradd_specified_UID/shadow | 20 + .../01/04_useradd_specified_UID_and_GID.test | 48 + .../01/04_useradd_specified_UID_and_GID/group | 42 + .../04_useradd_specified_UID_and_GID/gshadow | 42 + .../04_useradd_specified_UID_and_GID/passwd | 21 + .../04_useradd_specified_UID_and_GID/shadow | 21 + ...erdel_delete_user_with_non_unique_UID.test | 51 + .../group | 42 + .../gshadow | 42 + .../passwd | 20 + .../shadow | 20 + ...useradd_invalid_numeric_primary_group.test | 58 + .../useradd.err | 1 + ...6_useradd_invalid_named_primary_group.test | 58 + .../useradd.err | 1 + .../07_useradd_numerical_primary_group.test | 42 + .../07_useradd_numerical_primary_group/group | 41 + .../gshadow | 41 + .../07_useradd_numerical_primary_group/passwd | 20 + .../07_useradd_numerical_primary_group/shadow | 20 + .../01/08_useradd_named_primary_group.test | 42 + .../01/08_useradd_named_primary_group/group | 41 + .../01/08_useradd_named_primary_group/gshadow | 41 + .../01/08_useradd_named_primary_group/passwd | 20 + .../01/08_useradd_named_primary_group/shadow | 20 + .../01/09_usermod_change_user_info.test | 45 + .../01/09_usermod_change_user_info/group | 42 + .../01/09_usermod_change_user_info/gshadow | 42 + .../01/09_usermod_change_user_info/passwd | 20 + .../01/09_usermod_change_user_info/shadow | 20 + .../usertools/01/10_usermod_rename_user.test | 48 + .../usertools/01/10_usermod_rename_user/group | 42 + .../01/10_usermod_rename_user/gshadow | 42 + .../01/10_usermod_rename_user/passwd | 20 + .../01/10_usermod_rename_user/shadow | 20 + .../01/10_usermod_rename_user_in_group.test | 48 + .../01/10_usermod_rename_user_in_group/group | 42 + .../10_usermod_rename_user_in_group/gshadow | 42 + .../01/10_usermod_rename_user_in_group/passwd | 20 + .../01/10_usermod_rename_user_in_group/shadow | 20 + .../01/11_usermod_change_password.test | 46 + .../01/11_usermod_change_password/group | 42 + .../01/11_usermod_change_password/gshadow | 42 + .../01/11_usermod_change_password/passwd | 20 + .../01/11_usermod_change_password/shadow | 20 + .../01/11_usermod_lock_password.test | 49 + .../01/11_usermod_lock_password/group | 42 + .../01/11_usermod_lock_password/gshadow | 42 + .../01/11_usermod_lock_password/passwd | 20 + .../01/11_usermod_lock_password/shadow | 20 + .../01/11_usermod_unlock_empty_password.test | 54 + .../01/11_usermod_unlock_empty_password/group | 42 + .../11_usermod_unlock_empty_password/gshadow | 42 + .../11_usermod_unlock_empty_password/passwd | 20 + .../11_usermod_unlock_empty_password/shadow | 20 + .../usermod.err | 2 + .../01/11_usermod_unlock_password.test | 52 + .../01/11_usermod_unlock_password/group | 42 + .../01/11_usermod_unlock_password/gshadow | 42 + .../01/11_usermod_unlock_password/passwd | 20 + .../01/11_usermod_unlock_password/shadow | 20 + .../01/12_usermod_change_gid_name.test | 45 + .../01/12_usermod_change_gid_name/group | 42 + .../01/12_usermod_change_gid_name/gshadow | 42 + .../01/12_usermod_change_gid_name/passwd | 20 + .../01/12_usermod_change_gid_name/shadow | 20 + .../01/12_usermod_change_gid_number.test | 45 + .../01/12_usermod_change_gid_number/group | 42 + .../01/12_usermod_change_gid_number/gshadow | 42 + .../01/12_usermod_change_gid_number/passwd | 20 + .../01/12_usermod_change_gid_number/shadow | 20 + .../usertools/01/13_useradd_negative_UID.test | 52 + .../01/13_useradd_negative_UID/group | 41 + .../01/13_useradd_negative_UID/gshadow | 41 + .../01/13_useradd_negative_UID/passwd | 19 + .../01/13_useradd_negative_UID/shadow | 19 + .../01/14_useradd_out_of_range_UID.test | 52 + .../01/14_useradd_out_of_range_UID/group | 41 + .../01/14_useradd_out_of_range_UID/gshadow | 41 + .../01/14_useradd_out_of_range_UID/passwd | 19 + .../01/14_useradd_out_of_range_UID/shadow | 19 + .../01/15_useradd_specified_large_UID.test | 42 + .../01/15_useradd_specified_large_UID/group | 42 + .../01/15_useradd_specified_large_UID/gshadow | 42 + .../01/15_useradd_specified_large_UID/passwd | 20 + .../01/15_useradd_specified_large_UID/shadow | 20 + ...6_useradd_add_user_to_multiple_groups.test | 42 + .../group | 41 + .../gshadow | 41 + .../passwd | 20 + .../shadow | 20 + .../01/16_useradd_add_user_to_one_group.test | 42 + .../01/16_useradd_add_user_to_one_group/group | 42 + .../16_useradd_add_user_to_one_group/gshadow | 42 + .../16_useradd_add_user_to_one_group/passwd | 20 + .../16_useradd_add_user_to_one_group/shadow | 20 + .../01/17_useradd_create_homedir.test | 46 + .../01/17_useradd_create_homedir/group | 42 + .../01/17_useradd_create_homedir/gshadow | 42 + .../01/17_useradd_create_homedir/passwd | 20 + .../01/17_useradd_create_homedir/shadow | 20 + .../01/18_userdel_remove_homedir.test | 54 + .../01/18_userdel_remove_homedir/group | 42 + .../01/18_userdel_remove_homedir/gshadow | 42 + .../01/18_userdel_remove_homedir/passwd | 20 + .../01/18_userdel_remove_homedir/shadow | 20 + .../01/18_userdel_remove_homedir/userdel.err | 1 + .../01/19_userdel_delete_user_in_group.test | 45 + .../01/20_usermod_change_homedir.test | 58 + .../21_usermod_change_and_move_homedir.test | 67 + .../usertools/01/22_usermod_new_groups.test | 45 + .../usertools/01/22_usermod_new_groups/group | 42 + .../01/22_usermod_new_groups/gshadow | 42 + .../usertools/01/22_usermod_new_groups/passwd | 20 + .../usertools/01/22_usermod_new_groups/shadow | 20 + .../usertools/01/23_usermod_add_groups.test | 45 + .../usertools/01/23_usermod_add_groups/group | 42 + .../01/23_usermod_add_groups/gshadow | 42 + .../usertools/01/23_usermod_add_groups/passwd | 20 + .../usertools/01/23_usermod_add_groups/shadow | 20 + ..._usermod_new_groups_remove_old_groups.test | 45 + .../group | 42 + .../gshadow | 42 + .../passwd | 20 + .../shadow | 20 + .../01/25_useradd_specified_large_UID2.test | 42 + .../01/25_useradd_specified_large_UID2/group | 42 + .../25_useradd_specified_large_UID2/gshadow | 42 + .../01/25_useradd_specified_large_UID2/passwd | 20 + .../01/25_useradd_specified_large_UID2/shadow | 20 + .../tests/usertools/01/26_useradd_UID_-1.test | 52 + .../usertools/01/26_useradd_UID_-1/group | 41 + .../usertools/01/26_useradd_UID_-1/gshadow | 41 + .../usertools/01/26_useradd_UID_-1/passwd | 19 + .../usertools/01/26_useradd_UID_-1/shadow | 19 + .../usertools/01/config/etc/default/useradd | 36 + tests/tests/usertools/01/config/etc/group | 41 + tests/tests/usertools/01/config/etc/gshadow | 41 + tests/tests/usertools/01/config/etc/passwd | 19 + tests/tests/usertools/01/config/etc/shadow | 19 + tests/tests/usertools/02/config.txt | 3 + .../usertools/02/config/etc/default/useradd | 37 + tests/tests/usertools/02/config/etc/group | 42 + tests/tests/usertools/02/config/etc/gshadow | 42 + tests/tests/usertools/02/config/etc/passwd | 21 + tests/tests/usertools/02/config/etc/shadow | 20 + tests/tests/usertools/02/data/useradd-D.out | 7 + .../02/data/useradd-D_default_values.out | 7 + .../02/useradd_change_default_EXPIRE.test | 30 + .../useradd.default | 43 + .../02/useradd_change_default_GROUP.test | 30 + .../useradd.default | 43 + .../02/useradd_change_default_HOME.test | 30 + .../useradd.default | 43 + .../02/useradd_change_default_INACTIVE.test | 30 + .../useradd.default | 43 + .../02/useradd_change_default_SHELL.test | 30 + .../useradd.default | 43 + .../usertools/02/useradd_change_defaults.test | 30 + .../useradd_change_defaults/useradd.default | 43 + .../02/useradd_default_default_values.test | 36 + .../02/useradd_get_default_values.test | 32 + tests/tests/usertools/03/config.txt | 3 + .../usertools/03/config/etc/default/useradd | 36 + tests/tests/usertools/03/config/etc/group | 42 + tests/tests/usertools/03/config/etc/gshadow | 42 + tests/tests/usertools/03/config/etc/passwd | 21 + tests/tests/usertools/03/config/etc/shadow | 20 + .../usertools/03/useradd_change_defaults.test | 30 + .../useradd_change_defaults/useradd.default | 37 + .../usertools/04/01_useradd_add_user.test | 45 + .../usertools/04/01_useradd_add_user/group | 42 + .../usertools/04/01_useradd_add_user/gshadow | 42 + .../usertools/04/01_useradd_add_user/passwd | 20 + .../usertools/04/01_useradd_add_user/shadow | 20 + tests/tests/usertools/04/config.txt | 3 + .../usertools/04/config/etc/default/useradd | 36 + tests/tests/usertools/04/config/etc/group | 41 + tests/tests/usertools/04/config/etc/gshadow | 41 + tests/tests/usertools/04/config/etc/passwd | 19 + tests/tests/usertools/04/config/etc/shadow | 19 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 41 + .../data/gshadow | 41 + .../data/passwd | 19 + .../data/shadow | 19 + .../userdel.test | 39 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 41 + .../data/gshadow | 41 + .../data/passwd | 19 + .../data/shadow | 19 + .../userdel.test | 39 + .../config.txt | 2 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 41 + .../data/gshadow | 41 + .../data/passwd | 19 + .../data/shadow | 19 + .../userdel.test | 39 + .../config.txt | 4 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 41 + .../data/gshadow | 41 + .../data/passwd | 19 + .../data/shadow | 19 + .../userdel.test | 39 + .../09_userdel_del_homedir/config.txt | 1 + .../config/etc/default/useradd | 36 + .../09_userdel_del_homedir/config/etc/group | 42 + .../09_userdel_del_homedir/config/etc/gshadow | 42 + .../09_userdel_del_homedir/config/etc/passwd | 20 + .../09_userdel_del_homedir/config/etc/shadow | 20 + .../09_userdel_del_homedir/data/group | 41 + .../09_userdel_del_homedir/data/gshadow | 41 + .../09_userdel_del_homedir/data/passwd | 19 + .../09_userdel_del_homedir/data/shadow | 19 + .../09_userdel_del_homedir/userdel.test | 53 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 41 + .../data/gshadow | 41 + .../data/passwd | 19 + .../data/shadow | 19 + .../data/userdel.err | 1 + .../userdel.test | 69 + .../11_usermod_move_homedir/config.txt | 1 + .../config/etc/default/useradd | 36 + .../11_usermod_move_homedir/config/etc/group | 42 + .../config/etc/gshadow | 42 + .../11_usermod_move_homedir/config/etc/passwd | 20 + .../11_usermod_move_homedir/config/etc/shadow | 20 + .../11_usermod_move_homedir/data/home_ls-a | 3 + .../11_usermod_move_homedir/data/passwd | 20 + .../11_usermod_move_homedir/usermod.test | 58 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/passwd | 20 + .../data/usermod.err | 1 + .../usermod.test | 63 + .../13_usermod_move_homedir_file/config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../13_usermod_move_homedir_file/data/passwd | 20 + .../data/usermod.err | 1 + .../13_usermod_move_homedir_file/usermod.test | 67 + .../config.txt | 5 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/home_ls-a | 7 + .../data/passwd | 20 + .../usermod.test | 68 + .../config.txt | 6 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 42 + .../data/gshadow | 42 + .../usermod.test | 39 + .../config.txt | 6 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 42 + .../data/gshadow | 42 + .../usermod.test | 39 + .../config.txt | 6 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 42 + .../data/gshadow | 42 + .../usermod.test | 39 + .../config.txt | 6 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/usermod.err | 1 + .../usermod.test | 54 + .../config.txt | 6 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/usermod.err | 1 + .../usermod.test | 54 + .../config.txt | 6 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 42 + .../data/gshadow | 42 + .../data/passwd | 20 + .../data/shadow | 20 + .../usermod.test | 39 + .../config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 42 + .../data/gshadow | 42 + .../data/passwd | 20 + .../data/shadow | 20 + .../usermod.test | 39 + .../config.txt | 6 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 42 + .../data/gshadow | 42 + .../usermod.test | 39 + .../config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 42 + .../data/gshadow | 42 + .../data/passwd | 20 + .../data/shadow | 20 + .../usermod.test | 39 + .../24_usermod_locked_passwd/config.txt | 0 .../config/etc/default/useradd | 36 + .../24_usermod_locked_passwd/config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../24_usermod_locked_passwd/data/usermod.err | 2 + .../24_usermod_locked_passwd/usermod.test | 60 + .../25_usermod-G_locked_group/config.txt | 0 .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/usermod.err | 2 + .../25_usermod-G_locked_group/usermod.test | 60 + .../26_usermod_locked_shadow/config.txt | 0 .../config/etc/default/useradd | 36 + .../26_usermod_locked_shadow/config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../26_usermod_locked_shadow/data/usermod.err | 2 + .../26_usermod_locked_shadow/usermod.test | 60 + .../27_usermod-G_locked_gshadow/config.txt | 0 .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/usermod.err | 2 + .../27_usermod-G_locked_gshadow/usermod.test | 60 + .../28_usermod-c_locked_group/config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../28_usermod-c_locked_group/data/passwd | 20 + .../28_usermod-c_locked_group/usermod.test | 45 + .../29_usermod-c_locked_gshadow/config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../29_usermod-c_locked_gshadow/data/passwd | 20 + .../29_usermod-c_locked_gshadow/usermod.test | 45 + .../30_usermod-l_locked_group/config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/usermod.err | 2 + .../30_usermod-l_locked_group/usermod.test | 60 + .../31_usermod-l_locked_gshadow/config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/usermod.err | 2 + .../31_usermod-l_locked_gshadow/usermod.test | 60 + .../usertools/32_usermod-u_new_UID/config.txt | 1 + .../config/etc/default/useradd | 36 + .../32_usermod-u_new_UID/config/etc/group | 42 + .../32_usermod-u_new_UID/config/etc/gshadow | 42 + .../32_usermod-u_new_UID/config/etc/passwd | 20 + .../32_usermod-u_new_UID/config/etc/shadow | 20 + .../32_usermod-u_new_UID/data/passwd | 20 + .../32_usermod-u_new_UID/usermod.test | 39 + .../33_usermod-u_existing_UID/config.txt | 2 + .../config/etc/default/useradd | 36 + .../config/etc/group | 43 + .../config/etc/gshadow | 43 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../data/usermod.err | 1 + .../33_usermod-u_existing_UID/usermod.test | 54 + .../34_usermod-u-o_existing_UID/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 43 + .../config/etc/gshadow | 43 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../34_usermod-u-o_existing_UID/data/passwd | 21 + .../34_usermod-u-o_existing_UID/usermod.test | 39 + .../35_usermod-u_invalid_UID/config.txt | 1 + .../config/etc/default/useradd | 36 + .../35_usermod-u_invalid_UID/config/etc/group | 43 + .../config/etc/gshadow | 43 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../35_usermod-u_invalid_UID/data/usermod.err | 1 + .../35_usermod-u_invalid_UID/usermod.test | 54 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/home_ls-a | 7 + .../data/passwd | 20 + .../usermod.test | 69 + .../usertools/37_Debian_Bug_470745/config.txt | 2 + .../config/etc/default/useradd | 36 + .../37_Debian_Bug_470745/config/etc/group | 43 + .../37_Debian_Bug_470745/config/etc/gshadow | 43 + .../37_Debian_Bug_470745/config/etc/passwd | 21 + .../37_Debian_Bug_470745/config/etc/shadow | 21 + .../usertools/37_Debian_Bug_470745/data/group | 45 + .../37_Debian_Bug_470745/data/gshadow | 45 + .../37_Debian_Bug_470745/data/passwd | 22 + .../37_Debian_Bug_470745/data/shadow | 22 + .../37_Debian_Bug_470745/data/usermod.err | 2 + .../37_Debian_Bug_470745/usermod.test | 62 + .../38_usermod_invalid_user/config.txt | 1 + .../config/etc/default/useradd | 36 + .../38_usermod_invalid_user/config/etc/group | 43 + .../config/etc/gshadow | 43 + .../38_usermod_invalid_user/config/etc/passwd | 21 + .../38_usermod_invalid_user/config/etc/shadow | 21 + .../38_usermod_invalid_user/data/usermod.err | 1 + .../38_usermod_invalid_user/usermod.test | 54 + .../39_usermod_-c_invalid_comment/config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 43 + .../config/etc/gshadow | 43 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../data/usermod.err | 1 + .../usermod.test | 54 + .../40_usermod_-d_invalid_homedir/config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 43 + .../config/etc/gshadow | 43 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../data/usermod.err | 2 + .../usermod.test | 56 + .../41_usermod_-d_invalid_shell/config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 43 + .../config/etc/gshadow | 43 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../data/usermod.err | 1 + .../41_usermod_-d_invalid_shell/usermod.test | 54 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 43 + .../config/etc/gshadow | 43 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../data/usermod.err | 1 + .../usermod.test | 54 + .../43_usermod_-g_invalid_group_ID/config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 43 + .../config/etc/gshadow | 43 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../data/usermod.err | 1 + .../usermod.test | 54 + .../44_usermod-l_existing_username/config.txt | 2 + .../config/etc/default/useradd | 36 + .../config/etc/group | 43 + .../config/etc/gshadow | 43 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../data/usermod.err | 1 + .../usermod.test | 54 + .../config.txt | 2 + .../config/etc/default/useradd | 36 + .../config/etc/group | 43 + .../config/etc/gshadow | 43 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../data/usermod.err | 1 + .../usermod.test | 54 + .../config.txt | 2 + .../config/etc/default/useradd | 36 + .../config/etc/group | 43 + .../config/etc/gshadow | 43 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../data/usermod.err | 1 + .../usermod.test | 54 + .../47_usermod-l_no_shadow_file/config.txt | 2 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../47_usermod-l_no_shadow_file/data/group | 42 + .../47_usermod-l_no_shadow_file/data/gshadow | 42 + .../47_usermod-l_no_shadow_file/data/passwd | 20 + .../47_usermod-l_no_shadow_file/usermod.test | 43 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../data/group | 42 + .../data/passwd | 20 + .../data/shadow | 20 + .../data/userdel.err | 1 + .../userdel.test | 48 + .../49_userdel_delete_users_group/config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 43 + .../config/etc/gshadow | 43 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../49_userdel_delete_users_group/data/group | 42 + .../data/gshadow | 42 + .../49_userdel_delete_users_group/data/passwd | 20 + .../49_userdel_delete_users_group/data/shadow | 20 + .../userdel.test | 39 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 43 + .../config/etc/gshadow | 43 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../data/group | 42 + .../data/passwd | 20 + .../data/shadow | 20 + .../userdel.test | 39 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 43 + .../config/etc/gshadow | 43 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../data/group | 42 + .../data/passwd | 20 + .../data/shadow | 20 + .../userdel.test | 44 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 43 + .../config/etc/gshadow | 43 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../data/group | 42 + .../data/gshadow | 42 + .../data/passwd | 20 + .../userdel.test | 39 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 43 + .../config/etc/gshadow | 43 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../data/group | 42 + .../data/gshadow | 42 + .../data/passwd | 20 + .../userdel.test | 43 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 43 + .../config/etc/gshadow | 43 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../data/usermod.err | 1 + .../usermod.test | 54 + .../usertools/55_userdel_busy_user/config.txt | 1 + .../config/etc/default/useradd | 36 + .../55_userdel_busy_user/config/etc/group | 42 + .../55_userdel_busy_user/config/etc/gshadow | 42 + .../55_userdel_busy_user/config/etc/passwd | 20 + .../55_userdel_busy_user/config/etc/shadow | 20 + .../55_userdel_busy_user/data/userdel.err | 1 + .../55_userdel_busy_user/userdel.test | 68 + .../56_userdel_locked_passwd/config.txt | 0 .../config/etc/default/useradd | 36 + .../56_userdel_locked_passwd/config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../56_userdel_locked_passwd/data/userdel.err | 2 + .../56_userdel_locked_passwd/userdel.test | 60 + .../57_userdel_locked_group/config.txt | 0 .../config/etc/default/useradd | 36 + .../57_userdel_locked_group/config/etc/group | 42 + .../config/etc/gshadow | 42 + .../57_userdel_locked_group/config/etc/passwd | 20 + .../57_userdel_locked_group/config/etc/shadow | 20 + .../57_userdel_locked_group/data/userdel.err | 2 + .../57_userdel_locked_group/userdel.test | 60 + .../58_userdel_locked_shadow/config.txt | 0 .../config/etc/default/useradd | 36 + .../58_userdel_locked_shadow/config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../58_userdel_locked_shadow/data/userdel.err | 2 + .../58_userdel_locked_shadow/userdel.test | 60 + .../59_userdel_locked_gshadow/config.txt | 0 .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/userdel.err | 2 + .../59_userdel_locked_gshadow/userdel.test | 60 + .../60_userdel_invalid_user/config.txt | 0 .../config/etc/default/useradd | 36 + .../60_userdel_invalid_user/config/etc/group | 42 + .../config/etc/gshadow | 42 + .../60_userdel_invalid_user/config/etc/passwd | 20 + .../60_userdel_invalid_user/config/etc/shadow | 20 + .../60_userdel_invalid_user/data/userdel.err | 1 + .../60_userdel_invalid_user/userdel.test | 54 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 41 + .../data/gshadow | 41 + .../data/passwd | 19 + .../data/shadow | 19 + .../data/userdel.err | 1 + .../userdel.test | 70 + .../config.txt | 4 + .../config/etc/default/useradd | 36 + .../config/etc/group | 43 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../data/group | 43 + .../data/gshadow | 42 + .../usermod.test | 43 + .../01_chpasswd_invalid_user/chpasswd.test | 56 + .../01_chpasswd_invalid_user/config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/pam.d/chpasswd | 6 + .../config/etc/pam.d/common-password | 33 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/chpasswd.err | 3 + .../01_chpasswd_invalid_user/data/shadow | 19 + .../02_chpasswd_multiple_users/chpasswd.test | 40 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/pam.d/chpasswd | 6 + .../config/etc/pam.d/common-password | 33 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../02_chpasswd_multiple_users/data/shadow | 19 + .../03_chpasswd_no_shadow_file/chpasswd.test | 44 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/pam.d/chpasswd | 6 + .../config/etc/pam.d/common-password | 33 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../03_chpasswd_no_shadow_file/data/passwd | 19 + .../04_chpasswd_no_shadow_entry/chpasswd.test | 43 + .../config/etc/group | 41 + .../config/etc/gshadow | 40 + .../config/etc/pam.d/chpasswd | 6 + .../config/etc/pam.d/common-password | 33 + .../config/etc/passwd | 19 + .../config/etc/shadow | 18 + .../04_chpasswd_no_shadow_entry/data/shadow | 19 + .../chpasswd.test | 55 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/pam.d/chpasswd | 6 + .../config/etc/pam.d/common-password | 33 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/chpasswd.err | 1 + .../05_chpasswd_error_no_password/data/shadow | 19 + .../06_chpasswd_usage/chpasswd.test | 48 + .../chpasswd-PAM/06_chpasswd_usage/config.txt | 10 + .../config/etc/default/useradd | 36 + .../06_chpasswd_usage/config/etc/group | 41 + .../06_chpasswd_usage/config/etc/gshadow | 41 + .../06_chpasswd_usage/config/etc/passwd | 19 + .../06_chpasswd_usage/config/etc/shadow | 19 + .../06_chpasswd_usage/data/usage.out | 12 + .../chpasswd.test | 54 + .../07_chpasswd_usage_bad_option/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/usage.out | 13 + .../chpasswd.test | 54 + .../config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 20 + .../config/etc/shadow | 19 + .../data/usage.out | 13 + .../chpasswd.test | 54 + .../config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 20 + .../config/etc/shadow | 19 + .../data/usage.out | 13 + .../chpasswd.test | 54 + .../config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 20 + .../config/etc/shadow | 19 + .../data/usage.out | 13 + .../chpasswd.test | 54 + .../11_chpasswd_usage-s_without-c/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 20 + .../config/etc/shadow | 19 + .../data/usage.out | 13 + .../12_chpasswd_usage-s_invalid/chpasswd.test | 54 + .../12_chpasswd_usage-s_invalid/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 20 + .../config/etc/shadow | 19 + .../data/usage.out | 13 + .../13_chpasswd_usage-c_invalid/chpasswd.test | 54 + .../13_chpasswd_usage-c_invalid/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 20 + .../config/etc/shadow | 19 + .../data/usage.out | 13 + .../chpasswd.test | 40 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/pam.d/chpasswd | 6 + .../config/etc/pam.d/common-password | 33 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/shadow | 19 + .../15_chpasswd_password_md5/chpasswd.test | 40 + .../15_chpasswd_password_md5/config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/pam.d/chpasswd | 6 + .../config/etc/pam.d/common-password | 33 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../15_chpasswd_password_md5/data/shadow | 19 + .../16_chpasswd_password_NONE/chpasswd.test | 40 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/pam.d/chpasswd | 6 + .../config/etc/pam.d/common-password | 33 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../16_chpasswd_password_NONE/data/shadow | 19 + .../17_chpasswd_password_MD5/chpasswd.test | 40 + .../17_chpasswd_password_MD5/config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/pam.d/chpasswd | 6 + .../config/etc/pam.d/common-password | 33 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../17_chpasswd_password_MD5/data/shadow | 19 + .../18_chpasswd_password_DES/chpasswd.test | 40 + .../18_chpasswd_password_DES/config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/pam.d/chpasswd | 6 + .../config/etc/pam.d/common-password | 33 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../18_chpasswd_password_DES/data/shadow | 19 + .../19_chpasswd_password_SHA256/chpasswd.test | 40 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/pam.d/chpasswd | 6 + .../config/etc/pam.d/common-password | 33 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../19_chpasswd_password_SHA256/data/shadow | 19 + .../chpasswd.test | 41 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/pam.d/chpasswd | 6 + .../config/etc/pam.d/common-password | 33 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/shadow | 19 + .../chpasswd.test | 41 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/pam.d/chpasswd | 6 + .../config/etc/pam.d/common-password | 33 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/shadow | 19 + .../22_chpasswd_password_SHA512/chpasswd.test | 40 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/pam.d/chpasswd | 6 + .../config/etc/pam.d/common-password | 33 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../22_chpasswd_password_SHA512/data/shadow | 19 + .../chpasswd.test | 41 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/pam.d/chpasswd | 6 + .../config/etc/pam.d/common-password | 33 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/shadow | 19 + .../chpasswd.test | 41 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/pam.d/chpasswd | 6 + .../config/etc/pam.d/common-password | 33 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/shadow | 19 + .../chpasswd.test | 44 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/pam.d/chpasswd | 6 + .../config/etc/pam.d/common-password | 33 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../25_chpasswd-e_no_shadow_file/data/passwd | 19 + .../chpasswd.test | 59 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/pam.d/chpasswd | 6 + .../config/etc/pam.d/common-password | 33 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/chpasswd.err | 6 + .../chpasswd.test | 59 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/pam.d/chpasswd | 6 + .../config/etc/pam.d/common-password | 33 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/chpasswd.err | 3 + .../data/passwd | 19 + .../chpasswd.test | 59 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/pam.d/chpasswd | 6 + .../config/etc/pam.d/common-password | 33 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/chpasswd.err | 3 + .../data/passwd | 19 + .../chpasswd.test | 43 + .../config/etc/group | 41 + .../config/etc/gshadow | 40 + .../config/etc/pam.d/chpasswd | 6 + .../config/etc/pam.d/common-password | 33 + .../config/etc/passwd | 19 + .../config/etc/shadow | 18 + .../29_chpasswd-e_no_shadow_entry/data/passwd | 19 + .../29_chpasswd-e_no_shadow_entry/data/shadow | 19 + .../30_chpasswd_locked_passwd/chpasswd.test | 61 + .../30_chpasswd_locked_passwd/config.txt | 0 .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/chpasswd.err | 2 + .../31_chpasswd_locked_shadow/chpasswd.test | 61 + .../31_chpasswd_locked_shadow/config.txt | 0 .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/chpasswd.err | 2 + .../32_chpasswd_invalid_user/chpasswd.test | 56 + .../32_chpasswd_invalid_user/config.txt | 0 .../config/etc/default/useradd | 36 + .../32_chpasswd_invalid_user/config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/chpasswd.err | 3 + .../32_chpasswd_invalid_user/data/shadow | 20 + .../33_chpasswd-e_invalid_user/chpasswd.test | 56 + .../33_chpasswd-e_invalid_user/config.txt | 0 .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/chpasswd.err | 2 + .../chpasswd.test | 40 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/pam.d/chpasswd | 6 + .../config/etc/pam.d/common-password | 33 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/passwd | 19 + .../data/shadow | 19 + .../01_chpasswd_invalid_user/chpasswd.test | 56 + .../01_chpasswd_invalid_user/config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/login.defs | 317 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/chpasswd.err | 2 + .../02_chpasswd_multiple_users/chpasswd.test | 40 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/login.defs | 317 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../02_chpasswd_multiple_users/data/shadow | 19 + .../03_chpasswd_no_shadow_file/chpasswd.test | 44 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/login.defs | 317 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../03_chpasswd_no_shadow_file/data/passwd | 19 + .../04_chpasswd_no_shadow_entry/chpasswd.test | 43 + .../config/etc/group | 41 + .../config/etc/gshadow | 40 + .../config/etc/login.defs | 317 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 18 + .../04_chpasswd_no_shadow_entry/data/passwd | 19 + .../04_chpasswd_no_shadow_entry/data/shadow | 18 + .../chpasswd.test | 55 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/login.defs | 317 +++ .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/chpasswd.err | 2 + .../useradd/01_useradd_usage/config.txt | 10 + .../config/etc/default/useradd | 36 + .../useradd/01_useradd_usage/config/etc/group | 41 + .../01_useradd_usage/config/etc/gshadow | 41 + .../01_useradd_usage/config/etc/passwd | 19 + .../01_useradd_usage/config/etc/shadow | 19 + .../useradd/01_useradd_usage/data/usage.out | 35 + .../useradd/01_useradd_usage/useradd.test | 48 + .../config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/usage.out | 36 + .../useradd.test | 54 + .../03_useradd_usage_no_users/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../03_useradd_usage_no_users/data/usage.out | 35 + .../03_useradd_usage_no_users/useradd.test | 54 + .../04_useradd_usage_2_users/config.txt | 10 + .../config/etc/default/useradd | 36 + .../04_useradd_usage_2_users/config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../04_useradd_usage_2_users/data/usage.out | 35 + .../04_useradd_usage_2_users/useradd.test | 54 + .../05_useradd_usage-b_invalid1/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/usage.out | 1 + .../05_useradd_usage-b_invalid1/useradd.test | 54 + .../06_useradd_usage-b_invalid2/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/usage.out | 2 + .../06_useradd_usage-b_invalid2/useradd.test | 56 + .../07_useradd_usage-b_invalid3/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/usage.out | 1 + .../07_useradd_usage-b_invalid3/useradd.test | 54 + .../08_useradd_usage-c_invalid1/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/usage.out | 1 + .../08_useradd_usage-c_invalid1/useradd.test | 54 + .../09_useradd_usage-c_invalid2/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/usage.out | 2 + .../09_useradd_usage-c_invalid2/useradd.test | 56 + .../10_useradd_usage-d_invalid1/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/usage.out | 1 + .../10_useradd_usage-d_invalid1/useradd.test | 54 + .../11_useradd_usage-d_invalid2/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/usage.out | 2 + .../11_useradd_usage-d_invalid2/useradd.test | 56 + .../12_useradd_usage-d_invalid3/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/usage.out | 1 + .../12_useradd_usage-d_invalid3/useradd.test | 54 + .../13_useradd_usage-e_invalid1/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/usage.out | 1 + .../13_useradd_usage-e_invalid1/useradd.test | 54 + .../14_useradd_usage-e_invalid2/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/usage.out | 1 + .../14_useradd_usage-e_invalid2/useradd.test | 54 + .../config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/usage.out | 1 + .../useradd.test | 58 + .../16_useradd_usage-f_invalid1/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/usage.out | 1 + .../16_useradd_usage-f_invalid1/useradd.test | 54 + .../17_useradd_usage-f_invalid2/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/usage.out | 1 + .../17_useradd_usage-f_invalid2/useradd.test | 54 + .../config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/usage.out | 1 + .../useradd.test | 58 + .../19_useradd_usage-K_invalid1/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/usage.out | 1 + .../19_useradd_usage-K_invalid1/useradd.test | 54 + .../20_useradd_usage-O_invalid2/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/usage.out | 1 + .../20_useradd_usage-O_invalid2/useradd.test | 54 + .../21_useradd_usage-p_invalid1/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/usage.out | 1 + .../21_useradd_usage-p_invalid1/useradd.test | 54 + .../22_useradd_usage-p_invalid2/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/usage.out | 2 + .../22_useradd_usage-p_invalid2/useradd.test | 56 + .../23_useradd_usage-s_invalid1/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/usage.out | 1 + .../23_useradd_usage-s_invalid1/useradd.test | 54 + .../24_useradd_usage-s_invalid2/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/usage.out | 2 + .../24_useradd_usage-s_invalid2/useradd.test | 56 + .../25_useradd_usage-s_invalid3/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/usage.out | 1 + .../25_useradd_usage-s_invalid3/useradd.test | 54 + .../26_useradd_usage-o_without-u/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 20 + .../config/etc/shadow | 19 + .../data/usage.out | 36 + .../26_useradd_usage-o_without-u/useradd.test | 55 + .../27_useradd_usage-k_without-m/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 20 + .../config/etc/shadow | 19 + .../data/usage.out | 36 + .../27_useradd_usage-k_without-m/useradd.test | 55 + .../28_useradd_usage-U_with-g/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 20 + .../config/etc/shadow | 19 + .../28_useradd_usage-U_with-g/data/usage.out | 36 + .../28_useradd_usage-U_with-g/useradd.test | 55 + .../29_useradd_usage-U_with-N/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 20 + .../config/etc/shadow | 19 + .../29_useradd_usage-U_with-N/data/usage.out | 36 + .../29_useradd_usage-U_with-N/useradd.test | 55 + .../30_useradd_usage-m_with-M/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 20 + .../config/etc/shadow | 19 + .../30_useradd_usage-m_with-M/data/usage.out | 36 + .../30_useradd_usage-m_with-M/useradd.test | 55 + .../31_useradd_usage_user_with-D/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/usage.out | 35 + .../31_useradd_usage_user_with-D/useradd.test | 54 + .../32_useradd_usage-D_with_other/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 20 + .../config/etc/shadow | 19 + .../data/usage.out | 35 + .../useradd.test | 58 + .../config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/usage.out | 1 + .../useradd.test | 54 + .../34_useradd_default_GROUP_GID/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../34_useradd_default_GROUP_GID/data/passwd | 20 + .../34_useradd_default_GROUP_GID/data/shadow | 20 + .../34_useradd_default_GROUP_GID/useradd.test | 39 + .../35_useradd_default_GROUP_name/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../35_useradd_default_GROUP_name/data/passwd | 20 + .../35_useradd_default_GROUP_name/data/shadow | 20 + .../useradd.test | 39 + .../config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/passwd | 20 + .../data/shadow | 20 + .../data/usage.out | 2 + .../useradd.test | 48 + .../config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/passwd | 20 + .../data/shadow | 20 + .../data/usage.out | 2 + .../useradd.test | 48 + .../38_useradd_default_INACTIVE/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../38_useradd_default_INACTIVE/data/passwd | 20 + .../38_useradd_default_INACTIVE/data/shadow | 20 + .../38_useradd_default_INACTIVE/useradd.test | 39 + .../config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/passwd | 20 + .../data/shadow | 20 + .../data/usage.out | 2 + .../useradd.test | 48 + .../config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/passwd | 20 + .../data/shadow | 20 + .../data/usage.out | 2 + .../useradd.test | 48 + .../config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/defaults | 7 + .../useradd.test | 48 + .../config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/defaults | 7 + .../useradd.test | 48 + .../config.txt | 10 + .../config/etc/default/useradd | 37 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/useradd | 38 + .../useradd.test | 43 + .../44_useradd_default_no_file/config.txt | 10 + .../config/etc/default/useradd | 37 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../44_useradd_default_no_file/data/useradd | 8 + .../44_useradd_default_no_file/useradd.test | 47 + .../useradd/45_useradd-G_UID_name/config.txt | 10 + .../config/etc/default/useradd | 36 + .../45_useradd-G_UID_name/config/etc/group | 41 + .../45_useradd-G_UID_name/config/etc/gshadow | 41 + .../45_useradd-G_UID_name/config/etc/passwd | 19 + .../45_useradd-G_UID_name/config/etc/shadow | 19 + .../useradd/45_useradd-G_UID_name/data/group | 42 + .../45_useradd-G_UID_name/data/gshadow | 42 + .../useradd/45_useradd-G_UID_name/data/passwd | 20 + .../useradd/45_useradd-G_UID_name/data/shadow | 20 + .../45_useradd-G_UID_name/useradd.test | 39 + .../46_useradd-G_UID_duplicate/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../46_useradd-G_UID_duplicate/data/group | 42 + .../46_useradd-G_UID_duplicate/data/gshadow | 42 + .../46_useradd-G_UID_duplicate/data/passwd | 20 + .../46_useradd-G_UID_duplicate/data/shadow | 20 + .../46_useradd-G_UID_duplicate/useradd.test | 39 + .../config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/group | 42 + .../data/gshadow | 42 + .../data/passwd | 20 + .../data/shadow | 20 + .../useradd.test | 39 + .../48_useradd-G_name_duplicate/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../48_useradd-G_name_duplicate/data/group | 42 + .../48_useradd-G_name_duplicate/data/gshadow | 42 + .../48_useradd-G_name_duplicate/data/passwd | 20 + .../48_useradd-G_name_duplicate/data/shadow | 20 + .../48_useradd-G_name_duplicate/useradd.test | 39 + .../49_useradd-G_invalid_group/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../49_useradd-G_invalid_group/data/usage.out | 1 + .../49_useradd-G_invalid_group/useradd.test | 54 + .../usertools/useradd/50_useradd-r/config.txt | 10 + .../50_useradd-r/config/etc/default/useradd | 36 + .../useradd/50_useradd-r/config/etc/group | 41 + .../useradd/50_useradd-r/config/etc/gshadow | 41 + .../useradd/50_useradd-r/config/etc/passwd | 19 + .../useradd/50_useradd-r/config/etc/shadow | 19 + .../usertools/useradd/50_useradd-r/data/group | 42 + .../useradd/50_useradd-r/data/gshadow | 42 + .../useradd/50_useradd-r/data/passwd | 20 + .../useradd/50_useradd-r/data/shadow | 20 + .../useradd/50_useradd-r/useradd.test | 39 + .../51_useradd_already_exist/config.txt | 10 + .../config/etc/default/useradd | 36 + .../51_useradd_already_exist/config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../51_useradd_already_exist/data/usage.out | 1 + .../51_useradd_already_exist/useradd.test | 54 + .../config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/usage.out | 1 + .../useradd.test | 54 + .../useradd/53_useradd-G_empty/config.txt | 10 + .../config/etc/default/useradd | 36 + .../53_useradd-G_empty/config/etc/group | 41 + .../53_useradd-G_empty/config/etc/gshadow | 41 + .../53_useradd-G_empty/config/etc/passwd | 19 + .../53_useradd-G_empty/config/etc/shadow | 19 + .../useradd/53_useradd-G_empty/data/group | 42 + .../useradd/53_useradd-G_empty/data/gshadow | 42 + .../useradd/53_useradd-G_empty/data/passwd | 20 + .../useradd/53_useradd-G_empty/data/shadow | 20 + .../useradd/53_useradd-G_empty/useradd.test | 39 + .../54_useradd_no_shadow_file/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../54_useradd_no_shadow_file/data/group | 42 + .../54_useradd_no_shadow_file/data/gshadow | 42 + .../54_useradd_no_shadow_file/data/passwd | 20 + .../54_useradd_no_shadow_file/useradd.test | 43 + .../55_useradd_no_gshadow_file/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../55_useradd_no_gshadow_file/data/group | 42 + .../55_useradd_no_gshadow_file/data/passwd | 20 + .../55_useradd_no_gshadow_file/data/shadow | 20 + .../55_useradd_no_gshadow_file/useradd.test | 43 + .../config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/group | 42 + .../data/gshadow | 43 + .../data/passwd | 20 + .../data/shadow | 20 + .../useradd.test | 39 + .../config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/usage.out | 35 + .../useradd.test | 54 + .../useradd/58_useradd-e_empty/config.txt | 10 + .../config/etc/default/useradd | 36 + .../58_useradd-e_empty/config/etc/group | 41 + .../58_useradd-e_empty/config/etc/gshadow | 41 + .../58_useradd-e_empty/config/etc/passwd | 19 + .../58_useradd-e_empty/config/etc/shadow | 19 + .../useradd/58_useradd-e_empty/data/group | 42 + .../useradd/58_useradd-e_empty/data/gshadow | 42 + .../useradd/58_useradd-e_empty/data/passwd | 20 + .../useradd/58_useradd-e_empty/data/shadow | 20 + .../useradd/58_useradd-e_empty/useradd.test | 39 + .../useradd/59_useradd-e-1-f-1/config.txt | 10 + .../config/etc/default/useradd | 36 + .../59_useradd-e-1-f-1/config/etc/group | 41 + .../59_useradd-e-1-f-1/config/etc/gshadow | 41 + .../59_useradd-e-1-f-1/config/etc/passwd | 19 + .../59_useradd-e-1-f-1/config/etc/shadow | 19 + .../useradd/59_useradd-e-1-f-1/data/group | 42 + .../useradd/59_useradd-e-1-f-1/data/gshadow | 42 + .../useradd/59_useradd-e-1-f-1/data/passwd | 20 + .../useradd/59_useradd-e-1-f-1/data/shadow | 20 + .../useradd/59_useradd-e-1-f-1/useradd.test | 39 + .../config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/group | 42 + .../data/gshadow | 42 + .../data/passwd | 20 + .../useradd.test | 43 + .../usertools/useradd/61_useradd-K/config.txt | 10 + .../61_useradd-K/config/etc/default/useradd | 36 + .../useradd/61_useradd-K/config/etc/group | 41 + .../useradd/61_useradd-K/config/etc/gshadow | 41 + .../useradd/61_useradd-K/config/etc/passwd | 19 + .../useradd/61_useradd-K/config/etc/shadow | 19 + .../usertools/useradd/61_useradd-K/data/group | 42 + .../useradd/61_useradd-K/data/gshadow | 42 + .../useradd/61_useradd-K/data/passwd | 20 + .../useradd/61_useradd-K/data/shadow | 20 + .../useradd/61_useradd-K/useradd.test | 39 + .../usertools/useradd/62_useradd-p/config.txt | 10 + .../62_useradd-p/config/etc/default/useradd | 36 + .../useradd/62_useradd-p/config/etc/group | 41 + .../useradd/62_useradd-p/config/etc/gshadow | 41 + .../useradd/62_useradd-p/config/etc/passwd | 19 + .../useradd/62_useradd-p/config/etc/shadow | 19 + .../usertools/useradd/62_useradd-p/data/group | 42 + .../useradd/62_useradd-p/data/gshadow | 42 + .../useradd/62_useradd-p/data/passwd | 20 + .../useradd/62_useradd-p/data/shadow | 20 + .../useradd/62_useradd-p/useradd.test | 39 + .../usertools/useradd/63_useradd-s/config.txt | 10 + .../63_useradd-s/config/etc/default/useradd | 36 + .../useradd/63_useradd-s/config/etc/group | 41 + .../useradd/63_useradd-s/config/etc/gshadow | 41 + .../useradd/63_useradd-s/config/etc/passwd | 19 + .../useradd/63_useradd-s/config/etc/shadow | 19 + .../usertools/useradd/63_useradd-s/data/group | 42 + .../useradd/63_useradd-s/data/gshadow | 42 + .../useradd/63_useradd-s/data/passwd | 20 + .../useradd/63_useradd-s/data/shadow | 20 + .../useradd/63_useradd-s/useradd.test | 39 + .../64_useradd_locked_passwd/config.txt | 0 .../config/etc/default/useradd | 36 + .../64_useradd_locked_passwd/config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../64_useradd_locked_passwd/data/useradd.err | 2 + .../64_useradd_locked_passwd/useradd.test | 60 + .../65_useradd_locked_group/config.txt | 0 .../config/etc/default/useradd | 36 + .../65_useradd_locked_group/config/etc/group | 41 + .../config/etc/gshadow | 41 + .../65_useradd_locked_group/config/etc/passwd | 19 + .../65_useradd_locked_group/config/etc/shadow | 19 + .../65_useradd_locked_group/data/useradd.err | 2 + .../65_useradd_locked_group/useradd.test | 60 + .../66_useradd_locked_shadow/config.txt | 0 .../config/etc/default/useradd | 36 + .../66_useradd_locked_shadow/config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../66_useradd_locked_shadow/data/useradd.err | 2 + .../66_useradd_locked_shadow/useradd.test | 60 + .../67_useradd_locked_gshadow/config.txt | 0 .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/useradd.err | 2 + .../67_useradd_locked_gshadow/useradd.test | 60 + .../useradd/68_useradd-s_empty/config.txt | 10 + .../config/etc/default/useradd | 36 + .../68_useradd-s_empty/config/etc/group | 41 + .../68_useradd-s_empty/config/etc/gshadow | 41 + .../68_useradd-s_empty/config/etc/passwd | 19 + .../68_useradd-s_empty/config/etc/shadow | 19 + .../useradd/68_useradd-s_empty/data/group | 42 + .../useradd/68_useradd-s_empty/data/gshadow | 42 + .../useradd/68_useradd-s_empty/data/passwd | 20 + .../useradd/68_useradd-s_empty/data/shadow | 20 + .../useradd/68_useradd-s_empty/useradd.test | 39 + .../69_useradd_default_GROUPS_name/config.txt | 8 + .../config/etc/default/useradd | 40 + .../config/etc/group | 41 + .../69_useradd_default_GROUPS_name/data/group | 42 + .../useradd.test | 31 + .../userdel/01_userdel_usage/config.txt | 10 + .../config/etc/default/useradd | 36 + .../userdel/01_userdel_usage/config/etc/group | 41 + .../01_userdel_usage/config/etc/gshadow | 41 + .../01_userdel_usage/config/etc/passwd | 19 + .../01_userdel_usage/config/etc/shadow | 19 + .../userdel/01_userdel_usage/data/usage.out | 10 + .../userdel/01_userdel_usage/userdel.test | 48 + .../config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/usage.out | 11 + .../userdel.test | 54 + .../03_userdel_usage_no_users/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../03_userdel_usage_no_users/data/usage.out | 10 + .../03_userdel_usage_no_users/userdel.test | 54 + .../04_userdel_usage_2_users/config.txt | 10 + .../config/etc/default/useradd | 36 + .../04_userdel_usage_2_users/config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../04_userdel_usage_2_users/data/usage.out | 10 + .../04_userdel_usage_2_users/userdel.test | 54 + .../05_userdel_no_USERGROUPS_ENAB/config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 43 + .../config/etc/gshadow | 43 + .../config/etc/login.defs | 334 ++++ .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../05_userdel_no_USERGROUPS_ENAB/data/group | 43 + .../data/gshadow | 43 + .../05_userdel_no_USERGROUPS_ENAB/data/passwd | 20 + .../05_userdel_no_USERGROUPS_ENAB/data/shadow | 20 + .../userdel.test | 39 + .../06_userdel_no_usergroup/config.txt | 1 + .../config/etc/default/useradd | 36 + .../06_userdel_no_usergroup/config/etc/group | 43 + .../config/etc/gshadow | 43 + .../config/etc/login.defs | 334 ++++ .../06_userdel_no_usergroup/config/etc/passwd | 21 + .../06_userdel_no_usergroup/config/etc/shadow | 21 + .../06_userdel_no_usergroup/data/group | 43 + .../06_userdel_no_usergroup/data/gshadow | 43 + .../06_userdel_no_usergroup/data/passwd | 20 + .../06_userdel_no_usergroup/data/shadow | 20 + .../06_userdel_no_usergroup/userdel.test | 39 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 44 + .../config/etc/gshadow | 44 + .../config/etc/login.defs | 334 ++++ .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../data/group | 44 + .../data/gshadow | 44 + .../data/passwd | 20 + .../data/shadow | 20 + .../data/userdel.out | 1 + .../userdel.test | 48 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 43 + .../config/etc/gshadow | 43 + .../config/etc/login.defs | 334 ++++ .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../data/group | 43 + .../data/gshadow | 43 + .../data/passwd | 20 + .../data/shadow | 20 + .../data/userdel.out | 1 + .../userdel.test | 48 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 43 + .../config/etc/gshadow | 43 + .../config/etc/login.defs | 334 ++++ .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../data/group | 43 + .../data/gshadow | 43 + .../data/passwd | 20 + .../data/shadow | 20 + .../data/userdel.out | 1 + .../userdel.test | 48 + .../10_userdel_del_homedir_symlink/config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../10_userdel_del_homedir_symlink/data/group | 41 + .../data/gshadow | 41 + .../data/passwd | 19 + .../data/shadow | 19 + .../data/userdel.err | 1 + .../userdel.test | 72 + .../01_usermod-p_no_shadow_file/config.txt | 2 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../01_usermod-p_no_shadow_file/data/passwd | 20 + .../01_usermod-p_no_shadow_file/usermod.test | 43 + .../02_usermod-p_no_shadow_entry/config.txt | 2 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 19 + .../02_usermod-p_no_shadow_entry/data/passwd | 20 + .../02_usermod-p_no_shadow_entry/usermod.test | 39 + .../config.txt | 2 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 19 + .../data/shadow | 20 + .../usermod.test | 39 + .../config.txt | 2 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../usermod.test | 39 + .../config.txt | 2 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/shadow | 20 + .../usermod.test | 39 + .../config.txt | 2 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 19 + .../usermod.test | 39 + .../config.txt | 2 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../usermod.test | 39 + .../config.txt | 2 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/shadow | 20 + .../usermod.test | 39 + .../config.txt | 2 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 19 + .../usermod.test | 39 + .../usermod/10_usermod_usage/config.txt | 10 + .../config/etc/default/useradd | 36 + .../usermod/10_usermod_usage/config/etc/group | 41 + .../10_usermod_usage/config/etc/gshadow | 41 + .../10_usermod_usage/config/etc/passwd | 19 + .../10_usermod_usage/config/etc/shadow | 19 + .../usermod/10_usermod_usage/data/usage.out | 30 + .../usermod/10_usermod_usage/usermod.test | 48 + .../11_usermod_usage_bad_option/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/usage.out | 31 + .../11_usermod_usage_bad_option/usermod.test | 54 + .../usermod/12_usermod_usage_bad-f/config.txt | 10 + .../config/etc/default/useradd | 36 + .../12_usermod_usage_bad-f/config/etc/group | 41 + .../12_usermod_usage_bad-f/config/etc/gshadow | 41 + .../12_usermod_usage_bad-f/config/etc/passwd | 19 + .../12_usermod_usage_bad-f/config/etc/shadow | 19 + .../12_usermod_usage_bad-f/data/usermod.err | 1 + .../12_usermod_usage_bad-f/usermod.test | 54 + .../13_usermod_usage_bad-f_negativ/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 19 + .../config/etc/shadow | 19 + .../data/usermod.err | 1 + .../usermod.test | 54 + .../14_usermod_usage_no_options/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 20 + .../config/etc/shadow | 19 + .../data/usage.out | 31 + .../14_usermod_usage_no_options/usermod.test | 54 + .../15_usermod_usage_no_user/config.txt | 10 + .../config/etc/default/useradd | 36 + .../15_usermod_usage_no_user/config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 20 + .../config/etc/shadow | 19 + .../15_usermod_usage_no_user/data/usage.out | 30 + .../15_usermod_usage_no_user/usermod.test | 54 + .../config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 20 + .../config/etc/shadow | 19 + .../data/usage.out | 1 + .../usermod.test | 58 + .../config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 20 + .../config/etc/shadow | 19 + .../data/usage.out | 1 + .../usermod.test | 58 + .../18_usermod_usage-L-p_exclusive/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 20 + .../config/etc/shadow | 19 + .../data/usage.out | 31 + .../usermod.test | 54 + .../19_usermod_usage-L-U_exclusive/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 20 + .../config/etc/shadow | 19 + .../data/usage.out | 31 + .../usermod.test | 54 + .../20_usermod_usage-p-U_exclusive/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 20 + .../config/etc/shadow | 19 + .../data/usage.out | 31 + .../usermod.test | 54 + .../config.txt | 6 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/group | 42 + .../data/passwd | 20 + .../data/shadow | 20 + .../usermod.test | 43 + .../config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 20 + .../config/etc/shadow | 19 + .../data/usage.out | 1 + .../usermod.test | 54 + .../usermod/23_usermod-e_date/config.txt | 2 + .../config/etc/default/useradd | 36 + .../23_usermod-e_date/config/etc/group | 42 + .../23_usermod-e_date/config/etc/gshadow | 42 + .../23_usermod-e_date/config/etc/passwd | 20 + .../23_usermod-e_date/config/etc/shadow | 20 + .../usermod/23_usermod-e_date/data/shadow | 20 + .../usermod/23_usermod-e_date/usermod.test | 39 + .../usermod/24_usermod-e_date/config.txt | 2 + .../config/etc/default/useradd | 36 + .../24_usermod-e_date/config/etc/group | 42 + .../24_usermod-e_date/config/etc/gshadow | 42 + .../24_usermod-e_date/config/etc/passwd | 20 + .../24_usermod-e_date/config/etc/shadow | 20 + .../usermod/24_usermod-e_date/data/shadow | 20 + .../usermod/24_usermod-e_date/usermod.test | 39 + .../usermod/25_usermod-e_empty_arg/config.txt | 2 + .../config/etc/default/useradd | 36 + .../25_usermod-e_empty_arg/config/etc/group | 42 + .../25_usermod-e_empty_arg/config/etc/gshadow | 42 + .../25_usermod-e_empty_arg/config/etc/passwd | 20 + .../25_usermod-e_empty_arg/config/etc/shadow | 20 + .../25_usermod-e_empty_arg/data/shadow | 20 + .../25_usermod-e_empty_arg/usermod.test | 39 + .../usermod/26_usermod-e-1/config.txt | 2 + .../26_usermod-e-1/config/etc/default/useradd | 36 + .../usermod/26_usermod-e-1/config/etc/group | 42 + .../usermod/26_usermod-e-1/config/etc/gshadow | 42 + .../usermod/26_usermod-e-1/config/etc/passwd | 20 + .../usermod/26_usermod-e-1/config/etc/shadow | 20 + .../usermod/26_usermod-e-1/data/shadow | 20 + .../usermod/26_usermod-e-1/usermod.test | 39 + .../usermod/27_usermod-e_invalid1/config.txt | 2 + .../config/etc/default/useradd | 36 + .../27_usermod-e_invalid1/config/etc/group | 42 + .../27_usermod-e_invalid1/config/etc/gshadow | 42 + .../27_usermod-e_invalid1/config/etc/passwd | 20 + .../27_usermod-e_invalid1/config/etc/shadow | 20 + .../27_usermod-e_invalid1/data/usermod.err | 1 + .../27_usermod-e_invalid1/usermod.test | 54 + .../usermod/28_usermod-e_invalid2/config.txt | 2 + .../config/etc/default/useradd | 36 + .../28_usermod-e_invalid2/config/etc/group | 42 + .../28_usermod-e_invalid2/config/etc/gshadow | 42 + .../28_usermod-e_invalid2/config/etc/passwd | 20 + .../28_usermod-e_invalid2/config/etc/shadow | 20 + .../28_usermod-e_invalid2/data/usermod.err | 1 + .../28_usermod-e_invalid2/usermod.test | 54 + .../usermod/29_usermod_no_changes/config.txt | 10 + .../config/etc/default/useradd | 36 + .../29_usermod_no_changes/config/etc/group | 41 + .../29_usermod_no_changes/config/etc/gshadow | 41 + .../29_usermod_no_changes/config/etc/passwd | 20 + .../29_usermod_no_changes/config/etc/shadow | 20 + .../29_usermod_no_changes/data/usermod.err | 1 + .../29_usermod_no_changes/usermod.test | 48 + .../30_usermod_usage-a_without-G/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 20 + .../config/etc/shadow | 19 + .../data/usage.out | 31 + .../30_usermod_usage-a_without-G/usermod.test | 54 + .../31_usermod_usage-o_without-u/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 20 + .../config/etc/shadow | 19 + .../data/usage.out | 31 + .../31_usermod_usage-o_without-u/usermod.test | 55 + .../32_usermod_usage-m_without-d/config.txt | 10 + .../config/etc/default/useradd | 36 + .../config/etc/group | 41 + .../config/etc/gshadow | 41 + .../config/etc/passwd | 20 + .../config/etc/shadow | 19 + .../data/usage.out | 31 + .../32_usermod_usage-m_without-d/usermod.test | 54 + .../33_usermod_change_shell/config.txt | 2 + .../config/etc/default/useradd | 36 + .../33_usermod_change_shell/config/etc/group | 42 + .../config/etc/gshadow | 42 + .../33_usermod_change_shell/config/etc/passwd | 20 + .../33_usermod_change_shell/config/etc/shadow | 20 + .../33_usermod_change_shell/data/passwd | 20 + .../33_usermod_change_shell/usermod.test | 39 + .../config.txt | 2 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 19 + .../data/shadow | 20 + .../usermod.test | 39 + .../35_usermod-f_no_shadow_entry/config.txt | 2 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 19 + .../35_usermod-f_no_shadow_entry/data/shadow | 20 + .../35_usermod-f_no_shadow_entry/usermod.test | 39 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/home_ls-a | 3 + .../data/home_ls-a2 | 2 + .../data/passwd | 20 + .../data/usermod.err | 1 + .../usermod.test | 84 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/passwd | 20 + .../usermod.test | 47 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/passwd | 20 + .../usermod.test | 48 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/passwd | 20 + .../39_usermod-u_copy_lastlog_entry/login.exp | 13 + .../usermod.test | 66 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 43 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../data/group | 42 + .../data/passwd | 20 + .../data/shadow | 20 + .../login.exp | 13 + .../usermod.test | 74 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/passwd | 20 + .../usermod.test | 48 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/pam.d/login | 111 ++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/passwd | 20 + .../42_usermod-u_copy_faillog_entry/login.exp | 17 + .../usermod.test | 66 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 43 + .../config/etc/gshadow | 42 + .../config/etc/pam.d/login | 111 ++ .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../data/group | 42 + .../data/passwd | 20 + .../data/shadow | 20 + .../login.exp | 17 + .../usermod.test | 75 + .../44_usermod-l_move_mailbox/config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/mailbox.perms | 1 + .../44_usermod-l_move_mailbox/data/passwd | 20 + .../44_usermod-l_move_mailbox/data/shadow | 20 + .../usermod/44_usermod-l_move_mailbox/test | 1 + .../44_usermod-l_move_mailbox/usermod.test | 57 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/mailbox.perms | 1 + .../data/passwd | 20 + .../usermod.test | 54 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 43 + .../config/etc/gshadow | 43 + .../config/etc/passwd | 21 + .../config/etc/shadow | 21 + .../data/mailbox.perms | 1 + .../data/passwd | 21 + .../data/usermod.err | 1 + .../usermod.test | 63 + .../47_usermod-u_default_maildir/config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/login.defs | 334 ++++ .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/mailbox.perms | 1 + .../47_usermod-u_default_maildir/data/passwd | 20 + .../47_usermod-u_default_maildir/usermod.test | 54 + .../usermod/48_usermod-u_MAIL_FILE/config.txt | 1 + .../config/etc/default/useradd | 36 + .../48_usermod-u_MAIL_FILE/config/etc/group | 42 + .../48_usermod-u_MAIL_FILE/config/etc/gshadow | 42 + .../config/etc/login.defs | 334 ++++ .../48_usermod-u_MAIL_FILE/config/etc/passwd | 20 + .../48_usermod-u_MAIL_FILE/config/etc/shadow | 20 + .../48_usermod-u_MAIL_FILE/data/mailbox.perms | 1 + .../48_usermod-u_MAIL_FILE/data/passwd | 20 + .../48_usermod-u_MAIL_FILE/usermod.test | 54 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 43 + .../config/etc/gshadow | 43 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/home_ls-a | 12 + .../data/passwd | 20 + .../usermod.test | 87 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/home_ls-a | 5 + .../data/passwd | 20 + .../usermod.test | 62 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 43 + .../config/etc/gshadow | 43 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/home_ls-a | 3 + .../data/passwd | 20 + .../usermod.test | 58 + .../config.txt | 1 + .../config/etc/default/useradd | 36 + .../config/etc/group | 42 + .../config/etc/gshadow | 42 + .../config/etc/passwd | 20 + .../config/etc/shadow | 20 + .../data/home_ls-a | 3 + .../data/home_ls-a2 | 2 + .../data/passwd | 20 + .../data/usermod.err | 1 + .../usermod.test | 75 + tests/unit/Makefile.am | 14 - tests/unit/Makefile.in | 88 +- tests/unit/test_atoi_strtou_noneg.c | 76 - 10661 files changed, 382133 insertions(+), 3243 deletions(-) create mode 100644 lib/atoi/a2i.c create mode 100644 lib/atoi/a2i.h create mode 100644 lib/atoi/str2i.c create mode 100644 lib/atoi/str2i.h delete mode 100644 lib/getlong.c delete mode 100644 lib/getulong.c create mode 100644 tests/tests/README create mode 100755 tests/tests/bug332198-test.exp create mode 100755 tests/tests/bug334803-test.exp create mode 100644 tests/tests/chage/01/data/chage1 create mode 100644 tests/tests/chage/01/data/chage2 create mode 100644 tests/tests/chage/01/data/chage3 create mode 100644 tests/tests/chage/01/data/chage4 create mode 100644 tests/tests/chage/01/data/chage5 create mode 100644 tests/tests/chage/01/data/chage6 create mode 100644 tests/tests/chage/01/data/chage7 create mode 100644 tests/tests/chage/01/data/chage7b create mode 100644 tests/tests/chage/01/data/chage8 create mode 100644 tests/tests/chage/01/data/group create mode 100644 tests/tests/chage/01/data/gshadow create mode 100644 tests/tests/chage/01/data/passwd create mode 100644 tests/tests/chage/01/data/shadow create mode 100644 tests/tests/chage/01/data/usage create mode 100755 tests/tests/chage/01/run create mode 100755 tests/tests/chage/01/run1.exp create mode 100755 tests/tests/chage/01/run2.exp create mode 100644 tests/tests/chage/02/data/group create mode 100644 tests/tests/chage/02/data/gshadow create mode 100644 tests/tests/chage/02/data/passwd create mode 100644 tests/tests/chage/02/data/shadow create mode 100755 tests/tests/chage/02/run create mode 100755 tests/tests/chage/02/run.exp create mode 100755 tests/tests/chage/03_chsh_usage/chage.test create mode 100644 tests/tests/chage/03_chsh_usage/config.txt create mode 100644 tests/tests/chage/03_chsh_usage/config/etc/group create mode 100644 tests/tests/chage/03_chsh_usage/config/etc/gshadow create mode 100644 tests/tests/chage/03_chsh_usage/config/etc/passwd create mode 100644 tests/tests/chage/03_chsh_usage/config/etc/shadow create mode 100644 tests/tests/chage/03_chsh_usage/data/usage.out create mode 100755 tests/tests/chage/04_chsh_usage_invalid_option/chage.test create mode 100644 tests/tests/chage/04_chsh_usage_invalid_option/config.txt create mode 100644 tests/tests/chage/04_chsh_usage_invalid_option/config/etc/group create mode 100644 tests/tests/chage/04_chsh_usage_invalid_option/config/etc/gshadow create mode 100644 tests/tests/chage/04_chsh_usage_invalid_option/config/etc/passwd create mode 100644 tests/tests/chage/04_chsh_usage_invalid_option/config/etc/shadow create mode 100644 tests/tests/chage/04_chsh_usage_invalid_option/data/usage.out create mode 100755 tests/tests/chage/05_chsh_usage_2_users/chage.test create mode 100644 tests/tests/chage/05_chsh_usage_2_users/config.txt create mode 100644 tests/tests/chage/05_chsh_usage_2_users/config/etc/group create mode 100644 tests/tests/chage/05_chsh_usage_2_users/config/etc/gshadow create mode 100644 tests/tests/chage/05_chsh_usage_2_users/config/etc/passwd create mode 100644 tests/tests/chage/05_chsh_usage_2_users/config/etc/shadow create mode 100644 tests/tests/chage/05_chsh_usage_2_users/data/usage.out create mode 100755 tests/tests/chage/06_chsh_usage_no_users/chage.test create mode 100644 tests/tests/chage/06_chsh_usage_no_users/config.txt create mode 100644 tests/tests/chage/06_chsh_usage_no_users/config/etc/group create mode 100644 tests/tests/chage/06_chsh_usage_no_users/config/etc/gshadow create mode 100644 tests/tests/chage/06_chsh_usage_no_users/config/etc/passwd create mode 100644 tests/tests/chage/06_chsh_usage_no_users/config/etc/shadow create mode 100644 tests/tests/chage/06_chsh_usage_no_users/data/usage.out create mode 100755 tests/tests/chage/07_chsh_usage-l_exclusive/chage.test create mode 100644 tests/tests/chage/07_chsh_usage-l_exclusive/config.txt create mode 100644 tests/tests/chage/07_chsh_usage-l_exclusive/config/etc/group create mode 100644 tests/tests/chage/07_chsh_usage-l_exclusive/config/etc/gshadow create mode 100644 tests/tests/chage/07_chsh_usage-l_exclusive/config/etc/passwd create mode 100644 tests/tests/chage/07_chsh_usage-l_exclusive/config/etc/shadow create mode 100644 tests/tests/chage/07_chsh_usage-l_exclusive/data/usage.out create mode 100755 tests/tests/chage/08_chsh_usage_invalid_date/chage.test create mode 100644 tests/tests/chage/08_chsh_usage_invalid_date/config.txt create mode 100644 tests/tests/chage/08_chsh_usage_invalid_date/config/etc/group create mode 100644 tests/tests/chage/08_chsh_usage_invalid_date/config/etc/gshadow create mode 100644 tests/tests/chage/08_chsh_usage_invalid_date/config/etc/passwd create mode 100644 tests/tests/chage/08_chsh_usage_invalid_date/config/etc/shadow create mode 100644 tests/tests/chage/08_chsh_usage_invalid_date/data/usage.out create mode 100755 tests/tests/chage/09_chsh_usage_invalid_numeric_arg/chage.test create mode 100644 tests/tests/chage/09_chsh_usage_invalid_numeric_arg/config.txt create mode 100644 tests/tests/chage/09_chsh_usage_invalid_numeric_arg/config/etc/group create mode 100644 tests/tests/chage/09_chsh_usage_invalid_numeric_arg/config/etc/gshadow create mode 100644 tests/tests/chage/09_chsh_usage_invalid_numeric_arg/config/etc/passwd create mode 100644 tests/tests/chage/09_chsh_usage_invalid_numeric_arg/config/etc/shadow create mode 100644 tests/tests/chage/09_chsh_usage_invalid_numeric_arg/data/usage.out create mode 100755 tests/tests/chage/10_chsh-l/chage.test create mode 100644 tests/tests/chage/10_chsh-l/config.txt create mode 100644 tests/tests/chage/10_chsh-l/config/etc/group create mode 100644 tests/tests/chage/10_chsh-l/config/etc/gshadow create mode 100644 tests/tests/chage/10_chsh-l/config/etc/passwd create mode 100644 tests/tests/chage/10_chsh-l/config/etc/shadow create mode 100644 tests/tests/chage/10_chsh-l/data/myuser1 create mode 100644 tests/tests/chage/10_chsh-l/data/myuser10 create mode 100644 tests/tests/chage/10_chsh-l/data/myuser11 create mode 100644 tests/tests/chage/10_chsh-l/data/myuser2 create mode 100644 tests/tests/chage/10_chsh-l/data/myuser3 create mode 100644 tests/tests/chage/10_chsh-l/data/myuser4 create mode 100644 tests/tests/chage/10_chsh-l/data/myuser5 create mode 100644 tests/tests/chage/10_chsh-l/data/myuser6 create mode 100644 tests/tests/chage/10_chsh-l/data/myuser7 create mode 100644 tests/tests/chage/10_chsh-l/data/myuser8 create mode 100644 tests/tests/chage/10_chsh-l/data/myuser9 create mode 100755 tests/tests/chage/11_chsh_usage_invalid_user/chage.test create mode 100644 tests/tests/chage/11_chsh_usage_invalid_user/config.txt create mode 100644 tests/tests/chage/11_chsh_usage_invalid_user/config/etc/group create mode 100644 tests/tests/chage/11_chsh_usage_invalid_user/config/etc/gshadow create mode 100644 tests/tests/chage/11_chsh_usage_invalid_user/config/etc/passwd create mode 100644 tests/tests/chage/11_chsh_usage_invalid_user/config/etc/shadow create mode 100644 tests/tests/chage/11_chsh_usage_invalid_user/data/usage.out create mode 100755 tests/tests/chage/12_chsh_usage-l_invalid_user2/chage.test create mode 100644 tests/tests/chage/12_chsh_usage-l_invalid_user2/config.txt create mode 100644 tests/tests/chage/12_chsh_usage-l_invalid_user2/config/etc/group create mode 100644 tests/tests/chage/12_chsh_usage-l_invalid_user2/config/etc/gshadow create mode 100644 tests/tests/chage/12_chsh_usage-l_invalid_user2/config/etc/passwd create mode 100644 tests/tests/chage/12_chsh_usage-l_invalid_user2/config/etc/shadow create mode 100644 tests/tests/chage/12_chsh_usage-l_invalid_user2/data/usage.out create mode 100755 tests/tests/chage/13_chsh_locked_passwd/chage.test create mode 100644 tests/tests/chage/13_chsh_locked_passwd/config.txt create mode 100644 tests/tests/chage/13_chsh_locked_passwd/config/etc/group create mode 100644 tests/tests/chage/13_chsh_locked_passwd/config/etc/gshadow create mode 100644 tests/tests/chage/13_chsh_locked_passwd/config/etc/passwd create mode 100644 tests/tests/chage/13_chsh_locked_passwd/config/etc/shadow create mode 100644 tests/tests/chage/13_chsh_locked_passwd/data/usage.out create mode 100755 tests/tests/chage/14_chsh_locked_shadow/chage.test create mode 100644 tests/tests/chage/14_chsh_locked_shadow/config.txt create mode 100644 tests/tests/chage/14_chsh_locked_shadow/config/etc/group create mode 100644 tests/tests/chage/14_chsh_locked_shadow/config/etc/gshadow create mode 100644 tests/tests/chage/14_chsh_locked_shadow/config/etc/passwd create mode 100644 tests/tests/chage/14_chsh_locked_shadow/config/etc/shadow create mode 100644 tests/tests/chage/14_chsh_locked_shadow/data/usage.out create mode 100755 tests/tests/chage/15_chage-I_no_shadow_entry/chage.test create mode 100644 tests/tests/chage/15_chage-I_no_shadow_entry/config.txt create mode 100644 tests/tests/chage/15_chage-I_no_shadow_entry/config/etc/group create mode 100644 tests/tests/chage/15_chage-I_no_shadow_entry/config/etc/gshadow create mode 100644 tests/tests/chage/15_chage-I_no_shadow_entry/config/etc/login.defs create mode 100644 tests/tests/chage/15_chage-I_no_shadow_entry/config/etc/passwd create mode 100644 tests/tests/chage/15_chage-I_no_shadow_entry/config/etc/shadow create mode 100644 tests/tests/chage/15_chage-I_no_shadow_entry/data/passwd create mode 100644 tests/tests/chage/15_chage-I_no_shadow_entry/data/shadow create mode 100755 tests/tests/chage/16_chage-m_no_shadow_entry/chage.test create mode 100644 tests/tests/chage/16_chage-m_no_shadow_entry/config.txt create mode 100644 tests/tests/chage/16_chage-m_no_shadow_entry/config/etc/group create mode 100644 tests/tests/chage/16_chage-m_no_shadow_entry/config/etc/gshadow create mode 100644 tests/tests/chage/16_chage-m_no_shadow_entry/config/etc/login.defs create mode 100644 tests/tests/chage/16_chage-m_no_shadow_entry/config/etc/passwd create mode 100644 tests/tests/chage/16_chage-m_no_shadow_entry/config/etc/shadow create mode 100644 tests/tests/chage/16_chage-m_no_shadow_entry/data/passwd create mode 100644 tests/tests/chage/16_chage-m_no_shadow_entry/data/shadow create mode 100755 tests/tests/chage/17_chage-M_no_shadow_entry/chage.test create mode 100644 tests/tests/chage/17_chage-M_no_shadow_entry/config.txt create mode 100644 tests/tests/chage/17_chage-M_no_shadow_entry/config/etc/group create mode 100644 tests/tests/chage/17_chage-M_no_shadow_entry/config/etc/gshadow create mode 100644 tests/tests/chage/17_chage-M_no_shadow_entry/config/etc/login.defs create mode 100644 tests/tests/chage/17_chage-M_no_shadow_entry/config/etc/passwd create mode 100644 tests/tests/chage/17_chage-M_no_shadow_entry/config/etc/shadow create mode 100644 tests/tests/chage/17_chage-M_no_shadow_entry/data/passwd create mode 100644 tests/tests/chage/17_chage-M_no_shadow_entry/data/shadow create mode 100755 tests/tests/chage/18_chage-d_no_shadow_entry/chage.test create mode 100644 tests/tests/chage/18_chage-d_no_shadow_entry/config.txt create mode 100644 tests/tests/chage/18_chage-d_no_shadow_entry/config/etc/group create mode 100644 tests/tests/chage/18_chage-d_no_shadow_entry/config/etc/gshadow create mode 100644 tests/tests/chage/18_chage-d_no_shadow_entry/config/etc/login.defs create mode 100644 tests/tests/chage/18_chage-d_no_shadow_entry/config/etc/passwd create mode 100644 tests/tests/chage/18_chage-d_no_shadow_entry/config/etc/shadow create mode 100644 tests/tests/chage/18_chage-d_no_shadow_entry/data/passwd create mode 100644 tests/tests/chage/18_chage-d_no_shadow_entry/data/shadow create mode 100755 tests/tests/chage/19_chage-W_no_shadow_entry/chage.test create mode 100644 tests/tests/chage/19_chage-W_no_shadow_entry/config.txt create mode 100644 tests/tests/chage/19_chage-W_no_shadow_entry/config/etc/group create mode 100644 tests/tests/chage/19_chage-W_no_shadow_entry/config/etc/gshadow create mode 100644 tests/tests/chage/19_chage-W_no_shadow_entry/config/etc/login.defs create mode 100644 tests/tests/chage/19_chage-W_no_shadow_entry/config/etc/passwd create mode 100644 tests/tests/chage/19_chage-W_no_shadow_entry/config/etc/shadow create mode 100644 tests/tests/chage/19_chage-W_no_shadow_entry/data/passwd create mode 100644 tests/tests/chage/19_chage-W_no_shadow_entry/data/shadow create mode 100755 tests/tests/chage/20_chage-E_no_shadow_entry/chage.test create mode 100644 tests/tests/chage/20_chage-E_no_shadow_entry/config.txt create mode 100644 tests/tests/chage/20_chage-E_no_shadow_entry/config/etc/group create mode 100644 tests/tests/chage/20_chage-E_no_shadow_entry/config/etc/gshadow create mode 100644 tests/tests/chage/20_chage-E_no_shadow_entry/config/etc/login.defs create mode 100644 tests/tests/chage/20_chage-E_no_shadow_entry/config/etc/passwd create mode 100644 tests/tests/chage/20_chage-E_no_shadow_entry/config/etc/shadow create mode 100644 tests/tests/chage/20_chage-E_no_shadow_entry/data/passwd create mode 100644 tests/tests/chage/20_chage-E_no_shadow_entry/data/shadow create mode 100755 tests/tests/chage/21_chage_no_shadow_file/chage.test create mode 100644 tests/tests/chage/21_chage_no_shadow_file/config.txt create mode 100644 tests/tests/chage/21_chage_no_shadow_file/config/etc/group create mode 100644 tests/tests/chage/21_chage_no_shadow_file/config/etc/gshadow create mode 100644 tests/tests/chage/21_chage_no_shadow_file/config/etc/passwd create mode 100644 tests/tests/chage/21_chage_no_shadow_file/config/etc/shadow create mode 100644 tests/tests/chage/21_chage_no_shadow_file/data/usage.out create mode 100755 tests/tests/chage/22_chage_myuser-l/chage.test create mode 100644 tests/tests/chage/22_chage_myuser-l/config.txt create mode 100644 tests/tests/chage/22_chage_myuser-l/config/etc/group create mode 100644 tests/tests/chage/22_chage_myuser-l/config/etc/gshadow create mode 100644 tests/tests/chage/22_chage_myuser-l/config/etc/passwd create mode 100644 tests/tests/chage/22_chage_myuser-l/config/etc/shadow create mode 100644 tests/tests/chage/22_chage_myuser-l/data/myuser1 create mode 100755 tests/tests/chage/23_chage_myuser-I/chage.test create mode 100644 tests/tests/chage/23_chage_myuser-I/config.txt create mode 100644 tests/tests/chage/23_chage_myuser-I/config/etc/group create mode 100644 tests/tests/chage/23_chage_myuser-I/config/etc/gshadow create mode 100644 tests/tests/chage/23_chage_myuser-I/config/etc/passwd create mode 100644 tests/tests/chage/23_chage_myuser-I/config/etc/shadow create mode 100644 tests/tests/chage/23_chage_myuser-I/data/usage.out create mode 100755 tests/tests/chage/24_chage_myuser-l_other/chage.test create mode 100644 tests/tests/chage/24_chage_myuser-l_other/config.txt create mode 100644 tests/tests/chage/24_chage_myuser-l_other/config/etc/group create mode 100644 tests/tests/chage/24_chage_myuser-l_other/config/etc/gshadow create mode 100644 tests/tests/chage/24_chage_myuser-l_other/config/etc/passwd create mode 100644 tests/tests/chage/24_chage_myuser-l_other/config/etc/shadow create mode 100644 tests/tests/chage/24_chage_myuser-l_other/data/usage.out create mode 100755 tests/tests/chage/25_chage_interactive/chage.test create mode 100644 tests/tests/chage/25_chage_interactive/config.txt create mode 100644 tests/tests/chage/25_chage_interactive/config/etc/group create mode 100644 tests/tests/chage/25_chage_interactive/config/etc/gshadow create mode 100644 tests/tests/chage/25_chage_interactive/config/etc/login.defs create mode 100644 tests/tests/chage/25_chage_interactive/config/etc/passwd create mode 100644 tests/tests/chage/25_chage_interactive/config/etc/shadow create mode 100644 tests/tests/chage/25_chage_interactive/data/shadow create mode 100755 tests/tests/chage/25_chage_interactive/run.exp create mode 100755 tests/tests/chage/26_chage_interactive_date_0/chage.test create mode 100644 tests/tests/chage/26_chage_interactive_date_0/config.txt create mode 100644 tests/tests/chage/26_chage_interactive_date_0/config/etc/group create mode 100644 tests/tests/chage/26_chage_interactive_date_0/config/etc/gshadow create mode 100644 tests/tests/chage/26_chage_interactive_date_0/config/etc/login.defs create mode 100644 tests/tests/chage/26_chage_interactive_date_0/config/etc/passwd create mode 100644 tests/tests/chage/26_chage_interactive_date_0/config/etc/shadow create mode 100644 tests/tests/chage/26_chage_interactive_date_0/data/shadow create mode 100755 tests/tests/chage/26_chage_interactive_date_0/run.exp create mode 100755 tests/tests/chage/27_chage_interactive_date_-1/chage.test create mode 100644 tests/tests/chage/27_chage_interactive_date_-1/config.txt create mode 100644 tests/tests/chage/27_chage_interactive_date_-1/config/etc/group create mode 100644 tests/tests/chage/27_chage_interactive_date_-1/config/etc/gshadow create mode 100644 tests/tests/chage/27_chage_interactive_date_-1/config/etc/login.defs create mode 100644 tests/tests/chage/27_chage_interactive_date_-1/config/etc/passwd create mode 100644 tests/tests/chage/27_chage_interactive_date_-1/config/etc/shadow create mode 100644 tests/tests/chage/27_chage_interactive_date_-1/data/shadow create mode 100755 tests/tests/chage/27_chage_interactive_date_-1/run.exp create mode 100755 tests/tests/chage/28_chage_interactive_date_EPOCH/chage.test create mode 100644 tests/tests/chage/28_chage_interactive_date_EPOCH/config.txt create mode 100644 tests/tests/chage/28_chage_interactive_date_EPOCH/config/etc/group create mode 100644 tests/tests/chage/28_chage_interactive_date_EPOCH/config/etc/gshadow create mode 100644 tests/tests/chage/28_chage_interactive_date_EPOCH/config/etc/login.defs create mode 100644 tests/tests/chage/28_chage_interactive_date_EPOCH/config/etc/passwd create mode 100644 tests/tests/chage/28_chage_interactive_date_EPOCH/config/etc/shadow create mode 100644 tests/tests/chage/28_chage_interactive_date_EPOCH/data/shadow create mode 100755 tests/tests/chage/28_chage_interactive_date_EPOCH/run.exp create mode 100755 tests/tests/chage/29_chage_interactive_date_pre-EPOCH/chage.test create mode 100644 tests/tests/chage/29_chage_interactive_date_pre-EPOCH/config.txt create mode 100644 tests/tests/chage/29_chage_interactive_date_pre-EPOCH/config/etc/group create mode 100644 tests/tests/chage/29_chage_interactive_date_pre-EPOCH/config/etc/gshadow create mode 100644 tests/tests/chage/29_chage_interactive_date_pre-EPOCH/config/etc/login.defs create mode 100644 tests/tests/chage/29_chage_interactive_date_pre-EPOCH/config/etc/passwd create mode 100644 tests/tests/chage/29_chage_interactive_date_pre-EPOCH/config/etc/shadow create mode 100755 tests/tests/chage/29_chage_interactive_date_pre-EPOCH/run.exp create mode 100755 tests/tests/chage/30_chage_interactive_date_pre-EPOCH2/chage.test create mode 100644 tests/tests/chage/30_chage_interactive_date_pre-EPOCH2/config.txt create mode 100644 tests/tests/chage/30_chage_interactive_date_pre-EPOCH2/config/etc/group create mode 100644 tests/tests/chage/30_chage_interactive_date_pre-EPOCH2/config/etc/gshadow create mode 100644 tests/tests/chage/30_chage_interactive_date_pre-EPOCH2/config/etc/login.defs create mode 100644 tests/tests/chage/30_chage_interactive_date_pre-EPOCH2/config/etc/passwd create mode 100644 tests/tests/chage/30_chage_interactive_date_pre-EPOCH2/config/etc/shadow create mode 100755 tests/tests/chage/30_chage_interactive_date_pre-EPOCH2/run.exp create mode 100755 tests/tests/chage/31_chage_interactive_date_invalid/chage.test create mode 100644 tests/tests/chage/31_chage_interactive_date_invalid/config.txt create mode 100644 tests/tests/chage/31_chage_interactive_date_invalid/config/etc/group create mode 100644 tests/tests/chage/31_chage_interactive_date_invalid/config/etc/gshadow create mode 100644 tests/tests/chage/31_chage_interactive_date_invalid/config/etc/login.defs create mode 100644 tests/tests/chage/31_chage_interactive_date_invalid/config/etc/passwd create mode 100644 tests/tests/chage/31_chage_interactive_date_invalid/config/etc/shadow create mode 100755 tests/tests/chage/31_chage_interactive_date_invalid/run.exp create mode 100755 tests/tests/chage/32_chage_interactive_date_invalid2/chage.test create mode 100644 tests/tests/chage/32_chage_interactive_date_invalid2/config.txt create mode 100644 tests/tests/chage/32_chage_interactive_date_invalid2/config/etc/group create mode 100644 tests/tests/chage/32_chage_interactive_date_invalid2/config/etc/gshadow create mode 100644 tests/tests/chage/32_chage_interactive_date_invalid2/config/etc/login.defs create mode 100644 tests/tests/chage/32_chage_interactive_date_invalid2/config/etc/passwd create mode 100644 tests/tests/chage/32_chage_interactive_date_invalid2/config/etc/shadow create mode 100755 tests/tests/chage/32_chage_interactive_date_invalid2/run.exp create mode 100755 tests/tests/chage/33_chage_interactive-W_invalid1/chage.test create mode 100644 tests/tests/chage/33_chage_interactive-W_invalid1/config.txt create mode 100644 tests/tests/chage/33_chage_interactive-W_invalid1/config/etc/group create mode 100644 tests/tests/chage/33_chage_interactive-W_invalid1/config/etc/gshadow create mode 100644 tests/tests/chage/33_chage_interactive-W_invalid1/config/etc/login.defs create mode 100644 tests/tests/chage/33_chage_interactive-W_invalid1/config/etc/passwd create mode 100644 tests/tests/chage/33_chage_interactive-W_invalid1/config/etc/shadow create mode 100755 tests/tests/chage/33_chage_interactive-W_invalid1/run.exp create mode 100755 tests/tests/chage/34_chage_interactive-W_invalid2/chage.test create mode 100644 tests/tests/chage/34_chage_interactive-W_invalid2/config.txt create mode 100644 tests/tests/chage/34_chage_interactive-W_invalid2/config/etc/group create mode 100644 tests/tests/chage/34_chage_interactive-W_invalid2/config/etc/gshadow create mode 100644 tests/tests/chage/34_chage_interactive-W_invalid2/config/etc/login.defs create mode 100644 tests/tests/chage/34_chage_interactive-W_invalid2/config/etc/passwd create mode 100644 tests/tests/chage/34_chage_interactive-W_invalid2/config/etc/shadow create mode 100755 tests/tests/chage/34_chage_interactive-W_invalid2/run.exp create mode 100755 tests/tests/chage/35_chage_interactive-W-1/chage.test create mode 100644 tests/tests/chage/35_chage_interactive-W-1/config.txt create mode 100644 tests/tests/chage/35_chage_interactive-W-1/config/etc/group create mode 100644 tests/tests/chage/35_chage_interactive-W-1/config/etc/gshadow create mode 100644 tests/tests/chage/35_chage_interactive-W-1/config/etc/login.defs create mode 100644 tests/tests/chage/35_chage_interactive-W-1/config/etc/passwd create mode 100644 tests/tests/chage/35_chage_interactive-W-1/config/etc/shadow create mode 100644 tests/tests/chage/35_chage_interactive-W-1/data/shadow create mode 100755 tests/tests/chage/35_chage_interactive-W-1/run.exp create mode 100755 tests/tests/chage/36_chage_interactive-I_invalid1/chage.test create mode 100644 tests/tests/chage/36_chage_interactive-I_invalid1/config.txt create mode 100644 tests/tests/chage/36_chage_interactive-I_invalid1/config/etc/group create mode 100644 tests/tests/chage/36_chage_interactive-I_invalid1/config/etc/gshadow create mode 100644 tests/tests/chage/36_chage_interactive-I_invalid1/config/etc/login.defs create mode 100644 tests/tests/chage/36_chage_interactive-I_invalid1/config/etc/passwd create mode 100644 tests/tests/chage/36_chage_interactive-I_invalid1/config/etc/shadow create mode 100755 tests/tests/chage/36_chage_interactive-I_invalid1/run.exp create mode 100755 tests/tests/chage/37_chage_interactive-I_invalid2/chage.test create mode 100644 tests/tests/chage/37_chage_interactive-I_invalid2/config.txt create mode 100644 tests/tests/chage/37_chage_interactive-I_invalid2/config/etc/group create mode 100644 tests/tests/chage/37_chage_interactive-I_invalid2/config/etc/gshadow create mode 100644 tests/tests/chage/37_chage_interactive-I_invalid2/config/etc/login.defs create mode 100644 tests/tests/chage/37_chage_interactive-I_invalid2/config/etc/passwd create mode 100644 tests/tests/chage/37_chage_interactive-I_invalid2/config/etc/shadow create mode 100755 tests/tests/chage/37_chage_interactive-I_invalid2/run.exp create mode 100755 tests/tests/chage/38_chage_interactive-I-1/chage.test create mode 100644 tests/tests/chage/38_chage_interactive-I-1/config.txt create mode 100644 tests/tests/chage/38_chage_interactive-I-1/config/etc/group create mode 100644 tests/tests/chage/38_chage_interactive-I-1/config/etc/gshadow create mode 100644 tests/tests/chage/38_chage_interactive-I-1/config/etc/login.defs create mode 100644 tests/tests/chage/38_chage_interactive-I-1/config/etc/passwd create mode 100644 tests/tests/chage/38_chage_interactive-I-1/config/etc/shadow create mode 100644 tests/tests/chage/38_chage_interactive-I-1/data/shadow create mode 100755 tests/tests/chage/38_chage_interactive-I-1/run.exp create mode 100755 tests/tests/chage/39_chage_interactive-d-1/chage.test create mode 100644 tests/tests/chage/39_chage_interactive-d-1/config.txt create mode 100644 tests/tests/chage/39_chage_interactive-d-1/config/etc/group create mode 100644 tests/tests/chage/39_chage_interactive-d-1/config/etc/gshadow create mode 100644 tests/tests/chage/39_chage_interactive-d-1/config/etc/login.defs create mode 100644 tests/tests/chage/39_chage_interactive-d-1/config/etc/passwd create mode 100644 tests/tests/chage/39_chage_interactive-d-1/config/etc/shadow create mode 100644 tests/tests/chage/39_chage_interactive-d-1/data/shadow create mode 100755 tests/tests/chage/39_chage_interactive-d-1/run.exp create mode 100755 tests/tests/chroot/chage/01_chage--root/chage.test create mode 100644 tests/tests/chroot/chage/01_chage--root/config.txt create mode 100644 tests/tests/chroot/chage/01_chage--root/config/etc/default/useradd create mode 100644 tests/tests/chroot/chage/01_chage--root/config/etc/group create mode 100644 tests/tests/chroot/chage/01_chage--root/config/etc/gshadow create mode 100644 tests/tests/chroot/chage/01_chage--root/config/etc/passwd create mode 100644 tests/tests/chroot/chage/01_chage--root/config/etc/shadow create mode 100644 tests/tests/chroot/chage/01_chage--root/config_chroot/etc/group create mode 100644 tests/tests/chroot/chage/01_chage--root/config_chroot/etc/gshadow create mode 100644 tests/tests/chroot/chage/01_chage--root/config_chroot/etc/login.defs create mode 100644 tests/tests/chroot/chage/01_chage--root/config_chroot/etc/passwd create mode 100644 tests/tests/chroot/chage/01_chage--root/config_chroot/etc/shadow create mode 100644 tests/tests/chroot/chage/01_chage--root/data/shadow create mode 100755 tests/tests/chroot/chgpasswd/01_chgpasswd--root/chgpasswd.test create mode 100644 tests/tests/chroot/chgpasswd/01_chgpasswd--root/config.txt create mode 100644 tests/tests/chroot/chgpasswd/01_chgpasswd--root/config/etc/default/useradd create mode 100644 tests/tests/chroot/chgpasswd/01_chgpasswd--root/config/etc/group create mode 100644 tests/tests/chroot/chgpasswd/01_chgpasswd--root/config/etc/gshadow create mode 100644 tests/tests/chroot/chgpasswd/01_chgpasswd--root/config/etc/passwd create mode 100644 tests/tests/chroot/chgpasswd/01_chgpasswd--root/config/etc/shadow create mode 100644 tests/tests/chroot/chgpasswd/01_chgpasswd--root/config_chroot/etc/group create mode 100644 tests/tests/chroot/chgpasswd/01_chgpasswd--root/config_chroot/etc/gshadow create mode 100644 tests/tests/chroot/chgpasswd/01_chgpasswd--root/config_chroot/etc/login.defs create mode 100644 tests/tests/chroot/chgpasswd/01_chgpasswd--root/config_chroot/etc/passwd create mode 100644 tests/tests/chroot/chgpasswd/01_chgpasswd--root/config_chroot/etc/shadow create mode 100644 tests/tests/chroot/chgpasswd/01_chgpasswd--root/data/gshadow create mode 100755 tests/tests/chroot/chpasswd/01_chpasswd--root_nopam/chpasswd.test create mode 100644 tests/tests/chroot/chpasswd/01_chpasswd--root_nopam/config.txt create mode 100644 tests/tests/chroot/chpasswd/01_chpasswd--root_nopam/config/etc/default/useradd create mode 100644 tests/tests/chroot/chpasswd/01_chpasswd--root_nopam/config/etc/group create mode 100644 tests/tests/chroot/chpasswd/01_chpasswd--root_nopam/config/etc/gshadow create mode 100644 tests/tests/chroot/chpasswd/01_chpasswd--root_nopam/config/etc/passwd create mode 100644 tests/tests/chroot/chpasswd/01_chpasswd--root_nopam/config/etc/shadow create mode 100644 tests/tests/chroot/chpasswd/01_chpasswd--root_nopam/config_chroot/etc/group create mode 100644 tests/tests/chroot/chpasswd/01_chpasswd--root_nopam/config_chroot/etc/gshadow create mode 100644 tests/tests/chroot/chpasswd/01_chpasswd--root_nopam/config_chroot/etc/login.defs create mode 100644 tests/tests/chroot/chpasswd/01_chpasswd--root_nopam/config_chroot/etc/passwd create mode 100644 tests/tests/chroot/chpasswd/01_chpasswd--root_nopam/config_chroot/etc/shadow create mode 100644 tests/tests/chroot/chpasswd/01_chpasswd--root_nopam/data/shadow create mode 100755 tests/tests/chroot/chpasswd/02_chpasswd--root_pam/chpasswd.test create mode 100644 tests/tests/chroot/chpasswd/02_chpasswd--root_pam/config.txt create mode 100644 tests/tests/chroot/chpasswd/02_chpasswd--root_pam/config/etc/default/useradd create mode 100644 tests/tests/chroot/chpasswd/02_chpasswd--root_pam/config/etc/group create mode 100644 tests/tests/chroot/chpasswd/02_chpasswd--root_pam/config/etc/gshadow create mode 100644 tests/tests/chroot/chpasswd/02_chpasswd--root_pam/config/etc/passwd create mode 100644 tests/tests/chroot/chpasswd/02_chpasswd--root_pam/config/etc/shadow create mode 100644 tests/tests/chroot/chpasswd/02_chpasswd--root_pam/config_chroot/etc/group create mode 100644 tests/tests/chroot/chpasswd/02_chpasswd--root_pam/config_chroot/etc/gshadow create mode 100644 tests/tests/chroot/chpasswd/02_chpasswd--root_pam/config_chroot/etc/login.defs create mode 100644 tests/tests/chroot/chpasswd/02_chpasswd--root_pam/config_chroot/etc/pam.d/chpasswd create mode 100644 tests/tests/chroot/chpasswd/02_chpasswd--root_pam/config_chroot/etc/pam.d/common-password create mode 100644 tests/tests/chroot/chpasswd/02_chpasswd--root_pam/config_chroot/etc/passwd create mode 100644 tests/tests/chroot/chpasswd/02_chpasswd--root_pam/config_chroot/etc/shadow create mode 100644 tests/tests/chroot/chpasswd/02_chpasswd--root_pam/data/shadow create mode 100755 tests/tests/chroot/chsh/01_chsh--root/chsh.test create mode 100644 tests/tests/chroot/chsh/01_chsh--root/config.txt create mode 100644 tests/tests/chroot/chsh/01_chsh--root/config/etc/default/useradd create mode 100644 tests/tests/chroot/chsh/01_chsh--root/config/etc/group create mode 100644 tests/tests/chroot/chsh/01_chsh--root/config/etc/gshadow create mode 100644 tests/tests/chroot/chsh/01_chsh--root/config/etc/passwd create mode 100644 tests/tests/chroot/chsh/01_chsh--root/config/etc/shadow create mode 100644 tests/tests/chroot/chsh/01_chsh--root/config_chroot.list create mode 100644 tests/tests/chroot/chsh/01_chsh--root/config_chroot/etc/group create mode 100644 tests/tests/chroot/chsh/01_chsh--root/config_chroot/etc/gshadow create mode 100644 tests/tests/chroot/chsh/01_chsh--root/config_chroot/etc/login.defs create mode 100644 tests/tests/chroot/chsh/01_chsh--root/config_chroot/etc/pam.d/chsh create mode 100644 tests/tests/chroot/chsh/01_chsh--root/config_chroot/etc/pam.d/common-account create mode 100644 tests/tests/chroot/chsh/01_chsh--root/config_chroot/etc/pam.d/common-auth create mode 100644 tests/tests/chroot/chsh/01_chsh--root/config_chroot/etc/pam.d/common-session create mode 100644 tests/tests/chroot/chsh/01_chsh--root/config_chroot/etc/passwd create mode 100644 tests/tests/chroot/chsh/01_chsh--root/config_chroot/etc/shadow create mode 100644 tests/tests/chroot/chsh/01_chsh--root/config_chroot/etc/shells create mode 100644 tests/tests/chroot/chsh/01_chsh--root/data/passwd create mode 100644 tests/tests/chroot/gpasswd/01_gpasswd--root/config.txt create mode 100644 tests/tests/chroot/gpasswd/01_gpasswd--root/config/etc/default/useradd create mode 100644 tests/tests/chroot/gpasswd/01_gpasswd--root/config/etc/group create mode 100644 tests/tests/chroot/gpasswd/01_gpasswd--root/config/etc/gshadow create mode 100644 tests/tests/chroot/gpasswd/01_gpasswd--root/config/etc/passwd create mode 100644 tests/tests/chroot/gpasswd/01_gpasswd--root/config/etc/shadow create mode 100644 tests/tests/chroot/gpasswd/01_gpasswd--root/config_chroot/etc/group create mode 100644 tests/tests/chroot/gpasswd/01_gpasswd--root/config_chroot/etc/gshadow create mode 100644 tests/tests/chroot/gpasswd/01_gpasswd--root/config_chroot/etc/login.defs create mode 100644 tests/tests/chroot/gpasswd/01_gpasswd--root/config_chroot/etc/passwd create mode 100644 tests/tests/chroot/gpasswd/01_gpasswd--root/config_chroot/etc/shadow create mode 100644 tests/tests/chroot/gpasswd/01_gpasswd--root/data/group create mode 100644 tests/tests/chroot/gpasswd/01_gpasswd--root/data/gshadow create mode 100755 tests/tests/chroot/gpasswd/01_gpasswd--root/gpasswd.test create mode 100644 tests/tests/chroot/groupadd/01_groupadd--root/config.txt create mode 100644 tests/tests/chroot/groupadd/01_groupadd--root/config/etc/default/useradd create mode 100644 tests/tests/chroot/groupadd/01_groupadd--root/config/etc/group create mode 100644 tests/tests/chroot/groupadd/01_groupadd--root/config/etc/gshadow create mode 100644 tests/tests/chroot/groupadd/01_groupadd--root/config/etc/passwd create mode 100644 tests/tests/chroot/groupadd/01_groupadd--root/config/etc/shadow create mode 100644 tests/tests/chroot/groupadd/01_groupadd--root/config_chroot/etc/group create mode 100644 tests/tests/chroot/groupadd/01_groupadd--root/config_chroot/etc/gshadow create mode 100644 tests/tests/chroot/groupadd/01_groupadd--root/config_chroot/etc/login.defs create mode 100644 tests/tests/chroot/groupadd/01_groupadd--root/config_chroot/etc/passwd create mode 100644 tests/tests/chroot/groupadd/01_groupadd--root/config_chroot/etc/shadow create mode 100644 tests/tests/chroot/groupadd/01_groupadd--root/data/group create mode 100644 tests/tests/chroot/groupadd/01_groupadd--root/data/gshadow create mode 100755 tests/tests/chroot/groupadd/01_groupadd--root/groupadd.test create mode 100644 tests/tests/chroot/groupdel/01_groupdel--root/config.txt create mode 100644 tests/tests/chroot/groupdel/01_groupdel--root/config/etc/default/useradd create mode 100644 tests/tests/chroot/groupdel/01_groupdel--root/config/etc/group create mode 100644 tests/tests/chroot/groupdel/01_groupdel--root/config/etc/gshadow create mode 100644 tests/tests/chroot/groupdel/01_groupdel--root/config/etc/passwd create mode 100644 tests/tests/chroot/groupdel/01_groupdel--root/config/etc/shadow create mode 100644 tests/tests/chroot/groupdel/01_groupdel--root/config_chroot/etc/group create mode 100644 tests/tests/chroot/groupdel/01_groupdel--root/config_chroot/etc/gshadow create mode 100644 tests/tests/chroot/groupdel/01_groupdel--root/config_chroot/etc/login.defs create mode 100644 tests/tests/chroot/groupdel/01_groupdel--root/config_chroot/etc/passwd create mode 100644 tests/tests/chroot/groupdel/01_groupdel--root/config_chroot/etc/shadow create mode 100644 tests/tests/chroot/groupdel/01_groupdel--root/data/group create mode 100644 tests/tests/chroot/groupdel/01_groupdel--root/data/gshadow create mode 100755 tests/tests/chroot/groupdel/01_groupdel--root/groupdel.test create mode 100644 tests/tests/chroot/groupmod/01_groupmod--root/config.txt create mode 100644 tests/tests/chroot/groupmod/01_groupmod--root/config/etc/default/useradd create mode 100644 tests/tests/chroot/groupmod/01_groupmod--root/config/etc/group create mode 100644 tests/tests/chroot/groupmod/01_groupmod--root/config/etc/gshadow create mode 100644 tests/tests/chroot/groupmod/01_groupmod--root/config/etc/passwd create mode 100644 tests/tests/chroot/groupmod/01_groupmod--root/config/etc/shadow create mode 100644 tests/tests/chroot/groupmod/01_groupmod--root/config_chroot/etc/group create mode 100644 tests/tests/chroot/groupmod/01_groupmod--root/config_chroot/etc/gshadow create mode 100644 tests/tests/chroot/groupmod/01_groupmod--root/config_chroot/etc/login.defs create mode 100644 tests/tests/chroot/groupmod/01_groupmod--root/config_chroot/etc/passwd create mode 100644 tests/tests/chroot/groupmod/01_groupmod--root/config_chroot/etc/shadow create mode 100644 tests/tests/chroot/groupmod/01_groupmod--root/data/group create mode 100644 tests/tests/chroot/groupmod/01_groupmod--root/data/gshadow create mode 100755 tests/tests/chroot/groupmod/01_groupmod--root/groupmod.test create mode 100644 tests/tests/chroot/grpck/01_grpck--root/config.txt create mode 100644 tests/tests/chroot/grpck/01_grpck--root/config/etc/default/useradd create mode 100644 tests/tests/chroot/grpck/01_grpck--root/config/etc/group create mode 100644 tests/tests/chroot/grpck/01_grpck--root/config/etc/gshadow create mode 100644 tests/tests/chroot/grpck/01_grpck--root/config/etc/passwd create mode 100644 tests/tests/chroot/grpck/01_grpck--root/config/etc/shadow create mode 100644 tests/tests/chroot/grpck/01_grpck--root/config_chroot/etc/group create mode 100644 tests/tests/chroot/grpck/01_grpck--root/config_chroot/etc/gshadow create mode 100644 tests/tests/chroot/grpck/01_grpck--root/config_chroot/etc/login.defs create mode 100644 tests/tests/chroot/grpck/01_grpck--root/config_chroot/etc/passwd create mode 100644 tests/tests/chroot/grpck/01_grpck--root/config_chroot/etc/shadow create mode 100644 tests/tests/chroot/grpck/01_grpck--root/data/group create mode 100644 tests/tests/chroot/grpck/01_grpck--root/data/gshadow create mode 100755 tests/tests/chroot/grpck/01_grpck--root/grpck.test create mode 100644 tests/tests/chroot/grpconv/01_grpconv--root/config.txt create mode 100644 tests/tests/chroot/grpconv/01_grpconv--root/config/etc/default/useradd create mode 100644 tests/tests/chroot/grpconv/01_grpconv--root/config/etc/group create mode 100644 tests/tests/chroot/grpconv/01_grpconv--root/config/etc/gshadow create mode 100644 tests/tests/chroot/grpconv/01_grpconv--root/config/etc/passwd create mode 100644 tests/tests/chroot/grpconv/01_grpconv--root/config/etc/shadow create mode 100644 tests/tests/chroot/grpconv/01_grpconv--root/config_chroot/etc/group create mode 100644 tests/tests/chroot/grpconv/01_grpconv--root/config_chroot/etc/login.defs create mode 100644 tests/tests/chroot/grpconv/01_grpconv--root/config_chroot/etc/passwd create mode 100644 tests/tests/chroot/grpconv/01_grpconv--root/config_chroot/etc/shadow create mode 100644 tests/tests/chroot/grpconv/01_grpconv--root/data/group create mode 100644 tests/tests/chroot/grpconv/01_grpconv--root/data/gshadow create mode 100755 tests/tests/chroot/grpconv/01_grpconv--root/grpconv.test create mode 100644 tests/tests/chroot/grpunconv/01_grpunconv--root/config.txt create mode 100644 tests/tests/chroot/grpunconv/01_grpunconv--root/config/etc/default/useradd create mode 100644 tests/tests/chroot/grpunconv/01_grpunconv--root/config/etc/group create mode 100644 tests/tests/chroot/grpunconv/01_grpunconv--root/config/etc/gshadow create mode 100644 tests/tests/chroot/grpunconv/01_grpunconv--root/config/etc/passwd create mode 100644 tests/tests/chroot/grpunconv/01_grpunconv--root/config/etc/shadow create mode 100644 tests/tests/chroot/grpunconv/01_grpunconv--root/config_chroot/etc/group create mode 100644 tests/tests/chroot/grpunconv/01_grpunconv--root/config_chroot/etc/gshadow create mode 100644 tests/tests/chroot/grpunconv/01_grpunconv--root/config_chroot/etc/login.defs create mode 100644 tests/tests/chroot/grpunconv/01_grpunconv--root/config_chroot/etc/passwd create mode 100644 tests/tests/chroot/grpunconv/01_grpunconv--root/config_chroot/etc/shadow create mode 100644 tests/tests/chroot/grpunconv/01_grpunconv--root/data/group create mode 100755 tests/tests/chroot/grpunconv/01_grpunconv--root/grpunconv.test create mode 100644 tests/tests/chroot/lastlog/01_lastlog--root/config.txt create mode 100644 tests/tests/chroot/lastlog/01_lastlog--root/config/etc/default/useradd create mode 100644 tests/tests/chroot/lastlog/01_lastlog--root/config/etc/group create mode 100644 tests/tests/chroot/lastlog/01_lastlog--root/config/etc/gshadow create mode 100644 tests/tests/chroot/lastlog/01_lastlog--root/config/etc/passwd create mode 100644 tests/tests/chroot/lastlog/01_lastlog--root/config/etc/shadow create mode 100644 tests/tests/chroot/lastlog/01_lastlog--root/config_chroot/etc/group create mode 100644 tests/tests/chroot/lastlog/01_lastlog--root/config_chroot/etc/gshadow create mode 100644 tests/tests/chroot/lastlog/01_lastlog--root/config_chroot/etc/login.defs create mode 100644 tests/tests/chroot/lastlog/01_lastlog--root/config_chroot/etc/passwd create mode 100644 tests/tests/chroot/lastlog/01_lastlog--root/config_chroot/etc/shadow create mode 100644 tests/tests/chroot/lastlog/01_lastlog--root/data/group create mode 100644 tests/tests/chroot/lastlog/01_lastlog--root/data/gshadow create mode 100644 tests/tests/chroot/lastlog/01_lastlog--root/data/lastlog.list create mode 100755 tests/tests/chroot/lastlog/01_lastlog--root/lastlog.test create mode 100644 tests/tests/chroot/login/01_login_sublogin/config.txt create mode 100644 tests/tests/chroot/login/01_login_sublogin/config/etc/group create mode 100644 tests/tests/chroot/login/01_login_sublogin/config/etc/gshadow create mode 100644 tests/tests/chroot/login/01_login_sublogin/config/etc/login.defs create mode 100644 tests/tests/chroot/login/01_login_sublogin/config/etc/passwd create mode 100644 tests/tests/chroot/login/01_login_sublogin/config/etc/shadow create mode 100644 tests/tests/chroot/login/01_login_sublogin/config_chroot.list create mode 100644 tests/tests/chroot/login/01_login_sublogin/config_chroot/etc/group create mode 100644 tests/tests/chroot/login/01_login_sublogin/config_chroot/etc/gshadow create mode 100644 tests/tests/chroot/login/01_login_sublogin/config_chroot/etc/login.defs create mode 100644 tests/tests/chroot/login/01_login_sublogin/config_chroot/etc/pam.d/common-account create mode 100644 tests/tests/chroot/login/01_login_sublogin/config_chroot/etc/pam.d/common-auth create mode 100644 tests/tests/chroot/login/01_login_sublogin/config_chroot/etc/pam.d/common-password create mode 100644 tests/tests/chroot/login/01_login_sublogin/config_chroot/etc/pam.d/common-session create mode 100644 tests/tests/chroot/login/01_login_sublogin/config_chroot/etc/pam.d/common-session-noninteractive create mode 100644 tests/tests/chroot/login/01_login_sublogin/config_chroot/etc/pam.d/login create mode 100644 tests/tests/chroot/login/01_login_sublogin/config_chroot/etc/pam.d/other create mode 100644 tests/tests/chroot/login/01_login_sublogin/config_chroot/etc/passwd create mode 100644 tests/tests/chroot/login/01_login_sublogin/config_chroot/etc/securetty create mode 100644 tests/tests/chroot/login/01_login_sublogin/config_chroot/etc/security/limits.conf create mode 100644 tests/tests/chroot/login/01_login_sublogin/config_chroot/etc/shadow create mode 100755 tests/tests/chroot/login/01_login_sublogin/login.exp create mode 100755 tests/tests/chroot/login/01_login_sublogin/login.test create mode 100644 tests/tests/chroot/pwck/01_pwck--root/config.txt create mode 100644 tests/tests/chroot/pwck/01_pwck--root/config/etc/default/useradd create mode 100644 tests/tests/chroot/pwck/01_pwck--root/config/etc/group create mode 100644 tests/tests/chroot/pwck/01_pwck--root/config/etc/gshadow create mode 100644 tests/tests/chroot/pwck/01_pwck--root/config/etc/passwd create mode 100644 tests/tests/chroot/pwck/01_pwck--root/config/etc/shadow create mode 100644 tests/tests/chroot/pwck/01_pwck--root/config_chroot/etc/group create mode 100644 tests/tests/chroot/pwck/01_pwck--root/config_chroot/etc/gshadow create mode 100644 tests/tests/chroot/pwck/01_pwck--root/config_chroot/etc/login.defs create mode 100644 tests/tests/chroot/pwck/01_pwck--root/config_chroot/etc/passwd create mode 100644 tests/tests/chroot/pwck/01_pwck--root/config_chroot/etc/shadow create mode 100644 tests/tests/chroot/pwck/01_pwck--root/data/pwck.out create mode 100755 tests/tests/chroot/pwck/01_pwck--root/pwck.test create mode 100644 tests/tests/chroot/pwconv/01_pwconv--root/config.txt create mode 100644 tests/tests/chroot/pwconv/01_pwconv--root/config/etc/default/useradd create mode 100644 tests/tests/chroot/pwconv/01_pwconv--root/config/etc/group create mode 100644 tests/tests/chroot/pwconv/01_pwconv--root/config/etc/gshadow create mode 100644 tests/tests/chroot/pwconv/01_pwconv--root/config/etc/passwd create mode 100644 tests/tests/chroot/pwconv/01_pwconv--root/config/etc/shadow create mode 100644 tests/tests/chroot/pwconv/01_pwconv--root/config_chroot/etc/group create mode 100644 tests/tests/chroot/pwconv/01_pwconv--root/config_chroot/etc/gshadow create mode 100644 tests/tests/chroot/pwconv/01_pwconv--root/config_chroot/etc/login.defs create mode 100644 tests/tests/chroot/pwconv/01_pwconv--root/config_chroot/etc/passwd create mode 100644 tests/tests/chroot/pwconv/01_pwconv--root/data/passwd create mode 100644 tests/tests/chroot/pwconv/01_pwconv--root/data/shadow create mode 100755 tests/tests/chroot/pwconv/01_pwconv--root/pwconv.test create mode 100644 tests/tests/chroot/pwunconv/01_pwunconv--root/config.txt create mode 100644 tests/tests/chroot/pwunconv/01_pwunconv--root/config/etc/default/useradd create mode 100644 tests/tests/chroot/pwunconv/01_pwunconv--root/config/etc/group create mode 100644 tests/tests/chroot/pwunconv/01_pwunconv--root/config/etc/gshadow create mode 100644 tests/tests/chroot/pwunconv/01_pwunconv--root/config/etc/passwd create mode 100644 tests/tests/chroot/pwunconv/01_pwunconv--root/config/etc/shadow create mode 100644 tests/tests/chroot/pwunconv/01_pwunconv--root/config_chroot/etc/group create mode 100644 tests/tests/chroot/pwunconv/01_pwunconv--root/config_chroot/etc/gshadow create mode 100644 tests/tests/chroot/pwunconv/01_pwunconv--root/config_chroot/etc/login.defs create mode 100644 tests/tests/chroot/pwunconv/01_pwunconv--root/config_chroot/etc/passwd create mode 100644 tests/tests/chroot/pwunconv/01_pwunconv--root/config_chroot/etc/shadow create mode 100644 tests/tests/chroot/pwunconv/01_pwunconv--root/data/passwd create mode 100755 tests/tests/chroot/pwunconv/01_pwunconv--root/pwunconv.test create mode 100644 tests/tests/chroot/useradd/01_useradd--root/config.txt create mode 100644 tests/tests/chroot/useradd/01_useradd--root/config/etc/default/useradd create mode 100644 tests/tests/chroot/useradd/01_useradd--root/config/etc/group create mode 100644 tests/tests/chroot/useradd/01_useradd--root/config/etc/gshadow create mode 100644 tests/tests/chroot/useradd/01_useradd--root/config/etc/passwd create mode 100644 tests/tests/chroot/useradd/01_useradd--root/config/etc/shadow create mode 100644 tests/tests/chroot/useradd/01_useradd--root/config_chroot/etc/group create mode 100644 tests/tests/chroot/useradd/01_useradd--root/config_chroot/etc/gshadow create mode 100644 tests/tests/chroot/useradd/01_useradd--root/config_chroot/etc/login.defs create mode 100644 tests/tests/chroot/useradd/01_useradd--root/config_chroot/etc/passwd create mode 100644 tests/tests/chroot/useradd/01_useradd--root/config_chroot/etc/shadow create mode 100644 tests/tests/chroot/useradd/01_useradd--root/data/group create mode 100644 tests/tests/chroot/useradd/01_useradd--root/data/gshadow create mode 100644 tests/tests/chroot/useradd/01_useradd--root/data/passwd create mode 100644 tests/tests/chroot/useradd/01_useradd--root/data/shadow create mode 100755 tests/tests/chroot/useradd/01_useradd--root/useradd.test create mode 100644 tests/tests/chroot/useradd/02_useradd--root_login.defs/config.txt create mode 100644 tests/tests/chroot/useradd/02_useradd--root_login.defs/config/etc/default/useradd create mode 100644 tests/tests/chroot/useradd/02_useradd--root_login.defs/config/etc/group create mode 100644 tests/tests/chroot/useradd/02_useradd--root_login.defs/config/etc/gshadow create mode 100644 tests/tests/chroot/useradd/02_useradd--root_login.defs/config/etc/passwd create mode 100644 tests/tests/chroot/useradd/02_useradd--root_login.defs/config/etc/shadow create mode 100644 tests/tests/chroot/useradd/02_useradd--root_login.defs/config_chroot/etc/group create mode 100644 tests/tests/chroot/useradd/02_useradd--root_login.defs/config_chroot/etc/gshadow create mode 100644 tests/tests/chroot/useradd/02_useradd--root_login.defs/config_chroot/etc/login.defs create mode 100644 tests/tests/chroot/useradd/02_useradd--root_login.defs/config_chroot/etc/passwd create mode 100644 tests/tests/chroot/useradd/02_useradd--root_login.defs/config_chroot/etc/shadow create mode 100644 tests/tests/chroot/useradd/02_useradd--root_login.defs/data/group create mode 100644 tests/tests/chroot/useradd/02_useradd--root_login.defs/data/gshadow create mode 100644 tests/tests/chroot/useradd/02_useradd--root_login.defs/data/passwd create mode 100644 tests/tests/chroot/useradd/02_useradd--root_login.defs/data/shadow create mode 100755 tests/tests/chroot/useradd/02_useradd--root_login.defs/useradd.test create mode 100644 tests/tests/chroot/useradd/03_useradd--root_useradd.default/config.txt create mode 100644 tests/tests/chroot/useradd/03_useradd--root_useradd.default/config/etc/default/useradd create mode 100644 tests/tests/chroot/useradd/03_useradd--root_useradd.default/config/etc/group create mode 100644 tests/tests/chroot/useradd/03_useradd--root_useradd.default/config/etc/gshadow create mode 100644 tests/tests/chroot/useradd/03_useradd--root_useradd.default/config/etc/passwd create mode 100644 tests/tests/chroot/useradd/03_useradd--root_useradd.default/config/etc/shadow create mode 100644 tests/tests/chroot/useradd/03_useradd--root_useradd.default/config_chroot/etc/default/useradd create mode 100644 tests/tests/chroot/useradd/03_useradd--root_useradd.default/config_chroot/etc/group create mode 100644 tests/tests/chroot/useradd/03_useradd--root_useradd.default/config_chroot/etc/gshadow create mode 100644 tests/tests/chroot/useradd/03_useradd--root_useradd.default/config_chroot/etc/login.defs create mode 100644 tests/tests/chroot/useradd/03_useradd--root_useradd.default/config_chroot/etc/passwd create mode 100644 tests/tests/chroot/useradd/03_useradd--root_useradd.default/config_chroot/etc/shadow create mode 100644 tests/tests/chroot/useradd/03_useradd--root_useradd.default/data/group create mode 100644 tests/tests/chroot/useradd/03_useradd--root_useradd.default/data/gshadow create mode 100644 tests/tests/chroot/useradd/03_useradd--root_useradd.default/data/passwd create mode 100644 tests/tests/chroot/useradd/03_useradd--root_useradd.default/data/shadow create mode 100755 tests/tests/chroot/useradd/03_useradd--root_useradd.default/useradd.test create mode 100644 tests/tests/chroot/useradd/04_useradd--root_useradd-D/config.txt create mode 100644 tests/tests/chroot/useradd/04_useradd--root_useradd-D/config/etc/default/useradd create mode 100644 tests/tests/chroot/useradd/04_useradd--root_useradd-D/config/etc/group create mode 100644 tests/tests/chroot/useradd/04_useradd--root_useradd-D/config/etc/gshadow create mode 100644 tests/tests/chroot/useradd/04_useradd--root_useradd-D/config/etc/passwd create mode 100644 tests/tests/chroot/useradd/04_useradd--root_useradd-D/config/etc/shadow create mode 100644 tests/tests/chroot/useradd/04_useradd--root_useradd-D/config_chroot/etc/default/useradd create mode 100644 tests/tests/chroot/useradd/04_useradd--root_useradd-D/config_chroot/etc/group create mode 100644 tests/tests/chroot/useradd/04_useradd--root_useradd-D/config_chroot/etc/gshadow create mode 100644 tests/tests/chroot/useradd/04_useradd--root_useradd-D/config_chroot/etc/login.defs create mode 100644 tests/tests/chroot/useradd/04_useradd--root_useradd-D/config_chroot/etc/passwd create mode 100644 tests/tests/chroot/useradd/04_useradd--root_useradd-D/config_chroot/etc/shadow create mode 100644 tests/tests/chroot/useradd/04_useradd--root_useradd-D/data/useradd.out create mode 100755 tests/tests/chroot/useradd/04_useradd--root_useradd-D/useradd.test create mode 100644 tests/tests/chroot/useradd/05_useradd--root_useradd-D-e-g/config.txt create mode 100644 tests/tests/chroot/useradd/05_useradd--root_useradd-D-e-g/config/etc/default/useradd create mode 100644 tests/tests/chroot/useradd/05_useradd--root_useradd-D-e-g/config/etc/group create mode 100644 tests/tests/chroot/useradd/05_useradd--root_useradd-D-e-g/config/etc/gshadow create mode 100644 tests/tests/chroot/useradd/05_useradd--root_useradd-D-e-g/config/etc/passwd create mode 100644 tests/tests/chroot/useradd/05_useradd--root_useradd-D-e-g/config/etc/shadow create mode 100644 tests/tests/chroot/useradd/05_useradd--root_useradd-D-e-g/config_chroot/etc/default/useradd create mode 100644 tests/tests/chroot/useradd/05_useradd--root_useradd-D-e-g/config_chroot/etc/group create mode 100644 tests/tests/chroot/useradd/05_useradd--root_useradd-D-e-g/config_chroot/etc/gshadow create mode 100644 tests/tests/chroot/useradd/05_useradd--root_useradd-D-e-g/config_chroot/etc/login.defs create mode 100644 tests/tests/chroot/useradd/05_useradd--root_useradd-D-e-g/config_chroot/etc/passwd create mode 100644 tests/tests/chroot/useradd/05_useradd--root_useradd-D-e-g/config_chroot/etc/shadow create mode 100644 tests/tests/chroot/useradd/05_useradd--root_useradd-D-e-g/data/useradd.default create mode 100755 tests/tests/chroot/useradd/05_useradd--root_useradd-D-e-g/useradd.test create mode 100644 tests/tests/chroot/userdel/01_userdel--root/config.txt create mode 100644 tests/tests/chroot/userdel/01_userdel--root/config/etc/default/useradd create mode 100644 tests/tests/chroot/userdel/01_userdel--root/config/etc/group create mode 100644 tests/tests/chroot/userdel/01_userdel--root/config/etc/gshadow create mode 100644 tests/tests/chroot/userdel/01_userdel--root/config/etc/passwd create mode 100644 tests/tests/chroot/userdel/01_userdel--root/config/etc/shadow create mode 100644 tests/tests/chroot/userdel/01_userdel--root/config_chroot/etc/group create mode 100644 tests/tests/chroot/userdel/01_userdel--root/config_chroot/etc/gshadow create mode 100644 tests/tests/chroot/userdel/01_userdel--root/config_chroot/etc/login.defs create mode 100644 tests/tests/chroot/userdel/01_userdel--root/config_chroot/etc/passwd create mode 100644 tests/tests/chroot/userdel/01_userdel--root/config_chroot/etc/shadow create mode 100644 tests/tests/chroot/userdel/01_userdel--root/data/group create mode 100644 tests/tests/chroot/userdel/01_userdel--root/data/gshadow create mode 100644 tests/tests/chroot/userdel/01_userdel--root/data/passwd create mode 100644 tests/tests/chroot/userdel/01_userdel--root/data/shadow create mode 100755 tests/tests/chroot/userdel/01_userdel--root/userdel.test create mode 100644 tests/tests/chroot/usermod/01_usermod--root/config.txt create mode 100644 tests/tests/chroot/usermod/01_usermod--root/config/etc/default/useradd create mode 100644 tests/tests/chroot/usermod/01_usermod--root/config/etc/group create mode 100644 tests/tests/chroot/usermod/01_usermod--root/config/etc/gshadow create mode 100644 tests/tests/chroot/usermod/01_usermod--root/config/etc/passwd create mode 100644 tests/tests/chroot/usermod/01_usermod--root/config/etc/shadow create mode 100644 tests/tests/chroot/usermod/01_usermod--root/config_chroot/etc/group create mode 100644 tests/tests/chroot/usermod/01_usermod--root/config_chroot/etc/gshadow create mode 100644 tests/tests/chroot/usermod/01_usermod--root/config_chroot/etc/login.defs create mode 100644 tests/tests/chroot/usermod/01_usermod--root/config_chroot/etc/passwd create mode 100644 tests/tests/chroot/usermod/01_usermod--root/config_chroot/etc/shadow create mode 100644 tests/tests/chroot/usermod/01_usermod--root/data/passwd create mode 100755 tests/tests/chroot/usermod/01_usermod--root/usermod.test create mode 100644 tests/tests/chsh/01/data/chsh1 create mode 100644 tests/tests/chsh/01/data/chsh2 create mode 100644 tests/tests/chsh/01/data/group create mode 100644 tests/tests/chsh/01/data/gshadow create mode 100644 tests/tests/chsh/01/data/passwd create mode 100644 tests/tests/chsh/01/data/shadow create mode 100644 tests/tests/chsh/01/data/shells create mode 100755 tests/tests/chsh/01/run create mode 100755 tests/tests/chsh/01/run.exp create mode 100755 tests/tests/chsh/02_chsh_usage/chsh.test create mode 100644 tests/tests/chsh/02_chsh_usage/config.txt create mode 100644 tests/tests/chsh/02_chsh_usage/config/etc/group create mode 100644 tests/tests/chsh/02_chsh_usage/config/etc/gshadow create mode 100644 tests/tests/chsh/02_chsh_usage/config/etc/passwd create mode 100644 tests/tests/chsh/02_chsh_usage/config/etc/shadow create mode 100644 tests/tests/chsh/02_chsh_usage/data/usage.out create mode 100755 tests/tests/chsh/03_chsh_usage_invalid_option/chsh.test create mode 100644 tests/tests/chsh/03_chsh_usage_invalid_option/config.txt create mode 100644 tests/tests/chsh/03_chsh_usage_invalid_option/config/etc/group create mode 100644 tests/tests/chsh/03_chsh_usage_invalid_option/config/etc/gshadow create mode 100644 tests/tests/chsh/03_chsh_usage_invalid_option/config/etc/passwd create mode 100644 tests/tests/chsh/03_chsh_usage_invalid_option/config/etc/shadow create mode 100644 tests/tests/chsh/03_chsh_usage_invalid_option/data/usage.out create mode 100755 tests/tests/chsh/04_chsh_usage_2_users/chsh.test create mode 100644 tests/tests/chsh/04_chsh_usage_2_users/config.txt create mode 100644 tests/tests/chsh/04_chsh_usage_2_users/config/etc/group create mode 100644 tests/tests/chsh/04_chsh_usage_2_users/config/etc/gshadow create mode 100644 tests/tests/chsh/04_chsh_usage_2_users/config/etc/passwd create mode 100644 tests/tests/chsh/04_chsh_usage_2_users/config/etc/shadow create mode 100644 tests/tests/chsh/04_chsh_usage_2_users/data/usage.out create mode 100755 tests/tests/chsh/05_chsh_myuser_restricted_shell/chsh.test create mode 100644 tests/tests/chsh/05_chsh_myuser_restricted_shell/config.txt create mode 100644 tests/tests/chsh/05_chsh_myuser_restricted_shell/config/etc/group create mode 100644 tests/tests/chsh/05_chsh_myuser_restricted_shell/config/etc/gshadow create mode 100644 tests/tests/chsh/05_chsh_myuser_restricted_shell/config/etc/passwd create mode 100644 tests/tests/chsh/05_chsh_myuser_restricted_shell/config/etc/shadow create mode 100644 tests/tests/chsh/05_chsh_myuser_restricted_shell/config/etc/shells create mode 100755 tests/tests/chsh/05_chsh_myuser_restricted_shell/run.exp create mode 100755 tests/tests/chsh/06_chsh_myuser_non_restricted_shell/chsh.test create mode 100644 tests/tests/chsh/06_chsh_myuser_non_restricted_shell/config.txt create mode 100644 tests/tests/chsh/06_chsh_myuser_non_restricted_shell/config/etc/group create mode 100644 tests/tests/chsh/06_chsh_myuser_non_restricted_shell/config/etc/gshadow create mode 100644 tests/tests/chsh/06_chsh_myuser_non_restricted_shell/config/etc/passwd create mode 100644 tests/tests/chsh/06_chsh_myuser_non_restricted_shell/config/etc/shadow create mode 100644 tests/tests/chsh/06_chsh_myuser_non_restricted_shell/config/etc/shells create mode 100644 tests/tests/chsh/06_chsh_myuser_non_restricted_shell/data/passwd create mode 100755 tests/tests/chsh/06_chsh_myuser_non_restricted_shell/run.exp create mode 100755 tests/tests/chsh/07_chsh_usage_invalid_user/chsh.test create mode 100644 tests/tests/chsh/07_chsh_usage_invalid_user/config.txt create mode 100644 tests/tests/chsh/07_chsh_usage_invalid_user/config/etc/group create mode 100644 tests/tests/chsh/07_chsh_usage_invalid_user/config/etc/gshadow create mode 100644 tests/tests/chsh/07_chsh_usage_invalid_user/config/etc/passwd create mode 100644 tests/tests/chsh/07_chsh_usage_invalid_user/config/etc/shadow create mode 100644 tests/tests/chsh/07_chsh_usage_invalid_user/data/usage.out create mode 100755 tests/tests/chsh/08_chsh_myuser_to_restricted_shell/chsh.test create mode 100644 tests/tests/chsh/08_chsh_myuser_to_restricted_shell/config.txt create mode 100644 tests/tests/chsh/08_chsh_myuser_to_restricted_shell/config/etc/group create mode 100644 tests/tests/chsh/08_chsh_myuser_to_restricted_shell/config/etc/gshadow create mode 100644 tests/tests/chsh/08_chsh_myuser_to_restricted_shell/config/etc/passwd create mode 100644 tests/tests/chsh/08_chsh_myuser_to_restricted_shell/config/etc/shadow create mode 100644 tests/tests/chsh/08_chsh_myuser_to_restricted_shell/config/etc/shells create mode 100644 tests/tests/chsh/08_chsh_myuser_to_restricted_shell/data/passwd create mode 100755 tests/tests/chsh/08_chsh_myuser_to_restricted_shell/run.exp create mode 100755 tests/tests/chsh/09_chsh_myuser_to_missing_shell/chsh.test create mode 100644 tests/tests/chsh/09_chsh_myuser_to_missing_shell/config.txt create mode 100644 tests/tests/chsh/09_chsh_myuser_to_missing_shell/config/etc/group create mode 100644 tests/tests/chsh/09_chsh_myuser_to_missing_shell/config/etc/gshadow create mode 100644 tests/tests/chsh/09_chsh_myuser_to_missing_shell/config/etc/passwd create mode 100644 tests/tests/chsh/09_chsh_myuser_to_missing_shell/config/etc/shadow create mode 100644 tests/tests/chsh/09_chsh_myuser_to_missing_shell/config/etc/shells create mode 100644 tests/tests/chsh/09_chsh_myuser_to_missing_shell/data/passwd create mode 100755 tests/tests/chsh/09_chsh_myuser_to_missing_shell/run.exp create mode 100755 tests/tests/chsh/10_chsh_myuser_to_non_executable_shell/chsh.test create mode 100644 tests/tests/chsh/10_chsh_myuser_to_non_executable_shell/config.txt create mode 100644 tests/tests/chsh/10_chsh_myuser_to_non_executable_shell/config/etc/group create mode 100644 tests/tests/chsh/10_chsh_myuser_to_non_executable_shell/config/etc/gshadow create mode 100644 tests/tests/chsh/10_chsh_myuser_to_non_executable_shell/config/etc/passwd create mode 100644 tests/tests/chsh/10_chsh_myuser_to_non_executable_shell/config/etc/shadow create mode 100644 tests/tests/chsh/10_chsh_myuser_to_non_executable_shell/config/etc/shells create mode 100644 tests/tests/chsh/10_chsh_myuser_to_non_executable_shell/data/passwd create mode 100755 tests/tests/chsh/10_chsh_myuser_to_non_executable_shell/run.exp create mode 100755 tests/tests/chsh/11_chsh_auth_failure/chsh.test create mode 100644 tests/tests/chsh/11_chsh_auth_failure/config.txt create mode 100644 tests/tests/chsh/11_chsh_auth_failure/config/etc/group create mode 100644 tests/tests/chsh/11_chsh_auth_failure/config/etc/gshadow create mode 100644 tests/tests/chsh/11_chsh_auth_failure/config/etc/passwd create mode 100644 tests/tests/chsh/11_chsh_auth_failure/config/etc/shadow create mode 100644 tests/tests/chsh/11_chsh_auth_failure/config/etc/shells create mode 100644 tests/tests/chsh/11_chsh_auth_failure/data/passwd create mode 100755 tests/tests/chsh/11_chsh_auth_failure/run.exp create mode 100755 tests/tests/chsh/12_chsh_warning_missing_shell/chsh.test create mode 100644 tests/tests/chsh/12_chsh_warning_missing_shell/config.txt create mode 100644 tests/tests/chsh/12_chsh_warning_missing_shell/config/etc/group create mode 100644 tests/tests/chsh/12_chsh_warning_missing_shell/config/etc/gshadow create mode 100644 tests/tests/chsh/12_chsh_warning_missing_shell/config/etc/pam.d/chsh create mode 100644 tests/tests/chsh/12_chsh_warning_missing_shell/config/etc/passwd create mode 100644 tests/tests/chsh/12_chsh_warning_missing_shell/config/etc/shadow create mode 100644 tests/tests/chsh/12_chsh_warning_missing_shell/config/etc/shells create mode 100644 tests/tests/chsh/12_chsh_warning_missing_shell/data/chsh.err create mode 100644 tests/tests/chsh/12_chsh_warning_missing_shell/data/passwd create mode 100755 tests/tests/chsh/13_chsh_warning_non_executable/chsh.test create mode 100644 tests/tests/chsh/13_chsh_warning_non_executable/config.txt create mode 100644 tests/tests/chsh/13_chsh_warning_non_executable/config/etc/group create mode 100644 tests/tests/chsh/13_chsh_warning_non_executable/config/etc/gshadow create mode 100644 tests/tests/chsh/13_chsh_warning_non_executable/config/etc/pam.d/chsh create mode 100644 tests/tests/chsh/13_chsh_warning_non_executable/config/etc/passwd create mode 100644 tests/tests/chsh/13_chsh_warning_non_executable/config/etc/shadow create mode 100644 tests/tests/chsh/13_chsh_warning_non_executable/config/etc/shells create mode 100644 tests/tests/chsh/13_chsh_warning_non_executable/data/chsh.err create mode 100644 tests/tests/chsh/13_chsh_warning_non_executable/data/passwd create mode 100755 tests/tests/chsh/14_chsh_locked_passwd/chsh.test create mode 100644 tests/tests/chsh/14_chsh_locked_passwd/config.txt create mode 100644 tests/tests/chsh/14_chsh_locked_passwd/config/etc/group create mode 100644 tests/tests/chsh/14_chsh_locked_passwd/config/etc/gshadow create mode 100644 tests/tests/chsh/14_chsh_locked_passwd/config/etc/passwd create mode 100644 tests/tests/chsh/14_chsh_locked_passwd/config/etc/shadow create mode 100644 tests/tests/chsh/14_chsh_locked_passwd/data/chsh.err create mode 100755 tests/tests/chsh/15_chsh_PAM_error/chsh.test create mode 100644 tests/tests/chsh/15_chsh_PAM_error/config.txt create mode 100644 tests/tests/chsh/15_chsh_PAM_error/config/etc/group create mode 100644 tests/tests/chsh/15_chsh_PAM_error/config/etc/gshadow create mode 100644 tests/tests/chsh/15_chsh_PAM_error/config/etc/pam.d/chsh create mode 100644 tests/tests/chsh/15_chsh_PAM_error/config/etc/pam.d/other create mode 100644 tests/tests/chsh/15_chsh_PAM_error/config/etc/passwd create mode 100644 tests/tests/chsh/15_chsh_PAM_error/config/etc/shadow create mode 100644 tests/tests/chsh/15_chsh_PAM_error/data/chsh.err create mode 100644 tests/tests/cktools/01/data/group create mode 100644 tests/tests/cktools/01/data/gshadow create mode 100644 tests/tests/cktools/01/data/passwd create mode 100644 tests/tests/cktools/01/data/run2.err create mode 100644 tests/tests/cktools/01/data/run2.out create mode 100644 tests/tests/cktools/01/data/shadow create mode 100755 tests/tests/cktools/01/run1 create mode 100755 tests/tests/cktools/01/run2 create mode 100644 tests/tests/cktools/02_pwck_sort/config.txt create mode 100644 tests/tests/cktools/02_pwck_sort/config/etc/group create mode 100644 tests/tests/cktools/02_pwck_sort/config/etc/gshadow create mode 100644 tests/tests/cktools/02_pwck_sort/config/etc/passwd create mode 100644 tests/tests/cktools/02_pwck_sort/config/etc/shadow create mode 100644 tests/tests/cktools/02_pwck_sort/data/passwd create mode 100644 tests/tests/cktools/02_pwck_sort/data/shadow create mode 100755 tests/tests/cktools/02_pwck_sort/pwck.test create mode 100644 tests/tests/cktools/03_grpck_sort/config.txt create mode 100644 tests/tests/cktools/03_grpck_sort/config/etc/group create mode 100644 tests/tests/cktools/03_grpck_sort/config/etc/gshadow create mode 100644 tests/tests/cktools/03_grpck_sort/config/etc/passwd create mode 100644 tests/tests/cktools/03_grpck_sort/config/etc/shadow create mode 100644 tests/tests/cktools/03_grpck_sort/data/group create mode 100644 tests/tests/cktools/03_grpck_sort/data/gshadow create mode 100755 tests/tests/cktools/03_grpck_sort/grpck.test create mode 100644 tests/tests/cktools/04_pwck_sort_missing_shadow_user/config.txt create mode 100644 tests/tests/cktools/04_pwck_sort_missing_shadow_user/config/etc/group create mode 100644 tests/tests/cktools/04_pwck_sort_missing_shadow_user/config/etc/gshadow create mode 100644 tests/tests/cktools/04_pwck_sort_missing_shadow_user/config/etc/passwd create mode 100644 tests/tests/cktools/04_pwck_sort_missing_shadow_user/config/etc/shadow create mode 100644 tests/tests/cktools/04_pwck_sort_missing_shadow_user/data/passwd create mode 100644 tests/tests/cktools/04_pwck_sort_missing_shadow_user/data/shadow create mode 100755 tests/tests/cktools/04_pwck_sort_missing_shadow_user/pwck.test create mode 100644 tests/tests/cktools/05_grpck_sort_missing_shadow_group/config.txt create mode 100644 tests/tests/cktools/05_grpck_sort_missing_shadow_group/config/etc/group create mode 100644 tests/tests/cktools/05_grpck_sort_missing_shadow_group/config/etc/gshadow create mode 100644 tests/tests/cktools/05_grpck_sort_missing_shadow_group/config/etc/passwd create mode 100644 tests/tests/cktools/05_grpck_sort_missing_shadow_group/config/etc/shadow create mode 100644 tests/tests/cktools/05_grpck_sort_missing_shadow_group/data/group create mode 100644 tests/tests/cktools/05_grpck_sort_missing_shadow_group/data/gshadow create mode 100755 tests/tests/cktools/05_grpck_sort_missing_shadow_group/grpck.test create mode 100644 tests/tests/cktools/06_pwck_sort_NIS_server/config.txt create mode 100644 tests/tests/cktools/06_pwck_sort_NIS_server/config/etc/group create mode 100644 tests/tests/cktools/06_pwck_sort_NIS_server/config/etc/gshadow create mode 100644 tests/tests/cktools/06_pwck_sort_NIS_server/config/etc/passwd create mode 100644 tests/tests/cktools/06_pwck_sort_NIS_server/config/etc/shadow create mode 100644 tests/tests/cktools/06_pwck_sort_NIS_server/data/passwd create mode 100644 tests/tests/cktools/06_pwck_sort_NIS_server/data/shadow create mode 100755 tests/tests/cktools/06_pwck_sort_NIS_server/pwck.test create mode 100644 tests/tests/cktools/07_pwck_sort_NIS_client/config.txt create mode 100644 tests/tests/cktools/07_pwck_sort_NIS_client/config/etc/group create mode 100644 tests/tests/cktools/07_pwck_sort_NIS_client/config/etc/gshadow create mode 100644 tests/tests/cktools/07_pwck_sort_NIS_client/config/etc/passwd create mode 100644 tests/tests/cktools/07_pwck_sort_NIS_client/config/etc/shadow create mode 100644 tests/tests/cktools/07_pwck_sort_NIS_client/data/passwd create mode 100644 tests/tests/cktools/07_pwck_sort_NIS_client/data/shadow create mode 100755 tests/tests/cktools/07_pwck_sort_NIS_client/pwck.test create mode 100644 tests/tests/cktools/grpck/04_grpck_missing_field_group_delete/config.txt create mode 100644 tests/tests/cktools/grpck/04_grpck_missing_field_group_delete/config/etc/group create mode 100644 tests/tests/cktools/grpck/04_grpck_missing_field_group_delete/config/etc/gshadow create mode 100644 tests/tests/cktools/grpck/04_grpck_missing_field_group_delete/config/etc/passwd create mode 100644 tests/tests/cktools/grpck/04_grpck_missing_field_group_delete/config/etc/shadow create mode 100644 tests/tests/cktools/grpck/04_grpck_missing_field_group_delete/data/group create mode 100644 tests/tests/cktools/grpck/04_grpck_missing_field_group_delete/data/gshadow create mode 100755 tests/tests/cktools/grpck/04_grpck_missing_field_group_delete/grpck.exp create mode 100755 tests/tests/cktools/grpck/04_grpck_missing_field_group_delete/grpck.test create mode 100644 tests/tests/cktools/grpck/05_grpck_missing_field_group_keep/config.txt create mode 100644 tests/tests/cktools/grpck/05_grpck_missing_field_group_keep/config/etc/group create mode 100644 tests/tests/cktools/grpck/05_grpck_missing_field_group_keep/config/etc/gshadow create mode 100644 tests/tests/cktools/grpck/05_grpck_missing_field_group_keep/config/etc/passwd create mode 100644 tests/tests/cktools/grpck/05_grpck_missing_field_group_keep/config/etc/shadow create mode 100644 tests/tests/cktools/grpck/05_grpck_missing_field_group_keep/data/gshadow create mode 100755 tests/tests/cktools/grpck/05_grpck_missing_field_group_keep/grpck.exp create mode 100755 tests/tests/cktools/grpck/05_grpck_missing_field_group_keep/grpck.test create mode 100644 tests/tests/cktools/grpck/06_grpck_missing_field_group_no_changes/config.txt create mode 100644 tests/tests/cktools/grpck/06_grpck_missing_field_group_no_changes/config/etc/group create mode 100644 tests/tests/cktools/grpck/06_grpck_missing_field_group_no_changes/config/etc/gshadow create mode 100644 tests/tests/cktools/grpck/06_grpck_missing_field_group_no_changes/config/etc/passwd create mode 100644 tests/tests/cktools/grpck/06_grpck_missing_field_group_no_changes/config/etc/shadow create mode 100755 tests/tests/cktools/grpck/06_grpck_missing_field_group_no_changes/grpck.exp create mode 100755 tests/tests/cktools/grpck/06_grpck_missing_field_group_no_changes/grpck.test create mode 100644 tests/tests/cktools/grpck/07_grpck_missing_field_gshadow_add/config.txt create mode 100644 tests/tests/cktools/grpck/07_grpck_missing_field_gshadow_add/config/etc/group create mode 100644 tests/tests/cktools/grpck/07_grpck_missing_field_gshadow_add/config/etc/gshadow create mode 100644 tests/tests/cktools/grpck/07_grpck_missing_field_gshadow_add/config/etc/passwd create mode 100644 tests/tests/cktools/grpck/07_grpck_missing_field_gshadow_add/config/etc/shadow create mode 100644 tests/tests/cktools/grpck/07_grpck_missing_field_gshadow_add/data/gshadow create mode 100755 tests/tests/cktools/grpck/07_grpck_missing_field_gshadow_add/grpck.exp create mode 100755 tests/tests/cktools/grpck/07_grpck_missing_field_gshadow_add/grpck.test create mode 100644 tests/tests/cktools/grpck/08_grpck_missing_field_gshadow_delete/config.txt create mode 100644 tests/tests/cktools/grpck/08_grpck_missing_field_gshadow_delete/config/etc/group create mode 100644 tests/tests/cktools/grpck/08_grpck_missing_field_gshadow_delete/config/etc/gshadow create mode 100644 tests/tests/cktools/grpck/08_grpck_missing_field_gshadow_delete/config/etc/passwd create mode 100644 tests/tests/cktools/grpck/08_grpck_missing_field_gshadow_delete/config/etc/shadow create mode 100644 tests/tests/cktools/grpck/08_grpck_missing_field_gshadow_delete/data/gshadow create mode 100755 tests/tests/cktools/grpck/08_grpck_missing_field_gshadow_delete/grpck.exp create mode 100755 tests/tests/cktools/grpck/08_grpck_missing_field_gshadow_delete/grpck.test create mode 100644 tests/tests/cktools/grpck/09_grpck_missing_field_gshadow_no_changes/config.txt create mode 100644 tests/tests/cktools/grpck/09_grpck_missing_field_gshadow_no_changes/config/etc/group create mode 100644 tests/tests/cktools/grpck/09_grpck_missing_field_gshadow_no_changes/config/etc/gshadow create mode 100644 tests/tests/cktools/grpck/09_grpck_missing_field_gshadow_no_changes/config/etc/passwd create mode 100644 tests/tests/cktools/grpck/09_grpck_missing_field_gshadow_no_changes/config/etc/shadow create mode 100755 tests/tests/cktools/grpck/09_grpck_missing_field_gshadow_no_changes/grpck.exp create mode 100755 tests/tests/cktools/grpck/09_grpck_missing_field_gshadow_no_changes/grpck.test create mode 100644 tests/tests/cktools/grpck/10_grpck_missing_field_group_local/config.txt create mode 100644 tests/tests/cktools/grpck/10_grpck_missing_field_group_local/config/etc/group create mode 100644 tests/tests/cktools/grpck/10_grpck_missing_field_group_local/config/etc/gshadow create mode 100644 tests/tests/cktools/grpck/10_grpck_missing_field_group_local/config/etc/passwd create mode 100644 tests/tests/cktools/grpck/10_grpck_missing_field_group_local/config/etc/shadow create mode 100644 tests/tests/cktools/grpck/10_grpck_missing_field_group_local/data/group create mode 100644 tests/tests/cktools/grpck/10_grpck_missing_field_group_local/data/gshadow create mode 100755 tests/tests/cktools/grpck/10_grpck_missing_field_group_local/grpck.exp create mode 100755 tests/tests/cktools/grpck/10_grpck_missing_field_group_local/grpck.test create mode 100644 tests/tests/cktools/grpck/11_grpck_missing_field_gshadow_local/config.txt create mode 100644 tests/tests/cktools/grpck/11_grpck_missing_field_gshadow_local/config/etc/group create mode 100644 tests/tests/cktools/grpck/11_grpck_missing_field_gshadow_local/config/etc/gshadow create mode 100644 tests/tests/cktools/grpck/11_grpck_missing_field_gshadow_local/config/etc/passwd create mode 100644 tests/tests/cktools/grpck/11_grpck_missing_field_gshadow_local/config/etc/shadow create mode 100644 tests/tests/cktools/grpck/11_grpck_missing_field_gshadow_local/data/group create mode 100644 tests/tests/cktools/grpck/11_grpck_missing_field_gshadow_local/data/gshadow create mode 100644 tests/tests/cktools/grpck/11_grpck_missing_field_gshadow_local/data/shadow create mode 100755 tests/tests/cktools/grpck/11_grpck_missing_field_gshadow_local/grpck.exp create mode 100755 tests/tests/cktools/grpck/11_grpck_missing_field_gshadow_local/grpck.test create mode 100644 tests/tests/cktools/grpck/12_grpck_unknown_user_group/config.txt create mode 100644 tests/tests/cktools/grpck/12_grpck_unknown_user_group/config/etc/group create mode 100644 tests/tests/cktools/grpck/12_grpck_unknown_user_group/config/etc/gshadow create mode 100644 tests/tests/cktools/grpck/12_grpck_unknown_user_group/config/etc/passwd create mode 100644 tests/tests/cktools/grpck/12_grpck_unknown_user_group/config/etc/shadow create mode 100644 tests/tests/cktools/grpck/12_grpck_unknown_user_group/data/group create mode 100755 tests/tests/cktools/grpck/12_grpck_unknown_user_group/grpck.exp create mode 100755 tests/tests/cktools/grpck/12_grpck_unknown_user_group/grpck.test create mode 100644 tests/tests/cktools/grpck/13_grpck_unknown_user_gshadow/config.txt create mode 100644 tests/tests/cktools/grpck/13_grpck_unknown_user_gshadow/config/etc/group create mode 100644 tests/tests/cktools/grpck/13_grpck_unknown_user_gshadow/config/etc/gshadow create mode 100644 tests/tests/cktools/grpck/13_grpck_unknown_user_gshadow/config/etc/passwd create mode 100644 tests/tests/cktools/grpck/13_grpck_unknown_user_gshadow/config/etc/shadow create mode 100644 tests/tests/cktools/grpck/13_grpck_unknown_user_gshadow/data/gshadow create mode 100755 tests/tests/cktools/grpck/13_grpck_unknown_user_gshadow/grpck.exp create mode 100755 tests/tests/cktools/grpck/13_grpck_unknown_user_gshadow/grpck.test create mode 100644 tests/tests/cktools/grpck/14_grpck_unknown_user_adm_gshadow/config.txt create mode 100644 tests/tests/cktools/grpck/14_grpck_unknown_user_adm_gshadow/config/etc/group create mode 100644 tests/tests/cktools/grpck/14_grpck_unknown_user_adm_gshadow/config/etc/gshadow create mode 100644 tests/tests/cktools/grpck/14_grpck_unknown_user_adm_gshadow/config/etc/passwd create mode 100644 tests/tests/cktools/grpck/14_grpck_unknown_user_adm_gshadow/config/etc/shadow create mode 100644 tests/tests/cktools/grpck/14_grpck_unknown_user_adm_gshadow/data/gshadow create mode 100755 tests/tests/cktools/grpck/14_grpck_unknown_user_adm_gshadow/grpck.exp create mode 100755 tests/tests/cktools/grpck/14_grpck_unknown_user_adm_gshadow/grpck.test create mode 100644 tests/tests/cktools/grpck/15_grpck_unknown_user_duplicate_group/config.txt create mode 100644 tests/tests/cktools/grpck/15_grpck_unknown_user_duplicate_group/config/etc/group create mode 100644 tests/tests/cktools/grpck/15_grpck_unknown_user_duplicate_group/config/etc/gshadow create mode 100644 tests/tests/cktools/grpck/15_grpck_unknown_user_duplicate_group/config/etc/passwd create mode 100644 tests/tests/cktools/grpck/15_grpck_unknown_user_duplicate_group/config/etc/shadow create mode 100644 tests/tests/cktools/grpck/15_grpck_unknown_user_duplicate_group/data/group create mode 100755 tests/tests/cktools/grpck/15_grpck_unknown_user_duplicate_group/grpck.exp create mode 100755 tests/tests/cktools/grpck/15_grpck_unknown_user_duplicate_group/grpck.test create mode 100644 tests/tests/cktools/grpck/16_grpck_duplicate_entry_group/config.txt create mode 100644 tests/tests/cktools/grpck/16_grpck_duplicate_entry_group/config/etc/group create mode 100644 tests/tests/cktools/grpck/16_grpck_duplicate_entry_group/config/etc/gshadow create mode 100644 tests/tests/cktools/grpck/16_grpck_duplicate_entry_group/config/etc/passwd create mode 100644 tests/tests/cktools/grpck/16_grpck_duplicate_entry_group/config/etc/shadow create mode 100644 tests/tests/cktools/grpck/16_grpck_duplicate_entry_group/data/group create mode 100755 tests/tests/cktools/grpck/16_grpck_duplicate_entry_group/grpck.exp create mode 100755 tests/tests/cktools/grpck/16_grpck_duplicate_entry_group/grpck.test create mode 100644 tests/tests/cktools/grpck/17_grpck_duplicate_entry_gshadow/config.txt create mode 100644 tests/tests/cktools/grpck/17_grpck_duplicate_entry_gshadow/config/etc/group create mode 100644 tests/tests/cktools/grpck/17_grpck_duplicate_entry_gshadow/config/etc/gshadow create mode 100644 tests/tests/cktools/grpck/17_grpck_duplicate_entry_gshadow/config/etc/passwd create mode 100644 tests/tests/cktools/grpck/17_grpck_duplicate_entry_gshadow/config/etc/shadow create mode 100644 tests/tests/cktools/grpck/17_grpck_duplicate_entry_gshadow/data/gshadow create mode 100755 tests/tests/cktools/grpck/17_grpck_duplicate_entry_gshadow/grpck.exp create mode 100755 tests/tests/cktools/grpck/17_grpck_duplicate_entry_gshadow/grpck.test create mode 100644 tests/tests/cktools/grpck/18_grpck_duplicate_entry_group_no_changes/config.txt create mode 100644 tests/tests/cktools/grpck/18_grpck_duplicate_entry_group_no_changes/config/etc/group create mode 100644 tests/tests/cktools/grpck/18_grpck_duplicate_entry_group_no_changes/config/etc/gshadow create mode 100644 tests/tests/cktools/grpck/18_grpck_duplicate_entry_group_no_changes/config/etc/passwd create mode 100644 tests/tests/cktools/grpck/18_grpck_duplicate_entry_group_no_changes/config/etc/shadow create mode 100755 tests/tests/cktools/grpck/18_grpck_duplicate_entry_group_no_changes/grpck.exp create mode 100755 tests/tests/cktools/grpck/18_grpck_duplicate_entry_group_no_changes/grpck.test create mode 100644 tests/tests/cktools/grpck/19_grpck_duplicate_entry_gshadow_no_changes/config.txt create mode 100644 tests/tests/cktools/grpck/19_grpck_duplicate_entry_gshadow_no_changes/config/etc/group create mode 100644 tests/tests/cktools/grpck/19_grpck_duplicate_entry_gshadow_no_changes/config/etc/gshadow create mode 100644 tests/tests/cktools/grpck/19_grpck_duplicate_entry_gshadow_no_changes/config/etc/passwd create mode 100644 tests/tests/cktools/grpck/19_grpck_duplicate_entry_gshadow_no_changes/config/etc/shadow create mode 100755 tests/tests/cktools/grpck/19_grpck_duplicate_entry_gshadow_no_changes/grpck.exp create mode 100755 tests/tests/cktools/grpck/19_grpck_duplicate_entry_gshadow_no_changes/grpck.test create mode 100644 tests/tests/cktools/grpck/20_grpck_duplicate_entry_gshadow_delete_second/config.txt create mode 100644 tests/tests/cktools/grpck/20_grpck_duplicate_entry_gshadow_delete_second/config/etc/group create mode 100644 tests/tests/cktools/grpck/20_grpck_duplicate_entry_gshadow_delete_second/config/etc/gshadow create mode 100644 tests/tests/cktools/grpck/20_grpck_duplicate_entry_gshadow_delete_second/config/etc/passwd create mode 100644 tests/tests/cktools/grpck/20_grpck_duplicate_entry_gshadow_delete_second/config/etc/shadow create mode 100644 tests/tests/cktools/grpck/20_grpck_duplicate_entry_gshadow_delete_second/data/gshadow create mode 100755 tests/tests/cktools/grpck/20_grpck_duplicate_entry_gshadow_delete_second/grpck.exp create mode 100755 tests/tests/cktools/grpck/20_grpck_duplicate_entry_gshadow_delete_second/grpck.test create mode 100644 tests/tests/cktools/grpck/21_grpck_invalid_group_name/config.txt create mode 100644 tests/tests/cktools/grpck/21_grpck_invalid_group_name/config/etc/group create mode 100644 tests/tests/cktools/grpck/21_grpck_invalid_group_name/config/etc/gshadow create mode 100644 tests/tests/cktools/grpck/21_grpck_invalid_group_name/config/etc/passwd create mode 100644 tests/tests/cktools/grpck/21_grpck_invalid_group_name/config/etc/shadow create mode 100755 tests/tests/cktools/grpck/21_grpck_invalid_group_name/grpck.exp create mode 100755 tests/tests/cktools/grpck/21_grpck_invalid_group_name/grpck.test create mode 100644 tests/tests/cktools/grpck/22_grpck_invalid_group_ID_-1/config.txt create mode 100644 tests/tests/cktools/grpck/22_grpck_invalid_group_ID_-1/config/etc/group create mode 100644 tests/tests/cktools/grpck/22_grpck_invalid_group_ID_-1/config/etc/gshadow create mode 100644 tests/tests/cktools/grpck/22_grpck_invalid_group_ID_-1/config/etc/passwd create mode 100644 tests/tests/cktools/grpck/22_grpck_invalid_group_ID_-1/config/etc/shadow create mode 100644 tests/tests/cktools/grpck/22_grpck_invalid_group_ID_-1/data/group create mode 100644 tests/tests/cktools/grpck/22_grpck_invalid_group_ID_-1/data/gshadow create mode 100755 tests/tests/cktools/grpck/22_grpck_invalid_group_ID_-1/grpck.exp create mode 100755 tests/tests/cktools/grpck/22_grpck_invalid_group_ID_-1/grpck.test create mode 100644 tests/tests/cktools/grpck/23_grpck_invalid_group_ID_4294967295/config.txt create mode 100644 tests/tests/cktools/grpck/23_grpck_invalid_group_ID_4294967295/config/etc/group create mode 100644 tests/tests/cktools/grpck/23_grpck_invalid_group_ID_4294967295/config/etc/gshadow create mode 100644 tests/tests/cktools/grpck/23_grpck_invalid_group_ID_4294967295/config/etc/passwd create mode 100644 tests/tests/cktools/grpck/23_grpck_invalid_group_ID_4294967295/config/etc/shadow create mode 100755 tests/tests/cktools/grpck/23_grpck_invalid_group_ID_4294967295/grpck.exp create mode 100755 tests/tests/cktools/grpck/23_grpck_invalid_group_ID_4294967295/grpck.test create mode 100644 tests/tests/cktools/grpck/24_grpck_invalid_group_ID_4294967296/config.txt create mode 100644 tests/tests/cktools/grpck/24_grpck_invalid_group_ID_4294967296/config/etc/group create mode 100644 tests/tests/cktools/grpck/24_grpck_invalid_group_ID_4294967296/config/etc/gshadow create mode 100644 tests/tests/cktools/grpck/24_grpck_invalid_group_ID_4294967296/config/etc/passwd create mode 100644 tests/tests/cktools/grpck/24_grpck_invalid_group_ID_4294967296/config/etc/shadow create mode 100644 tests/tests/cktools/grpck/24_grpck_invalid_group_ID_4294967296/data/group create mode 100644 tests/tests/cktools/grpck/24_grpck_invalid_group_ID_4294967296/data/gshadow create mode 100755 tests/tests/cktools/grpck/24_grpck_invalid_group_ID_4294967296/grpck.exp create mode 100755 tests/tests/cktools/grpck/24_grpck_invalid_group_ID_4294967296/grpck.test create mode 100644 tests/tests/cktools/grpck/25_grpck_unknown_user_group_no_changes/config.txt create mode 100644 tests/tests/cktools/grpck/25_grpck_unknown_user_group_no_changes/config/etc/group create mode 100644 tests/tests/cktools/grpck/25_grpck_unknown_user_group_no_changes/config/etc/gshadow create mode 100644 tests/tests/cktools/grpck/25_grpck_unknown_user_group_no_changes/config/etc/passwd create mode 100644 tests/tests/cktools/grpck/25_grpck_unknown_user_group_no_changes/config/etc/shadow create mode 100755 tests/tests/cktools/grpck/25_grpck_unknown_user_group_no_changes/grpck.exp create mode 100755 tests/tests/cktools/grpck/25_grpck_unknown_user_group_no_changes/grpck.test create mode 100644 tests/tests/cktools/grpck/26_grpck_no_gshadow_file/config.txt create mode 100644 tests/tests/cktools/grpck/26_grpck_no_gshadow_file/config/etc/group create mode 100644 tests/tests/cktools/grpck/26_grpck_no_gshadow_file/config/etc/gshadow create mode 100644 tests/tests/cktools/grpck/26_grpck_no_gshadow_file/config/etc/passwd create mode 100644 tests/tests/cktools/grpck/26_grpck_no_gshadow_file/config/etc/shadow create mode 100644 tests/tests/cktools/grpck/26_grpck_no_gshadow_file/data/grpck.out create mode 100755 tests/tests/cktools/grpck/26_grpck_no_gshadow_file/grpck.test create mode 100644 tests/tests/cktools/grpck/27_grpck_sort_no_gshadow_file/config.txt create mode 100644 tests/tests/cktools/grpck/27_grpck_sort_no_gshadow_file/config/etc/group create mode 100644 tests/tests/cktools/grpck/27_grpck_sort_no_gshadow_file/config/etc/gshadow create mode 100644 tests/tests/cktools/grpck/27_grpck_sort_no_gshadow_file/config/etc/passwd create mode 100644 tests/tests/cktools/grpck/27_grpck_sort_no_gshadow_file/config/etc/shadow create mode 100644 tests/tests/cktools/grpck/27_grpck_sort_no_gshadow_file/data/group create mode 100755 tests/tests/cktools/grpck/27_grpck_sort_no_gshadow_file/grpck.test create mode 100644 tests/tests/cktools/grpck/28_grpck_usage/config.txt create mode 100644 tests/tests/cktools/grpck/28_grpck_usage/config/etc/default/useradd create mode 100644 tests/tests/cktools/grpck/28_grpck_usage/config/etc/group create mode 100644 tests/tests/cktools/grpck/28_grpck_usage/config/etc/gshadow create mode 100644 tests/tests/cktools/grpck/28_grpck_usage/config/etc/passwd create mode 100644 tests/tests/cktools/grpck/28_grpck_usage/config/etc/shadow create mode 100644 tests/tests/cktools/grpck/28_grpck_usage/data/usage.out create mode 100755 tests/tests/cktools/grpck/28_grpck_usage/grpck.test create mode 100644 tests/tests/cktools/grpck/29_grpck_sort_readonly/config.txt create mode 100644 tests/tests/cktools/grpck/29_grpck_sort_readonly/config/etc/default/useradd create mode 100644 tests/tests/cktools/grpck/29_grpck_sort_readonly/config/etc/group create mode 100644 tests/tests/cktools/grpck/29_grpck_sort_readonly/config/etc/gshadow create mode 100644 tests/tests/cktools/grpck/29_grpck_sort_readonly/config/etc/passwd create mode 100644 tests/tests/cktools/grpck/29_grpck_sort_readonly/config/etc/shadow create mode 100644 tests/tests/cktools/grpck/29_grpck_sort_readonly/data/usage.out create mode 100755 tests/tests/cktools/grpck/29_grpck_sort_readonly/grpck.test create mode 100644 tests/tests/cktools/grpck/30_grpck_3_files/config.txt create mode 100644 tests/tests/cktools/grpck/30_grpck_3_files/config/etc/default/useradd create mode 100644 tests/tests/cktools/grpck/30_grpck_3_files/config/etc/group create mode 100644 tests/tests/cktools/grpck/30_grpck_3_files/config/etc/gshadow create mode 100644 tests/tests/cktools/grpck/30_grpck_3_files/config/etc/passwd create mode 100644 tests/tests/cktools/grpck/30_grpck_3_files/config/etc/shadow create mode 100644 tests/tests/cktools/grpck/30_grpck_3_files/data/usage.out create mode 100755 tests/tests/cktools/grpck/30_grpck_3_files/grpck.test create mode 100644 tests/tests/cktools/grpck/31_grpck_missing_field_group_local_no_gshadow/config.txt create mode 100644 tests/tests/cktools/grpck/31_grpck_missing_field_group_local_no_gshadow/config/etc/group create mode 100644 tests/tests/cktools/grpck/31_grpck_missing_field_group_local_no_gshadow/config/etc/gshadow create mode 100644 tests/tests/cktools/grpck/31_grpck_missing_field_group_local_no_gshadow/config/etc/passwd create mode 100644 tests/tests/cktools/grpck/31_grpck_missing_field_group_local_no_gshadow/config/etc/shadow create mode 100644 tests/tests/cktools/grpck/31_grpck_missing_field_group_local_no_gshadow/data/group create mode 100755 tests/tests/cktools/grpck/31_grpck_missing_field_group_local_no_gshadow/grpck.exp create mode 100755 tests/tests/cktools/grpck/31_grpck_missing_field_group_local_no_gshadow/grpck.test create mode 100644 tests/tests/cktools/grpck/32_grpck_sort_nis/config.txt create mode 100644 tests/tests/cktools/grpck/32_grpck_sort_nis/config/etc/group create mode 100644 tests/tests/cktools/grpck/32_grpck_sort_nis/config/etc/gshadow create mode 100644 tests/tests/cktools/grpck/32_grpck_sort_nis/config/etc/passwd create mode 100644 tests/tests/cktools/grpck/32_grpck_sort_nis/config/etc/shadow create mode 100644 tests/tests/cktools/grpck/32_grpck_sort_nis/data/group create mode 100644 tests/tests/cktools/grpck/32_grpck_sort_nis/data/gshadow create mode 100755 tests/tests/cktools/grpck/32_grpck_sort_nis/grpck.test create mode 100644 tests/tests/cktools/grpck/33_grpck_locked_group/config.txt create mode 100644 tests/tests/cktools/grpck/33_grpck_locked_group/config/etc/default/useradd create mode 100644 tests/tests/cktools/grpck/33_grpck_locked_group/config/etc/group create mode 100644 tests/tests/cktools/grpck/33_grpck_locked_group/config/etc/gshadow create mode 100644 tests/tests/cktools/grpck/33_grpck_locked_group/config/etc/passwd create mode 100644 tests/tests/cktools/grpck/33_grpck_locked_group/config/etc/shadow create mode 100644 tests/tests/cktools/grpck/33_grpck_locked_group/data/grpck.err create mode 100755 tests/tests/cktools/grpck/33_grpck_locked_group/grpck.test create mode 100644 tests/tests/cktools/grpck/34_grpck_locked_gshadow/config.txt create mode 100644 tests/tests/cktools/grpck/34_grpck_locked_gshadow/config/etc/default/useradd create mode 100644 tests/tests/cktools/grpck/34_grpck_locked_gshadow/config/etc/group create mode 100644 tests/tests/cktools/grpck/34_grpck_locked_gshadow/config/etc/gshadow create mode 100644 tests/tests/cktools/grpck/34_grpck_locked_gshadow/config/etc/passwd create mode 100644 tests/tests/cktools/grpck/34_grpck_locked_gshadow/config/etc/shadow create mode 100644 tests/tests/cktools/grpck/34_grpck_locked_gshadow/data/grpck.err create mode 100755 tests/tests/cktools/grpck/34_grpck_locked_gshadow/grpck.test create mode 100644 tests/tests/cktools/grpck/35_grpck_duplicate_entry_group_NIS/config.txt create mode 100644 tests/tests/cktools/grpck/35_grpck_duplicate_entry_group_NIS/config/etc/group create mode 100644 tests/tests/cktools/grpck/35_grpck_duplicate_entry_group_NIS/config/etc/gshadow create mode 100644 tests/tests/cktools/grpck/35_grpck_duplicate_entry_group_NIS/config/etc/passwd create mode 100644 tests/tests/cktools/grpck/35_grpck_duplicate_entry_group_NIS/config/etc/shadow create mode 100644 tests/tests/cktools/grpck/35_grpck_duplicate_entry_group_NIS/data/group create mode 100755 tests/tests/cktools/grpck/35_grpck_duplicate_entry_group_NIS/grpck.exp create mode 100755 tests/tests/cktools/grpck/35_grpck_duplicate_entry_group_NIS/grpck.test create mode 100644 tests/tests/cktools/grpck/36_grpck_password_group_gshadow/config.txt create mode 100644 tests/tests/cktools/grpck/36_grpck_password_group_gshadow/config/etc/group create mode 100644 tests/tests/cktools/grpck/36_grpck_password_group_gshadow/config/etc/gshadow create mode 100644 tests/tests/cktools/grpck/36_grpck_password_group_gshadow/config/etc/passwd create mode 100644 tests/tests/cktools/grpck/36_grpck_password_group_gshadow/config/etc/shadow create mode 100644 tests/tests/cktools/grpck/36_grpck_password_group_gshadow/data/grpck.out create mode 100755 tests/tests/cktools/grpck/36_grpck_password_group_gshadow/grpck.test create mode 100644 tests/tests/cktools/grpck/37_grpck_invalid_option/config.txt create mode 100644 tests/tests/cktools/grpck/37_grpck_invalid_option/config/etc/group create mode 100644 tests/tests/cktools/grpck/37_grpck_invalid_option/config/etc/gshadow create mode 100644 tests/tests/cktools/grpck/37_grpck_invalid_option/config/etc/passwd create mode 100644 tests/tests/cktools/grpck/37_grpck_invalid_option/config/etc/shadow create mode 100644 tests/tests/cktools/grpck/37_grpck_invalid_option/data/usage.out create mode 100755 tests/tests/cktools/grpck/37_grpck_invalid_option/grpck.test create mode 100644 tests/tests/cktools/pwck/04_pwck_missing_field_passwd_delete/config.txt create mode 100644 tests/tests/cktools/pwck/04_pwck_missing_field_passwd_delete/config/etc/group create mode 100644 tests/tests/cktools/pwck/04_pwck_missing_field_passwd_delete/config/etc/gshadow create mode 100644 tests/tests/cktools/pwck/04_pwck_missing_field_passwd_delete/config/etc/passwd create mode 100644 tests/tests/cktools/pwck/04_pwck_missing_field_passwd_delete/config/etc/shadow create mode 100644 tests/tests/cktools/pwck/04_pwck_missing_field_passwd_delete/data/passwd create mode 100644 tests/tests/cktools/pwck/04_pwck_missing_field_passwd_delete/data/shadow create mode 100755 tests/tests/cktools/pwck/04_pwck_missing_field_passwd_delete/pwck.exp create mode 100755 tests/tests/cktools/pwck/04_pwck_missing_field_passwd_delete/pwck.test create mode 100644 tests/tests/cktools/pwck/05_pwck_missing_field_passwd_keep/config.txt create mode 100644 tests/tests/cktools/pwck/05_pwck_missing_field_passwd_keep/config/etc/group create mode 100644 tests/tests/cktools/pwck/05_pwck_missing_field_passwd_keep/config/etc/gshadow create mode 100644 tests/tests/cktools/pwck/05_pwck_missing_field_passwd_keep/config/etc/passwd create mode 100644 tests/tests/cktools/pwck/05_pwck_missing_field_passwd_keep/config/etc/shadow create mode 100644 tests/tests/cktools/pwck/05_pwck_missing_field_passwd_keep/data/shadow create mode 100755 tests/tests/cktools/pwck/05_pwck_missing_field_passwd_keep/pwck.exp create mode 100755 tests/tests/cktools/pwck/05_pwck_missing_field_passwd_keep/pwck.test create mode 100644 tests/tests/cktools/pwck/06_pwck_missing_field_passwd_no_changes/config.txt create mode 100644 tests/tests/cktools/pwck/06_pwck_missing_field_passwd_no_changes/config/etc/group create mode 100644 tests/tests/cktools/pwck/06_pwck_missing_field_passwd_no_changes/config/etc/gshadow create mode 100644 tests/tests/cktools/pwck/06_pwck_missing_field_passwd_no_changes/config/etc/passwd create mode 100644 tests/tests/cktools/pwck/06_pwck_missing_field_passwd_no_changes/config/etc/shadow create mode 100755 tests/tests/cktools/pwck/06_pwck_missing_field_passwd_no_changes/pwck.exp create mode 100755 tests/tests/cktools/pwck/06_pwck_missing_field_passwd_no_changes/pwck.test create mode 100644 tests/tests/cktools/pwck/07_pwck_missing_field_shadow_add/config.txt create mode 100644 tests/tests/cktools/pwck/07_pwck_missing_field_shadow_add/config/etc/group create mode 100644 tests/tests/cktools/pwck/07_pwck_missing_field_shadow_add/config/etc/gshadow create mode 100644 tests/tests/cktools/pwck/07_pwck_missing_field_shadow_add/config/etc/passwd create mode 100644 tests/tests/cktools/pwck/07_pwck_missing_field_shadow_add/config/etc/shadow create mode 100644 tests/tests/cktools/pwck/07_pwck_missing_field_shadow_add/data/shadow create mode 100755 tests/tests/cktools/pwck/07_pwck_missing_field_shadow_add/pwck.exp create mode 100755 tests/tests/cktools/pwck/07_pwck_missing_field_shadow_add/pwck.test create mode 100644 tests/tests/cktools/pwck/08_pwck_missing_field_shadow_delete/config.txt create mode 100644 tests/tests/cktools/pwck/08_pwck_missing_field_shadow_delete/config/etc/group create mode 100644 tests/tests/cktools/pwck/08_pwck_missing_field_shadow_delete/config/etc/gshadow create mode 100644 tests/tests/cktools/pwck/08_pwck_missing_field_shadow_delete/config/etc/passwd create mode 100644 tests/tests/cktools/pwck/08_pwck_missing_field_shadow_delete/config/etc/shadow create mode 100644 tests/tests/cktools/pwck/08_pwck_missing_field_shadow_delete/data/shadow create mode 100755 tests/tests/cktools/pwck/08_pwck_missing_field_shadow_delete/pwck.exp create mode 100755 tests/tests/cktools/pwck/08_pwck_missing_field_shadow_delete/pwck.test create mode 100644 tests/tests/cktools/pwck/09_pwck_missing_field_shadow_no_changes/config.txt create mode 100644 tests/tests/cktools/pwck/09_pwck_missing_field_shadow_no_changes/config/etc/group create mode 100644 tests/tests/cktools/pwck/09_pwck_missing_field_shadow_no_changes/config/etc/gshadow create mode 100644 tests/tests/cktools/pwck/09_pwck_missing_field_shadow_no_changes/config/etc/passwd create mode 100644 tests/tests/cktools/pwck/09_pwck_missing_field_shadow_no_changes/config/etc/shadow create mode 100755 tests/tests/cktools/pwck/09_pwck_missing_field_shadow_no_changes/pwck.exp create mode 100755 tests/tests/cktools/pwck/09_pwck_missing_field_shadow_no_changes/pwck.test create mode 100644 tests/tests/cktools/pwck/10_pwck_missing_field_passwd_local/config.txt create mode 100644 tests/tests/cktools/pwck/10_pwck_missing_field_passwd_local/config/etc/group create mode 100644 tests/tests/cktools/pwck/10_pwck_missing_field_passwd_local/config/etc/gshadow create mode 100644 tests/tests/cktools/pwck/10_pwck_missing_field_passwd_local/config/etc/passwd create mode 100644 tests/tests/cktools/pwck/10_pwck_missing_field_passwd_local/config/etc/shadow create mode 100644 tests/tests/cktools/pwck/10_pwck_missing_field_passwd_local/data/passwd create mode 100644 tests/tests/cktools/pwck/10_pwck_missing_field_passwd_local/data/shadow create mode 100755 tests/tests/cktools/pwck/10_pwck_missing_field_passwd_local/pwck.exp create mode 100755 tests/tests/cktools/pwck/10_pwck_missing_field_passwd_local/pwck.test create mode 100644 tests/tests/cktools/pwck/11_pwck_missing_field_shadow_local/config.txt create mode 100644 tests/tests/cktools/pwck/11_pwck_missing_field_shadow_local/config/etc/group create mode 100644 tests/tests/cktools/pwck/11_pwck_missing_field_shadow_local/config/etc/gshadow create mode 100644 tests/tests/cktools/pwck/11_pwck_missing_field_shadow_local/config/etc/passwd create mode 100644 tests/tests/cktools/pwck/11_pwck_missing_field_shadow_local/config/etc/shadow create mode 100644 tests/tests/cktools/pwck/11_pwck_missing_field_shadow_local/data/passwd create mode 100644 tests/tests/cktools/pwck/11_pwck_missing_field_shadow_local/data/shadow create mode 100755 tests/tests/cktools/pwck/11_pwck_missing_field_shadow_local/pwck.exp create mode 100755 tests/tests/cktools/pwck/11_pwck_missing_field_shadow_local/pwck.test create mode 100644 tests/tests/cktools/pwck/12_pwck_unknown_user_group_ID/config.txt create mode 100644 tests/tests/cktools/pwck/12_pwck_unknown_user_group_ID/config/etc/group create mode 100644 tests/tests/cktools/pwck/12_pwck_unknown_user_group_ID/config/etc/gshadow create mode 100644 tests/tests/cktools/pwck/12_pwck_unknown_user_group_ID/config/etc/passwd create mode 100644 tests/tests/cktools/pwck/12_pwck_unknown_user_group_ID/config/etc/shadow create mode 100755 tests/tests/cktools/pwck/12_pwck_unknown_user_group_ID/pwck.exp create mode 100755 tests/tests/cktools/pwck/12_pwck_unknown_user_group_ID/pwck.test create mode 100644 tests/tests/cktools/pwck/13_pwck_duplicate_entry_passwd/config.txt create mode 100644 tests/tests/cktools/pwck/13_pwck_duplicate_entry_passwd/config/etc/group create mode 100644 tests/tests/cktools/pwck/13_pwck_duplicate_entry_passwd/config/etc/gshadow create mode 100644 tests/tests/cktools/pwck/13_pwck_duplicate_entry_passwd/config/etc/passwd create mode 100644 tests/tests/cktools/pwck/13_pwck_duplicate_entry_passwd/config/etc/shadow create mode 100644 tests/tests/cktools/pwck/13_pwck_duplicate_entry_passwd/data/passwd create mode 100755 tests/tests/cktools/pwck/13_pwck_duplicate_entry_passwd/pwck.exp create mode 100755 tests/tests/cktools/pwck/13_pwck_duplicate_entry_passwd/pwck.test create mode 100644 tests/tests/cktools/pwck/14_pwck_duplicate_entry_shadow/config.txt create mode 100644 tests/tests/cktools/pwck/14_pwck_duplicate_entry_shadow/config/etc/group create mode 100644 tests/tests/cktools/pwck/14_pwck_duplicate_entry_shadow/config/etc/gshadow create mode 100644 tests/tests/cktools/pwck/14_pwck_duplicate_entry_shadow/config/etc/passwd create mode 100644 tests/tests/cktools/pwck/14_pwck_duplicate_entry_shadow/config/etc/shadow create mode 100644 tests/tests/cktools/pwck/14_pwck_duplicate_entry_shadow/data/shadow create mode 100755 tests/tests/cktools/pwck/14_pwck_duplicate_entry_shadow/pwck.exp create mode 100755 tests/tests/cktools/pwck/14_pwck_duplicate_entry_shadow/pwck.test create mode 100644 tests/tests/cktools/pwck/15_pwck_duplicate_entry_passwd_no_changes/config.txt create mode 100644 tests/tests/cktools/pwck/15_pwck_duplicate_entry_passwd_no_changes/config/etc/group create mode 100644 tests/tests/cktools/pwck/15_pwck_duplicate_entry_passwd_no_changes/config/etc/gshadow create mode 100644 tests/tests/cktools/pwck/15_pwck_duplicate_entry_passwd_no_changes/config/etc/passwd create mode 100644 tests/tests/cktools/pwck/15_pwck_duplicate_entry_passwd_no_changes/config/etc/shadow create mode 100755 tests/tests/cktools/pwck/15_pwck_duplicate_entry_passwd_no_changes/pwck.exp create mode 100755 tests/tests/cktools/pwck/15_pwck_duplicate_entry_passwd_no_changes/pwck.test create mode 100644 tests/tests/cktools/pwck/16_pwck_duplicate_entry_shadow_no_changes/config.txt create mode 100644 tests/tests/cktools/pwck/16_pwck_duplicate_entry_shadow_no_changes/config/etc/group create mode 100644 tests/tests/cktools/pwck/16_pwck_duplicate_entry_shadow_no_changes/config/etc/gshadow create mode 100644 tests/tests/cktools/pwck/16_pwck_duplicate_entry_shadow_no_changes/config/etc/passwd create mode 100644 tests/tests/cktools/pwck/16_pwck_duplicate_entry_shadow_no_changes/config/etc/shadow create mode 100755 tests/tests/cktools/pwck/16_pwck_duplicate_entry_shadow_no_changes/pwck.exp create mode 100755 tests/tests/cktools/pwck/16_pwck_duplicate_entry_shadow_no_changes/pwck.test create mode 100644 tests/tests/cktools/pwck/17_pwck_duplicate_entry_passwd_delete_second/config.txt create mode 100644 tests/tests/cktools/pwck/17_pwck_duplicate_entry_passwd_delete_second/config/etc/group create mode 100644 tests/tests/cktools/pwck/17_pwck_duplicate_entry_passwd_delete_second/config/etc/gshadow create mode 100644 tests/tests/cktools/pwck/17_pwck_duplicate_entry_passwd_delete_second/config/etc/passwd create mode 100644 tests/tests/cktools/pwck/17_pwck_duplicate_entry_passwd_delete_second/config/etc/shadow create mode 100644 tests/tests/cktools/pwck/17_pwck_duplicate_entry_passwd_delete_second/data/passwd create mode 100755 tests/tests/cktools/pwck/17_pwck_duplicate_entry_passwd_delete_second/pwck.exp create mode 100755 tests/tests/cktools/pwck/17_pwck_duplicate_entry_passwd_delete_second/pwck.test create mode 100644 tests/tests/cktools/pwck/18_pwck_invalid_user_name/config.txt create mode 100644 tests/tests/cktools/pwck/18_pwck_invalid_user_name/config/etc/group create mode 100644 tests/tests/cktools/pwck/18_pwck_invalid_user_name/config/etc/gshadow create mode 100644 tests/tests/cktools/pwck/18_pwck_invalid_user_name/config/etc/passwd create mode 100644 tests/tests/cktools/pwck/18_pwck_invalid_user_name/config/etc/shadow create mode 100755 tests/tests/cktools/pwck/18_pwck_invalid_user_name/pwck.exp create mode 100755 tests/tests/cktools/pwck/18_pwck_invalid_user_name/pwck.test create mode 100644 tests/tests/cktools/pwck/19_pwck_invalid_user_ID_-1/config.txt create mode 100644 tests/tests/cktools/pwck/19_pwck_invalid_user_ID_-1/config/etc/group create mode 100644 tests/tests/cktools/pwck/19_pwck_invalid_user_ID_-1/config/etc/gshadow create mode 100644 tests/tests/cktools/pwck/19_pwck_invalid_user_ID_-1/config/etc/passwd create mode 100644 tests/tests/cktools/pwck/19_pwck_invalid_user_ID_-1/config/etc/shadow create mode 100644 tests/tests/cktools/pwck/19_pwck_invalid_user_ID_-1/data/passwd create mode 100644 tests/tests/cktools/pwck/19_pwck_invalid_user_ID_-1/data/shadow create mode 100755 tests/tests/cktools/pwck/19_pwck_invalid_user_ID_-1/pwck.exp create mode 100755 tests/tests/cktools/pwck/19_pwck_invalid_user_ID_-1/pwck.test create mode 100644 tests/tests/cktools/pwck/20_pwck_invalid_user_ID_4294967295/config.txt create mode 100644 tests/tests/cktools/pwck/20_pwck_invalid_user_ID_4294967295/config/etc/group create mode 100644 tests/tests/cktools/pwck/20_pwck_invalid_user_ID_4294967295/config/etc/gshadow create mode 100644 tests/tests/cktools/pwck/20_pwck_invalid_user_ID_4294967295/config/etc/passwd create mode 100644 tests/tests/cktools/pwck/20_pwck_invalid_user_ID_4294967295/config/etc/shadow create mode 100755 tests/tests/cktools/pwck/20_pwck_invalid_user_ID_4294967295/pwck.exp create mode 100755 tests/tests/cktools/pwck/20_pwck_invalid_user_ID_4294967295/pwck.test create mode 100644 tests/tests/cktools/pwck/21_pwck_invalid_user_ID_4294967296/config.txt create mode 100644 tests/tests/cktools/pwck/21_pwck_invalid_user_ID_4294967296/config/etc/group create mode 100644 tests/tests/cktools/pwck/21_pwck_invalid_user_ID_4294967296/config/etc/gshadow create mode 100644 tests/tests/cktools/pwck/21_pwck_invalid_user_ID_4294967296/config/etc/passwd create mode 100644 tests/tests/cktools/pwck/21_pwck_invalid_user_ID_4294967296/config/etc/shadow create mode 100644 tests/tests/cktools/pwck/21_pwck_invalid_user_ID_4294967296/data/passwd create mode 100644 tests/tests/cktools/pwck/21_pwck_invalid_user_ID_4294967296/data/shadow create mode 100755 tests/tests/cktools/pwck/21_pwck_invalid_user_ID_4294967296/pwck.exp create mode 100755 tests/tests/cktools/pwck/21_pwck_invalid_user_ID_4294967296/pwck.test create mode 100644 tests/tests/cktools/pwck/22_pwck_usage/config.txt create mode 100644 tests/tests/cktools/pwck/22_pwck_usage/config/etc/group create mode 100644 tests/tests/cktools/pwck/22_pwck_usage/config/etc/gshadow create mode 100644 tests/tests/cktools/pwck/22_pwck_usage/config/etc/passwd create mode 100644 tests/tests/cktools/pwck/22_pwck_usage/config/etc/shadow create mode 100644 tests/tests/cktools/pwck/22_pwck_usage/data/usage.out create mode 100755 tests/tests/cktools/pwck/22_pwck_usage/pwck.test create mode 100644 tests/tests/cktools/pwck/23_pwck_locked_passwd/config.txt create mode 100644 tests/tests/cktools/pwck/23_pwck_locked_passwd/config/etc/group create mode 100644 tests/tests/cktools/pwck/23_pwck_locked_passwd/config/etc/gshadow create mode 100644 tests/tests/cktools/pwck/23_pwck_locked_passwd/config/etc/passwd create mode 100644 tests/tests/cktools/pwck/23_pwck_locked_passwd/config/etc/shadow create mode 100644 tests/tests/cktools/pwck/23_pwck_locked_passwd/data/pwck.err create mode 100755 tests/tests/cktools/pwck/23_pwck_locked_passwd/pwck.test create mode 100644 tests/tests/cktools/pwck/24_pwck_locked_shadow/config.txt create mode 100644 tests/tests/cktools/pwck/24_pwck_locked_shadow/config/etc/group create mode 100644 tests/tests/cktools/pwck/24_pwck_locked_shadow/config/etc/gshadow create mode 100644 tests/tests/cktools/pwck/24_pwck_locked_shadow/config/etc/passwd create mode 100644 tests/tests/cktools/pwck/24_pwck_locked_shadow/config/etc/shadow create mode 100644 tests/tests/cktools/pwck/24_pwck_locked_shadow/data/pwck.err create mode 100755 tests/tests/cktools/pwck/24_pwck_locked_shadow/pwck.test create mode 100644 tests/tests/cktools/pwck/25_pwck_usage_invalid_option/config.txt create mode 100644 tests/tests/cktools/pwck/25_pwck_usage_invalid_option/config/etc/group create mode 100644 tests/tests/cktools/pwck/25_pwck_usage_invalid_option/config/etc/gshadow create mode 100644 tests/tests/cktools/pwck/25_pwck_usage_invalid_option/config/etc/passwd create mode 100644 tests/tests/cktools/pwck/25_pwck_usage_invalid_option/config/etc/shadow create mode 100644 tests/tests/cktools/pwck/25_pwck_usage_invalid_option/data/pwck.err create mode 100755 tests/tests/cktools/pwck/25_pwck_usage_invalid_option/pwck.test create mode 100644 tests/tests/cktools/pwck/26_pwck_usage-s-r/config.txt create mode 100644 tests/tests/cktools/pwck/26_pwck_usage-s-r/config/etc/group create mode 100644 tests/tests/cktools/pwck/26_pwck_usage-s-r/config/etc/gshadow create mode 100644 tests/tests/cktools/pwck/26_pwck_usage-s-r/config/etc/passwd create mode 100644 tests/tests/cktools/pwck/26_pwck_usage-s-r/config/etc/shadow create mode 100644 tests/tests/cktools/pwck/26_pwck_usage-s-r/data/pwck.err create mode 100755 tests/tests/cktools/pwck/26_pwck_usage-s-r/pwck.test create mode 100644 tests/tests/cktools/pwck/27_pwck_usage_3_files/config.txt create mode 100644 tests/tests/cktools/pwck/27_pwck_usage_3_files/config/etc/group create mode 100644 tests/tests/cktools/pwck/27_pwck_usage_3_files/config/etc/gshadow create mode 100644 tests/tests/cktools/pwck/27_pwck_usage_3_files/config/etc/passwd create mode 100644 tests/tests/cktools/pwck/27_pwck_usage_3_files/config/etc/shadow create mode 100644 tests/tests/cktools/pwck/27_pwck_usage_3_files/data/pwck.err create mode 100755 tests/tests/cktools/pwck/27_pwck_usage_3_files/pwck.test create mode 100644 tests/tests/cktools/pwck/28_pwck_no_shadow_file/config.txt create mode 100644 tests/tests/cktools/pwck/28_pwck_no_shadow_file/config/etc/group create mode 100644 tests/tests/cktools/pwck/28_pwck_no_shadow_file/config/etc/gshadow create mode 100644 tests/tests/cktools/pwck/28_pwck_no_shadow_file/config/etc/passwd create mode 100644 tests/tests/cktools/pwck/28_pwck_no_shadow_file/config/etc/shadow create mode 100644 tests/tests/cktools/pwck/28_pwck_no_shadow_file/data/pwck.out create mode 100755 tests/tests/cktools/pwck/28_pwck_no_shadow_file/pwck.test create mode 100644 tests/tests/cktools/pwck/29_pwck_password_change_in_future/config.txt create mode 100644 tests/tests/cktools/pwck/29_pwck_password_change_in_future/config/etc/group create mode 100644 tests/tests/cktools/pwck/29_pwck_password_change_in_future/config/etc/gshadow create mode 100644 tests/tests/cktools/pwck/29_pwck_password_change_in_future/config/etc/passwd create mode 100644 tests/tests/cktools/pwck/29_pwck_password_change_in_future/config/etc/shadow create mode 100644 tests/tests/cktools/pwck/29_pwck_password_change_in_future/data/pwck.out create mode 100755 tests/tests/cktools/pwck/29_pwck_password_change_in_future/pwck.test create mode 100644 tests/tests/cktools/pwck/30_pwck_NIS_entries/config.txt create mode 100644 tests/tests/cktools/pwck/30_pwck_NIS_entries/config/etc/group create mode 100644 tests/tests/cktools/pwck/30_pwck_NIS_entries/config/etc/gshadow create mode 100644 tests/tests/cktools/pwck/30_pwck_NIS_entries/config/etc/passwd create mode 100644 tests/tests/cktools/pwck/30_pwck_NIS_entries/config/etc/shadow create mode 100644 tests/tests/cktools/pwck/30_pwck_NIS_entries/data/pwck.out create mode 100755 tests/tests/cktools/pwck/30_pwck_NIS_entries/pwck.test create mode 100644 tests/tests/cktools/pwck/31_pwck_shadow_entry_passwd_no_x/config.txt create mode 100644 tests/tests/cktools/pwck/31_pwck_shadow_entry_passwd_no_x/config/etc/group create mode 100644 tests/tests/cktools/pwck/31_pwck_shadow_entry_passwd_no_x/config/etc/gshadow create mode 100644 tests/tests/cktools/pwck/31_pwck_shadow_entry_passwd_no_x/config/etc/passwd create mode 100644 tests/tests/cktools/pwck/31_pwck_shadow_entry_passwd_no_x/config/etc/shadow create mode 100644 tests/tests/cktools/pwck/31_pwck_shadow_entry_passwd_no_x/data/pwck.out create mode 100755 tests/tests/cktools/pwck/31_pwck_shadow_entry_passwd_no_x/pwck.test create mode 100644 tests/tests/cktools/pwck/32_pwck_quiet/config.txt create mode 100644 tests/tests/cktools/pwck/32_pwck_quiet/config/etc/group create mode 100644 tests/tests/cktools/pwck/32_pwck_quiet/config/etc/gshadow create mode 100644 tests/tests/cktools/pwck/32_pwck_quiet/config/etc/passwd create mode 100644 tests/tests/cktools/pwck/32_pwck_quiet/config/etc/shadow create mode 100644 tests/tests/cktools/pwck/32_pwck_quiet/data/pwck.out create mode 100755 tests/tests/cktools/pwck/32_pwck_quiet/pwck.test create mode 100755 tests/tests/cleanup.sh create mode 100644 tests/tests/common/Makefile create mode 100755 tests/tests/common/compare_file.pl create mode 100644 tests/tests/common/config.sh create mode 100644 tests/tests/common/config_chroot-i386.list create mode 100644 tests/tests/common/config_chroot-powerpc.list create mode 100644 tests/tests/common/fopen_failure.c create mode 100644 tests/tests/common/link_failure.c create mode 100644 tests/tests/common/log.sh create mode 100644 tests/tests/common/open_RDONLY_failure.c create mode 100644 tests/tests/common/open_RDWR_failure.c create mode 100644 tests/tests/common/rename_failure.c create mode 100644 tests/tests/common/rmdir_failure.c create mode 100644 tests/tests/common/time_0.c create mode 100644 tests/tests/common/time_past.c create mode 100644 tests/tests/common/unlink_failure.c create mode 100644 tests/tests/common/unlinkat_failure.c create mode 100644 tests/tests/convtools/01/data/1/group create mode 100644 tests/tests/convtools/01/data/1/passwd create mode 100644 tests/tests/convtools/01/data/2/group create mode 100644 tests/tests/convtools/01/data/2/gshadow create mode 100644 tests/tests/convtools/01/data/2/passwd create mode 100644 tests/tests/convtools/01/data/2/shadow create mode 100755 tests/tests/convtools/01/run create mode 100644 tests/tests/convtools/02_grpconv_remove_gshadow_only_entries/config.txt create mode 100644 tests/tests/convtools/02_grpconv_remove_gshadow_only_entries/config/etc/group create mode 100644 tests/tests/convtools/02_grpconv_remove_gshadow_only_entries/config/etc/gshadow create mode 100644 tests/tests/convtools/02_grpconv_remove_gshadow_only_entries/config/etc/passwd create mode 100644 tests/tests/convtools/02_grpconv_remove_gshadow_only_entries/config/etc/shadow create mode 100644 tests/tests/convtools/02_grpconv_remove_gshadow_only_entries/data/gshadow create mode 100755 tests/tests/convtools/02_grpconv_remove_gshadow_only_entries/grpconv.test create mode 100644 tests/tests/convtools/03_grpconv_copy_passwd/config.txt create mode 100644 tests/tests/convtools/03_grpconv_copy_passwd/config/etc/group create mode 100644 tests/tests/convtools/03_grpconv_copy_passwd/config/etc/gshadow create mode 100644 tests/tests/convtools/03_grpconv_copy_passwd/config/etc/passwd create mode 100644 tests/tests/convtools/03_grpconv_copy_passwd/config/etc/shadow create mode 100644 tests/tests/convtools/03_grpconv_copy_passwd/data/group create mode 100644 tests/tests/convtools/03_grpconv_copy_passwd/data/gshadow create mode 100755 tests/tests/convtools/03_grpconv_copy_passwd/grpconv.test create mode 100644 tests/tests/convtools/04_grpconv_no_password/config.txt create mode 100644 tests/tests/convtools/04_grpconv_no_password/config/etc/group create mode 100644 tests/tests/convtools/04_grpconv_no_password/config/etc/gshadow create mode 100644 tests/tests/convtools/04_grpconv_no_password/config/etc/passwd create mode 100644 tests/tests/convtools/04_grpconv_no_password/config/etc/shadow create mode 100644 tests/tests/convtools/04_grpconv_no_password/data/group create mode 100644 tests/tests/convtools/04_grpconv_no_password/data/gshadow create mode 100755 tests/tests/convtools/04_grpconv_no_password/grpconv.test create mode 100644 tests/tests/convtools/05_grpconv_copy_passwd_existing_gshadow/config.txt create mode 100644 tests/tests/convtools/05_grpconv_copy_passwd_existing_gshadow/config/etc/group create mode 100644 tests/tests/convtools/05_grpconv_copy_passwd_existing_gshadow/config/etc/gshadow create mode 100644 tests/tests/convtools/05_grpconv_copy_passwd_existing_gshadow/config/etc/passwd create mode 100644 tests/tests/convtools/05_grpconv_copy_passwd_existing_gshadow/config/etc/shadow create mode 100644 tests/tests/convtools/05_grpconv_copy_passwd_existing_gshadow/data/group create mode 100644 tests/tests/convtools/05_grpconv_copy_passwd_existing_gshadow/data/gshadow create mode 100755 tests/tests/convtools/05_grpconv_copy_passwd_existing_gshadow/grpconv.test create mode 100644 tests/tests/convtools/06_grpconv_error_group_locked/config.txt create mode 100644 tests/tests/convtools/06_grpconv_error_group_locked/config/etc/group create mode 100644 tests/tests/convtools/06_grpconv_error_group_locked/config/etc/gshadow create mode 100644 tests/tests/convtools/06_grpconv_error_group_locked/config/etc/passwd create mode 100644 tests/tests/convtools/06_grpconv_error_group_locked/config/etc/shadow create mode 100644 tests/tests/convtools/06_grpconv_error_group_locked/data/grpconv.err create mode 100755 tests/tests/convtools/06_grpconv_error_group_locked/grpconv.test create mode 100644 tests/tests/convtools/07_grpconv_error_gshadow_locked/config.txt create mode 100644 tests/tests/convtools/07_grpconv_error_gshadow_locked/config/etc/group create mode 100644 tests/tests/convtools/07_grpconv_error_gshadow_locked/config/etc/gshadow create mode 100644 tests/tests/convtools/07_grpconv_error_gshadow_locked/config/etc/passwd create mode 100644 tests/tests/convtools/07_grpconv_error_gshadow_locked/config/etc/shadow create mode 100644 tests/tests/convtools/07_grpconv_error_gshadow_locked/data/grpconv.err create mode 100755 tests/tests/convtools/07_grpconv_error_gshadow_locked/grpconv.test create mode 100644 tests/tests/convtools/08_grpunconv_no_gshadow_file/config.txt create mode 100644 tests/tests/convtools/08_grpunconv_no_gshadow_file/config/etc/group create mode 100644 tests/tests/convtools/08_grpunconv_no_gshadow_file/config/etc/gshadow create mode 100644 tests/tests/convtools/08_grpunconv_no_gshadow_file/config/etc/passwd create mode 100644 tests/tests/convtools/08_grpunconv_no_gshadow_file/config/etc/shadow create mode 100755 tests/tests/convtools/08_grpunconv_no_gshadow_file/grpunconv.test create mode 100644 tests/tests/convtools/09_grpunconv_error_group_locked/config.txt create mode 100644 tests/tests/convtools/09_grpunconv_error_group_locked/config/etc/group create mode 100644 tests/tests/convtools/09_grpunconv_error_group_locked/config/etc/gshadow create mode 100644 tests/tests/convtools/09_grpunconv_error_group_locked/config/etc/passwd create mode 100644 tests/tests/convtools/09_grpunconv_error_group_locked/config/etc/shadow create mode 100644 tests/tests/convtools/09_grpunconv_error_group_locked/data/grpunconv.err create mode 100755 tests/tests/convtools/09_grpunconv_error_group_locked/grpunconv.test create mode 100644 tests/tests/convtools/10_grpunconv_error_gshadow_locked/config.txt create mode 100644 tests/tests/convtools/10_grpunconv_error_gshadow_locked/config/etc/group create mode 100644 tests/tests/convtools/10_grpunconv_error_gshadow_locked/config/etc/gshadow create mode 100644 tests/tests/convtools/10_grpunconv_error_gshadow_locked/config/etc/passwd create mode 100644 tests/tests/convtools/10_grpunconv_error_gshadow_locked/config/etc/shadow create mode 100644 tests/tests/convtools/10_grpunconv_error_gshadow_locked/data/grpunconv.err create mode 100755 tests/tests/convtools/10_grpunconv_error_gshadow_locked/grpunconv.test create mode 100644 tests/tests/convtools/11_pwconv_error_passwd_locked/config.txt create mode 100644 tests/tests/convtools/11_pwconv_error_passwd_locked/config/etc/group create mode 100644 tests/tests/convtools/11_pwconv_error_passwd_locked/config/etc/gshadow create mode 100644 tests/tests/convtools/11_pwconv_error_passwd_locked/config/etc/passwd create mode 100644 tests/tests/convtools/11_pwconv_error_passwd_locked/config/etc/shadow create mode 100644 tests/tests/convtools/11_pwconv_error_passwd_locked/data/pwconv.err create mode 100755 tests/tests/convtools/11_pwconv_error_passwd_locked/pwconv.test create mode 100644 tests/tests/convtools/12_pwconv_error_shadow_locked/config.txt create mode 100644 tests/tests/convtools/12_pwconv_error_shadow_locked/config/etc/group create mode 100644 tests/tests/convtools/12_pwconv_error_shadow_locked/config/etc/gshadow create mode 100644 tests/tests/convtools/12_pwconv_error_shadow_locked/config/etc/passwd create mode 100644 tests/tests/convtools/12_pwconv_error_shadow_locked/config/etc/shadow create mode 100644 tests/tests/convtools/12_pwconv_error_shadow_locked/data/pwconv.err create mode 100755 tests/tests/convtools/12_pwconv_error_shadow_locked/pwconv.test create mode 100644 tests/tests/convtools/13_pwunconv_error_passwd_locked/config.txt create mode 100644 tests/tests/convtools/13_pwunconv_error_passwd_locked/config/etc/group create mode 100644 tests/tests/convtools/13_pwunconv_error_passwd_locked/config/etc/gshadow create mode 100644 tests/tests/convtools/13_pwunconv_error_passwd_locked/config/etc/passwd create mode 100644 tests/tests/convtools/13_pwunconv_error_passwd_locked/config/etc/shadow create mode 100644 tests/tests/convtools/13_pwunconv_error_passwd_locked/data/pwunconv.err create mode 100755 tests/tests/convtools/13_pwunconv_error_passwd_locked/pwunconv.test create mode 100644 tests/tests/convtools/14_pwunconv_error_shadow_locked/config.txt create mode 100644 tests/tests/convtools/14_pwunconv_error_shadow_locked/config/etc/group create mode 100644 tests/tests/convtools/14_pwunconv_error_shadow_locked/config/etc/gshadow create mode 100644 tests/tests/convtools/14_pwunconv_error_shadow_locked/config/etc/passwd create mode 100644 tests/tests/convtools/14_pwunconv_error_shadow_locked/config/etc/shadow create mode 100644 tests/tests/convtools/14_pwunconv_error_shadow_locked/data/pwunconv.err create mode 100755 tests/tests/convtools/14_pwunconv_error_shadow_locked/pwunconv.test create mode 100644 tests/tests/convtools/15_pwconv_remove_shadow_only_entries/config.txt create mode 100644 tests/tests/convtools/15_pwconv_remove_shadow_only_entries/config/etc/group create mode 100644 tests/tests/convtools/15_pwconv_remove_shadow_only_entries/config/etc/gshadow create mode 100644 tests/tests/convtools/15_pwconv_remove_shadow_only_entries/config/etc/passwd create mode 100644 tests/tests/convtools/15_pwconv_remove_shadow_only_entries/config/etc/shadow create mode 100644 tests/tests/convtools/15_pwconv_remove_shadow_only_entries/data/shadow create mode 100755 tests/tests/convtools/15_pwconv_remove_shadow_only_entries/pwconv.test create mode 100644 tests/tests/convtools/16_pwconv_copy_passwd/config.txt create mode 100644 tests/tests/convtools/16_pwconv_copy_passwd/config/etc/group create mode 100644 tests/tests/convtools/16_pwconv_copy_passwd/config/etc/gshadow create mode 100644 tests/tests/convtools/16_pwconv_copy_passwd/config/etc/passwd create mode 100644 tests/tests/convtools/16_pwconv_copy_passwd/config/etc/shadow create mode 100644 tests/tests/convtools/16_pwconv_copy_passwd/data/passwd create mode 100644 tests/tests/convtools/16_pwconv_copy_passwd/data/shadow create mode 100755 tests/tests/convtools/16_pwconv_copy_passwd/pwconv.test create mode 100644 tests/tests/convtools/17_pwunconv_no_shadow_file/config.txt create mode 100644 tests/tests/convtools/17_pwunconv_no_shadow_file/config/etc/group create mode 100644 tests/tests/convtools/17_pwunconv_no_shadow_file/config/etc/gshadow create mode 100644 tests/tests/convtools/17_pwunconv_no_shadow_file/config/etc/passwd create mode 100644 tests/tests/convtools/17_pwunconv_no_shadow_file/config/etc/shadow create mode 100755 tests/tests/convtools/17_pwunconv_no_shadow_file/pwunconv.test create mode 100644 tests/tests/convtools/18_pwunconv_user_not_in_shadow/config.txt create mode 100644 tests/tests/convtools/18_pwunconv_user_not_in_shadow/config/etc/group create mode 100644 tests/tests/convtools/18_pwunconv_user_not_in_shadow/config/etc/gshadow create mode 100644 tests/tests/convtools/18_pwunconv_user_not_in_shadow/config/etc/passwd create mode 100644 tests/tests/convtools/18_pwunconv_user_not_in_shadow/config/etc/shadow create mode 100644 tests/tests/convtools/18_pwunconv_user_not_in_shadow/data/passwd create mode 100755 tests/tests/convtools/18_pwunconv_user_not_in_shadow/pwunconv.test create mode 100644 tests/tests/convtools/19_pwconv_NIS/config.txt create mode 100644 tests/tests/convtools/19_pwconv_NIS/config/etc/group create mode 100644 tests/tests/convtools/19_pwconv_NIS/config/etc/gshadow create mode 100644 tests/tests/convtools/19_pwconv_NIS/config/etc/passwd create mode 100644 tests/tests/convtools/19_pwconv_NIS/config/etc/shadow create mode 100644 tests/tests/convtools/19_pwconv_NIS/data/passwd create mode 100644 tests/tests/convtools/19_pwconv_NIS/data/shadow create mode 100755 tests/tests/convtools/19_pwconv_NIS/pwconv.test create mode 100644 tests/tests/convtools/20_pwunconv_usage_option/config.txt create mode 100644 tests/tests/convtools/20_pwunconv_usage_option/config/etc/group create mode 100644 tests/tests/convtools/20_pwunconv_usage_option/config/etc/gshadow create mode 100644 tests/tests/convtools/20_pwunconv_usage_option/config/etc/passwd create mode 100644 tests/tests/convtools/20_pwunconv_usage_option/config/etc/shadow create mode 100644 tests/tests/convtools/20_pwunconv_usage_option/data/usage.out create mode 100755 tests/tests/convtools/20_pwunconv_usage_option/pwunconv.test create mode 100644 tests/tests/convtools/21_pwunconv_keep_passwd_password/config.txt create mode 100644 tests/tests/convtools/21_pwunconv_keep_passwd_password/config/etc/group create mode 100644 tests/tests/convtools/21_pwunconv_keep_passwd_password/config/etc/gshadow create mode 100644 tests/tests/convtools/21_pwunconv_keep_passwd_password/config/etc/passwd create mode 100644 tests/tests/convtools/21_pwunconv_keep_passwd_password/config/etc/shadow create mode 100644 tests/tests/convtools/21_pwunconv_keep_passwd_password/data/passwd create mode 100755 tests/tests/convtools/21_pwunconv_keep_passwd_password/pwunconv.test create mode 100644 tests/tests/convtools/22_grpunconv_usage_option/config.txt create mode 100644 tests/tests/convtools/22_grpunconv_usage_option/config/etc/group create mode 100644 tests/tests/convtools/22_grpunconv_usage_option/config/etc/gshadow create mode 100644 tests/tests/convtools/22_grpunconv_usage_option/config/etc/passwd create mode 100644 tests/tests/convtools/22_grpunconv_usage_option/config/etc/shadow create mode 100644 tests/tests/convtools/22_grpunconv_usage_option/data/usage.out create mode 100755 tests/tests/convtools/22_grpunconv_usage_option/grpunconv.test create mode 100644 tests/tests/convtools/23_grpunconv_keep_group_password/config.txt create mode 100644 tests/tests/convtools/23_grpunconv_keep_group_password/config/etc/group create mode 100644 tests/tests/convtools/23_grpunconv_keep_group_password/config/etc/gshadow create mode 100644 tests/tests/convtools/23_grpunconv_keep_group_password/config/etc/passwd create mode 100644 tests/tests/convtools/23_grpunconv_keep_group_password/config/etc/shadow create mode 100644 tests/tests/convtools/23_grpunconv_keep_group_password/data/group create mode 100755 tests/tests/convtools/23_grpunconv_keep_group_password/grpunconv.test create mode 100644 tests/tests/convtools/24_grpunconv_no_gshadow_entry/config.txt create mode 100644 tests/tests/convtools/24_grpunconv_no_gshadow_entry/config/etc/group create mode 100644 tests/tests/convtools/24_grpunconv_no_gshadow_entry/config/etc/gshadow create mode 100644 tests/tests/convtools/24_grpunconv_no_gshadow_entry/config/etc/passwd create mode 100644 tests/tests/convtools/24_grpunconv_no_gshadow_entry/config/etc/shadow create mode 100644 tests/tests/convtools/24_grpunconv_no_gshadow_entry/data/group create mode 100755 tests/tests/convtools/24_grpunconv_no_gshadow_entry/grpunconv.test create mode 100644 tests/tests/convtools/25_pwconv_usage_option/config.txt create mode 100644 tests/tests/convtools/25_pwconv_usage_option/config/etc/group create mode 100644 tests/tests/convtools/25_pwconv_usage_option/config/etc/gshadow create mode 100644 tests/tests/convtools/25_pwconv_usage_option/config/etc/passwd create mode 100644 tests/tests/convtools/25_pwconv_usage_option/config/etc/shadow create mode 100644 tests/tests/convtools/25_pwconv_usage_option/data/usage.out create mode 100755 tests/tests/convtools/25_pwconv_usage_option/pwconv.test create mode 100644 tests/tests/convtools/26_grpconv_usage_option/config.txt create mode 100644 tests/tests/convtools/26_grpconv_usage_option/config/etc/group create mode 100644 tests/tests/convtools/26_grpconv_usage_option/config/etc/gshadow create mode 100644 tests/tests/convtools/26_grpconv_usage_option/config/etc/passwd create mode 100644 tests/tests/convtools/26_grpconv_usage_option/config/etc/shadow create mode 100644 tests/tests/convtools/26_grpconv_usage_option/data/usage.out create mode 100755 tests/tests/convtools/26_grpconv_usage_option/grpconv.test create mode 100644 tests/tests/convtools/27_pwunconv_usage/config.txt create mode 100644 tests/tests/convtools/27_pwunconv_usage/config/etc/group create mode 100644 tests/tests/convtools/27_pwunconv_usage/config/etc/gshadow create mode 100644 tests/tests/convtools/27_pwunconv_usage/config/etc/passwd create mode 100644 tests/tests/convtools/27_pwunconv_usage/config/etc/shadow create mode 100644 tests/tests/convtools/27_pwunconv_usage/data/usage.out create mode 100755 tests/tests/convtools/27_pwunconv_usage/pwunconv.test create mode 100644 tests/tests/convtools/28_pwunconv_usage_extra_arg/config.txt create mode 100644 tests/tests/convtools/28_pwunconv_usage_extra_arg/config/etc/group create mode 100644 tests/tests/convtools/28_pwunconv_usage_extra_arg/config/etc/gshadow create mode 100644 tests/tests/convtools/28_pwunconv_usage_extra_arg/config/etc/passwd create mode 100644 tests/tests/convtools/28_pwunconv_usage_extra_arg/config/etc/shadow create mode 100644 tests/tests/convtools/28_pwunconv_usage_extra_arg/data/usage.out create mode 100755 tests/tests/convtools/28_pwunconv_usage_extra_arg/pwunconv.test create mode 100644 tests/tests/convtools/29_grpconv_usage/config.txt create mode 100644 tests/tests/convtools/29_grpconv_usage/config/etc/group create mode 100644 tests/tests/convtools/29_grpconv_usage/config/etc/gshadow create mode 100644 tests/tests/convtools/29_grpconv_usage/config/etc/passwd create mode 100644 tests/tests/convtools/29_grpconv_usage/config/etc/shadow create mode 100644 tests/tests/convtools/29_grpconv_usage/data/usage.out create mode 100755 tests/tests/convtools/29_grpconv_usage/grpconv.test create mode 100644 tests/tests/convtools/30_grpconv_usage_extra_arg/config.txt create mode 100644 tests/tests/convtools/30_grpconv_usage_extra_arg/config/etc/group create mode 100644 tests/tests/convtools/30_grpconv_usage_extra_arg/config/etc/gshadow create mode 100644 tests/tests/convtools/30_grpconv_usage_extra_arg/config/etc/passwd create mode 100644 tests/tests/convtools/30_grpconv_usage_extra_arg/config/etc/shadow create mode 100644 tests/tests/convtools/30_grpconv_usage_extra_arg/data/usage.out create mode 100755 tests/tests/convtools/30_grpconv_usage_extra_arg/grpconv.test create mode 100644 tests/tests/convtools/31_pwconv_usage/config.txt create mode 100644 tests/tests/convtools/31_pwconv_usage/config/etc/group create mode 100644 tests/tests/convtools/31_pwconv_usage/config/etc/gshadow create mode 100644 tests/tests/convtools/31_pwconv_usage/config/etc/passwd create mode 100644 tests/tests/convtools/31_pwconv_usage/config/etc/shadow create mode 100644 tests/tests/convtools/31_pwconv_usage/data/usage.out create mode 100755 tests/tests/convtools/31_pwconv_usage/pwconv.test create mode 100644 tests/tests/convtools/32_pwconv_usage_extra_arg/config.txt create mode 100644 tests/tests/convtools/32_pwconv_usage_extra_arg/config/etc/group create mode 100644 tests/tests/convtools/32_pwconv_usage_extra_arg/config/etc/gshadow create mode 100644 tests/tests/convtools/32_pwconv_usage_extra_arg/config/etc/passwd create mode 100644 tests/tests/convtools/32_pwconv_usage_extra_arg/config/etc/shadow create mode 100644 tests/tests/convtools/32_pwconv_usage_extra_arg/data/usage.out create mode 100755 tests/tests/convtools/32_pwconv_usage_extra_arg/pwconv.test create mode 100644 tests/tests/convtools/33_grpunconv_usage/config.txt create mode 100644 tests/tests/convtools/33_grpunconv_usage/config/etc/group create mode 100644 tests/tests/convtools/33_grpunconv_usage/config/etc/gshadow create mode 100644 tests/tests/convtools/33_grpunconv_usage/config/etc/passwd create mode 100644 tests/tests/convtools/33_grpunconv_usage/config/etc/shadow create mode 100644 tests/tests/convtools/33_grpunconv_usage/data/usage.out create mode 100755 tests/tests/convtools/33_grpunconv_usage/grpunconv.test create mode 100644 tests/tests/convtools/34_grpunconv_usage_extra_arg/config.txt create mode 100644 tests/tests/convtools/34_grpunconv_usage_extra_arg/config/etc/group create mode 100644 tests/tests/convtools/34_grpunconv_usage_extra_arg/config/etc/gshadow create mode 100644 tests/tests/convtools/34_grpunconv_usage_extra_arg/config/etc/passwd create mode 100644 tests/tests/convtools/34_grpunconv_usage_extra_arg/config/etc/shadow create mode 100644 tests/tests/convtools/34_grpunconv_usage_extra_arg/data/usage.out create mode 100755 tests/tests/convtools/34_grpunconv_usage_extra_arg/grpunconv.test create mode 100755 tests/tests/coverage.sh create mode 100644 tests/tests/cptools/01/data/group create mode 100644 tests/tests/cptools/01/data/group.new create mode 100644 tests/tests/cptools/01/data/gshadow create mode 100644 tests/tests/cptools/01/data/gshadow.new create mode 100644 tests/tests/cptools/01/data/passwd create mode 100644 tests/tests/cptools/01/data/passwd.new create mode 100644 tests/tests/cptools/01/data/shadow create mode 100644 tests/tests/cptools/01/data/shadow.new create mode 100755 tests/tests/cptools/01/run1 create mode 100755 tests/tests/cptools/01/run2 create mode 100755 tests/tests/cptools/01/run3 create mode 100755 tests/tests/cptools/01/run4 create mode 100644 tests/tests/cptools/02_cppw_usage/config.txt create mode 100644 tests/tests/cptools/02_cppw_usage/config/etc/group create mode 100644 tests/tests/cptools/02_cppw_usage/config/etc/gshadow create mode 100644 tests/tests/cptools/02_cppw_usage/config/etc/passwd create mode 100644 tests/tests/cptools/02_cppw_usage/config/etc/shadow create mode 100755 tests/tests/cptools/02_cppw_usage/cppw.test create mode 100644 tests/tests/cptools/02_cppw_usage/data/usage.out create mode 100644 tests/tests/cptools/03_cppw_usage_invalid_option/config.txt create mode 100644 tests/tests/cptools/03_cppw_usage_invalid_option/config/etc/group create mode 100644 tests/tests/cptools/03_cppw_usage_invalid_option/config/etc/gshadow create mode 100644 tests/tests/cptools/03_cppw_usage_invalid_option/config/etc/passwd create mode 100644 tests/tests/cptools/03_cppw_usage_invalid_option/config/etc/shadow create mode 100755 tests/tests/cptools/03_cppw_usage_invalid_option/cppw.test create mode 100644 tests/tests/cptools/03_cppw_usage_invalid_option/data/usage.out create mode 100644 tests/tests/cptools/04_cppw_no_file_argument/config.txt create mode 100644 tests/tests/cptools/04_cppw_no_file_argument/config/etc/group create mode 100644 tests/tests/cptools/04_cppw_no_file_argument/config/etc/gshadow create mode 100644 tests/tests/cptools/04_cppw_no_file_argument/config/etc/passwd create mode 100644 tests/tests/cptools/04_cppw_no_file_argument/config/etc/shadow create mode 100755 tests/tests/cptools/04_cppw_no_file_argument/cppw.test create mode 100644 tests/tests/cptools/04_cppw_no_file_argument/data/usage.out create mode 100644 tests/tests/cptools/05_cppw_2_files/config.txt create mode 100644 tests/tests/cptools/05_cppw_2_files/config/etc/group create mode 100644 tests/tests/cptools/05_cppw_2_files/config/etc/gshadow create mode 100644 tests/tests/cptools/05_cppw_2_files/config/etc/passwd create mode 100644 tests/tests/cptools/05_cppw_2_files/config/etc/shadow create mode 100755 tests/tests/cptools/05_cppw_2_files/cppw.test create mode 100644 tests/tests/cptools/05_cppw_2_files/data/passwd create mode 100644 tests/tests/cptools/05_cppw_2_files/data/usage.out create mode 100644 tests/tests/cptools/06_cppw_no_file/config.txt create mode 100644 tests/tests/cptools/06_cppw_no_file/config/etc/group create mode 100644 tests/tests/cptools/06_cppw_no_file/config/etc/gshadow create mode 100644 tests/tests/cptools/06_cppw_no_file/config/etc/passwd create mode 100644 tests/tests/cptools/06_cppw_no_file/config/etc/shadow create mode 100755 tests/tests/cptools/06_cppw_no_file/cppw.test create mode 100644 tests/tests/cptools/06_cppw_no_file/data/usage.out create mode 100644 tests/tests/cptools/07_cppw_locked_passwd/config.txt create mode 100644 tests/tests/cptools/07_cppw_locked_passwd/config/etc/group create mode 100644 tests/tests/cptools/07_cppw_locked_passwd/config/etc/gshadow create mode 100644 tests/tests/cptools/07_cppw_locked_passwd/config/etc/passwd create mode 100644 tests/tests/cptools/07_cppw_locked_passwd/config/etc/shadow create mode 100755 tests/tests/cptools/07_cppw_locked_passwd/cppw.test create mode 100644 tests/tests/cptools/07_cppw_locked_passwd/data/passwd create mode 100644 tests/tests/cptools/07_cppw_locked_passwd/data/usage.out create mode 100644 tests/tests/cptools/08_cppw-p/config.txt create mode 100644 tests/tests/cptools/08_cppw-p/config/etc/group create mode 100644 tests/tests/cptools/08_cppw-p/config/etc/gshadow create mode 100644 tests/tests/cptools/08_cppw-p/config/etc/passwd create mode 100644 tests/tests/cptools/08_cppw-p/config/etc/shadow create mode 100755 tests/tests/cptools/08_cppw-p/cppw.test create mode 100644 tests/tests/cptools/08_cppw-p/data/passwd create mode 100644 tests/tests/cptools/09_cppw-g/config.txt create mode 100644 tests/tests/cptools/09_cppw-g/config/etc/group create mode 100644 tests/tests/cptools/09_cppw-g/config/etc/gshadow create mode 100644 tests/tests/cptools/09_cppw-g/config/etc/passwd create mode 100644 tests/tests/cptools/09_cppw-g/config/etc/shadow create mode 100755 tests/tests/cptools/09_cppw-g/cppw.test create mode 100644 tests/tests/cptools/09_cppw-g/data/group create mode 100644 tests/tests/cptools/10_cppw-g-s/config.txt create mode 100644 tests/tests/cptools/10_cppw-g-s/config/etc/group create mode 100644 tests/tests/cptools/10_cppw-g-s/config/etc/gshadow create mode 100644 tests/tests/cptools/10_cppw-g-s/config/etc/passwd create mode 100644 tests/tests/cptools/10_cppw-g-s/config/etc/shadow create mode 100755 tests/tests/cptools/10_cppw-g-s/cppw.test create mode 100644 tests/tests/cptools/10_cppw-g-s/data/gshadow create mode 100644 tests/tests/cptools/11_cppw-p-s/config.txt create mode 100644 tests/tests/cptools/11_cppw-p-s/config/etc/group create mode 100644 tests/tests/cptools/11_cppw-p-s/config/etc/gshadow create mode 100644 tests/tests/cptools/11_cppw-p-s/config/etc/passwd create mode 100644 tests/tests/cptools/11_cppw-p-s/config/etc/shadow create mode 100755 tests/tests/cptools/11_cppw-p-s/cppw.test create mode 100644 tests/tests/cptools/11_cppw-p-s/data/shadow create mode 100644 tests/tests/cptools/12_cppw-s_no_shadow_file/config.txt create mode 100644 tests/tests/cptools/12_cppw-s_no_shadow_file/config/etc/group create mode 100644 tests/tests/cptools/12_cppw-s_no_shadow_file/config/etc/gshadow create mode 100644 tests/tests/cptools/12_cppw-s_no_shadow_file/config/etc/passwd create mode 100644 tests/tests/cptools/12_cppw-s_no_shadow_file/config/etc/shadow create mode 100755 tests/tests/cptools/12_cppw-s_no_shadow_file/cppw.test create mode 100644 tests/tests/cptools/12_cppw-s_no_shadow_file/data/cppw.err create mode 100644 tests/tests/cptools/12_cppw-s_no_shadow_file/data/shadow create mode 100755 tests/tests/crypt/login.defs_DES-MD5_CRYPT_ENAB/01_chpasswd.test create mode 100644 tests/tests/crypt/login.defs_DES-MD5_CRYPT_ENAB/01_chpasswd/group create mode 100644 tests/tests/crypt/login.defs_DES-MD5_CRYPT_ENAB/01_chpasswd/gshadow create mode 100644 tests/tests/crypt/login.defs_DES-MD5_CRYPT_ENAB/01_chpasswd/passwd create mode 100644 tests/tests/crypt/login.defs_DES-MD5_CRYPT_ENAB/01_chpasswd/shadow create mode 100644 tests/tests/crypt/login.defs_DES-MD5_CRYPT_ENAB/config/etc/group create mode 100644 tests/tests/crypt/login.defs_DES-MD5_CRYPT_ENAB/config/etc/gshadow create mode 100644 tests/tests/crypt/login.defs_DES-MD5_CRYPT_ENAB/config/etc/login.defs create mode 100644 tests/tests/crypt/login.defs_DES-MD5_CRYPT_ENAB/config/etc/passwd create mode 100644 tests/tests/crypt/login.defs_DES-MD5_CRYPT_ENAB/config/etc/shadow create mode 100755 tests/tests/crypt/login.defs_DES/01_chpasswd.test create mode 100644 tests/tests/crypt/login.defs_DES/01_chpasswd/group create mode 100644 tests/tests/crypt/login.defs_DES/01_chpasswd/gshadow create mode 100644 tests/tests/crypt/login.defs_DES/01_chpasswd/passwd create mode 100644 tests/tests/crypt/login.defs_DES/01_chpasswd/shadow create mode 100755 tests/tests/crypt/login.defs_DES/02_chpasswd--crypt-method-MD5.test create mode 100644 tests/tests/crypt/login.defs_DES/02_chpasswd--crypt-method-MD5/group create mode 100644 tests/tests/crypt/login.defs_DES/02_chpasswd--crypt-method-MD5/gshadow create mode 100644 tests/tests/crypt/login.defs_DES/02_chpasswd--crypt-method-MD5/passwd create mode 100644 tests/tests/crypt/login.defs_DES/02_chpasswd--crypt-method-MD5/passwd.new create mode 100644 tests/tests/crypt/login.defs_DES/02_chpasswd--crypt-method-MD5/shadow create mode 100755 tests/tests/crypt/login.defs_DES/03_chpasswd--crypt-method-DES.test create mode 100644 tests/tests/crypt/login.defs_DES/03_chpasswd--crypt-method-DES/group create mode 100644 tests/tests/crypt/login.defs_DES/03_chpasswd--crypt-method-DES/gshadow create mode 100644 tests/tests/crypt/login.defs_DES/03_chpasswd--crypt-method-DES/passwd create mode 100644 tests/tests/crypt/login.defs_DES/03_chpasswd--crypt-method-DES/shadow create mode 100755 tests/tests/crypt/login.defs_DES/04_chpasswd--crypt-method-NONE.test create mode 100644 tests/tests/crypt/login.defs_DES/04_chpasswd--crypt-method-NONE/group create mode 100644 tests/tests/crypt/login.defs_DES/04_chpasswd--crypt-method-NONE/gshadow create mode 100644 tests/tests/crypt/login.defs_DES/04_chpasswd--crypt-method-NONE/passwd create mode 100644 tests/tests/crypt/login.defs_DES/04_chpasswd--crypt-method-NONE/shadow create mode 100755 tests/tests/crypt/login.defs_DES/05_chpasswd-e.test create mode 100644 tests/tests/crypt/login.defs_DES/05_chpasswd-e/group create mode 100644 tests/tests/crypt/login.defs_DES/05_chpasswd-e/gshadow create mode 100644 tests/tests/crypt/login.defs_DES/05_chpasswd-e/passwd create mode 100644 tests/tests/crypt/login.defs_DES/05_chpasswd-e/shadow create mode 100755 tests/tests/crypt/login.defs_DES/06_chpasswd-m.test create mode 100644 tests/tests/crypt/login.defs_DES/06_chpasswd-m/group create mode 100644 tests/tests/crypt/login.defs_DES/06_chpasswd-m/gshadow create mode 100644 tests/tests/crypt/login.defs_DES/06_chpasswd-m/passwd create mode 100644 tests/tests/crypt/login.defs_DES/06_chpasswd-m/shadow create mode 100755 tests/tests/crypt/login.defs_DES/07_chgpasswd.test create mode 100644 tests/tests/crypt/login.defs_DES/07_chgpasswd/group create mode 100644 tests/tests/crypt/login.defs_DES/07_chgpasswd/gshadow create mode 100644 tests/tests/crypt/login.defs_DES/07_chgpasswd/passwd create mode 100644 tests/tests/crypt/login.defs_DES/07_chgpasswd/shadow create mode 100755 tests/tests/crypt/login.defs_DES/08_chgpasswd--crypt-method-MD5.test create mode 100644 tests/tests/crypt/login.defs_DES/08_chgpasswd--crypt-method-MD5/group create mode 100644 tests/tests/crypt/login.defs_DES/08_chgpasswd--crypt-method-MD5/gshadow create mode 100644 tests/tests/crypt/login.defs_DES/08_chgpasswd--crypt-method-MD5/passwd create mode 100644 tests/tests/crypt/login.defs_DES/08_chgpasswd--crypt-method-MD5/shadow create mode 100755 tests/tests/crypt/login.defs_DES/09_chgpasswd--crypt-method-DES.test create mode 100644 tests/tests/crypt/login.defs_DES/09_chgpasswd--crypt-method-DES/group create mode 100644 tests/tests/crypt/login.defs_DES/09_chgpasswd--crypt-method-DES/gshadow create mode 100644 tests/tests/crypt/login.defs_DES/09_chgpasswd--crypt-method-DES/passwd create mode 100644 tests/tests/crypt/login.defs_DES/09_chgpasswd--crypt-method-DES/shadow create mode 100755 tests/tests/crypt/login.defs_DES/10_chgpasswd--crypt-method-NONE.test create mode 100644 tests/tests/crypt/login.defs_DES/10_chgpasswd--crypt-method-NONE/group create mode 100644 tests/tests/crypt/login.defs_DES/10_chgpasswd--crypt-method-NONE/gshadow create mode 100644 tests/tests/crypt/login.defs_DES/10_chgpasswd--crypt-method-NONE/passwd create mode 100644 tests/tests/crypt/login.defs_DES/10_chgpasswd--crypt-method-NONE/shadow create mode 100755 tests/tests/crypt/login.defs_DES/11_chgpasswd-e.test create mode 100644 tests/tests/crypt/login.defs_DES/11_chgpasswd-e/group create mode 100644 tests/tests/crypt/login.defs_DES/11_chgpasswd-e/gshadow create mode 100644 tests/tests/crypt/login.defs_DES/11_chgpasswd-e/passwd create mode 100644 tests/tests/crypt/login.defs_DES/11_chgpasswd-e/shadow create mode 100755 tests/tests/crypt/login.defs_DES/12_chgpasswd-m.test create mode 100644 tests/tests/crypt/login.defs_DES/12_chgpasswd-m/group create mode 100644 tests/tests/crypt/login.defs_DES/12_chgpasswd-m/gshadow create mode 100644 tests/tests/crypt/login.defs_DES/12_chgpasswd-m/passwd create mode 100644 tests/tests/crypt/login.defs_DES/12_chgpasswd-m/shadow create mode 100644 tests/tests/crypt/login.defs_DES/config/etc/group create mode 100644 tests/tests/crypt/login.defs_DES/config/etc/gshadow create mode 100644 tests/tests/crypt/login.defs_DES/config/etc/login.defs create mode 100644 tests/tests/crypt/login.defs_DES/config/etc/passwd create mode 100644 tests/tests/crypt/login.defs_DES/config/etc/shadow create mode 100755 tests/tests/crypt/login.defs_MD5/01_chpasswd.test create mode 100644 tests/tests/crypt/login.defs_MD5/01_chpasswd/group create mode 100644 tests/tests/crypt/login.defs_MD5/01_chpasswd/gshadow create mode 100644 tests/tests/crypt/login.defs_MD5/01_chpasswd/passwd create mode 100644 tests/tests/crypt/login.defs_MD5/01_chpasswd/shadow create mode 100755 tests/tests/crypt/login.defs_MD5/02_chgpasswd.test create mode 100644 tests/tests/crypt/login.defs_MD5/02_chgpasswd/group create mode 100644 tests/tests/crypt/login.defs_MD5/02_chgpasswd/gshadow create mode 100644 tests/tests/crypt/login.defs_MD5/02_chgpasswd/passwd create mode 100644 tests/tests/crypt/login.defs_MD5/02_chgpasswd/shadow create mode 100644 tests/tests/crypt/login.defs_MD5/config/etc/group create mode 100644 tests/tests/crypt/login.defs_MD5/config/etc/gshadow create mode 100644 tests/tests/crypt/login.defs_MD5/config/etc/login.defs create mode 100644 tests/tests/crypt/login.defs_MD5/config/etc/passwd create mode 100644 tests/tests/crypt/login.defs_MD5/config/etc/shadow create mode 100755 tests/tests/crypt/login.defs_MD5_CRYPT_ENAB/01_chpasswd.test create mode 100644 tests/tests/crypt/login.defs_MD5_CRYPT_ENAB/01_chpasswd/shadow create mode 100755 tests/tests/crypt/login.defs_MD5_CRYPT_ENAB/02_chgpasswd.test create mode 100644 tests/tests/crypt/login.defs_MD5_CRYPT_ENAB/02_chgpasswd/gshadow create mode 100644 tests/tests/crypt/login.defs_MD5_CRYPT_ENAB/config/etc/group create mode 100644 tests/tests/crypt/login.defs_MD5_CRYPT_ENAB/config/etc/gshadow create mode 100644 tests/tests/crypt/login.defs_MD5_CRYPT_ENAB/config/etc/login.defs create mode 100644 tests/tests/crypt/login.defs_MD5_CRYPT_ENAB/config/etc/passwd create mode 100644 tests/tests/crypt/login.defs_MD5_CRYPT_ENAB/config/etc/shadow create mode 100755 tests/tests/crypt/login.defs_SHA256-round-max/01_chpasswd.test create mode 100644 tests/tests/crypt/login.defs_SHA256-round-max/01_chpasswd/shadow create mode 100755 tests/tests/crypt/login.defs_SHA256-round-max/02_chgpasswd.test create mode 100644 tests/tests/crypt/login.defs_SHA256-round-max/02_chgpasswd/gshadow create mode 100644 tests/tests/crypt/login.defs_SHA256-round-max/config/etc/group create mode 100644 tests/tests/crypt/login.defs_SHA256-round-max/config/etc/gshadow create mode 100644 tests/tests/crypt/login.defs_SHA256-round-max/config/etc/login.defs create mode 100644 tests/tests/crypt/login.defs_SHA256-round-max/config/etc/passwd create mode 100644 tests/tests/crypt/login.defs_SHA256-round-max/config/etc/shadow create mode 100755 tests/tests/crypt/login.defs_SHA256-round-min-max/01_chpasswd.test create mode 100644 tests/tests/crypt/login.defs_SHA256-round-min-max/01_chpasswd/shadow create mode 100755 tests/tests/crypt/login.defs_SHA256-round-min-max/02_chgpasswd.test create mode 100644 tests/tests/crypt/login.defs_SHA256-round-min-max/02_chgpasswd/gshadow create mode 100644 tests/tests/crypt/login.defs_SHA256-round-min-max/config/etc/group create mode 100644 tests/tests/crypt/login.defs_SHA256-round-min-max/config/etc/gshadow create mode 100644 tests/tests/crypt/login.defs_SHA256-round-min-max/config/etc/login.defs create mode 100644 tests/tests/crypt/login.defs_SHA256-round-min-max/config/etc/passwd create mode 100644 tests/tests/crypt/login.defs_SHA256-round-min-max/config/etc/shadow create mode 100755 tests/tests/crypt/login.defs_SHA256-round-min/01_chpasswd.test create mode 100644 tests/tests/crypt/login.defs_SHA256-round-min/01_chpasswd/shadow create mode 100755 tests/tests/crypt/login.defs_SHA256-round-min/02_chgpasswd.test create mode 100644 tests/tests/crypt/login.defs_SHA256-round-min/02_chgpasswd/gshadow create mode 100644 tests/tests/crypt/login.defs_SHA256-round-min/config/etc/group create mode 100644 tests/tests/crypt/login.defs_SHA256-round-min/config/etc/gshadow create mode 100644 tests/tests/crypt/login.defs_SHA256-round-min/config/etc/login.defs create mode 100644 tests/tests/crypt/login.defs_SHA256-round-min/config/etc/passwd create mode 100644 tests/tests/crypt/login.defs_SHA256-round-min/config/etc/shadow create mode 100755 tests/tests/crypt/login.defs_SHA256/01_chpasswd.test create mode 100644 tests/tests/crypt/login.defs_SHA256/01_chpasswd/shadow create mode 100755 tests/tests/crypt/login.defs_SHA256/02_chgpasswd.test create mode 100644 tests/tests/crypt/login.defs_SHA256/02_chgpasswd/gshadow create mode 100644 tests/tests/crypt/login.defs_SHA256/config/etc/group create mode 100644 tests/tests/crypt/login.defs_SHA256/config/etc/gshadow create mode 100644 tests/tests/crypt/login.defs_SHA256/config/etc/login.defs create mode 100644 tests/tests/crypt/login.defs_SHA256/config/etc/passwd create mode 100644 tests/tests/crypt/login.defs_SHA256/config/etc/shadow create mode 100755 tests/tests/crypt/login.defs_SHA512/01_chpasswd.test create mode 100644 tests/tests/crypt/login.defs_SHA512/01_chpasswd/shadow create mode 100755 tests/tests/crypt/login.defs_SHA512/02_chgpasswd.test create mode 100644 tests/tests/crypt/login.defs_SHA512/02_chgpasswd/gshadow create mode 100644 tests/tests/crypt/login.defs_SHA512/config/etc/group create mode 100644 tests/tests/crypt/login.defs_SHA512/config/etc/gshadow create mode 100644 tests/tests/crypt/login.defs_SHA512/config/etc/login.defs create mode 100644 tests/tests/crypt/login.defs_SHA512/config/etc/passwd create mode 100644 tests/tests/crypt/login.defs_SHA512/config/etc/shadow create mode 100755 tests/tests/crypt/login.defs_none/01_chpasswd.test create mode 100644 tests/tests/crypt/login.defs_none/01_chpasswd/shadow create mode 100755 tests/tests/crypt/login.defs_none/02_chgpasswd.test create mode 100644 tests/tests/crypt/login.defs_none/02_chgpasswd/gshadow create mode 100644 tests/tests/crypt/login.defs_none/config/etc/group create mode 100644 tests/tests/crypt/login.defs_none/config/etc/gshadow create mode 100644 tests/tests/crypt/login.defs_none/config/etc/login.defs create mode 100644 tests/tests/crypt/login.defs_none/config/etc/passwd create mode 100644 tests/tests/crypt/login.defs_none/config/etc/shadow create mode 100644 tests/tests/debian/01/data/login_files create mode 100644 tests/tests/debian/01/data/passwd_files create mode 100755 tests/tests/debian/01/run create mode 100755 tests/tests/debian/02/run create mode 100644 tests/tests/expiry/01_expiry_-c_no_expiry/config/etc/group create mode 100644 tests/tests/expiry/01_expiry_-c_no_expiry/config/etc/gshadow create mode 100644 tests/tests/expiry/01_expiry_-c_no_expiry/config/etc/passwd create mode 100644 tests/tests/expiry/01_expiry_-c_no_expiry/config/etc/shadow create mode 100755 tests/tests/expiry/01_expiry_-c_no_expiry/expiry.exp create mode 100755 tests/tests/expiry/01_expiry_-c_no_expiry/expiry.test create mode 100644 tests/tests/expiry/02_expiry_-c_expired/config/etc/group create mode 100644 tests/tests/expiry/02_expiry_-c_expired/config/etc/gshadow create mode 100644 tests/tests/expiry/02_expiry_-c_expired/config/etc/passwd create mode 100644 tests/tests/expiry/02_expiry_-c_expired/config/etc/shadow create mode 100755 tests/tests/expiry/02_expiry_-c_expired/expiry.exp create mode 100755 tests/tests/expiry/02_expiry_-c_expired/expiry.test create mode 100644 tests/tests/expiry/03_expiry_-f_expired/config/etc/group create mode 100644 tests/tests/expiry/03_expiry_-f_expired/config/etc/gshadow create mode 100644 tests/tests/expiry/03_expiry_-f_expired/config/etc/pam.d/common-password create mode 100644 tests/tests/expiry/03_expiry_-f_expired/config/etc/passwd create mode 100644 tests/tests/expiry/03_expiry_-f_expired/config/etc/shadow create mode 100644 tests/tests/expiry/03_expiry_-f_expired/data/shadow create mode 100755 tests/tests/expiry/03_expiry_-f_expired/expiry.exp create mode 100755 tests/tests/expiry/03_expiry_-f_expired/expiry.test create mode 100644 tests/tests/expiry/04_expiry_no_options/config/etc/group create mode 100644 tests/tests/expiry/04_expiry_no_options/config/etc/gshadow create mode 100644 tests/tests/expiry/04_expiry_no_options/config/etc/passwd create mode 100644 tests/tests/expiry/04_expiry_no_options/config/etc/shadow create mode 100644 tests/tests/expiry/04_expiry_no_options/data/usage.out create mode 100755 tests/tests/expiry/04_expiry_no_options/expiry.test create mode 100644 tests/tests/expiry/05_expiry_-c_no_shadow_file/config/etc/group create mode 100644 tests/tests/expiry/05_expiry_-c_no_shadow_file/config/etc/gshadow create mode 100644 tests/tests/expiry/05_expiry_-c_no_shadow_file/config/etc/passwd create mode 100644 tests/tests/expiry/05_expiry_-c_no_shadow_file/config/etc/shadow create mode 100755 tests/tests/expiry/05_expiry_-c_no_shadow_file/expiry.exp create mode 100755 tests/tests/expiry/05_expiry_-c_no_shadow_file/expiry.test create mode 100644 tests/tests/expiry/06_expiry_-c_no_shadow_entry/config/etc/group create mode 100644 tests/tests/expiry/06_expiry_-c_no_shadow_entry/config/etc/gshadow create mode 100644 tests/tests/expiry/06_expiry_-c_no_shadow_entry/config/etc/passwd create mode 100644 tests/tests/expiry/06_expiry_-c_no_shadow_entry/config/etc/shadow create mode 100755 tests/tests/expiry/06_expiry_-c_no_shadow_entry/expiry.exp create mode 100755 tests/tests/expiry/06_expiry_-c_no_shadow_entry/expiry.test create mode 100644 tests/tests/expiry/07_expiry_-c_expired_account/config/etc/group create mode 100644 tests/tests/expiry/07_expiry_-c_expired_account/config/etc/gshadow create mode 100644 tests/tests/expiry/07_expiry_-c_expired_account/config/etc/passwd create mode 100644 tests/tests/expiry/07_expiry_-c_expired_account/config/etc/shadow create mode 100755 tests/tests/expiry/07_expiry_-c_expired_account/expiry.exp create mode 100755 tests/tests/expiry/07_expiry_-c_expired_account/expiry.test create mode 100644 tests/tests/expiry/08_expiry_-c_expired_max+inact/config/etc/group create mode 100644 tests/tests/expiry/08_expiry_-c_expired_max+inact/config/etc/gshadow create mode 100644 tests/tests/expiry/08_expiry_-c_expired_max+inact/config/etc/passwd create mode 100644 tests/tests/expiry/08_expiry_-c_expired_max+inact/config/etc/shadow create mode 100755 tests/tests/expiry/08_expiry_-c_expired_max+inact/expiry.exp create mode 100755 tests/tests/expiry/08_expiry_-c_expired_max+inact/expiry.test create mode 100644 tests/tests/expiry/09_expiry_-c_expired_not_inactive/config/etc/group create mode 100644 tests/tests/expiry/09_expiry_-c_expired_not_inactive/config/etc/gshadow create mode 100644 tests/tests/expiry/09_expiry_-c_expired_not_inactive/config/etc/passwd create mode 100644 tests/tests/expiry/09_expiry_-c_expired_not_inactive/config/etc/shadow create mode 100755 tests/tests/expiry/09_expiry_-c_expired_not_inactive/expiry.exp create mode 100755 tests/tests/expiry/09_expiry_-c_expired_not_inactive/expiry.test create mode 100644 tests/tests/expiry/10_expiry_bad_option/config/etc/group create mode 100644 tests/tests/expiry/10_expiry_bad_option/config/etc/gshadow create mode 100644 tests/tests/expiry/10_expiry_bad_option/config/etc/passwd create mode 100644 tests/tests/expiry/10_expiry_bad_option/config/etc/shadow create mode 100644 tests/tests/expiry/10_expiry_bad_option/data/usage.out create mode 100755 tests/tests/expiry/10_expiry_bad_option/expiry.test create mode 100644 tests/tests/expiry/11_expiry_usage/config/etc/group create mode 100644 tests/tests/expiry/11_expiry_usage/config/etc/gshadow create mode 100644 tests/tests/expiry/11_expiry_usage/config/etc/passwd create mode 100644 tests/tests/expiry/11_expiry_usage/config/etc/shadow create mode 100644 tests/tests/expiry/11_expiry_usage/data/usage.out create mode 100755 tests/tests/expiry/11_expiry_usage/expiry.test create mode 100644 tests/tests/expiry/12_expiry_extra_arg/config/etc/group create mode 100644 tests/tests/expiry/12_expiry_extra_arg/config/etc/gshadow create mode 100644 tests/tests/expiry/12_expiry_extra_arg/config/etc/passwd create mode 100644 tests/tests/expiry/12_expiry_extra_arg/config/etc/shadow create mode 100644 tests/tests/expiry/12_expiry_extra_arg/data/usage.out create mode 100755 tests/tests/expiry/12_expiry_extra_arg/expiry.test create mode 100644 tests/tests/expiry/13_expiry_usage-c-f/config/etc/group create mode 100644 tests/tests/expiry/13_expiry_usage-c-f/config/etc/gshadow create mode 100644 tests/tests/expiry/13_expiry_usage-c-f/config/etc/passwd create mode 100644 tests/tests/expiry/13_expiry_usage-c-f/config/etc/shadow create mode 100644 tests/tests/expiry/13_expiry_usage-c-f/data/usage.out create mode 100755 tests/tests/expiry/13_expiry_usage-c-f/expiry.test create mode 100755 tests/tests/failures/chage/01_chage_openRW_passwd_failure/chage.test create mode 100644 tests/tests/failures/chage/01_chage_openRW_passwd_failure/config.txt create mode 100644 tests/tests/failures/chage/01_chage_openRW_passwd_failure/config/etc/group create mode 100644 tests/tests/failures/chage/01_chage_openRW_passwd_failure/config/etc/gshadow create mode 100644 tests/tests/failures/chage/01_chage_openRW_passwd_failure/config/etc/login.defs create mode 100644 tests/tests/failures/chage/01_chage_openRW_passwd_failure/config/etc/passwd create mode 100644 tests/tests/failures/chage/01_chage_openRW_passwd_failure/config/etc/shadow create mode 100644 tests/tests/failures/chage/01_chage_openRW_passwd_failure/data/chage.err create mode 100755 tests/tests/failures/chage/02_chage_openRO_passwd_failure/chage.test create mode 100644 tests/tests/failures/chage/02_chage_openRO_passwd_failure/config.txt create mode 100644 tests/tests/failures/chage/02_chage_openRO_passwd_failure/config/etc/group create mode 100644 tests/tests/failures/chage/02_chage_openRO_passwd_failure/config/etc/gshadow create mode 100644 tests/tests/failures/chage/02_chage_openRO_passwd_failure/config/etc/login.defs create mode 100644 tests/tests/failures/chage/02_chage_openRO_passwd_failure/config/etc/passwd create mode 100644 tests/tests/failures/chage/02_chage_openRO_passwd_failure/config/etc/shadow create mode 100644 tests/tests/failures/chage/02_chage_openRO_passwd_failure/data/chage.err create mode 100755 tests/tests/failures/chage/03_chage_openRW_shadow_failure/chage.test create mode 100644 tests/tests/failures/chage/03_chage_openRW_shadow_failure/config.txt create mode 100644 tests/tests/failures/chage/03_chage_openRW_shadow_failure/config/etc/group create mode 100644 tests/tests/failures/chage/03_chage_openRW_shadow_failure/config/etc/gshadow create mode 100644 tests/tests/failures/chage/03_chage_openRW_shadow_failure/config/etc/login.defs create mode 100644 tests/tests/failures/chage/03_chage_openRW_shadow_failure/config/etc/passwd create mode 100644 tests/tests/failures/chage/03_chage_openRW_shadow_failure/config/etc/shadow create mode 100644 tests/tests/failures/chage/03_chage_openRW_shadow_failure/data/chage.err create mode 100755 tests/tests/failures/chage/04_chage_openRO_shadow_failure/chage.test create mode 100644 tests/tests/failures/chage/04_chage_openRO_shadow_failure/config.txt create mode 100644 tests/tests/failures/chage/04_chage_openRO_shadow_failure/config/etc/group create mode 100644 tests/tests/failures/chage/04_chage_openRO_shadow_failure/config/etc/gshadow create mode 100644 tests/tests/failures/chage/04_chage_openRO_shadow_failure/config/etc/login.defs create mode 100644 tests/tests/failures/chage/04_chage_openRO_shadow_failure/config/etc/passwd create mode 100644 tests/tests/failures/chage/04_chage_openRO_shadow_failure/config/etc/shadow create mode 100644 tests/tests/failures/chage/04_chage_openRO_shadow_failure/data/chage.err create mode 100755 tests/tests/failures/chage/05_chage_rename_shadow_failure/chage.test create mode 100644 tests/tests/failures/chage/05_chage_rename_shadow_failure/config.txt create mode 100644 tests/tests/failures/chage/05_chage_rename_shadow_failure/config/etc/group create mode 100644 tests/tests/failures/chage/05_chage_rename_shadow_failure/config/etc/gshadow create mode 100644 tests/tests/failures/chage/05_chage_rename_shadow_failure/config/etc/login.defs create mode 100644 tests/tests/failures/chage/05_chage_rename_shadow_failure/config/etc/passwd create mode 100644 tests/tests/failures/chage/05_chage_rename_shadow_failure/config/etc/shadow create mode 100644 tests/tests/failures/chage/05_chage_rename_shadow_failure/data/chage.err create mode 100755 tests/tests/failures/chage/06_chage_rename_passwd_failure/chage.test create mode 100644 tests/tests/failures/chage/06_chage_rename_passwd_failure/config.txt create mode 100644 tests/tests/failures/chage/06_chage_rename_passwd_failure/config/etc/group create mode 100644 tests/tests/failures/chage/06_chage_rename_passwd_failure/config/etc/gshadow create mode 100644 tests/tests/failures/chage/06_chage_rename_passwd_failure/config/etc/login.defs create mode 100644 tests/tests/failures/chage/06_chage_rename_passwd_failure/config/etc/passwd create mode 100644 tests/tests/failures/chage/06_chage_rename_passwd_failure/config/etc/shadow create mode 100644 tests/tests/failures/chage/06_chage_rename_passwd_failure/data/chage.err create mode 100644 tests/tests/failures/chage/06_chage_rename_passwd_failure/data/shadow create mode 100755 tests/tests/failures/chgpasswd/01_chgpasswd-e_open_group_failure/chgpasswd.test create mode 100644 tests/tests/failures/chgpasswd/01_chgpasswd-e_open_group_failure/config.txt create mode 100644 tests/tests/failures/chgpasswd/01_chgpasswd-e_open_group_failure/config/etc/group create mode 100644 tests/tests/failures/chgpasswd/01_chgpasswd-e_open_group_failure/config/etc/gshadow create mode 100644 tests/tests/failures/chgpasswd/01_chgpasswd-e_open_group_failure/config/etc/login.defs create mode 100644 tests/tests/failures/chgpasswd/01_chgpasswd-e_open_group_failure/config/etc/passwd create mode 100644 tests/tests/failures/chgpasswd/01_chgpasswd-e_open_group_failure/config/etc/shadow create mode 100644 tests/tests/failures/chgpasswd/01_chgpasswd-e_open_group_failure/data/chgpasswd.err create mode 100755 tests/tests/failures/chgpasswd/02_chgpasswd-e_open_gshadow_failure/chgpasswd.test create mode 100644 tests/tests/failures/chgpasswd/02_chgpasswd-e_open_gshadow_failure/config.txt create mode 100644 tests/tests/failures/chgpasswd/02_chgpasswd-e_open_gshadow_failure/config/etc/group create mode 100644 tests/tests/failures/chgpasswd/02_chgpasswd-e_open_gshadow_failure/config/etc/gshadow create mode 100644 tests/tests/failures/chgpasswd/02_chgpasswd-e_open_gshadow_failure/config/etc/login.defs create mode 100644 tests/tests/failures/chgpasswd/02_chgpasswd-e_open_gshadow_failure/config/etc/passwd create mode 100644 tests/tests/failures/chgpasswd/02_chgpasswd-e_open_gshadow_failure/config/etc/shadow create mode 100644 tests/tests/failures/chgpasswd/02_chgpasswd-e_open_gshadow_failure/data/chgpasswd.err create mode 100755 tests/tests/failures/chgpasswd/03_chgpasswd-e_rename_group_failure/chgpasswd.test create mode 100644 tests/tests/failures/chgpasswd/03_chgpasswd-e_rename_group_failure/config.txt create mode 100644 tests/tests/failures/chgpasswd/03_chgpasswd-e_rename_group_failure/config/etc/group create mode 100644 tests/tests/failures/chgpasswd/03_chgpasswd-e_rename_group_failure/config/etc/gshadow create mode 100644 tests/tests/failures/chgpasswd/03_chgpasswd-e_rename_group_failure/config/etc/login.defs create mode 100644 tests/tests/failures/chgpasswd/03_chgpasswd-e_rename_group_failure/config/etc/passwd create mode 100644 tests/tests/failures/chgpasswd/03_chgpasswd-e_rename_group_failure/config/etc/shadow create mode 100644 tests/tests/failures/chgpasswd/03_chgpasswd-e_rename_group_failure/data/chgpasswd.err create mode 100644 tests/tests/failures/chgpasswd/03_chgpasswd-e_rename_group_failure/data/gshadow create mode 100755 tests/tests/failures/chgpasswd/04_chgpasswd-e_rename_gshadow_failure/chgpasswd.test create mode 100644 tests/tests/failures/chgpasswd/04_chgpasswd-e_rename_gshadow_failure/config.txt create mode 100644 tests/tests/failures/chgpasswd/04_chgpasswd-e_rename_gshadow_failure/config/etc/group create mode 100644 tests/tests/failures/chgpasswd/04_chgpasswd-e_rename_gshadow_failure/config/etc/gshadow create mode 100644 tests/tests/failures/chgpasswd/04_chgpasswd-e_rename_gshadow_failure/config/etc/login.defs create mode 100644 tests/tests/failures/chgpasswd/04_chgpasswd-e_rename_gshadow_failure/config/etc/passwd create mode 100644 tests/tests/failures/chgpasswd/04_chgpasswd-e_rename_gshadow_failure/config/etc/shadow create mode 100644 tests/tests/failures/chgpasswd/04_chgpasswd-e_rename_gshadow_failure/data/chgpasswd.err create mode 100755 tests/tests/failures/chpasswd-PAM/01_chpasswd-e_open_passwd_failure/chpasswd.test create mode 100644 tests/tests/failures/chpasswd-PAM/01_chpasswd-e_open_passwd_failure/config.txt create mode 100644 tests/tests/failures/chpasswd-PAM/01_chpasswd-e_open_passwd_failure/config/etc/group create mode 100644 tests/tests/failures/chpasswd-PAM/01_chpasswd-e_open_passwd_failure/config/etc/gshadow create mode 100644 tests/tests/failures/chpasswd-PAM/01_chpasswd-e_open_passwd_failure/config/etc/login.defs create mode 100644 tests/tests/failures/chpasswd-PAM/01_chpasswd-e_open_passwd_failure/config/etc/passwd create mode 100644 tests/tests/failures/chpasswd-PAM/01_chpasswd-e_open_passwd_failure/config/etc/shadow create mode 100644 tests/tests/failures/chpasswd-PAM/01_chpasswd-e_open_passwd_failure/data/chpasswd.err create mode 100755 tests/tests/failures/chpasswd-PAM/02_chpasswd-e_open_shadow_failure/chpasswd.test create mode 100644 tests/tests/failures/chpasswd-PAM/02_chpasswd-e_open_shadow_failure/config.txt create mode 100644 tests/tests/failures/chpasswd-PAM/02_chpasswd-e_open_shadow_failure/config/etc/group create mode 100644 tests/tests/failures/chpasswd-PAM/02_chpasswd-e_open_shadow_failure/config/etc/gshadow create mode 100644 tests/tests/failures/chpasswd-PAM/02_chpasswd-e_open_shadow_failure/config/etc/login.defs create mode 100644 tests/tests/failures/chpasswd-PAM/02_chpasswd-e_open_shadow_failure/config/etc/passwd create mode 100644 tests/tests/failures/chpasswd-PAM/02_chpasswd-e_open_shadow_failure/config/etc/shadow create mode 100644 tests/tests/failures/chpasswd-PAM/02_chpasswd-e_open_shadow_failure/data/chpasswd.err create mode 100755 tests/tests/failures/chpasswd-PAM/03_chpasswd-e_rename_passwd_failure/chpasswd.test create mode 100644 tests/tests/failures/chpasswd-PAM/03_chpasswd-e_rename_passwd_failure/config.txt create mode 100644 tests/tests/failures/chpasswd-PAM/03_chpasswd-e_rename_passwd_failure/config/etc/group create mode 100644 tests/tests/failures/chpasswd-PAM/03_chpasswd-e_rename_passwd_failure/config/etc/gshadow create mode 100644 tests/tests/failures/chpasswd-PAM/03_chpasswd-e_rename_passwd_failure/config/etc/login.defs create mode 100644 tests/tests/failures/chpasswd-PAM/03_chpasswd-e_rename_passwd_failure/config/etc/passwd create mode 100644 tests/tests/failures/chpasswd-PAM/03_chpasswd-e_rename_passwd_failure/config/etc/shadow create mode 100644 tests/tests/failures/chpasswd-PAM/03_chpasswd-e_rename_passwd_failure/data/chpasswd.err create mode 100644 tests/tests/failures/chpasswd-PAM/03_chpasswd-e_rename_passwd_failure/data/shadow create mode 100755 tests/tests/failures/chpasswd-PAM/04_chpasswd-e_rename_shadow_failure/chpasswd.test create mode 100644 tests/tests/failures/chpasswd-PAM/04_chpasswd-e_rename_shadow_failure/config.txt create mode 100644 tests/tests/failures/chpasswd-PAM/04_chpasswd-e_rename_shadow_failure/config/etc/group create mode 100644 tests/tests/failures/chpasswd-PAM/04_chpasswd-e_rename_shadow_failure/config/etc/gshadow create mode 100644 tests/tests/failures/chpasswd-PAM/04_chpasswd-e_rename_shadow_failure/config/etc/login.defs create mode 100644 tests/tests/failures/chpasswd-PAM/04_chpasswd-e_rename_shadow_failure/config/etc/passwd create mode 100644 tests/tests/failures/chpasswd-PAM/04_chpasswd-e_rename_shadow_failure/config/etc/shadow create mode 100644 tests/tests/failures/chpasswd-PAM/04_chpasswd-e_rename_shadow_failure/data/chpasswd.err create mode 100755 tests/tests/failures/chpasswd-PAM/05_chpasswd-e_time_0/chpasswd.test create mode 100644 tests/tests/failures/chpasswd-PAM/05_chpasswd-e_time_0/config.txt create mode 100644 tests/tests/failures/chpasswd-PAM/05_chpasswd-e_time_0/config/etc/group create mode 100644 tests/tests/failures/chpasswd-PAM/05_chpasswd-e_time_0/config/etc/gshadow create mode 100644 tests/tests/failures/chpasswd-PAM/05_chpasswd-e_time_0/config/etc/passwd create mode 100644 tests/tests/failures/chpasswd-PAM/05_chpasswd-e_time_0/config/etc/shadow create mode 100644 tests/tests/failures/chpasswd-PAM/05_chpasswd-e_time_0/data/shadow create mode 100755 tests/tests/failures/chsh/01_chsh_open_passwd_failure/chsh.test create mode 100644 tests/tests/failures/chsh/01_chsh_open_passwd_failure/config.txt create mode 100644 tests/tests/failures/chsh/01_chsh_open_passwd_failure/config/etc/group create mode 100644 tests/tests/failures/chsh/01_chsh_open_passwd_failure/config/etc/gshadow create mode 100644 tests/tests/failures/chsh/01_chsh_open_passwd_failure/config/etc/login.defs create mode 100644 tests/tests/failures/chsh/01_chsh_open_passwd_failure/config/etc/passwd create mode 100644 tests/tests/failures/chsh/01_chsh_open_passwd_failure/config/etc/shadow create mode 100644 tests/tests/failures/chsh/01_chsh_open_passwd_failure/data/chsh.err create mode 100755 tests/tests/failures/chsh/02_chsh_rename_passwd_failure/chsh.test create mode 100644 tests/tests/failures/chsh/02_chsh_rename_passwd_failure/config.txt create mode 100644 tests/tests/failures/chsh/02_chsh_rename_passwd_failure/config/etc/group create mode 100644 tests/tests/failures/chsh/02_chsh_rename_passwd_failure/config/etc/gshadow create mode 100644 tests/tests/failures/chsh/02_chsh_rename_passwd_failure/config/etc/login.defs create mode 100644 tests/tests/failures/chsh/02_chsh_rename_passwd_failure/config/etc/passwd create mode 100644 tests/tests/failures/chsh/02_chsh_rename_passwd_failure/config/etc/shadow create mode 100644 tests/tests/failures/chsh/02_chsh_rename_passwd_failure/data/chsh.err create mode 100644 tests/tests/failures/chsh/02_chsh_rename_passwd_failure/data/shadow create mode 100644 tests/tests/failures/cppw/01_cppw_open_passwd_in_failure/config.txt create mode 100644 tests/tests/failures/cppw/01_cppw_open_passwd_in_failure/config/etc/group create mode 100644 tests/tests/failures/cppw/01_cppw_open_passwd_in_failure/config/etc/gshadow create mode 100644 tests/tests/failures/cppw/01_cppw_open_passwd_in_failure/config/etc/login.defs create mode 100644 tests/tests/failures/cppw/01_cppw_open_passwd_in_failure/config/etc/passwd create mode 100644 tests/tests/failures/cppw/01_cppw_open_passwd_in_failure/config/etc/shadow create mode 100755 tests/tests/failures/cppw/01_cppw_open_passwd_in_failure/cppw.test create mode 100644 tests/tests/failures/cppw/01_cppw_open_passwd_in_failure/data/cppw.err create mode 100644 tests/tests/failures/cppw/01_cppw_open_passwd_in_failure/data/passwd create mode 100644 tests/tests/failures/cppw/02_cppw_open_passwd_backup_failure/config.txt create mode 100644 tests/tests/failures/cppw/02_cppw_open_passwd_backup_failure/config/etc/group create mode 100644 tests/tests/failures/cppw/02_cppw_open_passwd_backup_failure/config/etc/gshadow create mode 100644 tests/tests/failures/cppw/02_cppw_open_passwd_backup_failure/config/etc/login.defs create mode 100644 tests/tests/failures/cppw/02_cppw_open_passwd_backup_failure/config/etc/passwd create mode 100644 tests/tests/failures/cppw/02_cppw_open_passwd_backup_failure/config/etc/shadow create mode 100755 tests/tests/failures/cppw/02_cppw_open_passwd_backup_failure/cppw.test create mode 100644 tests/tests/failures/cppw/02_cppw_open_passwd_backup_failure/data/cppw.err create mode 100644 tests/tests/failures/cppw/02_cppw_open_passwd_backup_failure/data/passwd create mode 100644 tests/tests/failures/cppw/03_cppw_rename_passwd_failure/config.txt create mode 100644 tests/tests/failures/cppw/03_cppw_rename_passwd_failure/config/etc/group create mode 100644 tests/tests/failures/cppw/03_cppw_rename_passwd_failure/config/etc/gshadow create mode 100644 tests/tests/failures/cppw/03_cppw_rename_passwd_failure/config/etc/login.defs create mode 100644 tests/tests/failures/cppw/03_cppw_rename_passwd_failure/config/etc/passwd create mode 100644 tests/tests/failures/cppw/03_cppw_rename_passwd_failure/config/etc/shadow create mode 100755 tests/tests/failures/cppw/03_cppw_rename_passwd_failure/cppw.test create mode 100644 tests/tests/failures/cppw/03_cppw_rename_passwd_failure/data/cppw.err create mode 100644 tests/tests/failures/cppw/03_cppw_rename_passwd_failure/data/passwd create mode 100644 tests/tests/failures/gpasswd/01_gpasswd_group_open_failure/config.txt create mode 100644 tests/tests/failures/gpasswd/01_gpasswd_group_open_failure/config/etc/group create mode 100644 tests/tests/failures/gpasswd/01_gpasswd_group_open_failure/config/etc/gshadow create mode 100644 tests/tests/failures/gpasswd/01_gpasswd_group_open_failure/config/etc/login.defs create mode 100644 tests/tests/failures/gpasswd/01_gpasswd_group_open_failure/config/etc/passwd create mode 100644 tests/tests/failures/gpasswd/01_gpasswd_group_open_failure/config/etc/shadow create mode 100644 tests/tests/failures/gpasswd/01_gpasswd_group_open_failure/data/gpasswd.err create mode 100755 tests/tests/failures/gpasswd/01_gpasswd_group_open_failure/gpasswd.test create mode 100644 tests/tests/failures/gpasswd/02_gpasswd_gshadow_open_failure/config.txt create mode 100644 tests/tests/failures/gpasswd/02_gpasswd_gshadow_open_failure/config/etc/group create mode 100644 tests/tests/failures/gpasswd/02_gpasswd_gshadow_open_failure/config/etc/gshadow create mode 100644 tests/tests/failures/gpasswd/02_gpasswd_gshadow_open_failure/config/etc/login.defs create mode 100644 tests/tests/failures/gpasswd/02_gpasswd_gshadow_open_failure/config/etc/passwd create mode 100644 tests/tests/failures/gpasswd/02_gpasswd_gshadow_open_failure/config/etc/shadow create mode 100644 tests/tests/failures/gpasswd/02_gpasswd_gshadow_open_failure/data/gpasswd.err create mode 100755 tests/tests/failures/gpasswd/02_gpasswd_gshadow_open_failure/gpasswd.test create mode 100644 tests/tests/failures/gpasswd/03_gpasswd-a_group_open_failure/config.txt create mode 100644 tests/tests/failures/gpasswd/03_gpasswd-a_group_open_failure/config/etc/group create mode 100644 tests/tests/failures/gpasswd/03_gpasswd-a_group_open_failure/config/etc/gshadow create mode 100644 tests/tests/failures/gpasswd/03_gpasswd-a_group_open_failure/config/etc/login.defs create mode 100644 tests/tests/failures/gpasswd/03_gpasswd-a_group_open_failure/config/etc/passwd create mode 100644 tests/tests/failures/gpasswd/03_gpasswd-a_group_open_failure/config/etc/shadow create mode 100644 tests/tests/failures/gpasswd/03_gpasswd-a_group_open_failure/data/gpasswd.err create mode 100755 tests/tests/failures/gpasswd/03_gpasswd-a_group_open_failure/gpasswd.test create mode 100644 tests/tests/failures/gpasswd/04_gpasswd-d_group_open_failure/config.txt create mode 100644 tests/tests/failures/gpasswd/04_gpasswd-d_group_open_failure/config/etc/group create mode 100644 tests/tests/failures/gpasswd/04_gpasswd-d_group_open_failure/config/etc/gshadow create mode 100644 tests/tests/failures/gpasswd/04_gpasswd-d_group_open_failure/config/etc/login.defs create mode 100644 tests/tests/failures/gpasswd/04_gpasswd-d_group_open_failure/config/etc/passwd create mode 100644 tests/tests/failures/gpasswd/04_gpasswd-d_group_open_failure/config/etc/shadow create mode 100644 tests/tests/failures/gpasswd/04_gpasswd-d_group_open_failure/data/gpasswd.err create mode 100755 tests/tests/failures/gpasswd/04_gpasswd-d_group_open_failure/gpasswd.test create mode 100644 tests/tests/failures/gpasswd/05_gpasswd-r_group_open_failure/config.txt create mode 100644 tests/tests/failures/gpasswd/05_gpasswd-r_group_open_failure/config/etc/group create mode 100644 tests/tests/failures/gpasswd/05_gpasswd-r_group_open_failure/config/etc/gshadow create mode 100644 tests/tests/failures/gpasswd/05_gpasswd-r_group_open_failure/config/etc/login.defs create mode 100644 tests/tests/failures/gpasswd/05_gpasswd-r_group_open_failure/config/etc/passwd create mode 100644 tests/tests/failures/gpasswd/05_gpasswd-r_group_open_failure/config/etc/shadow create mode 100644 tests/tests/failures/gpasswd/05_gpasswd-r_group_open_failure/data/gpasswd.err create mode 100755 tests/tests/failures/gpasswd/05_gpasswd-r_group_open_failure/gpasswd.test create mode 100644 tests/tests/failures/gpasswd/06_gpasswd-R_gshadow_open_failure/config.txt create mode 100644 tests/tests/failures/gpasswd/06_gpasswd-R_gshadow_open_failure/config/etc/group create mode 100644 tests/tests/failures/gpasswd/06_gpasswd-R_gshadow_open_failure/config/etc/gshadow create mode 100644 tests/tests/failures/gpasswd/06_gpasswd-R_gshadow_open_failure/config/etc/login.defs create mode 100644 tests/tests/failures/gpasswd/06_gpasswd-R_gshadow_open_failure/config/etc/passwd create mode 100644 tests/tests/failures/gpasswd/06_gpasswd-R_gshadow_open_failure/config/etc/shadow create mode 100644 tests/tests/failures/gpasswd/06_gpasswd-R_gshadow_open_failure/data/gpasswd.err create mode 100755 tests/tests/failures/gpasswd/06_gpasswd-R_gshadow_open_failure/gpasswd.test create mode 100644 tests/tests/failures/gpasswd/07_gpasswd-A_gshadow_open_failure/config.txt create mode 100644 tests/tests/failures/gpasswd/07_gpasswd-A_gshadow_open_failure/config/etc/group create mode 100644 tests/tests/failures/gpasswd/07_gpasswd-A_gshadow_open_failure/config/etc/gshadow create mode 100644 tests/tests/failures/gpasswd/07_gpasswd-A_gshadow_open_failure/config/etc/login.defs create mode 100644 tests/tests/failures/gpasswd/07_gpasswd-A_gshadow_open_failure/config/etc/passwd create mode 100644 tests/tests/failures/gpasswd/07_gpasswd-A_gshadow_open_failure/config/etc/shadow create mode 100644 tests/tests/failures/gpasswd/07_gpasswd-A_gshadow_open_failure/data/gpasswd.err create mode 100755 tests/tests/failures/gpasswd/07_gpasswd-A_gshadow_open_failure/gpasswd.test create mode 100644 tests/tests/failures/gpasswd/08_gpasswd_group_openRO_failure/config.txt create mode 100644 tests/tests/failures/gpasswd/08_gpasswd_group_openRO_failure/config/etc/group create mode 100644 tests/tests/failures/gpasswd/08_gpasswd_group_openRO_failure/config/etc/gshadow create mode 100644 tests/tests/failures/gpasswd/08_gpasswd_group_openRO_failure/config/etc/login.defs create mode 100644 tests/tests/failures/gpasswd/08_gpasswd_group_openRO_failure/config/etc/passwd create mode 100644 tests/tests/failures/gpasswd/08_gpasswd_group_openRO_failure/config/etc/shadow create mode 100644 tests/tests/failures/gpasswd/08_gpasswd_group_openRO_failure/data/gpasswd.err create mode 100755 tests/tests/failures/gpasswd/08_gpasswd_group_openRO_failure/gpasswd.test create mode 100644 tests/tests/failures/gpasswd/09_gpasswd_gshadow_openRO_failure/config.txt create mode 100644 tests/tests/failures/gpasswd/09_gpasswd_gshadow_openRO_failure/config/etc/group create mode 100644 tests/tests/failures/gpasswd/09_gpasswd_gshadow_openRO_failure/config/etc/gshadow create mode 100644 tests/tests/failures/gpasswd/09_gpasswd_gshadow_openRO_failure/config/etc/login.defs create mode 100644 tests/tests/failures/gpasswd/09_gpasswd_gshadow_openRO_failure/config/etc/passwd create mode 100644 tests/tests/failures/gpasswd/09_gpasswd_gshadow_openRO_failure/config/etc/shadow create mode 100644 tests/tests/failures/gpasswd/09_gpasswd_gshadow_openRO_failure/data/gpasswd.err create mode 100755 tests/tests/failures/gpasswd/09_gpasswd_gshadow_openRO_failure/gpasswd.test create mode 100644 tests/tests/failures/gpasswd/10_gpasswd_group_rename_failure/config.txt create mode 100644 tests/tests/failures/gpasswd/10_gpasswd_group_rename_failure/config/etc/group create mode 100644 tests/tests/failures/gpasswd/10_gpasswd_group_rename_failure/config/etc/gshadow create mode 100644 tests/tests/failures/gpasswd/10_gpasswd_group_rename_failure/config/etc/login.defs create mode 100644 tests/tests/failures/gpasswd/10_gpasswd_group_rename_failure/config/etc/passwd create mode 100644 tests/tests/failures/gpasswd/10_gpasswd_group_rename_failure/config/etc/shadow create mode 100644 tests/tests/failures/gpasswd/10_gpasswd_group_rename_failure/data/gpasswd.err create mode 100755 tests/tests/failures/gpasswd/10_gpasswd_group_rename_failure/gpasswd.test create mode 100644 tests/tests/failures/gpasswd/11_gpasswd_gshadow_rename_failure/config.txt create mode 100644 tests/tests/failures/gpasswd/11_gpasswd_gshadow_rename_failure/config/etc/group create mode 100644 tests/tests/failures/gpasswd/11_gpasswd_gshadow_rename_failure/config/etc/gshadow create mode 100644 tests/tests/failures/gpasswd/11_gpasswd_gshadow_rename_failure/config/etc/login.defs create mode 100644 tests/tests/failures/gpasswd/11_gpasswd_gshadow_rename_failure/config/etc/passwd create mode 100644 tests/tests/failures/gpasswd/11_gpasswd_gshadow_rename_failure/config/etc/shadow create mode 100644 tests/tests/failures/gpasswd/11_gpasswd_gshadow_rename_failure/data/gpasswd.err create mode 100644 tests/tests/failures/gpasswd/11_gpasswd_gshadow_rename_failure/data/group create mode 100755 tests/tests/failures/gpasswd/11_gpasswd_gshadow_rename_failure/gpasswd.test create mode 100644 tests/tests/failures/groupadd/01_groupadd_gshadow_rename_failure/config.txt create mode 100644 tests/tests/failures/groupadd/01_groupadd_gshadow_rename_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/groupadd/01_groupadd_gshadow_rename_failure/config/etc/group create mode 100644 tests/tests/failures/groupadd/01_groupadd_gshadow_rename_failure/config/etc/gshadow create mode 100644 tests/tests/failures/groupadd/01_groupadd_gshadow_rename_failure/config/etc/login.defs create mode 100644 tests/tests/failures/groupadd/01_groupadd_gshadow_rename_failure/config/etc/passwd create mode 100644 tests/tests/failures/groupadd/01_groupadd_gshadow_rename_failure/config/etc/shadow create mode 100644 tests/tests/failures/groupadd/01_groupadd_gshadow_rename_failure/data/group create mode 100644 tests/tests/failures/groupadd/01_groupadd_gshadow_rename_failure/data/groupadd.err create mode 100755 tests/tests/failures/groupadd/01_groupadd_gshadow_rename_failure/groupadd.test create mode 100644 tests/tests/failures/groupadd/02_groupadd_group_rename_failure/config.txt create mode 100644 tests/tests/failures/groupadd/02_groupadd_group_rename_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/groupadd/02_groupadd_group_rename_failure/config/etc/group create mode 100644 tests/tests/failures/groupadd/02_groupadd_group_rename_failure/config/etc/gshadow create mode 100644 tests/tests/failures/groupadd/02_groupadd_group_rename_failure/config/etc/login.defs create mode 100644 tests/tests/failures/groupadd/02_groupadd_group_rename_failure/config/etc/passwd create mode 100644 tests/tests/failures/groupadd/02_groupadd_group_rename_failure/config/etc/shadow create mode 100644 tests/tests/failures/groupadd/02_groupadd_group_rename_failure/data/groupadd.err create mode 100755 tests/tests/failures/groupadd/02_groupadd_group_rename_failure/groupadd.test create mode 100644 tests/tests/failures/groupadd/03_groupadd_gshadow_open_failure/config.txt create mode 100644 tests/tests/failures/groupadd/03_groupadd_gshadow_open_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/groupadd/03_groupadd_gshadow_open_failure/config/etc/group create mode 100644 tests/tests/failures/groupadd/03_groupadd_gshadow_open_failure/config/etc/gshadow create mode 100644 tests/tests/failures/groupadd/03_groupadd_gshadow_open_failure/config/etc/login.defs create mode 100644 tests/tests/failures/groupadd/03_groupadd_gshadow_open_failure/config/etc/passwd create mode 100644 tests/tests/failures/groupadd/03_groupadd_gshadow_open_failure/config/etc/shadow create mode 100644 tests/tests/failures/groupadd/03_groupadd_gshadow_open_failure/data/groupadd.err create mode 100755 tests/tests/failures/groupadd/03_groupadd_gshadow_open_failure/groupadd.test create mode 100644 tests/tests/failures/groupadd/04_groupadd_group_open_failure/config.txt create mode 100644 tests/tests/failures/groupadd/04_groupadd_group_open_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/groupadd/04_groupadd_group_open_failure/config/etc/group create mode 100644 tests/tests/failures/groupadd/04_groupadd_group_open_failure/config/etc/gshadow create mode 100644 tests/tests/failures/groupadd/04_groupadd_group_open_failure/config/etc/login.defs create mode 100644 tests/tests/failures/groupadd/04_groupadd_group_open_failure/config/etc/passwd create mode 100644 tests/tests/failures/groupadd/04_groupadd_group_open_failure/config/etc/shadow create mode 100644 tests/tests/failures/groupadd/04_groupadd_group_open_failure/data/groupadd.err create mode 100755 tests/tests/failures/groupadd/04_groupadd_group_open_failure/groupadd.test create mode 100644 tests/tests/failures/groupdel/01_groupdel_gshadow_rename_failure/config.txt create mode 100644 tests/tests/failures/groupdel/01_groupdel_gshadow_rename_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/groupdel/01_groupdel_gshadow_rename_failure/config/etc/group create mode 100644 tests/tests/failures/groupdel/01_groupdel_gshadow_rename_failure/config/etc/gshadow create mode 100644 tests/tests/failures/groupdel/01_groupdel_gshadow_rename_failure/config/etc/login.defs create mode 100644 tests/tests/failures/groupdel/01_groupdel_gshadow_rename_failure/config/etc/passwd create mode 100644 tests/tests/failures/groupdel/01_groupdel_gshadow_rename_failure/config/etc/shadow create mode 100644 tests/tests/failures/groupdel/01_groupdel_gshadow_rename_failure/data/group create mode 100644 tests/tests/failures/groupdel/01_groupdel_gshadow_rename_failure/data/groupdel.err create mode 100755 tests/tests/failures/groupdel/01_groupdel_gshadow_rename_failure/groupdel.test create mode 100644 tests/tests/failures/groupdel/02_groupdel_group_rename_failure/config.txt create mode 100644 tests/tests/failures/groupdel/02_groupdel_group_rename_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/groupdel/02_groupdel_group_rename_failure/config/etc/group create mode 100644 tests/tests/failures/groupdel/02_groupdel_group_rename_failure/config/etc/gshadow create mode 100644 tests/tests/failures/groupdel/02_groupdel_group_rename_failure/config/etc/login.defs create mode 100644 tests/tests/failures/groupdel/02_groupdel_group_rename_failure/config/etc/passwd create mode 100644 tests/tests/failures/groupdel/02_groupdel_group_rename_failure/config/etc/shadow create mode 100644 tests/tests/failures/groupdel/02_groupdel_group_rename_failure/data/groupdel.err create mode 100755 tests/tests/failures/groupdel/02_groupdel_group_rename_failure/groupdel.test create mode 100644 tests/tests/failures/groupdel/03_groupdel_gshadow_open_failure/config.txt create mode 100644 tests/tests/failures/groupdel/03_groupdel_gshadow_open_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/groupdel/03_groupdel_gshadow_open_failure/config/etc/group create mode 100644 tests/tests/failures/groupdel/03_groupdel_gshadow_open_failure/config/etc/gshadow create mode 100644 tests/tests/failures/groupdel/03_groupdel_gshadow_open_failure/config/etc/login.defs create mode 100644 tests/tests/failures/groupdel/03_groupdel_gshadow_open_failure/config/etc/passwd create mode 100644 tests/tests/failures/groupdel/03_groupdel_gshadow_open_failure/config/etc/shadow create mode 100644 tests/tests/failures/groupdel/03_groupdel_gshadow_open_failure/data/groupdel.err create mode 100755 tests/tests/failures/groupdel/03_groupdel_gshadow_open_failure/groupdel.test create mode 100644 tests/tests/failures/groupdel/04_groupdel_group_open_failure/config.txt create mode 100644 tests/tests/failures/groupdel/04_groupdel_group_open_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/groupdel/04_groupdel_group_open_failure/config/etc/group create mode 100644 tests/tests/failures/groupdel/04_groupdel_group_open_failure/config/etc/gshadow create mode 100644 tests/tests/failures/groupdel/04_groupdel_group_open_failure/config/etc/login.defs create mode 100644 tests/tests/failures/groupdel/04_groupdel_group_open_failure/config/etc/passwd create mode 100644 tests/tests/failures/groupdel/04_groupdel_group_open_failure/config/etc/shadow create mode 100644 tests/tests/failures/groupdel/04_groupdel_group_open_failure/data/groupdel.err create mode 100755 tests/tests/failures/groupdel/04_groupdel_group_open_failure/groupdel.test create mode 100644 tests/tests/failures/groupmems/01_groupmems_group_open_failure/config.txt create mode 100644 tests/tests/failures/groupmems/01_groupmems_group_open_failure/config/etc/group create mode 100644 tests/tests/failures/groupmems/01_groupmems_group_open_failure/config/etc/gshadow create mode 100644 tests/tests/failures/groupmems/01_groupmems_group_open_failure/config/etc/passwd create mode 100644 tests/tests/failures/groupmems/01_groupmems_group_open_failure/config/etc/shadow create mode 100644 tests/tests/failures/groupmems/01_groupmems_group_open_failure/data/groupmems.err create mode 100755 tests/tests/failures/groupmems/01_groupmems_group_open_failure/groupmems.test create mode 100644 tests/tests/failures/groupmems/02_groupmems_gshadow_open_failure/config.txt create mode 100644 tests/tests/failures/groupmems/02_groupmems_gshadow_open_failure/config/etc/group create mode 100644 tests/tests/failures/groupmems/02_groupmems_gshadow_open_failure/config/etc/gshadow create mode 100644 tests/tests/failures/groupmems/02_groupmems_gshadow_open_failure/config/etc/passwd create mode 100644 tests/tests/failures/groupmems/02_groupmems_gshadow_open_failure/config/etc/shadow create mode 100644 tests/tests/failures/groupmems/02_groupmems_gshadow_open_failure/data/groupmems.err create mode 100755 tests/tests/failures/groupmems/02_groupmems_gshadow_open_failure/groupmems.test create mode 100644 tests/tests/failures/groupmod/01_groupmod_change_group_name_gshadow_rename_failure/config.txt create mode 100644 tests/tests/failures/groupmod/01_groupmod_change_group_name_gshadow_rename_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/groupmod/01_groupmod_change_group_name_gshadow_rename_failure/config/etc/group create mode 100644 tests/tests/failures/groupmod/01_groupmod_change_group_name_gshadow_rename_failure/config/etc/gshadow create mode 100644 tests/tests/failures/groupmod/01_groupmod_change_group_name_gshadow_rename_failure/config/etc/login.defs create mode 100644 tests/tests/failures/groupmod/01_groupmod_change_group_name_gshadow_rename_failure/config/etc/passwd create mode 100644 tests/tests/failures/groupmod/01_groupmod_change_group_name_gshadow_rename_failure/config/etc/shadow create mode 100644 tests/tests/failures/groupmod/01_groupmod_change_group_name_gshadow_rename_failure/data/group create mode 100644 tests/tests/failures/groupmod/01_groupmod_change_group_name_gshadow_rename_failure/data/groupmod.err create mode 100755 tests/tests/failures/groupmod/01_groupmod_change_group_name_gshadow_rename_failure/groupmod.test create mode 100644 tests/tests/failures/groupmod/02_groupmod_change_gid_change_primary_group_passwd_rename_failure/config.txt create mode 100644 tests/tests/failures/groupmod/02_groupmod_change_gid_change_primary_group_passwd_rename_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/groupmod/02_groupmod_change_gid_change_primary_group_passwd_rename_failure/config/etc/group create mode 100644 tests/tests/failures/groupmod/02_groupmod_change_gid_change_primary_group_passwd_rename_failure/config/etc/gshadow create mode 100644 tests/tests/failures/groupmod/02_groupmod_change_gid_change_primary_group_passwd_rename_failure/config/etc/login.defs create mode 100644 tests/tests/failures/groupmod/02_groupmod_change_gid_change_primary_group_passwd_rename_failure/config/etc/passwd create mode 100644 tests/tests/failures/groupmod/02_groupmod_change_gid_change_primary_group_passwd_rename_failure/config/etc/shadow create mode 100644 tests/tests/failures/groupmod/02_groupmod_change_gid_change_primary_group_passwd_rename_failure/data/group create mode 100644 tests/tests/failures/groupmod/02_groupmod_change_gid_change_primary_group_passwd_rename_failure/data/groupmod.err create mode 100755 tests/tests/failures/groupmod/02_groupmod_change_gid_change_primary_group_passwd_rename_failure/groupmod.test create mode 100644 tests/tests/failures/groupmod/03_groupmod_change_group_name_group_rename_failure/config.txt create mode 100644 tests/tests/failures/groupmod/03_groupmod_change_group_name_group_rename_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/groupmod/03_groupmod_change_group_name_group_rename_failure/config/etc/group create mode 100644 tests/tests/failures/groupmod/03_groupmod_change_group_name_group_rename_failure/config/etc/gshadow create mode 100644 tests/tests/failures/groupmod/03_groupmod_change_group_name_group_rename_failure/config/etc/login.defs create mode 100644 tests/tests/failures/groupmod/03_groupmod_change_group_name_group_rename_failure/config/etc/passwd create mode 100644 tests/tests/failures/groupmod/03_groupmod_change_group_name_group_rename_failure/config/etc/shadow create mode 100644 tests/tests/failures/groupmod/03_groupmod_change_group_name_group_rename_failure/data/groupmod.err create mode 100755 tests/tests/failures/groupmod/03_groupmod_change_group_name_group_rename_failure/groupmod.test create mode 100644 tests/tests/failures/groupmod/04_groupmod_group_open_failure/config.txt create mode 100644 tests/tests/failures/groupmod/04_groupmod_group_open_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/groupmod/04_groupmod_group_open_failure/config/etc/group create mode 100644 tests/tests/failures/groupmod/04_groupmod_group_open_failure/config/etc/gshadow create mode 100644 tests/tests/failures/groupmod/04_groupmod_group_open_failure/config/etc/login.defs create mode 100644 tests/tests/failures/groupmod/04_groupmod_group_open_failure/config/etc/passwd create mode 100644 tests/tests/failures/groupmod/04_groupmod_group_open_failure/config/etc/shadow create mode 100644 tests/tests/failures/groupmod/04_groupmod_group_open_failure/data/groupmod.err create mode 100755 tests/tests/failures/groupmod/04_groupmod_group_open_failure/groupmod.test create mode 100644 tests/tests/failures/groupmod/05_groupmod_gshadow_open_failure/config.txt create mode 100644 tests/tests/failures/groupmod/05_groupmod_gshadow_open_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/groupmod/05_groupmod_gshadow_open_failure/config/etc/group create mode 100644 tests/tests/failures/groupmod/05_groupmod_gshadow_open_failure/config/etc/gshadow create mode 100644 tests/tests/failures/groupmod/05_groupmod_gshadow_open_failure/config/etc/login.defs create mode 100644 tests/tests/failures/groupmod/05_groupmod_gshadow_open_failure/config/etc/passwd create mode 100644 tests/tests/failures/groupmod/05_groupmod_gshadow_open_failure/config/etc/shadow create mode 100644 tests/tests/failures/groupmod/05_groupmod_gshadow_open_failure/data/groupmod.err create mode 100755 tests/tests/failures/groupmod/05_groupmod_gshadow_open_failure/groupmod.test create mode 100644 tests/tests/failures/groupmod/06_groupmod_-g_no_gshadow_open_failure/config.txt create mode 100644 tests/tests/failures/groupmod/06_groupmod_-g_no_gshadow_open_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/groupmod/06_groupmod_-g_no_gshadow_open_failure/config/etc/group create mode 100644 tests/tests/failures/groupmod/06_groupmod_-g_no_gshadow_open_failure/config/etc/gshadow create mode 100644 tests/tests/failures/groupmod/06_groupmod_-g_no_gshadow_open_failure/config/etc/login.defs create mode 100644 tests/tests/failures/groupmod/06_groupmod_-g_no_gshadow_open_failure/config/etc/passwd create mode 100644 tests/tests/failures/groupmod/06_groupmod_-g_no_gshadow_open_failure/config/etc/shadow create mode 100644 tests/tests/failures/groupmod/06_groupmod_-g_no_gshadow_open_failure/data/group create mode 100755 tests/tests/failures/groupmod/06_groupmod_-g_no_gshadow_open_failure/groupmod.test create mode 100644 tests/tests/failures/groupmod/07_groupmod_passwd_open_failure/config.txt create mode 100644 tests/tests/failures/groupmod/07_groupmod_passwd_open_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/groupmod/07_groupmod_passwd_open_failure/config/etc/group create mode 100644 tests/tests/failures/groupmod/07_groupmod_passwd_open_failure/config/etc/gshadow create mode 100644 tests/tests/failures/groupmod/07_groupmod_passwd_open_failure/config/etc/login.defs create mode 100644 tests/tests/failures/groupmod/07_groupmod_passwd_open_failure/config/etc/passwd create mode 100644 tests/tests/failures/groupmod/07_groupmod_passwd_open_failure/config/etc/shadow create mode 100644 tests/tests/failures/groupmod/07_groupmod_passwd_open_failure/data/groupmod.err create mode 100755 tests/tests/failures/groupmod/07_groupmod_passwd_open_failure/groupmod.test create mode 100644 tests/tests/failures/groupmod/08_groupmod_-g_same_gid_no_passwd_open_failure/config.txt create mode 100644 tests/tests/failures/groupmod/08_groupmod_-g_same_gid_no_passwd_open_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/groupmod/08_groupmod_-g_same_gid_no_passwd_open_failure/config/etc/group create mode 100644 tests/tests/failures/groupmod/08_groupmod_-g_same_gid_no_passwd_open_failure/config/etc/gshadow create mode 100644 tests/tests/failures/groupmod/08_groupmod_-g_same_gid_no_passwd_open_failure/config/etc/login.defs create mode 100644 tests/tests/failures/groupmod/08_groupmod_-g_same_gid_no_passwd_open_failure/config/etc/passwd create mode 100644 tests/tests/failures/groupmod/08_groupmod_-g_same_gid_no_passwd_open_failure/config/etc/shadow create mode 100755 tests/tests/failures/groupmod/08_groupmod_-g_same_gid_no_passwd_open_failure/groupmod.test create mode 100644 tests/tests/failures/groupmod/09_groupmod_-n_no_passwd_open_failure/config.txt create mode 100644 tests/tests/failures/groupmod/09_groupmod_-n_no_passwd_open_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/groupmod/09_groupmod_-n_no_passwd_open_failure/config/etc/group create mode 100644 tests/tests/failures/groupmod/09_groupmod_-n_no_passwd_open_failure/config/etc/gshadow create mode 100644 tests/tests/failures/groupmod/09_groupmod_-n_no_passwd_open_failure/config/etc/login.defs create mode 100644 tests/tests/failures/groupmod/09_groupmod_-n_no_passwd_open_failure/config/etc/passwd create mode 100644 tests/tests/failures/groupmod/09_groupmod_-n_no_passwd_open_failure/config/etc/shadow create mode 100644 tests/tests/failures/groupmod/09_groupmod_-n_no_passwd_open_failure/data/group create mode 100644 tests/tests/failures/groupmod/09_groupmod_-n_no_passwd_open_failure/data/gshadow create mode 100755 tests/tests/failures/groupmod/09_groupmod_-n_no_passwd_open_failure/groupmod.test create mode 100644 tests/tests/failures/grpck/01_grpck_system_group_open_failure/config.txt create mode 100644 tests/tests/failures/grpck/01_grpck_system_group_open_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/grpck/01_grpck_system_group_open_failure/config/etc/group create mode 100644 tests/tests/failures/grpck/01_grpck_system_group_open_failure/config/etc/gshadow create mode 100644 tests/tests/failures/grpck/01_grpck_system_group_open_failure/config/etc/login.defs create mode 100644 tests/tests/failures/grpck/01_grpck_system_group_open_failure/config/etc/passwd create mode 100644 tests/tests/failures/grpck/01_grpck_system_group_open_failure/config/etc/shadow create mode 100644 tests/tests/failures/grpck/01_grpck_system_group_open_failure/data/grpck.err create mode 100755 tests/tests/failures/grpck/01_grpck_system_group_open_failure/grpck.test create mode 100644 tests/tests/failures/grpck/02_grpck_group_open_failure/config.txt create mode 100644 tests/tests/failures/grpck/02_grpck_group_open_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/grpck/02_grpck_group_open_failure/config/etc/group create mode 100644 tests/tests/failures/grpck/02_grpck_group_open_failure/config/etc/gshadow create mode 100644 tests/tests/failures/grpck/02_grpck_group_open_failure/config/etc/login.defs create mode 100644 tests/tests/failures/grpck/02_grpck_group_open_failure/config/etc/passwd create mode 100644 tests/tests/failures/grpck/02_grpck_group_open_failure/config/etc/shadow create mode 100644 tests/tests/failures/grpck/02_grpck_group_open_failure/data/grpck.err create mode 100755 tests/tests/failures/grpck/02_grpck_group_open_failure/grpck.test create mode 100644 tests/tests/failures/grpck/03_grpck_system_gshadow_open_failure/config.txt create mode 100644 tests/tests/failures/grpck/03_grpck_system_gshadow_open_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/grpck/03_grpck_system_gshadow_open_failure/config/etc/group create mode 100644 tests/tests/failures/grpck/03_grpck_system_gshadow_open_failure/config/etc/gshadow create mode 100644 tests/tests/failures/grpck/03_grpck_system_gshadow_open_failure/config/etc/login.defs create mode 100644 tests/tests/failures/grpck/03_grpck_system_gshadow_open_failure/config/etc/passwd create mode 100644 tests/tests/failures/grpck/03_grpck_system_gshadow_open_failure/config/etc/shadow create mode 100644 tests/tests/failures/grpck/03_grpck_system_gshadow_open_failure/data/grpck.err create mode 100755 tests/tests/failures/grpck/03_grpck_system_gshadow_open_failure/grpck.test create mode 100644 tests/tests/failures/grpck/04_grpck_gshadow_open_failure/config.txt create mode 100644 tests/tests/failures/grpck/04_grpck_gshadow_open_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/grpck/04_grpck_gshadow_open_failure/config/etc/group create mode 100644 tests/tests/failures/grpck/04_grpck_gshadow_open_failure/config/etc/gshadow create mode 100644 tests/tests/failures/grpck/04_grpck_gshadow_open_failure/config/etc/login.defs create mode 100644 tests/tests/failures/grpck/04_grpck_gshadow_open_failure/config/etc/passwd create mode 100644 tests/tests/failures/grpck/04_grpck_gshadow_open_failure/config/etc/shadow create mode 100644 tests/tests/failures/grpck/04_grpck_gshadow_open_failure/data/group create mode 100644 tests/tests/failures/grpck/04_grpck_gshadow_open_failure/data/grpck.err create mode 100644 tests/tests/failures/grpck/04_grpck_gshadow_open_failure/data/gshadow create mode 100755 tests/tests/failures/grpck/04_grpck_gshadow_open_failure/grpck.test create mode 100644 tests/tests/failures/grpck/05_grpck_sort_group_rename_failure/config.txt create mode 100644 tests/tests/failures/grpck/05_grpck_sort_group_rename_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/grpck/05_grpck_sort_group_rename_failure/config/etc/group create mode 100644 tests/tests/failures/grpck/05_grpck_sort_group_rename_failure/config/etc/gshadow create mode 100644 tests/tests/failures/grpck/05_grpck_sort_group_rename_failure/config/etc/login.defs create mode 100644 tests/tests/failures/grpck/05_grpck_sort_group_rename_failure/config/etc/passwd create mode 100644 tests/tests/failures/grpck/05_grpck_sort_group_rename_failure/config/etc/shadow create mode 100644 tests/tests/failures/grpck/05_grpck_sort_group_rename_failure/data/grpck.err create mode 100755 tests/tests/failures/grpck/05_grpck_sort_group_rename_failure/grpck.test create mode 100644 tests/tests/failures/grpck/06_grpck_sort_gshadow_rename_failure/config.txt create mode 100644 tests/tests/failures/grpck/06_grpck_sort_gshadow_rename_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/grpck/06_grpck_sort_gshadow_rename_failure/config/etc/group create mode 100644 tests/tests/failures/grpck/06_grpck_sort_gshadow_rename_failure/config/etc/gshadow create mode 100644 tests/tests/failures/grpck/06_grpck_sort_gshadow_rename_failure/config/etc/login.defs create mode 100644 tests/tests/failures/grpck/06_grpck_sort_gshadow_rename_failure/config/etc/passwd create mode 100644 tests/tests/failures/grpck/06_grpck_sort_gshadow_rename_failure/config/etc/shadow create mode 100644 tests/tests/failures/grpck/06_grpck_sort_gshadow_rename_failure/data/group create mode 100644 tests/tests/failures/grpck/06_grpck_sort_gshadow_rename_failure/data/grpck.err create mode 100755 tests/tests/failures/grpck/06_grpck_sort_gshadow_rename_failure/grpck.test create mode 100644 tests/tests/failures/grpconv/01_grpconv_open_group_failure/config.txt create mode 100644 tests/tests/failures/grpconv/01_grpconv_open_group_failure/config/etc/group create mode 100644 tests/tests/failures/grpconv/01_grpconv_open_group_failure/config/etc/gshadow create mode 100644 tests/tests/failures/grpconv/01_grpconv_open_group_failure/config/etc/login.defs create mode 100644 tests/tests/failures/grpconv/01_grpconv_open_group_failure/config/etc/passwd create mode 100644 tests/tests/failures/grpconv/01_grpconv_open_group_failure/config/etc/shadow create mode 100644 tests/tests/failures/grpconv/01_grpconv_open_group_failure/data/grpconv.err create mode 100755 tests/tests/failures/grpconv/01_grpconv_open_group_failure/grpconv.test create mode 100644 tests/tests/failures/grpconv/02_grpconv_open_gshadow_failure/config.txt create mode 100644 tests/tests/failures/grpconv/02_grpconv_open_gshadow_failure/config/etc/group create mode 100644 tests/tests/failures/grpconv/02_grpconv_open_gshadow_failure/config/etc/gshadow create mode 100644 tests/tests/failures/grpconv/02_grpconv_open_gshadow_failure/config/etc/login.defs create mode 100644 tests/tests/failures/grpconv/02_grpconv_open_gshadow_failure/config/etc/passwd create mode 100644 tests/tests/failures/grpconv/02_grpconv_open_gshadow_failure/config/etc/shadow create mode 100644 tests/tests/failures/grpconv/02_grpconv_open_gshadow_failure/data/grpconv.err create mode 100755 tests/tests/failures/grpconv/02_grpconv_open_gshadow_failure/grpconv.test create mode 100644 tests/tests/failures/grpconv/03_grpconv_rename_group_failure/config.txt create mode 100644 tests/tests/failures/grpconv/03_grpconv_rename_group_failure/config/etc/group create mode 100644 tests/tests/failures/grpconv/03_grpconv_rename_group_failure/config/etc/gshadow create mode 100644 tests/tests/failures/grpconv/03_grpconv_rename_group_failure/config/etc/login.defs create mode 100644 tests/tests/failures/grpconv/03_grpconv_rename_group_failure/config/etc/passwd create mode 100644 tests/tests/failures/grpconv/03_grpconv_rename_group_failure/config/etc/shadow create mode 100644 tests/tests/failures/grpconv/03_grpconv_rename_group_failure/data/grpconv.err create mode 100644 tests/tests/failures/grpconv/03_grpconv_rename_group_failure/data/gshadow create mode 100755 tests/tests/failures/grpconv/03_grpconv_rename_group_failure/grpconv.test create mode 100644 tests/tests/failures/grpconv/04_grpconv_rename_gshadow_failure/config.txt create mode 100644 tests/tests/failures/grpconv/04_grpconv_rename_gshadow_failure/config/etc/group create mode 100644 tests/tests/failures/grpconv/04_grpconv_rename_gshadow_failure/config/etc/gshadow create mode 100644 tests/tests/failures/grpconv/04_grpconv_rename_gshadow_failure/config/etc/login.defs create mode 100644 tests/tests/failures/grpconv/04_grpconv_rename_gshadow_failure/config/etc/passwd create mode 100644 tests/tests/failures/grpconv/04_grpconv_rename_gshadow_failure/config/etc/shadow create mode 100644 tests/tests/failures/grpconv/04_grpconv_rename_gshadow_failure/data/grpconv.err create mode 100755 tests/tests/failures/grpconv/04_grpconv_rename_gshadow_failure/grpconv.test create mode 100644 tests/tests/failures/grpunconv/01_grpunconv_group_rename_failure/config.txt create mode 100644 tests/tests/failures/grpunconv/01_grpunconv_group_rename_failure/config/etc/group create mode 100644 tests/tests/failures/grpunconv/01_grpunconv_group_rename_failure/config/etc/gshadow create mode 100644 tests/tests/failures/grpunconv/01_grpunconv_group_rename_failure/config/etc/login.defs create mode 100644 tests/tests/failures/grpunconv/01_grpunconv_group_rename_failure/config/etc/passwd create mode 100644 tests/tests/failures/grpunconv/01_grpunconv_group_rename_failure/config/etc/shadow create mode 100644 tests/tests/failures/grpunconv/01_grpunconv_group_rename_failure/data/grpunconv.err create mode 100755 tests/tests/failures/grpunconv/01_grpunconv_group_rename_failure/grpunconv.test create mode 100644 tests/tests/failures/grpunconv/02_grpunconv_open_group_failure/config.txt create mode 100644 tests/tests/failures/grpunconv/02_grpunconv_open_group_failure/config/etc/group create mode 100644 tests/tests/failures/grpunconv/02_grpunconv_open_group_failure/config/etc/gshadow create mode 100644 tests/tests/failures/grpunconv/02_grpunconv_open_group_failure/config/etc/login.defs create mode 100644 tests/tests/failures/grpunconv/02_grpunconv_open_group_failure/config/etc/passwd create mode 100644 tests/tests/failures/grpunconv/02_grpunconv_open_group_failure/config/etc/shadow create mode 100644 tests/tests/failures/grpunconv/02_grpunconv_open_group_failure/data/grpunconv.err create mode 100755 tests/tests/failures/grpunconv/02_grpunconv_open_group_failure/grpunconv.test create mode 100644 tests/tests/failures/grpunconv/03_grpunconv_open_gshadow_failure/config.txt create mode 100644 tests/tests/failures/grpunconv/03_grpunconv_open_gshadow_failure/config/etc/group create mode 100644 tests/tests/failures/grpunconv/03_grpunconv_open_gshadow_failure/config/etc/gshadow create mode 100644 tests/tests/failures/grpunconv/03_grpunconv_open_gshadow_failure/config/etc/login.defs create mode 100644 tests/tests/failures/grpunconv/03_grpunconv_open_gshadow_failure/config/etc/passwd create mode 100644 tests/tests/failures/grpunconv/03_grpunconv_open_gshadow_failure/config/etc/shadow create mode 100644 tests/tests/failures/grpunconv/03_grpunconv_open_gshadow_failure/data/grpunconv.err create mode 100755 tests/tests/failures/grpunconv/03_grpunconv_open_gshadow_failure/grpunconv.test create mode 100644 tests/tests/failures/grpunconv/04_grpunconv_unlink_gshadow_failure/config.txt create mode 100644 tests/tests/failures/grpunconv/04_grpunconv_unlink_gshadow_failure/config/etc/group create mode 100644 tests/tests/failures/grpunconv/04_grpunconv_unlink_gshadow_failure/config/etc/gshadow create mode 100644 tests/tests/failures/grpunconv/04_grpunconv_unlink_gshadow_failure/config/etc/login.defs create mode 100644 tests/tests/failures/grpunconv/04_grpunconv_unlink_gshadow_failure/config/etc/passwd create mode 100644 tests/tests/failures/grpunconv/04_grpunconv_unlink_gshadow_failure/config/etc/shadow create mode 100644 tests/tests/failures/grpunconv/04_grpunconv_unlink_gshadow_failure/data/group create mode 100644 tests/tests/failures/grpunconv/04_grpunconv_unlink_gshadow_failure/data/grpunconv.err create mode 100755 tests/tests/failures/grpunconv/04_grpunconv_unlink_gshadow_failure/grpunconv.test create mode 100644 tests/tests/failures/newusers/01_newusers_open_passwd_failure/config.txt create mode 100644 tests/tests/failures/newusers/01_newusers_open_passwd_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/newusers/01_newusers_open_passwd_failure/config/etc/group create mode 100644 tests/tests/failures/newusers/01_newusers_open_passwd_failure/config/etc/gshadow create mode 100644 tests/tests/failures/newusers/01_newusers_open_passwd_failure/config/etc/login.defs create mode 100644 tests/tests/failures/newusers/01_newusers_open_passwd_failure/config/etc/passwd create mode 100644 tests/tests/failures/newusers/01_newusers_open_passwd_failure/config/etc/shadow create mode 100644 tests/tests/failures/newusers/01_newusers_open_passwd_failure/data/newusers.err create mode 100644 tests/tests/failures/newusers/01_newusers_open_passwd_failure/data/newusers.list create mode 100755 tests/tests/failures/newusers/01_newusers_open_passwd_failure/newusers.test create mode 100644 tests/tests/failures/newusers/02_newusers_open_shadow_failure/config.txt create mode 100644 tests/tests/failures/newusers/02_newusers_open_shadow_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/newusers/02_newusers_open_shadow_failure/config/etc/group create mode 100644 tests/tests/failures/newusers/02_newusers_open_shadow_failure/config/etc/gshadow create mode 100644 tests/tests/failures/newusers/02_newusers_open_shadow_failure/config/etc/login.defs create mode 100644 tests/tests/failures/newusers/02_newusers_open_shadow_failure/config/etc/passwd create mode 100644 tests/tests/failures/newusers/02_newusers_open_shadow_failure/config/etc/shadow create mode 100644 tests/tests/failures/newusers/02_newusers_open_shadow_failure/data/newusers.err create mode 100644 tests/tests/failures/newusers/02_newusers_open_shadow_failure/data/newusers.list create mode 100755 tests/tests/failures/newusers/02_newusers_open_shadow_failure/newusers.test create mode 100644 tests/tests/failures/newusers/03_newusers_open_group_failure/config.txt create mode 100644 tests/tests/failures/newusers/03_newusers_open_group_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/newusers/03_newusers_open_group_failure/config/etc/group create mode 100644 tests/tests/failures/newusers/03_newusers_open_group_failure/config/etc/gshadow create mode 100644 tests/tests/failures/newusers/03_newusers_open_group_failure/config/etc/login.defs create mode 100644 tests/tests/failures/newusers/03_newusers_open_group_failure/config/etc/passwd create mode 100644 tests/tests/failures/newusers/03_newusers_open_group_failure/config/etc/shadow create mode 100644 tests/tests/failures/newusers/03_newusers_open_group_failure/data/newusers.err create mode 100644 tests/tests/failures/newusers/03_newusers_open_group_failure/data/newusers.list create mode 100755 tests/tests/failures/newusers/03_newusers_open_group_failure/newusers.test create mode 100644 tests/tests/failures/newusers/04_newusers_open_gshadow_failure/config.txt create mode 100644 tests/tests/failures/newusers/04_newusers_open_gshadow_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/newusers/04_newusers_open_gshadow_failure/config/etc/group create mode 100644 tests/tests/failures/newusers/04_newusers_open_gshadow_failure/config/etc/gshadow create mode 100644 tests/tests/failures/newusers/04_newusers_open_gshadow_failure/config/etc/login.defs create mode 100644 tests/tests/failures/newusers/04_newusers_open_gshadow_failure/config/etc/passwd create mode 100644 tests/tests/failures/newusers/04_newusers_open_gshadow_failure/config/etc/shadow create mode 100644 tests/tests/failures/newusers/04_newusers_open_gshadow_failure/data/newusers.err create mode 100644 tests/tests/failures/newusers/04_newusers_open_gshadow_failure/data/newusers.list create mode 100755 tests/tests/failures/newusers/04_newusers_open_gshadow_failure/newusers.test create mode 100644 tests/tests/failures/newusers/05_newusers_rename_passwd_failure/config.txt create mode 100644 tests/tests/failures/newusers/05_newusers_rename_passwd_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/newusers/05_newusers_rename_passwd_failure/config/etc/group create mode 100644 tests/tests/failures/newusers/05_newusers_rename_passwd_failure/config/etc/gshadow create mode 100644 tests/tests/failures/newusers/05_newusers_rename_passwd_failure/config/etc/login.defs create mode 100644 tests/tests/failures/newusers/05_newusers_rename_passwd_failure/config/etc/passwd create mode 100644 tests/tests/failures/newusers/05_newusers_rename_passwd_failure/config/etc/shadow create mode 100644 tests/tests/failures/newusers/05_newusers_rename_passwd_failure/data/newusers.err create mode 100644 tests/tests/failures/newusers/05_newusers_rename_passwd_failure/data/newusers.list create mode 100755 tests/tests/failures/newusers/05_newusers_rename_passwd_failure/newusers.test create mode 100644 tests/tests/failures/newusers/06_newusers_rename_shadow_failure/config.txt create mode 100644 tests/tests/failures/newusers/06_newusers_rename_shadow_failure/config/etc/group create mode 100644 tests/tests/failures/newusers/06_newusers_rename_shadow_failure/config/etc/gshadow create mode 100644 tests/tests/failures/newusers/06_newusers_rename_shadow_failure/config/etc/login.defs create mode 100644 tests/tests/failures/newusers/06_newusers_rename_shadow_failure/config/etc/passwd create mode 100644 tests/tests/failures/newusers/06_newusers_rename_shadow_failure/config/etc/shadow create mode 100644 tests/tests/failures/newusers/06_newusers_rename_shadow_failure/data/newusers.err create mode 100644 tests/tests/failures/newusers/06_newusers_rename_shadow_failure/data/newusers.list create mode 100644 tests/tests/failures/newusers/06_newusers_rename_shadow_failure/data/passwd create mode 100755 tests/tests/failures/newusers/06_newusers_rename_shadow_failure/newusers.test create mode 100644 tests/tests/failures/newusers/07_newusers_rename_group_failure/config.txt create mode 100644 tests/tests/failures/newusers/07_newusers_rename_group_failure/config/etc/group create mode 100644 tests/tests/failures/newusers/07_newusers_rename_group_failure/config/etc/gshadow create mode 100644 tests/tests/failures/newusers/07_newusers_rename_group_failure/config/etc/login.defs create mode 100644 tests/tests/failures/newusers/07_newusers_rename_group_failure/config/etc/passwd create mode 100644 tests/tests/failures/newusers/07_newusers_rename_group_failure/config/etc/shadow create mode 100644 tests/tests/failures/newusers/07_newusers_rename_group_failure/data/newusers.err create mode 100644 tests/tests/failures/newusers/07_newusers_rename_group_failure/data/newusers.list create mode 100644 tests/tests/failures/newusers/07_newusers_rename_group_failure/data/passwd create mode 100644 tests/tests/failures/newusers/07_newusers_rename_group_failure/data/shadow create mode 100755 tests/tests/failures/newusers/07_newusers_rename_group_failure/newusers.test create mode 100644 tests/tests/failures/newusers/08_newusers_rename_gshadow_failure/config.txt create mode 100644 tests/tests/failures/newusers/08_newusers_rename_gshadow_failure/config/etc/group create mode 100644 tests/tests/failures/newusers/08_newusers_rename_gshadow_failure/config/etc/gshadow create mode 100644 tests/tests/failures/newusers/08_newusers_rename_gshadow_failure/config/etc/login.defs create mode 100644 tests/tests/failures/newusers/08_newusers_rename_gshadow_failure/config/etc/passwd create mode 100644 tests/tests/failures/newusers/08_newusers_rename_gshadow_failure/config/etc/shadow create mode 100644 tests/tests/failures/newusers/08_newusers_rename_gshadow_failure/data/group create mode 100644 tests/tests/failures/newusers/08_newusers_rename_gshadow_failure/data/newusers.err create mode 100644 tests/tests/failures/newusers/08_newusers_rename_gshadow_failure/data/newusers.list create mode 100644 tests/tests/failures/newusers/08_newusers_rename_gshadow_failure/data/passwd create mode 100644 tests/tests/failures/newusers/08_newusers_rename_gshadow_failure/data/shadow create mode 100755 tests/tests/failures/newusers/08_newusers_rename_gshadow_failure/newusers.test create mode 100644 tests/tests/failures/newusers/09_newusers_rename_shadow_failure_PAM/config.txt create mode 100644 tests/tests/failures/newusers/09_newusers_rename_shadow_failure_PAM/config/etc/group create mode 100644 tests/tests/failures/newusers/09_newusers_rename_shadow_failure_PAM/config/etc/gshadow create mode 100644 tests/tests/failures/newusers/09_newusers_rename_shadow_failure_PAM/config/etc/login.defs create mode 100644 tests/tests/failures/newusers/09_newusers_rename_shadow_failure_PAM/config/etc/passwd create mode 100644 tests/tests/failures/newusers/09_newusers_rename_shadow_failure_PAM/config/etc/shadow create mode 100644 tests/tests/failures/newusers/09_newusers_rename_shadow_failure_PAM/data/group create mode 100644 tests/tests/failures/newusers/09_newusers_rename_shadow_failure_PAM/data/gshadow create mode 100644 tests/tests/failures/newusers/09_newusers_rename_shadow_failure_PAM/data/newusers.err create mode 100644 tests/tests/failures/newusers/09_newusers_rename_shadow_failure_PAM/data/newusers.list create mode 100644 tests/tests/failures/newusers/09_newusers_rename_shadow_failure_PAM/data/passwd create mode 100755 tests/tests/failures/newusers/09_newusers_rename_shadow_failure_PAM/newusers.test create mode 100644 tests/tests/failures/newusers/10_newusers_time_0/config.txt create mode 100644 tests/tests/failures/newusers/10_newusers_time_0/config/etc/default/useradd create mode 100644 tests/tests/failures/newusers/10_newusers_time_0/config/etc/group create mode 100644 tests/tests/failures/newusers/10_newusers_time_0/config/etc/gshadow create mode 100644 tests/tests/failures/newusers/10_newusers_time_0/config/etc/pam.d/common-password create mode 100644 tests/tests/failures/newusers/10_newusers_time_0/config/etc/passwd create mode 100644 tests/tests/failures/newusers/10_newusers_time_0/config/etc/shadow create mode 100644 tests/tests/failures/newusers/10_newusers_time_0/data/group create mode 100644 tests/tests/failures/newusers/10_newusers_time_0/data/gshadow create mode 100644 tests/tests/failures/newusers/10_newusers_time_0/data/newusers.list create mode 100644 tests/tests/failures/newusers/10_newusers_time_0/data/passwd create mode 100644 tests/tests/failures/newusers/10_newusers_time_0/data/shadow create mode 100755 tests/tests/failures/newusers/10_newusers_time_0/newusers.test create mode 100644 tests/tests/failures/pwck/01_pwck_system_passwd_open_failure/config.txt create mode 100644 tests/tests/failures/pwck/01_pwck_system_passwd_open_failure/config/etc/group create mode 100644 tests/tests/failures/pwck/01_pwck_system_passwd_open_failure/config/etc/gshadow create mode 100644 tests/tests/failures/pwck/01_pwck_system_passwd_open_failure/config/etc/passwd create mode 100644 tests/tests/failures/pwck/01_pwck_system_passwd_open_failure/config/etc/shadow create mode 100644 tests/tests/failures/pwck/01_pwck_system_passwd_open_failure/data/pwck.err create mode 100755 tests/tests/failures/pwck/01_pwck_system_passwd_open_failure/pwck.test create mode 100644 tests/tests/failures/pwck/02_pwck_passwd_open_failure/config.txt create mode 100644 tests/tests/failures/pwck/02_pwck_passwd_open_failure/config/etc/group create mode 100644 tests/tests/failures/pwck/02_pwck_passwd_open_failure/config/etc/gshadow create mode 100644 tests/tests/failures/pwck/02_pwck_passwd_open_failure/config/etc/passwd create mode 100644 tests/tests/failures/pwck/02_pwck_passwd_open_failure/config/etc/shadow create mode 100644 tests/tests/failures/pwck/02_pwck_passwd_open_failure/data/pwck.err create mode 100755 tests/tests/failures/pwck/02_pwck_passwd_open_failure/pwck.test create mode 100644 tests/tests/failures/pwck/03_pwck_system_shadow_open_failure/config.txt create mode 100644 tests/tests/failures/pwck/03_pwck_system_shadow_open_failure/config/etc/group create mode 100644 tests/tests/failures/pwck/03_pwck_system_shadow_open_failure/config/etc/gshadow create mode 100644 tests/tests/failures/pwck/03_pwck_system_shadow_open_failure/config/etc/passwd create mode 100644 tests/tests/failures/pwck/03_pwck_system_shadow_open_failure/config/etc/shadow create mode 100644 tests/tests/failures/pwck/03_pwck_system_shadow_open_failure/data/pwck.err create mode 100755 tests/tests/failures/pwck/03_pwck_system_shadow_open_failure/pwck.test create mode 100644 tests/tests/failures/pwck/04_pwck_shadow_open_failure/config.txt create mode 100644 tests/tests/failures/pwck/04_pwck_shadow_open_failure/config/etc/group create mode 100644 tests/tests/failures/pwck/04_pwck_shadow_open_failure/config/etc/gshadow create mode 100644 tests/tests/failures/pwck/04_pwck_shadow_open_failure/config/etc/passwd create mode 100644 tests/tests/failures/pwck/04_pwck_shadow_open_failure/config/etc/shadow create mode 100644 tests/tests/failures/pwck/04_pwck_shadow_open_failure/data/passwd create mode 100644 tests/tests/failures/pwck/04_pwck_shadow_open_failure/data/pwck.err create mode 100755 tests/tests/failures/pwck/04_pwck_shadow_open_failure/pwck.test create mode 100644 tests/tests/failures/pwck/05_pwck_sort_system_passwd_rename_failure/config.txt create mode 100644 tests/tests/failures/pwck/05_pwck_sort_system_passwd_rename_failure/config/etc/group create mode 100644 tests/tests/failures/pwck/05_pwck_sort_system_passwd_rename_failure/config/etc/gshadow create mode 100644 tests/tests/failures/pwck/05_pwck_sort_system_passwd_rename_failure/config/etc/passwd create mode 100644 tests/tests/failures/pwck/05_pwck_sort_system_passwd_rename_failure/config/etc/shadow create mode 100644 tests/tests/failures/pwck/05_pwck_sort_system_passwd_rename_failure/data/pwck.err create mode 100755 tests/tests/failures/pwck/05_pwck_sort_system_passwd_rename_failure/pwck.test create mode 100644 tests/tests/failures/pwck/06_pwck_sort_system_shadow_rename_failure/config.txt create mode 100644 tests/tests/failures/pwck/06_pwck_sort_system_shadow_rename_failure/config/etc/group create mode 100644 tests/tests/failures/pwck/06_pwck_sort_system_shadow_rename_failure/config/etc/gshadow create mode 100644 tests/tests/failures/pwck/06_pwck_sort_system_shadow_rename_failure/config/etc/passwd create mode 100644 tests/tests/failures/pwck/06_pwck_sort_system_shadow_rename_failure/config/etc/shadow create mode 100644 tests/tests/failures/pwck/06_pwck_sort_system_shadow_rename_failure/data/passwd create mode 100644 tests/tests/failures/pwck/06_pwck_sort_system_shadow_rename_failure/data/pwck.err create mode 100755 tests/tests/failures/pwck/06_pwck_sort_system_shadow_rename_failure/pwck.test create mode 100644 tests/tests/failures/pwck/07_pwck_sort_passwd_rename_failure/config.txt create mode 100644 tests/tests/failures/pwck/07_pwck_sort_passwd_rename_failure/config/etc/group create mode 100644 tests/tests/failures/pwck/07_pwck_sort_passwd_rename_failure/config/etc/gshadow create mode 100644 tests/tests/failures/pwck/07_pwck_sort_passwd_rename_failure/config/etc/passwd create mode 100644 tests/tests/failures/pwck/07_pwck_sort_passwd_rename_failure/config/etc/shadow create mode 100644 tests/tests/failures/pwck/07_pwck_sort_passwd_rename_failure/data/passwd create mode 100644 tests/tests/failures/pwck/07_pwck_sort_passwd_rename_failure/data/pwck.err create mode 100755 tests/tests/failures/pwck/07_pwck_sort_passwd_rename_failure/pwck.test create mode 100644 tests/tests/failures/pwck/08_pwck_sort_shadow_rename_failure/config.txt create mode 100644 tests/tests/failures/pwck/08_pwck_sort_shadow_rename_failure/config/etc/group create mode 100644 tests/tests/failures/pwck/08_pwck_sort_shadow_rename_failure/config/etc/gshadow create mode 100644 tests/tests/failures/pwck/08_pwck_sort_shadow_rename_failure/config/etc/passwd create mode 100644 tests/tests/failures/pwck/08_pwck_sort_shadow_rename_failure/config/etc/shadow create mode 100644 tests/tests/failures/pwck/08_pwck_sort_shadow_rename_failure/data/passwd create mode 100644 tests/tests/failures/pwck/08_pwck_sort_shadow_rename_failure/data/passwd.out create mode 100644 tests/tests/failures/pwck/08_pwck_sort_shadow_rename_failure/data/pwck.err create mode 100644 tests/tests/failures/pwck/08_pwck_sort_shadow_rename_failure/data/shadow create mode 100755 tests/tests/failures/pwck/08_pwck_sort_shadow_rename_failure/pwck.test create mode 100644 tests/tests/failures/pwck/09_pwck_create_shadow_entry_time_0/config.txt create mode 100644 tests/tests/failures/pwck/09_pwck_create_shadow_entry_time_0/config/etc/group create mode 100644 tests/tests/failures/pwck/09_pwck_create_shadow_entry_time_0/config/etc/gshadow create mode 100644 tests/tests/failures/pwck/09_pwck_create_shadow_entry_time_0/config/etc/passwd create mode 100644 tests/tests/failures/pwck/09_pwck_create_shadow_entry_time_0/config/etc/shadow create mode 100644 tests/tests/failures/pwck/09_pwck_create_shadow_entry_time_0/data/shadow create mode 100755 tests/tests/failures/pwck/09_pwck_create_shadow_entry_time_0/pwck.exp create mode 100755 tests/tests/failures/pwck/09_pwck_create_shadow_entry_time_0/pwck.test create mode 100644 tests/tests/failures/pwconv/01_pwconv_open_passwd_failure/config.txt create mode 100644 tests/tests/failures/pwconv/01_pwconv_open_passwd_failure/config/etc/group create mode 100644 tests/tests/failures/pwconv/01_pwconv_open_passwd_failure/config/etc/gshadow create mode 100644 tests/tests/failures/pwconv/01_pwconv_open_passwd_failure/config/etc/login.defs create mode 100644 tests/tests/failures/pwconv/01_pwconv_open_passwd_failure/config/etc/passwd create mode 100644 tests/tests/failures/pwconv/01_pwconv_open_passwd_failure/config/etc/shadow create mode 100644 tests/tests/failures/pwconv/01_pwconv_open_passwd_failure/data/pwconv.err create mode 100755 tests/tests/failures/pwconv/01_pwconv_open_passwd_failure/pwconv.test create mode 100644 tests/tests/failures/pwconv/02_pwconv_open_shadow_failure/config.txt create mode 100644 tests/tests/failures/pwconv/02_pwconv_open_shadow_failure/config/etc/group create mode 100644 tests/tests/failures/pwconv/02_pwconv_open_shadow_failure/config/etc/gshadow create mode 100644 tests/tests/failures/pwconv/02_pwconv_open_shadow_failure/config/etc/login.defs create mode 100644 tests/tests/failures/pwconv/02_pwconv_open_shadow_failure/config/etc/passwd create mode 100644 tests/tests/failures/pwconv/02_pwconv_open_shadow_failure/config/etc/shadow create mode 100644 tests/tests/failures/pwconv/02_pwconv_open_shadow_failure/data/pwconv.err create mode 100755 tests/tests/failures/pwconv/02_pwconv_open_shadow_failure/pwconv.test create mode 100644 tests/tests/failures/pwconv/03_pwconv_rename_passwd_failure/config.txt create mode 100644 tests/tests/failures/pwconv/03_pwconv_rename_passwd_failure/config/etc/group create mode 100644 tests/tests/failures/pwconv/03_pwconv_rename_passwd_failure/config/etc/gshadow create mode 100644 tests/tests/failures/pwconv/03_pwconv_rename_passwd_failure/config/etc/login.defs create mode 100644 tests/tests/failures/pwconv/03_pwconv_rename_passwd_failure/config/etc/passwd create mode 100644 tests/tests/failures/pwconv/03_pwconv_rename_passwd_failure/config/etc/shadow create mode 100644 tests/tests/failures/pwconv/03_pwconv_rename_passwd_failure/data/pwconv.err create mode 100644 tests/tests/failures/pwconv/03_pwconv_rename_passwd_failure/data/shadow create mode 100755 tests/tests/failures/pwconv/03_pwconv_rename_passwd_failure/pwconv.test create mode 100644 tests/tests/failures/pwconv/04_pwconv_rename_shadow_failure/config.txt create mode 100644 tests/tests/failures/pwconv/04_pwconv_rename_shadow_failure/config/etc/group create mode 100644 tests/tests/failures/pwconv/04_pwconv_rename_shadow_failure/config/etc/gshadow create mode 100644 tests/tests/failures/pwconv/04_pwconv_rename_shadow_failure/config/etc/login.defs create mode 100644 tests/tests/failures/pwconv/04_pwconv_rename_shadow_failure/config/etc/passwd create mode 100644 tests/tests/failures/pwconv/04_pwconv_rename_shadow_failure/config/etc/shadow create mode 100644 tests/tests/failures/pwconv/04_pwconv_rename_shadow_failure/data/pwconv.err create mode 100755 tests/tests/failures/pwconv/04_pwconv_rename_shadow_failure/pwconv.test create mode 100644 tests/tests/failures/pwconv/05_pwconv_time_0/config.txt create mode 100644 tests/tests/failures/pwconv/05_pwconv_time_0/config/etc/group create mode 100644 tests/tests/failures/pwconv/05_pwconv_time_0/config/etc/gshadow create mode 100644 tests/tests/failures/pwconv/05_pwconv_time_0/config/etc/passwd create mode 100644 tests/tests/failures/pwconv/05_pwconv_time_0/config/etc/shadow create mode 100644 tests/tests/failures/pwconv/05_pwconv_time_0/data/passwd create mode 100644 tests/tests/failures/pwconv/05_pwconv_time_0/data/shadow create mode 100755 tests/tests/failures/pwconv/05_pwconv_time_0/pwconv.test create mode 100644 tests/tests/failures/pwunconv/01_pwunconv_passwd_rename_failure/config.txt create mode 100644 tests/tests/failures/pwunconv/01_pwunconv_passwd_rename_failure/config/etc/group create mode 100644 tests/tests/failures/pwunconv/01_pwunconv_passwd_rename_failure/config/etc/gshadow create mode 100644 tests/tests/failures/pwunconv/01_pwunconv_passwd_rename_failure/config/etc/login.defs create mode 100644 tests/tests/failures/pwunconv/01_pwunconv_passwd_rename_failure/config/etc/passwd create mode 100644 tests/tests/failures/pwunconv/01_pwunconv_passwd_rename_failure/config/etc/shadow create mode 100644 tests/tests/failures/pwunconv/01_pwunconv_passwd_rename_failure/data/pwunconv.err create mode 100755 tests/tests/failures/pwunconv/01_pwunconv_passwd_rename_failure/pwunconv.test create mode 100644 tests/tests/failures/pwunconv/02_pwunconv_open_passwd_failure/config.txt create mode 100644 tests/tests/failures/pwunconv/02_pwunconv_open_passwd_failure/config/etc/group create mode 100644 tests/tests/failures/pwunconv/02_pwunconv_open_passwd_failure/config/etc/gshadow create mode 100644 tests/tests/failures/pwunconv/02_pwunconv_open_passwd_failure/config/etc/login.defs create mode 100644 tests/tests/failures/pwunconv/02_pwunconv_open_passwd_failure/config/etc/passwd create mode 100644 tests/tests/failures/pwunconv/02_pwunconv_open_passwd_failure/config/etc/shadow create mode 100644 tests/tests/failures/pwunconv/02_pwunconv_open_passwd_failure/data/pwunconv.err create mode 100755 tests/tests/failures/pwunconv/02_pwunconv_open_passwd_failure/pwunconv.test create mode 100644 tests/tests/failures/pwunconv/03_pwunconv_open_shadow_failure/config.txt create mode 100644 tests/tests/failures/pwunconv/03_pwunconv_open_shadow_failure/config/etc/group create mode 100644 tests/tests/failures/pwunconv/03_pwunconv_open_shadow_failure/config/etc/gshadow create mode 100644 tests/tests/failures/pwunconv/03_pwunconv_open_shadow_failure/config/etc/login.defs create mode 100644 tests/tests/failures/pwunconv/03_pwunconv_open_shadow_failure/config/etc/passwd create mode 100644 tests/tests/failures/pwunconv/03_pwunconv_open_shadow_failure/config/etc/shadow create mode 100644 tests/tests/failures/pwunconv/03_pwunconv_open_shadow_failure/data/pwunconv.err create mode 100755 tests/tests/failures/pwunconv/03_pwunconv_open_shadow_failure/pwunconv.test create mode 100644 tests/tests/failures/pwunconv/04_pwunconv_unlink_shadow_failure/config.txt create mode 100644 tests/tests/failures/pwunconv/04_pwunconv_unlink_shadow_failure/config/etc/group create mode 100644 tests/tests/failures/pwunconv/04_pwunconv_unlink_shadow_failure/config/etc/gshadow create mode 100644 tests/tests/failures/pwunconv/04_pwunconv_unlink_shadow_failure/config/etc/login.defs create mode 100644 tests/tests/failures/pwunconv/04_pwunconv_unlink_shadow_failure/config/etc/passwd create mode 100644 tests/tests/failures/pwunconv/04_pwunconv_unlink_shadow_failure/config/etc/shadow create mode 100644 tests/tests/failures/pwunconv/04_pwunconv_unlink_shadow_failure/data/passwd create mode 100644 tests/tests/failures/pwunconv/04_pwunconv_unlink_shadow_failure/data/pwunconv.err create mode 100755 tests/tests/failures/pwunconv/04_pwunconv_unlink_shadow_failure/pwunconv.test create mode 100644 tests/tests/failures/useradd/01_useradd_open_passwd_failure/config.txt create mode 100644 tests/tests/failures/useradd/01_useradd_open_passwd_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/useradd/01_useradd_open_passwd_failure/config/etc/group create mode 100644 tests/tests/failures/useradd/01_useradd_open_passwd_failure/config/etc/gshadow create mode 100644 tests/tests/failures/useradd/01_useradd_open_passwd_failure/config/etc/login.defs create mode 100644 tests/tests/failures/useradd/01_useradd_open_passwd_failure/config/etc/passwd create mode 100644 tests/tests/failures/useradd/01_useradd_open_passwd_failure/config/etc/shadow create mode 100644 tests/tests/failures/useradd/01_useradd_open_passwd_failure/data/useradd.err create mode 100755 tests/tests/failures/useradd/01_useradd_open_passwd_failure/useradd.test create mode 100644 tests/tests/failures/useradd/02_useradd_open_shadow_failure/config.txt create mode 100644 tests/tests/failures/useradd/02_useradd_open_shadow_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/useradd/02_useradd_open_shadow_failure/config/etc/group create mode 100644 tests/tests/failures/useradd/02_useradd_open_shadow_failure/config/etc/gshadow create mode 100644 tests/tests/failures/useradd/02_useradd_open_shadow_failure/config/etc/login.defs create mode 100644 tests/tests/failures/useradd/02_useradd_open_shadow_failure/config/etc/passwd create mode 100644 tests/tests/failures/useradd/02_useradd_open_shadow_failure/config/etc/shadow create mode 100644 tests/tests/failures/useradd/02_useradd_open_shadow_failure/data/useradd.err create mode 100755 tests/tests/failures/useradd/02_useradd_open_shadow_failure/useradd.test create mode 100644 tests/tests/failures/useradd/03_useradd_open_group_failure/config.txt create mode 100644 tests/tests/failures/useradd/03_useradd_open_group_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/useradd/03_useradd_open_group_failure/config/etc/group create mode 100644 tests/tests/failures/useradd/03_useradd_open_group_failure/config/etc/gshadow create mode 100644 tests/tests/failures/useradd/03_useradd_open_group_failure/config/etc/login.defs create mode 100644 tests/tests/failures/useradd/03_useradd_open_group_failure/config/etc/passwd create mode 100644 tests/tests/failures/useradd/03_useradd_open_group_failure/config/etc/shadow create mode 100644 tests/tests/failures/useradd/03_useradd_open_group_failure/data/useradd.err create mode 100755 tests/tests/failures/useradd/03_useradd_open_group_failure/useradd.test create mode 100644 tests/tests/failures/useradd/04_useradd_open_gshadow_failure/config.txt create mode 100644 tests/tests/failures/useradd/04_useradd_open_gshadow_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/useradd/04_useradd_open_gshadow_failure/config/etc/group create mode 100644 tests/tests/failures/useradd/04_useradd_open_gshadow_failure/config/etc/gshadow create mode 100644 tests/tests/failures/useradd/04_useradd_open_gshadow_failure/config/etc/login.defs create mode 100644 tests/tests/failures/useradd/04_useradd_open_gshadow_failure/config/etc/passwd create mode 100644 tests/tests/failures/useradd/04_useradd_open_gshadow_failure/config/etc/shadow create mode 100644 tests/tests/failures/useradd/04_useradd_open_gshadow_failure/data/useradd.err create mode 100755 tests/tests/failures/useradd/04_useradd_open_gshadow_failure/useradd.test create mode 100644 tests/tests/failures/useradd/05_useradd_rename_passwd_failure/config.txt create mode 100644 tests/tests/failures/useradd/05_useradd_rename_passwd_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/useradd/05_useradd_rename_passwd_failure/config/etc/group create mode 100644 tests/tests/failures/useradd/05_useradd_rename_passwd_failure/config/etc/gshadow create mode 100644 tests/tests/failures/useradd/05_useradd_rename_passwd_failure/config/etc/login.defs create mode 100644 tests/tests/failures/useradd/05_useradd_rename_passwd_failure/config/etc/passwd create mode 100644 tests/tests/failures/useradd/05_useradd_rename_passwd_failure/config/etc/shadow create mode 100644 tests/tests/failures/useradd/05_useradd_rename_passwd_failure/data/useradd.err create mode 100755 tests/tests/failures/useradd/05_useradd_rename_passwd_failure/useradd.test create mode 100644 tests/tests/failures/useradd/06_useradd_rename_shadow_failure/config.txt create mode 100644 tests/tests/failures/useradd/06_useradd_rename_shadow_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/useradd/06_useradd_rename_shadow_failure/config/etc/group create mode 100644 tests/tests/failures/useradd/06_useradd_rename_shadow_failure/config/etc/gshadow create mode 100644 tests/tests/failures/useradd/06_useradd_rename_shadow_failure/config/etc/login.defs create mode 100644 tests/tests/failures/useradd/06_useradd_rename_shadow_failure/config/etc/passwd create mode 100644 tests/tests/failures/useradd/06_useradd_rename_shadow_failure/config/etc/shadow create mode 100644 tests/tests/failures/useradd/06_useradd_rename_shadow_failure/data/passwd create mode 100644 tests/tests/failures/useradd/06_useradd_rename_shadow_failure/data/useradd.err create mode 100755 tests/tests/failures/useradd/06_useradd_rename_shadow_failure/useradd.test create mode 100644 tests/tests/failures/useradd/07_useradd_rename_group_failure/config.txt create mode 100644 tests/tests/failures/useradd/07_useradd_rename_group_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/useradd/07_useradd_rename_group_failure/config/etc/group create mode 100644 tests/tests/failures/useradd/07_useradd_rename_group_failure/config/etc/gshadow create mode 100644 tests/tests/failures/useradd/07_useradd_rename_group_failure/config/etc/login.defs create mode 100644 tests/tests/failures/useradd/07_useradd_rename_group_failure/config/etc/passwd create mode 100644 tests/tests/failures/useradd/07_useradd_rename_group_failure/config/etc/shadow create mode 100644 tests/tests/failures/useradd/07_useradd_rename_group_failure/data/passwd create mode 100644 tests/tests/failures/useradd/07_useradd_rename_group_failure/data/shadow create mode 100644 tests/tests/failures/useradd/07_useradd_rename_group_failure/data/useradd.err create mode 100755 tests/tests/failures/useradd/07_useradd_rename_group_failure/useradd.test create mode 100644 tests/tests/failures/useradd/08_useradd_rename_gshadow_failure/config.txt create mode 100644 tests/tests/failures/useradd/08_useradd_rename_gshadow_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/useradd/08_useradd_rename_gshadow_failure/config/etc/group create mode 100644 tests/tests/failures/useradd/08_useradd_rename_gshadow_failure/config/etc/gshadow create mode 100644 tests/tests/failures/useradd/08_useradd_rename_gshadow_failure/config/etc/login.defs create mode 100644 tests/tests/failures/useradd/08_useradd_rename_gshadow_failure/config/etc/passwd create mode 100644 tests/tests/failures/useradd/08_useradd_rename_gshadow_failure/config/etc/shadow create mode 100644 tests/tests/failures/useradd/08_useradd_rename_gshadow_failure/data/group create mode 100644 tests/tests/failures/useradd/08_useradd_rename_gshadow_failure/data/passwd create mode 100644 tests/tests/failures/useradd/08_useradd_rename_gshadow_failure/data/shadow create mode 100644 tests/tests/failures/useradd/08_useradd_rename_gshadow_failure/data/useradd.err create mode 100755 tests/tests/failures/useradd/08_useradd_rename_gshadow_failure/useradd.test create mode 100644 tests/tests/failures/useradd/09_useradd_rename_defaults_failure/config.txt create mode 100644 tests/tests/failures/useradd/09_useradd_rename_defaults_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/useradd/09_useradd_rename_defaults_failure/config/etc/group create mode 100644 tests/tests/failures/useradd/09_useradd_rename_defaults_failure/config/etc/gshadow create mode 100644 tests/tests/failures/useradd/09_useradd_rename_defaults_failure/config/etc/login.defs create mode 100644 tests/tests/failures/useradd/09_useradd_rename_defaults_failure/config/etc/passwd create mode 100644 tests/tests/failures/useradd/09_useradd_rename_defaults_failure/config/etc/shadow create mode 100644 tests/tests/failures/useradd/09_useradd_rename_defaults_failure/data/useradd.err create mode 100755 tests/tests/failures/useradd/09_useradd_rename_defaults_failure/useradd.test create mode 100644 tests/tests/failures/useradd/10_useradd_rename_defaults_backup_failure/config.txt create mode 100644 tests/tests/failures/useradd/10_useradd_rename_defaults_backup_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/useradd/10_useradd_rename_defaults_backup_failure/config/etc/group create mode 100644 tests/tests/failures/useradd/10_useradd_rename_defaults_backup_failure/config/etc/gshadow create mode 100644 tests/tests/failures/useradd/10_useradd_rename_defaults_backup_failure/config/etc/login.defs create mode 100644 tests/tests/failures/useradd/10_useradd_rename_defaults_backup_failure/config/etc/passwd create mode 100644 tests/tests/failures/useradd/10_useradd_rename_defaults_backup_failure/config/etc/shadow create mode 100644 tests/tests/failures/useradd/10_useradd_rename_defaults_backup_failure/data/useradd.err create mode 100755 tests/tests/failures/useradd/10_useradd_rename_defaults_backup_failure/useradd.test create mode 100644 tests/tests/failures/useradd/11_useradd_time_0/config.txt create mode 100644 tests/tests/failures/useradd/11_useradd_time_0/config/etc/default/useradd create mode 100644 tests/tests/failures/useradd/11_useradd_time_0/config/etc/group create mode 100644 tests/tests/failures/useradd/11_useradd_time_0/config/etc/gshadow create mode 100644 tests/tests/failures/useradd/11_useradd_time_0/config/etc/pam.d/common-password create mode 100644 tests/tests/failures/useradd/11_useradd_time_0/config/etc/passwd create mode 100644 tests/tests/failures/useradd/11_useradd_time_0/config/etc/shadow create mode 100644 tests/tests/failures/useradd/11_useradd_time_0/data/group create mode 100644 tests/tests/failures/useradd/11_useradd_time_0/data/gshadow create mode 100644 tests/tests/failures/useradd/11_useradd_time_0/data/newusers.list create mode 100644 tests/tests/failures/useradd/11_useradd_time_0/data/passwd create mode 100644 tests/tests/failures/useradd/11_useradd_time_0/data/shadow create mode 100755 tests/tests/failures/useradd/11_useradd_time_0/useradd.test create mode 100644 tests/tests/failures/useradd/12_useradd_open_subuid_failure/config.txt create mode 100644 tests/tests/failures/useradd/12_useradd_open_subuid_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/useradd/12_useradd_open_subuid_failure/config/etc/group create mode 100644 tests/tests/failures/useradd/12_useradd_open_subuid_failure/config/etc/gshadow create mode 100644 tests/tests/failures/useradd/12_useradd_open_subuid_failure/config/etc/login.defs create mode 100644 tests/tests/failures/useradd/12_useradd_open_subuid_failure/config/etc/passwd create mode 100644 tests/tests/failures/useradd/12_useradd_open_subuid_failure/config/etc/shadow create mode 100644 tests/tests/failures/useradd/12_useradd_open_subuid_failure/config/etc/subgid create mode 100644 tests/tests/failures/useradd/12_useradd_open_subuid_failure/config/etc/subuid create mode 100644 tests/tests/failures/useradd/12_useradd_open_subuid_failure/data/useradd.err create mode 100755 tests/tests/failures/useradd/12_useradd_open_subuid_failure/useradd.test create mode 100644 tests/tests/failures/useradd/13_useradd_open_subgid_failure/config.txt create mode 100644 tests/tests/failures/useradd/13_useradd_open_subgid_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/useradd/13_useradd_open_subgid_failure/config/etc/group create mode 100644 tests/tests/failures/useradd/13_useradd_open_subgid_failure/config/etc/gshadow create mode 100644 tests/tests/failures/useradd/13_useradd_open_subgid_failure/config/etc/login.defs create mode 100644 tests/tests/failures/useradd/13_useradd_open_subgid_failure/config/etc/passwd create mode 100644 tests/tests/failures/useradd/13_useradd_open_subgid_failure/config/etc/shadow create mode 100644 tests/tests/failures/useradd/13_useradd_open_subgid_failure/config/etc/subgid create mode 100644 tests/tests/failures/useradd/13_useradd_open_subgid_failure/config/etc/subuid create mode 100644 tests/tests/failures/useradd/13_useradd_open_subgid_failure/data/useradd.err create mode 100755 tests/tests/failures/useradd/13_useradd_open_subgid_failure/useradd.test create mode 100644 tests/tests/failures/useradd/14_username_rename_subuid_failure/config.txt create mode 100644 tests/tests/failures/useradd/14_username_rename_subuid_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/useradd/14_username_rename_subuid_failure/config/etc/group create mode 100644 tests/tests/failures/useradd/14_username_rename_subuid_failure/config/etc/gshadow create mode 100644 tests/tests/failures/useradd/14_username_rename_subuid_failure/config/etc/login.defs create mode 100644 tests/tests/failures/useradd/14_username_rename_subuid_failure/config/etc/passwd create mode 100644 tests/tests/failures/useradd/14_username_rename_subuid_failure/config/etc/shadow create mode 100644 tests/tests/failures/useradd/14_username_rename_subuid_failure/config/etc/subgid create mode 100644 tests/tests/failures/useradd/14_username_rename_subuid_failure/config/etc/subuid create mode 100644 tests/tests/failures/useradd/14_username_rename_subuid_failure/data/group create mode 100644 tests/tests/failures/useradd/14_username_rename_subuid_failure/data/gshadow create mode 100644 tests/tests/failures/useradd/14_username_rename_subuid_failure/data/passwd create mode 100644 tests/tests/failures/useradd/14_username_rename_subuid_failure/data/shadow create mode 100644 tests/tests/failures/useradd/14_username_rename_subuid_failure/data/useradd.err create mode 100755 tests/tests/failures/useradd/14_username_rename_subuid_failure/useradd.test create mode 100644 tests/tests/failures/useradd/15_username_rename_subgid_failure/config.txt create mode 100644 tests/tests/failures/useradd/15_username_rename_subgid_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/useradd/15_username_rename_subgid_failure/config/etc/group create mode 100644 tests/tests/failures/useradd/15_username_rename_subgid_failure/config/etc/gshadow create mode 100644 tests/tests/failures/useradd/15_username_rename_subgid_failure/config/etc/login.defs create mode 100644 tests/tests/failures/useradd/15_username_rename_subgid_failure/config/etc/passwd create mode 100644 tests/tests/failures/useradd/15_username_rename_subgid_failure/config/etc/shadow create mode 100644 tests/tests/failures/useradd/15_username_rename_subgid_failure/config/etc/subgid create mode 100644 tests/tests/failures/useradd/15_username_rename_subgid_failure/config/etc/subuid create mode 100644 tests/tests/failures/useradd/15_username_rename_subgid_failure/data/group create mode 100644 tests/tests/failures/useradd/15_username_rename_subgid_failure/data/gshadow create mode 100644 tests/tests/failures/useradd/15_username_rename_subgid_failure/data/passwd create mode 100644 tests/tests/failures/useradd/15_username_rename_subgid_failure/data/shadow create mode 100644 tests/tests/failures/useradd/15_username_rename_subgid_failure/data/subuid create mode 100644 tests/tests/failures/useradd/15_username_rename_subgid_failure/data/useradd.err create mode 100755 tests/tests/failures/useradd/15_username_rename_subgid_failure/useradd.test create mode 100644 tests/tests/failures/userdel/01_userdel_gshadow_rename_failure/config.txt create mode 100644 tests/tests/failures/userdel/01_userdel_gshadow_rename_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/userdel/01_userdel_gshadow_rename_failure/config/etc/group create mode 100644 tests/tests/failures/userdel/01_userdel_gshadow_rename_failure/config/etc/gshadow create mode 100644 tests/tests/failures/userdel/01_userdel_gshadow_rename_failure/config/etc/login.defs create mode 100644 tests/tests/failures/userdel/01_userdel_gshadow_rename_failure/config/etc/passwd create mode 100644 tests/tests/failures/userdel/01_userdel_gshadow_rename_failure/config/etc/shadow create mode 100644 tests/tests/failures/userdel/01_userdel_gshadow_rename_failure/data/group create mode 100644 tests/tests/failures/userdel/01_userdel_gshadow_rename_failure/data/passwd create mode 100644 tests/tests/failures/userdel/01_userdel_gshadow_rename_failure/data/shadow create mode 100644 tests/tests/failures/userdel/01_userdel_gshadow_rename_failure/data/userdel.err create mode 100755 tests/tests/failures/userdel/01_userdel_gshadow_rename_failure/userdel.test create mode 100644 tests/tests/failures/userdel/02_userdel_group_rename_failure/config.txt create mode 100644 tests/tests/failures/userdel/02_userdel_group_rename_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/userdel/02_userdel_group_rename_failure/config/etc/group create mode 100644 tests/tests/failures/userdel/02_userdel_group_rename_failure/config/etc/gshadow create mode 100644 tests/tests/failures/userdel/02_userdel_group_rename_failure/config/etc/login.defs create mode 100644 tests/tests/failures/userdel/02_userdel_group_rename_failure/config/etc/passwd create mode 100644 tests/tests/failures/userdel/02_userdel_group_rename_failure/config/etc/shadow create mode 100644 tests/tests/failures/userdel/02_userdel_group_rename_failure/data/passwd create mode 100644 tests/tests/failures/userdel/02_userdel_group_rename_failure/data/shadow create mode 100644 tests/tests/failures/userdel/02_userdel_group_rename_failure/data/userdel.err create mode 100755 tests/tests/failures/userdel/02_userdel_group_rename_failure/userdel.test create mode 100644 tests/tests/failures/userdel/03_userdel_shadow_rename_failure/config.txt create mode 100644 tests/tests/failures/userdel/03_userdel_shadow_rename_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/userdel/03_userdel_shadow_rename_failure/config/etc/group create mode 100644 tests/tests/failures/userdel/03_userdel_shadow_rename_failure/config/etc/gshadow create mode 100644 tests/tests/failures/userdel/03_userdel_shadow_rename_failure/config/etc/login.defs create mode 100644 tests/tests/failures/userdel/03_userdel_shadow_rename_failure/config/etc/passwd create mode 100644 tests/tests/failures/userdel/03_userdel_shadow_rename_failure/config/etc/shadow create mode 100644 tests/tests/failures/userdel/03_userdel_shadow_rename_failure/data/passwd create mode 100644 tests/tests/failures/userdel/03_userdel_shadow_rename_failure/data/userdel.err create mode 100755 tests/tests/failures/userdel/03_userdel_shadow_rename_failure/userdel.test create mode 100644 tests/tests/failures/userdel/04_userdel_passwd_rename_failure/config.txt create mode 100644 tests/tests/failures/userdel/04_userdel_passwd_rename_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/userdel/04_userdel_passwd_rename_failure/config/etc/group create mode 100644 tests/tests/failures/userdel/04_userdel_passwd_rename_failure/config/etc/gshadow create mode 100644 tests/tests/failures/userdel/04_userdel_passwd_rename_failure/config/etc/login.defs create mode 100644 tests/tests/failures/userdel/04_userdel_passwd_rename_failure/config/etc/passwd create mode 100644 tests/tests/failures/userdel/04_userdel_passwd_rename_failure/config/etc/shadow create mode 100644 tests/tests/failures/userdel/04_userdel_passwd_rename_failure/data/userdel.err create mode 100755 tests/tests/failures/userdel/04_userdel_passwd_rename_failure/userdel.test create mode 100644 tests/tests/failures/userdel/05_userdel_failure_remove_mailbox/config.txt create mode 100644 tests/tests/failures/userdel/05_userdel_failure_remove_mailbox/config/etc/default/useradd create mode 100644 tests/tests/failures/userdel/05_userdel_failure_remove_mailbox/config/etc/group create mode 100644 tests/tests/failures/userdel/05_userdel_failure_remove_mailbox/config/etc/gshadow create mode 100644 tests/tests/failures/userdel/05_userdel_failure_remove_mailbox/config/etc/login.defs create mode 100644 tests/tests/failures/userdel/05_userdel_failure_remove_mailbox/config/etc/passwd create mode 100644 tests/tests/failures/userdel/05_userdel_failure_remove_mailbox/config/etc/shadow create mode 100644 tests/tests/failures/userdel/05_userdel_failure_remove_mailbox/config/var/mail/foo create mode 100644 tests/tests/failures/userdel/05_userdel_failure_remove_mailbox/data/group create mode 100644 tests/tests/failures/userdel/05_userdel_failure_remove_mailbox/data/gshadow create mode 100644 tests/tests/failures/userdel/05_userdel_failure_remove_mailbox/data/passwd create mode 100644 tests/tests/failures/userdel/05_userdel_failure_remove_mailbox/data/shadow create mode 100644 tests/tests/failures/userdel/05_userdel_failure_remove_mailbox/data/userdel.err create mode 100755 tests/tests/failures/userdel/05_userdel_failure_remove_mailbox/userdel.test create mode 100644 tests/tests/failures/userdel/06_userdel_failure_remove_file_homedir/config.txt create mode 100644 tests/tests/failures/userdel/06_userdel_failure_remove_file_homedir/config/etc/default/useradd create mode 100644 tests/tests/failures/userdel/06_userdel_failure_remove_file_homedir/config/etc/group create mode 100644 tests/tests/failures/userdel/06_userdel_failure_remove_file_homedir/config/etc/gshadow create mode 100644 tests/tests/failures/userdel/06_userdel_failure_remove_file_homedir/config/etc/login.defs create mode 100644 tests/tests/failures/userdel/06_userdel_failure_remove_file_homedir/config/etc/passwd create mode 100644 tests/tests/failures/userdel/06_userdel_failure_remove_file_homedir/config/etc/shadow create mode 100644 tests/tests/failures/userdel/06_userdel_failure_remove_file_homedir/data/group create mode 100644 tests/tests/failures/userdel/06_userdel_failure_remove_file_homedir/data/gshadow create mode 100644 tests/tests/failures/userdel/06_userdel_failure_remove_file_homedir/data/passwd create mode 100644 tests/tests/failures/userdel/06_userdel_failure_remove_file_homedir/data/shadow create mode 100644 tests/tests/failures/userdel/06_userdel_failure_remove_file_homedir/data/userdel.err create mode 100755 tests/tests/failures/userdel/06_userdel_failure_remove_file_homedir/userdel.test create mode 100644 tests/tests/failures/userdel/07_userdel_failure_remove_homedir/config.txt create mode 100644 tests/tests/failures/userdel/07_userdel_failure_remove_homedir/config/etc/default/useradd create mode 100644 tests/tests/failures/userdel/07_userdel_failure_remove_homedir/config/etc/group create mode 100644 tests/tests/failures/userdel/07_userdel_failure_remove_homedir/config/etc/gshadow create mode 100644 tests/tests/failures/userdel/07_userdel_failure_remove_homedir/config/etc/login.defs create mode 100644 tests/tests/failures/userdel/07_userdel_failure_remove_homedir/config/etc/passwd create mode 100644 tests/tests/failures/userdel/07_userdel_failure_remove_homedir/config/etc/shadow create mode 100644 tests/tests/failures/userdel/07_userdel_failure_remove_homedir/data/group create mode 100644 tests/tests/failures/userdel/07_userdel_failure_remove_homedir/data/gshadow create mode 100644 tests/tests/failures/userdel/07_userdel_failure_remove_homedir/data/passwd create mode 100644 tests/tests/failures/userdel/07_userdel_failure_remove_homedir/data/shadow create mode 100644 tests/tests/failures/userdel/07_userdel_failure_remove_homedir/data/userdel.err create mode 100755 tests/tests/failures/userdel/07_userdel_failure_remove_homedir/userdel.test create mode 100644 tests/tests/failures/userdel/08_userdel_open_passwd_failure/config.txt create mode 100644 tests/tests/failures/userdel/08_userdel_open_passwd_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/userdel/08_userdel_open_passwd_failure/config/etc/group create mode 100644 tests/tests/failures/userdel/08_userdel_open_passwd_failure/config/etc/gshadow create mode 100644 tests/tests/failures/userdel/08_userdel_open_passwd_failure/config/etc/login.defs create mode 100644 tests/tests/failures/userdel/08_userdel_open_passwd_failure/config/etc/passwd create mode 100644 tests/tests/failures/userdel/08_userdel_open_passwd_failure/config/etc/shadow create mode 100644 tests/tests/failures/userdel/08_userdel_open_passwd_failure/data/userdel.err create mode 100755 tests/tests/failures/userdel/08_userdel_open_passwd_failure/userdel.test create mode 100644 tests/tests/failures/userdel/09_userdel_open_shadow_failure/config.txt create mode 100644 tests/tests/failures/userdel/09_userdel_open_shadow_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/userdel/09_userdel_open_shadow_failure/config/etc/group create mode 100644 tests/tests/failures/userdel/09_userdel_open_shadow_failure/config/etc/gshadow create mode 100644 tests/tests/failures/userdel/09_userdel_open_shadow_failure/config/etc/login.defs create mode 100644 tests/tests/failures/userdel/09_userdel_open_shadow_failure/config/etc/passwd create mode 100644 tests/tests/failures/userdel/09_userdel_open_shadow_failure/config/etc/shadow create mode 100644 tests/tests/failures/userdel/09_userdel_open_shadow_failure/data/userdel.err create mode 100755 tests/tests/failures/userdel/09_userdel_open_shadow_failure/userdel.test create mode 100644 tests/tests/failures/userdel/10_userdel_open_group_failure/config.txt create mode 100644 tests/tests/failures/userdel/10_userdel_open_group_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/userdel/10_userdel_open_group_failure/config/etc/group create mode 100644 tests/tests/failures/userdel/10_userdel_open_group_failure/config/etc/gshadow create mode 100644 tests/tests/failures/userdel/10_userdel_open_group_failure/config/etc/login.defs create mode 100644 tests/tests/failures/userdel/10_userdel_open_group_failure/config/etc/passwd create mode 100644 tests/tests/failures/userdel/10_userdel_open_group_failure/config/etc/shadow create mode 100644 tests/tests/failures/userdel/10_userdel_open_group_failure/data/userdel.err create mode 100755 tests/tests/failures/userdel/10_userdel_open_group_failure/userdel.test create mode 100644 tests/tests/failures/userdel/11_userdel_open_gshadow_failure/config.txt create mode 100644 tests/tests/failures/userdel/11_userdel_open_gshadow_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/userdel/11_userdel_open_gshadow_failure/config/etc/group create mode 100644 tests/tests/failures/userdel/11_userdel_open_gshadow_failure/config/etc/gshadow create mode 100644 tests/tests/failures/userdel/11_userdel_open_gshadow_failure/config/etc/login.defs create mode 100644 tests/tests/failures/userdel/11_userdel_open_gshadow_failure/config/etc/passwd create mode 100644 tests/tests/failures/userdel/11_userdel_open_gshadow_failure/config/etc/shadow create mode 100644 tests/tests/failures/userdel/11_userdel_open_gshadow_failure/data/userdel.err create mode 100755 tests/tests/failures/userdel/11_userdel_open_gshadow_failure/userdel.test create mode 100644 tests/tests/failures/userdel/12_userdel_open_subuid_failure/config.txt create mode 100644 tests/tests/failures/userdel/12_userdel_open_subuid_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/userdel/12_userdel_open_subuid_failure/config/etc/group create mode 100644 tests/tests/failures/userdel/12_userdel_open_subuid_failure/config/etc/gshadow create mode 100644 tests/tests/failures/userdel/12_userdel_open_subuid_failure/config/etc/login.defs create mode 100644 tests/tests/failures/userdel/12_userdel_open_subuid_failure/config/etc/passwd create mode 100644 tests/tests/failures/userdel/12_userdel_open_subuid_failure/config/etc/shadow create mode 100644 tests/tests/failures/userdel/12_userdel_open_subuid_failure/config/etc/subgid create mode 100644 tests/tests/failures/userdel/12_userdel_open_subuid_failure/config/etc/subuid create mode 100644 tests/tests/failures/userdel/12_userdel_open_subuid_failure/data/userdel.err create mode 100755 tests/tests/failures/userdel/12_userdel_open_subuid_failure/userdel.test create mode 100644 tests/tests/failures/userdel/13_userdel_open_subgid_failure/config.txt create mode 100644 tests/tests/failures/userdel/13_userdel_open_subgid_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/userdel/13_userdel_open_subgid_failure/config/etc/group create mode 100644 tests/tests/failures/userdel/13_userdel_open_subgid_failure/config/etc/gshadow create mode 100644 tests/tests/failures/userdel/13_userdel_open_subgid_failure/config/etc/login.defs create mode 100644 tests/tests/failures/userdel/13_userdel_open_subgid_failure/config/etc/passwd create mode 100644 tests/tests/failures/userdel/13_userdel_open_subgid_failure/config/etc/shadow create mode 100644 tests/tests/failures/userdel/13_userdel_open_subgid_failure/config/etc/subgid create mode 100644 tests/tests/failures/userdel/13_userdel_open_subgid_failure/config/etc/subuid create mode 100644 tests/tests/failures/userdel/13_userdel_open_subgid_failure/data/userdel.err create mode 100755 tests/tests/failures/userdel/13_userdel_open_subgid_failure/userdel.test create mode 100644 tests/tests/failures/userdel/14_userdel_rename_subuid_failure/config.txt create mode 100644 tests/tests/failures/userdel/14_userdel_rename_subuid_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/userdel/14_userdel_rename_subuid_failure/config/etc/group create mode 100644 tests/tests/failures/userdel/14_userdel_rename_subuid_failure/config/etc/gshadow create mode 100644 tests/tests/failures/userdel/14_userdel_rename_subuid_failure/config/etc/login.defs create mode 100644 tests/tests/failures/userdel/14_userdel_rename_subuid_failure/config/etc/passwd create mode 100644 tests/tests/failures/userdel/14_userdel_rename_subuid_failure/config/etc/shadow create mode 100644 tests/tests/failures/userdel/14_userdel_rename_subuid_failure/config/etc/subgid create mode 100644 tests/tests/failures/userdel/14_userdel_rename_subuid_failure/config/etc/subuid create mode 100644 tests/tests/failures/userdel/14_userdel_rename_subuid_failure/data/group create mode 100644 tests/tests/failures/userdel/14_userdel_rename_subuid_failure/data/gshadow create mode 100644 tests/tests/failures/userdel/14_userdel_rename_subuid_failure/data/passwd create mode 100644 tests/tests/failures/userdel/14_userdel_rename_subuid_failure/data/shadow create mode 100644 tests/tests/failures/userdel/14_userdel_rename_subuid_failure/data/userdel.err create mode 100755 tests/tests/failures/userdel/14_userdel_rename_subuid_failure/usedel.test create mode 100644 tests/tests/failures/userdel/15_userdel_rename_subgid_failure/config.txt create mode 100644 tests/tests/failures/userdel/15_userdel_rename_subgid_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/userdel/15_userdel_rename_subgid_failure/config/etc/group create mode 100644 tests/tests/failures/userdel/15_userdel_rename_subgid_failure/config/etc/gshadow create mode 100644 tests/tests/failures/userdel/15_userdel_rename_subgid_failure/config/etc/login.defs create mode 100644 tests/tests/failures/userdel/15_userdel_rename_subgid_failure/config/etc/passwd create mode 100644 tests/tests/failures/userdel/15_userdel_rename_subgid_failure/config/etc/shadow create mode 100644 tests/tests/failures/userdel/15_userdel_rename_subgid_failure/config/etc/subgid create mode 100644 tests/tests/failures/userdel/15_userdel_rename_subgid_failure/config/etc/subuid create mode 100644 tests/tests/failures/userdel/15_userdel_rename_subgid_failure/data/group create mode 100644 tests/tests/failures/userdel/15_userdel_rename_subgid_failure/data/gshadow create mode 100644 tests/tests/failures/userdel/15_userdel_rename_subgid_failure/data/passwd create mode 100644 tests/tests/failures/userdel/15_userdel_rename_subgid_failure/data/shadow create mode 100644 tests/tests/failures/userdel/15_userdel_rename_subgid_failure/data/subuid create mode 100644 tests/tests/failures/userdel/15_userdel_rename_subgid_failure/data/userdel.err create mode 100755 tests/tests/failures/userdel/15_userdel_rename_subgid_failure/usedel.test create mode 100644 tests/tests/failures/usermod/01_usermod_change_user_name_gshadow_rename_failure/config.txt create mode 100644 tests/tests/failures/usermod/01_usermod_change_user_name_gshadow_rename_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/usermod/01_usermod_change_user_name_gshadow_rename_failure/config/etc/group create mode 100644 tests/tests/failures/usermod/01_usermod_change_user_name_gshadow_rename_failure/config/etc/gshadow create mode 100644 tests/tests/failures/usermod/01_usermod_change_user_name_gshadow_rename_failure/config/etc/login.defs create mode 100644 tests/tests/failures/usermod/01_usermod_change_user_name_gshadow_rename_failure/config/etc/passwd create mode 100644 tests/tests/failures/usermod/01_usermod_change_user_name_gshadow_rename_failure/config/etc/shadow create mode 100644 tests/tests/failures/usermod/01_usermod_change_user_name_gshadow_rename_failure/data/group create mode 100644 tests/tests/failures/usermod/01_usermod_change_user_name_gshadow_rename_failure/data/passwd create mode 100644 tests/tests/failures/usermod/01_usermod_change_user_name_gshadow_rename_failure/data/shadow create mode 100644 tests/tests/failures/usermod/01_usermod_change_user_name_gshadow_rename_failure/data/usermod.err create mode 100755 tests/tests/failures/usermod/01_usermod_change_user_name_gshadow_rename_failure/usermod.test create mode 100644 tests/tests/failures/usermod/02_usermod_change_uid_passwd_rename_failure/config.txt create mode 100644 tests/tests/failures/usermod/02_usermod_change_uid_passwd_rename_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/usermod/02_usermod_change_uid_passwd_rename_failure/config/etc/group create mode 100644 tests/tests/failures/usermod/02_usermod_change_uid_passwd_rename_failure/config/etc/gshadow create mode 100644 tests/tests/failures/usermod/02_usermod_change_uid_passwd_rename_failure/config/etc/login.defs create mode 100644 tests/tests/failures/usermod/02_usermod_change_uid_passwd_rename_failure/config/etc/passwd create mode 100644 tests/tests/failures/usermod/02_usermod_change_uid_passwd_rename_failure/config/etc/shadow create mode 100644 tests/tests/failures/usermod/02_usermod_change_uid_passwd_rename_failure/data/usermod.err create mode 100755 tests/tests/failures/usermod/02_usermod_change_uid_passwd_rename_failure/usermod.test create mode 100644 tests/tests/failures/usermod/03_usermod_change_user_name_group_rename_failure/config.txt create mode 100644 tests/tests/failures/usermod/03_usermod_change_user_name_group_rename_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/usermod/03_usermod_change_user_name_group_rename_failure/config/etc/group create mode 100644 tests/tests/failures/usermod/03_usermod_change_user_name_group_rename_failure/config/etc/gshadow create mode 100644 tests/tests/failures/usermod/03_usermod_change_user_name_group_rename_failure/config/etc/login.defs create mode 100644 tests/tests/failures/usermod/03_usermod_change_user_name_group_rename_failure/config/etc/passwd create mode 100644 tests/tests/failures/usermod/03_usermod_change_user_name_group_rename_failure/config/etc/shadow create mode 100644 tests/tests/failures/usermod/03_usermod_change_user_name_group_rename_failure/data/passwd create mode 100644 tests/tests/failures/usermod/03_usermod_change_user_name_group_rename_failure/data/shadow create mode 100644 tests/tests/failures/usermod/03_usermod_change_user_name_group_rename_failure/data/usermod.err create mode 100755 tests/tests/failures/usermod/03_usermod_change_user_name_group_rename_failure/usermod.test create mode 100644 tests/tests/failures/usermod/04_usermod_change_user_name_gshadow_rename_no_failure/config.txt create mode 100644 tests/tests/failures/usermod/04_usermod_change_user_name_gshadow_rename_no_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/usermod/04_usermod_change_user_name_gshadow_rename_no_failure/config/etc/group create mode 100644 tests/tests/failures/usermod/04_usermod_change_user_name_gshadow_rename_no_failure/config/etc/gshadow create mode 100644 tests/tests/failures/usermod/04_usermod_change_user_name_gshadow_rename_no_failure/config/etc/login.defs create mode 100644 tests/tests/failures/usermod/04_usermod_change_user_name_gshadow_rename_no_failure/config/etc/passwd create mode 100644 tests/tests/failures/usermod/04_usermod_change_user_name_gshadow_rename_no_failure/config/etc/shadow create mode 100644 tests/tests/failures/usermod/04_usermod_change_user_name_gshadow_rename_no_failure/data/passwd create mode 100644 tests/tests/failures/usermod/04_usermod_change_user_name_gshadow_rename_no_failure/data/shadow create mode 100755 tests/tests/failures/usermod/04_usermod_change_user_name_gshadow_rename_no_failure/usermod.test create mode 100644 tests/tests/failures/usermod/05_usermod_change_uid_shadow_rename_failure/config.txt create mode 100644 tests/tests/failures/usermod/05_usermod_change_uid_shadow_rename_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/usermod/05_usermod_change_uid_shadow_rename_failure/config/etc/group create mode 100644 tests/tests/failures/usermod/05_usermod_change_uid_shadow_rename_failure/config/etc/gshadow create mode 100644 tests/tests/failures/usermod/05_usermod_change_uid_shadow_rename_failure/config/etc/login.defs create mode 100644 tests/tests/failures/usermod/05_usermod_change_uid_shadow_rename_failure/config/etc/passwd create mode 100644 tests/tests/failures/usermod/05_usermod_change_uid_shadow_rename_failure/config/etc/shadow create mode 100644 tests/tests/failures/usermod/05_usermod_change_uid_shadow_rename_failure/data/passwd create mode 100644 tests/tests/failures/usermod/05_usermod_change_uid_shadow_rename_failure/data/usermod.err create mode 100755 tests/tests/failures/usermod/05_usermod_change_uid_shadow_rename_failure/usermod.test create mode 100644 tests/tests/failures/usermod/06_usermod_change_user_name_open_passwd_failure/config.txt create mode 100644 tests/tests/failures/usermod/06_usermod_change_user_name_open_passwd_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/usermod/06_usermod_change_user_name_open_passwd_failure/config/etc/group create mode 100644 tests/tests/failures/usermod/06_usermod_change_user_name_open_passwd_failure/config/etc/gshadow create mode 100644 tests/tests/failures/usermod/06_usermod_change_user_name_open_passwd_failure/config/etc/login.defs create mode 100644 tests/tests/failures/usermod/06_usermod_change_user_name_open_passwd_failure/config/etc/passwd create mode 100644 tests/tests/failures/usermod/06_usermod_change_user_name_open_passwd_failure/config/etc/shadow create mode 100644 tests/tests/failures/usermod/06_usermod_change_user_name_open_passwd_failure/data/usermod.err create mode 100755 tests/tests/failures/usermod/06_usermod_change_user_name_open_passwd_failure/usermod.test create mode 100644 tests/tests/failures/usermod/07_usermod_change_user_name_open_shadow_failure/config.txt create mode 100644 tests/tests/failures/usermod/07_usermod_change_user_name_open_shadow_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/usermod/07_usermod_change_user_name_open_shadow_failure/config/etc/group create mode 100644 tests/tests/failures/usermod/07_usermod_change_user_name_open_shadow_failure/config/etc/gshadow create mode 100644 tests/tests/failures/usermod/07_usermod_change_user_name_open_shadow_failure/config/etc/login.defs create mode 100644 tests/tests/failures/usermod/07_usermod_change_user_name_open_shadow_failure/config/etc/passwd create mode 100644 tests/tests/failures/usermod/07_usermod_change_user_name_open_shadow_failure/config/etc/shadow create mode 100644 tests/tests/failures/usermod/07_usermod_change_user_name_open_shadow_failure/data/usermod.err create mode 100755 tests/tests/failures/usermod/07_usermod_change_user_name_open_shadow_failure/usermod.test create mode 100644 tests/tests/failures/usermod/08_usermod_change_user_name_open_group_failure/config.txt create mode 100644 tests/tests/failures/usermod/08_usermod_change_user_name_open_group_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/usermod/08_usermod_change_user_name_open_group_failure/config/etc/group create mode 100644 tests/tests/failures/usermod/08_usermod_change_user_name_open_group_failure/config/etc/gshadow create mode 100644 tests/tests/failures/usermod/08_usermod_change_user_name_open_group_failure/config/etc/login.defs create mode 100644 tests/tests/failures/usermod/08_usermod_change_user_name_open_group_failure/config/etc/passwd create mode 100644 tests/tests/failures/usermod/08_usermod_change_user_name_open_group_failure/config/etc/shadow create mode 100644 tests/tests/failures/usermod/08_usermod_change_user_name_open_group_failure/data/usermod.err create mode 100755 tests/tests/failures/usermod/08_usermod_change_user_name_open_group_failure/usermod.test create mode 100644 tests/tests/failures/usermod/09_usermod_change_user_name_open_gshadow_failure/config.txt create mode 100644 tests/tests/failures/usermod/09_usermod_change_user_name_open_gshadow_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/usermod/09_usermod_change_user_name_open_gshadow_failure/config/etc/group create mode 100644 tests/tests/failures/usermod/09_usermod_change_user_name_open_gshadow_failure/config/etc/gshadow create mode 100644 tests/tests/failures/usermod/09_usermod_change_user_name_open_gshadow_failure/config/etc/login.defs create mode 100644 tests/tests/failures/usermod/09_usermod_change_user_name_open_gshadow_failure/config/etc/passwd create mode 100644 tests/tests/failures/usermod/09_usermod_change_user_name_open_gshadow_failure/config/etc/shadow create mode 100644 tests/tests/failures/usermod/09_usermod_change_user_name_open_gshadow_failure/data/usermod.err create mode 100755 tests/tests/failures/usermod/09_usermod_change_user_name_open_gshadow_failure/usermod.test create mode 100644 tests/tests/failures/usermod/10_usermod_-p_time_0/config.txt create mode 100644 tests/tests/failures/usermod/10_usermod_-p_time_0/config/etc/default/useradd create mode 100644 tests/tests/failures/usermod/10_usermod_-p_time_0/config/etc/group create mode 100644 tests/tests/failures/usermod/10_usermod_-p_time_0/config/etc/gshadow create mode 100644 tests/tests/failures/usermod/10_usermod_-p_time_0/config/etc/passwd create mode 100644 tests/tests/failures/usermod/10_usermod_-p_time_0/config/etc/shadow create mode 100644 tests/tests/failures/usermod/10_usermod_-p_time_0/data/passwd create mode 100644 tests/tests/failures/usermod/10_usermod_-p_time_0/data/shadow create mode 100755 tests/tests/failures/usermod/10_usermod_-p_time_0/usermod.test create mode 100644 tests/tests/failures/usermod/11_usermod-f_no_shadow_entry_time_0/config.txt create mode 100644 tests/tests/failures/usermod/11_usermod-f_no_shadow_entry_time_0/config/etc/default/useradd create mode 100644 tests/tests/failures/usermod/11_usermod-f_no_shadow_entry_time_0/config/etc/group create mode 100644 tests/tests/failures/usermod/11_usermod-f_no_shadow_entry_time_0/config/etc/gshadow create mode 100644 tests/tests/failures/usermod/11_usermod-f_no_shadow_entry_time_0/config/etc/passwd create mode 100644 tests/tests/failures/usermod/11_usermod-f_no_shadow_entry_time_0/config/etc/shadow create mode 100644 tests/tests/failures/usermod/11_usermod-f_no_shadow_entry_time_0/data/shadow create mode 100755 tests/tests/failures/usermod/11_usermod-f_no_shadow_entry_time_0/usermod.test create mode 100644 tests/tests/failures/usermod/12_usermod_change_uid_passwd_unlock_passwd_failure/config.txt create mode 100644 tests/tests/failures/usermod/12_usermod_change_uid_passwd_unlock_passwd_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/usermod/12_usermod_change_uid_passwd_unlock_passwd_failure/config/etc/group create mode 100644 tests/tests/failures/usermod/12_usermod_change_uid_passwd_unlock_passwd_failure/config/etc/gshadow create mode 100644 tests/tests/failures/usermod/12_usermod_change_uid_passwd_unlock_passwd_failure/config/etc/login.defs create mode 100644 tests/tests/failures/usermod/12_usermod_change_uid_passwd_unlock_passwd_failure/config/etc/passwd create mode 100644 tests/tests/failures/usermod/12_usermod_change_uid_passwd_unlock_passwd_failure/config/etc/shadow create mode 100644 tests/tests/failures/usermod/12_usermod_change_uid_passwd_unlock_passwd_failure/data/usermod.err create mode 100755 tests/tests/failures/usermod/12_usermod_change_uid_passwd_unlock_passwd_failure/usermod.test create mode 100644 tests/tests/failures/usermod/13_usermod_-v_open_subuid_failure/config.txt create mode 100644 tests/tests/failures/usermod/13_usermod_-v_open_subuid_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/usermod/13_usermod_-v_open_subuid_failure/config/etc/group create mode 100644 tests/tests/failures/usermod/13_usermod_-v_open_subuid_failure/config/etc/gshadow create mode 100644 tests/tests/failures/usermod/13_usermod_-v_open_subuid_failure/config/etc/login.defs create mode 100644 tests/tests/failures/usermod/13_usermod_-v_open_subuid_failure/config/etc/passwd create mode 100644 tests/tests/failures/usermod/13_usermod_-v_open_subuid_failure/config/etc/shadow create mode 100644 tests/tests/failures/usermod/13_usermod_-v_open_subuid_failure/config/etc/subgid create mode 100644 tests/tests/failures/usermod/13_usermod_-v_open_subuid_failure/config/etc/subuid create mode 100644 tests/tests/failures/usermod/13_usermod_-v_open_subuid_failure/data/usermod.err create mode 100755 tests/tests/failures/usermod/13_usermod_-v_open_subuid_failure/usermod.test create mode 100644 tests/tests/failures/usermod/14_usermod_-V_open_subuid_failure/config.txt create mode 100644 tests/tests/failures/usermod/14_usermod_-V_open_subuid_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/usermod/14_usermod_-V_open_subuid_failure/config/etc/group create mode 100644 tests/tests/failures/usermod/14_usermod_-V_open_subuid_failure/config/etc/gshadow create mode 100644 tests/tests/failures/usermod/14_usermod_-V_open_subuid_failure/config/etc/login.defs create mode 100644 tests/tests/failures/usermod/14_usermod_-V_open_subuid_failure/config/etc/passwd create mode 100644 tests/tests/failures/usermod/14_usermod_-V_open_subuid_failure/config/etc/shadow create mode 100644 tests/tests/failures/usermod/14_usermod_-V_open_subuid_failure/config/etc/subgid create mode 100644 tests/tests/failures/usermod/14_usermod_-V_open_subuid_failure/config/etc/subuid create mode 100644 tests/tests/failures/usermod/14_usermod_-V_open_subuid_failure/data/usermod.err create mode 100755 tests/tests/failures/usermod/14_usermod_-V_open_subuid_failure/usermod.test create mode 100644 tests/tests/failures/usermod/15_usermod_-w_open_subgid_failure/config.txt create mode 100644 tests/tests/failures/usermod/15_usermod_-w_open_subgid_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/usermod/15_usermod_-w_open_subgid_failure/config/etc/group create mode 100644 tests/tests/failures/usermod/15_usermod_-w_open_subgid_failure/config/etc/gshadow create mode 100644 tests/tests/failures/usermod/15_usermod_-w_open_subgid_failure/config/etc/login.defs create mode 100644 tests/tests/failures/usermod/15_usermod_-w_open_subgid_failure/config/etc/passwd create mode 100644 tests/tests/failures/usermod/15_usermod_-w_open_subgid_failure/config/etc/shadow create mode 100644 tests/tests/failures/usermod/15_usermod_-w_open_subgid_failure/config/etc/subgid create mode 100644 tests/tests/failures/usermod/15_usermod_-w_open_subgid_failure/config/etc/subuid create mode 100644 tests/tests/failures/usermod/15_usermod_-w_open_subgid_failure/data/usermod.err create mode 100755 tests/tests/failures/usermod/15_usermod_-w_open_subgid_failure/usermod.test create mode 100644 tests/tests/failures/usermod/16_usermod_-W_open_subgid_failure/config.txt create mode 100644 tests/tests/failures/usermod/16_usermod_-W_open_subgid_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/usermod/16_usermod_-W_open_subgid_failure/config/etc/group create mode 100644 tests/tests/failures/usermod/16_usermod_-W_open_subgid_failure/config/etc/gshadow create mode 100644 tests/tests/failures/usermod/16_usermod_-W_open_subgid_failure/config/etc/login.defs create mode 100644 tests/tests/failures/usermod/16_usermod_-W_open_subgid_failure/config/etc/passwd create mode 100644 tests/tests/failures/usermod/16_usermod_-W_open_subgid_failure/config/etc/shadow create mode 100644 tests/tests/failures/usermod/16_usermod_-W_open_subgid_failure/config/etc/subgid create mode 100644 tests/tests/failures/usermod/16_usermod_-W_open_subgid_failure/config/etc/subuid create mode 100644 tests/tests/failures/usermod/16_usermod_-W_open_subgid_failure/data/usermod.err create mode 100755 tests/tests/failures/usermod/16_usermod_-W_open_subgid_failure/usermod.test create mode 100644 tests/tests/failures/usermod/17_usermod_-v_rename_subuid_failure/config.txt create mode 100644 tests/tests/failures/usermod/17_usermod_-v_rename_subuid_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/usermod/17_usermod_-v_rename_subuid_failure/config/etc/group create mode 100644 tests/tests/failures/usermod/17_usermod_-v_rename_subuid_failure/config/etc/gshadow create mode 100644 tests/tests/failures/usermod/17_usermod_-v_rename_subuid_failure/config/etc/login.defs create mode 100644 tests/tests/failures/usermod/17_usermod_-v_rename_subuid_failure/config/etc/passwd create mode 100644 tests/tests/failures/usermod/17_usermod_-v_rename_subuid_failure/config/etc/shadow create mode 100644 tests/tests/failures/usermod/17_usermod_-v_rename_subuid_failure/config/etc/subgid create mode 100644 tests/tests/failures/usermod/17_usermod_-v_rename_subuid_failure/config/etc/subuid create mode 100644 tests/tests/failures/usermod/17_usermod_-v_rename_subuid_failure/data/usermod.err create mode 100755 tests/tests/failures/usermod/17_usermod_-v_rename_subuid_failure/usermod.test create mode 100644 tests/tests/failures/usermod/18_usermod_-w_rename_subgid_failure/config.txt create mode 100644 tests/tests/failures/usermod/18_usermod_-w_rename_subgid_failure/config/etc/default/useradd create mode 100644 tests/tests/failures/usermod/18_usermod_-w_rename_subgid_failure/config/etc/group create mode 100644 tests/tests/failures/usermod/18_usermod_-w_rename_subgid_failure/config/etc/gshadow create mode 100644 tests/tests/failures/usermod/18_usermod_-w_rename_subgid_failure/config/etc/login.defs create mode 100644 tests/tests/failures/usermod/18_usermod_-w_rename_subgid_failure/config/etc/passwd create mode 100644 tests/tests/failures/usermod/18_usermod_-w_rename_subgid_failure/config/etc/shadow create mode 100644 tests/tests/failures/usermod/18_usermod_-w_rename_subgid_failure/config/etc/subgid create mode 100644 tests/tests/failures/usermod/18_usermod_-w_rename_subgid_failure/config/etc/subuid create mode 100644 tests/tests/failures/usermod/18_usermod_-w_rename_subgid_failure/data/usermod.err create mode 100755 tests/tests/failures/usermod/18_usermod_-w_rename_subgid_failure/usermod.test create mode 100755 tests/tests/grouptools/chgpasswd/01_chgpasswd_invalid_group/chgpasswd.test create mode 100644 tests/tests/grouptools/chgpasswd/01_chgpasswd_invalid_group/config/etc/group create mode 100644 tests/tests/grouptools/chgpasswd/01_chgpasswd_invalid_group/config/etc/gshadow create mode 100644 tests/tests/grouptools/chgpasswd/01_chgpasswd_invalid_group/config/etc/login.defs create mode 100644 tests/tests/grouptools/chgpasswd/01_chgpasswd_invalid_group/config/etc/passwd create mode 100644 tests/tests/grouptools/chgpasswd/01_chgpasswd_invalid_group/config/etc/shadow create mode 100644 tests/tests/grouptools/chgpasswd/01_chgpasswd_invalid_group/data/chgpasswd.err create mode 100755 tests/tests/grouptools/chgpasswd/02_chgpasswd_multiple_groups/chgpasswd.test create mode 100644 tests/tests/grouptools/chgpasswd/02_chgpasswd_multiple_groups/config/etc/group create mode 100644 tests/tests/grouptools/chgpasswd/02_chgpasswd_multiple_groups/config/etc/gshadow create mode 100644 tests/tests/grouptools/chgpasswd/02_chgpasswd_multiple_groups/config/etc/login.defs create mode 100644 tests/tests/grouptools/chgpasswd/02_chgpasswd_multiple_groups/config/etc/passwd create mode 100644 tests/tests/grouptools/chgpasswd/02_chgpasswd_multiple_groups/config/etc/shadow create mode 100644 tests/tests/grouptools/chgpasswd/02_chgpasswd_multiple_groups/data/gshadow create mode 100755 tests/tests/grouptools/chgpasswd/03_chgpasswd_no_gshadow_file/chgpasswd.test create mode 100644 tests/tests/grouptools/chgpasswd/03_chgpasswd_no_gshadow_file/config/etc/group create mode 100644 tests/tests/grouptools/chgpasswd/03_chgpasswd_no_gshadow_file/config/etc/gshadow create mode 100644 tests/tests/grouptools/chgpasswd/03_chgpasswd_no_gshadow_file/config/etc/login.defs create mode 100644 tests/tests/grouptools/chgpasswd/03_chgpasswd_no_gshadow_file/config/etc/passwd create mode 100644 tests/tests/grouptools/chgpasswd/03_chgpasswd_no_gshadow_file/config/etc/shadow create mode 100644 tests/tests/grouptools/chgpasswd/03_chgpasswd_no_gshadow_file/data/group create mode 100755 tests/tests/grouptools/chgpasswd/04_chgpasswd_no_gshadow_entry/chgpasswd.test create mode 100644 tests/tests/grouptools/chgpasswd/04_chgpasswd_no_gshadow_entry/config/etc/group create mode 100644 tests/tests/grouptools/chgpasswd/04_chgpasswd_no_gshadow_entry/config/etc/gshadow create mode 100644 tests/tests/grouptools/chgpasswd/04_chgpasswd_no_gshadow_entry/config/etc/login.defs create mode 100644 tests/tests/grouptools/chgpasswd/04_chgpasswd_no_gshadow_entry/config/etc/passwd create mode 100644 tests/tests/grouptools/chgpasswd/04_chgpasswd_no_gshadow_entry/config/etc/shadow create mode 100644 tests/tests/grouptools/chgpasswd/04_chgpasswd_no_gshadow_entry/data/group create mode 100644 tests/tests/grouptools/chgpasswd/04_chgpasswd_no_gshadow_entry/data/gshadow create mode 100755 tests/tests/grouptools/chgpasswd/05_chgpasswd_error_no_password/chgpasswd.test create mode 100644 tests/tests/grouptools/chgpasswd/05_chgpasswd_error_no_password/config/etc/group create mode 100644 tests/tests/grouptools/chgpasswd/05_chgpasswd_error_no_password/config/etc/gshadow create mode 100644 tests/tests/grouptools/chgpasswd/05_chgpasswd_error_no_password/config/etc/login.defs create mode 100644 tests/tests/grouptools/chgpasswd/05_chgpasswd_error_no_password/config/etc/passwd create mode 100644 tests/tests/grouptools/chgpasswd/05_chgpasswd_error_no_password/config/etc/shadow create mode 100644 tests/tests/grouptools/chgpasswd/05_chgpasswd_error_no_password/data/chgpasswd.err create mode 100755 tests/tests/grouptools/chgpasswd/06_chgpasswd_usage/chgpasswd.test create mode 100644 tests/tests/grouptools/chgpasswd/06_chgpasswd_usage/config.txt create mode 100644 tests/tests/grouptools/chgpasswd/06_chgpasswd_usage/config/etc/default/useradd create mode 100644 tests/tests/grouptools/chgpasswd/06_chgpasswd_usage/config/etc/group create mode 100644 tests/tests/grouptools/chgpasswd/06_chgpasswd_usage/config/etc/gshadow create mode 100644 tests/tests/grouptools/chgpasswd/06_chgpasswd_usage/config/etc/passwd create mode 100644 tests/tests/grouptools/chgpasswd/06_chgpasswd_usage/config/etc/shadow create mode 100644 tests/tests/grouptools/chgpasswd/06_chgpasswd_usage/data/usage.out create mode 100755 tests/tests/grouptools/chgpasswd/07_chgpasswd_usage_bad_option/chgpasswd.test create mode 100644 tests/tests/grouptools/chgpasswd/07_chgpasswd_usage_bad_option/config.txt create mode 100644 tests/tests/grouptools/chgpasswd/07_chgpasswd_usage_bad_option/config/etc/default/useradd create mode 100644 tests/tests/grouptools/chgpasswd/07_chgpasswd_usage_bad_option/config/etc/group create mode 100644 tests/tests/grouptools/chgpasswd/07_chgpasswd_usage_bad_option/config/etc/gshadow create mode 100644 tests/tests/grouptools/chgpasswd/07_chgpasswd_usage_bad_option/config/etc/passwd create mode 100644 tests/tests/grouptools/chgpasswd/07_chgpasswd_usage_bad_option/config/etc/shadow create mode 100644 tests/tests/grouptools/chgpasswd/07_chgpasswd_usage_bad_option/data/usage.out create mode 100755 tests/tests/grouptools/chgpasswd/08_chgpasswd_usage-e-m_exclusive/chgpasswd.test create mode 100644 tests/tests/grouptools/chgpasswd/08_chgpasswd_usage-e-m_exclusive/config.txt create mode 100644 tests/tests/grouptools/chgpasswd/08_chgpasswd_usage-e-m_exclusive/config/etc/default/useradd create mode 100644 tests/tests/grouptools/chgpasswd/08_chgpasswd_usage-e-m_exclusive/config/etc/group create mode 100644 tests/tests/grouptools/chgpasswd/08_chgpasswd_usage-e-m_exclusive/config/etc/gshadow create mode 100644 tests/tests/grouptools/chgpasswd/08_chgpasswd_usage-e-m_exclusive/config/etc/passwd create mode 100644 tests/tests/grouptools/chgpasswd/08_chgpasswd_usage-e-m_exclusive/config/etc/shadow create mode 100644 tests/tests/grouptools/chgpasswd/08_chgpasswd_usage-e-m_exclusive/data/usage.out create mode 100755 tests/tests/grouptools/chgpasswd/09_chgpasswd_usage-e-c_exclusive/chgpasswd.test create mode 100644 tests/tests/grouptools/chgpasswd/09_chgpasswd_usage-e-c_exclusive/config.txt create mode 100644 tests/tests/grouptools/chgpasswd/09_chgpasswd_usage-e-c_exclusive/config/etc/default/useradd create mode 100644 tests/tests/grouptools/chgpasswd/09_chgpasswd_usage-e-c_exclusive/config/etc/group create mode 100644 tests/tests/grouptools/chgpasswd/09_chgpasswd_usage-e-c_exclusive/config/etc/gshadow create mode 100644 tests/tests/grouptools/chgpasswd/09_chgpasswd_usage-e-c_exclusive/config/etc/passwd create mode 100644 tests/tests/grouptools/chgpasswd/09_chgpasswd_usage-e-c_exclusive/config/etc/shadow create mode 100644 tests/tests/grouptools/chgpasswd/09_chgpasswd_usage-e-c_exclusive/data/usage.out create mode 100755 tests/tests/grouptools/chgpasswd/10_chgpasswd_usage-m-c_exclusive/chgpasswd.test create mode 100644 tests/tests/grouptools/chgpasswd/10_chgpasswd_usage-m-c_exclusive/config.txt create mode 100644 tests/tests/grouptools/chgpasswd/10_chgpasswd_usage-m-c_exclusive/config/etc/default/useradd create mode 100644 tests/tests/grouptools/chgpasswd/10_chgpasswd_usage-m-c_exclusive/config/etc/group create mode 100644 tests/tests/grouptools/chgpasswd/10_chgpasswd_usage-m-c_exclusive/config/etc/gshadow create mode 100644 tests/tests/grouptools/chgpasswd/10_chgpasswd_usage-m-c_exclusive/config/etc/passwd create mode 100644 tests/tests/grouptools/chgpasswd/10_chgpasswd_usage-m-c_exclusive/config/etc/shadow create mode 100644 tests/tests/grouptools/chgpasswd/10_chgpasswd_usage-m-c_exclusive/data/usage.out create mode 100755 tests/tests/grouptools/chgpasswd/11_chgpasswd_usage-s_without-c/chgpasswd.test create mode 100644 tests/tests/grouptools/chgpasswd/11_chgpasswd_usage-s_without-c/config.txt create mode 100644 tests/tests/grouptools/chgpasswd/11_chgpasswd_usage-s_without-c/config/etc/default/useradd create mode 100644 tests/tests/grouptools/chgpasswd/11_chgpasswd_usage-s_without-c/config/etc/group create mode 100644 tests/tests/grouptools/chgpasswd/11_chgpasswd_usage-s_without-c/config/etc/gshadow create mode 100644 tests/tests/grouptools/chgpasswd/11_chgpasswd_usage-s_without-c/config/etc/passwd create mode 100644 tests/tests/grouptools/chgpasswd/11_chgpasswd_usage-s_without-c/config/etc/shadow create mode 100644 tests/tests/grouptools/chgpasswd/11_chgpasswd_usage-s_without-c/data/usage.out create mode 100755 tests/tests/grouptools/chgpasswd/12_chgpasswd_usage-s_invalid/chgpasswd.test create mode 100644 tests/tests/grouptools/chgpasswd/12_chgpasswd_usage-s_invalid/config.txt create mode 100644 tests/tests/grouptools/chgpasswd/12_chgpasswd_usage-s_invalid/config/etc/default/useradd create mode 100644 tests/tests/grouptools/chgpasswd/12_chgpasswd_usage-s_invalid/config/etc/group create mode 100644 tests/tests/grouptools/chgpasswd/12_chgpasswd_usage-s_invalid/config/etc/gshadow create mode 100644 tests/tests/grouptools/chgpasswd/12_chgpasswd_usage-s_invalid/config/etc/passwd create mode 100644 tests/tests/grouptools/chgpasswd/12_chgpasswd_usage-s_invalid/config/etc/shadow create mode 100644 tests/tests/grouptools/chgpasswd/12_chgpasswd_usage-s_invalid/data/usage.out create mode 100755 tests/tests/grouptools/chgpasswd/13_chgpasswd_usage-c_invalid/chgpasswd.test create mode 100644 tests/tests/grouptools/chgpasswd/13_chgpasswd_usage-c_invalid/config.txt create mode 100644 tests/tests/grouptools/chgpasswd/13_chgpasswd_usage-c_invalid/config/etc/default/useradd create mode 100644 tests/tests/grouptools/chgpasswd/13_chgpasswd_usage-c_invalid/config/etc/group create mode 100644 tests/tests/grouptools/chgpasswd/13_chgpasswd_usage-c_invalid/config/etc/gshadow create mode 100644 tests/tests/grouptools/chgpasswd/13_chgpasswd_usage-c_invalid/config/etc/passwd create mode 100644 tests/tests/grouptools/chgpasswd/13_chgpasswd_usage-c_invalid/config/etc/shadow create mode 100644 tests/tests/grouptools/chgpasswd/13_chgpasswd_usage-c_invalid/data/usage.out create mode 100755 tests/tests/grouptools/chgpasswd/14_chgpasswd_password_encrypted/chgpasswd.test create mode 100644 tests/tests/grouptools/chgpasswd/14_chgpasswd_password_encrypted/config/etc/group create mode 100644 tests/tests/grouptools/chgpasswd/14_chgpasswd_password_encrypted/config/etc/gshadow create mode 100644 tests/tests/grouptools/chgpasswd/14_chgpasswd_password_encrypted/config/etc/passwd create mode 100644 tests/tests/grouptools/chgpasswd/14_chgpasswd_password_encrypted/config/etc/shadow create mode 100644 tests/tests/grouptools/chgpasswd/14_chgpasswd_password_encrypted/data/gshadow create mode 100755 tests/tests/grouptools/chgpasswd/15_chgpasswd_password_md5/chgpasswd.test create mode 100644 tests/tests/grouptools/chgpasswd/15_chgpasswd_password_md5/config/etc/group create mode 100644 tests/tests/grouptools/chgpasswd/15_chgpasswd_password_md5/config/etc/gshadow create mode 100644 tests/tests/grouptools/chgpasswd/15_chgpasswd_password_md5/config/etc/passwd create mode 100644 tests/tests/grouptools/chgpasswd/15_chgpasswd_password_md5/config/etc/shadow create mode 100644 tests/tests/grouptools/chgpasswd/15_chgpasswd_password_md5/data/gshadow create mode 100755 tests/tests/grouptools/chgpasswd/16_chgpasswd_password_NONE/chgpasswd.test create mode 100644 tests/tests/grouptools/chgpasswd/16_chgpasswd_password_NONE/config/etc/group create mode 100644 tests/tests/grouptools/chgpasswd/16_chgpasswd_password_NONE/config/etc/gshadow create mode 100644 tests/tests/grouptools/chgpasswd/16_chgpasswd_password_NONE/config/etc/passwd create mode 100644 tests/tests/grouptools/chgpasswd/16_chgpasswd_password_NONE/config/etc/shadow create mode 100644 tests/tests/grouptools/chgpasswd/16_chgpasswd_password_NONE/data/gshadow create mode 100755 tests/tests/grouptools/chgpasswd/17_chgpasswd_password_MD5/chgpasswd.test create mode 100644 tests/tests/grouptools/chgpasswd/17_chgpasswd_password_MD5/config/etc/group create mode 100644 tests/tests/grouptools/chgpasswd/17_chgpasswd_password_MD5/config/etc/gshadow create mode 100644 tests/tests/grouptools/chgpasswd/17_chgpasswd_password_MD5/config/etc/passwd create mode 100644 tests/tests/grouptools/chgpasswd/17_chgpasswd_password_MD5/config/etc/shadow create mode 100644 tests/tests/grouptools/chgpasswd/17_chgpasswd_password_MD5/data/gshadow create mode 100755 tests/tests/grouptools/chgpasswd/18_chgpasswd_password_DES/chgpasswd.test create mode 100644 tests/tests/grouptools/chgpasswd/18_chgpasswd_password_DES/config/etc/group create mode 100644 tests/tests/grouptools/chgpasswd/18_chgpasswd_password_DES/config/etc/gshadow create mode 100644 tests/tests/grouptools/chgpasswd/18_chgpasswd_password_DES/config/etc/passwd create mode 100644 tests/tests/grouptools/chgpasswd/18_chgpasswd_password_DES/config/etc/shadow create mode 100644 tests/tests/grouptools/chgpasswd/18_chgpasswd_password_DES/data/gshadow create mode 100755 tests/tests/grouptools/chgpasswd/19_chgpasswd_password_SHA256/chgpasswd.test create mode 100644 tests/tests/grouptools/chgpasswd/19_chgpasswd_password_SHA256/config/etc/group create mode 100644 tests/tests/grouptools/chgpasswd/19_chgpasswd_password_SHA256/config/etc/gshadow create mode 100644 tests/tests/grouptools/chgpasswd/19_chgpasswd_password_SHA256/config/etc/passwd create mode 100644 tests/tests/grouptools/chgpasswd/19_chgpasswd_password_SHA256/config/etc/shadow create mode 100644 tests/tests/grouptools/chgpasswd/19_chgpasswd_password_SHA256/data/gshadow create mode 100755 tests/tests/grouptools/chgpasswd/20_chgpasswd_password_SHA256_rounds_900/chgpasswd.test create mode 100644 tests/tests/grouptools/chgpasswd/20_chgpasswd_password_SHA256_rounds_900/config/etc/group create mode 100644 tests/tests/grouptools/chgpasswd/20_chgpasswd_password_SHA256_rounds_900/config/etc/gshadow create mode 100644 tests/tests/grouptools/chgpasswd/20_chgpasswd_password_SHA256_rounds_900/config/etc/passwd create mode 100644 tests/tests/grouptools/chgpasswd/20_chgpasswd_password_SHA256_rounds_900/config/etc/shadow create mode 100644 tests/tests/grouptools/chgpasswd/20_chgpasswd_password_SHA256_rounds_900/data/gshadow create mode 100755 tests/tests/grouptools/chgpasswd/21_chgpasswd_password_SHA256_rounds_9000/chgpasswd.test create mode 100644 tests/tests/grouptools/chgpasswd/21_chgpasswd_password_SHA256_rounds_9000/config/etc/group create mode 100644 tests/tests/grouptools/chgpasswd/21_chgpasswd_password_SHA256_rounds_9000/config/etc/gshadow create mode 100644 tests/tests/grouptools/chgpasswd/21_chgpasswd_password_SHA256_rounds_9000/config/etc/passwd create mode 100644 tests/tests/grouptools/chgpasswd/21_chgpasswd_password_SHA256_rounds_9000/config/etc/shadow create mode 100644 tests/tests/grouptools/chgpasswd/21_chgpasswd_password_SHA256_rounds_9000/data/gshadow create mode 100755 tests/tests/grouptools/chgpasswd/22_chgpasswd_password_SHA512/chgpasswd.test create mode 100644 tests/tests/grouptools/chgpasswd/22_chgpasswd_password_SHA512/config/etc/group create mode 100644 tests/tests/grouptools/chgpasswd/22_chgpasswd_password_SHA512/config/etc/gshadow create mode 100644 tests/tests/grouptools/chgpasswd/22_chgpasswd_password_SHA512/config/etc/passwd create mode 100644 tests/tests/grouptools/chgpasswd/22_chgpasswd_password_SHA512/config/etc/shadow create mode 100644 tests/tests/grouptools/chgpasswd/22_chgpasswd_password_SHA512/data/gshadow create mode 100755 tests/tests/grouptools/chgpasswd/23_chgpasswd_password_SHA512_rounds_900/chgpasswd.test create mode 100644 tests/tests/grouptools/chgpasswd/23_chgpasswd_password_SHA512_rounds_900/config/etc/group create mode 100644 tests/tests/grouptools/chgpasswd/23_chgpasswd_password_SHA512_rounds_900/config/etc/gshadow create mode 100644 tests/tests/grouptools/chgpasswd/23_chgpasswd_password_SHA512_rounds_900/config/etc/passwd create mode 100644 tests/tests/grouptools/chgpasswd/23_chgpasswd_password_SHA512_rounds_900/config/etc/shadow create mode 100644 tests/tests/grouptools/chgpasswd/23_chgpasswd_password_SHA512_rounds_900/data/gshadow create mode 100755 tests/tests/grouptools/chgpasswd/24_chgpasswd_password_SHA512_rounds_9000/chgpasswd.test create mode 100644 tests/tests/grouptools/chgpasswd/24_chgpasswd_password_SHA512_rounds_9000/config/etc/group create mode 100644 tests/tests/grouptools/chgpasswd/24_chgpasswd_password_SHA512_rounds_9000/config/etc/gshadow create mode 100644 tests/tests/grouptools/chgpasswd/24_chgpasswd_password_SHA512_rounds_9000/config/etc/passwd create mode 100644 tests/tests/grouptools/chgpasswd/24_chgpasswd_password_SHA512_rounds_9000/config/etc/shadow create mode 100644 tests/tests/grouptools/chgpasswd/24_chgpasswd_password_SHA512_rounds_9000/data/gshadow create mode 100755 tests/tests/grouptools/chgpasswd/25_chgpasswd-e_no_gshadow_file/chgpasswd.test create mode 100644 tests/tests/grouptools/chgpasswd/25_chgpasswd-e_no_gshadow_file/config/etc/group create mode 100644 tests/tests/grouptools/chgpasswd/25_chgpasswd-e_no_gshadow_file/config/etc/gshadow create mode 100644 tests/tests/grouptools/chgpasswd/25_chgpasswd-e_no_gshadow_file/config/etc/passwd create mode 100644 tests/tests/grouptools/chgpasswd/25_chgpasswd-e_no_gshadow_file/config/etc/shadow create mode 100644 tests/tests/grouptools/chgpasswd/25_chgpasswd-e_no_gshadow_file/data/group create mode 100755 tests/tests/grouptools/chgpasswd/26_chgpasswd_no_gshadow_file_invalid_group/chgpasswd.test create mode 100644 tests/tests/grouptools/chgpasswd/26_chgpasswd_no_gshadow_file_invalid_group/config/etc/group create mode 100644 tests/tests/grouptools/chgpasswd/26_chgpasswd_no_gshadow_file_invalid_group/config/etc/gshadow create mode 100644 tests/tests/grouptools/chgpasswd/26_chgpasswd_no_gshadow_file_invalid_group/config/etc/passwd create mode 100644 tests/tests/grouptools/chgpasswd/26_chgpasswd_no_gshadow_file_invalid_group/config/etc/shadow create mode 100644 tests/tests/grouptools/chgpasswd/26_chgpasswd_no_gshadow_file_invalid_group/data/group create mode 100755 tests/tests/grouptools/chgpasswd/29_chgpasswd-e_no_gshadow_entry/chgpasswd.test create mode 100644 tests/tests/grouptools/chgpasswd/29_chgpasswd-e_no_gshadow_entry/config/etc/group create mode 100644 tests/tests/grouptools/chgpasswd/29_chgpasswd-e_no_gshadow_entry/config/etc/gshadow create mode 100644 tests/tests/grouptools/chgpasswd/29_chgpasswd-e_no_gshadow_entry/config/etc/passwd create mode 100644 tests/tests/grouptools/chgpasswd/29_chgpasswd-e_no_gshadow_entry/config/etc/shadow create mode 100644 tests/tests/grouptools/chgpasswd/29_chgpasswd-e_no_gshadow_entry/data/group create mode 100644 tests/tests/grouptools/chgpasswd/29_chgpasswd-e_no_gshadow_entry/data/gshadow create mode 100755 tests/tests/grouptools/chgpasswd/30_chgpasswd_locked_group/chgpasswd.test create mode 100644 tests/tests/grouptools/chgpasswd/30_chgpasswd_locked_group/config.txt create mode 100644 tests/tests/grouptools/chgpasswd/30_chgpasswd_locked_group/config/etc/default/useradd create mode 100644 tests/tests/grouptools/chgpasswd/30_chgpasswd_locked_group/config/etc/group create mode 100644 tests/tests/grouptools/chgpasswd/30_chgpasswd_locked_group/config/etc/gshadow create mode 100644 tests/tests/grouptools/chgpasswd/30_chgpasswd_locked_group/config/etc/passwd create mode 100644 tests/tests/grouptools/chgpasswd/30_chgpasswd_locked_group/config/etc/shadow create mode 100644 tests/tests/grouptools/chgpasswd/30_chgpasswd_locked_group/data/chgpasswd.err create mode 100755 tests/tests/grouptools/chgpasswd/31_chgpasswd_locked_gshadow/chgpasswd.test create mode 100644 tests/tests/grouptools/chgpasswd/31_chgpasswd_locked_gshadow/config.txt create mode 100644 tests/tests/grouptools/chgpasswd/31_chgpasswd_locked_gshadow/config/etc/default/useradd create mode 100644 tests/tests/grouptools/chgpasswd/31_chgpasswd_locked_gshadow/config/etc/group create mode 100644 tests/tests/grouptools/chgpasswd/31_chgpasswd_locked_gshadow/config/etc/gshadow create mode 100644 tests/tests/grouptools/chgpasswd/31_chgpasswd_locked_gshadow/config/etc/passwd create mode 100644 tests/tests/grouptools/chgpasswd/31_chgpasswd_locked_gshadow/config/etc/shadow create mode 100644 tests/tests/grouptools/chgpasswd/31_chgpasswd_locked_gshadow/data/chgpasswd.err create mode 100755 tests/tests/grouptools/chgpasswd/32_chgpasswd_invalid_group/chgpasswd.test create mode 100644 tests/tests/grouptools/chgpasswd/32_chgpasswd_invalid_group/config.txt create mode 100644 tests/tests/grouptools/chgpasswd/32_chgpasswd_invalid_group/config/etc/default/useradd create mode 100644 tests/tests/grouptools/chgpasswd/32_chgpasswd_invalid_group/config/etc/group create mode 100644 tests/tests/grouptools/chgpasswd/32_chgpasswd_invalid_group/config/etc/gshadow create mode 100644 tests/tests/grouptools/chgpasswd/32_chgpasswd_invalid_group/config/etc/passwd create mode 100644 tests/tests/grouptools/chgpasswd/32_chgpasswd_invalid_group/config/etc/shadow create mode 100644 tests/tests/grouptools/chgpasswd/32_chgpasswd_invalid_group/data/chgpasswd.err create mode 100644 tests/tests/grouptools/gpasswd/01_gpasswd_change_member_list/config.txt create mode 100644 tests/tests/grouptools/gpasswd/01_gpasswd_change_member_list/config/etc/default/useradd create mode 100644 tests/tests/grouptools/gpasswd/01_gpasswd_change_member_list/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/01_gpasswd_change_member_list/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/01_gpasswd_change_member_list/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/01_gpasswd_change_member_list/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/01_gpasswd_change_member_list/data/group create mode 100644 tests/tests/grouptools/gpasswd/01_gpasswd_change_member_list/data/gshadow create mode 100755 tests/tests/grouptools/gpasswd/01_gpasswd_change_member_list/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/02_gpasswd_change_member_list/config.txt create mode 100644 tests/tests/grouptools/gpasswd/02_gpasswd_change_member_list/config/etc/default/useradd create mode 100644 tests/tests/grouptools/gpasswd/02_gpasswd_change_member_list/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/02_gpasswd_change_member_list/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/02_gpasswd_change_member_list/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/02_gpasswd_change_member_list/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/02_gpasswd_change_member_list/data/group create mode 100644 tests/tests/grouptools/gpasswd/02_gpasswd_change_member_list/data/gshadow create mode 100755 tests/tests/grouptools/gpasswd/02_gpasswd_change_member_list/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/03_gpasswd_change_member_list/config.txt create mode 100644 tests/tests/grouptools/gpasswd/03_gpasswd_change_member_list/config/etc/default/useradd create mode 100644 tests/tests/grouptools/gpasswd/03_gpasswd_change_member_list/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/03_gpasswd_change_member_list/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/03_gpasswd_change_member_list/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/03_gpasswd_change_member_list/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/03_gpasswd_change_member_list/data/group create mode 100644 tests/tests/grouptools/gpasswd/03_gpasswd_change_member_list/data/gshadow create mode 100755 tests/tests/grouptools/gpasswd/03_gpasswd_change_member_list/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/04_gpasswd_change_member_list/config.txt create mode 100644 tests/tests/grouptools/gpasswd/04_gpasswd_change_member_list/config/etc/default/useradd create mode 100644 tests/tests/grouptools/gpasswd/04_gpasswd_change_member_list/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/04_gpasswd_change_member_list/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/04_gpasswd_change_member_list/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/04_gpasswd_change_member_list/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/04_gpasswd_change_member_list/data/group create mode 100644 tests/tests/grouptools/gpasswd/04_gpasswd_change_member_list/data/gshadow create mode 100755 tests/tests/grouptools/gpasswd/04_gpasswd_change_member_list/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/05_gpasswd_change_member_list/config.txt create mode 100644 tests/tests/grouptools/gpasswd/05_gpasswd_change_member_list/config/etc/default/useradd create mode 100644 tests/tests/grouptools/gpasswd/05_gpasswd_change_member_list/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/05_gpasswd_change_member_list/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/05_gpasswd_change_member_list/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/05_gpasswd_change_member_list/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/05_gpasswd_change_member_list/data/group create mode 100644 tests/tests/grouptools/gpasswd/05_gpasswd_change_member_list/data/gshadow create mode 100755 tests/tests/grouptools/gpasswd/05_gpasswd_change_member_list/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/06_gpasswd_change_member_list/config.txt create mode 100644 tests/tests/grouptools/gpasswd/06_gpasswd_change_member_list/config/etc/default/useradd create mode 100644 tests/tests/grouptools/gpasswd/06_gpasswd_change_member_list/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/06_gpasswd_change_member_list/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/06_gpasswd_change_member_list/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/06_gpasswd_change_member_list/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/06_gpasswd_change_member_list/data/group create mode 100644 tests/tests/grouptools/gpasswd/06_gpasswd_change_member_list/data/gshadow create mode 100755 tests/tests/grouptools/gpasswd/06_gpasswd_change_member_list/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/07_gpasswd_change_member_list-no_shadow_group/config.txt create mode 100644 tests/tests/grouptools/gpasswd/07_gpasswd_change_member_list-no_shadow_group/config/etc/default/useradd create mode 100644 tests/tests/grouptools/gpasswd/07_gpasswd_change_member_list-no_shadow_group/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/07_gpasswd_change_member_list-no_shadow_group/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/07_gpasswd_change_member_list-no_shadow_group/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/07_gpasswd_change_member_list-no_shadow_group/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/07_gpasswd_change_member_list-no_shadow_group/data/group create mode 100644 tests/tests/grouptools/gpasswd/07_gpasswd_change_member_list-no_shadow_group/data/gshadow create mode 100755 tests/tests/grouptools/gpasswd/07_gpasswd_change_member_list-no_shadow_group/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/08_gpasswd_change_member_list-no_shadow_group/config.txt create mode 100644 tests/tests/grouptools/gpasswd/08_gpasswd_change_member_list-no_shadow_group/config/etc/default/useradd create mode 100644 tests/tests/grouptools/gpasswd/08_gpasswd_change_member_list-no_shadow_group/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/08_gpasswd_change_member_list-no_shadow_group/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/08_gpasswd_change_member_list-no_shadow_group/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/08_gpasswd_change_member_list-no_shadow_group/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/08_gpasswd_change_member_list-no_shadow_group/data/group create mode 100644 tests/tests/grouptools/gpasswd/08_gpasswd_change_member_list-no_shadow_group/data/gshadow create mode 100755 tests/tests/grouptools/gpasswd/08_gpasswd_change_member_list-no_shadow_group/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/09_gpasswd_change_member_list-no_shadow_group/config.txt create mode 100644 tests/tests/grouptools/gpasswd/09_gpasswd_change_member_list-no_shadow_group/config/etc/default/useradd create mode 100644 tests/tests/grouptools/gpasswd/09_gpasswd_change_member_list-no_shadow_group/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/09_gpasswd_change_member_list-no_shadow_group/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/09_gpasswd_change_member_list-no_shadow_group/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/09_gpasswd_change_member_list-no_shadow_group/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/09_gpasswd_change_member_list-no_shadow_group/data/group create mode 100644 tests/tests/grouptools/gpasswd/09_gpasswd_change_member_list-no_shadow_group/data/gshadow create mode 100755 tests/tests/grouptools/gpasswd/09_gpasswd_change_member_list-no_shadow_group/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/10_gpasswd_change_member_list-no_shadow_group/config.txt create mode 100644 tests/tests/grouptools/gpasswd/10_gpasswd_change_member_list-no_shadow_group/config/etc/default/useradd create mode 100644 tests/tests/grouptools/gpasswd/10_gpasswd_change_member_list-no_shadow_group/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/10_gpasswd_change_member_list-no_shadow_group/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/10_gpasswd_change_member_list-no_shadow_group/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/10_gpasswd_change_member_list-no_shadow_group/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/10_gpasswd_change_member_list-no_shadow_group/data/group create mode 100644 tests/tests/grouptools/gpasswd/10_gpasswd_change_member_list-no_shadow_group/data/gshadow create mode 100755 tests/tests/grouptools/gpasswd/10_gpasswd_change_member_list-no_shadow_group/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/11_gpasswd_change_member_list-no_shadow_group/config.txt create mode 100644 tests/tests/grouptools/gpasswd/11_gpasswd_change_member_list-no_shadow_group/config/etc/default/useradd create mode 100644 tests/tests/grouptools/gpasswd/11_gpasswd_change_member_list-no_shadow_group/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/11_gpasswd_change_member_list-no_shadow_group/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/11_gpasswd_change_member_list-no_shadow_group/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/11_gpasswd_change_member_list-no_shadow_group/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/11_gpasswd_change_member_list-no_shadow_group/data/group create mode 100644 tests/tests/grouptools/gpasswd/11_gpasswd_change_member_list-no_shadow_group/data/gshadow create mode 100755 tests/tests/grouptools/gpasswd/11_gpasswd_change_member_list-no_shadow_group/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/12_gpasswd_change_member_list-no_shadow_group/config.txt create mode 100644 tests/tests/grouptools/gpasswd/12_gpasswd_change_member_list-no_shadow_group/config/etc/default/useradd create mode 100644 tests/tests/grouptools/gpasswd/12_gpasswd_change_member_list-no_shadow_group/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/12_gpasswd_change_member_list-no_shadow_group/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/12_gpasswd_change_member_list-no_shadow_group/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/12_gpasswd_change_member_list-no_shadow_group/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/12_gpasswd_change_member_list-no_shadow_group/data/group create mode 100644 tests/tests/grouptools/gpasswd/12_gpasswd_change_member_list-no_shadow_group/data/gshadow create mode 100755 tests/tests/grouptools/gpasswd/12_gpasswd_change_member_list-no_shadow_group/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/13_gpasswd_change_member_list-no_gshadow_file/config.txt create mode 100644 tests/tests/grouptools/gpasswd/13_gpasswd_change_member_list-no_gshadow_file/config/etc/default/useradd create mode 100644 tests/tests/grouptools/gpasswd/13_gpasswd_change_member_list-no_gshadow_file/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/13_gpasswd_change_member_list-no_gshadow_file/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/13_gpasswd_change_member_list-no_gshadow_file/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/13_gpasswd_change_member_list-no_gshadow_file/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/13_gpasswd_change_member_list-no_gshadow_file/data/group create mode 100755 tests/tests/grouptools/gpasswd/13_gpasswd_change_member_list-no_gshadow_file/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/14_gpasswd_change_member_list-no_gshadow_file/config.txt create mode 100644 tests/tests/grouptools/gpasswd/14_gpasswd_change_member_list-no_gshadow_file/config/etc/default/useradd create mode 100644 tests/tests/grouptools/gpasswd/14_gpasswd_change_member_list-no_gshadow_file/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/14_gpasswd_change_member_list-no_gshadow_file/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/14_gpasswd_change_member_list-no_gshadow_file/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/14_gpasswd_change_member_list-no_gshadow_file/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/14_gpasswd_change_member_list-no_gshadow_file/data/group create mode 100755 tests/tests/grouptools/gpasswd/14_gpasswd_change_member_list-no_gshadow_file/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/15_gpasswd_change_member_list-no_gshadow_file/config.txt create mode 100644 tests/tests/grouptools/gpasswd/15_gpasswd_change_member_list-no_gshadow_file/config/etc/default/useradd create mode 100644 tests/tests/grouptools/gpasswd/15_gpasswd_change_member_list-no_gshadow_file/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/15_gpasswd_change_member_list-no_gshadow_file/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/15_gpasswd_change_member_list-no_gshadow_file/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/15_gpasswd_change_member_list-no_gshadow_file/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/15_gpasswd_change_member_list-no_gshadow_file/data/group create mode 100755 tests/tests/grouptools/gpasswd/15_gpasswd_change_member_list-no_gshadow_file/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/16_gpasswd_change_member_list-no_gshadow_file/config.txt create mode 100644 tests/tests/grouptools/gpasswd/16_gpasswd_change_member_list-no_gshadow_file/config/etc/default/useradd create mode 100644 tests/tests/grouptools/gpasswd/16_gpasswd_change_member_list-no_gshadow_file/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/16_gpasswd_change_member_list-no_gshadow_file/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/16_gpasswd_change_member_list-no_gshadow_file/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/16_gpasswd_change_member_list-no_gshadow_file/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/16_gpasswd_change_member_list-no_gshadow_file/data/group create mode 100755 tests/tests/grouptools/gpasswd/16_gpasswd_change_member_list-no_gshadow_file/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/17_gpasswd_change_member_list-no_gshadow_file/config.txt create mode 100644 tests/tests/grouptools/gpasswd/17_gpasswd_change_member_list-no_gshadow_file/config/etc/default/useradd create mode 100644 tests/tests/grouptools/gpasswd/17_gpasswd_change_member_list-no_gshadow_file/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/17_gpasswd_change_member_list-no_gshadow_file/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/17_gpasswd_change_member_list-no_gshadow_file/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/17_gpasswd_change_member_list-no_gshadow_file/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/17_gpasswd_change_member_list-no_gshadow_file/data/group create mode 100755 tests/tests/grouptools/gpasswd/17_gpasswd_change_member_list-no_gshadow_file/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/18_gpasswd_change_member_list-no_gshadow_file/config.txt create mode 100644 tests/tests/grouptools/gpasswd/18_gpasswd_change_member_list-no_gshadow_file/config/etc/default/useradd create mode 100644 tests/tests/grouptools/gpasswd/18_gpasswd_change_member_list-no_gshadow_file/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/18_gpasswd_change_member_list-no_gshadow_file/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/18_gpasswd_change_member_list-no_gshadow_file/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/18_gpasswd_change_member_list-no_gshadow_file/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/18_gpasswd_change_member_list-no_gshadow_file/data/group create mode 100755 tests/tests/grouptools/gpasswd/18_gpasswd_change_member_list-no_gshadow_file/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/19_gpasswd_change_passwd-root/config.txt create mode 100644 tests/tests/grouptools/gpasswd/19_gpasswd_change_passwd-root/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/19_gpasswd_change_passwd-root/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/19_gpasswd_change_passwd-root/config/etc/login.defs create mode 100644 tests/tests/grouptools/gpasswd/19_gpasswd_change_passwd-root/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/19_gpasswd_change_passwd-root/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/19_gpasswd_change_passwd-root/data/gshadow create mode 100755 tests/tests/grouptools/gpasswd/19_gpasswd_change_passwd-root/gpasswd.exp create mode 100755 tests/tests/grouptools/gpasswd/19_gpasswd_change_passwd-root/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/20_gpasswd_change_passwd-root-no_shadow_group/config.txt create mode 100644 tests/tests/grouptools/gpasswd/20_gpasswd_change_passwd-root-no_shadow_group/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/20_gpasswd_change_passwd-root-no_shadow_group/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/20_gpasswd_change_passwd-root-no_shadow_group/config/etc/login.defs create mode 100644 tests/tests/grouptools/gpasswd/20_gpasswd_change_passwd-root-no_shadow_group/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/20_gpasswd_change_passwd-root-no_shadow_group/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/20_gpasswd_change_passwd-root-no_shadow_group/data/gshadow create mode 100755 tests/tests/grouptools/gpasswd/20_gpasswd_change_passwd-root-no_shadow_group/gpasswd.exp create mode 100755 tests/tests/grouptools/gpasswd/20_gpasswd_change_passwd-root-no_shadow_group/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/21_gpasswd_change_passwd-root-no_gshadow_file/config.txt create mode 100644 tests/tests/grouptools/gpasswd/21_gpasswd_change_passwd-root-no_gshadow_file/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/21_gpasswd_change_passwd-root-no_gshadow_file/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/21_gpasswd_change_passwd-root-no_gshadow_file/config/etc/login.defs create mode 100644 tests/tests/grouptools/gpasswd/21_gpasswd_change_passwd-root-no_gshadow_file/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/21_gpasswd_change_passwd-root-no_gshadow_file/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/21_gpasswd_change_passwd-root-no_gshadow_file/data/group create mode 100755 tests/tests/grouptools/gpasswd/21_gpasswd_change_passwd-root-no_gshadow_file/gpasswd.exp create mode 100755 tests/tests/grouptools/gpasswd/21_gpasswd_change_passwd-root-no_gshadow_file/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/22_gpasswd_change_passwd-myuser/config.txt create mode 100644 tests/tests/grouptools/gpasswd/22_gpasswd_change_passwd-myuser/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/22_gpasswd_change_passwd-myuser/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/22_gpasswd_change_passwd-myuser/config/etc/login.defs create mode 100644 tests/tests/grouptools/gpasswd/22_gpasswd_change_passwd-myuser/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/22_gpasswd_change_passwd-myuser/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/22_gpasswd_change_passwd-myuser/data/gshadow create mode 100755 tests/tests/grouptools/gpasswd/22_gpasswd_change_passwd-myuser/gpasswd.exp create mode 100755 tests/tests/grouptools/gpasswd/22_gpasswd_change_passwd-myuser/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/23_gpasswd_change_passwd-myuser-denied/config.txt create mode 100644 tests/tests/grouptools/gpasswd/23_gpasswd_change_passwd-myuser-denied/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/23_gpasswd_change_passwd-myuser-denied/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/23_gpasswd_change_passwd-myuser-denied/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/23_gpasswd_change_passwd-myuser-denied/config/etc/shadow create mode 100755 tests/tests/grouptools/gpasswd/23_gpasswd_change_passwd-myuser-denied/gpasswd.exp create mode 100755 tests/tests/grouptools/gpasswd/23_gpasswd_change_passwd-myuser-denied/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/24_gpasswd_change_passwd-myuser-denied-no_gshadow_file/config.txt create mode 100644 tests/tests/grouptools/gpasswd/24_gpasswd_change_passwd-myuser-denied-no_gshadow_file/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/24_gpasswd_change_passwd-myuser-denied-no_gshadow_file/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/24_gpasswd_change_passwd-myuser-denied-no_gshadow_file/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/24_gpasswd_change_passwd-myuser-denied-no_gshadow_file/config/etc/shadow create mode 100755 tests/tests/grouptools/gpasswd/24_gpasswd_change_passwd-myuser-denied-no_gshadow_file/gpasswd.exp create mode 100755 tests/tests/grouptools/gpasswd/24_gpasswd_change_passwd-myuser-denied-no_gshadow_file/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/25_gpasswd_remove_password/config.txt create mode 100644 tests/tests/grouptools/gpasswd/25_gpasswd_remove_password/config/etc/default/useradd create mode 100644 tests/tests/grouptools/gpasswd/25_gpasswd_remove_password/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/25_gpasswd_remove_password/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/25_gpasswd_remove_password/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/25_gpasswd_remove_password/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/25_gpasswd_remove_password/data/group create mode 100644 tests/tests/grouptools/gpasswd/25_gpasswd_remove_password/data/gshadow create mode 100755 tests/tests/grouptools/gpasswd/25_gpasswd_remove_password/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/26_gpasswd_remove_password-no_shadow_group/config.txt create mode 100644 tests/tests/grouptools/gpasswd/26_gpasswd_remove_password-no_shadow_group/config/etc/default/useradd create mode 100644 tests/tests/grouptools/gpasswd/26_gpasswd_remove_password-no_shadow_group/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/26_gpasswd_remove_password-no_shadow_group/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/26_gpasswd_remove_password-no_shadow_group/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/26_gpasswd_remove_password-no_shadow_group/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/26_gpasswd_remove_password-no_shadow_group/data/group create mode 100644 tests/tests/grouptools/gpasswd/26_gpasswd_remove_password-no_shadow_group/data/gshadow create mode 100755 tests/tests/grouptools/gpasswd/26_gpasswd_remove_password-no_shadow_group/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/27_gpasswd_remove_password-no_gshadow_file/config.txt create mode 100644 tests/tests/grouptools/gpasswd/27_gpasswd_remove_password-no_gshadow_file/config/etc/default/useradd create mode 100644 tests/tests/grouptools/gpasswd/27_gpasswd_remove_password-no_gshadow_file/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/27_gpasswd_remove_password-no_gshadow_file/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/27_gpasswd_remove_password-no_gshadow_file/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/27_gpasswd_remove_password-no_gshadow_file/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/27_gpasswd_remove_password-no_gshadow_file/data/group create mode 100755 tests/tests/grouptools/gpasswd/27_gpasswd_remove_password-no_gshadow_file/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/28_gpasswd_lock_password/config.txt create mode 100644 tests/tests/grouptools/gpasswd/28_gpasswd_lock_password/config/etc/default/useradd create mode 100644 tests/tests/grouptools/gpasswd/28_gpasswd_lock_password/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/28_gpasswd_lock_password/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/28_gpasswd_lock_password/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/28_gpasswd_lock_password/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/28_gpasswd_lock_password/data/group create mode 100644 tests/tests/grouptools/gpasswd/28_gpasswd_lock_password/data/gshadow create mode 100755 tests/tests/grouptools/gpasswd/28_gpasswd_lock_password/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/29_gpasswd_lock_password-no_shadow_group/config.txt create mode 100644 tests/tests/grouptools/gpasswd/29_gpasswd_lock_password-no_shadow_group/config/etc/default/useradd create mode 100644 tests/tests/grouptools/gpasswd/29_gpasswd_lock_password-no_shadow_group/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/29_gpasswd_lock_password-no_shadow_group/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/29_gpasswd_lock_password-no_shadow_group/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/29_gpasswd_lock_password-no_shadow_group/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/29_gpasswd_lock_password-no_shadow_group/data/group create mode 100644 tests/tests/grouptools/gpasswd/29_gpasswd_lock_password-no_shadow_group/data/gshadow create mode 100755 tests/tests/grouptools/gpasswd/29_gpasswd_lock_password-no_shadow_group/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/30_gpasswd_lock_password-no_gshadow_file/config.txt create mode 100644 tests/tests/grouptools/gpasswd/30_gpasswd_lock_password-no_gshadow_file/config/etc/default/useradd create mode 100644 tests/tests/grouptools/gpasswd/30_gpasswd_lock_password-no_gshadow_file/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/30_gpasswd_lock_password-no_gshadow_file/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/30_gpasswd_lock_password-no_gshadow_file/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/30_gpasswd_lock_password-no_gshadow_file/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/30_gpasswd_lock_password-no_gshadow_file/data/group create mode 100755 tests/tests/grouptools/gpasswd/30_gpasswd_lock_password-no_gshadow_file/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/31_gpasswd_add_user_to_group/config.txt create mode 100644 tests/tests/grouptools/gpasswd/31_gpasswd_add_user_to_group/config/etc/default/useradd create mode 100644 tests/tests/grouptools/gpasswd/31_gpasswd_add_user_to_group/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/31_gpasswd_add_user_to_group/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/31_gpasswd_add_user_to_group/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/31_gpasswd_add_user_to_group/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/31_gpasswd_add_user_to_group/data/group create mode 100644 tests/tests/grouptools/gpasswd/31_gpasswd_add_user_to_group/data/gshadow create mode 100755 tests/tests/grouptools/gpasswd/31_gpasswd_add_user_to_group/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/32_gpasswd_add_user_to_group-no_shadow_group/config.txt create mode 100644 tests/tests/grouptools/gpasswd/32_gpasswd_add_user_to_group-no_shadow_group/config/etc/default/useradd create mode 100644 tests/tests/grouptools/gpasswd/32_gpasswd_add_user_to_group-no_shadow_group/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/32_gpasswd_add_user_to_group-no_shadow_group/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/32_gpasswd_add_user_to_group-no_shadow_group/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/32_gpasswd_add_user_to_group-no_shadow_group/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/32_gpasswd_add_user_to_group-no_shadow_group/data/group create mode 100644 tests/tests/grouptools/gpasswd/32_gpasswd_add_user_to_group-no_shadow_group/data/gshadow create mode 100755 tests/tests/grouptools/gpasswd/32_gpasswd_add_user_to_group-no_shadow_group/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/33_gpasswd_add_user_to_group-no_gshadow_file/config.txt create mode 100644 tests/tests/grouptools/gpasswd/33_gpasswd_add_user_to_group-no_gshadow_file/config/etc/default/useradd create mode 100644 tests/tests/grouptools/gpasswd/33_gpasswd_add_user_to_group-no_gshadow_file/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/33_gpasswd_add_user_to_group-no_gshadow_file/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/33_gpasswd_add_user_to_group-no_gshadow_file/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/33_gpasswd_add_user_to_group-no_gshadow_file/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/33_gpasswd_add_user_to_group-no_gshadow_file/data/group create mode 100755 tests/tests/grouptools/gpasswd/33_gpasswd_add_user_to_group-no_gshadow_file/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/34_gpasswd_remove_user_from_group/config.txt create mode 100644 tests/tests/grouptools/gpasswd/34_gpasswd_remove_user_from_group/config/etc/default/useradd create mode 100644 tests/tests/grouptools/gpasswd/34_gpasswd_remove_user_from_group/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/34_gpasswd_remove_user_from_group/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/34_gpasswd_remove_user_from_group/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/34_gpasswd_remove_user_from_group/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/34_gpasswd_remove_user_from_group/data/group create mode 100644 tests/tests/grouptools/gpasswd/34_gpasswd_remove_user_from_group/data/gshadow create mode 100755 tests/tests/grouptools/gpasswd/34_gpasswd_remove_user_from_group/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/35_gpasswd_remove_user_from_group/config.txt create mode 100644 tests/tests/grouptools/gpasswd/35_gpasswd_remove_user_from_group/config/etc/default/useradd create mode 100644 tests/tests/grouptools/gpasswd/35_gpasswd_remove_user_from_group/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/35_gpasswd_remove_user_from_group/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/35_gpasswd_remove_user_from_group/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/35_gpasswd_remove_user_from_group/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/35_gpasswd_remove_user_from_group/data/group create mode 100644 tests/tests/grouptools/gpasswd/35_gpasswd_remove_user_from_group/data/gshadow create mode 100755 tests/tests/grouptools/gpasswd/35_gpasswd_remove_user_from_group/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/36_gpasswd_remove_user_from_group/config.txt create mode 100644 tests/tests/grouptools/gpasswd/36_gpasswd_remove_user_from_group/config/etc/default/useradd create mode 100644 tests/tests/grouptools/gpasswd/36_gpasswd_remove_user_from_group/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/36_gpasswd_remove_user_from_group/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/36_gpasswd_remove_user_from_group/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/36_gpasswd_remove_user_from_group/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/36_gpasswd_remove_user_from_group/data/group create mode 100644 tests/tests/grouptools/gpasswd/36_gpasswd_remove_user_from_group/data/gshadow create mode 100755 tests/tests/grouptools/gpasswd/36_gpasswd_remove_user_from_group/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/37_gpasswd_remove_user_from_group-no_shadow_group/config.txt create mode 100644 tests/tests/grouptools/gpasswd/37_gpasswd_remove_user_from_group-no_shadow_group/config/etc/default/useradd create mode 100644 tests/tests/grouptools/gpasswd/37_gpasswd_remove_user_from_group-no_shadow_group/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/37_gpasswd_remove_user_from_group-no_shadow_group/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/37_gpasswd_remove_user_from_group-no_shadow_group/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/37_gpasswd_remove_user_from_group-no_shadow_group/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/37_gpasswd_remove_user_from_group-no_shadow_group/data/group create mode 100644 tests/tests/grouptools/gpasswd/37_gpasswd_remove_user_from_group-no_shadow_group/data/gshadow create mode 100755 tests/tests/grouptools/gpasswd/37_gpasswd_remove_user_from_group-no_shadow_group/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/38_gpasswd_remove_user_from_group-no_shadow_group/config.txt create mode 100644 tests/tests/grouptools/gpasswd/38_gpasswd_remove_user_from_group-no_shadow_group/config/etc/default/useradd create mode 100644 tests/tests/grouptools/gpasswd/38_gpasswd_remove_user_from_group-no_shadow_group/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/38_gpasswd_remove_user_from_group-no_shadow_group/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/38_gpasswd_remove_user_from_group-no_shadow_group/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/38_gpasswd_remove_user_from_group-no_shadow_group/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/38_gpasswd_remove_user_from_group-no_shadow_group/data/group create mode 100644 tests/tests/grouptools/gpasswd/38_gpasswd_remove_user_from_group-no_shadow_group/data/gshadow create mode 100755 tests/tests/grouptools/gpasswd/38_gpasswd_remove_user_from_group-no_shadow_group/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/39_gpasswd_remove_user_from_group-no_shadow_group/config.txt create mode 100644 tests/tests/grouptools/gpasswd/39_gpasswd_remove_user_from_group-no_shadow_group/config/etc/default/useradd create mode 100644 tests/tests/grouptools/gpasswd/39_gpasswd_remove_user_from_group-no_shadow_group/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/39_gpasswd_remove_user_from_group-no_shadow_group/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/39_gpasswd_remove_user_from_group-no_shadow_group/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/39_gpasswd_remove_user_from_group-no_shadow_group/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/39_gpasswd_remove_user_from_group-no_shadow_group/data/group create mode 100644 tests/tests/grouptools/gpasswd/39_gpasswd_remove_user_from_group-no_shadow_group/data/gshadow create mode 100755 tests/tests/grouptools/gpasswd/39_gpasswd_remove_user_from_group-no_shadow_group/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/40_gpasswd_remove_user_from_group-no_gshadow_file/config.txt create mode 100644 tests/tests/grouptools/gpasswd/40_gpasswd_remove_user_from_group-no_gshadow_file/config/etc/default/useradd create mode 100644 tests/tests/grouptools/gpasswd/40_gpasswd_remove_user_from_group-no_gshadow_file/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/40_gpasswd_remove_user_from_group-no_gshadow_file/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/40_gpasswd_remove_user_from_group-no_gshadow_file/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/40_gpasswd_remove_user_from_group-no_gshadow_file/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/40_gpasswd_remove_user_from_group-no_gshadow_file/data/group create mode 100755 tests/tests/grouptools/gpasswd/40_gpasswd_remove_user_from_group-no_gshadow_file/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/41_gpasswd_remove_user_from_group-no_gshadow_file/config.txt create mode 100644 tests/tests/grouptools/gpasswd/41_gpasswd_remove_user_from_group-no_gshadow_file/config/etc/default/useradd create mode 100644 tests/tests/grouptools/gpasswd/41_gpasswd_remove_user_from_group-no_gshadow_file/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/41_gpasswd_remove_user_from_group-no_gshadow_file/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/41_gpasswd_remove_user_from_group-no_gshadow_file/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/41_gpasswd_remove_user_from_group-no_gshadow_file/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/41_gpasswd_remove_user_from_group-no_gshadow_file/data/group create mode 100755 tests/tests/grouptools/gpasswd/41_gpasswd_remove_user_from_group-no_gshadow_file/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/42_gpasswd_remove_user_from_group-no_gshadow_file/config.txt create mode 100644 tests/tests/grouptools/gpasswd/42_gpasswd_remove_user_from_group-no_gshadow_file/config/etc/default/useradd create mode 100644 tests/tests/grouptools/gpasswd/42_gpasswd_remove_user_from_group-no_gshadow_file/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/42_gpasswd_remove_user_from_group-no_gshadow_file/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/42_gpasswd_remove_user_from_group-no_gshadow_file/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/42_gpasswd_remove_user_from_group-no_gshadow_file/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/42_gpasswd_remove_user_from_group-no_gshadow_file/data/group create mode 100755 tests/tests/grouptools/gpasswd/42_gpasswd_remove_user_from_group-no_gshadow_file/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/43_gpasswd_-r_locked_group/config.txt create mode 100644 tests/tests/grouptools/gpasswd/43_gpasswd_-r_locked_group/config/etc/default/useradd create mode 100644 tests/tests/grouptools/gpasswd/43_gpasswd_-r_locked_group/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/43_gpasswd_-r_locked_group/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/43_gpasswd_-r_locked_group/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/43_gpasswd_-r_locked_group/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/43_gpasswd_-r_locked_group/data/gpasswd.err create mode 100755 tests/tests/grouptools/gpasswd/43_gpasswd_-r_locked_group/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/44_gpasswd_-r_locked_gshadow/config.txt create mode 100644 tests/tests/grouptools/gpasswd/44_gpasswd_-r_locked_gshadow/config/etc/default/useradd create mode 100644 tests/tests/grouptools/gpasswd/44_gpasswd_-r_locked_gshadow/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/44_gpasswd_-r_locked_gshadow/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/44_gpasswd_-r_locked_gshadow/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/44_gpasswd_-r_locked_gshadow/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/44_gpasswd_-r_locked_gshadow/data/gpasswd.err create mode 100755 tests/tests/grouptools/gpasswd/44_gpasswd_-r_locked_gshadow/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/45_gpasswd_-r_unknown_group/config.txt create mode 100644 tests/tests/grouptools/gpasswd/45_gpasswd_-r_unknown_group/config/etc/default/useradd create mode 100644 tests/tests/grouptools/gpasswd/45_gpasswd_-r_unknown_group/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/45_gpasswd_-r_unknown_group/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/45_gpasswd_-r_unknown_group/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/45_gpasswd_-r_unknown_group/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/45_gpasswd_-r_unknown_group/data/gpasswd.err create mode 100755 tests/tests/grouptools/gpasswd/45_gpasswd_-r_unknown_group/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/46_gpasswd_-a_unknown_user/config.txt create mode 100644 tests/tests/grouptools/gpasswd/46_gpasswd_-a_unknown_user/config/etc/default/useradd create mode 100644 tests/tests/grouptools/gpasswd/46_gpasswd_-a_unknown_user/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/46_gpasswd_-a_unknown_user/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/46_gpasswd_-a_unknown_user/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/46_gpasswd_-a_unknown_user/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/46_gpasswd_-a_unknown_user/data/gpasswd.err create mode 100755 tests/tests/grouptools/gpasswd/46_gpasswd_-a_unknown_user/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/47_gpasswd_-M_unknown_user/config.txt create mode 100644 tests/tests/grouptools/gpasswd/47_gpasswd_-M_unknown_user/config/etc/default/useradd create mode 100644 tests/tests/grouptools/gpasswd/47_gpasswd_-M_unknown_user/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/47_gpasswd_-M_unknown_user/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/47_gpasswd_-M_unknown_user/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/47_gpasswd_-M_unknown_user/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/47_gpasswd_-M_unknown_user/data/gpasswd.err create mode 100755 tests/tests/grouptools/gpasswd/47_gpasswd_-M_unknown_user/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/48_gpasswd_change_admin_list/config.txt create mode 100644 tests/tests/grouptools/gpasswd/48_gpasswd_change_admin_list/config/etc/default/useradd create mode 100644 tests/tests/grouptools/gpasswd/48_gpasswd_change_admin_list/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/48_gpasswd_change_admin_list/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/48_gpasswd_change_admin_list/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/48_gpasswd_change_admin_list/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/48_gpasswd_change_admin_list/data/gshadow create mode 100755 tests/tests/grouptools/gpasswd/48_gpasswd_change_admin_list/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/49_gpasswd_change_admin_list/config.txt create mode 100644 tests/tests/grouptools/gpasswd/49_gpasswd_change_admin_list/config/etc/default/useradd create mode 100644 tests/tests/grouptools/gpasswd/49_gpasswd_change_admin_list/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/49_gpasswd_change_admin_list/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/49_gpasswd_change_admin_list/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/49_gpasswd_change_admin_list/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/49_gpasswd_change_admin_list/data/gshadow create mode 100755 tests/tests/grouptools/gpasswd/49_gpasswd_change_admin_list/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/50_gpasswd_change_admin_list/config.txt create mode 100644 tests/tests/grouptools/gpasswd/50_gpasswd_change_admin_list/config/etc/default/useradd create mode 100644 tests/tests/grouptools/gpasswd/50_gpasswd_change_admin_list/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/50_gpasswd_change_admin_list/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/50_gpasswd_change_admin_list/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/50_gpasswd_change_admin_list/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/50_gpasswd_change_admin_list/data/gshadow create mode 100755 tests/tests/grouptools/gpasswd/50_gpasswd_change_admin_list/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/51_gpasswd_change_admin_list/config.txt create mode 100644 tests/tests/grouptools/gpasswd/51_gpasswd_change_admin_list/config/etc/default/useradd create mode 100644 tests/tests/grouptools/gpasswd/51_gpasswd_change_admin_list/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/51_gpasswd_change_admin_list/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/51_gpasswd_change_admin_list/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/51_gpasswd_change_admin_list/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/51_gpasswd_change_admin_list/data/gshadow create mode 100755 tests/tests/grouptools/gpasswd/51_gpasswd_change_admin_list/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/52_gpasswd_change_admin_list/config.txt create mode 100644 tests/tests/grouptools/gpasswd/52_gpasswd_change_admin_list/config/etc/default/useradd create mode 100644 tests/tests/grouptools/gpasswd/52_gpasswd_change_admin_list/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/52_gpasswd_change_admin_list/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/52_gpasswd_change_admin_list/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/52_gpasswd_change_admin_list/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/52_gpasswd_change_admin_list/data/gshadow create mode 100755 tests/tests/grouptools/gpasswd/52_gpasswd_change_admin_list/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/53_gpasswd_change_admin_list/config.txt create mode 100644 tests/tests/grouptools/gpasswd/53_gpasswd_change_admin_list/config/etc/default/useradd create mode 100644 tests/tests/grouptools/gpasswd/53_gpasswd_change_admin_list/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/53_gpasswd_change_admin_list/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/53_gpasswd_change_admin_list/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/53_gpasswd_change_admin_list/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/53_gpasswd_change_admin_list/data/gshadow create mode 100755 tests/tests/grouptools/gpasswd/53_gpasswd_change_admin_list/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/54_gpasswd_change_admin_list-no_shadow_group/config.txt create mode 100644 tests/tests/grouptools/gpasswd/54_gpasswd_change_admin_list-no_shadow_group/config/etc/default/useradd create mode 100644 tests/tests/grouptools/gpasswd/54_gpasswd_change_admin_list-no_shadow_group/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/54_gpasswd_change_admin_list-no_shadow_group/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/54_gpasswd_change_admin_list-no_shadow_group/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/54_gpasswd_change_admin_list-no_shadow_group/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/54_gpasswd_change_admin_list-no_shadow_group/data/gshadow create mode 100755 tests/tests/grouptools/gpasswd/54_gpasswd_change_admin_list-no_shadow_group/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/55_gpasswd_change_admin_list-no_gshadow_file/config.txt create mode 100644 tests/tests/grouptools/gpasswd/55_gpasswd_change_admin_list-no_gshadow_file/config/etc/default/useradd create mode 100644 tests/tests/grouptools/gpasswd/55_gpasswd_change_admin_list-no_gshadow_file/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/55_gpasswd_change_admin_list-no_gshadow_file/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/55_gpasswd_change_admin_list-no_gshadow_file/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/55_gpasswd_change_admin_list-no_gshadow_file/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/55_gpasswd_change_admin_list-no_gshadow_file/data/gpasswd.err create mode 100755 tests/tests/grouptools/gpasswd/55_gpasswd_change_admin_list-no_gshadow_file/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/56_gpasswd_add_user_to_group/config.txt create mode 100644 tests/tests/grouptools/gpasswd/56_gpasswd_add_user_to_group/config/etc/default/useradd create mode 100644 tests/tests/grouptools/gpasswd/56_gpasswd_add_user_to_group/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/56_gpasswd_add_user_to_group/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/56_gpasswd_add_user_to_group/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/56_gpasswd_add_user_to_group/config/etc/shadow create mode 100755 tests/tests/grouptools/gpasswd/56_gpasswd_add_user_to_group/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/57_gpasswd_remove_user_from_group-not_member/config.txt create mode 100644 tests/tests/grouptools/gpasswd/57_gpasswd_remove_user_from_group-not_member/config/etc/default/useradd create mode 100644 tests/tests/grouptools/gpasswd/57_gpasswd_remove_user_from_group-not_member/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/57_gpasswd_remove_user_from_group-not_member/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/57_gpasswd_remove_user_from_group-not_member/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/57_gpasswd_remove_user_from_group-not_member/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/57_gpasswd_remove_user_from_group-not_member/data/gpasswd.err create mode 100755 tests/tests/grouptools/gpasswd/57_gpasswd_remove_user_from_group-not_member/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/58_gpasswd_remove_user_from_group-not_gshadow_member/config.txt create mode 100644 tests/tests/grouptools/gpasswd/58_gpasswd_remove_user_from_group-not_gshadow_member/config/etc/default/useradd create mode 100644 tests/tests/grouptools/gpasswd/58_gpasswd_remove_user_from_group-not_gshadow_member/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/58_gpasswd_remove_user_from_group-not_gshadow_member/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/58_gpasswd_remove_user_from_group-not_gshadow_member/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/58_gpasswd_remove_user_from_group-not_gshadow_member/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/58_gpasswd_remove_user_from_group-not_gshadow_member/data/group create mode 100755 tests/tests/grouptools/gpasswd/58_gpasswd_remove_user_from_group-not_gshadow_member/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/59_gpasswd_remove_user_from_group-not_group_member/config.txt create mode 100644 tests/tests/grouptools/gpasswd/59_gpasswd_remove_user_from_group-not_group_member/config/etc/default/useradd create mode 100644 tests/tests/grouptools/gpasswd/59_gpasswd_remove_user_from_group-not_group_member/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/59_gpasswd_remove_user_from_group-not_group_member/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/59_gpasswd_remove_user_from_group-not_group_member/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/59_gpasswd_remove_user_from_group-not_group_member/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/59_gpasswd_remove_user_from_group-not_group_member/data/gshadow create mode 100755 tests/tests/grouptools/gpasswd/59_gpasswd_remove_user_from_group-not_group_member/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/60_gpasswd_add_long_user_to_group/config.txt create mode 100644 tests/tests/grouptools/gpasswd/60_gpasswd_add_long_user_to_group/config/etc/default/useradd create mode 100644 tests/tests/grouptools/gpasswd/60_gpasswd_add_long_user_to_group/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/60_gpasswd_add_long_user_to_group/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/60_gpasswd_add_long_user_to_group/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/60_gpasswd_add_long_user_to_group/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/60_gpasswd_add_long_user_to_group/data/group create mode 100644 tests/tests/grouptools/gpasswd/60_gpasswd_add_long_user_to_group/data/gshadow create mode 100755 tests/tests/grouptools/gpasswd/60_gpasswd_add_long_user_to_group/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/61_gpasswd_usage/config.txt create mode 100644 tests/tests/grouptools/gpasswd/61_gpasswd_usage/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/61_gpasswd_usage/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/61_gpasswd_usage/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/61_gpasswd_usage/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/61_gpasswd_usage/data/usage.out create mode 100755 tests/tests/grouptools/gpasswd/61_gpasswd_usage/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/62_gpasswd_-A_unknown_user/config.txt create mode 100644 tests/tests/grouptools/gpasswd/62_gpasswd_-A_unknown_user/config/etc/default/useradd create mode 100644 tests/tests/grouptools/gpasswd/62_gpasswd_-A_unknown_user/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/62_gpasswd_-A_unknown_user/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/62_gpasswd_-A_unknown_user/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/62_gpasswd_-A_unknown_user/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/62_gpasswd_-A_unknown_user/data/gpasswd.err create mode 100755 tests/tests/grouptools/gpasswd/62_gpasswd_-A_unknown_user/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/63_gpasswd_usage_bad_option/config.txt create mode 100644 tests/tests/grouptools/gpasswd/63_gpasswd_usage_bad_option/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/63_gpasswd_usage_bad_option/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/63_gpasswd_usage_bad_option/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/63_gpasswd_usage_bad_option/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/63_gpasswd_usage_bad_option/data/usage.out create mode 100755 tests/tests/grouptools/gpasswd/63_gpasswd_usage_bad_option/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/64_gpasswd_usage-a-d/config.txt create mode 100644 tests/tests/grouptools/gpasswd/64_gpasswd_usage-a-d/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/64_gpasswd_usage-a-d/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/64_gpasswd_usage-a-d/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/64_gpasswd_usage-a-d/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/64_gpasswd_usage-a-d/data/usage.out create mode 100755 tests/tests/grouptools/gpasswd/64_gpasswd_usage-a-d/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/65_gpasswd_usage_no_groups/config.txt create mode 100644 tests/tests/grouptools/gpasswd/65_gpasswd_usage_no_groups/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/65_gpasswd_usage_no_groups/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/65_gpasswd_usage_no_groups/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/65_gpasswd_usage_no_groups/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/65_gpasswd_usage_no_groups/data/usage.out create mode 100755 tests/tests/grouptools/gpasswd/65_gpasswd_usage_no_groups/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/66_gpasswd_usage_2_groups/config.txt create mode 100644 tests/tests/grouptools/gpasswd/66_gpasswd_usage_2_groups/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/66_gpasswd_usage_2_groups/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/66_gpasswd_usage_2_groups/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/66_gpasswd_usage_2_groups/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/66_gpasswd_usage_2_groups/data/usage.out create mode 100755 tests/tests/grouptools/gpasswd/66_gpasswd_usage_2_groups/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/67_gpasswd-A_myuser/config.txt create mode 100644 tests/tests/grouptools/gpasswd/67_gpasswd-A_myuser/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/67_gpasswd-A_myuser/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/67_gpasswd-A_myuser/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/67_gpasswd-A_myuser/config/etc/shadow create mode 100755 tests/tests/grouptools/gpasswd/67_gpasswd-A_myuser/gpasswd.exp create mode 100755 tests/tests/grouptools/gpasswd/67_gpasswd-A_myuser/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/68_gpasswd-M_myuser/config.txt create mode 100644 tests/tests/grouptools/gpasswd/68_gpasswd-M_myuser/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/68_gpasswd-M_myuser/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/68_gpasswd-M_myuser/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/68_gpasswd-M_myuser/config/etc/shadow create mode 100755 tests/tests/grouptools/gpasswd/68_gpasswd-M_myuser/gpasswd.exp create mode 100755 tests/tests/grouptools/gpasswd/68_gpasswd-M_myuser/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/69_gpasswd_change_passwd_2_tries/config.txt create mode 100644 tests/tests/grouptools/gpasswd/69_gpasswd_change_passwd_2_tries/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/69_gpasswd_change_passwd_2_tries/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/69_gpasswd_change_passwd_2_tries/config/etc/login.defs create mode 100644 tests/tests/grouptools/gpasswd/69_gpasswd_change_passwd_2_tries/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/69_gpasswd_change_passwd_2_tries/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/69_gpasswd_change_passwd_2_tries/data/gshadow create mode 100755 tests/tests/grouptools/gpasswd/69_gpasswd_change_passwd_2_tries/gpasswd.exp create mode 100755 tests/tests/grouptools/gpasswd/69_gpasswd_change_passwd_2_tries/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/70_gpasswd_change_passwd_3_tries/config.txt create mode 100644 tests/tests/grouptools/gpasswd/70_gpasswd_change_passwd_3_tries/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/70_gpasswd_change_passwd_3_tries/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/70_gpasswd_change_passwd_3_tries/config/etc/login.defs create mode 100644 tests/tests/grouptools/gpasswd/70_gpasswd_change_passwd_3_tries/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/70_gpasswd_change_passwd_3_tries/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/70_gpasswd_change_passwd_3_tries/data/gshadow create mode 100755 tests/tests/grouptools/gpasswd/70_gpasswd_change_passwd_3_tries/gpasswd.exp create mode 100755 tests/tests/grouptools/gpasswd/70_gpasswd_change_passwd_3_tries/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/71_gpasswd_change_passwd_4_tries/config.txt create mode 100644 tests/tests/grouptools/gpasswd/71_gpasswd_change_passwd_4_tries/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/71_gpasswd_change_passwd_4_tries/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/71_gpasswd_change_passwd_4_tries/config/etc/login.defs create mode 100644 tests/tests/grouptools/gpasswd/71_gpasswd_change_passwd_4_tries/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/71_gpasswd_change_passwd_4_tries/config/etc/shadow create mode 100755 tests/tests/grouptools/gpasswd/71_gpasswd_change_passwd_4_tries/gpasswd.exp create mode 100755 tests/tests/grouptools/gpasswd/71_gpasswd_change_passwd_4_tries/gpasswd.test create mode 100644 tests/tests/grouptools/gpasswd/72_gpasswd-M-A/config.txt create mode 100644 tests/tests/grouptools/gpasswd/72_gpasswd-M-A/config/etc/group create mode 100644 tests/tests/grouptools/gpasswd/72_gpasswd-M-A/config/etc/gshadow create mode 100644 tests/tests/grouptools/gpasswd/72_gpasswd-M-A/config/etc/passwd create mode 100644 tests/tests/grouptools/gpasswd/72_gpasswd-M-A/config/etc/shadow create mode 100644 tests/tests/grouptools/gpasswd/72_gpasswd-M-A/data/group create mode 100644 tests/tests/grouptools/gpasswd/72_gpasswd-M-A/data/gshadow create mode 100755 tests/tests/grouptools/gpasswd/72_gpasswd-M-A/gpasswd.test create mode 100644 tests/tests/grouptools/groupadd/01_groupadd_add_group/config.txt create mode 100644 tests/tests/grouptools/groupadd/01_groupadd_add_group/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupadd/01_groupadd_add_group/config/etc/group create mode 100644 tests/tests/grouptools/groupadd/01_groupadd_add_group/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupadd/01_groupadd_add_group/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupadd/01_groupadd_add_group/config/etc/passwd create mode 100644 tests/tests/grouptools/groupadd/01_groupadd_add_group/config/etc/shadow create mode 100644 tests/tests/grouptools/groupadd/01_groupadd_add_group/data/group create mode 100644 tests/tests/grouptools/groupadd/01_groupadd_add_group/data/gshadow create mode 100755 tests/tests/grouptools/groupadd/01_groupadd_add_group/groupadd.test create mode 100644 tests/tests/grouptools/groupadd/02_groupadd_add_group_GID_MIN/config.txt create mode 100644 tests/tests/grouptools/groupadd/02_groupadd_add_group_GID_MIN/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupadd/02_groupadd_add_group_GID_MIN/config/etc/group create mode 100644 tests/tests/grouptools/groupadd/02_groupadd_add_group_GID_MIN/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupadd/02_groupadd_add_group_GID_MIN/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupadd/02_groupadd_add_group_GID_MIN/config/etc/passwd create mode 100644 tests/tests/grouptools/groupadd/02_groupadd_add_group_GID_MIN/config/etc/shadow create mode 100644 tests/tests/grouptools/groupadd/02_groupadd_add_group_GID_MIN/data/group create mode 100644 tests/tests/grouptools/groupadd/02_groupadd_add_group_GID_MIN/data/gshadow create mode 100755 tests/tests/grouptools/groupadd/02_groupadd_add_group_GID_MIN/groupadd.test create mode 100644 tests/tests/grouptools/groupadd/03_groupadd_add_group_-K_GID_MIN/config.txt create mode 100644 tests/tests/grouptools/groupadd/03_groupadd_add_group_-K_GID_MIN/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupadd/03_groupadd_add_group_-K_GID_MIN/config/etc/group create mode 100644 tests/tests/grouptools/groupadd/03_groupadd_add_group_-K_GID_MIN/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupadd/03_groupadd_add_group_-K_GID_MIN/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupadd/03_groupadd_add_group_-K_GID_MIN/config/etc/passwd create mode 100644 tests/tests/grouptools/groupadd/03_groupadd_add_group_-K_GID_MIN/config/etc/shadow create mode 100644 tests/tests/grouptools/groupadd/03_groupadd_add_group_-K_GID_MIN/data/group create mode 100644 tests/tests/grouptools/groupadd/03_groupadd_add_group_-K_GID_MIN/data/gshadow create mode 100755 tests/tests/grouptools/groupadd/03_groupadd_add_group_-K_GID_MIN/groupadd.test create mode 100644 tests/tests/grouptools/groupadd/04_groupadd_set_password/config.txt create mode 100644 tests/tests/grouptools/groupadd/04_groupadd_set_password/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupadd/04_groupadd_set_password/config/etc/group create mode 100644 tests/tests/grouptools/groupadd/04_groupadd_set_password/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupadd/04_groupadd_set_password/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupadd/04_groupadd_set_password/config/etc/passwd create mode 100644 tests/tests/grouptools/groupadd/04_groupadd_set_password/config/etc/shadow create mode 100644 tests/tests/grouptools/groupadd/04_groupadd_set_password/data/group create mode 100644 tests/tests/grouptools/groupadd/04_groupadd_set_password/data/gshadow create mode 100755 tests/tests/grouptools/groupadd/04_groupadd_set_password/groupadd.test create mode 100644 tests/tests/grouptools/groupadd/05_groupadd_set_GID/config.txt create mode 100644 tests/tests/grouptools/groupadd/05_groupadd_set_GID/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupadd/05_groupadd_set_GID/config/etc/group create mode 100644 tests/tests/grouptools/groupadd/05_groupadd_set_GID/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupadd/05_groupadd_set_GID/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupadd/05_groupadd_set_GID/config/etc/passwd create mode 100644 tests/tests/grouptools/groupadd/05_groupadd_set_GID/config/etc/shadow create mode 100644 tests/tests/grouptools/groupadd/05_groupadd_set_GID/data/group create mode 100644 tests/tests/grouptools/groupadd/05_groupadd_set_GID/data/gshadow create mode 100755 tests/tests/grouptools/groupadd/05_groupadd_set_GID/groupadd.test create mode 100644 tests/tests/grouptools/groupadd/06_groupadd_-f_add_existing_group/config.txt create mode 100644 tests/tests/grouptools/groupadd/06_groupadd_-f_add_existing_group/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupadd/06_groupadd_-f_add_existing_group/config/etc/group create mode 100644 tests/tests/grouptools/groupadd/06_groupadd_-f_add_existing_group/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupadd/06_groupadd_-f_add_existing_group/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupadd/06_groupadd_-f_add_existing_group/config/etc/passwd create mode 100644 tests/tests/grouptools/groupadd/06_groupadd_-f_add_existing_group/config/etc/shadow create mode 100755 tests/tests/grouptools/groupadd/06_groupadd_-f_add_existing_group/groupadd.test create mode 100644 tests/tests/grouptools/groupadd/07_groupadd_-f_add_existing_GID/config.txt create mode 100644 tests/tests/grouptools/groupadd/07_groupadd_-f_add_existing_GID/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupadd/07_groupadd_-f_add_existing_GID/config/etc/group create mode 100644 tests/tests/grouptools/groupadd/07_groupadd_-f_add_existing_GID/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupadd/07_groupadd_-f_add_existing_GID/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupadd/07_groupadd_-f_add_existing_GID/config/etc/passwd create mode 100644 tests/tests/grouptools/groupadd/07_groupadd_-f_add_existing_GID/config/etc/shadow create mode 100644 tests/tests/grouptools/groupadd/07_groupadd_-f_add_existing_GID/data/group create mode 100644 tests/tests/grouptools/groupadd/07_groupadd_-f_add_existing_GID/data/gshadow create mode 100755 tests/tests/grouptools/groupadd/07_groupadd_-f_add_existing_GID/groupadd.test create mode 100644 tests/tests/grouptools/groupadd/08_groupadd_locked_group/config.txt create mode 100644 tests/tests/grouptools/groupadd/08_groupadd_locked_group/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupadd/08_groupadd_locked_group/config/etc/group create mode 100644 tests/tests/grouptools/groupadd/08_groupadd_locked_group/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupadd/08_groupadd_locked_group/config/etc/passwd create mode 100644 tests/tests/grouptools/groupadd/08_groupadd_locked_group/config/etc/shadow create mode 100644 tests/tests/grouptools/groupadd/08_groupadd_locked_group/data/groupadd.err create mode 100755 tests/tests/grouptools/groupadd/08_groupadd_locked_group/groupadd.test create mode 100644 tests/tests/grouptools/groupadd/09_groupadd_locked_gshadow/config.txt create mode 100644 tests/tests/grouptools/groupadd/09_groupadd_locked_gshadow/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupadd/09_groupadd_locked_gshadow/config/etc/group create mode 100644 tests/tests/grouptools/groupadd/09_groupadd_locked_gshadow/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupadd/09_groupadd_locked_gshadow/config/etc/passwd create mode 100644 tests/tests/grouptools/groupadd/09_groupadd_locked_gshadow/config/etc/shadow create mode 100644 tests/tests/grouptools/groupadd/09_groupadd_locked_gshadow/data/groupadd.err create mode 100755 tests/tests/grouptools/groupadd/09_groupadd_locked_gshadow/groupadd.test create mode 100644 tests/tests/grouptools/groupadd/10_groupadd_-o_add_existing_GID/config.txt create mode 100644 tests/tests/grouptools/groupadd/10_groupadd_-o_add_existing_GID/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupadd/10_groupadd_-o_add_existing_GID/config/etc/group create mode 100644 tests/tests/grouptools/groupadd/10_groupadd_-o_add_existing_GID/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupadd/10_groupadd_-o_add_existing_GID/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupadd/10_groupadd_-o_add_existing_GID/config/etc/passwd create mode 100644 tests/tests/grouptools/groupadd/10_groupadd_-o_add_existing_GID/config/etc/shadow create mode 100644 tests/tests/grouptools/groupadd/10_groupadd_-o_add_existing_GID/data/group create mode 100644 tests/tests/grouptools/groupadd/10_groupadd_-o_add_existing_GID/data/gshadow create mode 100755 tests/tests/grouptools/groupadd/10_groupadd_-o_add_existing_GID/groupadd.test create mode 100644 tests/tests/grouptools/groupadd/11_groupadd_invalid_GID/config.txt create mode 100644 tests/tests/grouptools/groupadd/11_groupadd_invalid_GID/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupadd/11_groupadd_invalid_GID/config/etc/group create mode 100644 tests/tests/grouptools/groupadd/11_groupadd_invalid_GID/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupadd/11_groupadd_invalid_GID/config/etc/passwd create mode 100644 tests/tests/grouptools/groupadd/11_groupadd_invalid_GID/config/etc/shadow create mode 100644 tests/tests/grouptools/groupadd/11_groupadd_invalid_GID/data/groupadd.err create mode 100755 tests/tests/grouptools/groupadd/11_groupadd_invalid_GID/groupadd.test create mode 100644 tests/tests/grouptools/groupadd/12_groupadd_negative_GID/config.txt create mode 100644 tests/tests/grouptools/groupadd/12_groupadd_negative_GID/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupadd/12_groupadd_negative_GID/config/etc/group create mode 100644 tests/tests/grouptools/groupadd/12_groupadd_negative_GID/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupadd/12_groupadd_negative_GID/config/etc/passwd create mode 100644 tests/tests/grouptools/groupadd/12_groupadd_negative_GID/config/etc/shadow create mode 100644 tests/tests/grouptools/groupadd/12_groupadd_negative_GID/data/groupadd.err create mode 100755 tests/tests/grouptools/groupadd/12_groupadd_negative_GID/groupadd.test create mode 100644 tests/tests/grouptools/groupadd/13_groupadd_invalid_name/config.txt create mode 100644 tests/tests/grouptools/groupadd/13_groupadd_invalid_name/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupadd/13_groupadd_invalid_name/config/etc/group create mode 100644 tests/tests/grouptools/groupadd/13_groupadd_invalid_name/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupadd/13_groupadd_invalid_name/config/etc/passwd create mode 100644 tests/tests/grouptools/groupadd/13_groupadd_invalid_name/config/etc/shadow create mode 100644 tests/tests/grouptools/groupadd/13_groupadd_invalid_name/data/groupadd.err create mode 100755 tests/tests/grouptools/groupadd/13_groupadd_invalid_name/groupadd.test create mode 100644 tests/tests/grouptools/groupadd/14_groupadd_invalid_-K_option/config.txt create mode 100644 tests/tests/grouptools/groupadd/14_groupadd_invalid_-K_option/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupadd/14_groupadd_invalid_-K_option/config/etc/group create mode 100644 tests/tests/grouptools/groupadd/14_groupadd_invalid_-K_option/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupadd/14_groupadd_invalid_-K_option/config/etc/passwd create mode 100644 tests/tests/grouptools/groupadd/14_groupadd_invalid_-K_option/config/etc/shadow create mode 100644 tests/tests/grouptools/groupadd/14_groupadd_invalid_-K_option/data/groupadd.err create mode 100755 tests/tests/grouptools/groupadd/14_groupadd_invalid_-K_option/groupadd.test create mode 100644 tests/tests/grouptools/groupadd/15_groupadd_invalid_-K_no_=/config.txt create mode 100644 tests/tests/grouptools/groupadd/15_groupadd_invalid_-K_no_=/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupadd/15_groupadd_invalid_-K_no_=/config/etc/group create mode 100644 tests/tests/grouptools/groupadd/15_groupadd_invalid_-K_no_=/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupadd/15_groupadd_invalid_-K_no_=/config/etc/passwd create mode 100644 tests/tests/grouptools/groupadd/15_groupadd_invalid_-K_no_=/config/etc/shadow create mode 100644 tests/tests/grouptools/groupadd/15_groupadd_invalid_-K_no_=/data/groupadd.err create mode 100755 tests/tests/grouptools/groupadd/15_groupadd_invalid_-K_no_=/groupadd.test create mode 100644 tests/tests/grouptools/groupadd/16_groupadd_existing_group/config.txt create mode 100644 tests/tests/grouptools/groupadd/16_groupadd_existing_group/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupadd/16_groupadd_existing_group/config/etc/group create mode 100644 tests/tests/grouptools/groupadd/16_groupadd_existing_group/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupadd/16_groupadd_existing_group/config/etc/passwd create mode 100644 tests/tests/grouptools/groupadd/16_groupadd_existing_group/config/etc/shadow create mode 100644 tests/tests/grouptools/groupadd/16_groupadd_existing_group/data/groupadd.err create mode 100755 tests/tests/grouptools/groupadd/16_groupadd_existing_group/groupadd.test create mode 100644 tests/tests/grouptools/groupadd/17_groupadd_add_systemgroup/config.txt create mode 100644 tests/tests/grouptools/groupadd/17_groupadd_add_systemgroup/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupadd/17_groupadd_add_systemgroup/config/etc/group create mode 100644 tests/tests/grouptools/groupadd/17_groupadd_add_systemgroup/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupadd/17_groupadd_add_systemgroup/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupadd/17_groupadd_add_systemgroup/config/etc/passwd create mode 100644 tests/tests/grouptools/groupadd/17_groupadd_add_systemgroup/config/etc/shadow create mode 100644 tests/tests/grouptools/groupadd/17_groupadd_add_systemgroup/data/group create mode 100644 tests/tests/grouptools/groupadd/17_groupadd_add_systemgroup/data/gshadow create mode 100755 tests/tests/grouptools/groupadd/17_groupadd_add_systemgroup/groupadd.test create mode 100644 tests/tests/grouptools/groupadd/18_groupadd_no_more_GID/config.txt create mode 100644 tests/tests/grouptools/groupadd/18_groupadd_no_more_GID/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupadd/18_groupadd_no_more_GID/config/etc/group create mode 100644 tests/tests/grouptools/groupadd/18_groupadd_no_more_GID/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupadd/18_groupadd_no_more_GID/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupadd/18_groupadd_no_more_GID/config/etc/passwd create mode 100644 tests/tests/grouptools/groupadd/18_groupadd_no_more_GID/config/etc/shadow create mode 100644 tests/tests/grouptools/groupadd/18_groupadd_no_more_GID/data/groupadd.err create mode 100755 tests/tests/grouptools/groupadd/18_groupadd_no_more_GID/groupadd.test create mode 100644 tests/tests/grouptools/groupadd/19_groupadd_-r_no_more_system_GID/config.txt create mode 100644 tests/tests/grouptools/groupadd/19_groupadd_-r_no_more_system_GID/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupadd/19_groupadd_-r_no_more_system_GID/config/etc/group create mode 100644 tests/tests/grouptools/groupadd/19_groupadd_-r_no_more_system_GID/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupadd/19_groupadd_-r_no_more_system_GID/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupadd/19_groupadd_-r_no_more_system_GID/config/etc/passwd create mode 100644 tests/tests/grouptools/groupadd/19_groupadd_-r_no_more_system_GID/config/etc/shadow create mode 100644 tests/tests/grouptools/groupadd/19_groupadd_-r_no_more_system_GID/data/groupadd.err create mode 100755 tests/tests/grouptools/groupadd/19_groupadd_-r_no_more_system_GID/groupadd.test create mode 100644 tests/tests/grouptools/groupadd/20_groupadd_add_existing_GID/config.txt create mode 100644 tests/tests/grouptools/groupadd/20_groupadd_add_existing_GID/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupadd/20_groupadd_add_existing_GID/config/etc/group create mode 100644 tests/tests/grouptools/groupadd/20_groupadd_add_existing_GID/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupadd/20_groupadd_add_existing_GID/config/etc/passwd create mode 100644 tests/tests/grouptools/groupadd/20_groupadd_add_existing_GID/config/etc/shadow create mode 100644 tests/tests/grouptools/groupadd/20_groupadd_add_existing_GID/data/groupadd.err create mode 100755 tests/tests/grouptools/groupadd/20_groupadd_add_existing_GID/groupadd.test create mode 100644 tests/tests/grouptools/groupadd/21_groupadd_invalid_GID_4294967295/config.txt create mode 100644 tests/tests/grouptools/groupadd/21_groupadd_invalid_GID_4294967295/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupadd/21_groupadd_invalid_GID_4294967295/config/etc/group create mode 100644 tests/tests/grouptools/groupadd/21_groupadd_invalid_GID_4294967295/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupadd/21_groupadd_invalid_GID_4294967295/config/etc/passwd create mode 100644 tests/tests/grouptools/groupadd/21_groupadd_invalid_GID_4294967295/config/etc/shadow create mode 100644 tests/tests/grouptools/groupadd/21_groupadd_invalid_GID_4294967295/data/groupadd.err create mode 100755 tests/tests/grouptools/groupadd/21_groupadd_invalid_GID_4294967295/groupadd.test create mode 100644 tests/tests/grouptools/groupadd/22_groupadd_usage/config.txt create mode 100644 tests/tests/grouptools/groupadd/22_groupadd_usage/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupadd/22_groupadd_usage/config/etc/group create mode 100644 tests/tests/grouptools/groupadd/22_groupadd_usage/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupadd/22_groupadd_usage/config/etc/passwd create mode 100644 tests/tests/grouptools/groupadd/22_groupadd_usage/config/etc/shadow create mode 100644 tests/tests/grouptools/groupadd/22_groupadd_usage/data/usage.out create mode 100755 tests/tests/grouptools/groupadd/22_groupadd_usage/groupadd.test create mode 100644 tests/tests/grouptools/groupadd/23_groupadd_no_groups/config.txt create mode 100644 tests/tests/grouptools/groupadd/23_groupadd_no_groups/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupadd/23_groupadd_no_groups/config/etc/group create mode 100644 tests/tests/grouptools/groupadd/23_groupadd_no_groups/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupadd/23_groupadd_no_groups/config/etc/passwd create mode 100644 tests/tests/grouptools/groupadd/23_groupadd_no_groups/config/etc/shadow create mode 100644 tests/tests/grouptools/groupadd/23_groupadd_no_groups/data/groupadd.err create mode 100755 tests/tests/grouptools/groupadd/23_groupadd_no_groups/groupadd.test create mode 100644 tests/tests/grouptools/groupadd/24_groupadd_2_groups/config.txt create mode 100644 tests/tests/grouptools/groupadd/24_groupadd_2_groups/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupadd/24_groupadd_2_groups/config/etc/group create mode 100644 tests/tests/grouptools/groupadd/24_groupadd_2_groups/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupadd/24_groupadd_2_groups/config/etc/passwd create mode 100644 tests/tests/grouptools/groupadd/24_groupadd_2_groups/config/etc/shadow create mode 100644 tests/tests/grouptools/groupadd/24_groupadd_2_groups/data/groupadd.err create mode 100755 tests/tests/grouptools/groupadd/24_groupadd_2_groups/groupadd.test create mode 100644 tests/tests/grouptools/groupadd/25_groupadd_no_gshadow/config.txt create mode 100644 tests/tests/grouptools/groupadd/25_groupadd_no_gshadow/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupadd/25_groupadd_no_gshadow/config/etc/group create mode 100644 tests/tests/grouptools/groupadd/25_groupadd_no_gshadow/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupadd/25_groupadd_no_gshadow/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupadd/25_groupadd_no_gshadow/config/etc/passwd create mode 100644 tests/tests/grouptools/groupadd/25_groupadd_no_gshadow/config/etc/shadow create mode 100644 tests/tests/grouptools/groupadd/25_groupadd_no_gshadow/data/group create mode 100755 tests/tests/grouptools/groupadd/25_groupadd_no_gshadow/groupadd.test create mode 100644 tests/tests/grouptools/groupadd/26_groupadd_-o_without_-g/config.txt create mode 100644 tests/tests/grouptools/groupadd/26_groupadd_-o_without_-g/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupadd/26_groupadd_-o_without_-g/config/etc/group create mode 100644 tests/tests/grouptools/groupadd/26_groupadd_-o_without_-g/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupadd/26_groupadd_-o_without_-g/config/etc/passwd create mode 100644 tests/tests/grouptools/groupadd/26_groupadd_-o_without_-g/config/etc/shadow create mode 100644 tests/tests/grouptools/groupadd/26_groupadd_-o_without_-g/data/groupadd.err create mode 100755 tests/tests/grouptools/groupadd/26_groupadd_-o_without_-g/groupadd.test create mode 100644 tests/tests/grouptools/groupadd/27_groupadd_invalid_option/config.txt create mode 100644 tests/tests/grouptools/groupadd/27_groupadd_invalid_option/config/etc/group create mode 100644 tests/tests/grouptools/groupadd/27_groupadd_invalid_option/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupadd/27_groupadd_invalid_option/config/etc/passwd create mode 100644 tests/tests/grouptools/groupadd/27_groupadd_invalid_option/config/etc/shadow create mode 100644 tests/tests/grouptools/groupadd/27_groupadd_invalid_option/data/groupadd.err create mode 100755 tests/tests/grouptools/groupadd/27_groupadd_invalid_option/groupadd.test create mode 100644 tests/tests/grouptools/groupdel/01_groupdel_delete_group/config.txt create mode 100644 tests/tests/grouptools/groupdel/01_groupdel_delete_group/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupdel/01_groupdel_delete_group/config/etc/group create mode 100644 tests/tests/grouptools/groupdel/01_groupdel_delete_group/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupdel/01_groupdel_delete_group/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupdel/01_groupdel_delete_group/config/etc/passwd create mode 100644 tests/tests/grouptools/groupdel/01_groupdel_delete_group/config/etc/shadow create mode 100644 tests/tests/grouptools/groupdel/01_groupdel_delete_group/data/group create mode 100644 tests/tests/grouptools/groupdel/01_groupdel_delete_group/data/gshadow create mode 100755 tests/tests/grouptools/groupdel/01_groupdel_delete_group/groupdel.test create mode 100644 tests/tests/grouptools/groupdel/02_groupdel_delete_group_no_gshadow_group/config.txt create mode 100644 tests/tests/grouptools/groupdel/02_groupdel_delete_group_no_gshadow_group/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupdel/02_groupdel_delete_group_no_gshadow_group/config/etc/group create mode 100644 tests/tests/grouptools/groupdel/02_groupdel_delete_group_no_gshadow_group/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupdel/02_groupdel_delete_group_no_gshadow_group/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupdel/02_groupdel_delete_group_no_gshadow_group/config/etc/passwd create mode 100644 tests/tests/grouptools/groupdel/02_groupdel_delete_group_no_gshadow_group/config/etc/shadow create mode 100644 tests/tests/grouptools/groupdel/02_groupdel_delete_group_no_gshadow_group/data/group create mode 100755 tests/tests/grouptools/groupdel/02_groupdel_delete_group_no_gshadow_group/groupdel.test create mode 100644 tests/tests/grouptools/groupdel/03_groupdel_delete_group_no_gshadow_file/config.txt create mode 100644 tests/tests/grouptools/groupdel/03_groupdel_delete_group_no_gshadow_file/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupdel/03_groupdel_delete_group_no_gshadow_file/config/etc/group create mode 100644 tests/tests/grouptools/groupdel/03_groupdel_delete_group_no_gshadow_file/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupdel/03_groupdel_delete_group_no_gshadow_file/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupdel/03_groupdel_delete_group_no_gshadow_file/config/etc/passwd create mode 100644 tests/tests/grouptools/groupdel/03_groupdel_delete_group_no_gshadow_file/config/etc/shadow create mode 100644 tests/tests/grouptools/groupdel/03_groupdel_delete_group_no_gshadow_file/data/group create mode 100755 tests/tests/grouptools/groupdel/03_groupdel_delete_group_no_gshadow_file/groupdel.test create mode 100644 tests/tests/grouptools/groupdel/04_groupdel_delete_group_error_busy_group/config.txt create mode 100644 tests/tests/grouptools/groupdel/04_groupdel_delete_group_error_busy_group/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupdel/04_groupdel_delete_group_error_busy_group/config/etc/group create mode 100644 tests/tests/grouptools/groupdel/04_groupdel_delete_group_error_busy_group/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupdel/04_groupdel_delete_group_error_busy_group/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupdel/04_groupdel_delete_group_error_busy_group/config/etc/passwd create mode 100644 tests/tests/grouptools/groupdel/04_groupdel_delete_group_error_busy_group/config/etc/shadow create mode 100644 tests/tests/grouptools/groupdel/04_groupdel_delete_group_error_busy_group/data/groupdel.err create mode 100755 tests/tests/grouptools/groupdel/04_groupdel_delete_group_error_busy_group/groupdel.test create mode 100644 tests/tests/grouptools/groupdel/05_groupdel_delete_group_error_unknown_group/config.txt create mode 100644 tests/tests/grouptools/groupdel/05_groupdel_delete_group_error_unknown_group/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupdel/05_groupdel_delete_group_error_unknown_group/config/etc/group create mode 100644 tests/tests/grouptools/groupdel/05_groupdel_delete_group_error_unknown_group/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupdel/05_groupdel_delete_group_error_unknown_group/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupdel/05_groupdel_delete_group_error_unknown_group/config/etc/passwd create mode 100644 tests/tests/grouptools/groupdel/05_groupdel_delete_group_error_unknown_group/config/etc/shadow create mode 100644 tests/tests/grouptools/groupdel/05_groupdel_delete_group_error_unknown_group/data/groupdel.err create mode 100755 tests/tests/grouptools/groupdel/05_groupdel_delete_group_error_unknown_group/groupdel.test create mode 100644 tests/tests/grouptools/groupdel/06_groupdel_delete_group_error_locked_group/config.txt create mode 100644 tests/tests/grouptools/groupdel/06_groupdel_delete_group_error_locked_group/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupdel/06_groupdel_delete_group_error_locked_group/config/etc/group create mode 100644 tests/tests/grouptools/groupdel/06_groupdel_delete_group_error_locked_group/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupdel/06_groupdel_delete_group_error_locked_group/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupdel/06_groupdel_delete_group_error_locked_group/config/etc/passwd create mode 100644 tests/tests/grouptools/groupdel/06_groupdel_delete_group_error_locked_group/config/etc/shadow create mode 100644 tests/tests/grouptools/groupdel/06_groupdel_delete_group_error_locked_group/data/groupdel.err create mode 100755 tests/tests/grouptools/groupdel/06_groupdel_delete_group_error_locked_group/groupdel.test create mode 100644 tests/tests/grouptools/groupdel/07_groupdel_delete_group_error_locked_gshadow/config.txt create mode 100644 tests/tests/grouptools/groupdel/07_groupdel_delete_group_error_locked_gshadow/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupdel/07_groupdel_delete_group_error_locked_gshadow/config/etc/group create mode 100644 tests/tests/grouptools/groupdel/07_groupdel_delete_group_error_locked_gshadow/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupdel/07_groupdel_delete_group_error_locked_gshadow/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupdel/07_groupdel_delete_group_error_locked_gshadow/config/etc/passwd create mode 100644 tests/tests/grouptools/groupdel/07_groupdel_delete_group_error_locked_gshadow/config/etc/shadow create mode 100644 tests/tests/grouptools/groupdel/07_groupdel_delete_group_error_locked_gshadow/data/groupdel.err create mode 100755 tests/tests/grouptools/groupdel/07_groupdel_delete_group_error_locked_gshadow/groupdel.test create mode 100644 tests/tests/grouptools/groupdel/08_groupdel_delete_group_error_no_group_parameter/config.txt create mode 100644 tests/tests/grouptools/groupdel/08_groupdel_delete_group_error_no_group_parameter/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupdel/08_groupdel_delete_group_error_no_group_parameter/config/etc/group create mode 100644 tests/tests/grouptools/groupdel/08_groupdel_delete_group_error_no_group_parameter/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupdel/08_groupdel_delete_group_error_no_group_parameter/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupdel/08_groupdel_delete_group_error_no_group_parameter/config/etc/passwd create mode 100644 tests/tests/grouptools/groupdel/08_groupdel_delete_group_error_no_group_parameter/config/etc/shadow create mode 100644 tests/tests/grouptools/groupdel/08_groupdel_delete_group_error_no_group_parameter/data/groupdel.err create mode 100755 tests/tests/grouptools/groupdel/08_groupdel_delete_group_error_no_group_parameter/groupdel.test create mode 100644 tests/tests/grouptools/groupdel/09_groupdel_delete_group_error_two_group_parameter/config.txt create mode 100644 tests/tests/grouptools/groupdel/09_groupdel_delete_group_error_two_group_parameter/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupdel/09_groupdel_delete_group_error_two_group_parameter/config/etc/group create mode 100644 tests/tests/grouptools/groupdel/09_groupdel_delete_group_error_two_group_parameter/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupdel/09_groupdel_delete_group_error_two_group_parameter/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupdel/09_groupdel_delete_group_error_two_group_parameter/config/etc/passwd create mode 100644 tests/tests/grouptools/groupdel/09_groupdel_delete_group_error_two_group_parameter/config/etc/shadow create mode 100644 tests/tests/grouptools/groupdel/09_groupdel_delete_group_error_two_group_parameter/data/groupdel.err create mode 100755 tests/tests/grouptools/groupdel/09_groupdel_delete_group_error_two_group_parameter/groupdel.test create mode 100644 tests/tests/grouptools/groupdel/10_groupdel_usage/config.txt create mode 100644 tests/tests/grouptools/groupdel/10_groupdel_usage/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupdel/10_groupdel_usage/config/etc/group create mode 100644 tests/tests/grouptools/groupdel/10_groupdel_usage/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupdel/10_groupdel_usage/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupdel/10_groupdel_usage/config/etc/passwd create mode 100644 tests/tests/grouptools/groupdel/10_groupdel_usage/config/etc/shadow create mode 100644 tests/tests/grouptools/groupdel/10_groupdel_usage/data/usage.out create mode 100755 tests/tests/grouptools/groupdel/10_groupdel_usage/groupdel.test create mode 100644 tests/tests/grouptools/groupdel/11_groupdel_invalid_option/config.txt create mode 100644 tests/tests/grouptools/groupdel/11_groupdel_invalid_option/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupdel/11_groupdel_invalid_option/config/etc/group create mode 100644 tests/tests/grouptools/groupdel/11_groupdel_invalid_option/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupdel/11_groupdel_invalid_option/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupdel/11_groupdel_invalid_option/config/etc/passwd create mode 100644 tests/tests/grouptools/groupdel/11_groupdel_invalid_option/config/etc/shadow create mode 100644 tests/tests/grouptools/groupdel/11_groupdel_invalid_option/data/groupdel.err create mode 100755 tests/tests/grouptools/groupdel/11_groupdel_invalid_option/groupdel.test create mode 100644 tests/tests/grouptools/groupmems/01_groupmems_root_add_user/config.txt create mode 100644 tests/tests/grouptools/groupmems/01_groupmems_root_add_user/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/01_groupmems_root_add_user/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/01_groupmems_root_add_user/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/01_groupmems_root_add_user/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmems/01_groupmems_root_add_user/data/group create mode 100644 tests/tests/grouptools/groupmems/01_groupmems_root_add_user/data/gshadow create mode 100755 tests/tests/grouptools/groupmems/01_groupmems_root_add_user/groupmems.test create mode 100644 tests/tests/grouptools/groupmems/02_groupmems_root_del_user/config.txt create mode 100644 tests/tests/grouptools/groupmems/02_groupmems_root_del_user/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/02_groupmems_root_del_user/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/02_groupmems_root_del_user/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/02_groupmems_root_del_user/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmems/02_groupmems_root_del_user/data/group create mode 100644 tests/tests/grouptools/groupmems/02_groupmems_root_del_user/data/gshadow create mode 100755 tests/tests/grouptools/groupmems/02_groupmems_root_del_user/groupmems.test create mode 100644 tests/tests/grouptools/groupmems/03_groupmems_root_del_user_admin/config.txt create mode 100644 tests/tests/grouptools/groupmems/03_groupmems_root_del_user_admin/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/03_groupmems_root_del_user_admin/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/03_groupmems_root_del_user_admin/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/03_groupmems_root_del_user_admin/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmems/03_groupmems_root_del_user_admin/data/group create mode 100644 tests/tests/grouptools/groupmems/03_groupmems_root_del_user_admin/data/gshadow create mode 100755 tests/tests/grouptools/groupmems/03_groupmems_root_del_user_admin/groupmems.test create mode 100644 tests/tests/grouptools/groupmems/04_groupmems_root_del_user_admin_and_user/config.txt create mode 100644 tests/tests/grouptools/groupmems/04_groupmems_root_del_user_admin_and_user/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/04_groupmems_root_del_user_admin_and_user/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/04_groupmems_root_del_user_admin_and_user/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/04_groupmems_root_del_user_admin_and_user/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmems/04_groupmems_root_del_user_admin_and_user/data/group create mode 100644 tests/tests/grouptools/groupmems/04_groupmems_root_del_user_admin_and_user/data/gshadow create mode 100755 tests/tests/grouptools/groupmems/04_groupmems_root_del_user_admin_and_user/groupmems.test create mode 100644 tests/tests/grouptools/groupmems/05_groupmems_root_add_user_with_other_users/config.txt create mode 100644 tests/tests/grouptools/groupmems/05_groupmems_root_add_user_with_other_users/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/05_groupmems_root_add_user_with_other_users/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/05_groupmems_root_add_user_with_other_users/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/05_groupmems_root_add_user_with_other_users/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmems/05_groupmems_root_add_user_with_other_users/data/group create mode 100644 tests/tests/grouptools/groupmems/05_groupmems_root_add_user_with_other_users/data/gshadow create mode 100755 tests/tests/grouptools/groupmems/05_groupmems_root_add_user_with_other_users/groupmems.test create mode 100644 tests/tests/grouptools/groupmems/06_groupmems_root_add_user_with_other_users_admin/config.txt create mode 100644 tests/tests/grouptools/groupmems/06_groupmems_root_add_user_with_other_users_admin/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/06_groupmems_root_add_user_with_other_users_admin/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/06_groupmems_root_add_user_with_other_users_admin/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/06_groupmems_root_add_user_with_other_users_admin/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmems/06_groupmems_root_add_user_with_other_users_admin/data/group create mode 100644 tests/tests/grouptools/groupmems/06_groupmems_root_add_user_with_other_users_admin/data/gshadow create mode 100755 tests/tests/grouptools/groupmems/06_groupmems_root_add_user_with_other_users_admin/groupmems.test create mode 100644 tests/tests/grouptools/groupmems/07_groupmems_root_del_user_with_other_users/config.txt create mode 100644 tests/tests/grouptools/groupmems/07_groupmems_root_del_user_with_other_users/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/07_groupmems_root_del_user_with_other_users/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/07_groupmems_root_del_user_with_other_users/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/07_groupmems_root_del_user_with_other_users/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmems/07_groupmems_root_del_user_with_other_users/data/group create mode 100644 tests/tests/grouptools/groupmems/07_groupmems_root_del_user_with_other_users/data/gshadow create mode 100755 tests/tests/grouptools/groupmems/07_groupmems_root_del_user_with_other_users/groupmems.test create mode 100644 tests/tests/grouptools/groupmems/08_groupmems_root_del_user_with_other_users_admin/config.txt create mode 100644 tests/tests/grouptools/groupmems/08_groupmems_root_del_user_with_other_users_admin/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/08_groupmems_root_del_user_with_other_users_admin/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/08_groupmems_root_del_user_with_other_users_admin/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/08_groupmems_root_del_user_with_other_users_admin/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmems/08_groupmems_root_del_user_with_other_users_admin/data/group create mode 100644 tests/tests/grouptools/groupmems/08_groupmems_root_del_user_with_other_users_admin/data/gshadow create mode 100755 tests/tests/grouptools/groupmems/08_groupmems_root_del_user_with_other_users_admin/groupmems.test create mode 100644 tests/tests/grouptools/groupmems/09_groupmems_root_purge_user/config.txt create mode 100644 tests/tests/grouptools/groupmems/09_groupmems_root_purge_user/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/09_groupmems_root_purge_user/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/09_groupmems_root_purge_user/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/09_groupmems_root_purge_user/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmems/09_groupmems_root_purge_user/data/group create mode 100644 tests/tests/grouptools/groupmems/09_groupmems_root_purge_user/data/gshadow create mode 100755 tests/tests/grouptools/groupmems/09_groupmems_root_purge_user/groupmems.test create mode 100644 tests/tests/grouptools/groupmems/10_groupmems_root_purge_user_with_other_users/config.txt create mode 100644 tests/tests/grouptools/groupmems/10_groupmems_root_purge_user_with_other_users/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/10_groupmems_root_purge_user_with_other_users/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/10_groupmems_root_purge_user_with_other_users/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/10_groupmems_root_purge_user_with_other_users/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmems/10_groupmems_root_purge_user_with_other_users/data/group create mode 100644 tests/tests/grouptools/groupmems/10_groupmems_root_purge_user_with_other_users/data/gshadow create mode 100755 tests/tests/grouptools/groupmems/10_groupmems_root_purge_user_with_other_users/groupmems.test create mode 100644 tests/tests/grouptools/groupmems/11_groupmems_root_purge_user_with_other_users_admin/config.txt create mode 100644 tests/tests/grouptools/groupmems/11_groupmems_root_purge_user_with_other_users_admin/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/11_groupmems_root_purge_user_with_other_users_admin/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/11_groupmems_root_purge_user_with_other_users_admin/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/11_groupmems_root_purge_user_with_other_users_admin/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmems/11_groupmems_root_purge_user_with_other_users_admin/data/group create mode 100644 tests/tests/grouptools/groupmems/11_groupmems_root_purge_user_with_other_users_admin/data/gshadow create mode 100755 tests/tests/grouptools/groupmems/11_groupmems_root_purge_user_with_other_users_admin/groupmems.test create mode 100644 tests/tests/grouptools/groupmems/12_groupmems_user_add_user/config.txt create mode 100644 tests/tests/grouptools/groupmems/12_groupmems_user_add_user/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/12_groupmems_user_add_user/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/12_groupmems_user_add_user/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/12_groupmems_user_add_user/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmems/12_groupmems_user_add_user/data/group create mode 100644 tests/tests/grouptools/groupmems/12_groupmems_user_add_user/data/gshadow create mode 100755 tests/tests/grouptools/groupmems/12_groupmems_user_add_user/groupmems.test create mode 100755 tests/tests/grouptools/groupmems/12_groupmems_user_add_user/run_groupmems.exp create mode 100644 tests/tests/grouptools/groupmems/13_groupmems_user_del_user/config.txt create mode 100644 tests/tests/grouptools/groupmems/13_groupmems_user_del_user/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/13_groupmems_user_del_user/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/13_groupmems_user_del_user/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/13_groupmems_user_del_user/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmems/13_groupmems_user_del_user/data/group create mode 100644 tests/tests/grouptools/groupmems/13_groupmems_user_del_user/data/gshadow create mode 100755 tests/tests/grouptools/groupmems/13_groupmems_user_del_user/groupmems.test create mode 100755 tests/tests/grouptools/groupmems/13_groupmems_user_del_user/run_groupmems.exp create mode 100644 tests/tests/grouptools/groupmems/14_groupmems_user_del_user_admin/config.txt create mode 100644 tests/tests/grouptools/groupmems/14_groupmems_user_del_user_admin/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/14_groupmems_user_del_user_admin/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/14_groupmems_user_del_user_admin/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/14_groupmems_user_del_user_admin/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmems/14_groupmems_user_del_user_admin/data/group create mode 100644 tests/tests/grouptools/groupmems/14_groupmems_user_del_user_admin/data/gshadow create mode 100755 tests/tests/grouptools/groupmems/14_groupmems_user_del_user_admin/groupmems.test create mode 100755 tests/tests/grouptools/groupmems/14_groupmems_user_del_user_admin/run_groupmems.exp create mode 100644 tests/tests/grouptools/groupmems/15_groupmems_user_del_user_admin_and_user/config.txt create mode 100644 tests/tests/grouptools/groupmems/15_groupmems_user_del_user_admin_and_user/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/15_groupmems_user_del_user_admin_and_user/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/15_groupmems_user_del_user_admin_and_user/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/15_groupmems_user_del_user_admin_and_user/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmems/15_groupmems_user_del_user_admin_and_user/data/group create mode 100644 tests/tests/grouptools/groupmems/15_groupmems_user_del_user_admin_and_user/data/gshadow create mode 100755 tests/tests/grouptools/groupmems/15_groupmems_user_del_user_admin_and_user/groupmems.test create mode 100755 tests/tests/grouptools/groupmems/15_groupmems_user_del_user_admin_and_user/run_groupmems.exp create mode 100644 tests/tests/grouptools/groupmems/16_groupmems_user_add_user_with_other_users/config.txt create mode 100644 tests/tests/grouptools/groupmems/16_groupmems_user_add_user_with_other_users/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/16_groupmems_user_add_user_with_other_users/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/16_groupmems_user_add_user_with_other_users/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/16_groupmems_user_add_user_with_other_users/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmems/16_groupmems_user_add_user_with_other_users/data/group create mode 100644 tests/tests/grouptools/groupmems/16_groupmems_user_add_user_with_other_users/data/gshadow create mode 100755 tests/tests/grouptools/groupmems/16_groupmems_user_add_user_with_other_users/groupmems.test create mode 100755 tests/tests/grouptools/groupmems/16_groupmems_user_add_user_with_other_users/run_groupmems.exp create mode 100644 tests/tests/grouptools/groupmems/17_groupmems_user_add_user_with_other_users_admin/config.txt create mode 100644 tests/tests/grouptools/groupmems/17_groupmems_user_add_user_with_other_users_admin/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/17_groupmems_user_add_user_with_other_users_admin/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/17_groupmems_user_add_user_with_other_users_admin/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/17_groupmems_user_add_user_with_other_users_admin/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmems/17_groupmems_user_add_user_with_other_users_admin/data/group create mode 100644 tests/tests/grouptools/groupmems/17_groupmems_user_add_user_with_other_users_admin/data/gshadow create mode 100755 tests/tests/grouptools/groupmems/17_groupmems_user_add_user_with_other_users_admin/groupmems.test create mode 100755 tests/tests/grouptools/groupmems/17_groupmems_user_add_user_with_other_users_admin/run_groupmems.exp create mode 100644 tests/tests/grouptools/groupmems/18_groupmems_user_del_user_with_other_users/config.txt create mode 100644 tests/tests/grouptools/groupmems/18_groupmems_user_del_user_with_other_users/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/18_groupmems_user_del_user_with_other_users/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/18_groupmems_user_del_user_with_other_users/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/18_groupmems_user_del_user_with_other_users/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmems/18_groupmems_user_del_user_with_other_users/data/group create mode 100644 tests/tests/grouptools/groupmems/18_groupmems_user_del_user_with_other_users/data/gshadow create mode 100755 tests/tests/grouptools/groupmems/18_groupmems_user_del_user_with_other_users/groupmems.test create mode 100755 tests/tests/grouptools/groupmems/18_groupmems_user_del_user_with_other_users/run_groupmems.exp create mode 100644 tests/tests/grouptools/groupmems/19_groupmems_user_del_user_with_other_users_admin/config.txt create mode 100644 tests/tests/grouptools/groupmems/19_groupmems_user_del_user_with_other_users_admin/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/19_groupmems_user_del_user_with_other_users_admin/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/19_groupmems_user_del_user_with_other_users_admin/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/19_groupmems_user_del_user_with_other_users_admin/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmems/19_groupmems_user_del_user_with_other_users_admin/data/group create mode 100644 tests/tests/grouptools/groupmems/19_groupmems_user_del_user_with_other_users_admin/data/gshadow create mode 100755 tests/tests/grouptools/groupmems/19_groupmems_user_del_user_with_other_users_admin/groupmems.test create mode 100755 tests/tests/grouptools/groupmems/19_groupmems_user_del_user_with_other_users_admin/run_groupmems.exp create mode 100644 tests/tests/grouptools/groupmems/20_groupmems_user_purge_user/config.txt create mode 100644 tests/tests/grouptools/groupmems/20_groupmems_user_purge_user/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/20_groupmems_user_purge_user/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/20_groupmems_user_purge_user/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/20_groupmems_user_purge_user/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmems/20_groupmems_user_purge_user/data/group create mode 100644 tests/tests/grouptools/groupmems/20_groupmems_user_purge_user/data/gshadow create mode 100755 tests/tests/grouptools/groupmems/20_groupmems_user_purge_user/groupmems.test create mode 100755 tests/tests/grouptools/groupmems/20_groupmems_user_purge_user/run_groupmems.exp create mode 100644 tests/tests/grouptools/groupmems/21_groupmems_user_purge_user_with_other_users/config.txt create mode 100644 tests/tests/grouptools/groupmems/21_groupmems_user_purge_user_with_other_users/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/21_groupmems_user_purge_user_with_other_users/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/21_groupmems_user_purge_user_with_other_users/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/21_groupmems_user_purge_user_with_other_users/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmems/21_groupmems_user_purge_user_with_other_users/data/group create mode 100644 tests/tests/grouptools/groupmems/21_groupmems_user_purge_user_with_other_users/data/gshadow create mode 100755 tests/tests/grouptools/groupmems/21_groupmems_user_purge_user_with_other_users/groupmems.test create mode 100755 tests/tests/grouptools/groupmems/21_groupmems_user_purge_user_with_other_users/run_groupmems.exp create mode 100644 tests/tests/grouptools/groupmems/22_groupmems_user_purge_user_with_other_users_admin/config.txt create mode 100644 tests/tests/grouptools/groupmems/22_groupmems_user_purge_user_with_other_users_admin/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/22_groupmems_user_purge_user_with_other_users_admin/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/22_groupmems_user_purge_user_with_other_users_admin/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/22_groupmems_user_purge_user_with_other_users_admin/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmems/22_groupmems_user_purge_user_with_other_users_admin/data/group create mode 100644 tests/tests/grouptools/groupmems/22_groupmems_user_purge_user_with_other_users_admin/data/gshadow create mode 100755 tests/tests/grouptools/groupmems/22_groupmems_user_purge_user_with_other_users_admin/groupmems.test create mode 100755 tests/tests/grouptools/groupmems/22_groupmems_user_purge_user_with_other_users_admin/run_groupmems.exp create mode 100644 tests/tests/grouptools/groupmems/23_groupmems_user_add_user-not_in_groups/config.txt create mode 100644 tests/tests/grouptools/groupmems/23_groupmems_user_add_user-not_in_groups/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/23_groupmems_user_add_user-not_in_groups/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/23_groupmems_user_add_user-not_in_groups/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/23_groupmems_user_add_user-not_in_groups/config/etc/shadow create mode 100755 tests/tests/grouptools/groupmems/23_groupmems_user_add_user-not_in_groups/groupmems.test create mode 100755 tests/tests/grouptools/groupmems/23_groupmems_user_add_user-not_in_groups/run_groupmems.exp create mode 100644 tests/tests/grouptools/groupmems/24_groupmems_user_add_user-not_primary_group/config.txt create mode 100644 tests/tests/grouptools/groupmems/24_groupmems_user_add_user-not_primary_group/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/24_groupmems_user_add_user-not_primary_group/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/24_groupmems_user_add_user-not_primary_group/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/24_groupmems_user_add_user-not_primary_group/config/etc/shadow create mode 100755 tests/tests/grouptools/groupmems/24_groupmems_user_add_user-not_primary_group/groupmems.test create mode 100755 tests/tests/grouptools/groupmems/24_groupmems_user_add_user-not_primary_group/run_groupmems.exp create mode 100644 tests/tests/grouptools/groupmems/25_groupmems_user_add_user-not_user_group/config.txt create mode 100644 tests/tests/grouptools/groupmems/25_groupmems_user_add_user-not_user_group/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/25_groupmems_user_add_user-not_user_group/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/25_groupmems_user_add_user-not_user_group/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/25_groupmems_user_add_user-not_user_group/config/etc/shadow create mode 100755 tests/tests/grouptools/groupmems/25_groupmems_user_add_user-not_user_group/groupmems.test create mode 100755 tests/tests/grouptools/groupmems/25_groupmems_user_add_user-not_user_group/run_groupmems.exp create mode 100644 tests/tests/grouptools/groupmems/26_groupmems_user_add_user-already_member/config.txt create mode 100644 tests/tests/grouptools/groupmems/26_groupmems_user_add_user-already_member/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/26_groupmems_user_add_user-already_member/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/26_groupmems_user_add_user-already_member/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/26_groupmems_user_add_user-already_member/config/etc/shadow create mode 100755 tests/tests/grouptools/groupmems/26_groupmems_user_add_user-already_member/groupmems.test create mode 100755 tests/tests/grouptools/groupmems/26_groupmems_user_add_user-already_member/run_groupmems.exp create mode 100644 tests/tests/grouptools/groupmems/27_groupmems_user_add_user-already_member_in_group/config.txt create mode 100644 tests/tests/grouptools/groupmems/27_groupmems_user_add_user-already_member_in_group/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/27_groupmems_user_add_user-already_member_in_group/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/27_groupmems_user_add_user-already_member_in_group/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/27_groupmems_user_add_user-already_member_in_group/config/etc/shadow create mode 100755 tests/tests/grouptools/groupmems/27_groupmems_user_add_user-already_member_in_group/groupmems.test create mode 100755 tests/tests/grouptools/groupmems/27_groupmems_user_add_user-already_member_in_group/run_groupmems.exp create mode 100644 tests/tests/grouptools/groupmems/28_groupmems_user_add_user-already_member_in_gshadow/config.txt create mode 100644 tests/tests/grouptools/groupmems/28_groupmems_user_add_user-already_member_in_gshadow/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/28_groupmems_user_add_user-already_member_in_gshadow/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/28_groupmems_user_add_user-already_member_in_gshadow/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/28_groupmems_user_add_user-already_member_in_gshadow/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmems/28_groupmems_user_add_user-already_member_in_gshadow/data/group create mode 100755 tests/tests/grouptools/groupmems/28_groupmems_user_add_user-already_member_in_gshadow/groupmems.test create mode 100755 tests/tests/grouptools/groupmems/28_groupmems_user_add_user-already_member_in_gshadow/run_groupmems.exp create mode 100644 tests/tests/grouptools/groupmems/29_groupmems_user_add_user-user_does_not_exist/config.txt create mode 100644 tests/tests/grouptools/groupmems/29_groupmems_user_add_user-user_does_not_exist/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/29_groupmems_user_add_user-user_does_not_exist/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/29_groupmems_user_add_user-user_does_not_exist/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/29_groupmems_user_add_user-user_does_not_exist/config/etc/shadow create mode 100755 tests/tests/grouptools/groupmems/29_groupmems_user_add_user-user_does_not_exist/groupmems.test create mode 100755 tests/tests/grouptools/groupmems/29_groupmems_user_add_user-user_does_not_exist/run_groupmems.exp create mode 100644 tests/tests/grouptools/groupmems/30_groupmems_user_add_user-no_gshadow_group/config.txt create mode 100644 tests/tests/grouptools/groupmems/30_groupmems_user_add_user-no_gshadow_group/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/30_groupmems_user_add_user-no_gshadow_group/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/30_groupmems_user_add_user-no_gshadow_group/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/30_groupmems_user_add_user-no_gshadow_group/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmems/30_groupmems_user_add_user-no_gshadow_group/data/group create mode 100644 tests/tests/grouptools/groupmems/30_groupmems_user_add_user-no_gshadow_group/data/gshadow create mode 100755 tests/tests/grouptools/groupmems/30_groupmems_user_add_user-no_gshadow_group/groupmems.test create mode 100755 tests/tests/grouptools/groupmems/30_groupmems_user_add_user-no_gshadow_group/run_groupmems.exp create mode 100644 tests/tests/grouptools/groupmems/31_groupmems_user_add_user-no_gshadow_file/config.txt create mode 100644 tests/tests/grouptools/groupmems/31_groupmems_user_add_user-no_gshadow_file/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/31_groupmems_user_add_user-no_gshadow_file/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/31_groupmems_user_add_user-no_gshadow_file/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/31_groupmems_user_add_user-no_gshadow_file/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmems/31_groupmems_user_add_user-no_gshadow_file/data/group create mode 100755 tests/tests/grouptools/groupmems/31_groupmems_user_add_user-no_gshadow_file/groupmems.test create mode 100755 tests/tests/grouptools/groupmems/31_groupmems_user_add_user-no_gshadow_file/run_groupmems.exp create mode 100644 tests/tests/grouptools/groupmems/32_groupmems_user_del_user-not_member/config.txt create mode 100644 tests/tests/grouptools/groupmems/32_groupmems_user_del_user-not_member/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/32_groupmems_user_del_user-not_member/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/32_groupmems_user_del_user-not_member/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/32_groupmems_user_del_user-not_member/config/etc/shadow create mode 100755 tests/tests/grouptools/groupmems/32_groupmems_user_del_user-not_member/groupmems.test create mode 100755 tests/tests/grouptools/groupmems/32_groupmems_user_del_user-not_member/run_groupmems.exp create mode 100644 tests/tests/grouptools/groupmems/33_groupmems_user_del_user-not_member_in_gshadow/config.txt create mode 100644 tests/tests/grouptools/groupmems/33_groupmems_user_del_user-not_member_in_gshadow/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/33_groupmems_user_del_user-not_member_in_gshadow/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/33_groupmems_user_del_user-not_member_in_gshadow/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/33_groupmems_user_del_user-not_member_in_gshadow/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmems/33_groupmems_user_del_user-not_member_in_gshadow/data/group create mode 100755 tests/tests/grouptools/groupmems/33_groupmems_user_del_user-not_member_in_gshadow/groupmems.test create mode 100755 tests/tests/grouptools/groupmems/33_groupmems_user_del_user-not_member_in_gshadow/run_groupmems.exp create mode 100644 tests/tests/grouptools/groupmems/34_groupmems_user_del_user-user_does_not_exist/config.txt create mode 100644 tests/tests/grouptools/groupmems/34_groupmems_user_del_user-user_does_not_exist/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/34_groupmems_user_del_user-user_does_not_exist/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/34_groupmems_user_del_user-user_does_not_exist/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/34_groupmems_user_del_user-user_does_not_exist/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmems/34_groupmems_user_del_user-user_does_not_exist/data/group create mode 100644 tests/tests/grouptools/groupmems/34_groupmems_user_del_user-user_does_not_exist/data/gshadow create mode 100755 tests/tests/grouptools/groupmems/34_groupmems_user_del_user-user_does_not_exist/groupmems.test create mode 100755 tests/tests/grouptools/groupmems/34_groupmems_user_del_user-user_does_not_exist/run_groupmems.exp create mode 100644 tests/tests/grouptools/groupmems/35_groupmems_user_del_user-no_gshadow_group/config.txt create mode 100644 tests/tests/grouptools/groupmems/35_groupmems_user_del_user-no_gshadow_group/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/35_groupmems_user_del_user-no_gshadow_group/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/35_groupmems_user_del_user-no_gshadow_group/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/35_groupmems_user_del_user-no_gshadow_group/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmems/35_groupmems_user_del_user-no_gshadow_group/data/group create mode 100644 tests/tests/grouptools/groupmems/35_groupmems_user_del_user-no_gshadow_group/data/gshadow create mode 100755 tests/tests/grouptools/groupmems/35_groupmems_user_del_user-no_gshadow_group/groupmems.test create mode 100755 tests/tests/grouptools/groupmems/35_groupmems_user_del_user-no_gshadow_group/run_groupmems.exp create mode 100644 tests/tests/grouptools/groupmems/36_groupmems_user_del_user-no_gshadow_file/config.txt create mode 100644 tests/tests/grouptools/groupmems/36_groupmems_user_del_user-no_gshadow_file/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/36_groupmems_user_del_user-no_gshadow_file/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/36_groupmems_user_del_user-no_gshadow_file/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/36_groupmems_user_del_user-no_gshadow_file/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmems/36_groupmems_user_del_user-no_gshadow_file/data/group create mode 100755 tests/tests/grouptools/groupmems/36_groupmems_user_del_user-no_gshadow_file/groupmems.test create mode 100755 tests/tests/grouptools/groupmems/36_groupmems_user_del_user-no_gshadow_file/run_groupmems.exp create mode 100644 tests/tests/grouptools/groupmems/37_groupmems_user_purge_user-empty_group/config.txt create mode 100644 tests/tests/grouptools/groupmems/37_groupmems_user_purge_user-empty_group/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/37_groupmems_user_purge_user-empty_group/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/37_groupmems_user_purge_user-empty_group/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/37_groupmems_user_purge_user-empty_group/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmems/37_groupmems_user_purge_user-empty_group/data/gshadow create mode 100755 tests/tests/grouptools/groupmems/37_groupmems_user_purge_user-empty_group/groupmems.test create mode 100755 tests/tests/grouptools/groupmems/37_groupmems_user_purge_user-empty_group/run_groupmems.exp create mode 100644 tests/tests/grouptools/groupmems/38_groupmems_user_purge_user-no_gshadow_group/config.txt create mode 100644 tests/tests/grouptools/groupmems/38_groupmems_user_purge_user-no_gshadow_group/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/38_groupmems_user_purge_user-no_gshadow_group/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/38_groupmems_user_purge_user-no_gshadow_group/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/38_groupmems_user_purge_user-no_gshadow_group/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmems/38_groupmems_user_purge_user-no_gshadow_group/data/group create mode 100644 tests/tests/grouptools/groupmems/38_groupmems_user_purge_user-no_gshadow_group/data/gshadow create mode 100755 tests/tests/grouptools/groupmems/38_groupmems_user_purge_user-no_gshadow_group/groupmems.test create mode 100755 tests/tests/grouptools/groupmems/38_groupmems_user_purge_user-no_gshadow_group/run_groupmems.exp create mode 100644 tests/tests/grouptools/groupmems/39_groupmems_user_purge_user-no_gshadow_file/config.txt create mode 100644 tests/tests/grouptools/groupmems/39_groupmems_user_purge_user-no_gshadow_file/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/39_groupmems_user_purge_user-no_gshadow_file/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/39_groupmems_user_purge_user-no_gshadow_file/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/39_groupmems_user_purge_user-no_gshadow_file/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmems/39_groupmems_user_purge_user-no_gshadow_file/data/group create mode 100755 tests/tests/grouptools/groupmems/39_groupmems_user_purge_user-no_gshadow_file/groupmems.test create mode 100755 tests/tests/grouptools/groupmems/39_groupmems_user_purge_user-no_gshadow_file/run_groupmems.exp create mode 100644 tests/tests/grouptools/groupmems/40_groupmems_user_del_user-not_primary_group/config.txt create mode 100644 tests/tests/grouptools/groupmems/40_groupmems_user_del_user-not_primary_group/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/40_groupmems_user_del_user-not_primary_group/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/40_groupmems_user_del_user-not_primary_group/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/40_groupmems_user_del_user-not_primary_group/config/etc/shadow create mode 100755 tests/tests/grouptools/groupmems/40_groupmems_user_del_user-not_primary_group/groupmems.test create mode 100755 tests/tests/grouptools/groupmems/40_groupmems_user_del_user-not_primary_group/run_groupmems.exp create mode 100644 tests/tests/grouptools/groupmems/41_groupmems_user_purge_user-not_primary_group/config.txt create mode 100644 tests/tests/grouptools/groupmems/41_groupmems_user_purge_user-not_primary_group/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/41_groupmems_user_purge_user-not_primary_group/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/41_groupmems_user_purge_user-not_primary_group/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/41_groupmems_user_purge_user-not_primary_group/config/etc/shadow create mode 100755 tests/tests/grouptools/groupmems/41_groupmems_user_purge_user-not_primary_group/groupmems.test create mode 100755 tests/tests/grouptools/groupmems/41_groupmems_user_purge_user-not_primary_group/run_groupmems.exp create mode 100644 tests/tests/grouptools/groupmems/42_groupmems_user_list_users/config.txt create mode 100644 tests/tests/grouptools/groupmems/42_groupmems_user_list_users/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/42_groupmems_user_list_users/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/42_groupmems_user_list_users/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/42_groupmems_user_list_users/config/etc/shadow create mode 100755 tests/tests/grouptools/groupmems/42_groupmems_user_list_users/groupmems.test create mode 100755 tests/tests/grouptools/groupmems/42_groupmems_user_list_users/run_groupmems.exp create mode 100644 tests/tests/grouptools/groupmems/43_groupmems_user_list_users-gshadow_ignored/config.txt create mode 100644 tests/tests/grouptools/groupmems/43_groupmems_user_list_users-gshadow_ignored/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/43_groupmems_user_list_users-gshadow_ignored/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/43_groupmems_user_list_users-gshadow_ignored/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/43_groupmems_user_list_users-gshadow_ignored/config/etc/shadow create mode 100755 tests/tests/grouptools/groupmems/43_groupmems_user_list_users-gshadow_ignored/groupmems.test create mode 100755 tests/tests/grouptools/groupmems/43_groupmems_user_list_users-gshadow_ignored/run_groupmems.exp create mode 100644 tests/tests/grouptools/groupmems/44_groupmems_user_list_users-another_group/config.txt create mode 100644 tests/tests/grouptools/groupmems/44_groupmems_user_list_users-another_group/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/44_groupmems_user_list_users-another_group/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/44_groupmems_user_list_users-another_group/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/44_groupmems_user_list_users-another_group/config/etc/shadow create mode 100755 tests/tests/grouptools/groupmems/44_groupmems_user_list_users-another_group/groupmems.test create mode 100755 tests/tests/grouptools/groupmems/44_groupmems_user_list_users-another_group/run_groupmems.exp create mode 100644 tests/tests/grouptools/groupmems/45_groupmems_user_list_users-group_locked/config.txt create mode 100644 tests/tests/grouptools/groupmems/45_groupmems_user_list_users-group_locked/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/45_groupmems_user_list_users-group_locked/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/45_groupmems_user_list_users-group_locked/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/45_groupmems_user_list_users-group_locked/config/etc/shadow create mode 100755 tests/tests/grouptools/groupmems/45_groupmems_user_list_users-group_locked/groupmems.test create mode 100755 tests/tests/grouptools/groupmems/45_groupmems_user_list_users-group_locked/run_groupmems.exp create mode 100644 tests/tests/grouptools/groupmems/46_groupmems_user_list_users-gshadow_locked/config.txt create mode 100644 tests/tests/grouptools/groupmems/46_groupmems_user_list_users-gshadow_locked/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/46_groupmems_user_list_users-gshadow_locked/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/46_groupmems_user_list_users-gshadow_locked/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/46_groupmems_user_list_users-gshadow_locked/config/etc/shadow create mode 100755 tests/tests/grouptools/groupmems/46_groupmems_user_list_users-gshadow_locked/groupmems.test create mode 100755 tests/tests/grouptools/groupmems/46_groupmems_user_list_users-gshadow_locked/run_groupmems.exp create mode 100644 tests/tests/grouptools/groupmems/47_groupmems_user_add_user-group_locked/config.txt create mode 100644 tests/tests/grouptools/groupmems/47_groupmems_user_add_user-group_locked/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/47_groupmems_user_add_user-group_locked/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/47_groupmems_user_add_user-group_locked/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/47_groupmems_user_add_user-group_locked/config/etc/shadow create mode 100755 tests/tests/grouptools/groupmems/47_groupmems_user_add_user-group_locked/groupmems.test create mode 100755 tests/tests/grouptools/groupmems/47_groupmems_user_add_user-group_locked/run_groupmems.exp create mode 100644 tests/tests/grouptools/groupmems/48_groupmems_user_add_user-gshadow_locked/config.txt create mode 100644 tests/tests/grouptools/groupmems/48_groupmems_user_add_user-gshadow_locked/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/48_groupmems_user_add_user-gshadow_locked/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/48_groupmems_user_add_user-gshadow_locked/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/48_groupmems_user_add_user-gshadow_locked/config/etc/shadow create mode 100755 tests/tests/grouptools/groupmems/48_groupmems_user_add_user-gshadow_locked/groupmems.test create mode 100755 tests/tests/grouptools/groupmems/48_groupmems_user_add_user-gshadow_locked/run_groupmems.exp create mode 100644 tests/tests/grouptools/groupmems/49_groupmems_user_del_user-group_locked/config.txt create mode 100644 tests/tests/grouptools/groupmems/49_groupmems_user_del_user-group_locked/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/49_groupmems_user_del_user-group_locked/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/49_groupmems_user_del_user-group_locked/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/49_groupmems_user_del_user-group_locked/config/etc/shadow create mode 100755 tests/tests/grouptools/groupmems/49_groupmems_user_del_user-group_locked/groupmems.test create mode 100755 tests/tests/grouptools/groupmems/49_groupmems_user_del_user-group_locked/run_groupmems.exp create mode 100644 tests/tests/grouptools/groupmems/50_groupmems_user_del_user-gshadow_locked/config.txt create mode 100644 tests/tests/grouptools/groupmems/50_groupmems_user_del_user-gshadow_locked/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/50_groupmems_user_del_user-gshadow_locked/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/50_groupmems_user_del_user-gshadow_locked/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/50_groupmems_user_del_user-gshadow_locked/config/etc/shadow create mode 100755 tests/tests/grouptools/groupmems/50_groupmems_user_del_user-gshadow_locked/groupmems.test create mode 100755 tests/tests/grouptools/groupmems/50_groupmems_user_del_user-gshadow_locked/run_groupmems.exp create mode 100644 tests/tests/grouptools/groupmems/51_groupmems_user_purge_user-group_locked/config.txt create mode 100644 tests/tests/grouptools/groupmems/51_groupmems_user_purge_user-group_locked/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/51_groupmems_user_purge_user-group_locked/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/51_groupmems_user_purge_user-group_locked/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/51_groupmems_user_purge_user-group_locked/config/etc/shadow create mode 100755 tests/tests/grouptools/groupmems/51_groupmems_user_purge_user-group_locked/groupmems.test create mode 100755 tests/tests/grouptools/groupmems/51_groupmems_user_purge_user-group_locked/run_groupmems.exp create mode 100644 tests/tests/grouptools/groupmems/52_groupmems_user_purge_user-gshadow_locked/config.txt create mode 100644 tests/tests/grouptools/groupmems/52_groupmems_user_purge_user-gshadow_locked/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/52_groupmems_user_purge_user-gshadow_locked/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/52_groupmems_user_purge_user-gshadow_locked/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/52_groupmems_user_purge_user-gshadow_locked/config/etc/shadow create mode 100755 tests/tests/grouptools/groupmems/52_groupmems_user_purge_user-gshadow_locked/groupmems.test create mode 100755 tests/tests/grouptools/groupmems/52_groupmems_user_purge_user-gshadow_locked/run_groupmems.exp create mode 100644 tests/tests/grouptools/groupmems/53_groupmems_usage/config.txt create mode 100644 tests/tests/grouptools/groupmems/53_groupmems_usage/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/53_groupmems_usage/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/53_groupmems_usage/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/53_groupmems_usage/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmems/53_groupmems_usage/data/usage.out create mode 100755 tests/tests/grouptools/groupmems/53_groupmems_usage/groupmems.test create mode 100644 tests/tests/grouptools/groupmems/54_groupmems_usage_invalid_option/config.txt create mode 100644 tests/tests/grouptools/groupmems/54_groupmems_usage_invalid_option/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/54_groupmems_usage_invalid_option/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/54_groupmems_usage_invalid_option/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupmems/54_groupmems_usage_invalid_option/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/54_groupmems_usage_invalid_option/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmems/54_groupmems_usage_invalid_option/data/groupmems.err create mode 100755 tests/tests/grouptools/groupmems/54_groupmems_usage_invalid_option/groupmems.test create mode 100644 tests/tests/grouptools/groupmems/55_groupmems_usage-a-d/config.txt create mode 100644 tests/tests/grouptools/groupmems/55_groupmems_usage-a-d/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/55_groupmems_usage-a-d/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/55_groupmems_usage-a-d/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupmems/55_groupmems_usage-a-d/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/55_groupmems_usage-a-d/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmems/55_groupmems_usage-a-d/data/groupmems.err create mode 100755 tests/tests/grouptools/groupmems/55_groupmems_usage-a-d/groupmems.test create mode 100644 tests/tests/grouptools/groupmems/56_groupmems_usage_extra_arg/config.txt create mode 100644 tests/tests/grouptools/groupmems/56_groupmems_usage_extra_arg/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/56_groupmems_usage_extra_arg/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/56_groupmems_usage_extra_arg/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupmems/56_groupmems_usage_extra_arg/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/56_groupmems_usage_extra_arg/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmems/56_groupmems_usage_extra_arg/data/groupmems.err create mode 100755 tests/tests/grouptools/groupmems/56_groupmems_usage_extra_arg/groupmems.test create mode 100644 tests/tests/grouptools/groupmems/57_groupmems_authentication/config.txt create mode 100644 tests/tests/grouptools/groupmems/57_groupmems_authentication/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/57_groupmems_authentication/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/57_groupmems_authentication/config/etc/pam.d/common-account create mode 100644 tests/tests/grouptools/groupmems/57_groupmems_authentication/config/etc/pam.d/common-auth create mode 100644 tests/tests/grouptools/groupmems/57_groupmems_authentication/config/etc/pam.d/groupmems create mode 100644 tests/tests/grouptools/groupmems/57_groupmems_authentication/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/57_groupmems_authentication/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmems/57_groupmems_authentication/data/group create mode 100644 tests/tests/grouptools/groupmems/57_groupmems_authentication/data/gshadow create mode 100755 tests/tests/grouptools/groupmems/57_groupmems_authentication/groupmems.test create mode 100755 tests/tests/grouptools/groupmems/57_groupmems_authentication/run_groupmems.exp create mode 100644 tests/tests/grouptools/groupmems/58_groupmems_authentication_failure1/config.txt create mode 100644 tests/tests/grouptools/groupmems/58_groupmems_authentication_failure1/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/58_groupmems_authentication_failure1/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/58_groupmems_authentication_failure1/config/etc/pam.d/common-account create mode 100644 tests/tests/grouptools/groupmems/58_groupmems_authentication_failure1/config/etc/pam.d/common-auth create mode 100644 tests/tests/grouptools/groupmems/58_groupmems_authentication_failure1/config/etc/pam.d/groupmems create mode 100644 tests/tests/grouptools/groupmems/58_groupmems_authentication_failure1/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/58_groupmems_authentication_failure1/config/etc/shadow create mode 100755 tests/tests/grouptools/groupmems/58_groupmems_authentication_failure1/groupmems.test create mode 100755 tests/tests/grouptools/groupmems/58_groupmems_authentication_failure1/run_groupmems.exp create mode 100644 tests/tests/grouptools/groupmems/59_groupmems_authentication_failure2/config.txt create mode 100644 tests/tests/grouptools/groupmems/59_groupmems_authentication_failure2/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/59_groupmems_authentication_failure2/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/59_groupmems_authentication_failure2/config/etc/pam.d/common-account create mode 100644 tests/tests/grouptools/groupmems/59_groupmems_authentication_failure2/config/etc/pam.d/common-auth create mode 100644 tests/tests/grouptools/groupmems/59_groupmems_authentication_failure2/config/etc/pam.d/groupmems create mode 100644 tests/tests/grouptools/groupmems/59_groupmems_authentication_failure2/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/59_groupmems_authentication_failure2/config/etc/shadow create mode 100755 tests/tests/grouptools/groupmems/59_groupmems_authentication_failure2/groupmems.test create mode 100755 tests/tests/grouptools/groupmems/59_groupmems_authentication_failure2/run_groupmems.exp create mode 100644 tests/tests/grouptools/groupmems/60_groupmems_authentication_failure3/config.txt create mode 100644 tests/tests/grouptools/groupmems/60_groupmems_authentication_failure3/config/etc/group create mode 100644 tests/tests/grouptools/groupmems/60_groupmems_authentication_failure3/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmems/60_groupmems_authentication_failure3/config/etc/pam.d/groupmems create mode 100644 tests/tests/grouptools/groupmems/60_groupmems_authentication_failure3/config/etc/pam.d/other create mode 100644 tests/tests/grouptools/groupmems/60_groupmems_authentication_failure3/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmems/60_groupmems_authentication_failure3/config/etc/shadow create mode 100755 tests/tests/grouptools/groupmems/60_groupmems_authentication_failure3/groupmems.test create mode 100755 tests/tests/grouptools/groupmems/60_groupmems_authentication_failure3/run_groupmems.exp create mode 100644 tests/tests/grouptools/groupmod/01_groupmod_change_gid/config.txt create mode 100644 tests/tests/grouptools/groupmod/01_groupmod_change_gid/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupmod/01_groupmod_change_gid/config/etc/group create mode 100644 tests/tests/grouptools/groupmod/01_groupmod_change_gid/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmod/01_groupmod_change_gid/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupmod/01_groupmod_change_gid/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmod/01_groupmod_change_gid/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmod/01_groupmod_change_gid/data/group create mode 100755 tests/tests/grouptools/groupmod/01_groupmod_change_gid/groupmod.test create mode 100644 tests/tests/grouptools/groupmod/02_groupmod_change_gid_change_primary_group/config.txt create mode 100644 tests/tests/grouptools/groupmod/02_groupmod_change_gid_change_primary_group/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupmod/02_groupmod_change_gid_change_primary_group/config/etc/group create mode 100644 tests/tests/grouptools/groupmod/02_groupmod_change_gid_change_primary_group/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmod/02_groupmod_change_gid_change_primary_group/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupmod/02_groupmod_change_gid_change_primary_group/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmod/02_groupmod_change_gid_change_primary_group/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmod/02_groupmod_change_gid_change_primary_group/data/group create mode 100644 tests/tests/grouptools/groupmod/02_groupmod_change_gid_change_primary_group/data/passwd create mode 100755 tests/tests/grouptools/groupmod/02_groupmod_change_gid_change_primary_group/groupmod.test create mode 100644 tests/tests/grouptools/groupmod/03_groupmod_change_gid_no_gshadow_group/config.txt create mode 100644 tests/tests/grouptools/groupmod/03_groupmod_change_gid_no_gshadow_group/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupmod/03_groupmod_change_gid_no_gshadow_group/config/etc/group create mode 100644 tests/tests/grouptools/groupmod/03_groupmod_change_gid_no_gshadow_group/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmod/03_groupmod_change_gid_no_gshadow_group/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupmod/03_groupmod_change_gid_no_gshadow_group/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmod/03_groupmod_change_gid_no_gshadow_group/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmod/03_groupmod_change_gid_no_gshadow_group/data/group create mode 100755 tests/tests/grouptools/groupmod/03_groupmod_change_gid_no_gshadow_group/groupmod.test create mode 100644 tests/tests/grouptools/groupmod/04_groupmod_change_gid_no_gshadow_file/config.txt create mode 100644 tests/tests/grouptools/groupmod/04_groupmod_change_gid_no_gshadow_file/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupmod/04_groupmod_change_gid_no_gshadow_file/config/etc/group create mode 100644 tests/tests/grouptools/groupmod/04_groupmod_change_gid_no_gshadow_file/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmod/04_groupmod_change_gid_no_gshadow_file/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupmod/04_groupmod_change_gid_no_gshadow_file/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmod/04_groupmod_change_gid_no_gshadow_file/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmod/04_groupmod_change_gid_no_gshadow_file/data/group create mode 100755 tests/tests/grouptools/groupmod/04_groupmod_change_gid_no_gshadow_file/groupmod.test create mode 100644 tests/tests/grouptools/groupmod/05_groupmod_change_gid_-o_override_used_GID/config.txt create mode 100644 tests/tests/grouptools/groupmod/05_groupmod_change_gid_-o_override_used_GID/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupmod/05_groupmod_change_gid_-o_override_used_GID/config/etc/group create mode 100644 tests/tests/grouptools/groupmod/05_groupmod_change_gid_-o_override_used_GID/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmod/05_groupmod_change_gid_-o_override_used_GID/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupmod/05_groupmod_change_gid_-o_override_used_GID/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmod/05_groupmod_change_gid_-o_override_used_GID/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmod/05_groupmod_change_gid_-o_override_used_GID/data/group create mode 100755 tests/tests/grouptools/groupmod/05_groupmod_change_gid_-o_override_used_GID/groupmod.test create mode 100644 tests/tests/grouptools/groupmod/06_groupmod_change_group_name/config.txt create mode 100644 tests/tests/grouptools/groupmod/06_groupmod_change_group_name/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupmod/06_groupmod_change_group_name/config/etc/group create mode 100644 tests/tests/grouptools/groupmod/06_groupmod_change_group_name/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmod/06_groupmod_change_group_name/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupmod/06_groupmod_change_group_name/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmod/06_groupmod_change_group_name/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmod/06_groupmod_change_group_name/data/group create mode 100644 tests/tests/grouptools/groupmod/06_groupmod_change_group_name/data/gshadow create mode 100755 tests/tests/grouptools/groupmod/06_groupmod_change_group_name/groupmod.test create mode 100644 tests/tests/grouptools/groupmod/07_groupmod_change_group_name_no_gshadow_group/config.txt create mode 100644 tests/tests/grouptools/groupmod/07_groupmod_change_group_name_no_gshadow_group/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupmod/07_groupmod_change_group_name_no_gshadow_group/config/etc/group create mode 100644 tests/tests/grouptools/groupmod/07_groupmod_change_group_name_no_gshadow_group/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmod/07_groupmod_change_group_name_no_gshadow_group/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupmod/07_groupmod_change_group_name_no_gshadow_group/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmod/07_groupmod_change_group_name_no_gshadow_group/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmod/07_groupmod_change_group_name_no_gshadow_group/data/group create mode 100755 tests/tests/grouptools/groupmod/07_groupmod_change_group_name_no_gshadow_group/groupmod.test create mode 100644 tests/tests/grouptools/groupmod/08_groupmod_change_group_name_no_gshadow_file/config.txt create mode 100644 tests/tests/grouptools/groupmod/08_groupmod_change_group_name_no_gshadow_file/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupmod/08_groupmod_change_group_name_no_gshadow_file/config/etc/group create mode 100644 tests/tests/grouptools/groupmod/08_groupmod_change_group_name_no_gshadow_file/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmod/08_groupmod_change_group_name_no_gshadow_file/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupmod/08_groupmod_change_group_name_no_gshadow_file/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmod/08_groupmod_change_group_name_no_gshadow_file/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmod/08_groupmod_change_group_name_no_gshadow_file/data/group create mode 100755 tests/tests/grouptools/groupmod/08_groupmod_change_group_name_no_gshadow_file/groupmod.test create mode 100644 tests/tests/grouptools/groupmod/09_groupmod_set_password/config.txt create mode 100644 tests/tests/grouptools/groupmod/09_groupmod_set_password/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupmod/09_groupmod_set_password/config/etc/group create mode 100644 tests/tests/grouptools/groupmod/09_groupmod_set_password/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmod/09_groupmod_set_password/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupmod/09_groupmod_set_password/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmod/09_groupmod_set_password/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmod/09_groupmod_set_password/data/gshadow create mode 100755 tests/tests/grouptools/groupmod/09_groupmod_set_password/groupmod.test create mode 100644 tests/tests/grouptools/groupmod/10_groupmod_set_password_no_gshadow_group/config.txt create mode 100644 tests/tests/grouptools/groupmod/10_groupmod_set_password_no_gshadow_group/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupmod/10_groupmod_set_password_no_gshadow_group/config/etc/group create mode 100644 tests/tests/grouptools/groupmod/10_groupmod_set_password_no_gshadow_group/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmod/10_groupmod_set_password_no_gshadow_group/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupmod/10_groupmod_set_password_no_gshadow_group/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmod/10_groupmod_set_password_no_gshadow_group/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmod/10_groupmod_set_password_no_gshadow_group/data/gshadow create mode 100755 tests/tests/grouptools/groupmod/10_groupmod_set_password_no_gshadow_group/groupmod.test create mode 100644 tests/tests/grouptools/groupmod/11_groupmod_set_password_no_gshadow_file/config.txt create mode 100644 tests/tests/grouptools/groupmod/11_groupmod_set_password_no_gshadow_file/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupmod/11_groupmod_set_password_no_gshadow_file/config/etc/group create mode 100644 tests/tests/grouptools/groupmod/11_groupmod_set_password_no_gshadow_file/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmod/11_groupmod_set_password_no_gshadow_file/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupmod/11_groupmod_set_password_no_gshadow_file/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmod/11_groupmod_set_password_no_gshadow_file/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmod/11_groupmod_set_password_no_gshadow_file/data/group create mode 100755 tests/tests/grouptools/groupmod/11_groupmod_set_password_no_gshadow_file/groupmod.test create mode 100644 tests/tests/grouptools/groupmod/12_groupmod_change_gid_error_unknown_group/config.txt create mode 100644 tests/tests/grouptools/groupmod/12_groupmod_change_gid_error_unknown_group/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupmod/12_groupmod_change_gid_error_unknown_group/config/etc/group create mode 100644 tests/tests/grouptools/groupmod/12_groupmod_change_gid_error_unknown_group/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmod/12_groupmod_change_gid_error_unknown_group/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupmod/12_groupmod_change_gid_error_unknown_group/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmod/12_groupmod_change_gid_error_unknown_group/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmod/12_groupmod_change_gid_error_unknown_group/data/groupmod.err create mode 100755 tests/tests/grouptools/groupmod/12_groupmod_change_gid_error_unknown_group/groupmod.test create mode 100644 tests/tests/grouptools/groupmod/13_groupmod_change_gid_error_used_GID/config.txt create mode 100644 tests/tests/grouptools/groupmod/13_groupmod_change_gid_error_used_GID/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupmod/13_groupmod_change_gid_error_used_GID/config/etc/group create mode 100644 tests/tests/grouptools/groupmod/13_groupmod_change_gid_error_used_GID/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmod/13_groupmod_change_gid_error_used_GID/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupmod/13_groupmod_change_gid_error_used_GID/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmod/13_groupmod_change_gid_error_used_GID/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmod/13_groupmod_change_gid_error_used_GID/data/groupmod.err create mode 100755 tests/tests/grouptools/groupmod/13_groupmod_change_gid_error_used_GID/groupmod.test create mode 100644 tests/tests/grouptools/groupmod/14_groupmod_change_group_name_error_used_name/config.txt create mode 100644 tests/tests/grouptools/groupmod/14_groupmod_change_group_name_error_used_name/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupmod/14_groupmod_change_group_name_error_used_name/config/etc/group create mode 100644 tests/tests/grouptools/groupmod/14_groupmod_change_group_name_error_used_name/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmod/14_groupmod_change_group_name_error_used_name/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupmod/14_groupmod_change_group_name_error_used_name/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmod/14_groupmod_change_group_name_error_used_name/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmod/14_groupmod_change_group_name_error_used_name/data/groupmod.err create mode 100755 tests/tests/grouptools/groupmod/14_groupmod_change_group_name_error_used_name/groupmod.test create mode 100644 tests/tests/grouptools/groupmod/15_groupmod_change_group_name_error_invalid_name/config.txt create mode 100644 tests/tests/grouptools/groupmod/15_groupmod_change_group_name_error_invalid_name/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupmod/15_groupmod_change_group_name_error_invalid_name/config/etc/group create mode 100644 tests/tests/grouptools/groupmod/15_groupmod_change_group_name_error_invalid_name/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmod/15_groupmod_change_group_name_error_invalid_name/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupmod/15_groupmod_change_group_name_error_invalid_name/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmod/15_groupmod_change_group_name_error_invalid_name/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmod/15_groupmod_change_group_name_error_invalid_name/data/groupmod.err create mode 100755 tests/tests/grouptools/groupmod/15_groupmod_change_group_name_error_invalid_name/groupmod.test create mode 100644 tests/tests/grouptools/groupmod/16_groupmod_change_group_name_no_changes/config.txt create mode 100644 tests/tests/grouptools/groupmod/16_groupmod_change_group_name_no_changes/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupmod/16_groupmod_change_group_name_no_changes/config/etc/group create mode 100644 tests/tests/grouptools/groupmod/16_groupmod_change_group_name_no_changes/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmod/16_groupmod_change_group_name_no_changes/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupmod/16_groupmod_change_group_name_no_changes/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmod/16_groupmod_change_group_name_no_changes/config/etc/shadow create mode 100755 tests/tests/grouptools/groupmod/16_groupmod_change_group_name_no_changes/groupmod.test create mode 100644 tests/tests/grouptools/groupmod/17_groupmod_change_gid_error_locked_group/config.txt create mode 100644 tests/tests/grouptools/groupmod/17_groupmod_change_gid_error_locked_group/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupmod/17_groupmod_change_gid_error_locked_group/config/etc/group create mode 100644 tests/tests/grouptools/groupmod/17_groupmod_change_gid_error_locked_group/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmod/17_groupmod_change_gid_error_locked_group/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupmod/17_groupmod_change_gid_error_locked_group/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmod/17_groupmod_change_gid_error_locked_group/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmod/17_groupmod_change_gid_error_locked_group/data/groupmod.err create mode 100755 tests/tests/grouptools/groupmod/17_groupmod_change_gid_error_locked_group/groupmod.test create mode 100644 tests/tests/grouptools/groupmod/18_groupmod_change_gid_no_error_locked_gshadow/config.txt create mode 100644 tests/tests/grouptools/groupmod/18_groupmod_change_gid_no_error_locked_gshadow/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupmod/18_groupmod_change_gid_no_error_locked_gshadow/config/etc/group create mode 100644 tests/tests/grouptools/groupmod/18_groupmod_change_gid_no_error_locked_gshadow/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmod/18_groupmod_change_gid_no_error_locked_gshadow/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupmod/18_groupmod_change_gid_no_error_locked_gshadow/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmod/18_groupmod_change_gid_no_error_locked_gshadow/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmod/18_groupmod_change_gid_no_error_locked_gshadow/data/group create mode 100755 tests/tests/grouptools/groupmod/18_groupmod_change_gid_no_error_locked_gshadow/groupmod.test create mode 100644 tests/tests/grouptools/groupmod/19_groupmod_change_gid_error_invalid_GID/config.txt create mode 100644 tests/tests/grouptools/groupmod/19_groupmod_change_gid_error_invalid_GID/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupmod/19_groupmod_change_gid_error_invalid_GID/config/etc/group create mode 100644 tests/tests/grouptools/groupmod/19_groupmod_change_gid_error_invalid_GID/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmod/19_groupmod_change_gid_error_invalid_GID/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupmod/19_groupmod_change_gid_error_invalid_GID/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmod/19_groupmod_change_gid_error_invalid_GID/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmod/19_groupmod_change_gid_error_invalid_GID/data/groupmod.err create mode 100755 tests/tests/grouptools/groupmod/19_groupmod_change_gid_error_invalid_GID/groupmod.test create mode 100644 tests/tests/grouptools/groupmod/20_groupmod_change_gid_error_negative_GID/config.txt create mode 100644 tests/tests/grouptools/groupmod/20_groupmod_change_gid_error_negative_GID/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupmod/20_groupmod_change_gid_error_negative_GID/config/etc/group create mode 100644 tests/tests/grouptools/groupmod/20_groupmod_change_gid_error_negative_GID/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmod/20_groupmod_change_gid_error_negative_GID/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupmod/20_groupmod_change_gid_error_negative_GID/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmod/20_groupmod_change_gid_error_negative_GID/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmod/20_groupmod_change_gid_error_negative_GID/data/groupmod.err create mode 100755 tests/tests/grouptools/groupmod/20_groupmod_change_gid_error_negative_GID/groupmod.test create mode 100644 tests/tests/grouptools/groupmod/21_groupmod_change_gid_error_no_group/config.txt create mode 100644 tests/tests/grouptools/groupmod/21_groupmod_change_gid_error_no_group/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupmod/21_groupmod_change_gid_error_no_group/config/etc/group create mode 100644 tests/tests/grouptools/groupmod/21_groupmod_change_gid_error_no_group/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmod/21_groupmod_change_gid_error_no_group/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupmod/21_groupmod_change_gid_error_no_group/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmod/21_groupmod_change_gid_error_no_group/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmod/21_groupmod_change_gid_error_no_group/data/groupmod.err create mode 100755 tests/tests/grouptools/groupmod/21_groupmod_change_gid_error_no_group/groupmod.test create mode 100644 tests/tests/grouptools/groupmod/22_groupmod_change_gid_and_group_name/config/etc/group create mode 100644 tests/tests/grouptools/groupmod/22_groupmod_change_gid_and_group_name/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmod/22_groupmod_change_gid_and_group_name/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupmod/22_groupmod_change_gid_and_group_name/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmod/22_groupmod_change_gid_and_group_name/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmod/22_groupmod_change_gid_and_group_name/data/group create mode 100644 tests/tests/grouptools/groupmod/22_groupmod_change_gid_and_group_name/data/gshadow create mode 100755 tests/tests/grouptools/groupmod/22_groupmod_change_gid_and_group_name/groupmod.test create mode 100644 tests/tests/grouptools/groupmod/23_groupmod_change_gid_and_group_name_and_password/config/etc/group create mode 100644 tests/tests/grouptools/groupmod/23_groupmod_change_gid_and_group_name_and_password/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmod/23_groupmod_change_gid_and_group_name_and_password/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupmod/23_groupmod_change_gid_and_group_name_and_password/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmod/23_groupmod_change_gid_and_group_name_and_password/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmod/23_groupmod_change_gid_and_group_name_and_password/data/group create mode 100644 tests/tests/grouptools/groupmod/23_groupmod_change_gid_and_group_name_and_password/data/gshadow create mode 100644 tests/tests/grouptools/groupmod/23_groupmod_change_gid_and_group_name_and_password/data/passwd create mode 100755 tests/tests/grouptools/groupmod/23_groupmod_change_gid_and_group_name_and_password/groupmod.test create mode 100644 tests/tests/grouptools/groupmod/24_groupmod_change_gid_and_name_error_locked_gshadow/config/etc/group create mode 100644 tests/tests/grouptools/groupmod/24_groupmod_change_gid_and_name_error_locked_gshadow/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmod/24_groupmod_change_gid_and_name_error_locked_gshadow/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupmod/24_groupmod_change_gid_and_name_error_locked_gshadow/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmod/24_groupmod_change_gid_and_name_error_locked_gshadow/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmod/24_groupmod_change_gid_and_name_error_locked_gshadow/data/groupmod.err create mode 100755 tests/tests/grouptools/groupmod/24_groupmod_change_gid_and_name_error_locked_gshadow/groupmod.test create mode 100644 tests/tests/grouptools/groupmod/25_groupmod_change_gid_change_primary_group_error_locked_passwd/config/etc/group create mode 100644 tests/tests/grouptools/groupmod/25_groupmod_change_gid_change_primary_group_error_locked_passwd/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmod/25_groupmod_change_gid_change_primary_group_error_locked_passwd/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupmod/25_groupmod_change_gid_change_primary_group_error_locked_passwd/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmod/25_groupmod_change_gid_change_primary_group_error_locked_passwd/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmod/25_groupmod_change_gid_change_primary_group_error_locked_passwd/data/groupmod.err create mode 100755 tests/tests/grouptools/groupmod/25_groupmod_change_gid_change_primary_group_error_locked_passwd/groupmod.test create mode 100644 tests/tests/grouptools/groupmod/26_groupmod_change_group_name_no_error_locked_passwd/config/etc/group create mode 100644 tests/tests/grouptools/groupmod/26_groupmod_change_group_name_no_error_locked_passwd/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmod/26_groupmod_change_group_name_no_error_locked_passwd/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupmod/26_groupmod_change_group_name_no_error_locked_passwd/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmod/26_groupmod_change_group_name_no_error_locked_passwd/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmod/26_groupmod_change_group_name_no_error_locked_passwd/data/group create mode 100644 tests/tests/grouptools/groupmod/26_groupmod_change_group_name_no_error_locked_passwd/data/gshadow create mode 100755 tests/tests/grouptools/groupmod/26_groupmod_change_group_name_no_error_locked_passwd/groupmod.test create mode 100644 tests/tests/grouptools/groupmod/27_groupmod_change_gid_error_GID_4294967295/config.txt create mode 100644 tests/tests/grouptools/groupmod/27_groupmod_change_gid_error_GID_4294967295/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupmod/27_groupmod_change_gid_error_GID_4294967295/config/etc/group create mode 100644 tests/tests/grouptools/groupmod/27_groupmod_change_gid_error_GID_4294967295/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmod/27_groupmod_change_gid_error_GID_4294967295/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupmod/27_groupmod_change_gid_error_GID_4294967295/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmod/27_groupmod_change_gid_error_GID_4294967295/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmod/27_groupmod_change_gid_error_GID_4294967295/data/groupmod.err create mode 100755 tests/tests/grouptools/groupmod/27_groupmod_change_gid_error_GID_4294967295/groupmod.test create mode 100644 tests/tests/grouptools/groupmod/28_groupmod_usage/config.txt create mode 100644 tests/tests/grouptools/groupmod/28_groupmod_usage/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupmod/28_groupmod_usage/config/etc/group create mode 100644 tests/tests/grouptools/groupmod/28_groupmod_usage/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmod/28_groupmod_usage/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmod/28_groupmod_usage/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmod/28_groupmod_usage/data/usage.out create mode 100755 tests/tests/grouptools/groupmod/28_groupmod_usage/groupmod.test create mode 100644 tests/tests/grouptools/groupmod/29_groupmod_-g_same_gid_new_name/config.txt create mode 100644 tests/tests/grouptools/groupmod/29_groupmod_-g_same_gid_new_name/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupmod/29_groupmod_-g_same_gid_new_name/config/etc/group create mode 100644 tests/tests/grouptools/groupmod/29_groupmod_-g_same_gid_new_name/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmod/29_groupmod_-g_same_gid_new_name/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupmod/29_groupmod_-g_same_gid_new_name/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmod/29_groupmod_-g_same_gid_new_name/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmod/29_groupmod_-g_same_gid_new_name/data/group create mode 100644 tests/tests/grouptools/groupmod/29_groupmod_-g_same_gid_new_name/data/gshadow create mode 100755 tests/tests/grouptools/groupmod/29_groupmod_-g_same_gid_new_name/groupmod.test create mode 100644 tests/tests/grouptools/groupmod/30_groupmod_-g_same_gid_same_name/config.txt create mode 100644 tests/tests/grouptools/groupmod/30_groupmod_-g_same_gid_same_name/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupmod/30_groupmod_-g_same_gid_same_name/config/etc/group create mode 100644 tests/tests/grouptools/groupmod/30_groupmod_-g_same_gid_same_name/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmod/30_groupmod_-g_same_gid_same_name/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupmod/30_groupmod_-g_same_gid_same_name/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmod/30_groupmod_-g_same_gid_same_name/config/etc/shadow create mode 100755 tests/tests/grouptools/groupmod/30_groupmod_-g_same_gid_same_name/groupmod.test create mode 100644 tests/tests/grouptools/groupmod/31_groupmod_-g_same_gid/config.txt create mode 100644 tests/tests/grouptools/groupmod/31_groupmod_-g_same_gid/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupmod/31_groupmod_-g_same_gid/config/etc/group create mode 100644 tests/tests/grouptools/groupmod/31_groupmod_-g_same_gid/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmod/31_groupmod_-g_same_gid/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupmod/31_groupmod_-g_same_gid/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmod/31_groupmod_-g_same_gid/config/etc/shadow create mode 100755 tests/tests/grouptools/groupmod/31_groupmod_-g_same_gid/groupmod.test create mode 100644 tests/tests/grouptools/groupmod/32_groupmod_-o_without_-g/config.txt create mode 100644 tests/tests/grouptools/groupmod/32_groupmod_-o_without_-g/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupmod/32_groupmod_-o_without_-g/config/etc/group create mode 100644 tests/tests/grouptools/groupmod/32_groupmod_-o_without_-g/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmod/32_groupmod_-o_without_-g/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmod/32_groupmod_-o_without_-g/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmod/32_groupmod_-o_without_-g/data/groupmod.err create mode 100755 tests/tests/grouptools/groupmod/32_groupmod_-o_without_-g/groupmod.test create mode 100644 tests/tests/grouptools/groupmod/33_groupmod_set_password_no_gshadow_file_with_group_pwd_x/config.txt create mode 100644 tests/tests/grouptools/groupmod/33_groupmod_set_password_no_gshadow_file_with_group_pwd_x/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupmod/33_groupmod_set_password_no_gshadow_file_with_group_pwd_x/config/etc/group create mode 100644 tests/tests/grouptools/groupmod/33_groupmod_set_password_no_gshadow_file_with_group_pwd_x/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmod/33_groupmod_set_password_no_gshadow_file_with_group_pwd_x/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupmod/33_groupmod_set_password_no_gshadow_file_with_group_pwd_x/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmod/33_groupmod_set_password_no_gshadow_file_with_group_pwd_x/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmod/33_groupmod_set_password_no_gshadow_file_with_group_pwd_x/data/group create mode 100755 tests/tests/grouptools/groupmod/33_groupmod_set_password_no_gshadow_file_with_group_pwd_x/groupmod.test create mode 100644 tests/tests/grouptools/groupmod/34_groupmod_set_password_group_without_shadow_pwd/config.txt create mode 100644 tests/tests/grouptools/groupmod/34_groupmod_set_password_group_without_shadow_pwd/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupmod/34_groupmod_set_password_group_without_shadow_pwd/config/etc/group create mode 100644 tests/tests/grouptools/groupmod/34_groupmod_set_password_group_without_shadow_pwd/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmod/34_groupmod_set_password_group_without_shadow_pwd/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupmod/34_groupmod_set_password_group_without_shadow_pwd/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmod/34_groupmod_set_password_group_without_shadow_pwd/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmod/34_groupmod_set_password_group_without_shadow_pwd/data/group create mode 100644 tests/tests/grouptools/groupmod/34_groupmod_set_password_group_without_shadow_pwd/data/gshadow create mode 100755 tests/tests/grouptools/groupmod/34_groupmod_set_password_group_without_shadow_pwd/groupmod.test create mode 100644 tests/tests/grouptools/groupmod/35_groupmod_set_password_group_without_shadow_pwd_no_gshadow_group/config.txt create mode 100644 tests/tests/grouptools/groupmod/35_groupmod_set_password_group_without_shadow_pwd_no_gshadow_group/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupmod/35_groupmod_set_password_group_without_shadow_pwd_no_gshadow_group/config/etc/group create mode 100644 tests/tests/grouptools/groupmod/35_groupmod_set_password_group_without_shadow_pwd_no_gshadow_group/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmod/35_groupmod_set_password_group_without_shadow_pwd_no_gshadow_group/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupmod/35_groupmod_set_password_group_without_shadow_pwd_no_gshadow_group/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmod/35_groupmod_set_password_group_without_shadow_pwd_no_gshadow_group/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmod/35_groupmod_set_password_group_without_shadow_pwd_no_gshadow_group/data/group create mode 100755 tests/tests/grouptools/groupmod/35_groupmod_set_password_group_without_shadow_pwd_no_gshadow_group/groupmod.test create mode 100644 tests/tests/grouptools/groupmod/36_groupmod_set_password_group_with_shadow_pwd_no_gshadow_group/config.txt create mode 100644 tests/tests/grouptools/groupmod/36_groupmod_set_password_group_with_shadow_pwd_no_gshadow_group/config/etc/default/useradd create mode 100644 tests/tests/grouptools/groupmod/36_groupmod_set_password_group_with_shadow_pwd_no_gshadow_group/config/etc/group create mode 100644 tests/tests/grouptools/groupmod/36_groupmod_set_password_group_with_shadow_pwd_no_gshadow_group/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmod/36_groupmod_set_password_group_with_shadow_pwd_no_gshadow_group/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupmod/36_groupmod_set_password_group_with_shadow_pwd_no_gshadow_group/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmod/36_groupmod_set_password_group_with_shadow_pwd_no_gshadow_group/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmod/36_groupmod_set_password_group_with_shadow_pwd_no_gshadow_group/data/gshadow create mode 100755 tests/tests/grouptools/groupmod/36_groupmod_set_password_group_with_shadow_pwd_no_gshadow_group/groupmod.test create mode 100644 tests/tests/grouptools/groupmod/37_groupmod_invalid_option/config.txt create mode 100644 tests/tests/grouptools/groupmod/37_groupmod_invalid_option/config/etc/group create mode 100644 tests/tests/grouptools/groupmod/37_groupmod_invalid_option/config/etc/gshadow create mode 100644 tests/tests/grouptools/groupmod/37_groupmod_invalid_option/config/etc/login.defs create mode 100644 tests/tests/grouptools/groupmod/37_groupmod_invalid_option/config/etc/passwd create mode 100644 tests/tests/grouptools/groupmod/37_groupmod_invalid_option/config/etc/shadow create mode 100644 tests/tests/grouptools/groupmod/37_groupmod_invalid_option/data/groupmod.err create mode 100755 tests/tests/grouptools/groupmod/37_groupmod_invalid_option/groupmod.test create mode 100644 tests/tests/libsubid/01_list_ranges/config.txt create mode 100644 tests/tests/libsubid/01_list_ranges/config/etc/subgid create mode 100644 tests/tests/libsubid/01_list_ranges/config/etc/subuid create mode 100755 tests/tests/libsubid/01_list_ranges/list_ranges.test create mode 100644 tests/tests/libsubid/02_get_subid_owners/config.txt create mode 100644 tests/tests/libsubid/02_get_subid_owners/config/etc/passwd create mode 100644 tests/tests/libsubid/02_get_subid_owners/config/etc/subgid create mode 100644 tests/tests/libsubid/02_get_subid_owners/config/etc/subuid create mode 100755 tests/tests/libsubid/02_get_subid_owners/get_subid_owners.test create mode 100755 tests/tests/libsubid/03_add_remove/add_remove_subids.test create mode 100644 tests/tests/libsubid/03_add_remove/config.txt create mode 100644 tests/tests/libsubid/03_add_remove/config/etc/passwd create mode 100644 tests/tests/libsubid/03_add_remove/config/etc/subgid create mode 100644 tests/tests/libsubid/03_add_remove/config/etc/subuid create mode 100644 tests/tests/libsubid/04_nss/Makefile create mode 100644 tests/tests/libsubid/04_nss/empty create mode 100644 tests/tests/libsubid/04_nss/libsubid_zzz.c create mode 100644 tests/tests/libsubid/04_nss/nsswitch1.conf create mode 100644 tests/tests/libsubid/04_nss/nsswitch2.conf create mode 100644 tests/tests/libsubid/04_nss/nsswitch3.conf create mode 100755 tests/tests/libsubid/04_nss/subidnss.test create mode 100644 tests/tests/libsubid/04_nss/test_nss.c create mode 100755 tests/tests/libsubid/04_nss/test_range create mode 100644 tests/tests/log/faillog/01_faillog_no_faillog/config.txt create mode 100644 tests/tests/log/faillog/01_faillog_no_faillog/config/etc/group create mode 100644 tests/tests/log/faillog/01_faillog_no_faillog/config/etc/gshadow create mode 100644 tests/tests/log/faillog/01_faillog_no_faillog/config/etc/passwd create mode 100644 tests/tests/log/faillog/01_faillog_no_faillog/config/etc/shadow create mode 100644 tests/tests/log/faillog/01_faillog_no_faillog/data/faillog.err create mode 100755 tests/tests/log/faillog/01_faillog_no_faillog/faillog.test create mode 100644 tests/tests/log/faillog/02_faillog_usage/config.txt create mode 100644 tests/tests/log/faillog/02_faillog_usage/config/etc/group create mode 100644 tests/tests/log/faillog/02_faillog_usage/config/etc/gshadow create mode 100644 tests/tests/log/faillog/02_faillog_usage/config/etc/passwd create mode 100644 tests/tests/log/faillog/02_faillog_usage/config/etc/shadow create mode 100644 tests/tests/log/faillog/02_faillog_usage/data/usage.out create mode 100755 tests/tests/log/faillog/02_faillog_usage/faillog.test create mode 100644 tests/tests/log/faillog/03_faillog_format/config.txt create mode 100644 tests/tests/log/faillog/03_faillog_format/config/etc/group create mode 100644 tests/tests/log/faillog/03_faillog_format/config/etc/gshadow create mode 100644 tests/tests/log/faillog/03_faillog_format/config/etc/pam.d/login create mode 100644 tests/tests/log/faillog/03_faillog_format/config/etc/passwd create mode 100644 tests/tests/log/faillog/03_faillog_format/config/etc/shadow create mode 100644 tests/tests/log/faillog/03_faillog_format/data/faillog.out create mode 100644 tests/tests/log/faillog/03_faillog_format/data/lastlog.out create mode 100755 tests/tests/log/faillog/03_faillog_format/faillog.test create mode 100755 tests/tests/log/faillog/03_faillog_format/login.exp create mode 100644 tests/tests/log/faillog/04_faillog_multiple/config.txt create mode 100644 tests/tests/log/faillog/04_faillog_multiple/config/etc/group create mode 100644 tests/tests/log/faillog/04_faillog_multiple/config/etc/gshadow create mode 100644 tests/tests/log/faillog/04_faillog_multiple/config/etc/pam.d/login create mode 100644 tests/tests/log/faillog/04_faillog_multiple/config/etc/passwd create mode 100644 tests/tests/log/faillog/04_faillog_multiple/config/etc/shadow create mode 100644 tests/tests/log/faillog/04_faillog_multiple/data/faillog.list create mode 100755 tests/tests/log/faillog/04_faillog_multiple/faillog.test create mode 100755 tests/tests/log/faillog/04_faillog_multiple/login.exp create mode 100644 tests/tests/log/faillog/05_faillog-u_ID/config.txt create mode 100644 tests/tests/log/faillog/05_faillog-u_ID/config/etc/group create mode 100644 tests/tests/log/faillog/05_faillog-u_ID/config/etc/gshadow create mode 100644 tests/tests/log/faillog/05_faillog-u_ID/config/etc/passwd create mode 100644 tests/tests/log/faillog/05_faillog-u_ID/config/etc/shadow create mode 100644 tests/tests/log/faillog/05_faillog-u_ID/data/faillog.list create mode 100755 tests/tests/log/faillog/05_faillog-u_ID/faillog.test create mode 100644 tests/tests/log/faillog/06_faillog-u_name/config.txt create mode 100644 tests/tests/log/faillog/06_faillog-u_name/config/etc/group create mode 100644 tests/tests/log/faillog/06_faillog-u_name/config/etc/gshadow create mode 100644 tests/tests/log/faillog/06_faillog-u_name/config/etc/passwd create mode 100644 tests/tests/log/faillog/06_faillog-u_name/config/etc/shadow create mode 100644 tests/tests/log/faillog/06_faillog-u_name/data/faillog.list create mode 100755 tests/tests/log/faillog/06_faillog-u_name/faillog.test create mode 100644 tests/tests/log/faillog/07_faillog-u_ID_invalid/config.txt create mode 100644 tests/tests/log/faillog/07_faillog-u_ID_invalid/config/etc/group create mode 100644 tests/tests/log/faillog/07_faillog-u_ID_invalid/config/etc/gshadow create mode 100644 tests/tests/log/faillog/07_faillog-u_ID_invalid/config/etc/passwd create mode 100644 tests/tests/log/faillog/07_faillog-u_ID_invalid/config/etc/shadow create mode 100644 tests/tests/log/faillog/07_faillog-u_ID_invalid/data/faillog.list create mode 100755 tests/tests/log/faillog/07_faillog-u_ID_invalid/faillog.test create mode 100644 tests/tests/log/faillog/08_faillog-u_name_invalid/config.txt create mode 100644 tests/tests/log/faillog/08_faillog-u_name_invalid/config/etc/group create mode 100644 tests/tests/log/faillog/08_faillog-u_name_invalid/config/etc/gshadow create mode 100644 tests/tests/log/faillog/08_faillog-u_name_invalid/config/etc/passwd create mode 100644 tests/tests/log/faillog/08_faillog-u_name_invalid/config/etc/shadow create mode 100644 tests/tests/log/faillog/08_faillog-u_name_invalid/data/faillog.err create mode 100755 tests/tests/log/faillog/08_faillog-u_name_invalid/faillog.test create mode 100644 tests/tests/log/faillog/09_faillog-u_range/config.txt create mode 100644 tests/tests/log/faillog/09_faillog-u_range/config/etc/group create mode 100644 tests/tests/log/faillog/09_faillog-u_range/config/etc/gshadow create mode 100644 tests/tests/log/faillog/09_faillog-u_range/config/etc/pam.d/login create mode 100644 tests/tests/log/faillog/09_faillog-u_range/config/etc/passwd create mode 100644 tests/tests/log/faillog/09_faillog-u_range/config/etc/shadow create mode 100644 tests/tests/log/faillog/09_faillog-u_range/data/faillog.list create mode 100755 tests/tests/log/faillog/09_faillog-u_range/faillog.test create mode 100755 tests/tests/log/faillog/09_faillog-u_range/login.exp create mode 100644 tests/tests/log/faillog/10_faillog-u_open_range/config.txt create mode 100644 tests/tests/log/faillog/10_faillog-u_open_range/config/etc/group create mode 100644 tests/tests/log/faillog/10_faillog-u_open_range/config/etc/gshadow create mode 100644 tests/tests/log/faillog/10_faillog-u_open_range/config/etc/passwd create mode 100644 tests/tests/log/faillog/10_faillog-u_open_range/config/etc/shadow create mode 100644 tests/tests/log/faillog/10_faillog-u_open_range/data/faillog.list create mode 100755 tests/tests/log/faillog/10_faillog-u_open_range/faillog.test create mode 100644 tests/tests/log/faillog/11_faillog-u_range_open/config.txt create mode 100644 tests/tests/log/faillog/11_faillog-u_range_open/config/etc/group create mode 100644 tests/tests/log/faillog/11_faillog-u_range_open/config/etc/gshadow create mode 100644 tests/tests/log/faillog/11_faillog-u_range_open/config/etc/passwd create mode 100644 tests/tests/log/faillog/11_faillog-u_range_open/config/etc/shadow create mode 100644 tests/tests/log/faillog/11_faillog-u_range_open/data/faillog.list create mode 100755 tests/tests/log/faillog/11_faillog-u_range_open/faillog.test create mode 100644 tests/tests/log/faillog/12_faillog-u_range_invalid1/config.txt create mode 100644 tests/tests/log/faillog/12_faillog-u_range_invalid1/config/etc/group create mode 100644 tests/tests/log/faillog/12_faillog-u_range_invalid1/config/etc/gshadow create mode 100644 tests/tests/log/faillog/12_faillog-u_range_invalid1/config/etc/passwd create mode 100644 tests/tests/log/faillog/12_faillog-u_range_invalid1/config/etc/shadow create mode 100644 tests/tests/log/faillog/12_faillog-u_range_invalid1/data/faillog.err create mode 100755 tests/tests/log/faillog/12_faillog-u_range_invalid1/faillog.test create mode 100644 tests/tests/log/faillog/13_faillog-u_range_invalid2/config.txt create mode 100644 tests/tests/log/faillog/13_faillog-u_range_invalid2/config/etc/group create mode 100644 tests/tests/log/faillog/13_faillog-u_range_invalid2/config/etc/gshadow create mode 100644 tests/tests/log/faillog/13_faillog-u_range_invalid2/config/etc/passwd create mode 100644 tests/tests/log/faillog/13_faillog-u_range_invalid2/config/etc/shadow create mode 100644 tests/tests/log/faillog/13_faillog-u_range_invalid2/data/faillog.err create mode 100755 tests/tests/log/faillog/13_faillog-u_range_invalid2/faillog.test create mode 100644 tests/tests/log/faillog/14_faillog-u_range_invalid3/config.txt create mode 100644 tests/tests/log/faillog/14_faillog-u_range_invalid3/config/etc/group create mode 100644 tests/tests/log/faillog/14_faillog-u_range_invalid3/config/etc/gshadow create mode 100644 tests/tests/log/faillog/14_faillog-u_range_invalid3/config/etc/passwd create mode 100644 tests/tests/log/faillog/14_faillog-u_range_invalid3/config/etc/shadow create mode 100644 tests/tests/log/faillog/14_faillog-u_range_invalid3/data/faillog.err create mode 100755 tests/tests/log/faillog/14_faillog-u_range_invalid3/faillog.test create mode 100644 tests/tests/log/faillog/15_faillog_bad_option/config.txt create mode 100644 tests/tests/log/faillog/15_faillog_bad_option/config/etc/group create mode 100644 tests/tests/log/faillog/15_faillog_bad_option/config/etc/gshadow create mode 100644 tests/tests/log/faillog/15_faillog_bad_option/config/etc/passwd create mode 100644 tests/tests/log/faillog/15_faillog_bad_option/config/etc/shadow create mode 100644 tests/tests/log/faillog/15_faillog_bad_option/data/usage.out create mode 100755 tests/tests/log/faillog/15_faillog_bad_option/faillog.test create mode 100644 tests/tests/log/faillog/16_faillog_extra_arg/config.txt create mode 100644 tests/tests/log/faillog/16_faillog_extra_arg/config/etc/group create mode 100644 tests/tests/log/faillog/16_faillog_extra_arg/config/etc/gshadow create mode 100644 tests/tests/log/faillog/16_faillog_extra_arg/config/etc/passwd create mode 100644 tests/tests/log/faillog/16_faillog_extra_arg/config/etc/shadow create mode 100644 tests/tests/log/faillog/16_faillog_extra_arg/data/usage.out create mode 100755 tests/tests/log/faillog/16_faillog_extra_arg/faillog.test create mode 100644 tests/tests/log/faillog/17_faillog-t/config.txt create mode 100644 tests/tests/log/faillog/17_faillog-t/config/etc/group create mode 100644 tests/tests/log/faillog/17_faillog-t/config/etc/gshadow create mode 100644 tests/tests/log/faillog/17_faillog-t/config/etc/pam.d/login create mode 100644 tests/tests/log/faillog/17_faillog-t/config/etc/passwd create mode 100644 tests/tests/log/faillog/17_faillog-t/config/etc/shadow create mode 100644 tests/tests/log/faillog/17_faillog-t/data/faillog.list create mode 100755 tests/tests/log/faillog/17_faillog-t/faillog.test create mode 100755 tests/tests/log/faillog/17_faillog-t/login.exp create mode 100644 tests/tests/log/faillog/18_faillog-t_invalid/config.txt create mode 100644 tests/tests/log/faillog/18_faillog-t_invalid/config/etc/group create mode 100644 tests/tests/log/faillog/18_faillog-t_invalid/config/etc/gshadow create mode 100644 tests/tests/log/faillog/18_faillog-t_invalid/config/etc/passwd create mode 100644 tests/tests/log/faillog/18_faillog-t_invalid/config/etc/shadow create mode 100644 tests/tests/log/faillog/18_faillog-t_invalid/data/faillog.err create mode 100755 tests/tests/log/faillog/18_faillog-t_invalid/faillog.test create mode 100644 tests/tests/log/faillog/19_faillog_multiple_same_user/config.txt create mode 100644 tests/tests/log/faillog/19_faillog_multiple_same_user/config/etc/group create mode 100644 tests/tests/log/faillog/19_faillog_multiple_same_user/config/etc/gshadow create mode 100644 tests/tests/log/faillog/19_faillog_multiple_same_user/config/etc/pam.d/login create mode 100644 tests/tests/log/faillog/19_faillog_multiple_same_user/config/etc/passwd create mode 100644 tests/tests/log/faillog/19_faillog_multiple_same_user/config/etc/shadow create mode 100644 tests/tests/log/faillog/19_faillog_multiple_same_user/data/faillog.list create mode 100755 tests/tests/log/faillog/19_faillog_multiple_same_user/faillog.test create mode 100755 tests/tests/log/faillog/19_faillog_multiple_same_user/login.exp create mode 100644 tests/tests/log/faillog/20_faillog-r-u/config.txt create mode 100644 tests/tests/log/faillog/20_faillog-r-u/config/etc/group create mode 100644 tests/tests/log/faillog/20_faillog-r-u/config/etc/gshadow create mode 100644 tests/tests/log/faillog/20_faillog-r-u/config/etc/pam.d/login create mode 100644 tests/tests/log/faillog/20_faillog-r-u/config/etc/passwd create mode 100644 tests/tests/log/faillog/20_faillog-r-u/config/etc/shadow create mode 100644 tests/tests/log/faillog/20_faillog-r-u/data/faillog.list create mode 100755 tests/tests/log/faillog/20_faillog-r-u/faillog.test create mode 100755 tests/tests/log/faillog/20_faillog-r-u/login.exp create mode 100644 tests/tests/log/faillog/21_faillog-r-u_range/config.txt create mode 100644 tests/tests/log/faillog/21_faillog-r-u_range/config/etc/group create mode 100644 tests/tests/log/faillog/21_faillog-r-u_range/config/etc/gshadow create mode 100644 tests/tests/log/faillog/21_faillog-r-u_range/config/etc/pam.d/login create mode 100644 tests/tests/log/faillog/21_faillog-r-u_range/config/etc/passwd create mode 100644 tests/tests/log/faillog/21_faillog-r-u_range/config/etc/shadow create mode 100644 tests/tests/log/faillog/21_faillog-r-u_range/data/faillog.list create mode 100755 tests/tests/log/faillog/21_faillog-r-u_range/faillog.test create mode 100755 tests/tests/log/faillog/21_faillog-r-u_range/login.exp create mode 100644 tests/tests/log/faillog/22_faillog_removed_user/config.txt create mode 100644 tests/tests/log/faillog/22_faillog_removed_user/config/etc/group create mode 100644 tests/tests/log/faillog/22_faillog_removed_user/config/etc/gshadow create mode 100644 tests/tests/log/faillog/22_faillog_removed_user/config/etc/pam.d/login create mode 100644 tests/tests/log/faillog/22_faillog_removed_user/config/etc/passwd create mode 100644 tests/tests/log/faillog/22_faillog_removed_user/config/etc/shadow create mode 100644 tests/tests/log/faillog/22_faillog_removed_user/data/faillog.list create mode 100755 tests/tests/log/faillog/22_faillog_removed_user/faillog.test create mode 100755 tests/tests/log/faillog/22_faillog_removed_user/login.exp create mode 100644 tests/tests/log/faillog/23_faillog-a_removed_user/config.txt create mode 100644 tests/tests/log/faillog/23_faillog-a_removed_user/config/etc/group create mode 100644 tests/tests/log/faillog/23_faillog-a_removed_user/config/etc/gshadow create mode 100644 tests/tests/log/faillog/23_faillog-a_removed_user/config/etc/pam.d/login create mode 100644 tests/tests/log/faillog/23_faillog-a_removed_user/config/etc/passwd create mode 100644 tests/tests/log/faillog/23_faillog-a_removed_user/config/etc/shadow create mode 100644 tests/tests/log/faillog/23_faillog-a_removed_user/data/faillog.list create mode 100755 tests/tests/log/faillog/23_faillog-a_removed_user/faillog.test create mode 100755 tests/tests/log/faillog/23_faillog-a_removed_user/login.exp create mode 100644 tests/tests/log/faillog/24_faillog-u_removed_user/config.txt create mode 100644 tests/tests/log/faillog/24_faillog-u_removed_user/config/etc/group create mode 100644 tests/tests/log/faillog/24_faillog-u_removed_user/config/etc/gshadow create mode 100644 tests/tests/log/faillog/24_faillog-u_removed_user/config/etc/pam.d/login create mode 100644 tests/tests/log/faillog/24_faillog-u_removed_user/config/etc/passwd create mode 100644 tests/tests/log/faillog/24_faillog-u_removed_user/config/etc/shadow create mode 100644 tests/tests/log/faillog/24_faillog-u_removed_user/data/faillog.list create mode 100755 tests/tests/log/faillog/24_faillog-u_removed_user/faillog.test create mode 100755 tests/tests/log/faillog/24_faillog-u_removed_user/login.exp create mode 100644 tests/tests/log/faillog/25_faillog-r-u_removed_user/config.txt create mode 100644 tests/tests/log/faillog/25_faillog-r-u_removed_user/config/etc/group create mode 100644 tests/tests/log/faillog/25_faillog-r-u_removed_user/config/etc/gshadow create mode 100644 tests/tests/log/faillog/25_faillog-r-u_removed_user/config/etc/pam.d/login create mode 100644 tests/tests/log/faillog/25_faillog-r-u_removed_user/config/etc/passwd create mode 100644 tests/tests/log/faillog/25_faillog-r-u_removed_user/config/etc/shadow create mode 100644 tests/tests/log/faillog/25_faillog-r-u_removed_user/data/faillog.list create mode 100755 tests/tests/log/faillog/25_faillog-r-u_removed_user/faillog.test create mode 100755 tests/tests/log/faillog/25_faillog-r-u_removed_user/login.exp create mode 100644 tests/tests/log/faillog/26_faillog-r-u_range_removed_user/config.txt create mode 100644 tests/tests/log/faillog/26_faillog-r-u_range_removed_user/config/etc/group create mode 100644 tests/tests/log/faillog/26_faillog-r-u_range_removed_user/config/etc/gshadow create mode 100644 tests/tests/log/faillog/26_faillog-r-u_range_removed_user/config/etc/pam.d/login create mode 100644 tests/tests/log/faillog/26_faillog-r-u_range_removed_user/config/etc/passwd create mode 100644 tests/tests/log/faillog/26_faillog-r-u_range_removed_user/config/etc/shadow create mode 100644 tests/tests/log/faillog/26_faillog-r-u_range_removed_user/data/faillog.list create mode 100755 tests/tests/log/faillog/26_faillog-r-u_range_removed_user/faillog.test create mode 100755 tests/tests/log/faillog/26_faillog-r-u_range_removed_user/login.exp create mode 100644 tests/tests/log/faillog/27_faillog-r-a-u_range_removed_user/config.txt create mode 100644 tests/tests/log/faillog/27_faillog-r-a-u_range_removed_user/config/etc/group create mode 100644 tests/tests/log/faillog/27_faillog-r-a-u_range_removed_user/config/etc/gshadow create mode 100644 tests/tests/log/faillog/27_faillog-r-a-u_range_removed_user/config/etc/pam.d/login create mode 100644 tests/tests/log/faillog/27_faillog-r-a-u_range_removed_user/config/etc/passwd create mode 100644 tests/tests/log/faillog/27_faillog-r-a-u_range_removed_user/config/etc/shadow create mode 100644 tests/tests/log/faillog/27_faillog-r-a-u_range_removed_user/data/faillog.list create mode 100755 tests/tests/log/faillog/27_faillog-r-a-u_range_removed_user/faillog.test create mode 100755 tests/tests/log/faillog/27_faillog-r-a-u_range_removed_user/login.exp create mode 100644 tests/tests/log/faillog/28_faillog-r-a-u_open_range_removed_user/config.txt create mode 100644 tests/tests/log/faillog/28_faillog-r-a-u_open_range_removed_user/config/etc/group create mode 100644 tests/tests/log/faillog/28_faillog-r-a-u_open_range_removed_user/config/etc/gshadow create mode 100644 tests/tests/log/faillog/28_faillog-r-a-u_open_range_removed_user/config/etc/pam.d/login create mode 100644 tests/tests/log/faillog/28_faillog-r-a-u_open_range_removed_user/config/etc/passwd create mode 100644 tests/tests/log/faillog/28_faillog-r-a-u_open_range_removed_user/config/etc/shadow create mode 100644 tests/tests/log/faillog/28_faillog-r-a-u_open_range_removed_user/data/faillog.list create mode 100755 tests/tests/log/faillog/28_faillog-r-a-u_open_range_removed_user/faillog.test create mode 100755 tests/tests/log/faillog/28_faillog-r-a-u_open_range_removed_user/login.exp create mode 100644 tests/tests/log/faillog/29_faillog-r-a-u_range_open_removed_user/config.txt create mode 100644 tests/tests/log/faillog/29_faillog-r-a-u_range_open_removed_user/config/etc/group create mode 100644 tests/tests/log/faillog/29_faillog-r-a-u_range_open_removed_user/config/etc/gshadow create mode 100644 tests/tests/log/faillog/29_faillog-r-a-u_range_open_removed_user/config/etc/pam.d/login create mode 100644 tests/tests/log/faillog/29_faillog-r-a-u_range_open_removed_user/config/etc/passwd create mode 100644 tests/tests/log/faillog/29_faillog-r-a-u_range_open_removed_user/config/etc/shadow create mode 100644 tests/tests/log/faillog/29_faillog-r-a-u_range_open_removed_user/data/faillog.list create mode 100755 tests/tests/log/faillog/29_faillog-r-a-u_range_open_removed_user/faillog.test create mode 100755 tests/tests/log/faillog/29_faillog-r-a-u_range_open_removed_user/login.exp create mode 100644 tests/tests/log/faillog/30_faillog-r/config.txt create mode 100644 tests/tests/log/faillog/30_faillog-r/config/etc/group create mode 100644 tests/tests/log/faillog/30_faillog-r/config/etc/gshadow create mode 100644 tests/tests/log/faillog/30_faillog-r/config/etc/pam.d/login create mode 100644 tests/tests/log/faillog/30_faillog-r/config/etc/passwd create mode 100644 tests/tests/log/faillog/30_faillog-r/config/etc/shadow create mode 100644 tests/tests/log/faillog/30_faillog-r/data/faillog.list create mode 100755 tests/tests/log/faillog/30_faillog-r/faillog.test create mode 100755 tests/tests/log/faillog/30_faillog-r/login.exp create mode 100644 tests/tests/log/faillog/31_faillog-r-u_open_range/config.txt create mode 100644 tests/tests/log/faillog/31_faillog-r-u_open_range/config/etc/group create mode 100644 tests/tests/log/faillog/31_faillog-r-u_open_range/config/etc/gshadow create mode 100644 tests/tests/log/faillog/31_faillog-r-u_open_range/config/etc/pam.d/login create mode 100644 tests/tests/log/faillog/31_faillog-r-u_open_range/config/etc/passwd create mode 100644 tests/tests/log/faillog/31_faillog-r-u_open_range/config/etc/shadow create mode 100644 tests/tests/log/faillog/31_faillog-r-u_open_range/data/faillog.list create mode 100755 tests/tests/log/faillog/31_faillog-r-u_open_range/faillog.test create mode 100755 tests/tests/log/faillog/31_faillog-r-u_open_range/login.exp create mode 100644 tests/tests/log/faillog/32_faillog-l/config.txt create mode 100644 tests/tests/log/faillog/32_faillog-l/config/etc/group create mode 100644 tests/tests/log/faillog/32_faillog-l/config/etc/gshadow create mode 100644 tests/tests/log/faillog/32_faillog-l/config/etc/pam.d/login create mode 100644 tests/tests/log/faillog/32_faillog-l/config/etc/passwd create mode 100644 tests/tests/log/faillog/32_faillog-l/config/etc/shadow create mode 100644 tests/tests/log/faillog/32_faillog-l/data/faillog.list create mode 100755 tests/tests/log/faillog/32_faillog-l/faillog.test create mode 100755 tests/tests/log/faillog/32_faillog-l/login.exp create mode 100644 tests/tests/log/faillog/33_faillog-l-u_user/config.txt create mode 100644 tests/tests/log/faillog/33_faillog-l-u_user/config/etc/group create mode 100644 tests/tests/log/faillog/33_faillog-l-u_user/config/etc/gshadow create mode 100644 tests/tests/log/faillog/33_faillog-l-u_user/config/etc/pam.d/login create mode 100644 tests/tests/log/faillog/33_faillog-l-u_user/config/etc/passwd create mode 100644 tests/tests/log/faillog/33_faillog-l-u_user/config/etc/shadow create mode 100644 tests/tests/log/faillog/33_faillog-l-u_user/data/faillog.list create mode 100755 tests/tests/log/faillog/33_faillog-l-u_user/faillog.test create mode 100755 tests/tests/log/faillog/33_faillog-l-u_user/login.exp create mode 100644 tests/tests/log/faillog/34_faillog-l-u_range/config.txt create mode 100644 tests/tests/log/faillog/34_faillog-l-u_range/config/etc/group create mode 100644 tests/tests/log/faillog/34_faillog-l-u_range/config/etc/gshadow create mode 100644 tests/tests/log/faillog/34_faillog-l-u_range/config/etc/pam.d/login create mode 100644 tests/tests/log/faillog/34_faillog-l-u_range/config/etc/passwd create mode 100644 tests/tests/log/faillog/34_faillog-l-u_range/config/etc/shadow create mode 100644 tests/tests/log/faillog/34_faillog-l-u_range/data/faillog.list create mode 100755 tests/tests/log/faillog/34_faillog-l-u_range/faillog.test create mode 100755 tests/tests/log/faillog/34_faillog-l-u_range/login.exp create mode 100644 tests/tests/log/faillog/35_faillog-l-u_open_range/config.txt create mode 100644 tests/tests/log/faillog/35_faillog-l-u_open_range/config/etc/group create mode 100644 tests/tests/log/faillog/35_faillog-l-u_open_range/config/etc/gshadow create mode 100644 tests/tests/log/faillog/35_faillog-l-u_open_range/config/etc/pam.d/login create mode 100644 tests/tests/log/faillog/35_faillog-l-u_open_range/config/etc/passwd create mode 100644 tests/tests/log/faillog/35_faillog-l-u_open_range/config/etc/shadow create mode 100644 tests/tests/log/faillog/35_faillog-l-u_open_range/data/faillog.list create mode 100755 tests/tests/log/faillog/35_faillog-l-u_open_range/faillog.test create mode 100755 tests/tests/log/faillog/35_faillog-l-u_open_range/login.exp create mode 100644 tests/tests/log/faillog/36_faillog-l-u_range_open/config.txt create mode 100644 tests/tests/log/faillog/36_faillog-l-u_range_open/config/etc/group create mode 100644 tests/tests/log/faillog/36_faillog-l-u_range_open/config/etc/gshadow create mode 100644 tests/tests/log/faillog/36_faillog-l-u_range_open/config/etc/pam.d/login create mode 100644 tests/tests/log/faillog/36_faillog-l-u_range_open/config/etc/passwd create mode 100644 tests/tests/log/faillog/36_faillog-l-u_range_open/config/etc/shadow create mode 100644 tests/tests/log/faillog/36_faillog-l-u_range_open/data/faillog.list create mode 100755 tests/tests/log/faillog/36_faillog-l-u_range_open/faillog.test create mode 100755 tests/tests/log/faillog/36_faillog-l-u_range_open/login.exp create mode 100644 tests/tests/log/faillog/37_faillog-l-a-u_user/config.txt create mode 100644 tests/tests/log/faillog/37_faillog-l-a-u_user/config/etc/group create mode 100644 tests/tests/log/faillog/37_faillog-l-a-u_user/config/etc/gshadow create mode 100644 tests/tests/log/faillog/37_faillog-l-a-u_user/config/etc/pam.d/login create mode 100644 tests/tests/log/faillog/37_faillog-l-a-u_user/config/etc/passwd create mode 100644 tests/tests/log/faillog/37_faillog-l-a-u_user/config/etc/shadow create mode 100644 tests/tests/log/faillog/37_faillog-l-a-u_user/data/faillog.list create mode 100755 tests/tests/log/faillog/37_faillog-l-a-u_user/faillog.test create mode 100755 tests/tests/log/faillog/37_faillog-l-a-u_user/login.exp create mode 100644 tests/tests/log/faillog/38_faillog-l-a-u_range/config.txt create mode 100644 tests/tests/log/faillog/38_faillog-l-a-u_range/config/etc/group create mode 100644 tests/tests/log/faillog/38_faillog-l-a-u_range/config/etc/gshadow create mode 100644 tests/tests/log/faillog/38_faillog-l-a-u_range/config/etc/pam.d/login create mode 100644 tests/tests/log/faillog/38_faillog-l-a-u_range/config/etc/passwd create mode 100644 tests/tests/log/faillog/38_faillog-l-a-u_range/config/etc/shadow create mode 100644 tests/tests/log/faillog/38_faillog-l-a-u_range/data/faillog.list create mode 100755 tests/tests/log/faillog/38_faillog-l-a-u_range/faillog.test create mode 100755 tests/tests/log/faillog/38_faillog-l-a-u_range/login.exp create mode 100644 tests/tests/log/faillog/39_faillog-l-a-u_open_range/config.txt create mode 100644 tests/tests/log/faillog/39_faillog-l-a-u_open_range/config/etc/group create mode 100644 tests/tests/log/faillog/39_faillog-l-a-u_open_range/config/etc/gshadow create mode 100644 tests/tests/log/faillog/39_faillog-l-a-u_open_range/config/etc/pam.d/login create mode 100644 tests/tests/log/faillog/39_faillog-l-a-u_open_range/config/etc/passwd create mode 100644 tests/tests/log/faillog/39_faillog-l-a-u_open_range/config/etc/shadow create mode 100644 tests/tests/log/faillog/39_faillog-l-a-u_open_range/data/faillog.list create mode 100755 tests/tests/log/faillog/39_faillog-l-a-u_open_range/faillog.test create mode 100755 tests/tests/log/faillog/39_faillog-l-a-u_open_range/login.exp create mode 100644 tests/tests/log/faillog/40_faillog-l-a-u_range_open/config.txt create mode 100644 tests/tests/log/faillog/40_faillog-l-a-u_range_open/config/etc/group create mode 100644 tests/tests/log/faillog/40_faillog-l-a-u_range_open/config/etc/gshadow create mode 100644 tests/tests/log/faillog/40_faillog-l-a-u_range_open/config/etc/pam.d/login create mode 100644 tests/tests/log/faillog/40_faillog-l-a-u_range_open/config/etc/passwd create mode 100644 tests/tests/log/faillog/40_faillog-l-a-u_range_open/config/etc/shadow create mode 100644 tests/tests/log/faillog/40_faillog-l-a-u_range_open/data/faillog.list create mode 100755 tests/tests/log/faillog/40_faillog-l-a-u_range_open/faillog.test create mode 100755 tests/tests/log/faillog/40_faillog-l-a-u_range_open/login.exp create mode 100644 tests/tests/log/faillog/41_faillog-l_invalid/config.txt create mode 100644 tests/tests/log/faillog/41_faillog-l_invalid/config/etc/group create mode 100644 tests/tests/log/faillog/41_faillog-l_invalid/config/etc/gshadow create mode 100644 tests/tests/log/faillog/41_faillog-l_invalid/config/etc/passwd create mode 100644 tests/tests/log/faillog/41_faillog-l_invalid/config/etc/shadow create mode 100644 tests/tests/log/faillog/41_faillog-l_invalid/data/faillog.err create mode 100755 tests/tests/log/faillog/41_faillog-l_invalid/faillog.test create mode 100644 tests/tests/log/faillog/42_faillog-m/config.txt create mode 100644 tests/tests/log/faillog/42_faillog-m/config/etc/group create mode 100644 tests/tests/log/faillog/42_faillog-m/config/etc/gshadow create mode 100644 tests/tests/log/faillog/42_faillog-m/config/etc/pam.d/login create mode 100644 tests/tests/log/faillog/42_faillog-m/config/etc/passwd create mode 100644 tests/tests/log/faillog/42_faillog-m/config/etc/shadow create mode 100644 tests/tests/log/faillog/42_faillog-m/data/faillog.list create mode 100755 tests/tests/log/faillog/42_faillog-m/faillog.test create mode 100755 tests/tests/log/faillog/42_faillog-m/login.exp create mode 100644 tests/tests/log/faillog/43_faillog-m-u_user/config.txt create mode 100644 tests/tests/log/faillog/43_faillog-m-u_user/config/etc/group create mode 100644 tests/tests/log/faillog/43_faillog-m-u_user/config/etc/gshadow create mode 100644 tests/tests/log/faillog/43_faillog-m-u_user/config/etc/pam.d/login create mode 100644 tests/tests/log/faillog/43_faillog-m-u_user/config/etc/passwd create mode 100644 tests/tests/log/faillog/43_faillog-m-u_user/config/etc/shadow create mode 100644 tests/tests/log/faillog/43_faillog-m-u_user/data/faillog.list create mode 100755 tests/tests/log/faillog/43_faillog-m-u_user/faillog.test create mode 100755 tests/tests/log/faillog/43_faillog-m-u_user/login.exp create mode 100644 tests/tests/log/faillog/44_faillog-m-u_range/config.txt create mode 100644 tests/tests/log/faillog/44_faillog-m-u_range/config/etc/group create mode 100644 tests/tests/log/faillog/44_faillog-m-u_range/config/etc/gshadow create mode 100644 tests/tests/log/faillog/44_faillog-m-u_range/config/etc/pam.d/login create mode 100644 tests/tests/log/faillog/44_faillog-m-u_range/config/etc/passwd create mode 100644 tests/tests/log/faillog/44_faillog-m-u_range/config/etc/shadow create mode 100644 tests/tests/log/faillog/44_faillog-m-u_range/data/faillog.list create mode 100755 tests/tests/log/faillog/44_faillog-m-u_range/faillog.test create mode 100755 tests/tests/log/faillog/44_faillog-m-u_range/login.exp create mode 100644 tests/tests/log/faillog/45_faillog-m-u_open_range/config.txt create mode 100644 tests/tests/log/faillog/45_faillog-m-u_open_range/config/etc/group create mode 100644 tests/tests/log/faillog/45_faillog-m-u_open_range/config/etc/gshadow create mode 100644 tests/tests/log/faillog/45_faillog-m-u_open_range/config/etc/pam.d/login create mode 100644 tests/tests/log/faillog/45_faillog-m-u_open_range/config/etc/passwd create mode 100644 tests/tests/log/faillog/45_faillog-m-u_open_range/config/etc/shadow create mode 100644 tests/tests/log/faillog/45_faillog-m-u_open_range/data/faillog.list create mode 100755 tests/tests/log/faillog/45_faillog-m-u_open_range/faillog.test create mode 100755 tests/tests/log/faillog/45_faillog-m-u_open_range/login.exp create mode 100644 tests/tests/log/faillog/46_faillog-m-u_range_open/config.txt create mode 100644 tests/tests/log/faillog/46_faillog-m-u_range_open/config/etc/group create mode 100644 tests/tests/log/faillog/46_faillog-m-u_range_open/config/etc/gshadow create mode 100644 tests/tests/log/faillog/46_faillog-m-u_range_open/config/etc/pam.d/login create mode 100644 tests/tests/log/faillog/46_faillog-m-u_range_open/config/etc/passwd create mode 100644 tests/tests/log/faillog/46_faillog-m-u_range_open/config/etc/shadow create mode 100644 tests/tests/log/faillog/46_faillog-m-u_range_open/data/faillog.list create mode 100755 tests/tests/log/faillog/46_faillog-m-u_range_open/faillog.test create mode 100755 tests/tests/log/faillog/46_faillog-m-u_range_open/login.exp create mode 100644 tests/tests/log/faillog/47_faillog-m-a-u_user/config.txt create mode 100644 tests/tests/log/faillog/47_faillog-m-a-u_user/config/etc/group create mode 100644 tests/tests/log/faillog/47_faillog-m-a-u_user/config/etc/gshadow create mode 100644 tests/tests/log/faillog/47_faillog-m-a-u_user/config/etc/pam.d/login create mode 100644 tests/tests/log/faillog/47_faillog-m-a-u_user/config/etc/passwd create mode 100644 tests/tests/log/faillog/47_faillog-m-a-u_user/config/etc/shadow create mode 100644 tests/tests/log/faillog/47_faillog-m-a-u_user/data/faillog.list create mode 100755 tests/tests/log/faillog/47_faillog-m-a-u_user/faillog.test create mode 100755 tests/tests/log/faillog/47_faillog-m-a-u_user/login.exp create mode 100644 tests/tests/log/faillog/48_faillog-m-a-u_range/config.txt create mode 100644 tests/tests/log/faillog/48_faillog-m-a-u_range/config/etc/group create mode 100644 tests/tests/log/faillog/48_faillog-m-a-u_range/config/etc/gshadow create mode 100644 tests/tests/log/faillog/48_faillog-m-a-u_range/config/etc/pam.d/login create mode 100644 tests/tests/log/faillog/48_faillog-m-a-u_range/config/etc/passwd create mode 100644 tests/tests/log/faillog/48_faillog-m-a-u_range/config/etc/shadow create mode 100644 tests/tests/log/faillog/48_faillog-m-a-u_range/data/faillog.list create mode 100755 tests/tests/log/faillog/48_faillog-m-a-u_range/faillog.test create mode 100755 tests/tests/log/faillog/48_faillog-m-a-u_range/login.exp create mode 100644 tests/tests/log/faillog/49_faillog-m-a-u_open_range/config.txt create mode 100644 tests/tests/log/faillog/49_faillog-m-a-u_open_range/config/etc/group create mode 100644 tests/tests/log/faillog/49_faillog-m-a-u_open_range/config/etc/gshadow create mode 100644 tests/tests/log/faillog/49_faillog-m-a-u_open_range/config/etc/pam.d/login create mode 100644 tests/tests/log/faillog/49_faillog-m-a-u_open_range/config/etc/passwd create mode 100644 tests/tests/log/faillog/49_faillog-m-a-u_open_range/config/etc/shadow create mode 100644 tests/tests/log/faillog/49_faillog-m-a-u_open_range/data/faillog.list create mode 100755 tests/tests/log/faillog/49_faillog-m-a-u_open_range/faillog.test create mode 100755 tests/tests/log/faillog/49_faillog-m-a-u_open_range/login.exp create mode 100644 tests/tests/log/faillog/50_faillog-m-a-u_range_open/config.txt create mode 100644 tests/tests/log/faillog/50_faillog-m-a-u_range_open/config/etc/group create mode 100644 tests/tests/log/faillog/50_faillog-m-a-u_range_open/config/etc/gshadow create mode 100644 tests/tests/log/faillog/50_faillog-m-a-u_range_open/config/etc/pam.d/login create mode 100644 tests/tests/log/faillog/50_faillog-m-a-u_range_open/config/etc/passwd create mode 100644 tests/tests/log/faillog/50_faillog-m-a-u_range_open/config/etc/shadow create mode 100644 tests/tests/log/faillog/50_faillog-m-a-u_range_open/data/faillog.list create mode 100755 tests/tests/log/faillog/50_faillog-m-a-u_range_open/faillog.test create mode 100755 tests/tests/log/faillog/50_faillog-m-a-u_range_open/login.exp create mode 100644 tests/tests/log/faillog/51_faillog-m_invalid/config.txt create mode 100644 tests/tests/log/faillog/51_faillog-m_invalid/config/etc/group create mode 100644 tests/tests/log/faillog/51_faillog-m_invalid/config/etc/gshadow create mode 100644 tests/tests/log/faillog/51_faillog-m_invalid/config/etc/passwd create mode 100644 tests/tests/log/faillog/51_faillog-m_invalid/config/etc/shadow create mode 100644 tests/tests/log/faillog/51_faillog-m_invalid/data/faillog.err create mode 100755 tests/tests/log/faillog/51_faillog-m_invalid/faillog.test create mode 100644 tests/tests/log/faillog/52_faillog-t-l_exclusive/config.txt create mode 100644 tests/tests/log/faillog/52_faillog-t-l_exclusive/config/etc/group create mode 100644 tests/tests/log/faillog/52_faillog-t-l_exclusive/config/etc/gshadow create mode 100644 tests/tests/log/faillog/52_faillog-t-l_exclusive/config/etc/passwd create mode 100644 tests/tests/log/faillog/52_faillog-t-l_exclusive/config/etc/shadow create mode 100644 tests/tests/log/faillog/52_faillog-t-l_exclusive/data/usage.out create mode 100755 tests/tests/log/faillog/52_faillog-t-l_exclusive/faillog.test create mode 100644 tests/tests/log/faillog/53_faillog-t-m_exclusive/config.txt create mode 100644 tests/tests/log/faillog/53_faillog-t-m_exclusive/config/etc/group create mode 100644 tests/tests/log/faillog/53_faillog-t-m_exclusive/config/etc/gshadow create mode 100644 tests/tests/log/faillog/53_faillog-t-m_exclusive/config/etc/passwd create mode 100644 tests/tests/log/faillog/53_faillog-t-m_exclusive/config/etc/shadow create mode 100644 tests/tests/log/faillog/53_faillog-t-m_exclusive/data/usage.out create mode 100755 tests/tests/log/faillog/53_faillog-t-m_exclusive/faillog.test create mode 100644 tests/tests/log/faillog/54_faillog-t-r_exclusive/config.txt create mode 100644 tests/tests/log/faillog/54_faillog-t-r_exclusive/config/etc/group create mode 100644 tests/tests/log/faillog/54_faillog-t-r_exclusive/config/etc/gshadow create mode 100644 tests/tests/log/faillog/54_faillog-t-r_exclusive/config/etc/passwd create mode 100644 tests/tests/log/faillog/54_faillog-t-r_exclusive/config/etc/shadow create mode 100644 tests/tests/log/faillog/54_faillog-t-r_exclusive/data/usage.out create mode 100755 tests/tests/log/faillog/54_faillog-t-r_exclusive/faillog.test create mode 100644 tests/tests/log/faillog/55_faillog_no_changes/config.txt create mode 100644 tests/tests/log/faillog/55_faillog_no_changes/config/etc/group create mode 100644 tests/tests/log/faillog/55_faillog_no_changes/config/etc/gshadow create mode 100644 tests/tests/log/faillog/55_faillog_no_changes/config/etc/pam.d/login create mode 100644 tests/tests/log/faillog/55_faillog_no_changes/config/etc/passwd create mode 100644 tests/tests/log/faillog/55_faillog_no_changes/config/etc/shadow create mode 100644 tests/tests/log/faillog/55_faillog_no_changes/data/faillog.stat create mode 100755 tests/tests/log/faillog/55_faillog_no_changes/faillog.test create mode 100755 tests/tests/log/faillog/55_faillog_no_changes/login.exp create mode 100644 tests/tests/log/faillog/56_faillog-l-m_empty_file/config.txt create mode 100644 tests/tests/log/faillog/56_faillog-l-m_empty_file/config/etc/group create mode 100644 tests/tests/log/faillog/56_faillog-l-m_empty_file/config/etc/gshadow create mode 100644 tests/tests/log/faillog/56_faillog-l-m_empty_file/config/etc/pam.d/login create mode 100644 tests/tests/log/faillog/56_faillog-l-m_empty_file/config/etc/passwd create mode 100644 tests/tests/log/faillog/56_faillog-l-m_empty_file/config/etc/shadow create mode 100644 tests/tests/log/faillog/56_faillog-l-m_empty_file/data/faillog.stat create mode 100755 tests/tests/log/faillog/56_faillog-l-m_empty_file/faillog.test create mode 100644 tests/tests/log/faillog/57_faillog-r_empty_file/config.txt create mode 100644 tests/tests/log/faillog/57_faillog-r_empty_file/config/etc/group create mode 100644 tests/tests/log/faillog/57_faillog-r_empty_file/config/etc/gshadow create mode 100644 tests/tests/log/faillog/57_faillog-r_empty_file/config/etc/pam.d/login create mode 100644 tests/tests/log/faillog/57_faillog-r_empty_file/config/etc/passwd create mode 100644 tests/tests/log/faillog/57_faillog-r_empty_file/config/etc/shadow create mode 100644 tests/tests/log/faillog/57_faillog-r_empty_file/data/faillog.stat create mode 100755 tests/tests/log/faillog/57_faillog-r_empty_file/faillog.test create mode 100644 tests/tests/log/faillog/58_faillog-l_no_failcount/config.txt create mode 100644 tests/tests/log/faillog/58_faillog-l_no_failcount/config/etc/group create mode 100644 tests/tests/log/faillog/58_faillog-l_no_failcount/config/etc/gshadow create mode 100644 tests/tests/log/faillog/58_faillog-l_no_failcount/config/etc/pam.d/login create mode 100644 tests/tests/log/faillog/58_faillog-l_no_failcount/config/etc/passwd create mode 100644 tests/tests/log/faillog/58_faillog-l_no_failcount/config/etc/shadow create mode 100644 tests/tests/log/faillog/58_faillog-l_no_failcount/data/faillog.list create mode 100755 tests/tests/log/faillog/58_faillog-l_no_failcount/faillog.test create mode 100755 tests/tests/log/faillog/58_faillog-l_no_failcount/login.exp create mode 100644 tests/tests/log/lastlog/01_lastlog_no_lastlog/config.txt create mode 100644 tests/tests/log/lastlog/01_lastlog_no_lastlog/config/etc/group create mode 100644 tests/tests/log/lastlog/01_lastlog_no_lastlog/config/etc/gshadow create mode 100644 tests/tests/log/lastlog/01_lastlog_no_lastlog/config/etc/passwd create mode 100644 tests/tests/log/lastlog/01_lastlog_no_lastlog/config/etc/shadow create mode 100644 tests/tests/log/lastlog/01_lastlog_no_lastlog/data/lastlog.err create mode 100755 tests/tests/log/lastlog/01_lastlog_no_lastlog/lastlog.test create mode 100644 tests/tests/log/lastlog/02_lastlog_usage/config.txt create mode 100644 tests/tests/log/lastlog/02_lastlog_usage/config/etc/group create mode 100644 tests/tests/log/lastlog/02_lastlog_usage/config/etc/gshadow create mode 100644 tests/tests/log/lastlog/02_lastlog_usage/config/etc/passwd create mode 100644 tests/tests/log/lastlog/02_lastlog_usage/config/etc/shadow create mode 100644 tests/tests/log/lastlog/02_lastlog_usage/data/usage.out create mode 100755 tests/tests/log/lastlog/02_lastlog_usage/lastlog.test create mode 100644 tests/tests/log/lastlog/03_lastlog_format/config.txt create mode 100644 tests/tests/log/lastlog/03_lastlog_format/config/etc/group create mode 100644 tests/tests/log/lastlog/03_lastlog_format/config/etc/gshadow create mode 100644 tests/tests/log/lastlog/03_lastlog_format/config/etc/passwd create mode 100644 tests/tests/log/lastlog/03_lastlog_format/config/etc/shadow create mode 100644 tests/tests/log/lastlog/03_lastlog_format/data/lastlog.out create mode 100755 tests/tests/log/lastlog/03_lastlog_format/lastlog.test create mode 100755 tests/tests/log/lastlog/03_lastlog_format/login.exp create mode 100644 tests/tests/log/lastlog/04_lastlog_multiple/config.txt create mode 100644 tests/tests/log/lastlog/04_lastlog_multiple/config/etc/group create mode 100644 tests/tests/log/lastlog/04_lastlog_multiple/config/etc/gshadow create mode 100644 tests/tests/log/lastlog/04_lastlog_multiple/config/etc/passwd create mode 100644 tests/tests/log/lastlog/04_lastlog_multiple/config/etc/shadow create mode 100644 tests/tests/log/lastlog/04_lastlog_multiple/data/lastlog.list create mode 100755 tests/tests/log/lastlog/04_lastlog_multiple/lastlog.test create mode 100755 tests/tests/log/lastlog/04_lastlog_multiple/login.exp create mode 100644 tests/tests/log/lastlog/05_lastlog-u_ID/config.txt create mode 100644 tests/tests/log/lastlog/05_lastlog-u_ID/config/etc/group create mode 100644 tests/tests/log/lastlog/05_lastlog-u_ID/config/etc/gshadow create mode 100644 tests/tests/log/lastlog/05_lastlog-u_ID/config/etc/passwd create mode 100644 tests/tests/log/lastlog/05_lastlog-u_ID/config/etc/shadow create mode 100644 tests/tests/log/lastlog/05_lastlog-u_ID/data/lastlog.list create mode 100755 tests/tests/log/lastlog/05_lastlog-u_ID/lastlog.test create mode 100644 tests/tests/log/lastlog/06_lastlog-u_name/config.txt create mode 100644 tests/tests/log/lastlog/06_lastlog-u_name/config/etc/group create mode 100644 tests/tests/log/lastlog/06_lastlog-u_name/config/etc/gshadow create mode 100644 tests/tests/log/lastlog/06_lastlog-u_name/config/etc/passwd create mode 100644 tests/tests/log/lastlog/06_lastlog-u_name/config/etc/shadow create mode 100644 tests/tests/log/lastlog/06_lastlog-u_name/data/lastlog.list create mode 100755 tests/tests/log/lastlog/06_lastlog-u_name/lastlog.test create mode 100644 tests/tests/log/lastlog/07_lastlog-u_ID_invalid/config.txt create mode 100644 tests/tests/log/lastlog/07_lastlog-u_ID_invalid/config/etc/group create mode 100644 tests/tests/log/lastlog/07_lastlog-u_ID_invalid/config/etc/gshadow create mode 100644 tests/tests/log/lastlog/07_lastlog-u_ID_invalid/config/etc/passwd create mode 100644 tests/tests/log/lastlog/07_lastlog-u_ID_invalid/config/etc/shadow create mode 100644 tests/tests/log/lastlog/07_lastlog-u_ID_invalid/data/lastlog.list create mode 100755 tests/tests/log/lastlog/07_lastlog-u_ID_invalid/lastlog.test create mode 100644 tests/tests/log/lastlog/08_lastlog-u_name_invalid/config.txt create mode 100644 tests/tests/log/lastlog/08_lastlog-u_name_invalid/config/etc/group create mode 100644 tests/tests/log/lastlog/08_lastlog-u_name_invalid/config/etc/gshadow create mode 100644 tests/tests/log/lastlog/08_lastlog-u_name_invalid/config/etc/passwd create mode 100644 tests/tests/log/lastlog/08_lastlog-u_name_invalid/config/etc/shadow create mode 100644 tests/tests/log/lastlog/08_lastlog-u_name_invalid/data/lastlog.err create mode 100755 tests/tests/log/lastlog/08_lastlog-u_name_invalid/lastlog.test create mode 100644 tests/tests/log/lastlog/09_lastlog-u_range/config.txt create mode 100644 tests/tests/log/lastlog/09_lastlog-u_range/config/etc/group create mode 100644 tests/tests/log/lastlog/09_lastlog-u_range/config/etc/gshadow create mode 100644 tests/tests/log/lastlog/09_lastlog-u_range/config/etc/passwd create mode 100644 tests/tests/log/lastlog/09_lastlog-u_range/config/etc/shadow create mode 100644 tests/tests/log/lastlog/09_lastlog-u_range/data/lastlog.list create mode 100755 tests/tests/log/lastlog/09_lastlog-u_range/lastlog.test create mode 100644 tests/tests/log/lastlog/10_lastlog-u_open_range/config.txt create mode 100644 tests/tests/log/lastlog/10_lastlog-u_open_range/config/etc/group create mode 100644 tests/tests/log/lastlog/10_lastlog-u_open_range/config/etc/gshadow create mode 100644 tests/tests/log/lastlog/10_lastlog-u_open_range/config/etc/passwd create mode 100644 tests/tests/log/lastlog/10_lastlog-u_open_range/config/etc/shadow create mode 100644 tests/tests/log/lastlog/10_lastlog-u_open_range/data/lastlog.list create mode 100755 tests/tests/log/lastlog/10_lastlog-u_open_range/lastlog.test create mode 100644 tests/tests/log/lastlog/11_lastlog-u_range_open/config.txt create mode 100644 tests/tests/log/lastlog/11_lastlog-u_range_open/config/etc/group create mode 100644 tests/tests/log/lastlog/11_lastlog-u_range_open/config/etc/gshadow create mode 100644 tests/tests/log/lastlog/11_lastlog-u_range_open/config/etc/passwd create mode 100644 tests/tests/log/lastlog/11_lastlog-u_range_open/config/etc/shadow create mode 100644 tests/tests/log/lastlog/11_lastlog-u_range_open/data/lastlog.list create mode 100755 tests/tests/log/lastlog/11_lastlog-u_range_open/lastlog.test create mode 100644 tests/tests/log/lastlog/12_lastlog-u_range_invalid1/config.txt create mode 100644 tests/tests/log/lastlog/12_lastlog-u_range_invalid1/config/etc/group create mode 100644 tests/tests/log/lastlog/12_lastlog-u_range_invalid1/config/etc/gshadow create mode 100644 tests/tests/log/lastlog/12_lastlog-u_range_invalid1/config/etc/passwd create mode 100644 tests/tests/log/lastlog/12_lastlog-u_range_invalid1/config/etc/shadow create mode 100644 tests/tests/log/lastlog/12_lastlog-u_range_invalid1/data/lastlog.err create mode 100755 tests/tests/log/lastlog/12_lastlog-u_range_invalid1/lastlog.test create mode 100644 tests/tests/log/lastlog/13_lastlog-u_range_invalid2/config.txt create mode 100644 tests/tests/log/lastlog/13_lastlog-u_range_invalid2/config/etc/group create mode 100644 tests/tests/log/lastlog/13_lastlog-u_range_invalid2/config/etc/gshadow create mode 100644 tests/tests/log/lastlog/13_lastlog-u_range_invalid2/config/etc/passwd create mode 100644 tests/tests/log/lastlog/13_lastlog-u_range_invalid2/config/etc/shadow create mode 100644 tests/tests/log/lastlog/13_lastlog-u_range_invalid2/data/lastlog.err create mode 100755 tests/tests/log/lastlog/13_lastlog-u_range_invalid2/lastlog.test create mode 100644 tests/tests/log/lastlog/14_lastlog-u_range_invalid3/config.txt create mode 100644 tests/tests/log/lastlog/14_lastlog-u_range_invalid3/config/etc/group create mode 100644 tests/tests/log/lastlog/14_lastlog-u_range_invalid3/config/etc/gshadow create mode 100644 tests/tests/log/lastlog/14_lastlog-u_range_invalid3/config/etc/passwd create mode 100644 tests/tests/log/lastlog/14_lastlog-u_range_invalid3/config/etc/shadow create mode 100644 tests/tests/log/lastlog/14_lastlog-u_range_invalid3/data/lastlog.err create mode 100755 tests/tests/log/lastlog/14_lastlog-u_range_invalid3/lastlog.test create mode 100644 tests/tests/log/lastlog/15_lastlog_bad_option/config.txt create mode 100644 tests/tests/log/lastlog/15_lastlog_bad_option/config/etc/group create mode 100644 tests/tests/log/lastlog/15_lastlog_bad_option/config/etc/gshadow create mode 100644 tests/tests/log/lastlog/15_lastlog_bad_option/config/etc/passwd create mode 100644 tests/tests/log/lastlog/15_lastlog_bad_option/config/etc/shadow create mode 100644 tests/tests/log/lastlog/15_lastlog_bad_option/data/usage.out create mode 100755 tests/tests/log/lastlog/15_lastlog_bad_option/lastlog.test create mode 100644 tests/tests/log/lastlog/16_lastlog_extra_arg/config.txt create mode 100644 tests/tests/log/lastlog/16_lastlog_extra_arg/config/etc/group create mode 100644 tests/tests/log/lastlog/16_lastlog_extra_arg/config/etc/gshadow create mode 100644 tests/tests/log/lastlog/16_lastlog_extra_arg/config/etc/passwd create mode 100644 tests/tests/log/lastlog/16_lastlog_extra_arg/config/etc/shadow create mode 100644 tests/tests/log/lastlog/16_lastlog_extra_arg/data/usage.out create mode 100755 tests/tests/log/lastlog/16_lastlog_extra_arg/lastlog.test create mode 100644 tests/tests/log/lastlog/17_lastlog-t/config.txt create mode 100644 tests/tests/log/lastlog/17_lastlog-t/config/etc/group create mode 100644 tests/tests/log/lastlog/17_lastlog-t/config/etc/gshadow create mode 100644 tests/tests/log/lastlog/17_lastlog-t/config/etc/passwd create mode 100644 tests/tests/log/lastlog/17_lastlog-t/config/etc/shadow create mode 100644 tests/tests/log/lastlog/17_lastlog-t/data/lastlog.list create mode 100755 tests/tests/log/lastlog/17_lastlog-t/lastlog.test create mode 100755 tests/tests/log/lastlog/17_lastlog-t/login.exp create mode 100644 tests/tests/log/lastlog/18_lastlog-b/config.txt create mode 100644 tests/tests/log/lastlog/18_lastlog-b/config/etc/group create mode 100644 tests/tests/log/lastlog/18_lastlog-b/config/etc/gshadow create mode 100644 tests/tests/log/lastlog/18_lastlog-b/config/etc/passwd create mode 100644 tests/tests/log/lastlog/18_lastlog-b/config/etc/shadow create mode 100644 tests/tests/log/lastlog/18_lastlog-b/data/lastlog.list create mode 100755 tests/tests/log/lastlog/18_lastlog-b/lastlog.test create mode 100755 tests/tests/log/lastlog/18_lastlog-b/login.exp create mode 100644 tests/tests/log/lastlog/19_lastlog-t_invalid/config.txt create mode 100644 tests/tests/log/lastlog/19_lastlog-t_invalid/config/etc/group create mode 100644 tests/tests/log/lastlog/19_lastlog-t_invalid/config/etc/gshadow create mode 100644 tests/tests/log/lastlog/19_lastlog-t_invalid/config/etc/passwd create mode 100644 tests/tests/log/lastlog/19_lastlog-t_invalid/config/etc/shadow create mode 100644 tests/tests/log/lastlog/19_lastlog-t_invalid/data/lastlog.err create mode 100755 tests/tests/log/lastlog/19_lastlog-t_invalid/lastlog.test create mode 100644 tests/tests/log/lastlog/20_lastlog-b_invalid/config.txt create mode 100644 tests/tests/log/lastlog/20_lastlog-b_invalid/config/etc/group create mode 100644 tests/tests/log/lastlog/20_lastlog-b_invalid/config/etc/gshadow create mode 100644 tests/tests/log/lastlog/20_lastlog-b_invalid/config/etc/passwd create mode 100644 tests/tests/log/lastlog/20_lastlog-b_invalid/config/etc/shadow create mode 100644 tests/tests/log/lastlog/20_lastlog-b_invalid/data/lastlog.err create mode 100755 tests/tests/log/lastlog/20_lastlog-b_invalid/lastlog.test create mode 100644 tests/tests/login/01_login_prompt/config.txt create mode 100644 tests/tests/login/01_login_prompt/config/etc/group create mode 100644 tests/tests/login/01_login_prompt/config/etc/gshadow create mode 100644 tests/tests/login/01_login_prompt/config/etc/login.defs create mode 100644 tests/tests/login/01_login_prompt/config/etc/passwd create mode 100644 tests/tests/login/01_login_prompt/config/etc/shadow create mode 100755 tests/tests/login/01_login_prompt/login.exp create mode 100755 tests/tests/login/01_login_prompt/login.test create mode 100644 tests/tests/login/02_login_user/config.txt create mode 100644 tests/tests/login/02_login_user/config/etc/group create mode 100644 tests/tests/login/02_login_user/config/etc/gshadow create mode 100644 tests/tests/login/02_login_user/config/etc/login.defs create mode 100644 tests/tests/login/02_login_user/config/etc/passwd create mode 100644 tests/tests/login/02_login_user/config/etc/shadow create mode 100755 tests/tests/login/02_login_user/login.exp create mode 100755 tests/tests/login/02_login_user/login.test create mode 100644 tests/tests/login/03_login_check_tty/config.txt create mode 100644 tests/tests/login/03_login_check_tty/config/etc/group create mode 100644 tests/tests/login/03_login_check_tty/config/etc/gshadow create mode 100644 tests/tests/login/03_login_check_tty/config/etc/login.defs create mode 100644 tests/tests/login/03_login_check_tty/config/etc/passwd create mode 100644 tests/tests/login/03_login_check_tty/config/etc/shadow create mode 100755 tests/tests/login/03_login_check_tty/login.exp create mode 100755 tests/tests/login/03_login_check_tty/login.test create mode 100644 tests/tests/newgidmap/01_newgidmap/config.txt create mode 100644 tests/tests/newgidmap/01_newgidmap/config/etc/group create mode 100644 tests/tests/newgidmap/01_newgidmap/config/etc/login.defs create mode 100644 tests/tests/newgidmap/01_newgidmap/config/etc/passwd create mode 100644 tests/tests/newgidmap/01_newgidmap/config/etc/subgid create mode 100644 tests/tests/newgidmap/01_newgidmap/config/etc/subuid create mode 100644 tests/tests/newgidmap/01_newgidmap/data/gid_map create mode 100755 tests/tests/newgidmap/01_newgidmap/newgidmap.test create mode 100644 tests/tests/newgidmap/02_newgidmap_relaxed_gid_check/config.txt create mode 100644 tests/tests/newgidmap/02_newgidmap_relaxed_gid_check/config/etc/group create mode 100644 tests/tests/newgidmap/02_newgidmap_relaxed_gid_check/config/etc/login.defs create mode 100644 tests/tests/newgidmap/02_newgidmap_relaxed_gid_check/config/etc/passwd create mode 100644 tests/tests/newgidmap/02_newgidmap_relaxed_gid_check/config/etc/subgid create mode 100644 tests/tests/newgidmap/02_newgidmap_relaxed_gid_check/config/etc/subuid create mode 100644 tests/tests/newgidmap/02_newgidmap_relaxed_gid_check/data/gid_map create mode 100644 tests/tests/newgidmap/02_newgidmap_relaxed_gid_check/data/gid_map.bar create mode 100755 tests/tests/newgidmap/02_newgidmap_relaxed_gid_check/newgidmap.test create mode 100644 tests/tests/newuidmap/01_newuidmap/config.txt create mode 100644 tests/tests/newuidmap/01_newuidmap/config/etc/group create mode 100644 tests/tests/newuidmap/01_newuidmap/config/etc/login.defs create mode 100644 tests/tests/newuidmap/01_newuidmap/config/etc/passwd create mode 100644 tests/tests/newuidmap/01_newuidmap/config/etc/subgid create mode 100644 tests/tests/newuidmap/01_newuidmap/config/etc/subuid create mode 100644 tests/tests/newuidmap/01_newuidmap/data/uid_map create mode 100755 tests/tests/newuidmap/01_newuidmap/newuidmap.test create mode 100644 tests/tests/newuidmap/02_newuidmap_relaxed_gid_check/config.txt create mode 100644 tests/tests/newuidmap/02_newuidmap_relaxed_gid_check/config/etc/group create mode 100644 tests/tests/newuidmap/02_newuidmap_relaxed_gid_check/config/etc/login.defs create mode 100644 tests/tests/newuidmap/02_newuidmap_relaxed_gid_check/config/etc/passwd create mode 100644 tests/tests/newuidmap/02_newuidmap_relaxed_gid_check/config/etc/subgid create mode 100644 tests/tests/newuidmap/02_newuidmap_relaxed_gid_check/config/etc/subuid create mode 100644 tests/tests/newuidmap/02_newuidmap_relaxed_gid_check/data/uid_map create mode 100755 tests/tests/newuidmap/02_newuidmap_relaxed_gid_check/newuidmap.test create mode 100644 tests/tests/newusers/01_create_user/config.txt create mode 100644 tests/tests/newusers/01_create_user/config/etc/group create mode 100644 tests/tests/newusers/01_create_user/config/etc/gshadow create mode 100644 tests/tests/newusers/01_create_user/config/etc/pam.d/common-password create mode 100644 tests/tests/newusers/01_create_user/config/etc/pam.d/newusers create mode 100644 tests/tests/newusers/01_create_user/config/etc/passwd create mode 100644 tests/tests/newusers/01_create_user/config/etc/shadow create mode 100644 tests/tests/newusers/01_create_user/data/group create mode 100644 tests/tests/newusers/01_create_user/data/gshadow create mode 100644 tests/tests/newusers/01_create_user/data/newusers.list create mode 100644 tests/tests/newusers/01_create_user/data/passwd create mode 100644 tests/tests/newusers/01_create_user/data/shadow create mode 100755 tests/tests/newusers/01_create_user/newusers.test create mode 100644 tests/tests/newusers/02_update_password/config.txt create mode 100644 tests/tests/newusers/02_update_password/config/etc/group create mode 100644 tests/tests/newusers/02_update_password/config/etc/gshadow create mode 100644 tests/tests/newusers/02_update_password/config/etc/pam.d/common-password create mode 100644 tests/tests/newusers/02_update_password/config/etc/pam.d/newusers create mode 100644 tests/tests/newusers/02_update_password/config/etc/passwd create mode 100644 tests/tests/newusers/02_update_password/config/etc/shadow create mode 100644 tests/tests/newusers/02_update_password/data/newusers.list create mode 100644 tests/tests/newusers/02_update_password/data/shadow create mode 100755 tests/tests/newusers/02_update_password/newusers.test create mode 100644 tests/tests/newusers/03_no_update_pid/config.txt create mode 100644 tests/tests/newusers/03_no_update_pid/config/etc/group create mode 100644 tests/tests/newusers/03_no_update_pid/config/etc/gshadow create mode 100644 tests/tests/newusers/03_no_update_pid/config/etc/pam.d/common-password create mode 100644 tests/tests/newusers/03_no_update_pid/config/etc/pam.d/newusers create mode 100644 tests/tests/newusers/03_no_update_pid/config/etc/passwd create mode 100644 tests/tests/newusers/03_no_update_pid/config/etc/shadow create mode 100644 tests/tests/newusers/03_no_update_pid/data/newusers.list create mode 100644 tests/tests/newusers/03_no_update_pid/data/shadow create mode 100755 tests/tests/newusers/03_no_update_pid/newusers.test create mode 100644 tests/tests/newusers/04_no_update_gid/config.txt create mode 100644 tests/tests/newusers/04_no_update_gid/config/etc/group create mode 100644 tests/tests/newusers/04_no_update_gid/config/etc/gshadow create mode 100644 tests/tests/newusers/04_no_update_gid/config/etc/pam.d/common-password create mode 100644 tests/tests/newusers/04_no_update_gid/config/etc/pam.d/newusers create mode 100644 tests/tests/newusers/04_no_update_gid/config/etc/passwd create mode 100644 tests/tests/newusers/04_no_update_gid/config/etc/shadow create mode 100644 tests/tests/newusers/04_no_update_gid/data/newusers.list create mode 100644 tests/tests/newusers/04_no_update_gid/data/shadow create mode 100755 tests/tests/newusers/04_no_update_gid/newusers.test create mode 100644 tests/tests/newusers/05_create_user_pid/config.txt create mode 100644 tests/tests/newusers/05_create_user_pid/config/etc/group create mode 100644 tests/tests/newusers/05_create_user_pid/config/etc/gshadow create mode 100644 tests/tests/newusers/05_create_user_pid/config/etc/pam.d/common-password create mode 100644 tests/tests/newusers/05_create_user_pid/config/etc/pam.d/newusers create mode 100644 tests/tests/newusers/05_create_user_pid/config/etc/passwd create mode 100644 tests/tests/newusers/05_create_user_pid/config/etc/shadow create mode 100644 tests/tests/newusers/05_create_user_pid/data/group create mode 100644 tests/tests/newusers/05_create_user_pid/data/gshadow create mode 100644 tests/tests/newusers/05_create_user_pid/data/newusers.list create mode 100644 tests/tests/newusers/05_create_user_pid/data/passwd create mode 100644 tests/tests/newusers/05_create_user_pid/data/shadow create mode 100755 tests/tests/newusers/05_create_user_pid/newusers.test create mode 100644 tests/tests/newusers/06_create_user_gid/config.txt create mode 100644 tests/tests/newusers/06_create_user_gid/config/etc/group create mode 100644 tests/tests/newusers/06_create_user_gid/config/etc/gshadow create mode 100644 tests/tests/newusers/06_create_user_gid/config/etc/pam.d/common-password create mode 100644 tests/tests/newusers/06_create_user_gid/config/etc/pam.d/newusers create mode 100644 tests/tests/newusers/06_create_user_gid/config/etc/passwd create mode 100644 tests/tests/newusers/06_create_user_gid/config/etc/shadow create mode 100644 tests/tests/newusers/06_create_user_gid/data/group create mode 100644 tests/tests/newusers/06_create_user_gid/data/gshadow create mode 100644 tests/tests/newusers/06_create_user_gid/data/newusers.list create mode 100644 tests/tests/newusers/06_create_user_gid/data/passwd create mode 100644 tests/tests/newusers/06_create_user_gid/data/shadow create mode 100755 tests/tests/newusers/06_create_user_gid/newusers.test create mode 100644 tests/tests/newusers/07_create_user_pid_gid/config.txt create mode 100644 tests/tests/newusers/07_create_user_pid_gid/config/etc/group create mode 100644 tests/tests/newusers/07_create_user_pid_gid/config/etc/gshadow create mode 100644 tests/tests/newusers/07_create_user_pid_gid/config/etc/pam.d/common-password create mode 100644 tests/tests/newusers/07_create_user_pid_gid/config/etc/pam.d/newusers create mode 100644 tests/tests/newusers/07_create_user_pid_gid/config/etc/passwd create mode 100644 tests/tests/newusers/07_create_user_pid_gid/config/etc/shadow create mode 100644 tests/tests/newusers/07_create_user_pid_gid/data/group create mode 100644 tests/tests/newusers/07_create_user_pid_gid/data/gshadow create mode 100644 tests/tests/newusers/07_create_user_pid_gid/data/newusers.list create mode 100644 tests/tests/newusers/07_create_user_pid_gid/data/passwd create mode 100644 tests/tests/newusers/07_create_user_pid_gid/data/shadow create mode 100755 tests/tests/newusers/07_create_user_pid_gid/newusers.test create mode 100644 tests/tests/newusers/08_create_user_pid_other-gid/config.txt create mode 100644 tests/tests/newusers/08_create_user_pid_other-gid/config/etc/group create mode 100644 tests/tests/newusers/08_create_user_pid_other-gid/config/etc/gshadow create mode 100644 tests/tests/newusers/08_create_user_pid_other-gid/config/etc/pam.d/common-password create mode 100644 tests/tests/newusers/08_create_user_pid_other-gid/config/etc/pam.d/newusers create mode 100644 tests/tests/newusers/08_create_user_pid_other-gid/config/etc/passwd create mode 100644 tests/tests/newusers/08_create_user_pid_other-gid/config/etc/shadow create mode 100644 tests/tests/newusers/08_create_user_pid_other-gid/data/group create mode 100644 tests/tests/newusers/08_create_user_pid_other-gid/data/gshadow create mode 100644 tests/tests/newusers/08_create_user_pid_other-gid/data/newusers.list create mode 100644 tests/tests/newusers/08_create_user_pid_other-gid/data/passwd create mode 100644 tests/tests/newusers/08_create_user_pid_other-gid/data/shadow create mode 100755 tests/tests/newusers/08_create_user_pid_other-gid/newusers.test create mode 100644 tests/tests/newusers/09_create_user_pid-as-user-bar/config.txt create mode 100644 tests/tests/newusers/09_create_user_pid-as-user-bar/config/etc/group create mode 100644 tests/tests/newusers/09_create_user_pid-as-user-bar/config/etc/gshadow create mode 100644 tests/tests/newusers/09_create_user_pid-as-user-bar/config/etc/pam.d/common-password create mode 100644 tests/tests/newusers/09_create_user_pid-as-user-bar/config/etc/pam.d/newusers create mode 100644 tests/tests/newusers/09_create_user_pid-as-user-bar/config/etc/passwd create mode 100644 tests/tests/newusers/09_create_user_pid-as-user-bar/config/etc/shadow create mode 100644 tests/tests/newusers/09_create_user_pid-as-user-bar/data/group create mode 100644 tests/tests/newusers/09_create_user_pid-as-user-bar/data/gshadow create mode 100644 tests/tests/newusers/09_create_user_pid-as-user-bar/data/newusers.list create mode 100644 tests/tests/newusers/09_create_user_pid-as-user-bar/data/passwd create mode 100644 tests/tests/newusers/09_create_user_pid-as-user-bar/data/shadow create mode 100755 tests/tests/newusers/09_create_user_pid-as-user-bar/newusers.test create mode 100644 tests/tests/newusers/10_create_user_gid-as-group-bar/config.txt create mode 100644 tests/tests/newusers/10_create_user_gid-as-group-bar/config/etc/group create mode 100644 tests/tests/newusers/10_create_user_gid-as-group-bar/config/etc/gshadow create mode 100644 tests/tests/newusers/10_create_user_gid-as-group-bar/config/etc/pam.d/common-password create mode 100644 tests/tests/newusers/10_create_user_gid-as-group-bar/config/etc/pam.d/newusers create mode 100644 tests/tests/newusers/10_create_user_gid-as-group-bar/config/etc/passwd create mode 100644 tests/tests/newusers/10_create_user_gid-as-group-bar/config/etc/shadow create mode 100644 tests/tests/newusers/10_create_user_gid-as-group-bar/data/newusers.list create mode 100644 tests/tests/newusers/10_create_user_gid-as-group-bar/data/passwd create mode 100644 tests/tests/newusers/10_create_user_gid-as-group-bar/data/shadow create mode 100755 tests/tests/newusers/10_create_user_gid-as-group-bar/newusers.test create mode 100644 tests/tests/newusers/11_update_gecos/config.txt create mode 100644 tests/tests/newusers/11_update_gecos/config/etc/group create mode 100644 tests/tests/newusers/11_update_gecos/config/etc/gshadow create mode 100644 tests/tests/newusers/11_update_gecos/config/etc/pam.d/common-password create mode 100644 tests/tests/newusers/11_update_gecos/config/etc/pam.d/newusers create mode 100644 tests/tests/newusers/11_update_gecos/config/etc/passwd create mode 100644 tests/tests/newusers/11_update_gecos/config/etc/shadow create mode 100644 tests/tests/newusers/11_update_gecos/data/newusers.list create mode 100644 tests/tests/newusers/11_update_gecos/data/passwd create mode 100644 tests/tests/newusers/11_update_gecos/data/shadow create mode 100755 tests/tests/newusers/11_update_gecos/newusers.test create mode 100644 tests/tests/newusers/12_update_shell/config.txt create mode 100644 tests/tests/newusers/12_update_shell/config/etc/group create mode 100644 tests/tests/newusers/12_update_shell/config/etc/gshadow create mode 100644 tests/tests/newusers/12_update_shell/config/etc/pam.d/common-password create mode 100644 tests/tests/newusers/12_update_shell/config/etc/pam.d/newusers create mode 100644 tests/tests/newusers/12_update_shell/config/etc/passwd create mode 100644 tests/tests/newusers/12_update_shell/config/etc/shadow create mode 100644 tests/tests/newusers/12_update_shell/data/newusers.list create mode 100644 tests/tests/newusers/12_update_shell/data/passwd create mode 100644 tests/tests/newusers/12_update_shell/data/shadow create mode 100755 tests/tests/newusers/12_update_shell/newusers.test create mode 100644 tests/tests/newusers/13_create_user_new-home/config.txt create mode 100644 tests/tests/newusers/13_create_user_new-home/config/etc/group create mode 100644 tests/tests/newusers/13_create_user_new-home/config/etc/gshadow create mode 100644 tests/tests/newusers/13_create_user_new-home/config/etc/pam.d/common-password create mode 100644 tests/tests/newusers/13_create_user_new-home/config/etc/pam.d/newusers create mode 100644 tests/tests/newusers/13_create_user_new-home/config/etc/passwd create mode 100644 tests/tests/newusers/13_create_user_new-home/config/etc/shadow create mode 100644 tests/tests/newusers/13_create_user_new-home/data/group create mode 100644 tests/tests/newusers/13_create_user_new-home/data/gshadow create mode 100644 tests/tests/newusers/13_create_user_new-home/data/home_ls-a create mode 100644 tests/tests/newusers/13_create_user_new-home/data/newusers.list create mode 100644 tests/tests/newusers/13_create_user_new-home/data/passwd create mode 100644 tests/tests/newusers/13_create_user_new-home/data/shadow create mode 100755 tests/tests/newusers/13_create_user_new-home/newusers.test create mode 100644 tests/tests/newusers/14_create_user_existing-home/config.txt create mode 100644 tests/tests/newusers/14_create_user_existing-home/config/etc/group create mode 100644 tests/tests/newusers/14_create_user_existing-home/config/etc/gshadow create mode 100644 tests/tests/newusers/14_create_user_existing-home/config/etc/pam.d/common-password create mode 100644 tests/tests/newusers/14_create_user_existing-home/config/etc/pam.d/newusers create mode 100644 tests/tests/newusers/14_create_user_existing-home/config/etc/passwd create mode 100644 tests/tests/newusers/14_create_user_existing-home/config/etc/shadow create mode 100644 tests/tests/newusers/14_create_user_existing-home/data/group create mode 100644 tests/tests/newusers/14_create_user_existing-home/data/gshadow create mode 100644 tests/tests/newusers/14_create_user_existing-home/data/home_ls-a create mode 100644 tests/tests/newusers/14_create_user_existing-home/data/newusers.list create mode 100644 tests/tests/newusers/14_create_user_existing-home/data/passwd create mode 100644 tests/tests/newusers/14_create_user_existing-home/data/shadow create mode 100755 tests/tests/newusers/14_create_user_existing-home/newusers.test create mode 100644 tests/tests/newusers/15_update_new-home/config.txt create mode 100644 tests/tests/newusers/15_update_new-home/config/etc/group create mode 100644 tests/tests/newusers/15_update_new-home/config/etc/gshadow create mode 100644 tests/tests/newusers/15_update_new-home/config/etc/pam.d/common-password create mode 100644 tests/tests/newusers/15_update_new-home/config/etc/pam.d/newusers create mode 100644 tests/tests/newusers/15_update_new-home/config/etc/passwd create mode 100644 tests/tests/newusers/15_update_new-home/config/etc/shadow create mode 100644 tests/tests/newusers/15_update_new-home/data/home_ls-a create mode 100644 tests/tests/newusers/15_update_new-home/data/newusers.list create mode 100644 tests/tests/newusers/15_update_new-home/data/passwd create mode 100644 tests/tests/newusers/15_update_new-home/data/shadow create mode 100755 tests/tests/newusers/15_update_new-home/newusers.test create mode 100644 tests/tests/newusers/16_update_existing-home/config.txt create mode 100644 tests/tests/newusers/16_update_existing-home/config/etc/group create mode 100644 tests/tests/newusers/16_update_existing-home/config/etc/gshadow create mode 100644 tests/tests/newusers/16_update_existing-home/config/etc/pam.d/common-password create mode 100644 tests/tests/newusers/16_update_existing-home/config/etc/pam.d/newusers create mode 100644 tests/tests/newusers/16_update_existing-home/config/etc/passwd create mode 100644 tests/tests/newusers/16_update_existing-home/config/etc/shadow create mode 100644 tests/tests/newusers/16_update_existing-home/data/home_ls-a create mode 100644 tests/tests/newusers/16_update_existing-home/data/newusers.list create mode 100644 tests/tests/newusers/16_update_existing-home/data/passwd create mode 100644 tests/tests/newusers/16_update_existing-home/data/shadow create mode 100755 tests/tests/newusers/16_update_existing-home/newusers.test create mode 100644 tests/tests/newusers/17_create_user_pid-already-used/config.txt create mode 100644 tests/tests/newusers/17_create_user_pid-already-used/config/etc/group create mode 100644 tests/tests/newusers/17_create_user_pid-already-used/config/etc/gshadow create mode 100644 tests/tests/newusers/17_create_user_pid-already-used/config/etc/pam.d/common-password create mode 100644 tests/tests/newusers/17_create_user_pid-already-used/config/etc/pam.d/newusers create mode 100644 tests/tests/newusers/17_create_user_pid-already-used/config/etc/passwd create mode 100644 tests/tests/newusers/17_create_user_pid-already-used/config/etc/shadow create mode 100644 tests/tests/newusers/17_create_user_pid-already-used/data/group create mode 100644 tests/tests/newusers/17_create_user_pid-already-used/data/gshadow create mode 100644 tests/tests/newusers/17_create_user_pid-already-used/data/newusers.list create mode 100644 tests/tests/newusers/17_create_user_pid-already-used/data/passwd create mode 100644 tests/tests/newusers/17_create_user_pid-already-used/data/shadow create mode 100755 tests/tests/newusers/17_create_user_pid-already-used/newusers.test create mode 100644 tests/tests/newusers/18_create_user_gid-already-used/config.txt create mode 100644 tests/tests/newusers/18_create_user_gid-already-used/config/etc/group create mode 100644 tests/tests/newusers/18_create_user_gid-already-used/config/etc/gshadow create mode 100644 tests/tests/newusers/18_create_user_gid-already-used/config/etc/pam.d/common-password create mode 100644 tests/tests/newusers/18_create_user_gid-already-used/config/etc/pam.d/newusers create mode 100644 tests/tests/newusers/18_create_user_gid-already-used/config/etc/passwd create mode 100644 tests/tests/newusers/18_create_user_gid-already-used/config/etc/shadow create mode 100644 tests/tests/newusers/18_create_user_gid-already-used/data/newusers.list create mode 100644 tests/tests/newusers/18_create_user_gid-already-used/data/passwd create mode 100644 tests/tests/newusers/18_create_user_gid-already-used/data/shadow create mode 100755 tests/tests/newusers/18_create_user_gid-already-used/newusers.test create mode 100644 tests/tests/newusers/19_update_keep-old-home/config.txt create mode 100644 tests/tests/newusers/19_update_keep-old-home/config/etc/group create mode 100644 tests/tests/newusers/19_update_keep-old-home/config/etc/gshadow create mode 100644 tests/tests/newusers/19_update_keep-old-home/config/etc/pam.d/common-password create mode 100644 tests/tests/newusers/19_update_keep-old-home/config/etc/pam.d/newusers create mode 100644 tests/tests/newusers/19_update_keep-old-home/config/etc/passwd create mode 100644 tests/tests/newusers/19_update_keep-old-home/config/etc/shadow create mode 100644 tests/tests/newusers/19_update_keep-old-home/data/home_ls-a create mode 100644 tests/tests/newusers/19_update_keep-old-home/data/home_ls-a.old create mode 100644 tests/tests/newusers/19_update_keep-old-home/data/newusers.list create mode 100644 tests/tests/newusers/19_update_keep-old-home/data/passwd create mode 100644 tests/tests/newusers/19_update_keep-old-home/data/shadow create mode 100755 tests/tests/newusers/19_update_keep-old-home/newusers.test create mode 100644 tests/tests/newusers/20_multiple_users/config.txt create mode 100644 tests/tests/newusers/20_multiple_users/config/etc/group create mode 100644 tests/tests/newusers/20_multiple_users/config/etc/gshadow create mode 100644 tests/tests/newusers/20_multiple_users/config/etc/pam.d/common-password create mode 100644 tests/tests/newusers/20_multiple_users/config/etc/pam.d/newusers create mode 100644 tests/tests/newusers/20_multiple_users/config/etc/passwd create mode 100644 tests/tests/newusers/20_multiple_users/config/etc/shadow create mode 100644 tests/tests/newusers/20_multiple_users/data/group create mode 100644 tests/tests/newusers/20_multiple_users/data/gshadow create mode 100644 tests/tests/newusers/20_multiple_users/data/newusers.list create mode 100644 tests/tests/newusers/20_multiple_users/data/passwd create mode 100644 tests/tests/newusers/20_multiple_users/data/shadow create mode 100755 tests/tests/newusers/20_multiple_users/newusers.test create mode 100644 tests/tests/newusers/21_create_user_UID_MAX/config.txt create mode 100644 tests/tests/newusers/21_create_user_UID_MAX/config/etc/group create mode 100644 tests/tests/newusers/21_create_user_UID_MAX/config/etc/gshadow create mode 100644 tests/tests/newusers/21_create_user_UID_MAX/config/etc/pam.d/common-password create mode 100644 tests/tests/newusers/21_create_user_UID_MAX/config/etc/pam.d/newusers create mode 100644 tests/tests/newusers/21_create_user_UID_MAX/config/etc/passwd create mode 100644 tests/tests/newusers/21_create_user_UID_MAX/config/etc/shadow create mode 100644 tests/tests/newusers/21_create_user_UID_MAX/data/group create mode 100644 tests/tests/newusers/21_create_user_UID_MAX/data/gshadow create mode 100644 tests/tests/newusers/21_create_user_UID_MAX/data/newusers.list create mode 100644 tests/tests/newusers/21_create_user_UID_MAX/data/passwd create mode 100644 tests/tests/newusers/21_create_user_UID_MAX/data/shadow create mode 100755 tests/tests/newusers/21_create_user_UID_MAX/newusers.test create mode 100644 tests/tests/newusers/22_create_user_GID_MAX/config.txt create mode 100644 tests/tests/newusers/22_create_user_GID_MAX/config/etc/group create mode 100644 tests/tests/newusers/22_create_user_GID_MAX/config/etc/gshadow create mode 100644 tests/tests/newusers/22_create_user_GID_MAX/config/etc/pam.d/common-password create mode 100644 tests/tests/newusers/22_create_user_GID_MAX/config/etc/pam.d/newusers create mode 100644 tests/tests/newusers/22_create_user_GID_MAX/config/etc/passwd create mode 100644 tests/tests/newusers/22_create_user_GID_MAX/config/etc/shadow create mode 100644 tests/tests/newusers/22_create_user_GID_MAX/data/group create mode 100644 tests/tests/newusers/22_create_user_GID_MAX/data/gshadow create mode 100644 tests/tests/newusers/22_create_user_GID_MAX/data/newusers.list create mode 100644 tests/tests/newusers/22_create_user_GID_MAX/data/passwd create mode 100644 tests/tests/newusers/22_create_user_GID_MAX/data/shadow create mode 100755 tests/tests/newusers/22_create_user_GID_MAX/newusers.test create mode 100644 tests/tests/newusers/23_create_user_error_negative_UID/config.txt create mode 100644 tests/tests/newusers/23_create_user_error_negative_UID/config/etc/group create mode 100644 tests/tests/newusers/23_create_user_error_negative_UID/config/etc/gshadow create mode 100644 tests/tests/newusers/23_create_user_error_negative_UID/config/etc/passwd create mode 100644 tests/tests/newusers/23_create_user_error_negative_UID/config/etc/shadow create mode 100644 tests/tests/newusers/23_create_user_error_negative_UID/data/newusers.err create mode 100644 tests/tests/newusers/23_create_user_error_negative_UID/data/newusers.list create mode 100755 tests/tests/newusers/23_create_user_error_negative_UID/newusers.test create mode 100644 tests/tests/newusers/24_create_user_error_invalid_UID/config.txt create mode 100644 tests/tests/newusers/24_create_user_error_invalid_UID/config/etc/group create mode 100644 tests/tests/newusers/24_create_user_error_invalid_UID/config/etc/gshadow create mode 100644 tests/tests/newusers/24_create_user_error_invalid_UID/config/etc/passwd create mode 100644 tests/tests/newusers/24_create_user_error_invalid_UID/config/etc/shadow create mode 100644 tests/tests/newusers/24_create_user_error_invalid_UID/data/newusers.err create mode 100644 tests/tests/newusers/24_create_user_error_invalid_UID/data/newusers.list create mode 100755 tests/tests/newusers/24_create_user_error_invalid_UID/newusers.test create mode 100644 tests/tests/newusers/25_create_user_error_no_remaining_UID/config.txt create mode 100644 tests/tests/newusers/25_create_user_error_no_remaining_UID/config/etc/group create mode 100644 tests/tests/newusers/25_create_user_error_no_remaining_UID/config/etc/gshadow create mode 100644 tests/tests/newusers/25_create_user_error_no_remaining_UID/config/etc/login.defs create mode 100644 tests/tests/newusers/25_create_user_error_no_remaining_UID/config/etc/passwd create mode 100644 tests/tests/newusers/25_create_user_error_no_remaining_UID/config/etc/shadow create mode 100644 tests/tests/newusers/25_create_user_error_no_remaining_UID/data/newusers.err create mode 100644 tests/tests/newusers/25_create_user_error_no_remaining_UID/data/newusers.list create mode 100755 tests/tests/newusers/25_create_user_error_no_remaining_UID/newusers.test create mode 100644 tests/tests/newusers/26_create_user_error_no_remaining_GID/config.txt create mode 100644 tests/tests/newusers/26_create_user_error_no_remaining_GID/config/etc/group create mode 100644 tests/tests/newusers/26_create_user_error_no_remaining_GID/config/etc/gshadow create mode 100644 tests/tests/newusers/26_create_user_error_no_remaining_GID/config/etc/login.defs create mode 100644 tests/tests/newusers/26_create_user_error_no_remaining_GID/config/etc/passwd create mode 100644 tests/tests/newusers/26_create_user_error_no_remaining_GID/config/etc/shadow create mode 100644 tests/tests/newusers/26_create_user_error_no_remaining_GID/data/newusers.err create mode 100644 tests/tests/newusers/26_create_user_error_no_remaining_GID/data/newusers.list create mode 100755 tests/tests/newusers/26_create_user_error_no_remaining_GID/newusers.test create mode 100644 tests/tests/newusers/27_create_user_error_invalid_username/config.txt create mode 100644 tests/tests/newusers/27_create_user_error_invalid_username/config/etc/group create mode 100644 tests/tests/newusers/27_create_user_error_invalid_username/config/etc/gshadow create mode 100644 tests/tests/newusers/27_create_user_error_invalid_username/config/etc/passwd create mode 100644 tests/tests/newusers/27_create_user_error_invalid_username/config/etc/shadow create mode 100644 tests/tests/newusers/27_create_user_error_invalid_username/data/newusers.err create mode 100644 tests/tests/newusers/27_create_user_error_invalid_username/data/newusers.list create mode 100755 tests/tests/newusers/27_create_user_error_invalid_username/newusers.test create mode 100644 tests/tests/newusers/28_create_user_error_invalid_groupname/config.txt create mode 100644 tests/tests/newusers/28_create_user_error_invalid_groupname/config/etc/group create mode 100644 tests/tests/newusers/28_create_user_error_invalid_groupname/config/etc/gshadow create mode 100644 tests/tests/newusers/28_create_user_error_invalid_groupname/config/etc/passwd create mode 100644 tests/tests/newusers/28_create_user_error_invalid_groupname/config/etc/shadow create mode 100644 tests/tests/newusers/28_create_user_error_invalid_groupname/data/newusers.err create mode 100644 tests/tests/newusers/28_create_user_error_invalid_groupname/data/newusers.list create mode 100755 tests/tests/newusers/28_create_user_error_invalid_groupname/newusers.test create mode 100644 tests/tests/newusers/29_create_user_error_invalid_username_valid_groupname/config.txt create mode 100644 tests/tests/newusers/29_create_user_error_invalid_username_valid_groupname/config/etc/group create mode 100644 tests/tests/newusers/29_create_user_error_invalid_username_valid_groupname/config/etc/gshadow create mode 100644 tests/tests/newusers/29_create_user_error_invalid_username_valid_groupname/config/etc/passwd create mode 100644 tests/tests/newusers/29_create_user_error_invalid_username_valid_groupname/config/etc/shadow create mode 100644 tests/tests/newusers/29_create_user_error_invalid_username_valid_groupname/data/newusers.err create mode 100644 tests/tests/newusers/29_create_user_error_invalid_username_valid_groupname/data/newusers.list create mode 100755 tests/tests/newusers/29_create_user_error_invalid_username_valid_groupname/newusers.test create mode 100644 tests/tests/newusers/30_create_user_different_groupname/config.txt create mode 100644 tests/tests/newusers/30_create_user_different_groupname/config/etc/group create mode 100644 tests/tests/newusers/30_create_user_different_groupname/config/etc/gshadow create mode 100644 tests/tests/newusers/30_create_user_different_groupname/config/etc/pam.d/common-password create mode 100644 tests/tests/newusers/30_create_user_different_groupname/config/etc/pam.d/newusers create mode 100644 tests/tests/newusers/30_create_user_different_groupname/config/etc/passwd create mode 100644 tests/tests/newusers/30_create_user_different_groupname/config/etc/shadow create mode 100644 tests/tests/newusers/30_create_user_different_groupname/data/group create mode 100644 tests/tests/newusers/30_create_user_different_groupname/data/gshadow create mode 100644 tests/tests/newusers/30_create_user_different_groupname/data/newusers.list create mode 100644 tests/tests/newusers/30_create_user_different_groupname/data/passwd create mode 100644 tests/tests/newusers/30_create_user_different_groupname/data/shadow create mode 100755 tests/tests/newusers/30_create_user_different_groupname/newusers.test create mode 100644 tests/tests/newusers/31_create_user_error_invalid_GID/config.txt create mode 100644 tests/tests/newusers/31_create_user_error_invalid_GID/config/etc/group create mode 100644 tests/tests/newusers/31_create_user_error_invalid_GID/config/etc/gshadow create mode 100644 tests/tests/newusers/31_create_user_error_invalid_GID/config/etc/passwd create mode 100644 tests/tests/newusers/31_create_user_error_invalid_GID/config/etc/shadow create mode 100644 tests/tests/newusers/31_create_user_error_invalid_GID/data/newusers.err create mode 100644 tests/tests/newusers/31_create_user_error_invalid_GID/data/newusers.list create mode 100755 tests/tests/newusers/31_create_user_error_invalid_GID/newusers.test create mode 100644 tests/tests/newusers/32_create_user_error_gshadow_group_exists/config.txt create mode 100644 tests/tests/newusers/32_create_user_error_gshadow_group_exists/config/etc/group create mode 100644 tests/tests/newusers/32_create_user_error_gshadow_group_exists/config/etc/gshadow create mode 100644 tests/tests/newusers/32_create_user_error_gshadow_group_exists/config/etc/passwd create mode 100644 tests/tests/newusers/32_create_user_error_gshadow_group_exists/config/etc/shadow create mode 100644 tests/tests/newusers/32_create_user_error_gshadow_group_exists/data/newusers.err create mode 100644 tests/tests/newusers/32_create_user_error_gshadow_group_exists/data/newusers.list create mode 100755 tests/tests/newusers/32_create_user_error_gshadow_group_exists/newusers.test create mode 100644 tests/tests/newusers/33_update_password_no_shadow_password/config.txt create mode 100644 tests/tests/newusers/33_update_password_no_shadow_password/config/etc/group create mode 100644 tests/tests/newusers/33_update_password_no_shadow_password/config/etc/gshadow create mode 100644 tests/tests/newusers/33_update_password_no_shadow_password/config/etc/pam.d/common-password create mode 100644 tests/tests/newusers/33_update_password_no_shadow_password/config/etc/pam.d/newusers create mode 100644 tests/tests/newusers/33_update_password_no_shadow_password/config/etc/passwd create mode 100644 tests/tests/newusers/33_update_password_no_shadow_password/config/etc/shadow create mode 100644 tests/tests/newusers/33_update_password_no_shadow_password/data/newusers.list create mode 100644 tests/tests/newusers/33_update_password_no_shadow_password/data/passwd create mode 100755 tests/tests/newusers/33_update_password_no_shadow_password/newusers.test create mode 100644 tests/tests/newusers/34_update_password_no_shadow/config.txt create mode 100644 tests/tests/newusers/34_update_password_no_shadow/config/etc/group create mode 100644 tests/tests/newusers/34_update_password_no_shadow/config/etc/gshadow create mode 100644 tests/tests/newusers/34_update_password_no_shadow/config/etc/pam.d/common-password create mode 100644 tests/tests/newusers/34_update_password_no_shadow/config/etc/pam.d/newusers create mode 100644 tests/tests/newusers/34_update_password_no_shadow/config/etc/passwd create mode 100644 tests/tests/newusers/34_update_password_no_shadow/config/etc/shadow create mode 100644 tests/tests/newusers/34_update_password_no_shadow/data/newusers.list create mode 100644 tests/tests/newusers/34_update_password_no_shadow/data/passwd create mode 100755 tests/tests/newusers/34_update_password_no_shadow/newusers.test create mode 100644 tests/tests/newusers/35_read_from_stdin/config.txt create mode 100644 tests/tests/newusers/35_read_from_stdin/config/etc/group create mode 100644 tests/tests/newusers/35_read_from_stdin/config/etc/gshadow create mode 100644 tests/tests/newusers/35_read_from_stdin/config/etc/pam.d/common-password create mode 100644 tests/tests/newusers/35_read_from_stdin/config/etc/pam.d/newusers create mode 100644 tests/tests/newusers/35_read_from_stdin/config/etc/passwd create mode 100644 tests/tests/newusers/35_read_from_stdin/config/etc/shadow create mode 100644 tests/tests/newusers/35_read_from_stdin/data/group create mode 100644 tests/tests/newusers/35_read_from_stdin/data/gshadow create mode 100644 tests/tests/newusers/35_read_from_stdin/data/newusers.list create mode 100644 tests/tests/newusers/35_read_from_stdin/data/passwd create mode 100644 tests/tests/newusers/35_read_from_stdin/data/shadow create mode 100755 tests/tests/newusers/35_read_from_stdin/newusers.test create mode 100644 tests/tests/newusers/36_create_user_encrypted/config.txt create mode 100644 tests/tests/newusers/36_create_user_encrypted/config/etc/group create mode 100644 tests/tests/newusers/36_create_user_encrypted/config/etc/gshadow create mode 100644 tests/tests/newusers/36_create_user_encrypted/config/etc/passwd create mode 100644 tests/tests/newusers/36_create_user_encrypted/config/etc/shadow create mode 100644 tests/tests/newusers/36_create_user_encrypted/data/group create mode 100644 tests/tests/newusers/36_create_user_encrypted/data/gshadow create mode 100644 tests/tests/newusers/36_create_user_encrypted/data/newusers.list create mode 100644 tests/tests/newusers/36_create_user_encrypted/data/passwd create mode 100644 tests/tests/newusers/36_create_user_encrypted/data/shadow create mode 100755 tests/tests/newusers/36_create_user_encrypted/newusers.test create mode 100644 tests/tests/newusers/37_create_user_encrypt_MD5-PAM/config.txt create mode 100644 tests/tests/newusers/37_create_user_encrypt_MD5-PAM/config/etc/group create mode 100644 tests/tests/newusers/37_create_user_encrypt_MD5-PAM/config/etc/gshadow create mode 100644 tests/tests/newusers/37_create_user_encrypt_MD5-PAM/config/etc/pam.d/common-password create mode 100644 tests/tests/newusers/37_create_user_encrypt_MD5-PAM/config/etc/pam.d/newusers create mode 100644 tests/tests/newusers/37_create_user_encrypt_MD5-PAM/config/etc/passwd create mode 100644 tests/tests/newusers/37_create_user_encrypt_MD5-PAM/config/etc/shadow create mode 100644 tests/tests/newusers/37_create_user_encrypt_MD5-PAM/data/group create mode 100644 tests/tests/newusers/37_create_user_encrypt_MD5-PAM/data/gshadow create mode 100644 tests/tests/newusers/37_create_user_encrypt_MD5-PAM/data/newusers.list create mode 100644 tests/tests/newusers/37_create_user_encrypt_MD5-PAM/data/passwd create mode 100644 tests/tests/newusers/37_create_user_encrypt_MD5-PAM/data/shadow create mode 100755 tests/tests/newusers/37_create_user_encrypt_MD5-PAM/newusers.test create mode 100644 tests/tests/newusers/37_create_user_encrypt_MD5/config.txt create mode 100644 tests/tests/newusers/37_create_user_encrypt_MD5/config/etc/group create mode 100644 tests/tests/newusers/37_create_user_encrypt_MD5/config/etc/gshadow create mode 100644 tests/tests/newusers/37_create_user_encrypt_MD5/config/etc/passwd create mode 100644 tests/tests/newusers/37_create_user_encrypt_MD5/config/etc/shadow create mode 100644 tests/tests/newusers/37_create_user_encrypt_MD5/data/group create mode 100644 tests/tests/newusers/37_create_user_encrypt_MD5/data/gshadow create mode 100644 tests/tests/newusers/37_create_user_encrypt_MD5/data/newusers.list create mode 100644 tests/tests/newusers/37_create_user_encrypt_MD5/data/passwd create mode 100644 tests/tests/newusers/37_create_user_encrypt_MD5/data/shadow create mode 100755 tests/tests/newusers/37_create_user_encrypt_MD5/newusers.test create mode 100644 tests/tests/newusers/38_update_password_no_shadow_encrypted/config.txt create mode 100644 tests/tests/newusers/38_update_password_no_shadow_encrypted/config/etc/group create mode 100644 tests/tests/newusers/38_update_password_no_shadow_encrypted/config/etc/gshadow create mode 100644 tests/tests/newusers/38_update_password_no_shadow_encrypted/config/etc/passwd create mode 100644 tests/tests/newusers/38_update_password_no_shadow_encrypted/config/etc/shadow create mode 100644 tests/tests/newusers/38_update_password_no_shadow_encrypted/data/newusers.list create mode 100644 tests/tests/newusers/38_update_password_no_shadow_encrypted/data/passwd create mode 100755 tests/tests/newusers/38_update_password_no_shadow_encrypted/newusers.test create mode 100644 tests/tests/newusers/39_update_password_no_shadow_password_encrypted/config.txt create mode 100644 tests/tests/newusers/39_update_password_no_shadow_password_encrypted/config/etc/group create mode 100644 tests/tests/newusers/39_update_password_no_shadow_password_encrypted/config/etc/gshadow create mode 100644 tests/tests/newusers/39_update_password_no_shadow_password_encrypted/config/etc/passwd create mode 100644 tests/tests/newusers/39_update_password_no_shadow_password_encrypted/config/etc/shadow create mode 100644 tests/tests/newusers/39_update_password_no_shadow_password_encrypted/data/newusers.list create mode 100644 tests/tests/newusers/39_update_password_no_shadow_password_encrypted/data/passwd create mode 100755 tests/tests/newusers/39_update_password_no_shadow_password_encrypted/newusers.test create mode 100644 tests/tests/newusers/40_update_password_encrypted/config.txt create mode 100644 tests/tests/newusers/40_update_password_encrypted/config/etc/group create mode 100644 tests/tests/newusers/40_update_password_encrypted/config/etc/gshadow create mode 100644 tests/tests/newusers/40_update_password_encrypted/config/etc/passwd create mode 100644 tests/tests/newusers/40_update_password_encrypted/config/etc/shadow create mode 100644 tests/tests/newusers/40_update_password_encrypted/data/newusers.list create mode 100644 tests/tests/newusers/40_update_password_encrypted/data/shadow create mode 100755 tests/tests/newusers/40_update_password_encrypted/newusers.test create mode 100644 tests/tests/newusers/41_create_user_encrypt_SHA256-PAM/config.txt create mode 100644 tests/tests/newusers/41_create_user_encrypt_SHA256-PAM/config/etc/group create mode 100644 tests/tests/newusers/41_create_user_encrypt_SHA256-PAM/config/etc/gshadow create mode 100644 tests/tests/newusers/41_create_user_encrypt_SHA256-PAM/config/etc/pam.d/common-password create mode 100644 tests/tests/newusers/41_create_user_encrypt_SHA256-PAM/config/etc/pam.d/newusers create mode 100644 tests/tests/newusers/41_create_user_encrypt_SHA256-PAM/config/etc/passwd create mode 100644 tests/tests/newusers/41_create_user_encrypt_SHA256-PAM/config/etc/shadow create mode 100644 tests/tests/newusers/41_create_user_encrypt_SHA256-PAM/data/group create mode 100644 tests/tests/newusers/41_create_user_encrypt_SHA256-PAM/data/gshadow create mode 100644 tests/tests/newusers/41_create_user_encrypt_SHA256-PAM/data/newusers.list create mode 100644 tests/tests/newusers/41_create_user_encrypt_SHA256-PAM/data/passwd create mode 100644 tests/tests/newusers/41_create_user_encrypt_SHA256-PAM/data/shadow create mode 100755 tests/tests/newusers/41_create_user_encrypt_SHA256-PAM/newusers.test create mode 100644 tests/tests/newusers/41_create_user_encrypt_SHA256/config.txt create mode 100644 tests/tests/newusers/41_create_user_encrypt_SHA256/config/etc/group create mode 100644 tests/tests/newusers/41_create_user_encrypt_SHA256/config/etc/gshadow create mode 100644 tests/tests/newusers/41_create_user_encrypt_SHA256/config/etc/passwd create mode 100644 tests/tests/newusers/41_create_user_encrypt_SHA256/config/etc/shadow create mode 100644 tests/tests/newusers/41_create_user_encrypt_SHA256/data/group create mode 100644 tests/tests/newusers/41_create_user_encrypt_SHA256/data/gshadow create mode 100644 tests/tests/newusers/41_create_user_encrypt_SHA256/data/newusers.list create mode 100644 tests/tests/newusers/41_create_user_encrypt_SHA256/data/passwd create mode 100644 tests/tests/newusers/41_create_user_encrypt_SHA256/data/shadow create mode 100755 tests/tests/newusers/41_create_user_encrypt_SHA256/newusers.test create mode 100644 tests/tests/newusers/42_create_user_encrypt_SHA512-PAM/config.txt create mode 100644 tests/tests/newusers/42_create_user_encrypt_SHA512-PAM/config/etc/group create mode 100644 tests/tests/newusers/42_create_user_encrypt_SHA512-PAM/config/etc/gshadow create mode 100644 tests/tests/newusers/42_create_user_encrypt_SHA512-PAM/config/etc/pam.d/common-password create mode 100644 tests/tests/newusers/42_create_user_encrypt_SHA512-PAM/config/etc/pam.d/newusers create mode 100644 tests/tests/newusers/42_create_user_encrypt_SHA512-PAM/config/etc/passwd create mode 100644 tests/tests/newusers/42_create_user_encrypt_SHA512-PAM/config/etc/shadow create mode 100644 tests/tests/newusers/42_create_user_encrypt_SHA512-PAM/data/group create mode 100644 tests/tests/newusers/42_create_user_encrypt_SHA512-PAM/data/gshadow create mode 100644 tests/tests/newusers/42_create_user_encrypt_SHA512-PAM/data/newusers.list create mode 100644 tests/tests/newusers/42_create_user_encrypt_SHA512-PAM/data/passwd create mode 100644 tests/tests/newusers/42_create_user_encrypt_SHA512-PAM/data/shadow create mode 100755 tests/tests/newusers/42_create_user_encrypt_SHA512-PAM/newusers.test create mode 100644 tests/tests/newusers/42_create_user_encrypt_SHA512/config.txt create mode 100644 tests/tests/newusers/42_create_user_encrypt_SHA512/config/etc/group create mode 100644 tests/tests/newusers/42_create_user_encrypt_SHA512/config/etc/gshadow create mode 100644 tests/tests/newusers/42_create_user_encrypt_SHA512/config/etc/passwd create mode 100644 tests/tests/newusers/42_create_user_encrypt_SHA512/config/etc/shadow create mode 100644 tests/tests/newusers/42_create_user_encrypt_SHA512/data/group create mode 100644 tests/tests/newusers/42_create_user_encrypt_SHA512/data/gshadow create mode 100644 tests/tests/newusers/42_create_user_encrypt_SHA512/data/newusers.list create mode 100644 tests/tests/newusers/42_create_user_encrypt_SHA512/data/passwd create mode 100644 tests/tests/newusers/42_create_user_encrypt_SHA512/data/shadow create mode 100755 tests/tests/newusers/42_create_user_encrypt_SHA512/newusers.test create mode 100644 tests/tests/newusers/43_create_user_encrypt_SHA256_rounds_3000-PAM/config.txt create mode 100644 tests/tests/newusers/43_create_user_encrypt_SHA256_rounds_3000-PAM/config/etc/group create mode 100644 tests/tests/newusers/43_create_user_encrypt_SHA256_rounds_3000-PAM/config/etc/gshadow create mode 100644 tests/tests/newusers/43_create_user_encrypt_SHA256_rounds_3000-PAM/config/etc/pam.d/common-password create mode 100644 tests/tests/newusers/43_create_user_encrypt_SHA256_rounds_3000-PAM/config/etc/pam.d/newusers create mode 100644 tests/tests/newusers/43_create_user_encrypt_SHA256_rounds_3000-PAM/config/etc/passwd create mode 100644 tests/tests/newusers/43_create_user_encrypt_SHA256_rounds_3000-PAM/config/etc/shadow create mode 100644 tests/tests/newusers/43_create_user_encrypt_SHA256_rounds_3000-PAM/data/group create mode 100644 tests/tests/newusers/43_create_user_encrypt_SHA256_rounds_3000-PAM/data/gshadow create mode 100644 tests/tests/newusers/43_create_user_encrypt_SHA256_rounds_3000-PAM/data/newusers.list create mode 100644 tests/tests/newusers/43_create_user_encrypt_SHA256_rounds_3000-PAM/data/passwd create mode 100644 tests/tests/newusers/43_create_user_encrypt_SHA256_rounds_3000-PAM/data/shadow create mode 100755 tests/tests/newusers/43_create_user_encrypt_SHA256_rounds_3000-PAM/newusers.test create mode 100644 tests/tests/newusers/43_create_user_encrypt_SHA256_rounds_3000/config.txt create mode 100644 tests/tests/newusers/43_create_user_encrypt_SHA256_rounds_3000/config/etc/group create mode 100644 tests/tests/newusers/43_create_user_encrypt_SHA256_rounds_3000/config/etc/gshadow create mode 100644 tests/tests/newusers/43_create_user_encrypt_SHA256_rounds_3000/config/etc/passwd create mode 100644 tests/tests/newusers/43_create_user_encrypt_SHA256_rounds_3000/config/etc/shadow create mode 100644 tests/tests/newusers/43_create_user_encrypt_SHA256_rounds_3000/data/group create mode 100644 tests/tests/newusers/43_create_user_encrypt_SHA256_rounds_3000/data/gshadow create mode 100644 tests/tests/newusers/43_create_user_encrypt_SHA256_rounds_3000/data/newusers.list create mode 100644 tests/tests/newusers/43_create_user_encrypt_SHA256_rounds_3000/data/passwd create mode 100644 tests/tests/newusers/43_create_user_encrypt_SHA256_rounds_3000/data/shadow create mode 100755 tests/tests/newusers/43_create_user_encrypt_SHA256_rounds_3000/newusers.test create mode 100644 tests/tests/newusers/44_create_user_encrypt_SHA256_rounds_300-PAM/config.txt create mode 100644 tests/tests/newusers/44_create_user_encrypt_SHA256_rounds_300-PAM/config/etc/group create mode 100644 tests/tests/newusers/44_create_user_encrypt_SHA256_rounds_300-PAM/config/etc/gshadow create mode 100644 tests/tests/newusers/44_create_user_encrypt_SHA256_rounds_300-PAM/config/etc/pam.d/common-password create mode 100644 tests/tests/newusers/44_create_user_encrypt_SHA256_rounds_300-PAM/config/etc/pam.d/newusers create mode 100644 tests/tests/newusers/44_create_user_encrypt_SHA256_rounds_300-PAM/config/etc/passwd create mode 100644 tests/tests/newusers/44_create_user_encrypt_SHA256_rounds_300-PAM/config/etc/shadow create mode 100644 tests/tests/newusers/44_create_user_encrypt_SHA256_rounds_300-PAM/data/group create mode 100644 tests/tests/newusers/44_create_user_encrypt_SHA256_rounds_300-PAM/data/gshadow create mode 100644 tests/tests/newusers/44_create_user_encrypt_SHA256_rounds_300-PAM/data/newusers.list create mode 100644 tests/tests/newusers/44_create_user_encrypt_SHA256_rounds_300-PAM/data/passwd create mode 100644 tests/tests/newusers/44_create_user_encrypt_SHA256_rounds_300-PAM/data/shadow create mode 100755 tests/tests/newusers/44_create_user_encrypt_SHA256_rounds_300-PAM/newusers.test create mode 100644 tests/tests/newusers/44_create_user_encrypt_SHA256_rounds_300/config.txt create mode 100644 tests/tests/newusers/44_create_user_encrypt_SHA256_rounds_300/config/etc/group create mode 100644 tests/tests/newusers/44_create_user_encrypt_SHA256_rounds_300/config/etc/gshadow create mode 100644 tests/tests/newusers/44_create_user_encrypt_SHA256_rounds_300/config/etc/passwd create mode 100644 tests/tests/newusers/44_create_user_encrypt_SHA256_rounds_300/config/etc/shadow create mode 100644 tests/tests/newusers/44_create_user_encrypt_SHA256_rounds_300/data/group create mode 100644 tests/tests/newusers/44_create_user_encrypt_SHA256_rounds_300/data/gshadow create mode 100644 tests/tests/newusers/44_create_user_encrypt_SHA256_rounds_300/data/newusers.list create mode 100644 tests/tests/newusers/44_create_user_encrypt_SHA256_rounds_300/data/passwd create mode 100644 tests/tests/newusers/44_create_user_encrypt_SHA256_rounds_300/data/shadow create mode 100755 tests/tests/newusers/44_create_user_encrypt_SHA256_rounds_300/newusers.test create mode 100644 tests/tests/newusers/45_create_user_encrypt_rounds_3000/config.txt create mode 100644 tests/tests/newusers/45_create_user_encrypt_rounds_3000/config/etc/group create mode 100644 tests/tests/newusers/45_create_user_encrypt_rounds_3000/config/etc/gshadow create mode 100644 tests/tests/newusers/45_create_user_encrypt_rounds_3000/config/etc/passwd create mode 100644 tests/tests/newusers/45_create_user_encrypt_rounds_3000/config/etc/shadow create mode 100644 tests/tests/newusers/45_create_user_encrypt_rounds_3000/data/newusers.err create mode 100644 tests/tests/newusers/45_create_user_encrypt_rounds_3000/data/newusers.list create mode 100755 tests/tests/newusers/45_create_user_encrypt_rounds_3000/newusers.test create mode 100644 tests/tests/newusers/46_create_user_encrypt_MD5_ignore_rounds_3000/config.txt create mode 100644 tests/tests/newusers/46_create_user_encrypt_MD5_ignore_rounds_3000/config/etc/group create mode 100644 tests/tests/newusers/46_create_user_encrypt_MD5_ignore_rounds_3000/config/etc/gshadow create mode 100644 tests/tests/newusers/46_create_user_encrypt_MD5_ignore_rounds_3000/config/etc/passwd create mode 100644 tests/tests/newusers/46_create_user_encrypt_MD5_ignore_rounds_3000/config/etc/shadow create mode 100644 tests/tests/newusers/46_create_user_encrypt_MD5_ignore_rounds_3000/data/group create mode 100644 tests/tests/newusers/46_create_user_encrypt_MD5_ignore_rounds_3000/data/gshadow create mode 100644 tests/tests/newusers/46_create_user_encrypt_MD5_ignore_rounds_3000/data/newusers.list create mode 100644 tests/tests/newusers/46_create_user_encrypt_MD5_ignore_rounds_3000/data/passwd create mode 100644 tests/tests/newusers/46_create_user_encrypt_MD5_ignore_rounds_3000/data/shadow create mode 100755 tests/tests/newusers/46_create_user_encrypt_MD5_ignore_rounds_3000/newusers.test create mode 100644 tests/tests/newusers/47_create_user_error_UID_4294967295/config.txt create mode 100644 tests/tests/newusers/47_create_user_error_UID_4294967295/config/etc/group create mode 100644 tests/tests/newusers/47_create_user_error_UID_4294967295/config/etc/gshadow create mode 100644 tests/tests/newusers/47_create_user_error_UID_4294967295/config/etc/passwd create mode 100644 tests/tests/newusers/47_create_user_error_UID_4294967295/config/etc/shadow create mode 100644 tests/tests/newusers/47_create_user_error_UID_4294967295/data/newusers.err create mode 100644 tests/tests/newusers/47_create_user_error_UID_4294967295/data/newusers.list create mode 100755 tests/tests/newusers/47_create_user_error_UID_4294967295/newusers.test create mode 100644 tests/tests/newusers/48_create_user_error_GID_4294967295/config.txt create mode 100644 tests/tests/newusers/48_create_user_error_GID_4294967295/config/etc/group create mode 100644 tests/tests/newusers/48_create_user_error_GID_4294967295/config/etc/gshadow create mode 100644 tests/tests/newusers/48_create_user_error_GID_4294967295/config/etc/passwd create mode 100644 tests/tests/newusers/48_create_user_error_GID_4294967295/config/etc/shadow create mode 100644 tests/tests/newusers/48_create_user_error_GID_4294967295/data/newusers.err create mode 100644 tests/tests/newusers/48_create_user_error_GID_4294967295/data/newusers.list create mode 100755 tests/tests/newusers/48_create_user_error_GID_4294967295/newusers.test create mode 100644 tests/tests/newusers/49_multiple_system_users/config.txt create mode 100644 tests/tests/newusers/49_multiple_system_users/config/etc/group create mode 100644 tests/tests/newusers/49_multiple_system_users/config/etc/gshadow create mode 100644 tests/tests/newusers/49_multiple_system_users/config/etc/pam.d/common-password create mode 100644 tests/tests/newusers/49_multiple_system_users/config/etc/pam.d/newusers create mode 100644 tests/tests/newusers/49_multiple_system_users/config/etc/passwd create mode 100644 tests/tests/newusers/49_multiple_system_users/config/etc/shadow create mode 100644 tests/tests/newusers/49_multiple_system_users/data/group create mode 100644 tests/tests/newusers/49_multiple_system_users/data/gshadow create mode 100644 tests/tests/newusers/49_multiple_system_users/data/newusers.list create mode 100644 tests/tests/newusers/49_multiple_system_users/data/passwd create mode 100644 tests/tests/newusers/49_multiple_system_users/data/shadow create mode 100755 tests/tests/newusers/49_multiple_system_users/newusers.test create mode 100644 tests/tests/newusers/50_usage/config.txt create mode 100644 tests/tests/newusers/50_usage/config/etc/group create mode 100644 tests/tests/newusers/50_usage/config/etc/gshadow create mode 100644 tests/tests/newusers/50_usage/config/etc/passwd create mode 100644 tests/tests/newusers/50_usage/config/etc/shadow create mode 100644 tests/tests/newusers/50_usage/data/usage.out create mode 100755 tests/tests/newusers/50_usage/newusers.test create mode 100644 tests/tests/newusers/51_usage_invalid_option/config.txt create mode 100644 tests/tests/newusers/51_usage_invalid_option/config/etc/group create mode 100644 tests/tests/newusers/51_usage_invalid_option/config/etc/gshadow create mode 100644 tests/tests/newusers/51_usage_invalid_option/config/etc/passwd create mode 100644 tests/tests/newusers/51_usage_invalid_option/config/etc/shadow create mode 100644 tests/tests/newusers/51_usage_invalid_option/data/usage.out create mode 100755 tests/tests/newusers/51_usage_invalid_option/newusers.test create mode 100644 tests/tests/newusers/52_usage_2_input_files/config.txt create mode 100644 tests/tests/newusers/52_usage_2_input_files/config/etc/group create mode 100644 tests/tests/newusers/52_usage_2_input_files/config/etc/gshadow create mode 100644 tests/tests/newusers/52_usage_2_input_files/config/etc/passwd create mode 100644 tests/tests/newusers/52_usage_2_input_files/config/etc/shadow create mode 100644 tests/tests/newusers/52_usage_2_input_files/data/usage.out create mode 100755 tests/tests/newusers/52_usage_2_input_files/newusers.test create mode 100644 tests/tests/newusers/53_locked_passwd/config.txt create mode 100644 tests/tests/newusers/53_locked_passwd/config/etc/group create mode 100644 tests/tests/newusers/53_locked_passwd/config/etc/gshadow create mode 100644 tests/tests/newusers/53_locked_passwd/config/etc/passwd create mode 100644 tests/tests/newusers/53_locked_passwd/config/etc/shadow create mode 100644 tests/tests/newusers/53_locked_passwd/data/newusers.list create mode 100644 tests/tests/newusers/53_locked_passwd/data/usage.out create mode 100755 tests/tests/newusers/53_locked_passwd/newusers.test create mode 100644 tests/tests/newusers/54_locked_shadow/config.txt create mode 100644 tests/tests/newusers/54_locked_shadow/config/etc/group create mode 100644 tests/tests/newusers/54_locked_shadow/config/etc/gshadow create mode 100644 tests/tests/newusers/54_locked_shadow/config/etc/passwd create mode 100644 tests/tests/newusers/54_locked_shadow/config/etc/shadow create mode 100644 tests/tests/newusers/54_locked_shadow/data/newusers.list create mode 100644 tests/tests/newusers/54_locked_shadow/data/usage.out create mode 100755 tests/tests/newusers/54_locked_shadow/newusers.test create mode 100644 tests/tests/newusers/55_locked_group/config.txt create mode 100644 tests/tests/newusers/55_locked_group/config/etc/group create mode 100644 tests/tests/newusers/55_locked_group/config/etc/gshadow create mode 100644 tests/tests/newusers/55_locked_group/config/etc/passwd create mode 100644 tests/tests/newusers/55_locked_group/config/etc/shadow create mode 100644 tests/tests/newusers/55_locked_group/data/newusers.list create mode 100644 tests/tests/newusers/55_locked_group/data/usage.out create mode 100755 tests/tests/newusers/55_locked_group/newusers.test create mode 100644 tests/tests/newusers/56_locked_gshadow/config.txt create mode 100644 tests/tests/newusers/56_locked_gshadow/config/etc/group create mode 100644 tests/tests/newusers/56_locked_gshadow/config/etc/gshadow create mode 100644 tests/tests/newusers/56_locked_gshadow/config/etc/passwd create mode 100644 tests/tests/newusers/56_locked_gshadow/config/etc/shadow create mode 100644 tests/tests/newusers/56_locked_gshadow/data/newusers.list create mode 100644 tests/tests/newusers/56_locked_gshadow/data/usage.out create mode 100755 tests/tests/newusers/56_locked_gshadow/newusers.test create mode 100644 tests/tests/newusers/57_missing_input_file/config.txt create mode 100644 tests/tests/newusers/57_missing_input_file/config/etc/group create mode 100644 tests/tests/newusers/57_missing_input_file/config/etc/gshadow create mode 100644 tests/tests/newusers/57_missing_input_file/config/etc/passwd create mode 100644 tests/tests/newusers/57_missing_input_file/config/etc/shadow create mode 100644 tests/tests/newusers/57_missing_input_file/data/usage.out create mode 100755 tests/tests/newusers/57_missing_input_file/newusers.test create mode 100644 tests/tests/newusers/58_invalid_input_file/config.txt create mode 100644 tests/tests/newusers/58_invalid_input_file/config/etc/group create mode 100644 tests/tests/newusers/58_invalid_input_file/config/etc/gshadow create mode 100644 tests/tests/newusers/58_invalid_input_file/config/etc/passwd create mode 100644 tests/tests/newusers/58_invalid_input_file/config/etc/shadow create mode 100644 tests/tests/newusers/58_invalid_input_file/data/newusers.err create mode 100644 tests/tests/newusers/58_invalid_input_file/data/newusers.list create mode 100755 tests/tests/newusers/58_invalid_input_file/newusers.test create mode 100644 tests/tests/newusers/59_no_gshadow_file/config.txt create mode 100644 tests/tests/newusers/59_no_gshadow_file/config/etc/group create mode 100644 tests/tests/newusers/59_no_gshadow_file/config/etc/gshadow create mode 100644 tests/tests/newusers/59_no_gshadow_file/config/etc/pam.d/common-password create mode 100644 tests/tests/newusers/59_no_gshadow_file/config/etc/pam.d/newusers create mode 100644 tests/tests/newusers/59_no_gshadow_file/config/etc/passwd create mode 100644 tests/tests/newusers/59_no_gshadow_file/config/etc/shadow create mode 100644 tests/tests/newusers/59_no_gshadow_file/data/group create mode 100644 tests/tests/newusers/59_no_gshadow_file/data/newusers.list create mode 100644 tests/tests/newusers/59_no_gshadow_file/data/passwd create mode 100644 tests/tests/newusers/59_no_gshadow_file/data/shadow create mode 100755 tests/tests/newusers/59_no_gshadow_file/newusers.test create mode 100644 tests/tests/newusers/60_update_no_gecos/config.txt create mode 100644 tests/tests/newusers/60_update_no_gecos/config/etc/group create mode 100644 tests/tests/newusers/60_update_no_gecos/config/etc/gshadow create mode 100644 tests/tests/newusers/60_update_no_gecos/config/etc/pam.d/common-password create mode 100644 tests/tests/newusers/60_update_no_gecos/config/etc/pam.d/newusers create mode 100644 tests/tests/newusers/60_update_no_gecos/config/etc/passwd create mode 100644 tests/tests/newusers/60_update_no_gecos/config/etc/shadow create mode 100644 tests/tests/newusers/60_update_no_gecos/data/newusers.list create mode 100644 tests/tests/newusers/60_update_no_gecos/data/passwd create mode 100644 tests/tests/newusers/60_update_no_gecos/data/shadow create mode 100755 tests/tests/newusers/60_update_no_gecos/newusers.test create mode 100644 tests/tests/newusers/61_update_no_shell/config.txt create mode 100644 tests/tests/newusers/61_update_no_shell/config/etc/group create mode 100644 tests/tests/newusers/61_update_no_shell/config/etc/gshadow create mode 100644 tests/tests/newusers/61_update_no_shell/config/etc/pam.d/common-password create mode 100644 tests/tests/newusers/61_update_no_shell/config/etc/pam.d/newusers create mode 100644 tests/tests/newusers/61_update_no_shell/config/etc/passwd create mode 100644 tests/tests/newusers/61_update_no_shell/config/etc/shadow create mode 100644 tests/tests/newusers/61_update_no_shell/data/newusers.list create mode 100644 tests/tests/newusers/61_update_no_shell/data/passwd create mode 100644 tests/tests/newusers/61_update_no_shell/data/shadow create mode 100755 tests/tests/newusers/61_update_no_shell/newusers.test create mode 100644 tests/tests/passwd/01_passwd_-S_root_locked_account/config/etc/group create mode 100644 tests/tests/passwd/01_passwd_-S_root_locked_account/config/etc/gshadow create mode 100644 tests/tests/passwd/01_passwd_-S_root_locked_account/config/etc/passwd create mode 100644 tests/tests/passwd/01_passwd_-S_root_locked_account/config/etc/shadow create mode 100644 tests/tests/passwd/01_passwd_-S_root_locked_account/data/passwd.out create mode 100755 tests/tests/passwd/01_passwd_-S_root_locked_account/passwd.test create mode 100644 tests/tests/passwd/02_passwd_-S_root_valid_account/config/etc/group create mode 100644 tests/tests/passwd/02_passwd_-S_root_valid_account/config/etc/gshadow create mode 100644 tests/tests/passwd/02_passwd_-S_root_valid_account/config/etc/passwd create mode 100644 tests/tests/passwd/02_passwd_-S_root_valid_account/config/etc/shadow create mode 100644 tests/tests/passwd/02_passwd_-S_root_valid_account/data/passwd.out create mode 100755 tests/tests/passwd/02_passwd_-S_root_valid_account/passwd.test create mode 100644 tests/tests/passwd/03_passwd_-S_root_empty_password/config/etc/group create mode 100644 tests/tests/passwd/03_passwd_-S_root_empty_password/config/etc/gshadow create mode 100644 tests/tests/passwd/03_passwd_-S_root_empty_password/config/etc/passwd create mode 100644 tests/tests/passwd/03_passwd_-S_root_empty_password/config/etc/shadow create mode 100644 tests/tests/passwd/03_passwd_-S_root_empty_password/data/passwd.out create mode 100755 tests/tests/passwd/03_passwd_-S_root_empty_password/passwd.test create mode 100644 tests/tests/passwd/04_passwd_-S_root_valid_account_no_shadow_file/config/etc/group create mode 100644 tests/tests/passwd/04_passwd_-S_root_valid_account_no_shadow_file/config/etc/gshadow create mode 100644 tests/tests/passwd/04_passwd_-S_root_valid_account_no_shadow_file/config/etc/passwd create mode 100644 tests/tests/passwd/04_passwd_-S_root_valid_account_no_shadow_file/config/etc/shadow create mode 100644 tests/tests/passwd/04_passwd_-S_root_valid_account_no_shadow_file/data/passwd.out create mode 100755 tests/tests/passwd/04_passwd_-S_root_valid_account_no_shadow_file/passwd.test create mode 100644 tests/tests/passwd/05_passwd_-S_root_valid_account_no_shadow_entry/config/etc/group create mode 100644 tests/tests/passwd/05_passwd_-S_root_valid_account_no_shadow_entry/config/etc/gshadow create mode 100644 tests/tests/passwd/05_passwd_-S_root_valid_account_no_shadow_entry/config/etc/passwd create mode 100644 tests/tests/passwd/05_passwd_-S_root_valid_account_no_shadow_entry/config/etc/shadow create mode 100644 tests/tests/passwd/05_passwd_-S_root_valid_account_no_shadow_entry/data/passwd.out create mode 100755 tests/tests/passwd/05_passwd_-S_root_valid_account_no_shadow_entry/passwd.test create mode 100644 tests/tests/passwd/06_passwd_-l_root_lock_account/config/etc/group create mode 100644 tests/tests/passwd/06_passwd_-l_root_lock_account/config/etc/gshadow create mode 100644 tests/tests/passwd/06_passwd_-l_root_lock_account/config/etc/passwd create mode 100644 tests/tests/passwd/06_passwd_-l_root_lock_account/config/etc/shadow create mode 100644 tests/tests/passwd/06_passwd_-l_root_lock_account/data/passwd.out create mode 100644 tests/tests/passwd/06_passwd_-l_root_lock_account/data/shadow create mode 100755 tests/tests/passwd/06_passwd_-l_root_lock_account/passwd.test create mode 100644 tests/tests/passwd/07_passwd_-l_root_lock_account_no_shadow_entry/config/etc/group create mode 100644 tests/tests/passwd/07_passwd_-l_root_lock_account_no_shadow_entry/config/etc/gshadow create mode 100644 tests/tests/passwd/07_passwd_-l_root_lock_account_no_shadow_entry/config/etc/passwd create mode 100644 tests/tests/passwd/07_passwd_-l_root_lock_account_no_shadow_entry/config/etc/shadow create mode 100644 tests/tests/passwd/07_passwd_-l_root_lock_account_no_shadow_entry/data/passwd create mode 100644 tests/tests/passwd/07_passwd_-l_root_lock_account_no_shadow_entry/data/passwd.out create mode 100755 tests/tests/passwd/07_passwd_-l_root_lock_account_no_shadow_entry/passwd.test create mode 100644 tests/tests/passwd/08_passwd_-u_root_unlock_account/config/etc/group create mode 100644 tests/tests/passwd/08_passwd_-u_root_unlock_account/config/etc/gshadow create mode 100644 tests/tests/passwd/08_passwd_-u_root_unlock_account/config/etc/passwd create mode 100644 tests/tests/passwd/08_passwd_-u_root_unlock_account/config/etc/shadow create mode 100644 tests/tests/passwd/08_passwd_-u_root_unlock_account/data/passwd.out create mode 100644 tests/tests/passwd/08_passwd_-u_root_unlock_account/data/shadow create mode 100755 tests/tests/passwd/08_passwd_-u_root_unlock_account/passwd.test create mode 100644 tests/tests/passwd/09_passwd_-u_root_unlock_to_empty/config/etc/group create mode 100644 tests/tests/passwd/09_passwd_-u_root_unlock_to_empty/config/etc/gshadow create mode 100644 tests/tests/passwd/09_passwd_-u_root_unlock_to_empty/config/etc/passwd create mode 100644 tests/tests/passwd/09_passwd_-u_root_unlock_to_empty/config/etc/shadow create mode 100644 tests/tests/passwd/09_passwd_-u_root_unlock_to_empty/data/passwd.err create mode 100755 tests/tests/passwd/09_passwd_-u_root_unlock_to_empty/passwd.test create mode 100644 tests/tests/passwd/10_passwd_-d_root/config/etc/group create mode 100644 tests/tests/passwd/10_passwd_-d_root/config/etc/gshadow create mode 100644 tests/tests/passwd/10_passwd_-d_root/config/etc/passwd create mode 100644 tests/tests/passwd/10_passwd_-d_root/config/etc/shadow create mode 100644 tests/tests/passwd/10_passwd_-d_root/data/passwd.out create mode 100644 tests/tests/passwd/10_passwd_-d_root/data/shadow create mode 100755 tests/tests/passwd/10_passwd_-d_root/passwd.test create mode 100644 tests/tests/passwd/11_passwd_--mindays_root/config/etc/group create mode 100644 tests/tests/passwd/11_passwd_--mindays_root/config/etc/gshadow create mode 100644 tests/tests/passwd/11_passwd_--mindays_root/config/etc/passwd create mode 100644 tests/tests/passwd/11_passwd_--mindays_root/config/etc/shadow create mode 100644 tests/tests/passwd/11_passwd_--mindays_root/data/passwd.out create mode 100644 tests/tests/passwd/11_passwd_--mindays_root/data/shadow create mode 100755 tests/tests/passwd/11_passwd_--mindays_root/passwd.test create mode 100644 tests/tests/passwd/12_passwd_--maxdays_root/config/etc/group create mode 100644 tests/tests/passwd/12_passwd_--maxdays_root/config/etc/gshadow create mode 100644 tests/tests/passwd/12_passwd_--maxdays_root/config/etc/passwd create mode 100644 tests/tests/passwd/12_passwd_--maxdays_root/config/etc/shadow create mode 100644 tests/tests/passwd/12_passwd_--maxdays_root/data/passwd.out create mode 100644 tests/tests/passwd/12_passwd_--maxdays_root/data/shadow create mode 100755 tests/tests/passwd/12_passwd_--maxdays_root/passwd.test create mode 100644 tests/tests/passwd/13_passwd_--warndays_root/config/etc/group create mode 100644 tests/tests/passwd/13_passwd_--warndays_root/config/etc/gshadow create mode 100644 tests/tests/passwd/13_passwd_--warndays_root/config/etc/passwd create mode 100644 tests/tests/passwd/13_passwd_--warndays_root/config/etc/shadow create mode 100644 tests/tests/passwd/13_passwd_--warndays_root/data/passwd.out create mode 100644 tests/tests/passwd/13_passwd_--warndays_root/data/shadow create mode 100755 tests/tests/passwd/13_passwd_--warndays_root/passwd.test create mode 100644 tests/tests/passwd/14_passwd_--inactive_root/config/etc/group create mode 100644 tests/tests/passwd/14_passwd_--inactive_root/config/etc/gshadow create mode 100644 tests/tests/passwd/14_passwd_--inactive_root/config/etc/passwd create mode 100644 tests/tests/passwd/14_passwd_--inactive_root/config/etc/shadow create mode 100644 tests/tests/passwd/14_passwd_--inactive_root/data/passwd.out create mode 100644 tests/tests/passwd/14_passwd_--inactive_root/data/shadow create mode 100755 tests/tests/passwd/14_passwd_--inactive_root/passwd.test create mode 100644 tests/tests/passwd/15_passwd_--expire_root/config/etc/group create mode 100644 tests/tests/passwd/15_passwd_--expire_root/config/etc/gshadow create mode 100644 tests/tests/passwd/15_passwd_--expire_root/config/etc/passwd create mode 100644 tests/tests/passwd/15_passwd_--expire_root/config/etc/shadow create mode 100644 tests/tests/passwd/15_passwd_--expire_root/data/passwd.out create mode 100644 tests/tests/passwd/15_passwd_--expire_root/data/shadow create mode 100755 tests/tests/passwd/15_passwd_--expire_root/passwd.test create mode 100644 tests/tests/passwd/16_passwd_-S-a_root/config/etc/group create mode 100644 tests/tests/passwd/16_passwd_-S-a_root/config/etc/gshadow create mode 100644 tests/tests/passwd/16_passwd_-S-a_root/config/etc/passwd create mode 100644 tests/tests/passwd/16_passwd_-S-a_root/config/etc/shadow create mode 100644 tests/tests/passwd/16_passwd_-S-a_root/data/passwd.out create mode 100755 tests/tests/passwd/16_passwd_-S-a_root/passwd.test create mode 100644 tests/tests/passwd/17_passwd_root_change_password/config/etc/group create mode 100644 tests/tests/passwd/17_passwd_root_change_password/config/etc/gshadow create mode 100644 tests/tests/passwd/17_passwd_root_change_password/config/etc/pam.d/common-password create mode 100644 tests/tests/passwd/17_passwd_root_change_password/config/etc/passwd create mode 100644 tests/tests/passwd/17_passwd_root_change_password/config/etc/shadow create mode 100644 tests/tests/passwd/17_passwd_root_change_password/data/shadow create mode 100755 tests/tests/passwd/17_passwd_root_change_password/passwd.exp create mode 100755 tests/tests/passwd/17_passwd_root_change_password/passwd.test create mode 100644 tests/tests/passwd/18_passwd_root_change_password_user/config/etc/group create mode 100644 tests/tests/passwd/18_passwd_root_change_password_user/config/etc/gshadow create mode 100644 tests/tests/passwd/18_passwd_root_change_password_user/config/etc/pam.d/common-password create mode 100644 tests/tests/passwd/18_passwd_root_change_password_user/config/etc/passwd create mode 100644 tests/tests/passwd/18_passwd_root_change_password_user/config/etc/shadow create mode 100644 tests/tests/passwd/18_passwd_root_change_password_user/data/shadow create mode 100755 tests/tests/passwd/18_passwd_root_change_password_user/passwd.exp create mode 100755 tests/tests/passwd/18_passwd_root_change_password_user/passwd.test create mode 100644 tests/tests/passwd/19_passwd_user_change_password/config/etc/group create mode 100644 tests/tests/passwd/19_passwd_user_change_password/config/etc/gshadow create mode 100644 tests/tests/passwd/19_passwd_user_change_password/config/etc/pam.d/common-password create mode 100644 tests/tests/passwd/19_passwd_user_change_password/config/etc/passwd create mode 100644 tests/tests/passwd/19_passwd_user_change_password/config/etc/shadow create mode 100644 tests/tests/passwd/19_passwd_user_change_password/data/shadow create mode 100755 tests/tests/passwd/19_passwd_user_change_password/passwd.exp create mode 100755 tests/tests/passwd/19_passwd_user_change_password/passwd.test create mode 100644 tests/tests/passwd/20_passwd_user_change_password_same_user/config/etc/group create mode 100644 tests/tests/passwd/20_passwd_user_change_password_same_user/config/etc/gshadow create mode 100644 tests/tests/passwd/20_passwd_user_change_password_same_user/config/etc/pam.d/common-password create mode 100644 tests/tests/passwd/20_passwd_user_change_password_same_user/config/etc/passwd create mode 100644 tests/tests/passwd/20_passwd_user_change_password_same_user/config/etc/shadow create mode 100644 tests/tests/passwd/20_passwd_user_change_password_same_user/data/shadow create mode 100755 tests/tests/passwd/20_passwd_user_change_password_same_user/passwd.exp create mode 100755 tests/tests/passwd/20_passwd_user_change_password_same_user/passwd.test create mode 100644 tests/tests/passwd/21_passwd_user_change_password_other_user/config/etc/group create mode 100644 tests/tests/passwd/21_passwd_user_change_password_other_user/config/etc/gshadow create mode 100644 tests/tests/passwd/21_passwd_user_change_password_other_user/config/etc/passwd create mode 100644 tests/tests/passwd/21_passwd_user_change_password_other_user/config/etc/shadow create mode 100644 tests/tests/passwd/21_passwd_user_change_password_other_user/data/passwd.err create mode 100755 tests/tests/passwd/21_passwd_user_change_password_other_user/passwd.test create mode 100644 tests/tests/passwd/22_passwd_usage/config.txt create mode 100644 tests/tests/passwd/22_passwd_usage/config/etc/group create mode 100644 tests/tests/passwd/22_passwd_usage/config/etc/gshadow create mode 100644 tests/tests/passwd/22_passwd_usage/config/etc/passwd create mode 100644 tests/tests/passwd/22_passwd_usage/config/etc/shadow create mode 100644 tests/tests/passwd/22_passwd_usage/data/usage.out create mode 100755 tests/tests/passwd/22_passwd_usage/passwd.test create mode 100755 tests/tests/run_all create mode 100755 tests/tests/run_all.coverage create mode 100755 tests/tests/run_some create mode 100644 tests/tests/split_groups/01_useradd_split_group/config.txt create mode 100644 tests/tests/split_groups/01_useradd_split_group/config/etc/default/useradd create mode 100644 tests/tests/split_groups/01_useradd_split_group/config/etc/group create mode 100644 tests/tests/split_groups/01_useradd_split_group/config/etc/gshadow create mode 100644 tests/tests/split_groups/01_useradd_split_group/config/etc/login.defs create mode 100644 tests/tests/split_groups/01_useradd_split_group/config/etc/passwd create mode 100644 tests/tests/split_groups/01_useradd_split_group/config/etc/shadow create mode 100644 tests/tests/split_groups/01_useradd_split_group/data/group create mode 100644 tests/tests/split_groups/01_useradd_split_group/data/gshadow create mode 100644 tests/tests/split_groups/01_useradd_split_group/data/passwd create mode 100644 tests/tests/split_groups/01_useradd_split_group/data/shadow create mode 100755 tests/tests/split_groups/01_useradd_split_group/useradd.test create mode 100644 tests/tests/split_groups/02_useradd_no_split_group/config.txt create mode 100644 tests/tests/split_groups/02_useradd_no_split_group/config/etc/default/useradd create mode 100644 tests/tests/split_groups/02_useradd_no_split_group/config/etc/group create mode 100644 tests/tests/split_groups/02_useradd_no_split_group/config/etc/gshadow create mode 100644 tests/tests/split_groups/02_useradd_no_split_group/config/etc/login.defs create mode 100644 tests/tests/split_groups/02_useradd_no_split_group/config/etc/passwd create mode 100644 tests/tests/split_groups/02_useradd_no_split_group/config/etc/shadow create mode 100644 tests/tests/split_groups/02_useradd_no_split_group/data/group create mode 100644 tests/tests/split_groups/02_useradd_no_split_group/data/gshadow create mode 100644 tests/tests/split_groups/02_useradd_no_split_group/data/passwd create mode 100644 tests/tests/split_groups/02_useradd_no_split_group/data/shadow create mode 100755 tests/tests/split_groups/02_useradd_no_split_group/useradd.test create mode 100644 tests/tests/split_groups/03_useradd_split_group_already_split/config.txt create mode 100644 tests/tests/split_groups/03_useradd_split_group_already_split/config/etc/default/useradd create mode 100644 tests/tests/split_groups/03_useradd_split_group_already_split/config/etc/group create mode 100644 tests/tests/split_groups/03_useradd_split_group_already_split/config/etc/gshadow create mode 100644 tests/tests/split_groups/03_useradd_split_group_already_split/config/etc/login.defs create mode 100644 tests/tests/split_groups/03_useradd_split_group_already_split/config/etc/passwd create mode 100644 tests/tests/split_groups/03_useradd_split_group_already_split/config/etc/shadow create mode 100644 tests/tests/split_groups/03_useradd_split_group_already_split/data/group create mode 100644 tests/tests/split_groups/03_useradd_split_group_already_split/data/gshadow create mode 100644 tests/tests/split_groups/03_useradd_split_group_already_split/data/passwd create mode 100644 tests/tests/split_groups/03_useradd_split_group_already_split/data/shadow create mode 100755 tests/tests/split_groups/03_useradd_split_group_already_split/useradd.test create mode 100644 tests/tests/split_groups/04_useradd_split_group_already_full/config.txt create mode 100644 tests/tests/split_groups/04_useradd_split_group_already_full/config/etc/default/useradd create mode 100644 tests/tests/split_groups/04_useradd_split_group_already_full/config/etc/group create mode 100644 tests/tests/split_groups/04_useradd_split_group_already_full/config/etc/gshadow create mode 100644 tests/tests/split_groups/04_useradd_split_group_already_full/config/etc/login.defs create mode 100644 tests/tests/split_groups/04_useradd_split_group_already_full/config/etc/passwd create mode 100644 tests/tests/split_groups/04_useradd_split_group_already_full/config/etc/shadow create mode 100644 tests/tests/split_groups/04_useradd_split_group_already_full/data/group create mode 100644 tests/tests/split_groups/04_useradd_split_group_already_full/data/gshadow create mode 100644 tests/tests/split_groups/04_useradd_split_group_already_full/data/passwd create mode 100644 tests/tests/split_groups/04_useradd_split_group_already_full/data/shadow create mode 100755 tests/tests/split_groups/04_useradd_split_group_already_full/useradd.test create mode 100644 tests/tests/split_groups/05_useradd_split_group_already_split_passwd_differ/config.txt create mode 100644 tests/tests/split_groups/05_useradd_split_group_already_split_passwd_differ/config/etc/group create mode 100644 tests/tests/split_groups/05_useradd_split_group_already_split_passwd_differ/config/etc/gshadow create mode 100644 tests/tests/split_groups/05_useradd_split_group_already_split_passwd_differ/config/etc/login.defs create mode 100644 tests/tests/split_groups/05_useradd_split_group_already_split_passwd_differ/config/etc/passwd create mode 100644 tests/tests/split_groups/05_useradd_split_group_already_split_passwd_differ/config/etc/shadow create mode 100644 tests/tests/split_groups/05_useradd_split_group_already_split_passwd_differ/data/useradd.err create mode 100755 tests/tests/split_groups/05_useradd_split_group_already_split_passwd_differ/useradd.test create mode 100644 tests/tests/split_groups/06_useradd_split_group_already_split_GID_differ/config.txt create mode 100644 tests/tests/split_groups/06_useradd_split_group_already_split_GID_differ/config/etc/group create mode 100644 tests/tests/split_groups/06_useradd_split_group_already_split_GID_differ/config/etc/gshadow create mode 100644 tests/tests/split_groups/06_useradd_split_group_already_split_GID_differ/config/etc/login.defs create mode 100644 tests/tests/split_groups/06_useradd_split_group_already_split_GID_differ/config/etc/passwd create mode 100644 tests/tests/split_groups/06_useradd_split_group_already_split_GID_differ/config/etc/shadow create mode 100644 tests/tests/split_groups/06_useradd_split_group_already_split_GID_differ/data/useradd.err create mode 100755 tests/tests/split_groups/06_useradd_split_group_already_split_GID_differ/useradd.test create mode 100644 tests/tests/split_groups/07_useradd_split_group_already_split_user_in_both_lines/config.txt create mode 100644 tests/tests/split_groups/07_useradd_split_group_already_split_user_in_both_lines/config/etc/default/useradd create mode 100644 tests/tests/split_groups/07_useradd_split_group_already_split_user_in_both_lines/config/etc/group create mode 100644 tests/tests/split_groups/07_useradd_split_group_already_split_user_in_both_lines/config/etc/gshadow create mode 100644 tests/tests/split_groups/07_useradd_split_group_already_split_user_in_both_lines/config/etc/login.defs create mode 100644 tests/tests/split_groups/07_useradd_split_group_already_split_user_in_both_lines/config/etc/passwd create mode 100644 tests/tests/split_groups/07_useradd_split_group_already_split_user_in_both_lines/config/etc/shadow create mode 100644 tests/tests/split_groups/07_useradd_split_group_already_split_user_in_both_lines/data/group create mode 100644 tests/tests/split_groups/07_useradd_split_group_already_split_user_in_both_lines/data/gshadow create mode 100644 tests/tests/split_groups/07_useradd_split_group_already_split_user_in_both_lines/data/passwd create mode 100644 tests/tests/split_groups/07_useradd_split_group_already_split_user_in_both_lines/data/shadow create mode 100755 tests/tests/split_groups/07_useradd_split_group_already_split_user_in_both_lines/useradd.test create mode 100644 tests/tests/split_groups/08_useradd_no_split_group_already_split/config.txt create mode 100644 tests/tests/split_groups/08_useradd_no_split_group_already_split/config/etc/group create mode 100644 tests/tests/split_groups/08_useradd_no_split_group_already_split/config/etc/gshadow create mode 100644 tests/tests/split_groups/08_useradd_no_split_group_already_split/config/etc/login.defs create mode 100644 tests/tests/split_groups/08_useradd_no_split_group_already_split/config/etc/passwd create mode 100644 tests/tests/split_groups/08_useradd_no_split_group_already_split/config/etc/shadow create mode 100644 tests/tests/split_groups/08_useradd_no_split_group_already_split/data/useradd.err create mode 100755 tests/tests/split_groups/08_useradd_no_split_group_already_split/useradd.test create mode 100644 tests/tests/split_groups/09_groupdel_split_group_already_split/config.txt create mode 100644 tests/tests/split_groups/09_groupdel_split_group_already_split/config/etc/group create mode 100644 tests/tests/split_groups/09_groupdel_split_group_already_split/config/etc/gshadow create mode 100644 tests/tests/split_groups/09_groupdel_split_group_already_split/config/etc/login.defs create mode 100644 tests/tests/split_groups/09_groupdel_split_group_already_split/config/etc/passwd create mode 100644 tests/tests/split_groups/09_groupdel_split_group_already_split/config/etc/shadow create mode 100644 tests/tests/split_groups/09_groupdel_split_group_already_split/data/group create mode 100644 tests/tests/split_groups/09_groupdel_split_group_already_split/data/gshadow create mode 100755 tests/tests/split_groups/09_groupdel_split_group_already_split/groupdel.test create mode 100644 tests/tests/split_groups/10_groupdel_no_split_group_already_split/config.txt create mode 100644 tests/tests/split_groups/10_groupdel_no_split_group_already_split/config/etc/group create mode 100644 tests/tests/split_groups/10_groupdel_no_split_group_already_split/config/etc/gshadow create mode 100644 tests/tests/split_groups/10_groupdel_no_split_group_already_split/config/etc/login.defs create mode 100644 tests/tests/split_groups/10_groupdel_no_split_group_already_split/config/etc/passwd create mode 100644 tests/tests/split_groups/10_groupdel_no_split_group_already_split/config/etc/shadow create mode 100644 tests/tests/split_groups/10_groupdel_no_split_group_already_split/data/groupdel.err create mode 100755 tests/tests/split_groups/10_groupdel_no_split_group_already_split/groupdel.test create mode 100644 tests/tests/su/01/config.txt create mode 100644 tests/tests/su/01/config/etc/group create mode 100644 tests/tests/su/01/config/etc/gshadow create mode 100644 tests/tests/su/01/config/etc/passwd create mode 100644 tests/tests/su/01/config/etc/shadow create mode 100755 tests/tests/su/01/run_su.exp create mode 100755 tests/tests/su/01/su_root.test create mode 100755 tests/tests/su/01/su_user.test create mode 100644 tests/tests/su/02/config.txt create mode 100644 tests/tests/su/02/config/etc/group create mode 100644 tests/tests/su/02/config/etc/gshadow create mode 100644 tests/tests/su/02/config/etc/passwd create mode 100644 tests/tests/su/02/config/etc/profile create mode 100644 tests/tests/su/02/config/etc/shadow create mode 100755 tests/tests/su/02/env_FOO-options_ create mode 100755 tests/tests/su/02/env_FOO-options_- create mode 100755 tests/tests/su/02/env_FOO-options_--login create mode 100755 tests/tests/su/02/env_FOO-options_--login.exp create mode 100755 tests/tests/su/02/env_FOO-options_--login_bash create mode 100755 tests/tests/su/02/env_FOO-options_--preserve-environment create mode 100755 tests/tests/su/02/env_FOO-options_--preserve-environment.exp create mode 100755 tests/tests/su/02/env_FOO-options_--preserve-environment_bash create mode 100755 tests/tests/su/02/env_FOO-options_-.exp create mode 100755 tests/tests/su/02/env_FOO-options_-_bash create mode 100755 tests/tests/su/02/env_FOO-options_-l create mode 100755 tests/tests/su/02/env_FOO-options_-l-m create mode 100755 tests/tests/su/02/env_FOO-options_-l-m.exp create mode 100755 tests/tests/su/02/env_FOO-options_-l-m_bash create mode 100755 tests/tests/su/02/env_FOO-options_-l.exp create mode 100755 tests/tests/su/02/env_FOO-options_-l_bash create mode 100755 tests/tests/su/02/env_FOO-options_-m create mode 100755 tests/tests/su/02/env_FOO-options_-m.exp create mode 100755 tests/tests/su/02/env_FOO-options_-m_bash create mode 100755 tests/tests/su/02/env_FOO-options_-p create mode 100755 tests/tests/su/02/env_FOO-options_-p- create mode 100755 tests/tests/su/02/env_FOO-options_-p-.exp create mode 100755 tests/tests/su/02/env_FOO-options_-p-_bash create mode 100755 tests/tests/su/02/env_FOO-options_-p.exp create mode 100755 tests/tests/su/02/env_FOO-options_-p_bash create mode 100755 tests/tests/su/02/env_FOO-options_.exp create mode 100755 tests/tests/su/02/env_FOO-options__bash create mode 100755 tests/tests/su/02/env_special-options_ create mode 100755 tests/tests/su/02/env_special-options_-l create mode 100755 tests/tests/su/02/env_special-options_-l-p create mode 100755 tests/tests/su/02/env_special-options_-l-p.exp create mode 100755 tests/tests/su/02/env_special-options_-l-p_bash create mode 100755 tests/tests/su/02/env_special-options_-l.exp create mode 100755 tests/tests/su/02/env_special-options_-l_bash create mode 100755 tests/tests/su/02/env_special-options_-p create mode 100755 tests/tests/su/02/env_special-options_-p.exp create mode 100755 tests/tests/su/02/env_special-options_-p_bash create mode 100755 tests/tests/su/02/env_special-options_.exp create mode 100755 tests/tests/su/02/env_special-options__bash create mode 100755 tests/tests/su/02/env_special_root-options_ create mode 100755 tests/tests/su/02/env_special_root-options_-l create mode 100755 tests/tests/su/02/env_special_root-options_-l-p create mode 100755 tests/tests/su/02/env_special_root-options_-l-p.exp create mode 100755 tests/tests/su/02/env_special_root-options_-l-p_bash create mode 100755 tests/tests/su/02/env_special_root-options_-l.exp create mode 100755 tests/tests/su/02/env_special_root-options_-l_bash create mode 100755 tests/tests/su/02/env_special_root-options_-p create mode 100755 tests/tests/su/02/env_special_root-options_-p.exp create mode 100755 tests/tests/su/02/env_special_root-options_-p_bash create mode 100755 tests/tests/su/02/env_special_root-options_.exp create mode 100755 tests/tests/su/02/env_special_root-options__bash create mode 100755 tests/tests/su/02/run_env_test.sh create mode 100644 tests/tests/su/03/config/etc/group create mode 100644 tests/tests/su/03/config/etc/gshadow create mode 100644 tests/tests/su/03/config/etc/passwd create mode 100644 tests/tests/su/03/config/etc/shadow create mode 100644 tests/tests/su/03/data/ls.out create mode 100755 tests/tests/su/03/su_run_command01.test create mode 100755 tests/tests/su/03/su_run_command02.test create mode 100755 tests/tests/su/03/su_run_command03.test create mode 100755 tests/tests/su/03/su_run_command04.test create mode 100755 tests/tests/su/03/su_run_command05.test create mode 100755 tests/tests/su/03/su_run_command06.test create mode 100755 tests/tests/su/03/su_run_command07.test create mode 100755 tests/tests/su/03/su_run_command08.test create mode 100755 tests/tests/su/03/su_run_command09.test create mode 100755 tests/tests/su/03/su_run_command10.test create mode 100755 tests/tests/su/03/su_run_command11.test create mode 100755 tests/tests/su/03/su_run_command12.test create mode 100755 tests/tests/su/03/su_run_command13.test create mode 100755 tests/tests/su/03/su_run_command14.test create mode 100755 tests/tests/su/03/su_run_command15.test create mode 100755 tests/tests/su/03/su_run_command16.test create mode 100755 tests/tests/su/03/su_run_command17.test create mode 100644 tests/tests/su/04/config.txt create mode 100644 tests/tests/su/04/config/etc/group create mode 100644 tests/tests/su/04/config/etc/gshadow create mode 100644 tests/tests/su/04/config/etc/login.defs create mode 100644 tests/tests/su/04/config/etc/passwd create mode 100644 tests/tests/su/04/config/etc/shadow create mode 100644 tests/tests/su/04/config/var/log/auth.log create mode 100644 tests/tests/su/04/data/wrong_user.err create mode 100755 tests/tests/su/04/run_su_failed.exp create mode 100755 tests/tests/su/04/su_user_wrong_passwd.test create mode 100755 tests/tests/su/04/su_user_wrong_passwd_syslog.test create mode 100755 tests/tests/su/04/su_wrong_user.test create mode 100644 tests/tests/su/05/config.txt create mode 100644 tests/tests/su/05/config/etc/group create mode 100644 tests/tests/su/05/config/etc/gshadow create mode 100644 tests/tests/su/05/config/etc/login.defs create mode 100644 tests/tests/su/05/config/etc/passwd create mode 100644 tests/tests/su/05/config/etc/shadow create mode 100644 tests/tests/su/05/config/var/log/auth.log create mode 100755 tests/tests/su/05/run_su_failed.exp create mode 100755 tests/tests/su/05/su_user_wrong_passwd_syslog.test create mode 100644 tests/tests/su/06/config.txt create mode 100644 tests/tests/su/06/config/etc/group create mode 100644 tests/tests/su/06/config/etc/gshadow create mode 100644 tests/tests/su/06/config/etc/login.defs create mode 100644 tests/tests/su/06/config/etc/passwd create mode 100644 tests/tests/su/06/config/etc/shadow create mode 100644 tests/tests/su/06/config/var/log/auth.log create mode 100755 tests/tests/su/06/run_su.exp create mode 100755 tests/tests/su/06/su_user_syslog.test create mode 100644 tests/tests/su/07/config.txt create mode 100644 tests/tests/su/07/config/etc/group create mode 100644 tests/tests/su/07/config/etc/gshadow create mode 100644 tests/tests/su/07/config/etc/login.defs create mode 100644 tests/tests/su/07/config/etc/passwd create mode 100644 tests/tests/su/07/config/etc/shadow create mode 100644 tests/tests/su/07/config/var/log/auth.log create mode 100755 tests/tests/su/07/run_su.exp create mode 100755 tests/tests/su/07/su_user_syslog.test create mode 100644 tests/tests/su/08/config.txt create mode 100644 tests/tests/su/08/config/etc/group create mode 100644 tests/tests/su/08/config/etc/gshadow create mode 100644 tests/tests/su/08/config/etc/login.defs create mode 100644 tests/tests/su/08/config/etc/passwd create mode 100644 tests/tests/su/08/config/etc/shadow create mode 100755 tests/tests/su/08/env_special-options_ create mode 100755 tests/tests/su/08/env_special-options_.exp create mode 100755 tests/tests/su/08/env_special_root-options_ create mode 100755 tests/tests/su/08/env_special_root-options_.exp create mode 100644 tests/tests/su/09/config.txt create mode 100644 tests/tests/su/09/config/etc/group create mode 100644 tests/tests/su/09/config/etc/gshadow create mode 100644 tests/tests/su/09/config/etc/login.defs create mode 100644 tests/tests/su/09/config/etc/passwd create mode 100644 tests/tests/su/09/config/etc/shadow create mode 100755 tests/tests/su/09/env_special-options_ create mode 100755 tests/tests/su/09/env_special-options_.exp create mode 100755 tests/tests/su/09/env_special_root-options_ create mode 100755 tests/tests/su/09/env_special_root-options_.exp create mode 100644 tests/tests/su/10_su_sulog_success/config.txt create mode 100644 tests/tests/su/10_su_sulog_success/config/etc/group create mode 100644 tests/tests/su/10_su_sulog_success/config/etc/gshadow create mode 100644 tests/tests/su/10_su_sulog_success/config/etc/login.defs create mode 100644 tests/tests/su/10_su_sulog_success/config/etc/passwd create mode 100644 tests/tests/su/10_su_sulog_success/config/etc/shadow create mode 100644 tests/tests/su/10_su_sulog_success/config/var/log/sulog create mode 100644 tests/tests/su/10_su_sulog_success/data/sulog create mode 100755 tests/tests/su/10_su_sulog_success/run_su.exp create mode 100755 tests/tests/su/10_su_sulog_success/su.test create mode 100644 tests/tests/su/11_su_sulog_failure/config.txt create mode 100644 tests/tests/su/11_su_sulog_failure/config/etc/group create mode 100644 tests/tests/su/11_su_sulog_failure/config/etc/gshadow create mode 100644 tests/tests/su/11_su_sulog_failure/config/etc/login.defs create mode 100644 tests/tests/su/11_su_sulog_failure/config/etc/passwd create mode 100644 tests/tests/su/11_su_sulog_failure/config/etc/shadow create mode 100644 tests/tests/su/11_su_sulog_failure/config/var/log/sulog create mode 100644 tests/tests/su/11_su_sulog_failure/data/sulog create mode 100755 tests/tests/su/11_su_sulog_failure/run_su.exp create mode 100755 tests/tests/su/11_su_sulog_failure/su.test create mode 100644 tests/tests/su/12_su_child_failure/config.txt create mode 100644 tests/tests/su/12_su_child_failure/config/etc/group create mode 100644 tests/tests/su/12_su_child_failure/config/etc/gshadow create mode 100644 tests/tests/su/12_su_child_failure/config/etc/login.defs create mode 100644 tests/tests/su/12_su_child_failure/config/etc/passwd create mode 100644 tests/tests/su/12_su_child_failure/config/etc/shadow create mode 100644 tests/tests/su/12_su_child_failure/config/var/log/sulog create mode 100755 tests/tests/su/12_su_child_failure/su.test create mode 100644 tests/tests/su/13_su_child_success/config.txt create mode 100644 tests/tests/su/13_su_child_success/config/etc/group create mode 100644 tests/tests/su/13_su_child_success/config/etc/gshadow create mode 100644 tests/tests/su/13_su_child_success/config/etc/login.defs create mode 100644 tests/tests/su/13_su_child_success/config/etc/passwd create mode 100644 tests/tests/su/13_su_child_success/config/etc/shadow create mode 100644 tests/tests/su/13_su_child_success/config/var/log/sulog create mode 100755 tests/tests/su/13_su_child_success/su.test create mode 100644 tests/tests/subids/01_useradd_no_subids/config.txt create mode 100644 tests/tests/subids/01_useradd_no_subids/config/etc/default/useradd create mode 100644 tests/tests/subids/01_useradd_no_subids/config/etc/group create mode 100644 tests/tests/subids/01_useradd_no_subids/config/etc/gshadow create mode 100644 tests/tests/subids/01_useradd_no_subids/config/etc/passwd create mode 100644 tests/tests/subids/01_useradd_no_subids/config/etc/shadow create mode 100644 tests/tests/subids/01_useradd_no_subids/config/etc/subgid create mode 100644 tests/tests/subids/01_useradd_no_subids/config/etc/subuid create mode 100644 tests/tests/subids/01_useradd_no_subids/data/group create mode 100644 tests/tests/subids/01_useradd_no_subids/data/gshadow create mode 100644 tests/tests/subids/01_useradd_no_subids/data/passwd create mode 100644 tests/tests/subids/01_useradd_no_subids/data/shadow create mode 100755 tests/tests/subids/01_useradd_no_subids/useradd.test create mode 100644 tests/tests/subids/02_useradd_with_subids/config.txt create mode 100644 tests/tests/subids/02_useradd_with_subids/config/etc/default/useradd create mode 100644 tests/tests/subids/02_useradd_with_subids/config/etc/group create mode 100644 tests/tests/subids/02_useradd_with_subids/config/etc/gshadow create mode 100644 tests/tests/subids/02_useradd_with_subids/config/etc/passwd create mode 100644 tests/tests/subids/02_useradd_with_subids/config/etc/shadow create mode 100644 tests/tests/subids/02_useradd_with_subids/config/etc/subgid create mode 100644 tests/tests/subids/02_useradd_with_subids/config/etc/subuid create mode 100644 tests/tests/subids/02_useradd_with_subids/data/group create mode 100644 tests/tests/subids/02_useradd_with_subids/data/gshadow create mode 100644 tests/tests/subids/02_useradd_with_subids/data/passwd create mode 100644 tests/tests/subids/02_useradd_with_subids/data/shadow create mode 100644 tests/tests/subids/02_useradd_with_subids/data/subgid create mode 100644 tests/tests/subids/02_useradd_with_subids/data/subuid create mode 100755 tests/tests/subids/02_useradd_with_subids/useradd.test create mode 100644 tests/tests/subids/03_useradd_no_subgid/config.txt create mode 100644 tests/tests/subids/03_useradd_no_subgid/config/etc/default/useradd create mode 100644 tests/tests/subids/03_useradd_no_subgid/config/etc/group create mode 100644 tests/tests/subids/03_useradd_no_subgid/config/etc/gshadow create mode 100644 tests/tests/subids/03_useradd_no_subgid/config/etc/passwd create mode 100644 tests/tests/subids/03_useradd_no_subgid/config/etc/shadow create mode 100644 tests/tests/subids/03_useradd_no_subgid/config/etc/subgid create mode 100644 tests/tests/subids/03_useradd_no_subgid/config/etc/subuid create mode 100644 tests/tests/subids/03_useradd_no_subgid/data/group create mode 100644 tests/tests/subids/03_useradd_no_subgid/data/gshadow create mode 100644 tests/tests/subids/03_useradd_no_subgid/data/passwd create mode 100644 tests/tests/subids/03_useradd_no_subgid/data/shadow create mode 100644 tests/tests/subids/03_useradd_no_subgid/data/subuid create mode 100755 tests/tests/subids/03_useradd_no_subgid/useradd.test create mode 100644 tests/tests/subids/04_useradd_no_subuid/config.txt create mode 100644 tests/tests/subids/04_useradd_no_subuid/config/etc/default/useradd create mode 100644 tests/tests/subids/04_useradd_no_subuid/config/etc/group create mode 100644 tests/tests/subids/04_useradd_no_subuid/config/etc/gshadow create mode 100644 tests/tests/subids/04_useradd_no_subuid/config/etc/passwd create mode 100644 tests/tests/subids/04_useradd_no_subuid/config/etc/shadow create mode 100644 tests/tests/subids/04_useradd_no_subuid/config/etc/subgid create mode 100644 tests/tests/subids/04_useradd_no_subuid/config/etc/subuid create mode 100644 tests/tests/subids/04_useradd_no_subuid/data/group create mode 100644 tests/tests/subids/04_useradd_no_subuid/data/gshadow create mode 100644 tests/tests/subids/04_useradd_no_subuid/data/passwd create mode 100644 tests/tests/subids/04_useradd_no_subuid/data/shadow create mode 100644 tests/tests/subids/04_useradd_no_subuid/data/subgid create mode 100755 tests/tests/subids/04_useradd_no_subuid/useradd.test create mode 100644 tests/tests/subids/05_useradd_fill_gap_start/config.txt create mode 100644 tests/tests/subids/05_useradd_fill_gap_start/config/etc/default/useradd create mode 100644 tests/tests/subids/05_useradd_fill_gap_start/config/etc/group create mode 100644 tests/tests/subids/05_useradd_fill_gap_start/config/etc/gshadow create mode 100644 tests/tests/subids/05_useradd_fill_gap_start/config/etc/passwd create mode 100644 tests/tests/subids/05_useradd_fill_gap_start/config/etc/shadow create mode 100644 tests/tests/subids/05_useradd_fill_gap_start/config/etc/subgid create mode 100644 tests/tests/subids/05_useradd_fill_gap_start/config/etc/subuid create mode 100644 tests/tests/subids/05_useradd_fill_gap_start/data/group create mode 100644 tests/tests/subids/05_useradd_fill_gap_start/data/gshadow create mode 100644 tests/tests/subids/05_useradd_fill_gap_start/data/passwd create mode 100644 tests/tests/subids/05_useradd_fill_gap_start/data/shadow create mode 100644 tests/tests/subids/05_useradd_fill_gap_start/data/subgid create mode 100644 tests/tests/subids/05_useradd_fill_gap_start/data/subuid create mode 100755 tests/tests/subids/05_useradd_fill_gap_start/useradd.test create mode 100644 tests/tests/subids/06_useradd_fill_gap_middle/config.txt create mode 100644 tests/tests/subids/06_useradd_fill_gap_middle/config/etc/default/useradd create mode 100644 tests/tests/subids/06_useradd_fill_gap_middle/config/etc/group create mode 100644 tests/tests/subids/06_useradd_fill_gap_middle/config/etc/gshadow create mode 100644 tests/tests/subids/06_useradd_fill_gap_middle/config/etc/passwd create mode 100644 tests/tests/subids/06_useradd_fill_gap_middle/config/etc/shadow create mode 100644 tests/tests/subids/06_useradd_fill_gap_middle/config/etc/subgid create mode 100644 tests/tests/subids/06_useradd_fill_gap_middle/config/etc/subuid create mode 100644 tests/tests/subids/06_useradd_fill_gap_middle/data/group create mode 100644 tests/tests/subids/06_useradd_fill_gap_middle/data/gshadow create mode 100644 tests/tests/subids/06_useradd_fill_gap_middle/data/passwd create mode 100644 tests/tests/subids/06_useradd_fill_gap_middle/data/shadow create mode 100644 tests/tests/subids/06_useradd_fill_gap_middle/data/subgid create mode 100644 tests/tests/subids/06_useradd_fill_gap_middle/data/subuid create mode 100755 tests/tests/subids/06_useradd_fill_gap_middle/useradd.test create mode 100644 tests/tests/subids/07_useradd_fill_gap_end/config.txt create mode 100644 tests/tests/subids/07_useradd_fill_gap_end/config/etc/default/useradd create mode 100644 tests/tests/subids/07_useradd_fill_gap_end/config/etc/group create mode 100644 tests/tests/subids/07_useradd_fill_gap_end/config/etc/gshadow create mode 100644 tests/tests/subids/07_useradd_fill_gap_end/config/etc/passwd create mode 100644 tests/tests/subids/07_useradd_fill_gap_end/config/etc/shadow create mode 100644 tests/tests/subids/07_useradd_fill_gap_end/config/etc/subgid create mode 100644 tests/tests/subids/07_useradd_fill_gap_end/config/etc/subuid create mode 100644 tests/tests/subids/07_useradd_fill_gap_end/data/group create mode 100644 tests/tests/subids/07_useradd_fill_gap_end/data/gshadow create mode 100644 tests/tests/subids/07_useradd_fill_gap_end/data/passwd create mode 100644 tests/tests/subids/07_useradd_fill_gap_end/data/shadow create mode 100644 tests/tests/subids/07_useradd_fill_gap_end/data/subgid create mode 100644 tests/tests/subids/07_useradd_fill_gap_end/data/subuid create mode 100755 tests/tests/subids/07_useradd_fill_gap_end/useradd.test create mode 100644 tests/tests/subids/08_useradd_no_more_subuids_start/config.txt create mode 100644 tests/tests/subids/08_useradd_no_more_subuids_start/config/etc/default/useradd create mode 100644 tests/tests/subids/08_useradd_no_more_subuids_start/config/etc/group create mode 100644 tests/tests/subids/08_useradd_no_more_subuids_start/config/etc/gshadow create mode 100644 tests/tests/subids/08_useradd_no_more_subuids_start/config/etc/passwd create mode 100644 tests/tests/subids/08_useradd_no_more_subuids_start/config/etc/shadow create mode 100644 tests/tests/subids/08_useradd_no_more_subuids_start/config/etc/subgid create mode 100644 tests/tests/subids/08_useradd_no_more_subuids_start/config/etc/subuid create mode 100644 tests/tests/subids/08_useradd_no_more_subuids_start/data/useradd.err create mode 100755 tests/tests/subids/08_useradd_no_more_subuids_start/useradd.test create mode 100644 tests/tests/subids/09_useradd_no_more_subgids_start/config.txt create mode 100644 tests/tests/subids/09_useradd_no_more_subgids_start/config/etc/default/useradd create mode 100644 tests/tests/subids/09_useradd_no_more_subgids_start/config/etc/group create mode 100644 tests/tests/subids/09_useradd_no_more_subgids_start/config/etc/gshadow create mode 100644 tests/tests/subids/09_useradd_no_more_subgids_start/config/etc/passwd create mode 100644 tests/tests/subids/09_useradd_no_more_subgids_start/config/etc/shadow create mode 100644 tests/tests/subids/09_useradd_no_more_subgids_start/config/etc/subgid create mode 100644 tests/tests/subids/09_useradd_no_more_subgids_start/config/etc/subuid create mode 100644 tests/tests/subids/09_useradd_no_more_subgids_start/data/useradd.err create mode 100755 tests/tests/subids/09_useradd_no_more_subgids_start/useradd.test create mode 100644 tests/tests/subids/10_useradd_no_more_subuids_end/config.txt create mode 100644 tests/tests/subids/10_useradd_no_more_subuids_end/config/etc/default/useradd create mode 100644 tests/tests/subids/10_useradd_no_more_subuids_end/config/etc/group create mode 100644 tests/tests/subids/10_useradd_no_more_subuids_end/config/etc/gshadow create mode 100644 tests/tests/subids/10_useradd_no_more_subuids_end/config/etc/passwd create mode 100644 tests/tests/subids/10_useradd_no_more_subuids_end/config/etc/shadow create mode 100644 tests/tests/subids/10_useradd_no_more_subuids_end/config/etc/subgid create mode 100644 tests/tests/subids/10_useradd_no_more_subuids_end/config/etc/subuid create mode 100644 tests/tests/subids/10_useradd_no_more_subuids_end/data/useradd.err create mode 100755 tests/tests/subids/10_useradd_no_more_subuids_end/useradd.test create mode 100644 tests/tests/subids/11_useradd_no_more_subgids_end/config.txt create mode 100644 tests/tests/subids/11_useradd_no_more_subgids_end/config/etc/default/useradd create mode 100644 tests/tests/subids/11_useradd_no_more_subgids_end/config/etc/group create mode 100644 tests/tests/subids/11_useradd_no_more_subgids_end/config/etc/gshadow create mode 100644 tests/tests/subids/11_useradd_no_more_subgids_end/config/etc/passwd create mode 100644 tests/tests/subids/11_useradd_no_more_subgids_end/config/etc/shadow create mode 100644 tests/tests/subids/11_useradd_no_more_subgids_end/config/etc/subgid create mode 100644 tests/tests/subids/11_useradd_no_more_subgids_end/config/etc/subuid create mode 100644 tests/tests/subids/11_useradd_no_more_subgids_end/data/useradd.err create mode 100755 tests/tests/subids/11_useradd_no_more_subgids_end/useradd.test create mode 100644 tests/tests/subids/12_useradd_invalid_subuid_configuration1/config.txt create mode 100644 tests/tests/subids/12_useradd_invalid_subuid_configuration1/config/etc/default/useradd create mode 100644 tests/tests/subids/12_useradd_invalid_subuid_configuration1/config/etc/group create mode 100644 tests/tests/subids/12_useradd_invalid_subuid_configuration1/config/etc/gshadow create mode 100644 tests/tests/subids/12_useradd_invalid_subuid_configuration1/config/etc/login.defs create mode 100644 tests/tests/subids/12_useradd_invalid_subuid_configuration1/config/etc/passwd create mode 100644 tests/tests/subids/12_useradd_invalid_subuid_configuration1/config/etc/shadow create mode 100644 tests/tests/subids/12_useradd_invalid_subuid_configuration1/config/etc/subgid create mode 100644 tests/tests/subids/12_useradd_invalid_subuid_configuration1/config/etc/subuid create mode 100644 tests/tests/subids/12_useradd_invalid_subuid_configuration1/data/useradd.err create mode 100755 tests/tests/subids/12_useradd_invalid_subuid_configuration1/useradd.test create mode 100644 tests/tests/subids/13_useradd_invalid_subuid_configuration2/config.txt create mode 100644 tests/tests/subids/13_useradd_invalid_subuid_configuration2/config/etc/default/useradd create mode 100644 tests/tests/subids/13_useradd_invalid_subuid_configuration2/config/etc/group create mode 100644 tests/tests/subids/13_useradd_invalid_subuid_configuration2/config/etc/gshadow create mode 100644 tests/tests/subids/13_useradd_invalid_subuid_configuration2/config/etc/login.defs create mode 100644 tests/tests/subids/13_useradd_invalid_subuid_configuration2/config/etc/passwd create mode 100644 tests/tests/subids/13_useradd_invalid_subuid_configuration2/config/etc/shadow create mode 100644 tests/tests/subids/13_useradd_invalid_subuid_configuration2/config/etc/subgid create mode 100644 tests/tests/subids/13_useradd_invalid_subuid_configuration2/config/etc/subuid create mode 100644 tests/tests/subids/13_useradd_invalid_subuid_configuration2/data/useradd.err create mode 100755 tests/tests/subids/13_useradd_invalid_subuid_configuration2/useradd.test create mode 100644 tests/tests/subids/14_useradd_invalid_subuid_configuration3/config.txt create mode 100644 tests/tests/subids/14_useradd_invalid_subuid_configuration3/config/etc/default/useradd create mode 100644 tests/tests/subids/14_useradd_invalid_subuid_configuration3/config/etc/group create mode 100644 tests/tests/subids/14_useradd_invalid_subuid_configuration3/config/etc/gshadow create mode 100644 tests/tests/subids/14_useradd_invalid_subuid_configuration3/config/etc/login.defs create mode 100644 tests/tests/subids/14_useradd_invalid_subuid_configuration3/config/etc/passwd create mode 100644 tests/tests/subids/14_useradd_invalid_subuid_configuration3/config/etc/shadow create mode 100644 tests/tests/subids/14_useradd_invalid_subuid_configuration3/config/etc/subgid create mode 100644 tests/tests/subids/14_useradd_invalid_subuid_configuration3/config/etc/subuid create mode 100644 tests/tests/subids/14_useradd_invalid_subuid_configuration3/data/useradd.err create mode 100755 tests/tests/subids/14_useradd_invalid_subuid_configuration3/useradd.test create mode 100644 tests/tests/subids/15_useradd_invalid_subgid_configuration1/config.txt create mode 100644 tests/tests/subids/15_useradd_invalid_subgid_configuration1/config/etc/default/useradd create mode 100644 tests/tests/subids/15_useradd_invalid_subgid_configuration1/config/etc/group create mode 100644 tests/tests/subids/15_useradd_invalid_subgid_configuration1/config/etc/gshadow create mode 100644 tests/tests/subids/15_useradd_invalid_subgid_configuration1/config/etc/login.defs create mode 100644 tests/tests/subids/15_useradd_invalid_subgid_configuration1/config/etc/passwd create mode 100644 tests/tests/subids/15_useradd_invalid_subgid_configuration1/config/etc/shadow create mode 100644 tests/tests/subids/15_useradd_invalid_subgid_configuration1/config/etc/subgid create mode 100644 tests/tests/subids/15_useradd_invalid_subgid_configuration1/config/etc/subuid create mode 100644 tests/tests/subids/15_useradd_invalid_subgid_configuration1/data/useradd.err create mode 100755 tests/tests/subids/15_useradd_invalid_subgid_configuration1/useradd.test create mode 100644 tests/tests/subids/16_useradd_invalid_subgid_configuration2/config.txt create mode 100644 tests/tests/subids/16_useradd_invalid_subgid_configuration2/config/etc/default/useradd create mode 100644 tests/tests/subids/16_useradd_invalid_subgid_configuration2/config/etc/group create mode 100644 tests/tests/subids/16_useradd_invalid_subgid_configuration2/config/etc/gshadow create mode 100644 tests/tests/subids/16_useradd_invalid_subgid_configuration2/config/etc/login.defs create mode 100644 tests/tests/subids/16_useradd_invalid_subgid_configuration2/config/etc/passwd create mode 100644 tests/tests/subids/16_useradd_invalid_subgid_configuration2/config/etc/shadow create mode 100644 tests/tests/subids/16_useradd_invalid_subgid_configuration2/config/etc/subgid create mode 100644 tests/tests/subids/16_useradd_invalid_subgid_configuration2/config/etc/subuid create mode 100644 tests/tests/subids/16_useradd_invalid_subgid_configuration2/data/useradd.err create mode 100755 tests/tests/subids/16_useradd_invalid_subgid_configuration2/useradd.test create mode 100644 tests/tests/subids/17_useradd_invalid_subgid_configuration3/config.txt create mode 100644 tests/tests/subids/17_useradd_invalid_subgid_configuration3/config/etc/default/useradd create mode 100644 tests/tests/subids/17_useradd_invalid_subgid_configuration3/config/etc/group create mode 100644 tests/tests/subids/17_useradd_invalid_subgid_configuration3/config/etc/gshadow create mode 100644 tests/tests/subids/17_useradd_invalid_subgid_configuration3/config/etc/login.defs create mode 100644 tests/tests/subids/17_useradd_invalid_subgid_configuration3/config/etc/passwd create mode 100644 tests/tests/subids/17_useradd_invalid_subgid_configuration3/config/etc/shadow create mode 100644 tests/tests/subids/17_useradd_invalid_subgid_configuration3/config/etc/subgid create mode 100644 tests/tests/subids/17_useradd_invalid_subgid_configuration3/config/etc/subuid create mode 100644 tests/tests/subids/17_useradd_invalid_subgid_configuration3/data/useradd.err create mode 100755 tests/tests/subids/17_useradd_invalid_subgid_configuration3/useradd.test create mode 100644 tests/tests/subids/18_useradd_min=max/config.txt create mode 100644 tests/tests/subids/18_useradd_min=max/config/etc/default/useradd create mode 100644 tests/tests/subids/18_useradd_min=max/config/etc/group create mode 100644 tests/tests/subids/18_useradd_min=max/config/etc/gshadow create mode 100644 tests/tests/subids/18_useradd_min=max/config/etc/login.defs create mode 100644 tests/tests/subids/18_useradd_min=max/config/etc/passwd create mode 100644 tests/tests/subids/18_useradd_min=max/config/etc/shadow create mode 100644 tests/tests/subids/18_useradd_min=max/config/etc/subgid create mode 100644 tests/tests/subids/18_useradd_min=max/config/etc/subuid create mode 100644 tests/tests/subids/18_useradd_min=max/data/group create mode 100644 tests/tests/subids/18_useradd_min=max/data/gshadow create mode 100644 tests/tests/subids/18_useradd_min=max/data/passwd create mode 100644 tests/tests/subids/18_useradd_min=max/data/shadow create mode 100644 tests/tests/subids/18_useradd_min=max/data/subgid create mode 100644 tests/tests/subids/18_useradd_min=max/data/subuid create mode 100755 tests/tests/subids/18_useradd_min=max/useradd.test create mode 100644 tests/tests/subids/19_useradd_locked_subuid/config.txt create mode 100644 tests/tests/subids/19_useradd_locked_subuid/config/etc/default/useradd create mode 100644 tests/tests/subids/19_useradd_locked_subuid/config/etc/group create mode 100644 tests/tests/subids/19_useradd_locked_subuid/config/etc/gshadow create mode 100644 tests/tests/subids/19_useradd_locked_subuid/config/etc/passwd create mode 100644 tests/tests/subids/19_useradd_locked_subuid/config/etc/shadow create mode 100644 tests/tests/subids/19_useradd_locked_subuid/config/etc/subgid create mode 100644 tests/tests/subids/19_useradd_locked_subuid/config/etc/subuid create mode 100644 tests/tests/subids/19_useradd_locked_subuid/data/useradd.err create mode 100755 tests/tests/subids/19_useradd_locked_subuid/useradd.test create mode 100644 tests/tests/subids/20_useradd_locked_subgid/config.txt create mode 100644 tests/tests/subids/20_useradd_locked_subgid/config/etc/default/useradd create mode 100644 tests/tests/subids/20_useradd_locked_subgid/config/etc/group create mode 100644 tests/tests/subids/20_useradd_locked_subgid/config/etc/gshadow create mode 100644 tests/tests/subids/20_useradd_locked_subgid/config/etc/passwd create mode 100644 tests/tests/subids/20_useradd_locked_subgid/config/etc/shadow create mode 100644 tests/tests/subids/20_useradd_locked_subgid/config/etc/subgid create mode 100644 tests/tests/subids/20_useradd_locked_subgid/config/etc/subuid create mode 100644 tests/tests/subids/20_useradd_locked_subgid/data/useradd.err create mode 100755 tests/tests/subids/20_useradd_locked_subgid/useradd.test create mode 100644 tests/tests/subids/21_usermod_create_subuid_range/config.txt create mode 100644 tests/tests/subids/21_usermod_create_subuid_range/config/etc/default/useradd create mode 100644 tests/tests/subids/21_usermod_create_subuid_range/config/etc/group create mode 100644 tests/tests/subids/21_usermod_create_subuid_range/config/etc/gshadow create mode 100644 tests/tests/subids/21_usermod_create_subuid_range/config/etc/passwd create mode 100644 tests/tests/subids/21_usermod_create_subuid_range/config/etc/shadow create mode 100644 tests/tests/subids/21_usermod_create_subuid_range/config/etc/subgid create mode 100644 tests/tests/subids/21_usermod_create_subuid_range/config/etc/subuid create mode 100644 tests/tests/subids/21_usermod_create_subuid_range/data/subuid create mode 100755 tests/tests/subids/21_usermod_create_subuid_range/usermod.test create mode 100644 tests/tests/subids/22_usermod_create_subgid_range/config.txt create mode 100644 tests/tests/subids/22_usermod_create_subgid_range/config/etc/default/useradd create mode 100644 tests/tests/subids/22_usermod_create_subgid_range/config/etc/group create mode 100644 tests/tests/subids/22_usermod_create_subgid_range/config/etc/gshadow create mode 100644 tests/tests/subids/22_usermod_create_subgid_range/config/etc/passwd create mode 100644 tests/tests/subids/22_usermod_create_subgid_range/config/etc/shadow create mode 100644 tests/tests/subids/22_usermod_create_subgid_range/config/etc/subgid create mode 100644 tests/tests/subids/22_usermod_create_subgid_range/config/etc/subuid create mode 100644 tests/tests/subids/22_usermod_create_subgid_range/data/subgid create mode 100755 tests/tests/subids/22_usermod_create_subgid_range/usermod.test create mode 100644 tests/tests/subids/23_usermod_create_subids_ranges/config.txt create mode 100644 tests/tests/subids/23_usermod_create_subids_ranges/config/etc/default/useradd create mode 100644 tests/tests/subids/23_usermod_create_subids_ranges/config/etc/group create mode 100644 tests/tests/subids/23_usermod_create_subids_ranges/config/etc/gshadow create mode 100644 tests/tests/subids/23_usermod_create_subids_ranges/config/etc/passwd create mode 100644 tests/tests/subids/23_usermod_create_subids_ranges/config/etc/shadow create mode 100644 tests/tests/subids/23_usermod_create_subids_ranges/config/etc/subgid create mode 100644 tests/tests/subids/23_usermod_create_subids_ranges/config/etc/subuid create mode 100644 tests/tests/subids/23_usermod_create_subids_ranges/data/subgid create mode 100644 tests/tests/subids/23_usermod_create_subids_ranges/data/subuid create mode 100755 tests/tests/subids/23_usermod_create_subids_ranges/usermod.test create mode 100644 tests/tests/subids/24_usermod_create_subids_overlapping_ranges/config.txt create mode 100644 tests/tests/subids/24_usermod_create_subids_overlapping_ranges/config/etc/default/useradd create mode 100644 tests/tests/subids/24_usermod_create_subids_overlapping_ranges/config/etc/group create mode 100644 tests/tests/subids/24_usermod_create_subids_overlapping_ranges/config/etc/gshadow create mode 100644 tests/tests/subids/24_usermod_create_subids_overlapping_ranges/config/etc/passwd create mode 100644 tests/tests/subids/24_usermod_create_subids_overlapping_ranges/config/etc/shadow create mode 100644 tests/tests/subids/24_usermod_create_subids_overlapping_ranges/config/etc/subgid create mode 100644 tests/tests/subids/24_usermod_create_subids_overlapping_ranges/config/etc/subuid create mode 100644 tests/tests/subids/24_usermod_create_subids_overlapping_ranges/data/subgid create mode 100644 tests/tests/subids/24_usermod_create_subids_overlapping_ranges/data/subuid create mode 100755 tests/tests/subids/24_usermod_create_subids_overlapping_ranges/usermod.test create mode 100644 tests/tests/subids/25_usermod_add_range/config.txt create mode 100644 tests/tests/subids/25_usermod_add_range/config/etc/default/useradd create mode 100644 tests/tests/subids/25_usermod_add_range/config/etc/group create mode 100644 tests/tests/subids/25_usermod_add_range/config/etc/gshadow create mode 100644 tests/tests/subids/25_usermod_add_range/config/etc/passwd create mode 100644 tests/tests/subids/25_usermod_add_range/config/etc/shadow create mode 100644 tests/tests/subids/25_usermod_add_range/config/etc/subgid create mode 100644 tests/tests/subids/25_usermod_add_range/config/etc/subuid create mode 100644 tests/tests/subids/25_usermod_add_range/data/subgid create mode 100644 tests/tests/subids/25_usermod_add_range/data/subuid create mode 100755 tests/tests/subids/25_usermod_add_range/usermod.test create mode 100644 tests/tests/subids/26_usermod_add_overlapping_ranges/config.txt create mode 100644 tests/tests/subids/26_usermod_add_overlapping_ranges/config/etc/default/useradd create mode 100644 tests/tests/subids/26_usermod_add_overlapping_ranges/config/etc/group create mode 100644 tests/tests/subids/26_usermod_add_overlapping_ranges/config/etc/gshadow create mode 100644 tests/tests/subids/26_usermod_add_overlapping_ranges/config/etc/passwd create mode 100644 tests/tests/subids/26_usermod_add_overlapping_ranges/config/etc/shadow create mode 100644 tests/tests/subids/26_usermod_add_overlapping_ranges/config/etc/subgid create mode 100644 tests/tests/subids/26_usermod_add_overlapping_ranges/config/etc/subuid create mode 100644 tests/tests/subids/26_usermod_add_overlapping_ranges/data/subgid create mode 100644 tests/tests/subids/26_usermod_add_overlapping_ranges/data/subuid create mode 100755 tests/tests/subids/26_usermod_add_overlapping_ranges/usermod.test create mode 100644 tests/tests/subids/27_usermod_remove_range_all/config.txt create mode 100644 tests/tests/subids/27_usermod_remove_range_all/config/etc/default/useradd create mode 100644 tests/tests/subids/27_usermod_remove_range_all/config/etc/group create mode 100644 tests/tests/subids/27_usermod_remove_range_all/config/etc/gshadow create mode 100644 tests/tests/subids/27_usermod_remove_range_all/config/etc/passwd create mode 100644 tests/tests/subids/27_usermod_remove_range_all/config/etc/shadow create mode 100644 tests/tests/subids/27_usermod_remove_range_all/config/etc/subgid create mode 100644 tests/tests/subids/27_usermod_remove_range_all/config/etc/subuid create mode 100644 tests/tests/subids/27_usermod_remove_range_all/data/subgid create mode 100644 tests/tests/subids/27_usermod_remove_range_all/data/subuid create mode 100755 tests/tests/subids/27_usermod_remove_range_all/usermod.test create mode 100644 tests/tests/subids/28_usermod_remove_range_partial_begin/config.txt create mode 100644 tests/tests/subids/28_usermod_remove_range_partial_begin/config/etc/default/useradd create mode 100644 tests/tests/subids/28_usermod_remove_range_partial_begin/config/etc/group create mode 100644 tests/tests/subids/28_usermod_remove_range_partial_begin/config/etc/gshadow create mode 100644 tests/tests/subids/28_usermod_remove_range_partial_begin/config/etc/passwd create mode 100644 tests/tests/subids/28_usermod_remove_range_partial_begin/config/etc/shadow create mode 100644 tests/tests/subids/28_usermod_remove_range_partial_begin/config/etc/subgid create mode 100644 tests/tests/subids/28_usermod_remove_range_partial_begin/config/etc/subuid create mode 100644 tests/tests/subids/28_usermod_remove_range_partial_begin/data/subgid create mode 100644 tests/tests/subids/28_usermod_remove_range_partial_begin/data/subuid create mode 100755 tests/tests/subids/28_usermod_remove_range_partial_begin/usermod.test create mode 100644 tests/tests/subids/29_usermod_remove_range_partial_middle/config.txt create mode 100644 tests/tests/subids/29_usermod_remove_range_partial_middle/config/etc/default/useradd create mode 100644 tests/tests/subids/29_usermod_remove_range_partial_middle/config/etc/group create mode 100644 tests/tests/subids/29_usermod_remove_range_partial_middle/config/etc/gshadow create mode 100644 tests/tests/subids/29_usermod_remove_range_partial_middle/config/etc/passwd create mode 100644 tests/tests/subids/29_usermod_remove_range_partial_middle/config/etc/shadow create mode 100644 tests/tests/subids/29_usermod_remove_range_partial_middle/config/etc/subgid create mode 100644 tests/tests/subids/29_usermod_remove_range_partial_middle/config/etc/subuid create mode 100644 tests/tests/subids/29_usermod_remove_range_partial_middle/data/subgid create mode 100644 tests/tests/subids/29_usermod_remove_range_partial_middle/data/subuid create mode 100755 tests/tests/subids/29_usermod_remove_range_partial_middle/usermod.test create mode 100644 tests/tests/subids/30_usermod_remove_range_partial_end/config.txt create mode 100644 tests/tests/subids/30_usermod_remove_range_partial_end/config/etc/default/useradd create mode 100644 tests/tests/subids/30_usermod_remove_range_partial_end/config/etc/group create mode 100644 tests/tests/subids/30_usermod_remove_range_partial_end/config/etc/gshadow create mode 100644 tests/tests/subids/30_usermod_remove_range_partial_end/config/etc/passwd create mode 100644 tests/tests/subids/30_usermod_remove_range_partial_end/config/etc/shadow create mode 100644 tests/tests/subids/30_usermod_remove_range_partial_end/config/etc/subgid create mode 100644 tests/tests/subids/30_usermod_remove_range_partial_end/config/etc/subuid create mode 100644 tests/tests/subids/30_usermod_remove_range_partial_end/data/subgid create mode 100644 tests/tests/subids/30_usermod_remove_range_partial_end/data/subuid create mode 100755 tests/tests/subids/30_usermod_remove_range_partial_end/usermod.test create mode 100644 tests/tests/subids/31_usermod_remove_outside_range/config.txt create mode 100644 tests/tests/subids/31_usermod_remove_outside_range/config/etc/default/useradd create mode 100644 tests/tests/subids/31_usermod_remove_outside_range/config/etc/group create mode 100644 tests/tests/subids/31_usermod_remove_outside_range/config/etc/gshadow create mode 100644 tests/tests/subids/31_usermod_remove_outside_range/config/etc/passwd create mode 100644 tests/tests/subids/31_usermod_remove_outside_range/config/etc/shadow create mode 100644 tests/tests/subids/31_usermod_remove_outside_range/config/etc/subgid create mode 100644 tests/tests/subids/31_usermod_remove_outside_range/config/etc/subuid create mode 100644 tests/tests/subids/31_usermod_remove_outside_range/data/subgid create mode 100644 tests/tests/subids/31_usermod_remove_outside_range/data/subuid create mode 100755 tests/tests/subids/31_usermod_remove_outside_range/usermod.test create mode 100644 tests/tests/subids/32_usermod_remove_overlapping_range_begin/config.txt create mode 100644 tests/tests/subids/32_usermod_remove_overlapping_range_begin/config/etc/default/useradd create mode 100644 tests/tests/subids/32_usermod_remove_overlapping_range_begin/config/etc/group create mode 100644 tests/tests/subids/32_usermod_remove_overlapping_range_begin/config/etc/gshadow create mode 100644 tests/tests/subids/32_usermod_remove_overlapping_range_begin/config/etc/passwd create mode 100644 tests/tests/subids/32_usermod_remove_overlapping_range_begin/config/etc/shadow create mode 100644 tests/tests/subids/32_usermod_remove_overlapping_range_begin/config/etc/subgid create mode 100644 tests/tests/subids/32_usermod_remove_overlapping_range_begin/config/etc/subuid create mode 100644 tests/tests/subids/32_usermod_remove_overlapping_range_begin/data/subgid create mode 100644 tests/tests/subids/32_usermod_remove_overlapping_range_begin/data/subuid create mode 100755 tests/tests/subids/32_usermod_remove_overlapping_range_begin/usermod.test create mode 100644 tests/tests/subids/33_usermod_remove_overlapping_range_end/config.txt create mode 100644 tests/tests/subids/33_usermod_remove_overlapping_range_end/config/etc/default/useradd create mode 100644 tests/tests/subids/33_usermod_remove_overlapping_range_end/config/etc/group create mode 100644 tests/tests/subids/33_usermod_remove_overlapping_range_end/config/etc/gshadow create mode 100644 tests/tests/subids/33_usermod_remove_overlapping_range_end/config/etc/passwd create mode 100644 tests/tests/subids/33_usermod_remove_overlapping_range_end/config/etc/shadow create mode 100644 tests/tests/subids/33_usermod_remove_overlapping_range_end/config/etc/subgid create mode 100644 tests/tests/subids/33_usermod_remove_overlapping_range_end/config/etc/subuid create mode 100644 tests/tests/subids/33_usermod_remove_overlapping_range_end/data/subgid create mode 100644 tests/tests/subids/33_usermod_remove_overlapping_range_end/data/subuid create mode 100755 tests/tests/subids/33_usermod_remove_overlapping_range_end/usermod.test create mode 100644 tests/tests/subids/34_usermod_remove_overlapping_range_all/config.txt create mode 100644 tests/tests/subids/34_usermod_remove_overlapping_range_all/config/etc/default/useradd create mode 100644 tests/tests/subids/34_usermod_remove_overlapping_range_all/config/etc/group create mode 100644 tests/tests/subids/34_usermod_remove_overlapping_range_all/config/etc/gshadow create mode 100644 tests/tests/subids/34_usermod_remove_overlapping_range_all/config/etc/passwd create mode 100644 tests/tests/subids/34_usermod_remove_overlapping_range_all/config/etc/shadow create mode 100644 tests/tests/subids/34_usermod_remove_overlapping_range_all/config/etc/subgid create mode 100644 tests/tests/subids/34_usermod_remove_overlapping_range_all/config/etc/subuid create mode 100644 tests/tests/subids/34_usermod_remove_overlapping_range_all/data/subgid create mode 100644 tests/tests/subids/34_usermod_remove_overlapping_range_all/data/subuid create mode 100755 tests/tests/subids/34_usermod_remove_overlapping_range_all/usermod.test create mode 100644 tests/tests/subids/35_usermod_remove_only_user_ranges/config.txt create mode 100644 tests/tests/subids/35_usermod_remove_only_user_ranges/config/etc/default/useradd create mode 100644 tests/tests/subids/35_usermod_remove_only_user_ranges/config/etc/group create mode 100644 tests/tests/subids/35_usermod_remove_only_user_ranges/config/etc/gshadow create mode 100644 tests/tests/subids/35_usermod_remove_only_user_ranges/config/etc/passwd create mode 100644 tests/tests/subids/35_usermod_remove_only_user_ranges/config/etc/shadow create mode 100644 tests/tests/subids/35_usermod_remove_only_user_ranges/config/etc/subgid create mode 100644 tests/tests/subids/35_usermod_remove_only_user_ranges/config/etc/subuid create mode 100644 tests/tests/subids/35_usermod_remove_only_user_ranges/data/subgid create mode 100644 tests/tests/subids/35_usermod_remove_only_user_ranges/data/subuid create mode 100755 tests/tests/subids/35_usermod_remove_only_user_ranges/usermod.test create mode 100644 tests/tests/subids/36_usermod_remove_with_comment/config.txt create mode 100644 tests/tests/subids/36_usermod_remove_with_comment/config/etc/default/useradd create mode 100644 tests/tests/subids/36_usermod_remove_with_comment/config/etc/group create mode 100644 tests/tests/subids/36_usermod_remove_with_comment/config/etc/gshadow create mode 100644 tests/tests/subids/36_usermod_remove_with_comment/config/etc/passwd create mode 100644 tests/tests/subids/36_usermod_remove_with_comment/config/etc/shadow create mode 100644 tests/tests/subids/36_usermod_remove_with_comment/config/etc/subgid create mode 100644 tests/tests/subids/36_usermod_remove_with_comment/config/etc/subuid create mode 100644 tests/tests/subids/36_usermod_remove_with_comment/data/subgid create mode 100644 tests/tests/subids/36_usermod_remove_with_comment/data/subuid create mode 100755 tests/tests/subids/36_usermod_remove_with_comment/usermod.test create mode 100644 tests/tests/subids/37_usermod_-v_invalid_range/config.txt create mode 100644 tests/tests/subids/37_usermod_-v_invalid_range/config/etc/default/useradd create mode 100644 tests/tests/subids/37_usermod_-v_invalid_range/config/etc/group create mode 100644 tests/tests/subids/37_usermod_-v_invalid_range/config/etc/gshadow create mode 100644 tests/tests/subids/37_usermod_-v_invalid_range/config/etc/passwd create mode 100644 tests/tests/subids/37_usermod_-v_invalid_range/config/etc/shadow create mode 100644 tests/tests/subids/37_usermod_-v_invalid_range/config/etc/subgid create mode 100644 tests/tests/subids/37_usermod_-v_invalid_range/config/etc/subuid create mode 100644 tests/tests/subids/37_usermod_-v_invalid_range/data/usermod.err create mode 100755 tests/tests/subids/37_usermod_-v_invalid_range/usermod.test create mode 100644 tests/tests/subids/38_usermod_-V_invalid_range/config.txt create mode 100644 tests/tests/subids/38_usermod_-V_invalid_range/config/etc/default/useradd create mode 100644 tests/tests/subids/38_usermod_-V_invalid_range/config/etc/group create mode 100644 tests/tests/subids/38_usermod_-V_invalid_range/config/etc/gshadow create mode 100644 tests/tests/subids/38_usermod_-V_invalid_range/config/etc/passwd create mode 100644 tests/tests/subids/38_usermod_-V_invalid_range/config/etc/shadow create mode 100644 tests/tests/subids/38_usermod_-V_invalid_range/config/etc/subgid create mode 100644 tests/tests/subids/38_usermod_-V_invalid_range/config/etc/subuid create mode 100644 tests/tests/subids/38_usermod_-V_invalid_range/data/usermod.err create mode 100755 tests/tests/subids/38_usermod_-V_invalid_range/usermod.test create mode 100644 tests/tests/subids/39_usermod_-w_invalid_range/config.txt create mode 100644 tests/tests/subids/39_usermod_-w_invalid_range/config/etc/default/useradd create mode 100644 tests/tests/subids/39_usermod_-w_invalid_range/config/etc/group create mode 100644 tests/tests/subids/39_usermod_-w_invalid_range/config/etc/gshadow create mode 100644 tests/tests/subids/39_usermod_-w_invalid_range/config/etc/passwd create mode 100644 tests/tests/subids/39_usermod_-w_invalid_range/config/etc/shadow create mode 100644 tests/tests/subids/39_usermod_-w_invalid_range/config/etc/subgid create mode 100644 tests/tests/subids/39_usermod_-w_invalid_range/config/etc/subuid create mode 100644 tests/tests/subids/39_usermod_-w_invalid_range/data/usermod.err create mode 100755 tests/tests/subids/39_usermod_-w_invalid_range/usermod.test create mode 100644 tests/tests/subids/40_usermod_-W_invalid_range/config.txt create mode 100644 tests/tests/subids/40_usermod_-W_invalid_range/config/etc/default/useradd create mode 100644 tests/tests/subids/40_usermod_-W_invalid_range/config/etc/group create mode 100644 tests/tests/subids/40_usermod_-W_invalid_range/config/etc/gshadow create mode 100644 tests/tests/subids/40_usermod_-W_invalid_range/config/etc/passwd create mode 100644 tests/tests/subids/40_usermod_-W_invalid_range/config/etc/shadow create mode 100644 tests/tests/subids/40_usermod_-W_invalid_range/config/etc/subgid create mode 100644 tests/tests/subids/40_usermod_-W_invalid_range/config/etc/subuid create mode 100644 tests/tests/subids/40_usermod_-W_invalid_range/data/usermod.err create mode 100755 tests/tests/subids/40_usermod_-W_invalid_range/usermod.test create mode 100644 tests/tests/subids/41_usermod_locked_subuid/config.txt create mode 100644 tests/tests/subids/41_usermod_locked_subuid/config/etc/default/useradd create mode 100644 tests/tests/subids/41_usermod_locked_subuid/config/etc/group create mode 100644 tests/tests/subids/41_usermod_locked_subuid/config/etc/gshadow create mode 100644 tests/tests/subids/41_usermod_locked_subuid/config/etc/passwd create mode 100644 tests/tests/subids/41_usermod_locked_subuid/config/etc/shadow create mode 100644 tests/tests/subids/41_usermod_locked_subuid/config/etc/subgid create mode 100644 tests/tests/subids/41_usermod_locked_subuid/config/etc/subuid create mode 100644 tests/tests/subids/41_usermod_locked_subuid/data/usermod.err create mode 100755 tests/tests/subids/41_usermod_locked_subuid/usermod.test create mode 100644 tests/tests/subids/42_usermod_locked_subgid/config.txt create mode 100644 tests/tests/subids/42_usermod_locked_subgid/config/etc/default/useradd create mode 100644 tests/tests/subids/42_usermod_locked_subgid/config/etc/group create mode 100644 tests/tests/subids/42_usermod_locked_subgid/config/etc/gshadow create mode 100644 tests/tests/subids/42_usermod_locked_subgid/config/etc/passwd create mode 100644 tests/tests/subids/42_usermod_locked_subgid/config/etc/shadow create mode 100644 tests/tests/subids/42_usermod_locked_subgid/config/etc/subgid create mode 100644 tests/tests/subids/42_usermod_locked_subgid/config/etc/subuid create mode 100644 tests/tests/subids/42_usermod_locked_subgid/data/usermod.err create mode 100755 tests/tests/subids/42_usermod_locked_subgid/usermod.test create mode 100644 tests/tests/subids/43_usermod_-w_no_subgid/config.txt create mode 100644 tests/tests/subids/43_usermod_-w_no_subgid/config/etc/default/useradd create mode 100644 tests/tests/subids/43_usermod_-w_no_subgid/config/etc/group create mode 100644 tests/tests/subids/43_usermod_-w_no_subgid/config/etc/gshadow create mode 100644 tests/tests/subids/43_usermod_-w_no_subgid/config/etc/passwd create mode 100644 tests/tests/subids/43_usermod_-w_no_subgid/config/etc/shadow create mode 100644 tests/tests/subids/43_usermod_-w_no_subgid/config/etc/subgid create mode 100644 tests/tests/subids/43_usermod_-w_no_subgid/config/etc/subuid create mode 100644 tests/tests/subids/43_usermod_-w_no_subgid/data/usermod.err create mode 100755 tests/tests/subids/43_usermod_-w_no_subgid/usermod.test create mode 100644 tests/tests/subids/44_usermod_-W_no_subgid/config.txt create mode 100644 tests/tests/subids/44_usermod_-W_no_subgid/config/etc/default/useradd create mode 100644 tests/tests/subids/44_usermod_-W_no_subgid/config/etc/group create mode 100644 tests/tests/subids/44_usermod_-W_no_subgid/config/etc/gshadow create mode 100644 tests/tests/subids/44_usermod_-W_no_subgid/config/etc/passwd create mode 100644 tests/tests/subids/44_usermod_-W_no_subgid/config/etc/shadow create mode 100644 tests/tests/subids/44_usermod_-W_no_subgid/config/etc/subgid create mode 100644 tests/tests/subids/44_usermod_-W_no_subgid/config/etc/subuid create mode 100644 tests/tests/subids/44_usermod_-W_no_subgid/data/usermod.err create mode 100755 tests/tests/subids/44_usermod_-W_no_subgid/usermod.test create mode 100644 tests/tests/subids/45_usermod_-v_no_subgid/config.txt create mode 100644 tests/tests/subids/45_usermod_-v_no_subgid/config/etc/default/useradd create mode 100644 tests/tests/subids/45_usermod_-v_no_subgid/config/etc/group create mode 100644 tests/tests/subids/45_usermod_-v_no_subgid/config/etc/gshadow create mode 100644 tests/tests/subids/45_usermod_-v_no_subgid/config/etc/passwd create mode 100644 tests/tests/subids/45_usermod_-v_no_subgid/config/etc/shadow create mode 100644 tests/tests/subids/45_usermod_-v_no_subgid/config/etc/subgid create mode 100644 tests/tests/subids/45_usermod_-v_no_subgid/config/etc/subuid create mode 100644 tests/tests/subids/45_usermod_-v_no_subgid/data/usermod.err create mode 100755 tests/tests/subids/45_usermod_-v_no_subgid/usermod.test create mode 100644 tests/tests/subids/46_usermod_-V_no_subgid/config.txt create mode 100644 tests/tests/subids/46_usermod_-V_no_subgid/config/etc/default/useradd create mode 100644 tests/tests/subids/46_usermod_-V_no_subgid/config/etc/group create mode 100644 tests/tests/subids/46_usermod_-V_no_subgid/config/etc/gshadow create mode 100644 tests/tests/subids/46_usermod_-V_no_subgid/config/etc/passwd create mode 100644 tests/tests/subids/46_usermod_-V_no_subgid/config/etc/shadow create mode 100644 tests/tests/subids/46_usermod_-V_no_subgid/config/etc/subgid create mode 100644 tests/tests/subids/46_usermod_-V_no_subgid/config/etc/subuid create mode 100644 tests/tests/subids/46_usermod_-V_no_subgid/data/usermod.err create mode 100755 tests/tests/subids/46_usermod_-V_no_subgid/usermod.test create mode 100644 tests/tests/subids/47_usermod_-v_invalid_range2/config.txt create mode 100644 tests/tests/subids/47_usermod_-v_invalid_range2/config/etc/default/useradd create mode 100644 tests/tests/subids/47_usermod_-v_invalid_range2/config/etc/group create mode 100644 tests/tests/subids/47_usermod_-v_invalid_range2/config/etc/gshadow create mode 100644 tests/tests/subids/47_usermod_-v_invalid_range2/config/etc/passwd create mode 100644 tests/tests/subids/47_usermod_-v_invalid_range2/config/etc/shadow create mode 100644 tests/tests/subids/47_usermod_-v_invalid_range2/config/etc/subgid create mode 100644 tests/tests/subids/47_usermod_-v_invalid_range2/config/etc/subuid create mode 100644 tests/tests/subids/47_usermod_-v_invalid_range2/data/usermod.err create mode 100755 tests/tests/subids/47_usermod_-v_invalid_range2/usermod.test create mode 100644 tests/tests/subids/48_usermod_-v_invalid_range3/config.txt create mode 100644 tests/tests/subids/48_usermod_-v_invalid_range3/config/etc/default/useradd create mode 100644 tests/tests/subids/48_usermod_-v_invalid_range3/config/etc/group create mode 100644 tests/tests/subids/48_usermod_-v_invalid_range3/config/etc/gshadow create mode 100644 tests/tests/subids/48_usermod_-v_invalid_range3/config/etc/passwd create mode 100644 tests/tests/subids/48_usermod_-v_invalid_range3/config/etc/shadow create mode 100644 tests/tests/subids/48_usermod_-v_invalid_range3/config/etc/subgid create mode 100644 tests/tests/subids/48_usermod_-v_invalid_range3/config/etc/subuid create mode 100644 tests/tests/subids/48_usermod_-v_invalid_range3/data/usermod.err create mode 100755 tests/tests/subids/48_usermod_-v_invalid_range3/usermod.test create mode 100644 tests/tests/subids/49_usermod_-v_invalid_range4/config.txt create mode 100644 tests/tests/subids/49_usermod_-v_invalid_range4/config/etc/default/useradd create mode 100644 tests/tests/subids/49_usermod_-v_invalid_range4/config/etc/group create mode 100644 tests/tests/subids/49_usermod_-v_invalid_range4/config/etc/gshadow create mode 100644 tests/tests/subids/49_usermod_-v_invalid_range4/config/etc/passwd create mode 100644 tests/tests/subids/49_usermod_-v_invalid_range4/config/etc/shadow create mode 100644 tests/tests/subids/49_usermod_-v_invalid_range4/config/etc/subgid create mode 100644 tests/tests/subids/49_usermod_-v_invalid_range4/config/etc/subuid create mode 100644 tests/tests/subids/49_usermod_-v_invalid_range4/data/usermod.err create mode 100755 tests/tests/subids/49_usermod_-v_invalid_range4/usermod.test create mode 100644 tests/tests/subids/50_usermod_-v_invalid_range5/config.txt create mode 100644 tests/tests/subids/50_usermod_-v_invalid_range5/config/etc/default/useradd create mode 100644 tests/tests/subids/50_usermod_-v_invalid_range5/config/etc/group create mode 100644 tests/tests/subids/50_usermod_-v_invalid_range5/config/etc/gshadow create mode 100644 tests/tests/subids/50_usermod_-v_invalid_range5/config/etc/passwd create mode 100644 tests/tests/subids/50_usermod_-v_invalid_range5/config/etc/shadow create mode 100644 tests/tests/subids/50_usermod_-v_invalid_range5/config/etc/subgid create mode 100644 tests/tests/subids/50_usermod_-v_invalid_range5/config/etc/subuid create mode 100644 tests/tests/subids/50_usermod_-v_invalid_range5/data/usermod.err create mode 100755 tests/tests/subids/50_usermod_-v_invalid_range5/usermod.test create mode 100644 tests/tests/subids/51_usermod_-v_invalid_range6/config.txt create mode 100644 tests/tests/subids/51_usermod_-v_invalid_range6/config/etc/default/useradd create mode 100644 tests/tests/subids/51_usermod_-v_invalid_range6/config/etc/group create mode 100644 tests/tests/subids/51_usermod_-v_invalid_range6/config/etc/gshadow create mode 100644 tests/tests/subids/51_usermod_-v_invalid_range6/config/etc/passwd create mode 100644 tests/tests/subids/51_usermod_-v_invalid_range6/config/etc/shadow create mode 100644 tests/tests/subids/51_usermod_-v_invalid_range6/config/etc/subgid create mode 100644 tests/tests/subids/51_usermod_-v_invalid_range6/config/etc/subuid create mode 100644 tests/tests/subids/51_usermod_-v_invalid_range6/data/usermod.err create mode 100755 tests/tests/subids/51_usermod_-v_invalid_range6/usermod.test create mode 100644 tests/tests/subids/52_usermod_-v_invalid_range7/config.txt create mode 100644 tests/tests/subids/52_usermod_-v_invalid_range7/config/etc/default/useradd create mode 100644 tests/tests/subids/52_usermod_-v_invalid_range7/config/etc/group create mode 100644 tests/tests/subids/52_usermod_-v_invalid_range7/config/etc/gshadow create mode 100644 tests/tests/subids/52_usermod_-v_invalid_range7/config/etc/passwd create mode 100644 tests/tests/subids/52_usermod_-v_invalid_range7/config/etc/shadow create mode 100644 tests/tests/subids/52_usermod_-v_invalid_range7/config/etc/subgid create mode 100644 tests/tests/subids/52_usermod_-v_invalid_range7/config/etc/subuid create mode 100644 tests/tests/subids/52_usermod_-v_invalid_range7/data/usermod.err create mode 100755 tests/tests/subids/52_usermod_-v_invalid_range7/usermod.test create mode 100644 tests/tests/subids/53_userdel_one_subuid_range/config.txt create mode 100644 tests/tests/subids/53_userdel_one_subuid_range/config/etc/default/useradd create mode 100644 tests/tests/subids/53_userdel_one_subuid_range/config/etc/group create mode 100644 tests/tests/subids/53_userdel_one_subuid_range/config/etc/gshadow create mode 100644 tests/tests/subids/53_userdel_one_subuid_range/config/etc/passwd create mode 100644 tests/tests/subids/53_userdel_one_subuid_range/config/etc/shadow create mode 100644 tests/tests/subids/53_userdel_one_subuid_range/config/etc/subgid create mode 100644 tests/tests/subids/53_userdel_one_subuid_range/config/etc/subuid create mode 100644 tests/tests/subids/53_userdel_one_subuid_range/data/group create mode 100644 tests/tests/subids/53_userdel_one_subuid_range/data/gshadow create mode 100644 tests/tests/subids/53_userdel_one_subuid_range/data/passwd create mode 100644 tests/tests/subids/53_userdel_one_subuid_range/data/shadow create mode 100644 tests/tests/subids/53_userdel_one_subuid_range/data/subuid create mode 100755 tests/tests/subids/53_userdel_one_subuid_range/userdel.test create mode 100644 tests/tests/subids/54_userdel_one_subgid_range/config.txt create mode 100644 tests/tests/subids/54_userdel_one_subgid_range/config/etc/default/useradd create mode 100644 tests/tests/subids/54_userdel_one_subgid_range/config/etc/group create mode 100644 tests/tests/subids/54_userdel_one_subgid_range/config/etc/gshadow create mode 100644 tests/tests/subids/54_userdel_one_subgid_range/config/etc/passwd create mode 100644 tests/tests/subids/54_userdel_one_subgid_range/config/etc/shadow create mode 100644 tests/tests/subids/54_userdel_one_subgid_range/config/etc/subgid create mode 100644 tests/tests/subids/54_userdel_one_subgid_range/config/etc/subuid create mode 100644 tests/tests/subids/54_userdel_one_subgid_range/data/group create mode 100644 tests/tests/subids/54_userdel_one_subgid_range/data/gshadow create mode 100644 tests/tests/subids/54_userdel_one_subgid_range/data/passwd create mode 100644 tests/tests/subids/54_userdel_one_subgid_range/data/shadow create mode 100644 tests/tests/subids/54_userdel_one_subgid_range/data/subgid create mode 100755 tests/tests/subids/54_userdel_one_subgid_range/userdel.test create mode 100644 tests/tests/subids/55_userdel_no_subuid/config.txt create mode 100644 tests/tests/subids/55_userdel_no_subuid/config/etc/default/useradd create mode 100644 tests/tests/subids/55_userdel_no_subuid/config/etc/group create mode 100644 tests/tests/subids/55_userdel_no_subuid/config/etc/gshadow create mode 100644 tests/tests/subids/55_userdel_no_subuid/config/etc/passwd create mode 100644 tests/tests/subids/55_userdel_no_subuid/config/etc/shadow create mode 100644 tests/tests/subids/55_userdel_no_subuid/config/etc/subgid create mode 100644 tests/tests/subids/55_userdel_no_subuid/config/etc/subuid create mode 100644 tests/tests/subids/55_userdel_no_subuid/data/group create mode 100644 tests/tests/subids/55_userdel_no_subuid/data/gshadow create mode 100644 tests/tests/subids/55_userdel_no_subuid/data/passwd create mode 100644 tests/tests/subids/55_userdel_no_subuid/data/shadow create mode 100644 tests/tests/subids/55_userdel_no_subuid/data/subgid create mode 100755 tests/tests/subids/55_userdel_no_subuid/userdel.test create mode 100644 tests/tests/subids/56_userdel_no_subgid/config.txt create mode 100644 tests/tests/subids/56_userdel_no_subgid/config/etc/default/useradd create mode 100644 tests/tests/subids/56_userdel_no_subgid/config/etc/group create mode 100644 tests/tests/subids/56_userdel_no_subgid/config/etc/gshadow create mode 100644 tests/tests/subids/56_userdel_no_subgid/config/etc/passwd create mode 100644 tests/tests/subids/56_userdel_no_subgid/config/etc/shadow create mode 100644 tests/tests/subids/56_userdel_no_subgid/config/etc/subgid create mode 100644 tests/tests/subids/56_userdel_no_subgid/config/etc/subuid create mode 100644 tests/tests/subids/56_userdel_no_subgid/data/group create mode 100644 tests/tests/subids/56_userdel_no_subgid/data/gshadow create mode 100644 tests/tests/subids/56_userdel_no_subgid/data/passwd create mode 100644 tests/tests/subids/56_userdel_no_subgid/data/shadow create mode 100644 tests/tests/subids/56_userdel_no_subgid/data/subuid create mode 100755 tests/tests/subids/56_userdel_no_subgid/userdel.test create mode 100644 tests/tests/subids/57_userdel_multiple_ranges/config.txt create mode 100644 tests/tests/subids/57_userdel_multiple_ranges/config/etc/default/useradd create mode 100644 tests/tests/subids/57_userdel_multiple_ranges/config/etc/group create mode 100644 tests/tests/subids/57_userdel_multiple_ranges/config/etc/gshadow create mode 100644 tests/tests/subids/57_userdel_multiple_ranges/config/etc/passwd create mode 100644 tests/tests/subids/57_userdel_multiple_ranges/config/etc/shadow create mode 100644 tests/tests/subids/57_userdel_multiple_ranges/config/etc/subgid create mode 100644 tests/tests/subids/57_userdel_multiple_ranges/config/etc/subuid create mode 100644 tests/tests/subids/57_userdel_multiple_ranges/data/group create mode 100644 tests/tests/subids/57_userdel_multiple_ranges/data/gshadow create mode 100644 tests/tests/subids/57_userdel_multiple_ranges/data/passwd create mode 100644 tests/tests/subids/57_userdel_multiple_ranges/data/shadow create mode 100644 tests/tests/subids/57_userdel_multiple_ranges/data/subgid create mode 100644 tests/tests/subids/57_userdel_multiple_ranges/data/subuid create mode 100755 tests/tests/subids/57_userdel_multiple_ranges/userdel.test create mode 100644 tests/tests/subids/58_newusers_with_subids/config.txt create mode 100644 tests/tests/subids/58_newusers_with_subids/config/etc/group create mode 100644 tests/tests/subids/58_newusers_with_subids/config/etc/gshadow create mode 100644 tests/tests/subids/58_newusers_with_subids/config/etc/pam.d/common-password create mode 100644 tests/tests/subids/58_newusers_with_subids/config/etc/pam.d/newusers create mode 100644 tests/tests/subids/58_newusers_with_subids/config/etc/passwd create mode 100644 tests/tests/subids/58_newusers_with_subids/config/etc/shadow create mode 100644 tests/tests/subids/58_newusers_with_subids/config/etc/subgid create mode 100644 tests/tests/subids/58_newusers_with_subids/config/etc/subuid create mode 100644 tests/tests/subids/58_newusers_with_subids/data/group create mode 100644 tests/tests/subids/58_newusers_with_subids/data/gshadow create mode 100644 tests/tests/subids/58_newusers_with_subids/data/newusers.list create mode 100644 tests/tests/subids/58_newusers_with_subids/data/passwd create mode 100644 tests/tests/subids/58_newusers_with_subids/data/shadow create mode 100644 tests/tests/subids/58_newusers_with_subids/data/subgid create mode 100644 tests/tests/subids/58_newusers_with_subids/data/subuid create mode 100755 tests/tests/subids/58_newusers_with_subids/newusers.test create mode 100644 tests/tests/subids/59_newusers_no_subuid/config.txt create mode 100644 tests/tests/subids/59_newusers_no_subuid/config/etc/group create mode 100644 tests/tests/subids/59_newusers_no_subuid/config/etc/gshadow create mode 100644 tests/tests/subids/59_newusers_no_subuid/config/etc/pam.d/common-password create mode 100644 tests/tests/subids/59_newusers_no_subuid/config/etc/pam.d/newusers create mode 100644 tests/tests/subids/59_newusers_no_subuid/config/etc/passwd create mode 100644 tests/tests/subids/59_newusers_no_subuid/config/etc/shadow create mode 100644 tests/tests/subids/59_newusers_no_subuid/config/etc/subgid create mode 100644 tests/tests/subids/59_newusers_no_subuid/config/etc/subuid create mode 100644 tests/tests/subids/59_newusers_no_subuid/data/group create mode 100644 tests/tests/subids/59_newusers_no_subuid/data/gshadow create mode 100644 tests/tests/subids/59_newusers_no_subuid/data/newusers.list create mode 100644 tests/tests/subids/59_newusers_no_subuid/data/passwd create mode 100644 tests/tests/subids/59_newusers_no_subuid/data/shadow create mode 100644 tests/tests/subids/59_newusers_no_subuid/data/subgid create mode 100755 tests/tests/subids/59_newusers_no_subuid/newusers.test create mode 100644 tests/tests/subids/60_newusers_no_subgid/config.txt create mode 100644 tests/tests/subids/60_newusers_no_subgid/config/etc/group create mode 100644 tests/tests/subids/60_newusers_no_subgid/config/etc/gshadow create mode 100644 tests/tests/subids/60_newusers_no_subgid/config/etc/pam.d/common-password create mode 100644 tests/tests/subids/60_newusers_no_subgid/config/etc/pam.d/newusers create mode 100644 tests/tests/subids/60_newusers_no_subgid/config/etc/passwd create mode 100644 tests/tests/subids/60_newusers_no_subgid/config/etc/shadow create mode 100644 tests/tests/subids/60_newusers_no_subgid/config/etc/subgid create mode 100644 tests/tests/subids/60_newusers_no_subgid/config/etc/subuid create mode 100644 tests/tests/subids/60_newusers_no_subgid/data/group create mode 100644 tests/tests/subids/60_newusers_no_subgid/data/gshadow create mode 100644 tests/tests/subids/60_newusers_no_subgid/data/newusers.list create mode 100644 tests/tests/subids/60_newusers_no_subgid/data/passwd create mode 100644 tests/tests/subids/60_newusers_no_subgid/data/shadow create mode 100644 tests/tests/subids/60_newusers_no_subgid/data/subuid create mode 100755 tests/tests/subids/60_newusers_no_subgid/newusers.test create mode 100644 tests/tests/subids/61_newusers_user_already_has_subgids/config.txt create mode 100644 tests/tests/subids/61_newusers_user_already_has_subgids/config/etc/group create mode 100644 tests/tests/subids/61_newusers_user_already_has_subgids/config/etc/gshadow create mode 100644 tests/tests/subids/61_newusers_user_already_has_subgids/config/etc/pam.d/common-password create mode 100644 tests/tests/subids/61_newusers_user_already_has_subgids/config/etc/pam.d/newusers create mode 100644 tests/tests/subids/61_newusers_user_already_has_subgids/config/etc/passwd create mode 100644 tests/tests/subids/61_newusers_user_already_has_subgids/config/etc/shadow create mode 100644 tests/tests/subids/61_newusers_user_already_has_subgids/config/etc/subgid create mode 100644 tests/tests/subids/61_newusers_user_already_has_subgids/config/etc/subuid create mode 100644 tests/tests/subids/61_newusers_user_already_has_subgids/data/group create mode 100644 tests/tests/subids/61_newusers_user_already_has_subgids/data/gshadow create mode 100644 tests/tests/subids/61_newusers_user_already_has_subgids/data/newusers.list create mode 100644 tests/tests/subids/61_newusers_user_already_has_subgids/data/passwd create mode 100644 tests/tests/subids/61_newusers_user_already_has_subgids/data/shadow create mode 100644 tests/tests/subids/61_newusers_user_already_has_subgids/data/subuid create mode 100755 tests/tests/subids/61_newusers_user_already_has_subgids/newusers.test create mode 100644 tests/tests/subids/62_newusers_user_already_has_subuids/config.txt create mode 100644 tests/tests/subids/62_newusers_user_already_has_subuids/config/etc/group create mode 100644 tests/tests/subids/62_newusers_user_already_has_subuids/config/etc/gshadow create mode 100644 tests/tests/subids/62_newusers_user_already_has_subuids/config/etc/pam.d/common-password create mode 100644 tests/tests/subids/62_newusers_user_already_has_subuids/config/etc/pam.d/newusers create mode 100644 tests/tests/subids/62_newusers_user_already_has_subuids/config/etc/passwd create mode 100644 tests/tests/subids/62_newusers_user_already_has_subuids/config/etc/shadow create mode 100644 tests/tests/subids/62_newusers_user_already_has_subuids/config/etc/subgid create mode 100644 tests/tests/subids/62_newusers_user_already_has_subuids/config/etc/subuid create mode 100644 tests/tests/subids/62_newusers_user_already_has_subuids/data/group create mode 100644 tests/tests/subids/62_newusers_user_already_has_subuids/data/gshadow create mode 100644 tests/tests/subids/62_newusers_user_already_has_subuids/data/newusers.list create mode 100644 tests/tests/subids/62_newusers_user_already_has_subuids/data/passwd create mode 100644 tests/tests/subids/62_newusers_user_already_has_subuids/data/shadow create mode 100644 tests/tests/subids/62_newusers_user_already_has_subuids/data/subgid create mode 100755 tests/tests/subids/62_newusers_user_already_has_subuids/newusers.test create mode 100644 tests/tests/subids/63_useradd_fill_gap4/config.txt create mode 100644 tests/tests/subids/63_useradd_fill_gap4/config/etc/default/useradd create mode 100644 tests/tests/subids/63_useradd_fill_gap4/config/etc/group create mode 100644 tests/tests/subids/63_useradd_fill_gap4/config/etc/gshadow create mode 100644 tests/tests/subids/63_useradd_fill_gap4/config/etc/passwd create mode 100644 tests/tests/subids/63_useradd_fill_gap4/config/etc/shadow create mode 100644 tests/tests/subids/63_useradd_fill_gap4/config/etc/subgid create mode 100644 tests/tests/subids/63_useradd_fill_gap4/config/etc/subuid create mode 100644 tests/tests/subids/63_useradd_fill_gap4/data/group create mode 100644 tests/tests/subids/63_useradd_fill_gap4/data/gshadow create mode 100644 tests/tests/subids/63_useradd_fill_gap4/data/passwd create mode 100644 tests/tests/subids/63_useradd_fill_gap4/data/shadow create mode 100644 tests/tests/subids/63_useradd_fill_gap4/data/subgid create mode 100644 tests/tests/subids/63_useradd_fill_gap4/data/subuid create mode 100755 tests/tests/subids/63_useradd_fill_gap4/useradd.test create mode 100644 tests/tests/subids/64_useradd_fill_gap5/config.txt create mode 100644 tests/tests/subids/64_useradd_fill_gap5/config/etc/default/useradd create mode 100644 tests/tests/subids/64_useradd_fill_gap5/config/etc/group create mode 100644 tests/tests/subids/64_useradd_fill_gap5/config/etc/gshadow create mode 100644 tests/tests/subids/64_useradd_fill_gap5/config/etc/passwd create mode 100644 tests/tests/subids/64_useradd_fill_gap5/config/etc/shadow create mode 100644 tests/tests/subids/64_useradd_fill_gap5/config/etc/subgid create mode 100644 tests/tests/subids/64_useradd_fill_gap5/config/etc/subuid create mode 100644 tests/tests/subids/64_useradd_fill_gap5/data/group create mode 100644 tests/tests/subids/64_useradd_fill_gap5/data/gshadow create mode 100644 tests/tests/subids/64_useradd_fill_gap5/data/passwd create mode 100644 tests/tests/subids/64_useradd_fill_gap5/data/shadow create mode 100644 tests/tests/subids/64_useradd_fill_gap5/data/subgid create mode 100644 tests/tests/subids/64_useradd_fill_gap5/data/subuid create mode 100755 tests/tests/subids/64_useradd_fill_gap5/useradd.test create mode 100644 tests/tests/subids/65_useradd_fill_gap6/config.txt create mode 100644 tests/tests/subids/65_useradd_fill_gap6/config/etc/default/useradd create mode 100644 tests/tests/subids/65_useradd_fill_gap6/config/etc/group create mode 100644 tests/tests/subids/65_useradd_fill_gap6/config/etc/gshadow create mode 100644 tests/tests/subids/65_useradd_fill_gap6/config/etc/passwd create mode 100644 tests/tests/subids/65_useradd_fill_gap6/config/etc/shadow create mode 100644 tests/tests/subids/65_useradd_fill_gap6/config/etc/subgid create mode 100644 tests/tests/subids/65_useradd_fill_gap6/config/etc/subuid create mode 100644 tests/tests/subids/65_useradd_fill_gap6/data/group create mode 100644 tests/tests/subids/65_useradd_fill_gap6/data/gshadow create mode 100644 tests/tests/subids/65_useradd_fill_gap6/data/passwd create mode 100644 tests/tests/subids/65_useradd_fill_gap6/data/shadow create mode 100644 tests/tests/subids/65_useradd_fill_gap6/data/subgid create mode 100644 tests/tests/subids/65_useradd_fill_gap6/data/subuid create mode 100755 tests/tests/subids/65_useradd_fill_gap6/useradd.test create mode 100644 tests/tests/subids/66_subordinate_range_cmp/config.txt create mode 100644 tests/tests/subids/66_subordinate_range_cmp/config/etc/default/useradd create mode 100644 tests/tests/subids/66_subordinate_range_cmp/config/etc/group create mode 100644 tests/tests/subids/66_subordinate_range_cmp/config/etc/gshadow create mode 100644 tests/tests/subids/66_subordinate_range_cmp/config/etc/passwd create mode 100644 tests/tests/subids/66_subordinate_range_cmp/config/etc/shadow create mode 100644 tests/tests/subids/66_subordinate_range_cmp/config/etc/subgid create mode 100644 tests/tests/subids/66_subordinate_range_cmp/config/etc/subuid create mode 100644 tests/tests/subids/66_subordinate_range_cmp/data/group create mode 100644 tests/tests/subids/66_subordinate_range_cmp/data/gshadow create mode 100644 tests/tests/subids/66_subordinate_range_cmp/data/passwd create mode 100644 tests/tests/subids/66_subordinate_range_cmp/data/shadow create mode 100644 tests/tests/subids/66_subordinate_range_cmp/data/subgid create mode 100644 tests/tests/subids/66_subordinate_range_cmp/data/subuid create mode 100755 tests/tests/subids/66_subordinate_range_cmp/useradd.test create mode 100644 tests/tests/subids/67_invalid_subuid_file1/config.txt create mode 100644 tests/tests/subids/67_invalid_subuid_file1/config/etc/default/useradd create mode 100644 tests/tests/subids/67_invalid_subuid_file1/config/etc/group create mode 100644 tests/tests/subids/67_invalid_subuid_file1/config/etc/gshadow create mode 100644 tests/tests/subids/67_invalid_subuid_file1/config/etc/passwd create mode 100644 tests/tests/subids/67_invalid_subuid_file1/config/etc/shadow create mode 100644 tests/tests/subids/67_invalid_subuid_file1/config/etc/subgid create mode 100644 tests/tests/subids/67_invalid_subuid_file1/config/etc/subuid create mode 100644 tests/tests/subids/67_invalid_subuid_file1/data/group create mode 100644 tests/tests/subids/67_invalid_subuid_file1/data/gshadow create mode 100644 tests/tests/subids/67_invalid_subuid_file1/data/passwd create mode 100644 tests/tests/subids/67_invalid_subuid_file1/data/shadow create mode 100644 tests/tests/subids/67_invalid_subuid_file1/data/subgid create mode 100644 tests/tests/subids/67_invalid_subuid_file1/data/subuid create mode 100755 tests/tests/subids/67_invalid_subuid_file1/useradd.test create mode 100644 tests/tests/subids/68_invalid_subuid_file2/config.txt create mode 100644 tests/tests/subids/68_invalid_subuid_file2/config/etc/default/useradd create mode 100644 tests/tests/subids/68_invalid_subuid_file2/config/etc/group create mode 100644 tests/tests/subids/68_invalid_subuid_file2/config/etc/gshadow create mode 100644 tests/tests/subids/68_invalid_subuid_file2/config/etc/passwd create mode 100644 tests/tests/subids/68_invalid_subuid_file2/config/etc/shadow create mode 100644 tests/tests/subids/68_invalid_subuid_file2/config/etc/subgid create mode 100644 tests/tests/subids/68_invalid_subuid_file2/config/etc/subuid create mode 100644 tests/tests/subids/68_invalid_subuid_file2/data/group create mode 100644 tests/tests/subids/68_invalid_subuid_file2/data/gshadow create mode 100644 tests/tests/subids/68_invalid_subuid_file2/data/passwd create mode 100644 tests/tests/subids/68_invalid_subuid_file2/data/shadow create mode 100644 tests/tests/subids/68_invalid_subuid_file2/data/subgid create mode 100644 tests/tests/subids/68_invalid_subuid_file2/data/subuid create mode 100755 tests/tests/subids/68_invalid_subuid_file2/useradd.test create mode 100644 tests/tests/subids/69_invalid_subuid_file3/config.txt create mode 100644 tests/tests/subids/69_invalid_subuid_file3/config/etc/default/useradd create mode 100644 tests/tests/subids/69_invalid_subuid_file3/config/etc/group create mode 100644 tests/tests/subids/69_invalid_subuid_file3/config/etc/gshadow create mode 100644 tests/tests/subids/69_invalid_subuid_file3/config/etc/passwd create mode 100644 tests/tests/subids/69_invalid_subuid_file3/config/etc/shadow create mode 100644 tests/tests/subids/69_invalid_subuid_file3/config/etc/subgid create mode 100644 tests/tests/subids/69_invalid_subuid_file3/config/etc/subuid create mode 100644 tests/tests/subids/69_invalid_subuid_file3/data/group create mode 100644 tests/tests/subids/69_invalid_subuid_file3/data/gshadow create mode 100644 tests/tests/subids/69_invalid_subuid_file3/data/passwd create mode 100644 tests/tests/subids/69_invalid_subuid_file3/data/shadow create mode 100644 tests/tests/subids/69_invalid_subuid_file3/data/subgid create mode 100644 tests/tests/subids/69_invalid_subuid_file3/data/subuid create mode 100755 tests/tests/subids/69_invalid_subuid_file3/useradd.test create mode 100644 tests/tests/subids/70_invalid_subuid_file4/config.txt create mode 100644 tests/tests/subids/70_invalid_subuid_file4/config/etc/default/useradd create mode 100644 tests/tests/subids/70_invalid_subuid_file4/config/etc/group create mode 100644 tests/tests/subids/70_invalid_subuid_file4/config/etc/gshadow create mode 100644 tests/tests/subids/70_invalid_subuid_file4/config/etc/passwd create mode 100644 tests/tests/subids/70_invalid_subuid_file4/config/etc/shadow create mode 100644 tests/tests/subids/70_invalid_subuid_file4/config/etc/subgid create mode 100644 tests/tests/subids/70_invalid_subuid_file4/config/etc/subuid create mode 100644 tests/tests/subids/70_invalid_subuid_file4/data/group create mode 100644 tests/tests/subids/70_invalid_subuid_file4/data/gshadow create mode 100644 tests/tests/subids/70_invalid_subuid_file4/data/passwd create mode 100644 tests/tests/subids/70_invalid_subuid_file4/data/shadow create mode 100644 tests/tests/subids/70_invalid_subuid_file4/data/subgid create mode 100644 tests/tests/subids/70_invalid_subuid_file4/data/subuid create mode 100755 tests/tests/subids/70_invalid_subuid_file4/useradd.test create mode 100644 tests/tests/subids/71_useradd_subids_for_system/config.txt create mode 100644 tests/tests/subids/71_useradd_subids_for_system/config/etc/default/useradd create mode 100644 tests/tests/subids/71_useradd_subids_for_system/config/etc/group create mode 100644 tests/tests/subids/71_useradd_subids_for_system/config/etc/gshadow create mode 100644 tests/tests/subids/71_useradd_subids_for_system/config/etc/passwd create mode 100644 tests/tests/subids/71_useradd_subids_for_system/config/etc/shadow create mode 100644 tests/tests/subids/71_useradd_subids_for_system/config/etc/subgid create mode 100644 tests/tests/subids/71_useradd_subids_for_system/config/etc/subuid create mode 100644 tests/tests/subids/71_useradd_subids_for_system/data/subgid create mode 100644 tests/tests/subids/71_useradd_subids_for_system/data/subuid create mode 100755 tests/tests/subids/71_useradd_subids_for_system/useradd.test create mode 100644 tests/tests/unit/.deps/test_adds-test_adds.Po create mode 100644 tests/tests/unit/.deps/test_atoi_strtoi-test_atoi_strtoi.Po create mode 100644 tests/tests/unit/.deps/test_chkname-test_chkname.Po create mode 100644 tests/tests/unit/.deps/test_logind-test_logind.Po create mode 100644 tests/tests/unit/.deps/test_sprintf-test_sprintf.Po create mode 100644 tests/tests/unit/.deps/test_strncpy-test_strncpy.Po create mode 100644 tests/tests/unit/.deps/test_strtcpy-test_strtcpy.Po create mode 100644 tests/tests/unit/.deps/test_xasprintf-test_xasprintf.Po create mode 100644 tests/tests/unit/.deps/test_zustr2stp-test_zustr2stp.Po create mode 100644 tests/tests/unit/.gitignore create mode 100644 tests/tests/unit/Makefile create mode 100644 tests/tests/unit/Makefile.am create mode 100644 tests/tests/unit/Makefile.in create mode 100644 tests/tests/unit/test_adds.c create mode 100644 tests/tests/unit/test_atoi_strtoi.c create mode 100644 tests/tests/unit/test_chkname.c create mode 100644 tests/tests/unit/test_logind.c create mode 100644 tests/tests/unit/test_sprintf.c create mode 100644 tests/tests/unit/test_strncpy.c create mode 100644 tests/tests/unit/test_strtcpy.c create mode 100644 tests/tests/unit/test_xasprintf.c create mode 100644 tests/tests/unit/test_zustr2stp.c create mode 100755 tests/tests/usertools/01/01_useradd_add_user.test create mode 100644 tests/tests/usertools/01/01_useradd_add_user/group create mode 100644 tests/tests/usertools/01/01_useradd_add_user/gshadow create mode 100644 tests/tests/usertools/01/01_useradd_add_user/passwd create mode 100644 tests/tests/usertools/01/01_useradd_add_user/shadow create mode 100755 tests/tests/usertools/01/01_userdel_delete_user.test create mode 100755 tests/tests/usertools/01/02_useradd_recreate_deleted_user.test create mode 100644 tests/tests/usertools/01/02_useradd_recreate_deleted_user/group create mode 100644 tests/tests/usertools/01/02_useradd_recreate_deleted_user/gshadow create mode 100644 tests/tests/usertools/01/02_useradd_recreate_deleted_user/passwd create mode 100644 tests/tests/usertools/01/02_useradd_recreate_deleted_user/shadow create mode 100755 tests/tests/usertools/01/03_useradd_additional_options.test create mode 100644 tests/tests/usertools/01/03_useradd_additional_options/group create mode 100644 tests/tests/usertools/01/03_useradd_additional_options/gshadow create mode 100644 tests/tests/usertools/01/03_useradd_additional_options/passwd create mode 100644 tests/tests/usertools/01/03_useradd_additional_options/shadow create mode 100755 tests/tests/usertools/01/04_useradd_add_user_with_existing_UID_fail.test create mode 100644 tests/tests/usertools/01/04_useradd_add_user_with_existing_UID_fail/group create mode 100644 tests/tests/usertools/01/04_useradd_add_user_with_existing_UID_fail/gshadow create mode 100644 tests/tests/usertools/01/04_useradd_add_user_with_existing_UID_fail/passwd create mode 100644 tests/tests/usertools/01/04_useradd_add_user_with_existing_UID_fail/shadow create mode 100644 tests/tests/usertools/01/04_useradd_add_user_with_existing_UID_fail/useradd.err create mode 100755 tests/tests/usertools/01/04_useradd_add_user_with_existing_UID_with_-o.test create mode 100644 tests/tests/usertools/01/04_useradd_add_user_with_existing_UID_with_-o/group create mode 100644 tests/tests/usertools/01/04_useradd_add_user_with_existing_UID_with_-o/gshadow create mode 100644 tests/tests/usertools/01/04_useradd_add_user_with_existing_UID_with_-o/passwd create mode 100644 tests/tests/usertools/01/04_useradd_add_user_with_existing_UID_with_-o/shadow create mode 100755 tests/tests/usertools/01/04_useradd_specified_UID.test create mode 100644 tests/tests/usertools/01/04_useradd_specified_UID/group create mode 100644 tests/tests/usertools/01/04_useradd_specified_UID/gshadow create mode 100644 tests/tests/usertools/01/04_useradd_specified_UID/passwd create mode 100644 tests/tests/usertools/01/04_useradd_specified_UID/shadow create mode 100755 tests/tests/usertools/01/04_useradd_specified_UID_and_GID.test create mode 100644 tests/tests/usertools/01/04_useradd_specified_UID_and_GID/group create mode 100644 tests/tests/usertools/01/04_useradd_specified_UID_and_GID/gshadow create mode 100644 tests/tests/usertools/01/04_useradd_specified_UID_and_GID/passwd create mode 100644 tests/tests/usertools/01/04_useradd_specified_UID_and_GID/shadow create mode 100755 tests/tests/usertools/01/04_userdel_delete_user_with_non_unique_UID.test create mode 100644 tests/tests/usertools/01/04_userdel_delete_user_with_non_unique_UID/group create mode 100644 tests/tests/usertools/01/04_userdel_delete_user_with_non_unique_UID/gshadow create mode 100644 tests/tests/usertools/01/04_userdel_delete_user_with_non_unique_UID/passwd create mode 100644 tests/tests/usertools/01/04_userdel_delete_user_with_non_unique_UID/shadow create mode 100755 tests/tests/usertools/01/05_useradd_invalid_numeric_primary_group.test create mode 100644 tests/tests/usertools/01/05_useradd_invalid_numeric_primary_group/useradd.err create mode 100755 tests/tests/usertools/01/06_useradd_invalid_named_primary_group.test create mode 100644 tests/tests/usertools/01/06_useradd_invalid_named_primary_group/useradd.err create mode 100755 tests/tests/usertools/01/07_useradd_numerical_primary_group.test create mode 100644 tests/tests/usertools/01/07_useradd_numerical_primary_group/group create mode 100644 tests/tests/usertools/01/07_useradd_numerical_primary_group/gshadow create mode 100644 tests/tests/usertools/01/07_useradd_numerical_primary_group/passwd create mode 100644 tests/tests/usertools/01/07_useradd_numerical_primary_group/shadow create mode 100755 tests/tests/usertools/01/08_useradd_named_primary_group.test create mode 100644 tests/tests/usertools/01/08_useradd_named_primary_group/group create mode 100644 tests/tests/usertools/01/08_useradd_named_primary_group/gshadow create mode 100644 tests/tests/usertools/01/08_useradd_named_primary_group/passwd create mode 100644 tests/tests/usertools/01/08_useradd_named_primary_group/shadow create mode 100755 tests/tests/usertools/01/09_usermod_change_user_info.test create mode 100644 tests/tests/usertools/01/09_usermod_change_user_info/group create mode 100644 tests/tests/usertools/01/09_usermod_change_user_info/gshadow create mode 100644 tests/tests/usertools/01/09_usermod_change_user_info/passwd create mode 100644 tests/tests/usertools/01/09_usermod_change_user_info/shadow create mode 100755 tests/tests/usertools/01/10_usermod_rename_user.test create mode 100644 tests/tests/usertools/01/10_usermod_rename_user/group create mode 100644 tests/tests/usertools/01/10_usermod_rename_user/gshadow create mode 100644 tests/tests/usertools/01/10_usermod_rename_user/passwd create mode 100644 tests/tests/usertools/01/10_usermod_rename_user/shadow create mode 100755 tests/tests/usertools/01/10_usermod_rename_user_in_group.test create mode 100644 tests/tests/usertools/01/10_usermod_rename_user_in_group/group create mode 100644 tests/tests/usertools/01/10_usermod_rename_user_in_group/gshadow create mode 100644 tests/tests/usertools/01/10_usermod_rename_user_in_group/passwd create mode 100644 tests/tests/usertools/01/10_usermod_rename_user_in_group/shadow create mode 100755 tests/tests/usertools/01/11_usermod_change_password.test create mode 100644 tests/tests/usertools/01/11_usermod_change_password/group create mode 100644 tests/tests/usertools/01/11_usermod_change_password/gshadow create mode 100644 tests/tests/usertools/01/11_usermod_change_password/passwd create mode 100644 tests/tests/usertools/01/11_usermod_change_password/shadow create mode 100755 tests/tests/usertools/01/11_usermod_lock_password.test create mode 100644 tests/tests/usertools/01/11_usermod_lock_password/group create mode 100644 tests/tests/usertools/01/11_usermod_lock_password/gshadow create mode 100644 tests/tests/usertools/01/11_usermod_lock_password/passwd create mode 100644 tests/tests/usertools/01/11_usermod_lock_password/shadow create mode 100755 tests/tests/usertools/01/11_usermod_unlock_empty_password.test create mode 100644 tests/tests/usertools/01/11_usermod_unlock_empty_password/group create mode 100644 tests/tests/usertools/01/11_usermod_unlock_empty_password/gshadow create mode 100644 tests/tests/usertools/01/11_usermod_unlock_empty_password/passwd create mode 100644 tests/tests/usertools/01/11_usermod_unlock_empty_password/shadow create mode 100644 tests/tests/usertools/01/11_usermod_unlock_empty_password/usermod.err create mode 100755 tests/tests/usertools/01/11_usermod_unlock_password.test create mode 100644 tests/tests/usertools/01/11_usermod_unlock_password/group create mode 100644 tests/tests/usertools/01/11_usermod_unlock_password/gshadow create mode 100644 tests/tests/usertools/01/11_usermod_unlock_password/passwd create mode 100644 tests/tests/usertools/01/11_usermod_unlock_password/shadow create mode 100755 tests/tests/usertools/01/12_usermod_change_gid_name.test create mode 100644 tests/tests/usertools/01/12_usermod_change_gid_name/group create mode 100644 tests/tests/usertools/01/12_usermod_change_gid_name/gshadow create mode 100644 tests/tests/usertools/01/12_usermod_change_gid_name/passwd create mode 100644 tests/tests/usertools/01/12_usermod_change_gid_name/shadow create mode 100755 tests/tests/usertools/01/12_usermod_change_gid_number.test create mode 100644 tests/tests/usertools/01/12_usermod_change_gid_number/group create mode 100644 tests/tests/usertools/01/12_usermod_change_gid_number/gshadow create mode 100644 tests/tests/usertools/01/12_usermod_change_gid_number/passwd create mode 100644 tests/tests/usertools/01/12_usermod_change_gid_number/shadow create mode 100755 tests/tests/usertools/01/13_useradd_negative_UID.test create mode 100644 tests/tests/usertools/01/13_useradd_negative_UID/group create mode 100644 tests/tests/usertools/01/13_useradd_negative_UID/gshadow create mode 100644 tests/tests/usertools/01/13_useradd_negative_UID/passwd create mode 100644 tests/tests/usertools/01/13_useradd_negative_UID/shadow create mode 100755 tests/tests/usertools/01/14_useradd_out_of_range_UID.test create mode 100644 tests/tests/usertools/01/14_useradd_out_of_range_UID/group create mode 100644 tests/tests/usertools/01/14_useradd_out_of_range_UID/gshadow create mode 100644 tests/tests/usertools/01/14_useradd_out_of_range_UID/passwd create mode 100644 tests/tests/usertools/01/14_useradd_out_of_range_UID/shadow create mode 100755 tests/tests/usertools/01/15_useradd_specified_large_UID.test create mode 100644 tests/tests/usertools/01/15_useradd_specified_large_UID/group create mode 100644 tests/tests/usertools/01/15_useradd_specified_large_UID/gshadow create mode 100644 tests/tests/usertools/01/15_useradd_specified_large_UID/passwd create mode 100644 tests/tests/usertools/01/15_useradd_specified_large_UID/shadow create mode 100755 tests/tests/usertools/01/16_useradd_add_user_to_multiple_groups.test create mode 100644 tests/tests/usertools/01/16_useradd_add_user_to_multiple_groups/group create mode 100644 tests/tests/usertools/01/16_useradd_add_user_to_multiple_groups/gshadow create mode 100644 tests/tests/usertools/01/16_useradd_add_user_to_multiple_groups/passwd create mode 100644 tests/tests/usertools/01/16_useradd_add_user_to_multiple_groups/shadow create mode 100755 tests/tests/usertools/01/16_useradd_add_user_to_one_group.test create mode 100644 tests/tests/usertools/01/16_useradd_add_user_to_one_group/group create mode 100644 tests/tests/usertools/01/16_useradd_add_user_to_one_group/gshadow create mode 100644 tests/tests/usertools/01/16_useradd_add_user_to_one_group/passwd create mode 100644 tests/tests/usertools/01/16_useradd_add_user_to_one_group/shadow create mode 100755 tests/tests/usertools/01/17_useradd_create_homedir.test create mode 100644 tests/tests/usertools/01/17_useradd_create_homedir/group create mode 100644 tests/tests/usertools/01/17_useradd_create_homedir/gshadow create mode 100644 tests/tests/usertools/01/17_useradd_create_homedir/passwd create mode 100644 tests/tests/usertools/01/17_useradd_create_homedir/shadow create mode 100755 tests/tests/usertools/01/18_userdel_remove_homedir.test create mode 100644 tests/tests/usertools/01/18_userdel_remove_homedir/group create mode 100644 tests/tests/usertools/01/18_userdel_remove_homedir/gshadow create mode 100644 tests/tests/usertools/01/18_userdel_remove_homedir/passwd create mode 100644 tests/tests/usertools/01/18_userdel_remove_homedir/shadow create mode 100644 tests/tests/usertools/01/18_userdel_remove_homedir/userdel.err create mode 100755 tests/tests/usertools/01/19_userdel_delete_user_in_group.test create mode 100755 tests/tests/usertools/01/20_usermod_change_homedir.test create mode 100755 tests/tests/usertools/01/21_usermod_change_and_move_homedir.test create mode 100755 tests/tests/usertools/01/22_usermod_new_groups.test create mode 100644 tests/tests/usertools/01/22_usermod_new_groups/group create mode 100644 tests/tests/usertools/01/22_usermod_new_groups/gshadow create mode 100644 tests/tests/usertools/01/22_usermod_new_groups/passwd create mode 100644 tests/tests/usertools/01/22_usermod_new_groups/shadow create mode 100755 tests/tests/usertools/01/23_usermod_add_groups.test create mode 100644 tests/tests/usertools/01/23_usermod_add_groups/group create mode 100644 tests/tests/usertools/01/23_usermod_add_groups/gshadow create mode 100644 tests/tests/usertools/01/23_usermod_add_groups/passwd create mode 100644 tests/tests/usertools/01/23_usermod_add_groups/shadow create mode 100755 tests/tests/usertools/01/24_usermod_new_groups_remove_old_groups.test create mode 100644 tests/tests/usertools/01/24_usermod_new_groups_remove_old_groups/group create mode 100644 tests/tests/usertools/01/24_usermod_new_groups_remove_old_groups/gshadow create mode 100644 tests/tests/usertools/01/24_usermod_new_groups_remove_old_groups/passwd create mode 100644 tests/tests/usertools/01/24_usermod_new_groups_remove_old_groups/shadow create mode 100755 tests/tests/usertools/01/25_useradd_specified_large_UID2.test create mode 100644 tests/tests/usertools/01/25_useradd_specified_large_UID2/group create mode 100644 tests/tests/usertools/01/25_useradd_specified_large_UID2/gshadow create mode 100644 tests/tests/usertools/01/25_useradd_specified_large_UID2/passwd create mode 100644 tests/tests/usertools/01/25_useradd_specified_large_UID2/shadow create mode 100755 tests/tests/usertools/01/26_useradd_UID_-1.test create mode 100644 tests/tests/usertools/01/26_useradd_UID_-1/group create mode 100644 tests/tests/usertools/01/26_useradd_UID_-1/gshadow create mode 100644 tests/tests/usertools/01/26_useradd_UID_-1/passwd create mode 100644 tests/tests/usertools/01/26_useradd_UID_-1/shadow create mode 100644 tests/tests/usertools/01/config/etc/default/useradd create mode 100644 tests/tests/usertools/01/config/etc/group create mode 100644 tests/tests/usertools/01/config/etc/gshadow create mode 100644 tests/tests/usertools/01/config/etc/passwd create mode 100644 tests/tests/usertools/01/config/etc/shadow create mode 100644 tests/tests/usertools/02/config.txt create mode 100644 tests/tests/usertools/02/config/etc/default/useradd create mode 100644 tests/tests/usertools/02/config/etc/group create mode 100644 tests/tests/usertools/02/config/etc/gshadow create mode 100644 tests/tests/usertools/02/config/etc/passwd create mode 100644 tests/tests/usertools/02/config/etc/shadow create mode 100644 tests/tests/usertools/02/data/useradd-D.out create mode 100644 tests/tests/usertools/02/data/useradd-D_default_values.out create mode 100755 tests/tests/usertools/02/useradd_change_default_EXPIRE.test create mode 100644 tests/tests/usertools/02/useradd_change_default_EXPIRE/useradd.default create mode 100755 tests/tests/usertools/02/useradd_change_default_GROUP.test create mode 100644 tests/tests/usertools/02/useradd_change_default_GROUP/useradd.default create mode 100755 tests/tests/usertools/02/useradd_change_default_HOME.test create mode 100644 tests/tests/usertools/02/useradd_change_default_HOME/useradd.default create mode 100755 tests/tests/usertools/02/useradd_change_default_INACTIVE.test create mode 100644 tests/tests/usertools/02/useradd_change_default_INACTIVE/useradd.default create mode 100755 tests/tests/usertools/02/useradd_change_default_SHELL.test create mode 100644 tests/tests/usertools/02/useradd_change_default_SHELL/useradd.default create mode 100755 tests/tests/usertools/02/useradd_change_defaults.test create mode 100644 tests/tests/usertools/02/useradd_change_defaults/useradd.default create mode 100755 tests/tests/usertools/02/useradd_default_default_values.test create mode 100755 tests/tests/usertools/02/useradd_get_default_values.test create mode 100644 tests/tests/usertools/03/config.txt create mode 100644 tests/tests/usertools/03/config/etc/default/useradd create mode 100644 tests/tests/usertools/03/config/etc/group create mode 100644 tests/tests/usertools/03/config/etc/gshadow create mode 100644 tests/tests/usertools/03/config/etc/passwd create mode 100644 tests/tests/usertools/03/config/etc/shadow create mode 100755 tests/tests/usertools/03/useradd_change_defaults.test create mode 100644 tests/tests/usertools/03/useradd_change_defaults/useradd.default create mode 100755 tests/tests/usertools/04/01_useradd_add_user.test create mode 100644 tests/tests/usertools/04/01_useradd_add_user/group create mode 100644 tests/tests/usertools/04/01_useradd_add_user/gshadow create mode 100644 tests/tests/usertools/04/01_useradd_add_user/passwd create mode 100644 tests/tests/usertools/04/01_useradd_add_user/shadow create mode 100644 tests/tests/usertools/04/config.txt create mode 100644 tests/tests/usertools/04/config/etc/default/useradd create mode 100644 tests/tests/usertools/04/config/etc/group create mode 100644 tests/tests/usertools/04/config/etc/gshadow create mode 100644 tests/tests/usertools/04/config/etc/passwd create mode 100644 tests/tests/usertools/04/config/etc/shadow create mode 100644 tests/tests/usertools/05_userdel_del_from_group_members/config.txt create mode 100644 tests/tests/usertools/05_userdel_del_from_group_members/config/etc/default/useradd create mode 100644 tests/tests/usertools/05_userdel_del_from_group_members/config/etc/group create mode 100644 tests/tests/usertools/05_userdel_del_from_group_members/config/etc/gshadow create mode 100644 tests/tests/usertools/05_userdel_del_from_group_members/config/etc/passwd create mode 100644 tests/tests/usertools/05_userdel_del_from_group_members/config/etc/shadow create mode 100644 tests/tests/usertools/05_userdel_del_from_group_members/data/group create mode 100644 tests/tests/usertools/05_userdel_del_from_group_members/data/gshadow create mode 100644 tests/tests/usertools/05_userdel_del_from_group_members/data/passwd create mode 100644 tests/tests/usertools/05_userdel_del_from_group_members/data/shadow create mode 100755 tests/tests/usertools/05_userdel_del_from_group_members/userdel.test create mode 100644 tests/tests/usertools/06_userdel_del_from_gshadow_members/config.txt create mode 100644 tests/tests/usertools/06_userdel_del_from_gshadow_members/config/etc/default/useradd create mode 100644 tests/tests/usertools/06_userdel_del_from_gshadow_members/config/etc/group create mode 100644 tests/tests/usertools/06_userdel_del_from_gshadow_members/config/etc/gshadow create mode 100644 tests/tests/usertools/06_userdel_del_from_gshadow_members/config/etc/passwd create mode 100644 tests/tests/usertools/06_userdel_del_from_gshadow_members/config/etc/shadow create mode 100644 tests/tests/usertools/06_userdel_del_from_gshadow_members/data/group create mode 100644 tests/tests/usertools/06_userdel_del_from_gshadow_members/data/gshadow create mode 100644 tests/tests/usertools/06_userdel_del_from_gshadow_members/data/passwd create mode 100644 tests/tests/usertools/06_userdel_del_from_gshadow_members/data/shadow create mode 100755 tests/tests/usertools/06_userdel_del_from_gshadow_members/userdel.test create mode 100644 tests/tests/usertools/07_userdel_del_from_gshadow_admins/config.txt create mode 100644 tests/tests/usertools/07_userdel_del_from_gshadow_admins/config/etc/default/useradd create mode 100644 tests/tests/usertools/07_userdel_del_from_gshadow_admins/config/etc/group create mode 100644 tests/tests/usertools/07_userdel_del_from_gshadow_admins/config/etc/gshadow create mode 100644 tests/tests/usertools/07_userdel_del_from_gshadow_admins/config/etc/passwd create mode 100644 tests/tests/usertools/07_userdel_del_from_gshadow_admins/config/etc/shadow create mode 100644 tests/tests/usertools/07_userdel_del_from_gshadow_admins/data/group create mode 100644 tests/tests/usertools/07_userdel_del_from_gshadow_admins/data/gshadow create mode 100644 tests/tests/usertools/07_userdel_del_from_gshadow_admins/data/passwd create mode 100644 tests/tests/usertools/07_userdel_del_from_gshadow_admins/data/shadow create mode 100755 tests/tests/usertools/07_userdel_del_from_gshadow_admins/userdel.test create mode 100644 tests/tests/usertools/08_userdel_del_from_group_and_gshadow/config.txt create mode 100644 tests/tests/usertools/08_userdel_del_from_group_and_gshadow/config/etc/default/useradd create mode 100644 tests/tests/usertools/08_userdel_del_from_group_and_gshadow/config/etc/group create mode 100644 tests/tests/usertools/08_userdel_del_from_group_and_gshadow/config/etc/gshadow create mode 100644 tests/tests/usertools/08_userdel_del_from_group_and_gshadow/config/etc/passwd create mode 100644 tests/tests/usertools/08_userdel_del_from_group_and_gshadow/config/etc/shadow create mode 100644 tests/tests/usertools/08_userdel_del_from_group_and_gshadow/data/group create mode 100644 tests/tests/usertools/08_userdel_del_from_group_and_gshadow/data/gshadow create mode 100644 tests/tests/usertools/08_userdel_del_from_group_and_gshadow/data/passwd create mode 100644 tests/tests/usertools/08_userdel_del_from_group_and_gshadow/data/shadow create mode 100755 tests/tests/usertools/08_userdel_del_from_group_and_gshadow/userdel.test create mode 100644 tests/tests/usertools/09_userdel_del_homedir/config.txt create mode 100644 tests/tests/usertools/09_userdel_del_homedir/config/etc/default/useradd create mode 100644 tests/tests/usertools/09_userdel_del_homedir/config/etc/group create mode 100644 tests/tests/usertools/09_userdel_del_homedir/config/etc/gshadow create mode 100644 tests/tests/usertools/09_userdel_del_homedir/config/etc/passwd create mode 100644 tests/tests/usertools/09_userdel_del_homedir/config/etc/shadow create mode 100644 tests/tests/usertools/09_userdel_del_homedir/data/group create mode 100644 tests/tests/usertools/09_userdel_del_homedir/data/gshadow create mode 100644 tests/tests/usertools/09_userdel_del_homedir/data/passwd create mode 100644 tests/tests/usertools/09_userdel_del_homedir/data/shadow create mode 100755 tests/tests/usertools/09_userdel_del_homedir/userdel.test create mode 100644 tests/tests/usertools/10_userdel_del_homedir_wrong_owner/config.txt create mode 100644 tests/tests/usertools/10_userdel_del_homedir_wrong_owner/config/etc/default/useradd create mode 100644 tests/tests/usertools/10_userdel_del_homedir_wrong_owner/config/etc/group create mode 100644 tests/tests/usertools/10_userdel_del_homedir_wrong_owner/config/etc/gshadow create mode 100644 tests/tests/usertools/10_userdel_del_homedir_wrong_owner/config/etc/passwd create mode 100644 tests/tests/usertools/10_userdel_del_homedir_wrong_owner/config/etc/shadow create mode 100644 tests/tests/usertools/10_userdel_del_homedir_wrong_owner/data/group create mode 100644 tests/tests/usertools/10_userdel_del_homedir_wrong_owner/data/gshadow create mode 100644 tests/tests/usertools/10_userdel_del_homedir_wrong_owner/data/passwd create mode 100644 tests/tests/usertools/10_userdel_del_homedir_wrong_owner/data/shadow create mode 100644 tests/tests/usertools/10_userdel_del_homedir_wrong_owner/data/userdel.err create mode 100755 tests/tests/usertools/10_userdel_del_homedir_wrong_owner/userdel.test create mode 100644 tests/tests/usertools/11_usermod_move_homedir/config.txt create mode 100644 tests/tests/usertools/11_usermod_move_homedir/config/etc/default/useradd create mode 100644 tests/tests/usertools/11_usermod_move_homedir/config/etc/group create mode 100644 tests/tests/usertools/11_usermod_move_homedir/config/etc/gshadow create mode 100644 tests/tests/usertools/11_usermod_move_homedir/config/etc/passwd create mode 100644 tests/tests/usertools/11_usermod_move_homedir/config/etc/shadow create mode 100644 tests/tests/usertools/11_usermod_move_homedir/data/home_ls-a create mode 100644 tests/tests/usertools/11_usermod_move_homedir/data/passwd create mode 100755 tests/tests/usertools/11_usermod_move_homedir/usermod.test create mode 100644 tests/tests/usertools/12_usermod_move_homedir_dev_null/config.txt create mode 100644 tests/tests/usertools/12_usermod_move_homedir_dev_null/config/etc/default/useradd create mode 100644 tests/tests/usertools/12_usermod_move_homedir_dev_null/config/etc/group create mode 100644 tests/tests/usertools/12_usermod_move_homedir_dev_null/config/etc/gshadow create mode 100644 tests/tests/usertools/12_usermod_move_homedir_dev_null/config/etc/passwd create mode 100644 tests/tests/usertools/12_usermod_move_homedir_dev_null/config/etc/shadow create mode 100644 tests/tests/usertools/12_usermod_move_homedir_dev_null/data/passwd create mode 100644 tests/tests/usertools/12_usermod_move_homedir_dev_null/data/usermod.err create mode 100755 tests/tests/usertools/12_usermod_move_homedir_dev_null/usermod.test create mode 100644 tests/tests/usertools/13_usermod_move_homedir_file/config.txt create mode 100644 tests/tests/usertools/13_usermod_move_homedir_file/config/etc/default/useradd create mode 100644 tests/tests/usertools/13_usermod_move_homedir_file/config/etc/group create mode 100644 tests/tests/usertools/13_usermod_move_homedir_file/config/etc/gshadow create mode 100644 tests/tests/usertools/13_usermod_move_homedir_file/config/etc/passwd create mode 100644 tests/tests/usertools/13_usermod_move_homedir_file/config/etc/shadow create mode 100644 tests/tests/usertools/13_usermod_move_homedir_file/data/passwd create mode 100644 tests/tests/usertools/13_usermod_move_homedir_file/data/usermod.err create mode 100755 tests/tests/usertools/13_usermod_move_homedir_file/usermod.test create mode 100644 tests/tests/usertools/14_usermod_move_homedir_other_device/config.txt create mode 100644 tests/tests/usertools/14_usermod_move_homedir_other_device/config/etc/default/useradd create mode 100644 tests/tests/usertools/14_usermod_move_homedir_other_device/config/etc/group create mode 100644 tests/tests/usertools/14_usermod_move_homedir_other_device/config/etc/gshadow create mode 100644 tests/tests/usertools/14_usermod_move_homedir_other_device/config/etc/passwd create mode 100644 tests/tests/usertools/14_usermod_move_homedir_other_device/config/etc/shadow create mode 100644 tests/tests/usertools/14_usermod_move_homedir_other_device/data/home_ls-a create mode 100644 tests/tests/usertools/14_usermod_move_homedir_other_device/data/passwd create mode 100755 tests/tests/usertools/14_usermod_move_homedir_other_device/usermod.test create mode 100644 tests/tests/usertools/15_usermod_change_supplementary_groups/config.txt create mode 100644 tests/tests/usertools/15_usermod_change_supplementary_groups/config/etc/default/useradd create mode 100644 tests/tests/usertools/15_usermod_change_supplementary_groups/config/etc/group create mode 100644 tests/tests/usertools/15_usermod_change_supplementary_groups/config/etc/gshadow create mode 100644 tests/tests/usertools/15_usermod_change_supplementary_groups/config/etc/passwd create mode 100644 tests/tests/usertools/15_usermod_change_supplementary_groups/config/etc/shadow create mode 100644 tests/tests/usertools/15_usermod_change_supplementary_groups/data/group create mode 100644 tests/tests/usertools/15_usermod_change_supplementary_groups/data/gshadow create mode 100755 tests/tests/usertools/15_usermod_change_supplementary_groups/usermod.test create mode 100644 tests/tests/usertools/16_usermod_clear_supplementary_groups/config.txt create mode 100644 tests/tests/usertools/16_usermod_clear_supplementary_groups/config/etc/default/useradd create mode 100644 tests/tests/usertools/16_usermod_clear_supplementary_groups/config/etc/group create mode 100644 tests/tests/usertools/16_usermod_clear_supplementary_groups/config/etc/gshadow create mode 100644 tests/tests/usertools/16_usermod_clear_supplementary_groups/config/etc/passwd create mode 100644 tests/tests/usertools/16_usermod_clear_supplementary_groups/config/etc/shadow create mode 100644 tests/tests/usertools/16_usermod_clear_supplementary_groups/data/group create mode 100644 tests/tests/usertools/16_usermod_clear_supplementary_groups/data/gshadow create mode 100755 tests/tests/usertools/16_usermod_clear_supplementary_groups/usermod.test create mode 100644 tests/tests/usertools/17_usermod_change_supplementary_groups_numerical/config.txt create mode 100644 tests/tests/usertools/17_usermod_change_supplementary_groups_numerical/config/etc/default/useradd create mode 100644 tests/tests/usertools/17_usermod_change_supplementary_groups_numerical/config/etc/group create mode 100644 tests/tests/usertools/17_usermod_change_supplementary_groups_numerical/config/etc/gshadow create mode 100644 tests/tests/usertools/17_usermod_change_supplementary_groups_numerical/config/etc/passwd create mode 100644 tests/tests/usertools/17_usermod_change_supplementary_groups_numerical/config/etc/shadow create mode 100644 tests/tests/usertools/17_usermod_change_supplementary_groups_numerical/data/group create mode 100644 tests/tests/usertools/17_usermod_change_supplementary_groups_numerical/data/gshadow create mode 100755 tests/tests/usertools/17_usermod_change_supplementary_groups_numerical/usermod.test create mode 100644 tests/tests/usertools/18_usermod_change_supplementary_groups-unknown_group/config.txt create mode 100644 tests/tests/usertools/18_usermod_change_supplementary_groups-unknown_group/config/etc/default/useradd create mode 100644 tests/tests/usertools/18_usermod_change_supplementary_groups-unknown_group/config/etc/group create mode 100644 tests/tests/usertools/18_usermod_change_supplementary_groups-unknown_group/config/etc/gshadow create mode 100644 tests/tests/usertools/18_usermod_change_supplementary_groups-unknown_group/config/etc/passwd create mode 100644 tests/tests/usertools/18_usermod_change_supplementary_groups-unknown_group/config/etc/shadow create mode 100644 tests/tests/usertools/18_usermod_change_supplementary_groups-unknown_group/data/usermod.err create mode 100755 tests/tests/usertools/18_usermod_change_supplementary_groups-unknown_group/usermod.test create mode 100644 tests/tests/usertools/19_usermod_change_supplementary_groups-unknown_numerical_group/config.txt create mode 100644 tests/tests/usertools/19_usermod_change_supplementary_groups-unknown_numerical_group/config/etc/default/useradd create mode 100644 tests/tests/usertools/19_usermod_change_supplementary_groups-unknown_numerical_group/config/etc/group create mode 100644 tests/tests/usertools/19_usermod_change_supplementary_groups-unknown_numerical_group/config/etc/gshadow create mode 100644 tests/tests/usertools/19_usermod_change_supplementary_groups-unknown_numerical_group/config/etc/passwd create mode 100644 tests/tests/usertools/19_usermod_change_supplementary_groups-unknown_numerical_group/config/etc/shadow create mode 100644 tests/tests/usertools/19_usermod_change_supplementary_groups-unknown_numerical_group/data/usermod.err create mode 100755 tests/tests/usertools/19_usermod_change_supplementary_groups-unknown_numerical_group/usermod.test create mode 100644 tests/tests/usertools/20_usermod_rename_user_in_member_lists/config.txt create mode 100644 tests/tests/usertools/20_usermod_rename_user_in_member_lists/config/etc/default/useradd create mode 100644 tests/tests/usertools/20_usermod_rename_user_in_member_lists/config/etc/group create mode 100644 tests/tests/usertools/20_usermod_rename_user_in_member_lists/config/etc/gshadow create mode 100644 tests/tests/usertools/20_usermod_rename_user_in_member_lists/config/etc/passwd create mode 100644 tests/tests/usertools/20_usermod_rename_user_in_member_lists/config/etc/shadow create mode 100644 tests/tests/usertools/20_usermod_rename_user_in_member_lists/data/group create mode 100644 tests/tests/usertools/20_usermod_rename_user_in_member_lists/data/gshadow create mode 100644 tests/tests/usertools/20_usermod_rename_user_in_member_lists/data/passwd create mode 100644 tests/tests/usertools/20_usermod_rename_user_in_member_lists/data/shadow create mode 100755 tests/tests/usertools/20_usermod_rename_user_in_member_lists/usermod.test create mode 100644 tests/tests/usertools/21_usermod_rename_user_in_member_lists-and-add_supplementary_groups/config.txt create mode 100644 tests/tests/usertools/21_usermod_rename_user_in_member_lists-and-add_supplementary_groups/config/etc/default/useradd create mode 100644 tests/tests/usertools/21_usermod_rename_user_in_member_lists-and-add_supplementary_groups/config/etc/group create mode 100644 tests/tests/usertools/21_usermod_rename_user_in_member_lists-and-add_supplementary_groups/config/etc/gshadow create mode 100644 tests/tests/usertools/21_usermod_rename_user_in_member_lists-and-add_supplementary_groups/config/etc/passwd create mode 100644 tests/tests/usertools/21_usermod_rename_user_in_member_lists-and-add_supplementary_groups/config/etc/shadow create mode 100644 tests/tests/usertools/21_usermod_rename_user_in_member_lists-and-add_supplementary_groups/data/group create mode 100644 tests/tests/usertools/21_usermod_rename_user_in_member_lists-and-add_supplementary_groups/data/gshadow create mode 100644 tests/tests/usertools/21_usermod_rename_user_in_member_lists-and-add_supplementary_groups/data/passwd create mode 100644 tests/tests/usertools/21_usermod_rename_user_in_member_lists-and-add_supplementary_groups/data/shadow create mode 100755 tests/tests/usertools/21_usermod_rename_user_in_member_lists-and-add_supplementary_groups/usermod.test create mode 100644 tests/tests/usertools/22_usermod-a_existing_supplementary_group/config.txt create mode 100644 tests/tests/usertools/22_usermod-a_existing_supplementary_group/config/etc/default/useradd create mode 100644 tests/tests/usertools/22_usermod-a_existing_supplementary_group/config/etc/group create mode 100644 tests/tests/usertools/22_usermod-a_existing_supplementary_group/config/etc/gshadow create mode 100644 tests/tests/usertools/22_usermod-a_existing_supplementary_group/config/etc/passwd create mode 100644 tests/tests/usertools/22_usermod-a_existing_supplementary_group/config/etc/shadow create mode 100644 tests/tests/usertools/22_usermod-a_existing_supplementary_group/data/group create mode 100644 tests/tests/usertools/22_usermod-a_existing_supplementary_group/data/gshadow create mode 100755 tests/tests/usertools/22_usermod-a_existing_supplementary_group/usermod.test create mode 100644 tests/tests/usertools/23_usermod-a_existing_supplementary_group+rename/config.txt create mode 100644 tests/tests/usertools/23_usermod-a_existing_supplementary_group+rename/config/etc/default/useradd create mode 100644 tests/tests/usertools/23_usermod-a_existing_supplementary_group+rename/config/etc/group create mode 100644 tests/tests/usertools/23_usermod-a_existing_supplementary_group+rename/config/etc/gshadow create mode 100644 tests/tests/usertools/23_usermod-a_existing_supplementary_group+rename/config/etc/passwd create mode 100644 tests/tests/usertools/23_usermod-a_existing_supplementary_group+rename/config/etc/shadow create mode 100644 tests/tests/usertools/23_usermod-a_existing_supplementary_group+rename/data/group create mode 100644 tests/tests/usertools/23_usermod-a_existing_supplementary_group+rename/data/gshadow create mode 100644 tests/tests/usertools/23_usermod-a_existing_supplementary_group+rename/data/passwd create mode 100644 tests/tests/usertools/23_usermod-a_existing_supplementary_group+rename/data/shadow create mode 100755 tests/tests/usertools/23_usermod-a_existing_supplementary_group+rename/usermod.test create mode 100644 tests/tests/usertools/24_usermod_locked_passwd/config.txt create mode 100644 tests/tests/usertools/24_usermod_locked_passwd/config/etc/default/useradd create mode 100644 tests/tests/usertools/24_usermod_locked_passwd/config/etc/group create mode 100644 tests/tests/usertools/24_usermod_locked_passwd/config/etc/gshadow create mode 100644 tests/tests/usertools/24_usermod_locked_passwd/config/etc/passwd create mode 100644 tests/tests/usertools/24_usermod_locked_passwd/config/etc/shadow create mode 100644 tests/tests/usertools/24_usermod_locked_passwd/data/usermod.err create mode 100755 tests/tests/usertools/24_usermod_locked_passwd/usermod.test create mode 100644 tests/tests/usertools/25_usermod-G_locked_group/config.txt create mode 100644 tests/tests/usertools/25_usermod-G_locked_group/config/etc/default/useradd create mode 100644 tests/tests/usertools/25_usermod-G_locked_group/config/etc/group create mode 100644 tests/tests/usertools/25_usermod-G_locked_group/config/etc/gshadow create mode 100644 tests/tests/usertools/25_usermod-G_locked_group/config/etc/passwd create mode 100644 tests/tests/usertools/25_usermod-G_locked_group/config/etc/shadow create mode 100644 tests/tests/usertools/25_usermod-G_locked_group/data/usermod.err create mode 100755 tests/tests/usertools/25_usermod-G_locked_group/usermod.test create mode 100644 tests/tests/usertools/26_usermod_locked_shadow/config.txt create mode 100644 tests/tests/usertools/26_usermod_locked_shadow/config/etc/default/useradd create mode 100644 tests/tests/usertools/26_usermod_locked_shadow/config/etc/group create mode 100644 tests/tests/usertools/26_usermod_locked_shadow/config/etc/gshadow create mode 100644 tests/tests/usertools/26_usermod_locked_shadow/config/etc/passwd create mode 100644 tests/tests/usertools/26_usermod_locked_shadow/config/etc/shadow create mode 100644 tests/tests/usertools/26_usermod_locked_shadow/data/usermod.err create mode 100755 tests/tests/usertools/26_usermod_locked_shadow/usermod.test create mode 100644 tests/tests/usertools/27_usermod-G_locked_gshadow/config.txt create mode 100644 tests/tests/usertools/27_usermod-G_locked_gshadow/config/etc/default/useradd create mode 100644 tests/tests/usertools/27_usermod-G_locked_gshadow/config/etc/group create mode 100644 tests/tests/usertools/27_usermod-G_locked_gshadow/config/etc/gshadow create mode 100644 tests/tests/usertools/27_usermod-G_locked_gshadow/config/etc/passwd create mode 100644 tests/tests/usertools/27_usermod-G_locked_gshadow/config/etc/shadow create mode 100644 tests/tests/usertools/27_usermod-G_locked_gshadow/data/usermod.err create mode 100755 tests/tests/usertools/27_usermod-G_locked_gshadow/usermod.test create mode 100644 tests/tests/usertools/28_usermod-c_locked_group/config.txt create mode 100644 tests/tests/usertools/28_usermod-c_locked_group/config/etc/default/useradd create mode 100644 tests/tests/usertools/28_usermod-c_locked_group/config/etc/group create mode 100644 tests/tests/usertools/28_usermod-c_locked_group/config/etc/gshadow create mode 100644 tests/tests/usertools/28_usermod-c_locked_group/config/etc/passwd create mode 100644 tests/tests/usertools/28_usermod-c_locked_group/config/etc/shadow create mode 100644 tests/tests/usertools/28_usermod-c_locked_group/data/passwd create mode 100755 tests/tests/usertools/28_usermod-c_locked_group/usermod.test create mode 100644 tests/tests/usertools/29_usermod-c_locked_gshadow/config.txt create mode 100644 tests/tests/usertools/29_usermod-c_locked_gshadow/config/etc/default/useradd create mode 100644 tests/tests/usertools/29_usermod-c_locked_gshadow/config/etc/group create mode 100644 tests/tests/usertools/29_usermod-c_locked_gshadow/config/etc/gshadow create mode 100644 tests/tests/usertools/29_usermod-c_locked_gshadow/config/etc/passwd create mode 100644 tests/tests/usertools/29_usermod-c_locked_gshadow/config/etc/shadow create mode 100644 tests/tests/usertools/29_usermod-c_locked_gshadow/data/passwd create mode 100755 tests/tests/usertools/29_usermod-c_locked_gshadow/usermod.test create mode 100644 tests/tests/usertools/30_usermod-l_locked_group/config.txt create mode 100644 tests/tests/usertools/30_usermod-l_locked_group/config/etc/default/useradd create mode 100644 tests/tests/usertools/30_usermod-l_locked_group/config/etc/group create mode 100644 tests/tests/usertools/30_usermod-l_locked_group/config/etc/gshadow create mode 100644 tests/tests/usertools/30_usermod-l_locked_group/config/etc/passwd create mode 100644 tests/tests/usertools/30_usermod-l_locked_group/config/etc/shadow create mode 100644 tests/tests/usertools/30_usermod-l_locked_group/data/usermod.err create mode 100755 tests/tests/usertools/30_usermod-l_locked_group/usermod.test create mode 100644 tests/tests/usertools/31_usermod-l_locked_gshadow/config.txt create mode 100644 tests/tests/usertools/31_usermod-l_locked_gshadow/config/etc/default/useradd create mode 100644 tests/tests/usertools/31_usermod-l_locked_gshadow/config/etc/group create mode 100644 tests/tests/usertools/31_usermod-l_locked_gshadow/config/etc/gshadow create mode 100644 tests/tests/usertools/31_usermod-l_locked_gshadow/config/etc/passwd create mode 100644 tests/tests/usertools/31_usermod-l_locked_gshadow/config/etc/shadow create mode 100644 tests/tests/usertools/31_usermod-l_locked_gshadow/data/usermod.err create mode 100755 tests/tests/usertools/31_usermod-l_locked_gshadow/usermod.test create mode 100644 tests/tests/usertools/32_usermod-u_new_UID/config.txt create mode 100644 tests/tests/usertools/32_usermod-u_new_UID/config/etc/default/useradd create mode 100644 tests/tests/usertools/32_usermod-u_new_UID/config/etc/group create mode 100644 tests/tests/usertools/32_usermod-u_new_UID/config/etc/gshadow create mode 100644 tests/tests/usertools/32_usermod-u_new_UID/config/etc/passwd create mode 100644 tests/tests/usertools/32_usermod-u_new_UID/config/etc/shadow create mode 100644 tests/tests/usertools/32_usermod-u_new_UID/data/passwd create mode 100755 tests/tests/usertools/32_usermod-u_new_UID/usermod.test create mode 100644 tests/tests/usertools/33_usermod-u_existing_UID/config.txt create mode 100644 tests/tests/usertools/33_usermod-u_existing_UID/config/etc/default/useradd create mode 100644 tests/tests/usertools/33_usermod-u_existing_UID/config/etc/group create mode 100644 tests/tests/usertools/33_usermod-u_existing_UID/config/etc/gshadow create mode 100644 tests/tests/usertools/33_usermod-u_existing_UID/config/etc/passwd create mode 100644 tests/tests/usertools/33_usermod-u_existing_UID/config/etc/shadow create mode 100644 tests/tests/usertools/33_usermod-u_existing_UID/data/usermod.err create mode 100755 tests/tests/usertools/33_usermod-u_existing_UID/usermod.test create mode 100644 tests/tests/usertools/34_usermod-u-o_existing_UID/config.txt create mode 100644 tests/tests/usertools/34_usermod-u-o_existing_UID/config/etc/default/useradd create mode 100644 tests/tests/usertools/34_usermod-u-o_existing_UID/config/etc/group create mode 100644 tests/tests/usertools/34_usermod-u-o_existing_UID/config/etc/gshadow create mode 100644 tests/tests/usertools/34_usermod-u-o_existing_UID/config/etc/passwd create mode 100644 tests/tests/usertools/34_usermod-u-o_existing_UID/config/etc/shadow create mode 100644 tests/tests/usertools/34_usermod-u-o_existing_UID/data/passwd create mode 100755 tests/tests/usertools/34_usermod-u-o_existing_UID/usermod.test create mode 100644 tests/tests/usertools/35_usermod-u_invalid_UID/config.txt create mode 100644 tests/tests/usertools/35_usermod-u_invalid_UID/config/etc/default/useradd create mode 100644 tests/tests/usertools/35_usermod-u_invalid_UID/config/etc/group create mode 100644 tests/tests/usertools/35_usermod-u_invalid_UID/config/etc/gshadow create mode 100644 tests/tests/usertools/35_usermod-u_invalid_UID/config/etc/passwd create mode 100644 tests/tests/usertools/35_usermod-u_invalid_UID/config/etc/shadow create mode 100644 tests/tests/usertools/35_usermod-u_invalid_UID/data/usermod.err create mode 100755 tests/tests/usertools/35_usermod-u_invalid_UID/usermod.test create mode 100644 tests/tests/usertools/36_usermod_change_uid+move_homedir_other_device/config.txt create mode 100644 tests/tests/usertools/36_usermod_change_uid+move_homedir_other_device/config/etc/default/useradd create mode 100644 tests/tests/usertools/36_usermod_change_uid+move_homedir_other_device/config/etc/group create mode 100644 tests/tests/usertools/36_usermod_change_uid+move_homedir_other_device/config/etc/gshadow create mode 100644 tests/tests/usertools/36_usermod_change_uid+move_homedir_other_device/config/etc/passwd create mode 100644 tests/tests/usertools/36_usermod_change_uid+move_homedir_other_device/config/etc/shadow create mode 100644 tests/tests/usertools/36_usermod_change_uid+move_homedir_other_device/data/home_ls-a create mode 100644 tests/tests/usertools/36_usermod_change_uid+move_homedir_other_device/data/passwd create mode 100755 tests/tests/usertools/36_usermod_change_uid+move_homedir_other_device/usermod.test create mode 100644 tests/tests/usertools/37_Debian_Bug_470745/config.txt create mode 100644 tests/tests/usertools/37_Debian_Bug_470745/config/etc/default/useradd create mode 100644 tests/tests/usertools/37_Debian_Bug_470745/config/etc/group create mode 100644 tests/tests/usertools/37_Debian_Bug_470745/config/etc/gshadow create mode 100644 tests/tests/usertools/37_Debian_Bug_470745/config/etc/passwd create mode 100644 tests/tests/usertools/37_Debian_Bug_470745/config/etc/shadow create mode 100644 tests/tests/usertools/37_Debian_Bug_470745/data/group create mode 100644 tests/tests/usertools/37_Debian_Bug_470745/data/gshadow create mode 100644 tests/tests/usertools/37_Debian_Bug_470745/data/passwd create mode 100644 tests/tests/usertools/37_Debian_Bug_470745/data/shadow create mode 100644 tests/tests/usertools/37_Debian_Bug_470745/data/usermod.err create mode 100755 tests/tests/usertools/37_Debian_Bug_470745/usermod.test create mode 100644 tests/tests/usertools/38_usermod_invalid_user/config.txt create mode 100644 tests/tests/usertools/38_usermod_invalid_user/config/etc/default/useradd create mode 100644 tests/tests/usertools/38_usermod_invalid_user/config/etc/group create mode 100644 tests/tests/usertools/38_usermod_invalid_user/config/etc/gshadow create mode 100644 tests/tests/usertools/38_usermod_invalid_user/config/etc/passwd create mode 100644 tests/tests/usertools/38_usermod_invalid_user/config/etc/shadow create mode 100644 tests/tests/usertools/38_usermod_invalid_user/data/usermod.err create mode 100755 tests/tests/usertools/38_usermod_invalid_user/usermod.test create mode 100644 tests/tests/usertools/39_usermod_-c_invalid_comment/config.txt create mode 100644 tests/tests/usertools/39_usermod_-c_invalid_comment/config/etc/default/useradd create mode 100644 tests/tests/usertools/39_usermod_-c_invalid_comment/config/etc/group create mode 100644 tests/tests/usertools/39_usermod_-c_invalid_comment/config/etc/gshadow create mode 100644 tests/tests/usertools/39_usermod_-c_invalid_comment/config/etc/passwd create mode 100644 tests/tests/usertools/39_usermod_-c_invalid_comment/config/etc/shadow create mode 100644 tests/tests/usertools/39_usermod_-c_invalid_comment/data/usermod.err create mode 100755 tests/tests/usertools/39_usermod_-c_invalid_comment/usermod.test create mode 100644 tests/tests/usertools/40_usermod_-d_invalid_homedir/config.txt create mode 100644 tests/tests/usertools/40_usermod_-d_invalid_homedir/config/etc/default/useradd create mode 100644 tests/tests/usertools/40_usermod_-d_invalid_homedir/config/etc/group create mode 100644 tests/tests/usertools/40_usermod_-d_invalid_homedir/config/etc/gshadow create mode 100644 tests/tests/usertools/40_usermod_-d_invalid_homedir/config/etc/passwd create mode 100644 tests/tests/usertools/40_usermod_-d_invalid_homedir/config/etc/shadow create mode 100644 tests/tests/usertools/40_usermod_-d_invalid_homedir/data/usermod.err create mode 100755 tests/tests/usertools/40_usermod_-d_invalid_homedir/usermod.test create mode 100644 tests/tests/usertools/41_usermod_-d_invalid_shell/config.txt create mode 100644 tests/tests/usertools/41_usermod_-d_invalid_shell/config/etc/default/useradd create mode 100644 tests/tests/usertools/41_usermod_-d_invalid_shell/config/etc/group create mode 100644 tests/tests/usertools/41_usermod_-d_invalid_shell/config/etc/gshadow create mode 100644 tests/tests/usertools/41_usermod_-d_invalid_shell/config/etc/passwd create mode 100644 tests/tests/usertools/41_usermod_-d_invalid_shell/config/etc/shadow create mode 100644 tests/tests/usertools/41_usermod_-d_invalid_shell/data/usermod.err create mode 100755 tests/tests/usertools/41_usermod_-d_invalid_shell/usermod.test create mode 100644 tests/tests/usertools/42_usermod_-g_invalid_group_name/config.txt create mode 100644 tests/tests/usertools/42_usermod_-g_invalid_group_name/config/etc/default/useradd create mode 100644 tests/tests/usertools/42_usermod_-g_invalid_group_name/config/etc/group create mode 100644 tests/tests/usertools/42_usermod_-g_invalid_group_name/config/etc/gshadow create mode 100644 tests/tests/usertools/42_usermod_-g_invalid_group_name/config/etc/passwd create mode 100644 tests/tests/usertools/42_usermod_-g_invalid_group_name/config/etc/shadow create mode 100644 tests/tests/usertools/42_usermod_-g_invalid_group_name/data/usermod.err create mode 100755 tests/tests/usertools/42_usermod_-g_invalid_group_name/usermod.test create mode 100644 tests/tests/usertools/43_usermod_-g_invalid_group_ID/config.txt create mode 100644 tests/tests/usertools/43_usermod_-g_invalid_group_ID/config/etc/default/useradd create mode 100644 tests/tests/usertools/43_usermod_-g_invalid_group_ID/config/etc/group create mode 100644 tests/tests/usertools/43_usermod_-g_invalid_group_ID/config/etc/gshadow create mode 100644 tests/tests/usertools/43_usermod_-g_invalid_group_ID/config/etc/passwd create mode 100644 tests/tests/usertools/43_usermod_-g_invalid_group_ID/config/etc/shadow create mode 100644 tests/tests/usertools/43_usermod_-g_invalid_group_ID/data/usermod.err create mode 100755 tests/tests/usertools/43_usermod_-g_invalid_group_ID/usermod.test create mode 100644 tests/tests/usertools/44_usermod-l_existing_username/config.txt create mode 100644 tests/tests/usertools/44_usermod-l_existing_username/config/etc/default/useradd create mode 100644 tests/tests/usertools/44_usermod-l_existing_username/config/etc/group create mode 100644 tests/tests/usertools/44_usermod-l_existing_username/config/etc/gshadow create mode 100644 tests/tests/usertools/44_usermod-l_existing_username/config/etc/passwd create mode 100644 tests/tests/usertools/44_usermod-l_existing_username/config/etc/shadow create mode 100644 tests/tests/usertools/44_usermod-l_existing_username/data/usermod.err create mode 100755 tests/tests/usertools/44_usermod-l_existing_username/usermod.test create mode 100644 tests/tests/usertools/45_usermod-l_existing_username_passwd/config.txt create mode 100644 tests/tests/usertools/45_usermod-l_existing_username_passwd/config/etc/default/useradd create mode 100644 tests/tests/usertools/45_usermod-l_existing_username_passwd/config/etc/group create mode 100644 tests/tests/usertools/45_usermod-l_existing_username_passwd/config/etc/gshadow create mode 100644 tests/tests/usertools/45_usermod-l_existing_username_passwd/config/etc/passwd create mode 100644 tests/tests/usertools/45_usermod-l_existing_username_passwd/config/etc/shadow create mode 100644 tests/tests/usertools/45_usermod-l_existing_username_passwd/data/usermod.err create mode 100755 tests/tests/usertools/45_usermod-l_existing_username_passwd/usermod.test create mode 100644 tests/tests/usertools/46_usermod-l_existing_username_shadow/config.txt create mode 100644 tests/tests/usertools/46_usermod-l_existing_username_shadow/config/etc/default/useradd create mode 100644 tests/tests/usertools/46_usermod-l_existing_username_shadow/config/etc/group create mode 100644 tests/tests/usertools/46_usermod-l_existing_username_shadow/config/etc/gshadow create mode 100644 tests/tests/usertools/46_usermod-l_existing_username_shadow/config/etc/passwd create mode 100644 tests/tests/usertools/46_usermod-l_existing_username_shadow/config/etc/shadow create mode 100644 tests/tests/usertools/46_usermod-l_existing_username_shadow/data/usermod.err create mode 100755 tests/tests/usertools/46_usermod-l_existing_username_shadow/usermod.test create mode 100644 tests/tests/usertools/47_usermod-l_no_shadow_file/config.txt create mode 100644 tests/tests/usertools/47_usermod-l_no_shadow_file/config/etc/default/useradd create mode 100644 tests/tests/usertools/47_usermod-l_no_shadow_file/config/etc/group create mode 100644 tests/tests/usertools/47_usermod-l_no_shadow_file/config/etc/gshadow create mode 100644 tests/tests/usertools/47_usermod-l_no_shadow_file/config/etc/passwd create mode 100644 tests/tests/usertools/47_usermod-l_no_shadow_file/config/etc/shadow create mode 100644 tests/tests/usertools/47_usermod-l_no_shadow_file/data/group create mode 100644 tests/tests/usertools/47_usermod-l_no_shadow_file/data/gshadow create mode 100644 tests/tests/usertools/47_usermod-l_no_shadow_file/data/passwd create mode 100755 tests/tests/usertools/47_usermod-l_no_shadow_file/usermod.test create mode 100644 tests/tests/usertools/48_userdel_keep_group_if_primary_other_user/config.txt create mode 100644 tests/tests/usertools/48_userdel_keep_group_if_primary_other_user/config/etc/default/useradd create mode 100644 tests/tests/usertools/48_userdel_keep_group_if_primary_other_user/config/etc/group create mode 100644 tests/tests/usertools/48_userdel_keep_group_if_primary_other_user/config/etc/gshadow create mode 100644 tests/tests/usertools/48_userdel_keep_group_if_primary_other_user/config/etc/passwd create mode 100644 tests/tests/usertools/48_userdel_keep_group_if_primary_other_user/config/etc/shadow create mode 100644 tests/tests/usertools/48_userdel_keep_group_if_primary_other_user/data/group create mode 100644 tests/tests/usertools/48_userdel_keep_group_if_primary_other_user/data/passwd create mode 100644 tests/tests/usertools/48_userdel_keep_group_if_primary_other_user/data/shadow create mode 100644 tests/tests/usertools/48_userdel_keep_group_if_primary_other_user/data/userdel.err create mode 100755 tests/tests/usertools/48_userdel_keep_group_if_primary_other_user/userdel.test create mode 100644 tests/tests/usertools/49_userdel_delete_users_group/config.txt create mode 100644 tests/tests/usertools/49_userdel_delete_users_group/config/etc/default/useradd create mode 100644 tests/tests/usertools/49_userdel_delete_users_group/config/etc/group create mode 100644 tests/tests/usertools/49_userdel_delete_users_group/config/etc/gshadow create mode 100644 tests/tests/usertools/49_userdel_delete_users_group/config/etc/passwd create mode 100644 tests/tests/usertools/49_userdel_delete_users_group/config/etc/shadow create mode 100644 tests/tests/usertools/49_userdel_delete_users_group/data/group create mode 100644 tests/tests/usertools/49_userdel_delete_users_group/data/gshadow create mode 100644 tests/tests/usertools/49_userdel_delete_users_group/data/passwd create mode 100644 tests/tests/usertools/49_userdel_delete_users_group/data/shadow create mode 100755 tests/tests/usertools/49_userdel_delete_users_group/userdel.test create mode 100644 tests/tests/usertools/50_userdel_delete_users_group_no_gshadow_group/config.txt create mode 100644 tests/tests/usertools/50_userdel_delete_users_group_no_gshadow_group/config/etc/default/useradd create mode 100644 tests/tests/usertools/50_userdel_delete_users_group_no_gshadow_group/config/etc/group create mode 100644 tests/tests/usertools/50_userdel_delete_users_group_no_gshadow_group/config/etc/gshadow create mode 100644 tests/tests/usertools/50_userdel_delete_users_group_no_gshadow_group/config/etc/passwd create mode 100644 tests/tests/usertools/50_userdel_delete_users_group_no_gshadow_group/config/etc/shadow create mode 100644 tests/tests/usertools/50_userdel_delete_users_group_no_gshadow_group/data/group create mode 100644 tests/tests/usertools/50_userdel_delete_users_group_no_gshadow_group/data/passwd create mode 100644 tests/tests/usertools/50_userdel_delete_users_group_no_gshadow_group/data/shadow create mode 100755 tests/tests/usertools/50_userdel_delete_users_group_no_gshadow_group/userdel.test create mode 100644 tests/tests/usertools/51_userdel_delete_users_group_no_gshadow_file/config.txt create mode 100644 tests/tests/usertools/51_userdel_delete_users_group_no_gshadow_file/config/etc/default/useradd create mode 100644 tests/tests/usertools/51_userdel_delete_users_group_no_gshadow_file/config/etc/group create mode 100644 tests/tests/usertools/51_userdel_delete_users_group_no_gshadow_file/config/etc/gshadow create mode 100644 tests/tests/usertools/51_userdel_delete_users_group_no_gshadow_file/config/etc/passwd create mode 100644 tests/tests/usertools/51_userdel_delete_users_group_no_gshadow_file/config/etc/shadow create mode 100644 tests/tests/usertools/51_userdel_delete_users_group_no_gshadow_file/data/group create mode 100644 tests/tests/usertools/51_userdel_delete_users_group_no_gshadow_file/data/passwd create mode 100644 tests/tests/usertools/51_userdel_delete_users_group_no_gshadow_file/data/shadow create mode 100755 tests/tests/usertools/51_userdel_delete_users_group_no_gshadow_file/userdel.test create mode 100644 tests/tests/usertools/52_userdel_delete_user_no_shadow_entry/config.txt create mode 100644 tests/tests/usertools/52_userdel_delete_user_no_shadow_entry/config/etc/default/useradd create mode 100644 tests/tests/usertools/52_userdel_delete_user_no_shadow_entry/config/etc/group create mode 100644 tests/tests/usertools/52_userdel_delete_user_no_shadow_entry/config/etc/gshadow create mode 100644 tests/tests/usertools/52_userdel_delete_user_no_shadow_entry/config/etc/passwd create mode 100644 tests/tests/usertools/52_userdel_delete_user_no_shadow_entry/config/etc/shadow create mode 100644 tests/tests/usertools/52_userdel_delete_user_no_shadow_entry/data/group create mode 100644 tests/tests/usertools/52_userdel_delete_user_no_shadow_entry/data/gshadow create mode 100644 tests/tests/usertools/52_userdel_delete_user_no_shadow_entry/data/passwd create mode 100755 tests/tests/usertools/52_userdel_delete_user_no_shadow_entry/userdel.test create mode 100644 tests/tests/usertools/53_userdel_delete_user_no_shadow_file/config.txt create mode 100644 tests/tests/usertools/53_userdel_delete_user_no_shadow_file/config/etc/default/useradd create mode 100644 tests/tests/usertools/53_userdel_delete_user_no_shadow_file/config/etc/group create mode 100644 tests/tests/usertools/53_userdel_delete_user_no_shadow_file/config/etc/gshadow create mode 100644 tests/tests/usertools/53_userdel_delete_user_no_shadow_file/config/etc/passwd create mode 100644 tests/tests/usertools/53_userdel_delete_user_no_shadow_file/config/etc/shadow create mode 100644 tests/tests/usertools/53_userdel_delete_user_no_shadow_file/data/group create mode 100644 tests/tests/usertools/53_userdel_delete_user_no_shadow_file/data/gshadow create mode 100644 tests/tests/usertools/53_userdel_delete_user_no_shadow_file/data/passwd create mode 100755 tests/tests/usertools/53_userdel_delete_user_no_shadow_file/userdel.test create mode 100644 tests/tests/usertools/54_usermod-u_invalid_UID_4294967295/config.txt create mode 100644 tests/tests/usertools/54_usermod-u_invalid_UID_4294967295/config/etc/default/useradd create mode 100644 tests/tests/usertools/54_usermod-u_invalid_UID_4294967295/config/etc/group create mode 100644 tests/tests/usertools/54_usermod-u_invalid_UID_4294967295/config/etc/gshadow create mode 100644 tests/tests/usertools/54_usermod-u_invalid_UID_4294967295/config/etc/passwd create mode 100644 tests/tests/usertools/54_usermod-u_invalid_UID_4294967295/config/etc/shadow create mode 100644 tests/tests/usertools/54_usermod-u_invalid_UID_4294967295/data/usermod.err create mode 100755 tests/tests/usertools/54_usermod-u_invalid_UID_4294967295/usermod.test create mode 100644 tests/tests/usertools/55_userdel_busy_user/config.txt create mode 100644 tests/tests/usertools/55_userdel_busy_user/config/etc/default/useradd create mode 100644 tests/tests/usertools/55_userdel_busy_user/config/etc/group create mode 100644 tests/tests/usertools/55_userdel_busy_user/config/etc/gshadow create mode 100644 tests/tests/usertools/55_userdel_busy_user/config/etc/passwd create mode 100644 tests/tests/usertools/55_userdel_busy_user/config/etc/shadow create mode 100644 tests/tests/usertools/55_userdel_busy_user/data/userdel.err create mode 100755 tests/tests/usertools/55_userdel_busy_user/userdel.test create mode 100644 tests/tests/usertools/56_userdel_locked_passwd/config.txt create mode 100644 tests/tests/usertools/56_userdel_locked_passwd/config/etc/default/useradd create mode 100644 tests/tests/usertools/56_userdel_locked_passwd/config/etc/group create mode 100644 tests/tests/usertools/56_userdel_locked_passwd/config/etc/gshadow create mode 100644 tests/tests/usertools/56_userdel_locked_passwd/config/etc/passwd create mode 100644 tests/tests/usertools/56_userdel_locked_passwd/config/etc/shadow create mode 100644 tests/tests/usertools/56_userdel_locked_passwd/data/userdel.err create mode 100755 tests/tests/usertools/56_userdel_locked_passwd/userdel.test create mode 100644 tests/tests/usertools/57_userdel_locked_group/config.txt create mode 100644 tests/tests/usertools/57_userdel_locked_group/config/etc/default/useradd create mode 100644 tests/tests/usertools/57_userdel_locked_group/config/etc/group create mode 100644 tests/tests/usertools/57_userdel_locked_group/config/etc/gshadow create mode 100644 tests/tests/usertools/57_userdel_locked_group/config/etc/passwd create mode 100644 tests/tests/usertools/57_userdel_locked_group/config/etc/shadow create mode 100644 tests/tests/usertools/57_userdel_locked_group/data/userdel.err create mode 100755 tests/tests/usertools/57_userdel_locked_group/userdel.test create mode 100644 tests/tests/usertools/58_userdel_locked_shadow/config.txt create mode 100644 tests/tests/usertools/58_userdel_locked_shadow/config/etc/default/useradd create mode 100644 tests/tests/usertools/58_userdel_locked_shadow/config/etc/group create mode 100644 tests/tests/usertools/58_userdel_locked_shadow/config/etc/gshadow create mode 100644 tests/tests/usertools/58_userdel_locked_shadow/config/etc/passwd create mode 100644 tests/tests/usertools/58_userdel_locked_shadow/config/etc/shadow create mode 100644 tests/tests/usertools/58_userdel_locked_shadow/data/userdel.err create mode 100755 tests/tests/usertools/58_userdel_locked_shadow/userdel.test create mode 100644 tests/tests/usertools/59_userdel_locked_gshadow/config.txt create mode 100644 tests/tests/usertools/59_userdel_locked_gshadow/config/etc/default/useradd create mode 100644 tests/tests/usertools/59_userdel_locked_gshadow/config/etc/group create mode 100644 tests/tests/usertools/59_userdel_locked_gshadow/config/etc/gshadow create mode 100644 tests/tests/usertools/59_userdel_locked_gshadow/config/etc/passwd create mode 100644 tests/tests/usertools/59_userdel_locked_gshadow/config/etc/shadow create mode 100644 tests/tests/usertools/59_userdel_locked_gshadow/data/userdel.err create mode 100755 tests/tests/usertools/59_userdel_locked_gshadow/userdel.test create mode 100644 tests/tests/usertools/60_userdel_invalid_user/config.txt create mode 100644 tests/tests/usertools/60_userdel_invalid_user/config/etc/default/useradd create mode 100644 tests/tests/usertools/60_userdel_invalid_user/config/etc/group create mode 100644 tests/tests/usertools/60_userdel_invalid_user/config/etc/gshadow create mode 100644 tests/tests/usertools/60_userdel_invalid_user/config/etc/passwd create mode 100644 tests/tests/usertools/60_userdel_invalid_user/config/etc/shadow create mode 100644 tests/tests/usertools/60_userdel_invalid_user/data/userdel.err create mode 100755 tests/tests/usertools/60_userdel_invalid_user/userdel.test create mode 100644 tests/tests/usertools/61_userdel_del_homedir_with_symlinks/config.txt create mode 100644 tests/tests/usertools/61_userdel_del_homedir_with_symlinks/config/etc/default/useradd create mode 100644 tests/tests/usertools/61_userdel_del_homedir_with_symlinks/config/etc/group create mode 100644 tests/tests/usertools/61_userdel_del_homedir_with_symlinks/config/etc/gshadow create mode 100644 tests/tests/usertools/61_userdel_del_homedir_with_symlinks/config/etc/passwd create mode 100644 tests/tests/usertools/61_userdel_del_homedir_with_symlinks/config/etc/shadow create mode 100644 tests/tests/usertools/61_userdel_del_homedir_with_symlinks/data/group create mode 100644 tests/tests/usertools/61_userdel_del_homedir_with_symlinks/data/gshadow create mode 100644 tests/tests/usertools/61_userdel_del_homedir_with_symlinks/data/passwd create mode 100644 tests/tests/usertools/61_userdel_del_homedir_with_symlinks/data/shadow create mode 100644 tests/tests/usertools/61_userdel_del_homedir_with_symlinks/data/userdel.err create mode 100755 tests/tests/usertools/61_userdel_del_homedir_with_symlinks/userdel.test create mode 100644 tests/tests/usertools/62_usermod_remove_supplementary_groups/config.txt create mode 100644 tests/tests/usertools/62_usermod_remove_supplementary_groups/config/etc/default/useradd create mode 100644 tests/tests/usertools/62_usermod_remove_supplementary_groups/config/etc/group create mode 100644 tests/tests/usertools/62_usermod_remove_supplementary_groups/config/etc/gshadow create mode 100644 tests/tests/usertools/62_usermod_remove_supplementary_groups/config/etc/passwd create mode 100644 tests/tests/usertools/62_usermod_remove_supplementary_groups/config/etc/shadow create mode 100644 tests/tests/usertools/62_usermod_remove_supplementary_groups/data/group create mode 100644 tests/tests/usertools/62_usermod_remove_supplementary_groups/data/gshadow create mode 100755 tests/tests/usertools/62_usermod_remove_supplementary_groups/usermod.test create mode 100755 tests/tests/usertools/chpasswd-PAM/01_chpasswd_invalid_user/chpasswd.test create mode 100644 tests/tests/usertools/chpasswd-PAM/01_chpasswd_invalid_user/config/etc/group create mode 100644 tests/tests/usertools/chpasswd-PAM/01_chpasswd_invalid_user/config/etc/gshadow create mode 100644 tests/tests/usertools/chpasswd-PAM/01_chpasswd_invalid_user/config/etc/pam.d/chpasswd create mode 100644 tests/tests/usertools/chpasswd-PAM/01_chpasswd_invalid_user/config/etc/pam.d/common-password create mode 100644 tests/tests/usertools/chpasswd-PAM/01_chpasswd_invalid_user/config/etc/passwd create mode 100644 tests/tests/usertools/chpasswd-PAM/01_chpasswd_invalid_user/config/etc/shadow create mode 100644 tests/tests/usertools/chpasswd-PAM/01_chpasswd_invalid_user/data/chpasswd.err create mode 100644 tests/tests/usertools/chpasswd-PAM/01_chpasswd_invalid_user/data/shadow create mode 100755 tests/tests/usertools/chpasswd-PAM/02_chpasswd_multiple_users/chpasswd.test create mode 100644 tests/tests/usertools/chpasswd-PAM/02_chpasswd_multiple_users/config/etc/group create mode 100644 tests/tests/usertools/chpasswd-PAM/02_chpasswd_multiple_users/config/etc/gshadow create mode 100644 tests/tests/usertools/chpasswd-PAM/02_chpasswd_multiple_users/config/etc/pam.d/chpasswd create mode 100644 tests/tests/usertools/chpasswd-PAM/02_chpasswd_multiple_users/config/etc/pam.d/common-password create mode 100644 tests/tests/usertools/chpasswd-PAM/02_chpasswd_multiple_users/config/etc/passwd create mode 100644 tests/tests/usertools/chpasswd-PAM/02_chpasswd_multiple_users/config/etc/shadow create mode 100644 tests/tests/usertools/chpasswd-PAM/02_chpasswd_multiple_users/data/shadow create mode 100755 tests/tests/usertools/chpasswd-PAM/03_chpasswd_no_shadow_file/chpasswd.test create mode 100644 tests/tests/usertools/chpasswd-PAM/03_chpasswd_no_shadow_file/config/etc/group create mode 100644 tests/tests/usertools/chpasswd-PAM/03_chpasswd_no_shadow_file/config/etc/gshadow create mode 100644 tests/tests/usertools/chpasswd-PAM/03_chpasswd_no_shadow_file/config/etc/pam.d/chpasswd create mode 100644 tests/tests/usertools/chpasswd-PAM/03_chpasswd_no_shadow_file/config/etc/pam.d/common-password create mode 100644 tests/tests/usertools/chpasswd-PAM/03_chpasswd_no_shadow_file/config/etc/passwd create mode 100644 tests/tests/usertools/chpasswd-PAM/03_chpasswd_no_shadow_file/config/etc/shadow create mode 100644 tests/tests/usertools/chpasswd-PAM/03_chpasswd_no_shadow_file/data/passwd create mode 100755 tests/tests/usertools/chpasswd-PAM/04_chpasswd_no_shadow_entry/chpasswd.test create mode 100644 tests/tests/usertools/chpasswd-PAM/04_chpasswd_no_shadow_entry/config/etc/group create mode 100644 tests/tests/usertools/chpasswd-PAM/04_chpasswd_no_shadow_entry/config/etc/gshadow create mode 100644 tests/tests/usertools/chpasswd-PAM/04_chpasswd_no_shadow_entry/config/etc/pam.d/chpasswd create mode 100644 tests/tests/usertools/chpasswd-PAM/04_chpasswd_no_shadow_entry/config/etc/pam.d/common-password create mode 100644 tests/tests/usertools/chpasswd-PAM/04_chpasswd_no_shadow_entry/config/etc/passwd create mode 100644 tests/tests/usertools/chpasswd-PAM/04_chpasswd_no_shadow_entry/config/etc/shadow create mode 100644 tests/tests/usertools/chpasswd-PAM/04_chpasswd_no_shadow_entry/data/shadow create mode 100755 tests/tests/usertools/chpasswd-PAM/05_chpasswd_error_no_password/chpasswd.test create mode 100644 tests/tests/usertools/chpasswd-PAM/05_chpasswd_error_no_password/config/etc/group create mode 100644 tests/tests/usertools/chpasswd-PAM/05_chpasswd_error_no_password/config/etc/gshadow create mode 100644 tests/tests/usertools/chpasswd-PAM/05_chpasswd_error_no_password/config/etc/pam.d/chpasswd create mode 100644 tests/tests/usertools/chpasswd-PAM/05_chpasswd_error_no_password/config/etc/pam.d/common-password create mode 100644 tests/tests/usertools/chpasswd-PAM/05_chpasswd_error_no_password/config/etc/passwd create mode 100644 tests/tests/usertools/chpasswd-PAM/05_chpasswd_error_no_password/config/etc/shadow create mode 100644 tests/tests/usertools/chpasswd-PAM/05_chpasswd_error_no_password/data/chpasswd.err create mode 100644 tests/tests/usertools/chpasswd-PAM/05_chpasswd_error_no_password/data/shadow create mode 100755 tests/tests/usertools/chpasswd-PAM/06_chpasswd_usage/chpasswd.test create mode 100644 tests/tests/usertools/chpasswd-PAM/06_chpasswd_usage/config.txt create mode 100644 tests/tests/usertools/chpasswd-PAM/06_chpasswd_usage/config/etc/default/useradd create mode 100644 tests/tests/usertools/chpasswd-PAM/06_chpasswd_usage/config/etc/group create mode 100644 tests/tests/usertools/chpasswd-PAM/06_chpasswd_usage/config/etc/gshadow create mode 100644 tests/tests/usertools/chpasswd-PAM/06_chpasswd_usage/config/etc/passwd create mode 100644 tests/tests/usertools/chpasswd-PAM/06_chpasswd_usage/config/etc/shadow create mode 100644 tests/tests/usertools/chpasswd-PAM/06_chpasswd_usage/data/usage.out create mode 100755 tests/tests/usertools/chpasswd-PAM/07_chpasswd_usage_bad_option/chpasswd.test create mode 100644 tests/tests/usertools/chpasswd-PAM/07_chpasswd_usage_bad_option/config.txt create mode 100644 tests/tests/usertools/chpasswd-PAM/07_chpasswd_usage_bad_option/config/etc/default/useradd create mode 100644 tests/tests/usertools/chpasswd-PAM/07_chpasswd_usage_bad_option/config/etc/group create mode 100644 tests/tests/usertools/chpasswd-PAM/07_chpasswd_usage_bad_option/config/etc/gshadow create mode 100644 tests/tests/usertools/chpasswd-PAM/07_chpasswd_usage_bad_option/config/etc/passwd create mode 100644 tests/tests/usertools/chpasswd-PAM/07_chpasswd_usage_bad_option/config/etc/shadow create mode 100644 tests/tests/usertools/chpasswd-PAM/07_chpasswd_usage_bad_option/data/usage.out create mode 100755 tests/tests/usertools/chpasswd-PAM/08_chpasswd_usage-e-m_exclusive/chpasswd.test create mode 100644 tests/tests/usertools/chpasswd-PAM/08_chpasswd_usage-e-m_exclusive/config.txt create mode 100644 tests/tests/usertools/chpasswd-PAM/08_chpasswd_usage-e-m_exclusive/config/etc/default/useradd create mode 100644 tests/tests/usertools/chpasswd-PAM/08_chpasswd_usage-e-m_exclusive/config/etc/group create mode 100644 tests/tests/usertools/chpasswd-PAM/08_chpasswd_usage-e-m_exclusive/config/etc/gshadow create mode 100644 tests/tests/usertools/chpasswd-PAM/08_chpasswd_usage-e-m_exclusive/config/etc/passwd create mode 100644 tests/tests/usertools/chpasswd-PAM/08_chpasswd_usage-e-m_exclusive/config/etc/shadow create mode 100644 tests/tests/usertools/chpasswd-PAM/08_chpasswd_usage-e-m_exclusive/data/usage.out create mode 100755 tests/tests/usertools/chpasswd-PAM/09_chpasswd_usage-e-c_exclusive/chpasswd.test create mode 100644 tests/tests/usertools/chpasswd-PAM/09_chpasswd_usage-e-c_exclusive/config.txt create mode 100644 tests/tests/usertools/chpasswd-PAM/09_chpasswd_usage-e-c_exclusive/config/etc/default/useradd create mode 100644 tests/tests/usertools/chpasswd-PAM/09_chpasswd_usage-e-c_exclusive/config/etc/group create mode 100644 tests/tests/usertools/chpasswd-PAM/09_chpasswd_usage-e-c_exclusive/config/etc/gshadow create mode 100644 tests/tests/usertools/chpasswd-PAM/09_chpasswd_usage-e-c_exclusive/config/etc/passwd create mode 100644 tests/tests/usertools/chpasswd-PAM/09_chpasswd_usage-e-c_exclusive/config/etc/shadow create mode 100644 tests/tests/usertools/chpasswd-PAM/09_chpasswd_usage-e-c_exclusive/data/usage.out create mode 100755 tests/tests/usertools/chpasswd-PAM/10_chpasswd_usage-m-c_exclusive/chpasswd.test create mode 100644 tests/tests/usertools/chpasswd-PAM/10_chpasswd_usage-m-c_exclusive/config.txt create mode 100644 tests/tests/usertools/chpasswd-PAM/10_chpasswd_usage-m-c_exclusive/config/etc/default/useradd create mode 100644 tests/tests/usertools/chpasswd-PAM/10_chpasswd_usage-m-c_exclusive/config/etc/group create mode 100644 tests/tests/usertools/chpasswd-PAM/10_chpasswd_usage-m-c_exclusive/config/etc/gshadow create mode 100644 tests/tests/usertools/chpasswd-PAM/10_chpasswd_usage-m-c_exclusive/config/etc/passwd create mode 100644 tests/tests/usertools/chpasswd-PAM/10_chpasswd_usage-m-c_exclusive/config/etc/shadow create mode 100644 tests/tests/usertools/chpasswd-PAM/10_chpasswd_usage-m-c_exclusive/data/usage.out create mode 100755 tests/tests/usertools/chpasswd-PAM/11_chpasswd_usage-s_without-c/chpasswd.test create mode 100644 tests/tests/usertools/chpasswd-PAM/11_chpasswd_usage-s_without-c/config.txt create mode 100644 tests/tests/usertools/chpasswd-PAM/11_chpasswd_usage-s_without-c/config/etc/default/useradd create mode 100644 tests/tests/usertools/chpasswd-PAM/11_chpasswd_usage-s_without-c/config/etc/group create mode 100644 tests/tests/usertools/chpasswd-PAM/11_chpasswd_usage-s_without-c/config/etc/gshadow create mode 100644 tests/tests/usertools/chpasswd-PAM/11_chpasswd_usage-s_without-c/config/etc/passwd create mode 100644 tests/tests/usertools/chpasswd-PAM/11_chpasswd_usage-s_without-c/config/etc/shadow create mode 100644 tests/tests/usertools/chpasswd-PAM/11_chpasswd_usage-s_without-c/data/usage.out create mode 100755 tests/tests/usertools/chpasswd-PAM/12_chpasswd_usage-s_invalid/chpasswd.test create mode 100644 tests/tests/usertools/chpasswd-PAM/12_chpasswd_usage-s_invalid/config.txt create mode 100644 tests/tests/usertools/chpasswd-PAM/12_chpasswd_usage-s_invalid/config/etc/default/useradd create mode 100644 tests/tests/usertools/chpasswd-PAM/12_chpasswd_usage-s_invalid/config/etc/group create mode 100644 tests/tests/usertools/chpasswd-PAM/12_chpasswd_usage-s_invalid/config/etc/gshadow create mode 100644 tests/tests/usertools/chpasswd-PAM/12_chpasswd_usage-s_invalid/config/etc/passwd create mode 100644 tests/tests/usertools/chpasswd-PAM/12_chpasswd_usage-s_invalid/config/etc/shadow create mode 100644 tests/tests/usertools/chpasswd-PAM/12_chpasswd_usage-s_invalid/data/usage.out create mode 100755 tests/tests/usertools/chpasswd-PAM/13_chpasswd_usage-c_invalid/chpasswd.test create mode 100644 tests/tests/usertools/chpasswd-PAM/13_chpasswd_usage-c_invalid/config.txt create mode 100644 tests/tests/usertools/chpasswd-PAM/13_chpasswd_usage-c_invalid/config/etc/default/useradd create mode 100644 tests/tests/usertools/chpasswd-PAM/13_chpasswd_usage-c_invalid/config/etc/group create mode 100644 tests/tests/usertools/chpasswd-PAM/13_chpasswd_usage-c_invalid/config/etc/gshadow create mode 100644 tests/tests/usertools/chpasswd-PAM/13_chpasswd_usage-c_invalid/config/etc/passwd create mode 100644 tests/tests/usertools/chpasswd-PAM/13_chpasswd_usage-c_invalid/config/etc/shadow create mode 100644 tests/tests/usertools/chpasswd-PAM/13_chpasswd_usage-c_invalid/data/usage.out create mode 100755 tests/tests/usertools/chpasswd-PAM/14_chpasswd_password_encrypted/chpasswd.test create mode 100644 tests/tests/usertools/chpasswd-PAM/14_chpasswd_password_encrypted/config/etc/group create mode 100644 tests/tests/usertools/chpasswd-PAM/14_chpasswd_password_encrypted/config/etc/gshadow create mode 100644 tests/tests/usertools/chpasswd-PAM/14_chpasswd_password_encrypted/config/etc/pam.d/chpasswd create mode 100644 tests/tests/usertools/chpasswd-PAM/14_chpasswd_password_encrypted/config/etc/pam.d/common-password create mode 100644 tests/tests/usertools/chpasswd-PAM/14_chpasswd_password_encrypted/config/etc/passwd create mode 100644 tests/tests/usertools/chpasswd-PAM/14_chpasswd_password_encrypted/config/etc/shadow create mode 100644 tests/tests/usertools/chpasswd-PAM/14_chpasswd_password_encrypted/data/shadow create mode 100755 tests/tests/usertools/chpasswd-PAM/15_chpasswd_password_md5/chpasswd.test create mode 100644 tests/tests/usertools/chpasswd-PAM/15_chpasswd_password_md5/config/etc/group create mode 100644 tests/tests/usertools/chpasswd-PAM/15_chpasswd_password_md5/config/etc/gshadow create mode 100644 tests/tests/usertools/chpasswd-PAM/15_chpasswd_password_md5/config/etc/pam.d/chpasswd create mode 100644 tests/tests/usertools/chpasswd-PAM/15_chpasswd_password_md5/config/etc/pam.d/common-password create mode 100644 tests/tests/usertools/chpasswd-PAM/15_chpasswd_password_md5/config/etc/passwd create mode 100644 tests/tests/usertools/chpasswd-PAM/15_chpasswd_password_md5/config/etc/shadow create mode 100644 tests/tests/usertools/chpasswd-PAM/15_chpasswd_password_md5/data/shadow create mode 100755 tests/tests/usertools/chpasswd-PAM/16_chpasswd_password_NONE/chpasswd.test create mode 100644 tests/tests/usertools/chpasswd-PAM/16_chpasswd_password_NONE/config/etc/group create mode 100644 tests/tests/usertools/chpasswd-PAM/16_chpasswd_password_NONE/config/etc/gshadow create mode 100644 tests/tests/usertools/chpasswd-PAM/16_chpasswd_password_NONE/config/etc/pam.d/chpasswd create mode 100644 tests/tests/usertools/chpasswd-PAM/16_chpasswd_password_NONE/config/etc/pam.d/common-password create mode 100644 tests/tests/usertools/chpasswd-PAM/16_chpasswd_password_NONE/config/etc/passwd create mode 100644 tests/tests/usertools/chpasswd-PAM/16_chpasswd_password_NONE/config/etc/shadow create mode 100644 tests/tests/usertools/chpasswd-PAM/16_chpasswd_password_NONE/data/shadow create mode 100755 tests/tests/usertools/chpasswd-PAM/17_chpasswd_password_MD5/chpasswd.test create mode 100644 tests/tests/usertools/chpasswd-PAM/17_chpasswd_password_MD5/config/etc/group create mode 100644 tests/tests/usertools/chpasswd-PAM/17_chpasswd_password_MD5/config/etc/gshadow create mode 100644 tests/tests/usertools/chpasswd-PAM/17_chpasswd_password_MD5/config/etc/pam.d/chpasswd create mode 100644 tests/tests/usertools/chpasswd-PAM/17_chpasswd_password_MD5/config/etc/pam.d/common-password create mode 100644 tests/tests/usertools/chpasswd-PAM/17_chpasswd_password_MD5/config/etc/passwd create mode 100644 tests/tests/usertools/chpasswd-PAM/17_chpasswd_password_MD5/config/etc/shadow create mode 100644 tests/tests/usertools/chpasswd-PAM/17_chpasswd_password_MD5/data/shadow create mode 100755 tests/tests/usertools/chpasswd-PAM/18_chpasswd_password_DES/chpasswd.test create mode 100644 tests/tests/usertools/chpasswd-PAM/18_chpasswd_password_DES/config/etc/group create mode 100644 tests/tests/usertools/chpasswd-PAM/18_chpasswd_password_DES/config/etc/gshadow create mode 100644 tests/tests/usertools/chpasswd-PAM/18_chpasswd_password_DES/config/etc/pam.d/chpasswd create mode 100644 tests/tests/usertools/chpasswd-PAM/18_chpasswd_password_DES/config/etc/pam.d/common-password create mode 100644 tests/tests/usertools/chpasswd-PAM/18_chpasswd_password_DES/config/etc/passwd create mode 100644 tests/tests/usertools/chpasswd-PAM/18_chpasswd_password_DES/config/etc/shadow create mode 100644 tests/tests/usertools/chpasswd-PAM/18_chpasswd_password_DES/data/shadow create mode 100755 tests/tests/usertools/chpasswd-PAM/19_chpasswd_password_SHA256/chpasswd.test create mode 100644 tests/tests/usertools/chpasswd-PAM/19_chpasswd_password_SHA256/config/etc/group create mode 100644 tests/tests/usertools/chpasswd-PAM/19_chpasswd_password_SHA256/config/etc/gshadow create mode 100644 tests/tests/usertools/chpasswd-PAM/19_chpasswd_password_SHA256/config/etc/pam.d/chpasswd create mode 100644 tests/tests/usertools/chpasswd-PAM/19_chpasswd_password_SHA256/config/etc/pam.d/common-password create mode 100644 tests/tests/usertools/chpasswd-PAM/19_chpasswd_password_SHA256/config/etc/passwd create mode 100644 tests/tests/usertools/chpasswd-PAM/19_chpasswd_password_SHA256/config/etc/shadow create mode 100644 tests/tests/usertools/chpasswd-PAM/19_chpasswd_password_SHA256/data/shadow create mode 100755 tests/tests/usertools/chpasswd-PAM/20_chpasswd_password_SHA256_rounds_900/chpasswd.test create mode 100644 tests/tests/usertools/chpasswd-PAM/20_chpasswd_password_SHA256_rounds_900/config/etc/group create mode 100644 tests/tests/usertools/chpasswd-PAM/20_chpasswd_password_SHA256_rounds_900/config/etc/gshadow create mode 100644 tests/tests/usertools/chpasswd-PAM/20_chpasswd_password_SHA256_rounds_900/config/etc/pam.d/chpasswd create mode 100644 tests/tests/usertools/chpasswd-PAM/20_chpasswd_password_SHA256_rounds_900/config/etc/pam.d/common-password create mode 100644 tests/tests/usertools/chpasswd-PAM/20_chpasswd_password_SHA256_rounds_900/config/etc/passwd create mode 100644 tests/tests/usertools/chpasswd-PAM/20_chpasswd_password_SHA256_rounds_900/config/etc/shadow create mode 100644 tests/tests/usertools/chpasswd-PAM/20_chpasswd_password_SHA256_rounds_900/data/shadow create mode 100755 tests/tests/usertools/chpasswd-PAM/21_chpasswd_password_SHA256_rounds_9000/chpasswd.test create mode 100644 tests/tests/usertools/chpasswd-PAM/21_chpasswd_password_SHA256_rounds_9000/config/etc/group create mode 100644 tests/tests/usertools/chpasswd-PAM/21_chpasswd_password_SHA256_rounds_9000/config/etc/gshadow create mode 100644 tests/tests/usertools/chpasswd-PAM/21_chpasswd_password_SHA256_rounds_9000/config/etc/pam.d/chpasswd create mode 100644 tests/tests/usertools/chpasswd-PAM/21_chpasswd_password_SHA256_rounds_9000/config/etc/pam.d/common-password create mode 100644 tests/tests/usertools/chpasswd-PAM/21_chpasswd_password_SHA256_rounds_9000/config/etc/passwd create mode 100644 tests/tests/usertools/chpasswd-PAM/21_chpasswd_password_SHA256_rounds_9000/config/etc/shadow create mode 100644 tests/tests/usertools/chpasswd-PAM/21_chpasswd_password_SHA256_rounds_9000/data/shadow create mode 100755 tests/tests/usertools/chpasswd-PAM/22_chpasswd_password_SHA512/chpasswd.test create mode 100644 tests/tests/usertools/chpasswd-PAM/22_chpasswd_password_SHA512/config/etc/group create mode 100644 tests/tests/usertools/chpasswd-PAM/22_chpasswd_password_SHA512/config/etc/gshadow create mode 100644 tests/tests/usertools/chpasswd-PAM/22_chpasswd_password_SHA512/config/etc/pam.d/chpasswd create mode 100644 tests/tests/usertools/chpasswd-PAM/22_chpasswd_password_SHA512/config/etc/pam.d/common-password create mode 100644 tests/tests/usertools/chpasswd-PAM/22_chpasswd_password_SHA512/config/etc/passwd create mode 100644 tests/tests/usertools/chpasswd-PAM/22_chpasswd_password_SHA512/config/etc/shadow create mode 100644 tests/tests/usertools/chpasswd-PAM/22_chpasswd_password_SHA512/data/shadow create mode 100755 tests/tests/usertools/chpasswd-PAM/23_chpasswd_password_SHA512_rounds_900/chpasswd.test create mode 100644 tests/tests/usertools/chpasswd-PAM/23_chpasswd_password_SHA512_rounds_900/config/etc/group create mode 100644 tests/tests/usertools/chpasswd-PAM/23_chpasswd_password_SHA512_rounds_900/config/etc/gshadow create mode 100644 tests/tests/usertools/chpasswd-PAM/23_chpasswd_password_SHA512_rounds_900/config/etc/pam.d/chpasswd create mode 100644 tests/tests/usertools/chpasswd-PAM/23_chpasswd_password_SHA512_rounds_900/config/etc/pam.d/common-password create mode 100644 tests/tests/usertools/chpasswd-PAM/23_chpasswd_password_SHA512_rounds_900/config/etc/passwd create mode 100644 tests/tests/usertools/chpasswd-PAM/23_chpasswd_password_SHA512_rounds_900/config/etc/shadow create mode 100644 tests/tests/usertools/chpasswd-PAM/23_chpasswd_password_SHA512_rounds_900/data/shadow create mode 100755 tests/tests/usertools/chpasswd-PAM/24_chpasswd_password_SHA512_rounds_9000/chpasswd.test create mode 100644 tests/tests/usertools/chpasswd-PAM/24_chpasswd_password_SHA512_rounds_9000/config/etc/group create mode 100644 tests/tests/usertools/chpasswd-PAM/24_chpasswd_password_SHA512_rounds_9000/config/etc/gshadow create mode 100644 tests/tests/usertools/chpasswd-PAM/24_chpasswd_password_SHA512_rounds_9000/config/etc/pam.d/chpasswd create mode 100644 tests/tests/usertools/chpasswd-PAM/24_chpasswd_password_SHA512_rounds_9000/config/etc/pam.d/common-password create mode 100644 tests/tests/usertools/chpasswd-PAM/24_chpasswd_password_SHA512_rounds_9000/config/etc/passwd create mode 100644 tests/tests/usertools/chpasswd-PAM/24_chpasswd_password_SHA512_rounds_9000/config/etc/shadow create mode 100644 tests/tests/usertools/chpasswd-PAM/24_chpasswd_password_SHA512_rounds_9000/data/shadow create mode 100755 tests/tests/usertools/chpasswd-PAM/25_chpasswd-e_no_shadow_file/chpasswd.test create mode 100644 tests/tests/usertools/chpasswd-PAM/25_chpasswd-e_no_shadow_file/config/etc/group create mode 100644 tests/tests/usertools/chpasswd-PAM/25_chpasswd-e_no_shadow_file/config/etc/gshadow create mode 100644 tests/tests/usertools/chpasswd-PAM/25_chpasswd-e_no_shadow_file/config/etc/pam.d/chpasswd create mode 100644 tests/tests/usertools/chpasswd-PAM/25_chpasswd-e_no_shadow_file/config/etc/pam.d/common-password create mode 100644 tests/tests/usertools/chpasswd-PAM/25_chpasswd-e_no_shadow_file/config/etc/passwd create mode 100644 tests/tests/usertools/chpasswd-PAM/25_chpasswd-e_no_shadow_file/config/etc/shadow create mode 100644 tests/tests/usertools/chpasswd-PAM/25_chpasswd-e_no_shadow_file/data/passwd create mode 100755 tests/tests/usertools/chpasswd-PAM/26_chpasswd_no_shadow_file_invalid_passwd/chpasswd.test create mode 100644 tests/tests/usertools/chpasswd-PAM/26_chpasswd_no_shadow_file_invalid_passwd/config/etc/group create mode 100644 tests/tests/usertools/chpasswd-PAM/26_chpasswd_no_shadow_file_invalid_passwd/config/etc/gshadow create mode 100644 tests/tests/usertools/chpasswd-PAM/26_chpasswd_no_shadow_file_invalid_passwd/config/etc/pam.d/chpasswd create mode 100644 tests/tests/usertools/chpasswd-PAM/26_chpasswd_no_shadow_file_invalid_passwd/config/etc/pam.d/common-password create mode 100644 tests/tests/usertools/chpasswd-PAM/26_chpasswd_no_shadow_file_invalid_passwd/config/etc/passwd create mode 100644 tests/tests/usertools/chpasswd-PAM/26_chpasswd_no_shadow_file_invalid_passwd/config/etc/shadow create mode 100644 tests/tests/usertools/chpasswd-PAM/26_chpasswd_no_shadow_file_invalid_passwd/data/chpasswd.err create mode 100755 tests/tests/usertools/chpasswd-PAM/27_chpasswd_no_shadow_file_1st_invalid_passwd_entry/chpasswd.test create mode 100644 tests/tests/usertools/chpasswd-PAM/27_chpasswd_no_shadow_file_1st_invalid_passwd_entry/config/etc/group create mode 100644 tests/tests/usertools/chpasswd-PAM/27_chpasswd_no_shadow_file_1st_invalid_passwd_entry/config/etc/gshadow create mode 100644 tests/tests/usertools/chpasswd-PAM/27_chpasswd_no_shadow_file_1st_invalid_passwd_entry/config/etc/pam.d/chpasswd create mode 100644 tests/tests/usertools/chpasswd-PAM/27_chpasswd_no_shadow_file_1st_invalid_passwd_entry/config/etc/pam.d/common-password create mode 100644 tests/tests/usertools/chpasswd-PAM/27_chpasswd_no_shadow_file_1st_invalid_passwd_entry/config/etc/passwd create mode 100644 tests/tests/usertools/chpasswd-PAM/27_chpasswd_no_shadow_file_1st_invalid_passwd_entry/config/etc/shadow create mode 100644 tests/tests/usertools/chpasswd-PAM/27_chpasswd_no_shadow_file_1st_invalid_passwd_entry/data/chpasswd.err create mode 100644 tests/tests/usertools/chpasswd-PAM/27_chpasswd_no_shadow_file_1st_invalid_passwd_entry/data/passwd create mode 100755 tests/tests/usertools/chpasswd-PAM/28_chpasswd_no_shadow_file_2nd_invalid_passwd_entry/chpasswd.test create mode 100644 tests/tests/usertools/chpasswd-PAM/28_chpasswd_no_shadow_file_2nd_invalid_passwd_entry/config/etc/group create mode 100644 tests/tests/usertools/chpasswd-PAM/28_chpasswd_no_shadow_file_2nd_invalid_passwd_entry/config/etc/gshadow create mode 100644 tests/tests/usertools/chpasswd-PAM/28_chpasswd_no_shadow_file_2nd_invalid_passwd_entry/config/etc/pam.d/chpasswd create mode 100644 tests/tests/usertools/chpasswd-PAM/28_chpasswd_no_shadow_file_2nd_invalid_passwd_entry/config/etc/pam.d/common-password create mode 100644 tests/tests/usertools/chpasswd-PAM/28_chpasswd_no_shadow_file_2nd_invalid_passwd_entry/config/etc/passwd create mode 100644 tests/tests/usertools/chpasswd-PAM/28_chpasswd_no_shadow_file_2nd_invalid_passwd_entry/config/etc/shadow create mode 100644 tests/tests/usertools/chpasswd-PAM/28_chpasswd_no_shadow_file_2nd_invalid_passwd_entry/data/chpasswd.err create mode 100644 tests/tests/usertools/chpasswd-PAM/28_chpasswd_no_shadow_file_2nd_invalid_passwd_entry/data/passwd create mode 100755 tests/tests/usertools/chpasswd-PAM/29_chpasswd-e_no_shadow_entry/chpasswd.test create mode 100644 tests/tests/usertools/chpasswd-PAM/29_chpasswd-e_no_shadow_entry/config/etc/group create mode 100644 tests/tests/usertools/chpasswd-PAM/29_chpasswd-e_no_shadow_entry/config/etc/gshadow create mode 100644 tests/tests/usertools/chpasswd-PAM/29_chpasswd-e_no_shadow_entry/config/etc/pam.d/chpasswd create mode 100644 tests/tests/usertools/chpasswd-PAM/29_chpasswd-e_no_shadow_entry/config/etc/pam.d/common-password create mode 100644 tests/tests/usertools/chpasswd-PAM/29_chpasswd-e_no_shadow_entry/config/etc/passwd create mode 100644 tests/tests/usertools/chpasswd-PAM/29_chpasswd-e_no_shadow_entry/config/etc/shadow create mode 100644 tests/tests/usertools/chpasswd-PAM/29_chpasswd-e_no_shadow_entry/data/passwd create mode 100644 tests/tests/usertools/chpasswd-PAM/29_chpasswd-e_no_shadow_entry/data/shadow create mode 100755 tests/tests/usertools/chpasswd-PAM/30_chpasswd_locked_passwd/chpasswd.test create mode 100644 tests/tests/usertools/chpasswd-PAM/30_chpasswd_locked_passwd/config.txt create mode 100644 tests/tests/usertools/chpasswd-PAM/30_chpasswd_locked_passwd/config/etc/default/useradd create mode 100644 tests/tests/usertools/chpasswd-PAM/30_chpasswd_locked_passwd/config/etc/group create mode 100644 tests/tests/usertools/chpasswd-PAM/30_chpasswd_locked_passwd/config/etc/gshadow create mode 100644 tests/tests/usertools/chpasswd-PAM/30_chpasswd_locked_passwd/config/etc/passwd create mode 100644 tests/tests/usertools/chpasswd-PAM/30_chpasswd_locked_passwd/config/etc/shadow create mode 100644 tests/tests/usertools/chpasswd-PAM/30_chpasswd_locked_passwd/data/chpasswd.err create mode 100755 tests/tests/usertools/chpasswd-PAM/31_chpasswd_locked_shadow/chpasswd.test create mode 100644 tests/tests/usertools/chpasswd-PAM/31_chpasswd_locked_shadow/config.txt create mode 100644 tests/tests/usertools/chpasswd-PAM/31_chpasswd_locked_shadow/config/etc/default/useradd create mode 100644 tests/tests/usertools/chpasswd-PAM/31_chpasswd_locked_shadow/config/etc/group create mode 100644 tests/tests/usertools/chpasswd-PAM/31_chpasswd_locked_shadow/config/etc/gshadow create mode 100644 tests/tests/usertools/chpasswd-PAM/31_chpasswd_locked_shadow/config/etc/passwd create mode 100644 tests/tests/usertools/chpasswd-PAM/31_chpasswd_locked_shadow/config/etc/shadow create mode 100644 tests/tests/usertools/chpasswd-PAM/31_chpasswd_locked_shadow/data/chpasswd.err create mode 100755 tests/tests/usertools/chpasswd-PAM/32_chpasswd_invalid_user/chpasswd.test create mode 100644 tests/tests/usertools/chpasswd-PAM/32_chpasswd_invalid_user/config.txt create mode 100644 tests/tests/usertools/chpasswd-PAM/32_chpasswd_invalid_user/config/etc/default/useradd create mode 100644 tests/tests/usertools/chpasswd-PAM/32_chpasswd_invalid_user/config/etc/group create mode 100644 tests/tests/usertools/chpasswd-PAM/32_chpasswd_invalid_user/config/etc/gshadow create mode 100644 tests/tests/usertools/chpasswd-PAM/32_chpasswd_invalid_user/config/etc/passwd create mode 100644 tests/tests/usertools/chpasswd-PAM/32_chpasswd_invalid_user/config/etc/shadow create mode 100644 tests/tests/usertools/chpasswd-PAM/32_chpasswd_invalid_user/data/chpasswd.err create mode 100644 tests/tests/usertools/chpasswd-PAM/32_chpasswd_invalid_user/data/shadow create mode 100755 tests/tests/usertools/chpasswd-PAM/33_chpasswd-e_invalid_user/chpasswd.test create mode 100644 tests/tests/usertools/chpasswd-PAM/33_chpasswd-e_invalid_user/config.txt create mode 100644 tests/tests/usertools/chpasswd-PAM/33_chpasswd-e_invalid_user/config/etc/default/useradd create mode 100644 tests/tests/usertools/chpasswd-PAM/33_chpasswd-e_invalid_user/config/etc/group create mode 100644 tests/tests/usertools/chpasswd-PAM/33_chpasswd-e_invalid_user/config/etc/gshadow create mode 100644 tests/tests/usertools/chpasswd-PAM/33_chpasswd-e_invalid_user/config/etc/passwd create mode 100644 tests/tests/usertools/chpasswd-PAM/33_chpasswd-e_invalid_user/config/etc/shadow create mode 100644 tests/tests/usertools/chpasswd-PAM/33_chpasswd-e_invalid_user/data/chpasswd.err create mode 100755 tests/tests/usertools/chpasswd-PAM/34_chpasswd-e_password_shadow_and_passwd/chpasswd.test create mode 100644 tests/tests/usertools/chpasswd-PAM/34_chpasswd-e_password_shadow_and_passwd/config/etc/group create mode 100644 tests/tests/usertools/chpasswd-PAM/34_chpasswd-e_password_shadow_and_passwd/config/etc/gshadow create mode 100644 tests/tests/usertools/chpasswd-PAM/34_chpasswd-e_password_shadow_and_passwd/config/etc/pam.d/chpasswd create mode 100644 tests/tests/usertools/chpasswd-PAM/34_chpasswd-e_password_shadow_and_passwd/config/etc/pam.d/common-password create mode 100644 tests/tests/usertools/chpasswd-PAM/34_chpasswd-e_password_shadow_and_passwd/config/etc/passwd create mode 100644 tests/tests/usertools/chpasswd-PAM/34_chpasswd-e_password_shadow_and_passwd/config/etc/shadow create mode 100644 tests/tests/usertools/chpasswd-PAM/34_chpasswd-e_password_shadow_and_passwd/data/passwd create mode 100644 tests/tests/usertools/chpasswd-PAM/34_chpasswd-e_password_shadow_and_passwd/data/shadow create mode 100755 tests/tests/usertools/chpasswd/01_chpasswd_invalid_user/chpasswd.test create mode 100644 tests/tests/usertools/chpasswd/01_chpasswd_invalid_user/config/etc/group create mode 100644 tests/tests/usertools/chpasswd/01_chpasswd_invalid_user/config/etc/gshadow create mode 100644 tests/tests/usertools/chpasswd/01_chpasswd_invalid_user/config/etc/login.defs create mode 100644 tests/tests/usertools/chpasswd/01_chpasswd_invalid_user/config/etc/passwd create mode 100644 tests/tests/usertools/chpasswd/01_chpasswd_invalid_user/config/etc/shadow create mode 100644 tests/tests/usertools/chpasswd/01_chpasswd_invalid_user/data/chpasswd.err create mode 100755 tests/tests/usertools/chpasswd/02_chpasswd_multiple_users/chpasswd.test create mode 100644 tests/tests/usertools/chpasswd/02_chpasswd_multiple_users/config/etc/group create mode 100644 tests/tests/usertools/chpasswd/02_chpasswd_multiple_users/config/etc/gshadow create mode 100644 tests/tests/usertools/chpasswd/02_chpasswd_multiple_users/config/etc/login.defs create mode 100644 tests/tests/usertools/chpasswd/02_chpasswd_multiple_users/config/etc/passwd create mode 100644 tests/tests/usertools/chpasswd/02_chpasswd_multiple_users/config/etc/shadow create mode 100644 tests/tests/usertools/chpasswd/02_chpasswd_multiple_users/data/shadow create mode 100755 tests/tests/usertools/chpasswd/03_chpasswd_no_shadow_file/chpasswd.test create mode 100644 tests/tests/usertools/chpasswd/03_chpasswd_no_shadow_file/config/etc/group create mode 100644 tests/tests/usertools/chpasswd/03_chpasswd_no_shadow_file/config/etc/gshadow create mode 100644 tests/tests/usertools/chpasswd/03_chpasswd_no_shadow_file/config/etc/login.defs create mode 100644 tests/tests/usertools/chpasswd/03_chpasswd_no_shadow_file/config/etc/passwd create mode 100644 tests/tests/usertools/chpasswd/03_chpasswd_no_shadow_file/config/etc/shadow create mode 100644 tests/tests/usertools/chpasswd/03_chpasswd_no_shadow_file/data/passwd create mode 100755 tests/tests/usertools/chpasswd/04_chpasswd_no_shadow_entry/chpasswd.test create mode 100644 tests/tests/usertools/chpasswd/04_chpasswd_no_shadow_entry/config/etc/group create mode 100644 tests/tests/usertools/chpasswd/04_chpasswd_no_shadow_entry/config/etc/gshadow create mode 100644 tests/tests/usertools/chpasswd/04_chpasswd_no_shadow_entry/config/etc/login.defs create mode 100644 tests/tests/usertools/chpasswd/04_chpasswd_no_shadow_entry/config/etc/passwd create mode 100644 tests/tests/usertools/chpasswd/04_chpasswd_no_shadow_entry/config/etc/shadow create mode 100644 tests/tests/usertools/chpasswd/04_chpasswd_no_shadow_entry/data/passwd create mode 100644 tests/tests/usertools/chpasswd/04_chpasswd_no_shadow_entry/data/shadow create mode 100755 tests/tests/usertools/chpasswd/05_chpasswd_error_no_password/chpasswd.test create mode 100644 tests/tests/usertools/chpasswd/05_chpasswd_error_no_password/config/etc/group create mode 100644 tests/tests/usertools/chpasswd/05_chpasswd_error_no_password/config/etc/gshadow create mode 100644 tests/tests/usertools/chpasswd/05_chpasswd_error_no_password/config/etc/login.defs create mode 100644 tests/tests/usertools/chpasswd/05_chpasswd_error_no_password/config/etc/passwd create mode 100644 tests/tests/usertools/chpasswd/05_chpasswd_error_no_password/config/etc/shadow create mode 100644 tests/tests/usertools/chpasswd/05_chpasswd_error_no_password/data/chpasswd.err create mode 100644 tests/tests/usertools/useradd/01_useradd_usage/config.txt create mode 100644 tests/tests/usertools/useradd/01_useradd_usage/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/01_useradd_usage/config/etc/group create mode 100644 tests/tests/usertools/useradd/01_useradd_usage/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/01_useradd_usage/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/01_useradd_usage/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/01_useradd_usage/data/usage.out create mode 100755 tests/tests/usertools/useradd/01_useradd_usage/useradd.test create mode 100644 tests/tests/usertools/useradd/02_useradd_usage_invalid_option/config.txt create mode 100644 tests/tests/usertools/useradd/02_useradd_usage_invalid_option/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/02_useradd_usage_invalid_option/config/etc/group create mode 100644 tests/tests/usertools/useradd/02_useradd_usage_invalid_option/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/02_useradd_usage_invalid_option/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/02_useradd_usage_invalid_option/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/02_useradd_usage_invalid_option/data/usage.out create mode 100755 tests/tests/usertools/useradd/02_useradd_usage_invalid_option/useradd.test create mode 100644 tests/tests/usertools/useradd/03_useradd_usage_no_users/config.txt create mode 100644 tests/tests/usertools/useradd/03_useradd_usage_no_users/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/03_useradd_usage_no_users/config/etc/group create mode 100644 tests/tests/usertools/useradd/03_useradd_usage_no_users/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/03_useradd_usage_no_users/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/03_useradd_usage_no_users/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/03_useradd_usage_no_users/data/usage.out create mode 100755 tests/tests/usertools/useradd/03_useradd_usage_no_users/useradd.test create mode 100644 tests/tests/usertools/useradd/04_useradd_usage_2_users/config.txt create mode 100644 tests/tests/usertools/useradd/04_useradd_usage_2_users/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/04_useradd_usage_2_users/config/etc/group create mode 100644 tests/tests/usertools/useradd/04_useradd_usage_2_users/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/04_useradd_usage_2_users/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/04_useradd_usage_2_users/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/04_useradd_usage_2_users/data/usage.out create mode 100755 tests/tests/usertools/useradd/04_useradd_usage_2_users/useradd.test create mode 100644 tests/tests/usertools/useradd/05_useradd_usage-b_invalid1/config.txt create mode 100644 tests/tests/usertools/useradd/05_useradd_usage-b_invalid1/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/05_useradd_usage-b_invalid1/config/etc/group create mode 100644 tests/tests/usertools/useradd/05_useradd_usage-b_invalid1/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/05_useradd_usage-b_invalid1/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/05_useradd_usage-b_invalid1/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/05_useradd_usage-b_invalid1/data/usage.out create mode 100755 tests/tests/usertools/useradd/05_useradd_usage-b_invalid1/useradd.test create mode 100644 tests/tests/usertools/useradd/06_useradd_usage-b_invalid2/config.txt create mode 100644 tests/tests/usertools/useradd/06_useradd_usage-b_invalid2/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/06_useradd_usage-b_invalid2/config/etc/group create mode 100644 tests/tests/usertools/useradd/06_useradd_usage-b_invalid2/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/06_useradd_usage-b_invalid2/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/06_useradd_usage-b_invalid2/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/06_useradd_usage-b_invalid2/data/usage.out create mode 100755 tests/tests/usertools/useradd/06_useradd_usage-b_invalid2/useradd.test create mode 100644 tests/tests/usertools/useradd/07_useradd_usage-b_invalid3/config.txt create mode 100644 tests/tests/usertools/useradd/07_useradd_usage-b_invalid3/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/07_useradd_usage-b_invalid3/config/etc/group create mode 100644 tests/tests/usertools/useradd/07_useradd_usage-b_invalid3/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/07_useradd_usage-b_invalid3/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/07_useradd_usage-b_invalid3/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/07_useradd_usage-b_invalid3/data/usage.out create mode 100755 tests/tests/usertools/useradd/07_useradd_usage-b_invalid3/useradd.test create mode 100644 tests/tests/usertools/useradd/08_useradd_usage-c_invalid1/config.txt create mode 100644 tests/tests/usertools/useradd/08_useradd_usage-c_invalid1/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/08_useradd_usage-c_invalid1/config/etc/group create mode 100644 tests/tests/usertools/useradd/08_useradd_usage-c_invalid1/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/08_useradd_usage-c_invalid1/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/08_useradd_usage-c_invalid1/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/08_useradd_usage-c_invalid1/data/usage.out create mode 100755 tests/tests/usertools/useradd/08_useradd_usage-c_invalid1/useradd.test create mode 100644 tests/tests/usertools/useradd/09_useradd_usage-c_invalid2/config.txt create mode 100644 tests/tests/usertools/useradd/09_useradd_usage-c_invalid2/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/09_useradd_usage-c_invalid2/config/etc/group create mode 100644 tests/tests/usertools/useradd/09_useradd_usage-c_invalid2/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/09_useradd_usage-c_invalid2/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/09_useradd_usage-c_invalid2/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/09_useradd_usage-c_invalid2/data/usage.out create mode 100755 tests/tests/usertools/useradd/09_useradd_usage-c_invalid2/useradd.test create mode 100644 tests/tests/usertools/useradd/10_useradd_usage-d_invalid1/config.txt create mode 100644 tests/tests/usertools/useradd/10_useradd_usage-d_invalid1/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/10_useradd_usage-d_invalid1/config/etc/group create mode 100644 tests/tests/usertools/useradd/10_useradd_usage-d_invalid1/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/10_useradd_usage-d_invalid1/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/10_useradd_usage-d_invalid1/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/10_useradd_usage-d_invalid1/data/usage.out create mode 100755 tests/tests/usertools/useradd/10_useradd_usage-d_invalid1/useradd.test create mode 100644 tests/tests/usertools/useradd/11_useradd_usage-d_invalid2/config.txt create mode 100644 tests/tests/usertools/useradd/11_useradd_usage-d_invalid2/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/11_useradd_usage-d_invalid2/config/etc/group create mode 100644 tests/tests/usertools/useradd/11_useradd_usage-d_invalid2/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/11_useradd_usage-d_invalid2/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/11_useradd_usage-d_invalid2/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/11_useradd_usage-d_invalid2/data/usage.out create mode 100755 tests/tests/usertools/useradd/11_useradd_usage-d_invalid2/useradd.test create mode 100644 tests/tests/usertools/useradd/12_useradd_usage-d_invalid3/config.txt create mode 100644 tests/tests/usertools/useradd/12_useradd_usage-d_invalid3/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/12_useradd_usage-d_invalid3/config/etc/group create mode 100644 tests/tests/usertools/useradd/12_useradd_usage-d_invalid3/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/12_useradd_usage-d_invalid3/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/12_useradd_usage-d_invalid3/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/12_useradd_usage-d_invalid3/data/usage.out create mode 100755 tests/tests/usertools/useradd/12_useradd_usage-d_invalid3/useradd.test create mode 100644 tests/tests/usertools/useradd/13_useradd_usage-e_invalid1/config.txt create mode 100644 tests/tests/usertools/useradd/13_useradd_usage-e_invalid1/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/13_useradd_usage-e_invalid1/config/etc/group create mode 100644 tests/tests/usertools/useradd/13_useradd_usage-e_invalid1/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/13_useradd_usage-e_invalid1/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/13_useradd_usage-e_invalid1/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/13_useradd_usage-e_invalid1/data/usage.out create mode 100755 tests/tests/usertools/useradd/13_useradd_usage-e_invalid1/useradd.test create mode 100644 tests/tests/usertools/useradd/14_useradd_usage-e_invalid2/config.txt create mode 100644 tests/tests/usertools/useradd/14_useradd_usage-e_invalid2/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/14_useradd_usage-e_invalid2/config/etc/group create mode 100644 tests/tests/usertools/useradd/14_useradd_usage-e_invalid2/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/14_useradd_usage-e_invalid2/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/14_useradd_usage-e_invalid2/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/14_useradd_usage-e_invalid2/data/usage.out create mode 100755 tests/tests/usertools/useradd/14_useradd_usage-e_invalid2/useradd.test create mode 100644 tests/tests/usertools/useradd/15_useradd_usage-e_no_shadow_file/config.txt create mode 100644 tests/tests/usertools/useradd/15_useradd_usage-e_no_shadow_file/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/15_useradd_usage-e_no_shadow_file/config/etc/group create mode 100644 tests/tests/usertools/useradd/15_useradd_usage-e_no_shadow_file/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/15_useradd_usage-e_no_shadow_file/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/15_useradd_usage-e_no_shadow_file/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/15_useradd_usage-e_no_shadow_file/data/usage.out create mode 100755 tests/tests/usertools/useradd/15_useradd_usage-e_no_shadow_file/useradd.test create mode 100644 tests/tests/usertools/useradd/16_useradd_usage-f_invalid1/config.txt create mode 100644 tests/tests/usertools/useradd/16_useradd_usage-f_invalid1/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/16_useradd_usage-f_invalid1/config/etc/group create mode 100644 tests/tests/usertools/useradd/16_useradd_usage-f_invalid1/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/16_useradd_usage-f_invalid1/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/16_useradd_usage-f_invalid1/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/16_useradd_usage-f_invalid1/data/usage.out create mode 100755 tests/tests/usertools/useradd/16_useradd_usage-f_invalid1/useradd.test create mode 100644 tests/tests/usertools/useradd/17_useradd_usage-f_invalid2/config.txt create mode 100644 tests/tests/usertools/useradd/17_useradd_usage-f_invalid2/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/17_useradd_usage-f_invalid2/config/etc/group create mode 100644 tests/tests/usertools/useradd/17_useradd_usage-f_invalid2/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/17_useradd_usage-f_invalid2/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/17_useradd_usage-f_invalid2/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/17_useradd_usage-f_invalid2/data/usage.out create mode 100755 tests/tests/usertools/useradd/17_useradd_usage-f_invalid2/useradd.test create mode 100644 tests/tests/usertools/useradd/18_useradd_usage-f_no_shadow_file/config.txt create mode 100644 tests/tests/usertools/useradd/18_useradd_usage-f_no_shadow_file/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/18_useradd_usage-f_no_shadow_file/config/etc/group create mode 100644 tests/tests/usertools/useradd/18_useradd_usage-f_no_shadow_file/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/18_useradd_usage-f_no_shadow_file/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/18_useradd_usage-f_no_shadow_file/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/18_useradd_usage-f_no_shadow_file/data/usage.out create mode 100755 tests/tests/usertools/useradd/18_useradd_usage-f_no_shadow_file/useradd.test create mode 100644 tests/tests/usertools/useradd/19_useradd_usage-K_invalid1/config.txt create mode 100644 tests/tests/usertools/useradd/19_useradd_usage-K_invalid1/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/19_useradd_usage-K_invalid1/config/etc/group create mode 100644 tests/tests/usertools/useradd/19_useradd_usage-K_invalid1/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/19_useradd_usage-K_invalid1/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/19_useradd_usage-K_invalid1/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/19_useradd_usage-K_invalid1/data/usage.out create mode 100755 tests/tests/usertools/useradd/19_useradd_usage-K_invalid1/useradd.test create mode 100644 tests/tests/usertools/useradd/20_useradd_usage-O_invalid2/config.txt create mode 100644 tests/tests/usertools/useradd/20_useradd_usage-O_invalid2/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/20_useradd_usage-O_invalid2/config/etc/group create mode 100644 tests/tests/usertools/useradd/20_useradd_usage-O_invalid2/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/20_useradd_usage-O_invalid2/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/20_useradd_usage-O_invalid2/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/20_useradd_usage-O_invalid2/data/usage.out create mode 100755 tests/tests/usertools/useradd/20_useradd_usage-O_invalid2/useradd.test create mode 100644 tests/tests/usertools/useradd/21_useradd_usage-p_invalid1/config.txt create mode 100644 tests/tests/usertools/useradd/21_useradd_usage-p_invalid1/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/21_useradd_usage-p_invalid1/config/etc/group create mode 100644 tests/tests/usertools/useradd/21_useradd_usage-p_invalid1/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/21_useradd_usage-p_invalid1/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/21_useradd_usage-p_invalid1/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/21_useradd_usage-p_invalid1/data/usage.out create mode 100755 tests/tests/usertools/useradd/21_useradd_usage-p_invalid1/useradd.test create mode 100644 tests/tests/usertools/useradd/22_useradd_usage-p_invalid2/config.txt create mode 100644 tests/tests/usertools/useradd/22_useradd_usage-p_invalid2/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/22_useradd_usage-p_invalid2/config/etc/group create mode 100644 tests/tests/usertools/useradd/22_useradd_usage-p_invalid2/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/22_useradd_usage-p_invalid2/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/22_useradd_usage-p_invalid2/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/22_useradd_usage-p_invalid2/data/usage.out create mode 100755 tests/tests/usertools/useradd/22_useradd_usage-p_invalid2/useradd.test create mode 100644 tests/tests/usertools/useradd/23_useradd_usage-s_invalid1/config.txt create mode 100644 tests/tests/usertools/useradd/23_useradd_usage-s_invalid1/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/23_useradd_usage-s_invalid1/config/etc/group create mode 100644 tests/tests/usertools/useradd/23_useradd_usage-s_invalid1/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/23_useradd_usage-s_invalid1/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/23_useradd_usage-s_invalid1/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/23_useradd_usage-s_invalid1/data/usage.out create mode 100755 tests/tests/usertools/useradd/23_useradd_usage-s_invalid1/useradd.test create mode 100644 tests/tests/usertools/useradd/24_useradd_usage-s_invalid2/config.txt create mode 100644 tests/tests/usertools/useradd/24_useradd_usage-s_invalid2/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/24_useradd_usage-s_invalid2/config/etc/group create mode 100644 tests/tests/usertools/useradd/24_useradd_usage-s_invalid2/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/24_useradd_usage-s_invalid2/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/24_useradd_usage-s_invalid2/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/24_useradd_usage-s_invalid2/data/usage.out create mode 100755 tests/tests/usertools/useradd/24_useradd_usage-s_invalid2/useradd.test create mode 100644 tests/tests/usertools/useradd/25_useradd_usage-s_invalid3/config.txt create mode 100644 tests/tests/usertools/useradd/25_useradd_usage-s_invalid3/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/25_useradd_usage-s_invalid3/config/etc/group create mode 100644 tests/tests/usertools/useradd/25_useradd_usage-s_invalid3/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/25_useradd_usage-s_invalid3/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/25_useradd_usage-s_invalid3/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/25_useradd_usage-s_invalid3/data/usage.out create mode 100755 tests/tests/usertools/useradd/25_useradd_usage-s_invalid3/useradd.test create mode 100644 tests/tests/usertools/useradd/26_useradd_usage-o_without-u/config.txt create mode 100644 tests/tests/usertools/useradd/26_useradd_usage-o_without-u/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/26_useradd_usage-o_without-u/config/etc/group create mode 100644 tests/tests/usertools/useradd/26_useradd_usage-o_without-u/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/26_useradd_usage-o_without-u/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/26_useradd_usage-o_without-u/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/26_useradd_usage-o_without-u/data/usage.out create mode 100755 tests/tests/usertools/useradd/26_useradd_usage-o_without-u/useradd.test create mode 100644 tests/tests/usertools/useradd/27_useradd_usage-k_without-m/config.txt create mode 100644 tests/tests/usertools/useradd/27_useradd_usage-k_without-m/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/27_useradd_usage-k_without-m/config/etc/group create mode 100644 tests/tests/usertools/useradd/27_useradd_usage-k_without-m/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/27_useradd_usage-k_without-m/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/27_useradd_usage-k_without-m/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/27_useradd_usage-k_without-m/data/usage.out create mode 100755 tests/tests/usertools/useradd/27_useradd_usage-k_without-m/useradd.test create mode 100644 tests/tests/usertools/useradd/28_useradd_usage-U_with-g/config.txt create mode 100644 tests/tests/usertools/useradd/28_useradd_usage-U_with-g/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/28_useradd_usage-U_with-g/config/etc/group create mode 100644 tests/tests/usertools/useradd/28_useradd_usage-U_with-g/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/28_useradd_usage-U_with-g/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/28_useradd_usage-U_with-g/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/28_useradd_usage-U_with-g/data/usage.out create mode 100755 tests/tests/usertools/useradd/28_useradd_usage-U_with-g/useradd.test create mode 100644 tests/tests/usertools/useradd/29_useradd_usage-U_with-N/config.txt create mode 100644 tests/tests/usertools/useradd/29_useradd_usage-U_with-N/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/29_useradd_usage-U_with-N/config/etc/group create mode 100644 tests/tests/usertools/useradd/29_useradd_usage-U_with-N/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/29_useradd_usage-U_with-N/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/29_useradd_usage-U_with-N/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/29_useradd_usage-U_with-N/data/usage.out create mode 100755 tests/tests/usertools/useradd/29_useradd_usage-U_with-N/useradd.test create mode 100644 tests/tests/usertools/useradd/30_useradd_usage-m_with-M/config.txt create mode 100644 tests/tests/usertools/useradd/30_useradd_usage-m_with-M/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/30_useradd_usage-m_with-M/config/etc/group create mode 100644 tests/tests/usertools/useradd/30_useradd_usage-m_with-M/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/30_useradd_usage-m_with-M/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/30_useradd_usage-m_with-M/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/30_useradd_usage-m_with-M/data/usage.out create mode 100755 tests/tests/usertools/useradd/30_useradd_usage-m_with-M/useradd.test create mode 100644 tests/tests/usertools/useradd/31_useradd_usage_user_with-D/config.txt create mode 100644 tests/tests/usertools/useradd/31_useradd_usage_user_with-D/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/31_useradd_usage_user_with-D/config/etc/group create mode 100644 tests/tests/usertools/useradd/31_useradd_usage_user_with-D/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/31_useradd_usage_user_with-D/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/31_useradd_usage_user_with-D/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/31_useradd_usage_user_with-D/data/usage.out create mode 100755 tests/tests/usertools/useradd/31_useradd_usage_user_with-D/useradd.test create mode 100644 tests/tests/usertools/useradd/32_useradd_usage-D_with_other/config.txt create mode 100644 tests/tests/usertools/useradd/32_useradd_usage-D_with_other/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/32_useradd_usage-D_with_other/config/etc/group create mode 100644 tests/tests/usertools/useradd/32_useradd_usage-D_with_other/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/32_useradd_usage-D_with_other/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/32_useradd_usage-D_with_other/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/32_useradd_usage-D_with_other/data/usage.out create mode 100755 tests/tests/usertools/useradd/32_useradd_usage-D_with_other/useradd.test create mode 100644 tests/tests/usertools/useradd/33_useradd_usage_invalid_username/config.txt create mode 100644 tests/tests/usertools/useradd/33_useradd_usage_invalid_username/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/33_useradd_usage_invalid_username/config/etc/group create mode 100644 tests/tests/usertools/useradd/33_useradd_usage_invalid_username/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/33_useradd_usage_invalid_username/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/33_useradd_usage_invalid_username/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/33_useradd_usage_invalid_username/data/usage.out create mode 100755 tests/tests/usertools/useradd/33_useradd_usage_invalid_username/useradd.test create mode 100644 tests/tests/usertools/useradd/34_useradd_default_GROUP_GID/config.txt create mode 100644 tests/tests/usertools/useradd/34_useradd_default_GROUP_GID/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/34_useradd_default_GROUP_GID/config/etc/group create mode 100644 tests/tests/usertools/useradd/34_useradd_default_GROUP_GID/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/34_useradd_default_GROUP_GID/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/34_useradd_default_GROUP_GID/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/34_useradd_default_GROUP_GID/data/passwd create mode 100644 tests/tests/usertools/useradd/34_useradd_default_GROUP_GID/data/shadow create mode 100755 tests/tests/usertools/useradd/34_useradd_default_GROUP_GID/useradd.test create mode 100644 tests/tests/usertools/useradd/35_useradd_default_GROUP_name/config.txt create mode 100644 tests/tests/usertools/useradd/35_useradd_default_GROUP_name/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/35_useradd_default_GROUP_name/config/etc/group create mode 100644 tests/tests/usertools/useradd/35_useradd_default_GROUP_name/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/35_useradd_default_GROUP_name/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/35_useradd_default_GROUP_name/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/35_useradd_default_GROUP_name/data/passwd create mode 100644 tests/tests/usertools/useradd/35_useradd_default_GROUP_name/data/shadow create mode 100755 tests/tests/usertools/useradd/35_useradd_default_GROUP_name/useradd.test create mode 100644 tests/tests/usertools/useradd/36_useradd_default_GROUP_invalid_GID/config.txt create mode 100644 tests/tests/usertools/useradd/36_useradd_default_GROUP_invalid_GID/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/36_useradd_default_GROUP_invalid_GID/config/etc/group create mode 100644 tests/tests/usertools/useradd/36_useradd_default_GROUP_invalid_GID/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/36_useradd_default_GROUP_invalid_GID/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/36_useradd_default_GROUP_invalid_GID/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/36_useradd_default_GROUP_invalid_GID/data/passwd create mode 100644 tests/tests/usertools/useradd/36_useradd_default_GROUP_invalid_GID/data/shadow create mode 100644 tests/tests/usertools/useradd/36_useradd_default_GROUP_invalid_GID/data/usage.out create mode 100755 tests/tests/usertools/useradd/36_useradd_default_GROUP_invalid_GID/useradd.test create mode 100644 tests/tests/usertools/useradd/37_useradd_default_GROUP_invalid_name/config.txt create mode 100644 tests/tests/usertools/useradd/37_useradd_default_GROUP_invalid_name/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/37_useradd_default_GROUP_invalid_name/config/etc/group create mode 100644 tests/tests/usertools/useradd/37_useradd_default_GROUP_invalid_name/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/37_useradd_default_GROUP_invalid_name/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/37_useradd_default_GROUP_invalid_name/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/37_useradd_default_GROUP_invalid_name/data/passwd create mode 100644 tests/tests/usertools/useradd/37_useradd_default_GROUP_invalid_name/data/shadow create mode 100644 tests/tests/usertools/useradd/37_useradd_default_GROUP_invalid_name/data/usage.out create mode 100755 tests/tests/usertools/useradd/37_useradd_default_GROUP_invalid_name/useradd.test create mode 100644 tests/tests/usertools/useradd/38_useradd_default_INACTIVE/config.txt create mode 100644 tests/tests/usertools/useradd/38_useradd_default_INACTIVE/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/38_useradd_default_INACTIVE/config/etc/group create mode 100644 tests/tests/usertools/useradd/38_useradd_default_INACTIVE/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/38_useradd_default_INACTIVE/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/38_useradd_default_INACTIVE/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/38_useradd_default_INACTIVE/data/passwd create mode 100644 tests/tests/usertools/useradd/38_useradd_default_INACTIVE/data/shadow create mode 100755 tests/tests/usertools/useradd/38_useradd_default_INACTIVE/useradd.test create mode 100644 tests/tests/usertools/useradd/39_useradd_default_INACTIVE_invalid1/config.txt create mode 100644 tests/tests/usertools/useradd/39_useradd_default_INACTIVE_invalid1/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/39_useradd_default_INACTIVE_invalid1/config/etc/group create mode 100644 tests/tests/usertools/useradd/39_useradd_default_INACTIVE_invalid1/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/39_useradd_default_INACTIVE_invalid1/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/39_useradd_default_INACTIVE_invalid1/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/39_useradd_default_INACTIVE_invalid1/data/passwd create mode 100644 tests/tests/usertools/useradd/39_useradd_default_INACTIVE_invalid1/data/shadow create mode 100644 tests/tests/usertools/useradd/39_useradd_default_INACTIVE_invalid1/data/usage.out create mode 100755 tests/tests/usertools/useradd/39_useradd_default_INACTIVE_invalid1/useradd.test create mode 100644 tests/tests/usertools/useradd/40_useradd_default_INACTIVE_invalid2/config.txt create mode 100644 tests/tests/usertools/useradd/40_useradd_default_INACTIVE_invalid2/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/40_useradd_default_INACTIVE_invalid2/config/etc/group create mode 100644 tests/tests/usertools/useradd/40_useradd_default_INACTIVE_invalid2/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/40_useradd_default_INACTIVE_invalid2/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/40_useradd_default_INACTIVE_invalid2/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/40_useradd_default_INACTIVE_invalid2/data/passwd create mode 100644 tests/tests/usertools/useradd/40_useradd_default_INACTIVE_invalid2/data/shadow create mode 100644 tests/tests/usertools/useradd/40_useradd_default_INACTIVE_invalid2/data/usage.out create mode 100755 tests/tests/usertools/useradd/40_useradd_default_INACTIVE_invalid2/useradd.test create mode 100644 tests/tests/usertools/useradd/41_useradd_default_default_SKEL/config.txt create mode 100644 tests/tests/usertools/useradd/41_useradd_default_default_SKEL/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/41_useradd_default_default_SKEL/config/etc/group create mode 100644 tests/tests/usertools/useradd/41_useradd_default_default_SKEL/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/41_useradd_default_default_SKEL/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/41_useradd_default_default_SKEL/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/41_useradd_default_default_SKEL/data/defaults create mode 100755 tests/tests/usertools/useradd/41_useradd_default_default_SKEL/useradd.test create mode 100644 tests/tests/usertools/useradd/42_useradd_default_default_CREATE_MAIL_SPOOL/config.txt create mode 100644 tests/tests/usertools/useradd/42_useradd_default_default_CREATE_MAIL_SPOOL/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/42_useradd_default_default_CREATE_MAIL_SPOOL/config/etc/group create mode 100644 tests/tests/usertools/useradd/42_useradd_default_default_CREATE_MAIL_SPOOL/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/42_useradd_default_default_CREATE_MAIL_SPOOL/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/42_useradd_default_default_CREATE_MAIL_SPOOL/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/42_useradd_default_default_CREATE_MAIL_SPOOL/data/defaults create mode 100755 tests/tests/usertools/useradd/42_useradd_default_default_CREATE_MAIL_SPOOL/useradd.test create mode 100644 tests/tests/usertools/useradd/43_useradd_default_no_final_eol/config.txt create mode 100644 tests/tests/usertools/useradd/43_useradd_default_no_final_eol/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/43_useradd_default_no_final_eol/config/etc/group create mode 100644 tests/tests/usertools/useradd/43_useradd_default_no_final_eol/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/43_useradd_default_no_final_eol/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/43_useradd_default_no_final_eol/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/43_useradd_default_no_final_eol/data/useradd create mode 100755 tests/tests/usertools/useradd/43_useradd_default_no_final_eol/useradd.test create mode 100644 tests/tests/usertools/useradd/44_useradd_default_no_file/config.txt create mode 100644 tests/tests/usertools/useradd/44_useradd_default_no_file/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/44_useradd_default_no_file/config/etc/group create mode 100644 tests/tests/usertools/useradd/44_useradd_default_no_file/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/44_useradd_default_no_file/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/44_useradd_default_no_file/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/44_useradd_default_no_file/data/useradd create mode 100755 tests/tests/usertools/useradd/44_useradd_default_no_file/useradd.test create mode 100644 tests/tests/usertools/useradd/45_useradd-G_UID_name/config.txt create mode 100644 tests/tests/usertools/useradd/45_useradd-G_UID_name/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/45_useradd-G_UID_name/config/etc/group create mode 100644 tests/tests/usertools/useradd/45_useradd-G_UID_name/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/45_useradd-G_UID_name/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/45_useradd-G_UID_name/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/45_useradd-G_UID_name/data/group create mode 100644 tests/tests/usertools/useradd/45_useradd-G_UID_name/data/gshadow create mode 100644 tests/tests/usertools/useradd/45_useradd-G_UID_name/data/passwd create mode 100644 tests/tests/usertools/useradd/45_useradd-G_UID_name/data/shadow create mode 100755 tests/tests/usertools/useradd/45_useradd-G_UID_name/useradd.test create mode 100644 tests/tests/usertools/useradd/46_useradd-G_UID_duplicate/config.txt create mode 100644 tests/tests/usertools/useradd/46_useradd-G_UID_duplicate/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/46_useradd-G_UID_duplicate/config/etc/group create mode 100644 tests/tests/usertools/useradd/46_useradd-G_UID_duplicate/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/46_useradd-G_UID_duplicate/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/46_useradd-G_UID_duplicate/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/46_useradd-G_UID_duplicate/data/group create mode 100644 tests/tests/usertools/useradd/46_useradd-G_UID_duplicate/data/gshadow create mode 100644 tests/tests/usertools/useradd/46_useradd-G_UID_duplicate/data/passwd create mode 100644 tests/tests/usertools/useradd/46_useradd-G_UID_duplicate/data/shadow create mode 100755 tests/tests/usertools/useradd/46_useradd-G_UID_duplicate/useradd.test create mode 100644 tests/tests/usertools/useradd/47_useradd-G_UID_name_duplicate/config.txt create mode 100644 tests/tests/usertools/useradd/47_useradd-G_UID_name_duplicate/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/47_useradd-G_UID_name_duplicate/config/etc/group create mode 100644 tests/tests/usertools/useradd/47_useradd-G_UID_name_duplicate/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/47_useradd-G_UID_name_duplicate/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/47_useradd-G_UID_name_duplicate/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/47_useradd-G_UID_name_duplicate/data/group create mode 100644 tests/tests/usertools/useradd/47_useradd-G_UID_name_duplicate/data/gshadow create mode 100644 tests/tests/usertools/useradd/47_useradd-G_UID_name_duplicate/data/passwd create mode 100644 tests/tests/usertools/useradd/47_useradd-G_UID_name_duplicate/data/shadow create mode 100755 tests/tests/usertools/useradd/47_useradd-G_UID_name_duplicate/useradd.test create mode 100644 tests/tests/usertools/useradd/48_useradd-G_name_duplicate/config.txt create mode 100644 tests/tests/usertools/useradd/48_useradd-G_name_duplicate/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/48_useradd-G_name_duplicate/config/etc/group create mode 100644 tests/tests/usertools/useradd/48_useradd-G_name_duplicate/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/48_useradd-G_name_duplicate/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/48_useradd-G_name_duplicate/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/48_useradd-G_name_duplicate/data/group create mode 100644 tests/tests/usertools/useradd/48_useradd-G_name_duplicate/data/gshadow create mode 100644 tests/tests/usertools/useradd/48_useradd-G_name_duplicate/data/passwd create mode 100644 tests/tests/usertools/useradd/48_useradd-G_name_duplicate/data/shadow create mode 100755 tests/tests/usertools/useradd/48_useradd-G_name_duplicate/useradd.test create mode 100644 tests/tests/usertools/useradd/49_useradd-G_invalid_group/config.txt create mode 100644 tests/tests/usertools/useradd/49_useradd-G_invalid_group/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/49_useradd-G_invalid_group/config/etc/group create mode 100644 tests/tests/usertools/useradd/49_useradd-G_invalid_group/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/49_useradd-G_invalid_group/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/49_useradd-G_invalid_group/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/49_useradd-G_invalid_group/data/usage.out create mode 100755 tests/tests/usertools/useradd/49_useradd-G_invalid_group/useradd.test create mode 100644 tests/tests/usertools/useradd/50_useradd-r/config.txt create mode 100644 tests/tests/usertools/useradd/50_useradd-r/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/50_useradd-r/config/etc/group create mode 100644 tests/tests/usertools/useradd/50_useradd-r/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/50_useradd-r/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/50_useradd-r/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/50_useradd-r/data/group create mode 100644 tests/tests/usertools/useradd/50_useradd-r/data/gshadow create mode 100644 tests/tests/usertools/useradd/50_useradd-r/data/passwd create mode 100644 tests/tests/usertools/useradd/50_useradd-r/data/shadow create mode 100755 tests/tests/usertools/useradd/50_useradd-r/useradd.test create mode 100644 tests/tests/usertools/useradd/51_useradd_already_exist/config.txt create mode 100644 tests/tests/usertools/useradd/51_useradd_already_exist/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/51_useradd_already_exist/config/etc/group create mode 100644 tests/tests/usertools/useradd/51_useradd_already_exist/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/51_useradd_already_exist/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/51_useradd_already_exist/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/51_useradd_already_exist/data/usage.out create mode 100755 tests/tests/usertools/useradd/51_useradd_already_exist/useradd.test create mode 100644 tests/tests/usertools/useradd/52_useradd-U_group_already_exist/config.txt create mode 100644 tests/tests/usertools/useradd/52_useradd-U_group_already_exist/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/52_useradd-U_group_already_exist/config/etc/group create mode 100644 tests/tests/usertools/useradd/52_useradd-U_group_already_exist/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/52_useradd-U_group_already_exist/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/52_useradd-U_group_already_exist/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/52_useradd-U_group_already_exist/data/usage.out create mode 100755 tests/tests/usertools/useradd/52_useradd-U_group_already_exist/useradd.test create mode 100644 tests/tests/usertools/useradd/53_useradd-G_empty/config.txt create mode 100644 tests/tests/usertools/useradd/53_useradd-G_empty/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/53_useradd-G_empty/config/etc/group create mode 100644 tests/tests/usertools/useradd/53_useradd-G_empty/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/53_useradd-G_empty/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/53_useradd-G_empty/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/53_useradd-G_empty/data/group create mode 100644 tests/tests/usertools/useradd/53_useradd-G_empty/data/gshadow create mode 100644 tests/tests/usertools/useradd/53_useradd-G_empty/data/passwd create mode 100644 tests/tests/usertools/useradd/53_useradd-G_empty/data/shadow create mode 100755 tests/tests/usertools/useradd/53_useradd-G_empty/useradd.test create mode 100644 tests/tests/usertools/useradd/54_useradd_no_shadow_file/config.txt create mode 100644 tests/tests/usertools/useradd/54_useradd_no_shadow_file/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/54_useradd_no_shadow_file/config/etc/group create mode 100644 tests/tests/usertools/useradd/54_useradd_no_shadow_file/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/54_useradd_no_shadow_file/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/54_useradd_no_shadow_file/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/54_useradd_no_shadow_file/data/group create mode 100644 tests/tests/usertools/useradd/54_useradd_no_shadow_file/data/gshadow create mode 100644 tests/tests/usertools/useradd/54_useradd_no_shadow_file/data/passwd create mode 100755 tests/tests/usertools/useradd/54_useradd_no_shadow_file/useradd.test create mode 100644 tests/tests/usertools/useradd/55_useradd_no_gshadow_file/config.txt create mode 100644 tests/tests/usertools/useradd/55_useradd_no_gshadow_file/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/55_useradd_no_gshadow_file/config/etc/group create mode 100644 tests/tests/usertools/useradd/55_useradd_no_gshadow_file/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/55_useradd_no_gshadow_file/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/55_useradd_no_gshadow_file/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/55_useradd_no_gshadow_file/data/group create mode 100644 tests/tests/usertools/useradd/55_useradd_no_gshadow_file/data/passwd create mode 100644 tests/tests/usertools/useradd/55_useradd_no_gshadow_file/data/shadow create mode 100755 tests/tests/usertools/useradd/55_useradd_no_gshadow_file/useradd.test create mode 100644 tests/tests/usertools/useradd/56_useradd_gshadow_entry_without_group_entry/config.txt create mode 100644 tests/tests/usertools/useradd/56_useradd_gshadow_entry_without_group_entry/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/56_useradd_gshadow_entry_without_group_entry/config/etc/group create mode 100644 tests/tests/usertools/useradd/56_useradd_gshadow_entry_without_group_entry/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/56_useradd_gshadow_entry_without_group_entry/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/56_useradd_gshadow_entry_without_group_entry/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/56_useradd_gshadow_entry_without_group_entry/data/group create mode 100644 tests/tests/usertools/useradd/56_useradd_gshadow_entry_without_group_entry/data/gshadow create mode 100644 tests/tests/usertools/useradd/56_useradd_gshadow_entry_without_group_entry/data/passwd create mode 100644 tests/tests/usertools/useradd/56_useradd_gshadow_entry_without_group_entry/data/shadow create mode 100755 tests/tests/usertools/useradd/56_useradd_gshadow_entry_without_group_entry/useradd.test create mode 100644 tests/tests/usertools/useradd/57_useradd_usage-D_not_first_option/config.txt create mode 100644 tests/tests/usertools/useradd/57_useradd_usage-D_not_first_option/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/57_useradd_usage-D_not_first_option/config/etc/group create mode 100644 tests/tests/usertools/useradd/57_useradd_usage-D_not_first_option/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/57_useradd_usage-D_not_first_option/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/57_useradd_usage-D_not_first_option/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/57_useradd_usage-D_not_first_option/data/usage.out create mode 100755 tests/tests/usertools/useradd/57_useradd_usage-D_not_first_option/useradd.test create mode 100644 tests/tests/usertools/useradd/58_useradd-e_empty/config.txt create mode 100644 tests/tests/usertools/useradd/58_useradd-e_empty/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/58_useradd-e_empty/config/etc/group create mode 100644 tests/tests/usertools/useradd/58_useradd-e_empty/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/58_useradd-e_empty/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/58_useradd-e_empty/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/58_useradd-e_empty/data/group create mode 100644 tests/tests/usertools/useradd/58_useradd-e_empty/data/gshadow create mode 100644 tests/tests/usertools/useradd/58_useradd-e_empty/data/passwd create mode 100644 tests/tests/usertools/useradd/58_useradd-e_empty/data/shadow create mode 100755 tests/tests/usertools/useradd/58_useradd-e_empty/useradd.test create mode 100644 tests/tests/usertools/useradd/59_useradd-e-1-f-1/config.txt create mode 100644 tests/tests/usertools/useradd/59_useradd-e-1-f-1/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/59_useradd-e-1-f-1/config/etc/group create mode 100644 tests/tests/usertools/useradd/59_useradd-e-1-f-1/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/59_useradd-e-1-f-1/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/59_useradd-e-1-f-1/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/59_useradd-e-1-f-1/data/group create mode 100644 tests/tests/usertools/useradd/59_useradd-e-1-f-1/data/gshadow create mode 100644 tests/tests/usertools/useradd/59_useradd-e-1-f-1/data/passwd create mode 100644 tests/tests/usertools/useradd/59_useradd-e-1-f-1/data/shadow create mode 100755 tests/tests/usertools/useradd/59_useradd-e-1-f-1/useradd.test create mode 100644 tests/tests/usertools/useradd/60_useradd-e-1-f-1_no_shadow_file/config.txt create mode 100644 tests/tests/usertools/useradd/60_useradd-e-1-f-1_no_shadow_file/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/60_useradd-e-1-f-1_no_shadow_file/config/etc/group create mode 100644 tests/tests/usertools/useradd/60_useradd-e-1-f-1_no_shadow_file/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/60_useradd-e-1-f-1_no_shadow_file/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/60_useradd-e-1-f-1_no_shadow_file/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/60_useradd-e-1-f-1_no_shadow_file/data/group create mode 100644 tests/tests/usertools/useradd/60_useradd-e-1-f-1_no_shadow_file/data/gshadow create mode 100644 tests/tests/usertools/useradd/60_useradd-e-1-f-1_no_shadow_file/data/passwd create mode 100755 tests/tests/usertools/useradd/60_useradd-e-1-f-1_no_shadow_file/useradd.test create mode 100644 tests/tests/usertools/useradd/61_useradd-K/config.txt create mode 100644 tests/tests/usertools/useradd/61_useradd-K/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/61_useradd-K/config/etc/group create mode 100644 tests/tests/usertools/useradd/61_useradd-K/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/61_useradd-K/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/61_useradd-K/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/61_useradd-K/data/group create mode 100644 tests/tests/usertools/useradd/61_useradd-K/data/gshadow create mode 100644 tests/tests/usertools/useradd/61_useradd-K/data/passwd create mode 100644 tests/tests/usertools/useradd/61_useradd-K/data/shadow create mode 100755 tests/tests/usertools/useradd/61_useradd-K/useradd.test create mode 100644 tests/tests/usertools/useradd/62_useradd-p/config.txt create mode 100644 tests/tests/usertools/useradd/62_useradd-p/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/62_useradd-p/config/etc/group create mode 100644 tests/tests/usertools/useradd/62_useradd-p/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/62_useradd-p/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/62_useradd-p/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/62_useradd-p/data/group create mode 100644 tests/tests/usertools/useradd/62_useradd-p/data/gshadow create mode 100644 tests/tests/usertools/useradd/62_useradd-p/data/passwd create mode 100644 tests/tests/usertools/useradd/62_useradd-p/data/shadow create mode 100755 tests/tests/usertools/useradd/62_useradd-p/useradd.test create mode 100644 tests/tests/usertools/useradd/63_useradd-s/config.txt create mode 100644 tests/tests/usertools/useradd/63_useradd-s/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/63_useradd-s/config/etc/group create mode 100644 tests/tests/usertools/useradd/63_useradd-s/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/63_useradd-s/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/63_useradd-s/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/63_useradd-s/data/group create mode 100644 tests/tests/usertools/useradd/63_useradd-s/data/gshadow create mode 100644 tests/tests/usertools/useradd/63_useradd-s/data/passwd create mode 100644 tests/tests/usertools/useradd/63_useradd-s/data/shadow create mode 100755 tests/tests/usertools/useradd/63_useradd-s/useradd.test create mode 100644 tests/tests/usertools/useradd/64_useradd_locked_passwd/config.txt create mode 100644 tests/tests/usertools/useradd/64_useradd_locked_passwd/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/64_useradd_locked_passwd/config/etc/group create mode 100644 tests/tests/usertools/useradd/64_useradd_locked_passwd/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/64_useradd_locked_passwd/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/64_useradd_locked_passwd/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/64_useradd_locked_passwd/data/useradd.err create mode 100755 tests/tests/usertools/useradd/64_useradd_locked_passwd/useradd.test create mode 100644 tests/tests/usertools/useradd/65_useradd_locked_group/config.txt create mode 100644 tests/tests/usertools/useradd/65_useradd_locked_group/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/65_useradd_locked_group/config/etc/group create mode 100644 tests/tests/usertools/useradd/65_useradd_locked_group/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/65_useradd_locked_group/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/65_useradd_locked_group/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/65_useradd_locked_group/data/useradd.err create mode 100755 tests/tests/usertools/useradd/65_useradd_locked_group/useradd.test create mode 100644 tests/tests/usertools/useradd/66_useradd_locked_shadow/config.txt create mode 100644 tests/tests/usertools/useradd/66_useradd_locked_shadow/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/66_useradd_locked_shadow/config/etc/group create mode 100644 tests/tests/usertools/useradd/66_useradd_locked_shadow/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/66_useradd_locked_shadow/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/66_useradd_locked_shadow/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/66_useradd_locked_shadow/data/useradd.err create mode 100755 tests/tests/usertools/useradd/66_useradd_locked_shadow/useradd.test create mode 100644 tests/tests/usertools/useradd/67_useradd_locked_gshadow/config.txt create mode 100644 tests/tests/usertools/useradd/67_useradd_locked_gshadow/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/67_useradd_locked_gshadow/config/etc/group create mode 100644 tests/tests/usertools/useradd/67_useradd_locked_gshadow/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/67_useradd_locked_gshadow/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/67_useradd_locked_gshadow/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/67_useradd_locked_gshadow/data/useradd.err create mode 100755 tests/tests/usertools/useradd/67_useradd_locked_gshadow/useradd.test create mode 100644 tests/tests/usertools/useradd/68_useradd-s_empty/config.txt create mode 100644 tests/tests/usertools/useradd/68_useradd-s_empty/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/68_useradd-s_empty/config/etc/group create mode 100644 tests/tests/usertools/useradd/68_useradd-s_empty/config/etc/gshadow create mode 100644 tests/tests/usertools/useradd/68_useradd-s_empty/config/etc/passwd create mode 100644 tests/tests/usertools/useradd/68_useradd-s_empty/config/etc/shadow create mode 100644 tests/tests/usertools/useradd/68_useradd-s_empty/data/group create mode 100644 tests/tests/usertools/useradd/68_useradd-s_empty/data/gshadow create mode 100644 tests/tests/usertools/useradd/68_useradd-s_empty/data/passwd create mode 100644 tests/tests/usertools/useradd/68_useradd-s_empty/data/shadow create mode 100755 tests/tests/usertools/useradd/68_useradd-s_empty/useradd.test create mode 100644 tests/tests/usertools/useradd/69_useradd_default_GROUPS_name/config.txt create mode 100644 tests/tests/usertools/useradd/69_useradd_default_GROUPS_name/config/etc/default/useradd create mode 100644 tests/tests/usertools/useradd/69_useradd_default_GROUPS_name/config/etc/group create mode 100644 tests/tests/usertools/useradd/69_useradd_default_GROUPS_name/data/group create mode 100755 tests/tests/usertools/useradd/69_useradd_default_GROUPS_name/useradd.test create mode 100644 tests/tests/usertools/userdel/01_userdel_usage/config.txt create mode 100644 tests/tests/usertools/userdel/01_userdel_usage/config/etc/default/useradd create mode 100644 tests/tests/usertools/userdel/01_userdel_usage/config/etc/group create mode 100644 tests/tests/usertools/userdel/01_userdel_usage/config/etc/gshadow create mode 100644 tests/tests/usertools/userdel/01_userdel_usage/config/etc/passwd create mode 100644 tests/tests/usertools/userdel/01_userdel_usage/config/etc/shadow create mode 100644 tests/tests/usertools/userdel/01_userdel_usage/data/usage.out create mode 100755 tests/tests/usertools/userdel/01_userdel_usage/userdel.test create mode 100644 tests/tests/usertools/userdel/02_userdel_usage_invalid_option/config.txt create mode 100644 tests/tests/usertools/userdel/02_userdel_usage_invalid_option/config/etc/default/useradd create mode 100644 tests/tests/usertools/userdel/02_userdel_usage_invalid_option/config/etc/group create mode 100644 tests/tests/usertools/userdel/02_userdel_usage_invalid_option/config/etc/gshadow create mode 100644 tests/tests/usertools/userdel/02_userdel_usage_invalid_option/config/etc/passwd create mode 100644 tests/tests/usertools/userdel/02_userdel_usage_invalid_option/config/etc/shadow create mode 100644 tests/tests/usertools/userdel/02_userdel_usage_invalid_option/data/usage.out create mode 100755 tests/tests/usertools/userdel/02_userdel_usage_invalid_option/userdel.test create mode 100644 tests/tests/usertools/userdel/03_userdel_usage_no_users/config.txt create mode 100644 tests/tests/usertools/userdel/03_userdel_usage_no_users/config/etc/default/useradd create mode 100644 tests/tests/usertools/userdel/03_userdel_usage_no_users/config/etc/group create mode 100644 tests/tests/usertools/userdel/03_userdel_usage_no_users/config/etc/gshadow create mode 100644 tests/tests/usertools/userdel/03_userdel_usage_no_users/config/etc/passwd create mode 100644 tests/tests/usertools/userdel/03_userdel_usage_no_users/config/etc/shadow create mode 100644 tests/tests/usertools/userdel/03_userdel_usage_no_users/data/usage.out create mode 100755 tests/tests/usertools/userdel/03_userdel_usage_no_users/userdel.test create mode 100644 tests/tests/usertools/userdel/04_userdel_usage_2_users/config.txt create mode 100644 tests/tests/usertools/userdel/04_userdel_usage_2_users/config/etc/default/useradd create mode 100644 tests/tests/usertools/userdel/04_userdel_usage_2_users/config/etc/group create mode 100644 tests/tests/usertools/userdel/04_userdel_usage_2_users/config/etc/gshadow create mode 100644 tests/tests/usertools/userdel/04_userdel_usage_2_users/config/etc/passwd create mode 100644 tests/tests/usertools/userdel/04_userdel_usage_2_users/config/etc/shadow create mode 100644 tests/tests/usertools/userdel/04_userdel_usage_2_users/data/usage.out create mode 100755 tests/tests/usertools/userdel/04_userdel_usage_2_users/userdel.test create mode 100644 tests/tests/usertools/userdel/05_userdel_no_USERGROUPS_ENAB/config.txt create mode 100644 tests/tests/usertools/userdel/05_userdel_no_USERGROUPS_ENAB/config/etc/default/useradd create mode 100644 tests/tests/usertools/userdel/05_userdel_no_USERGROUPS_ENAB/config/etc/group create mode 100644 tests/tests/usertools/userdel/05_userdel_no_USERGROUPS_ENAB/config/etc/gshadow create mode 100644 tests/tests/usertools/userdel/05_userdel_no_USERGROUPS_ENAB/config/etc/login.defs create mode 100644 tests/tests/usertools/userdel/05_userdel_no_USERGROUPS_ENAB/config/etc/passwd create mode 100644 tests/tests/usertools/userdel/05_userdel_no_USERGROUPS_ENAB/config/etc/shadow create mode 100644 tests/tests/usertools/userdel/05_userdel_no_USERGROUPS_ENAB/data/group create mode 100644 tests/tests/usertools/userdel/05_userdel_no_USERGROUPS_ENAB/data/gshadow create mode 100644 tests/tests/usertools/userdel/05_userdel_no_USERGROUPS_ENAB/data/passwd create mode 100644 tests/tests/usertools/userdel/05_userdel_no_USERGROUPS_ENAB/data/shadow create mode 100755 tests/tests/usertools/userdel/05_userdel_no_USERGROUPS_ENAB/userdel.test create mode 100644 tests/tests/usertools/userdel/06_userdel_no_usergroup/config.txt create mode 100644 tests/tests/usertools/userdel/06_userdel_no_usergroup/config/etc/default/useradd create mode 100644 tests/tests/usertools/userdel/06_userdel_no_usergroup/config/etc/group create mode 100644 tests/tests/usertools/userdel/06_userdel_no_usergroup/config/etc/gshadow create mode 100644 tests/tests/usertools/userdel/06_userdel_no_usergroup/config/etc/login.defs create mode 100644 tests/tests/usertools/userdel/06_userdel_no_usergroup/config/etc/passwd create mode 100644 tests/tests/usertools/userdel/06_userdel_no_usergroup/config/etc/shadow create mode 100644 tests/tests/usertools/userdel/06_userdel_no_usergroup/data/group create mode 100644 tests/tests/usertools/userdel/06_userdel_no_usergroup/data/gshadow create mode 100644 tests/tests/usertools/userdel/06_userdel_no_usergroup/data/passwd create mode 100644 tests/tests/usertools/userdel/06_userdel_no_usergroup/data/shadow create mode 100755 tests/tests/usertools/userdel/06_userdel_no_usergroup/userdel.test create mode 100644 tests/tests/usertools/userdel/07_userdel_usergroup_not_primary/config.txt create mode 100644 tests/tests/usertools/userdel/07_userdel_usergroup_not_primary/config/etc/default/useradd create mode 100644 tests/tests/usertools/userdel/07_userdel_usergroup_not_primary/config/etc/group create mode 100644 tests/tests/usertools/userdel/07_userdel_usergroup_not_primary/config/etc/gshadow create mode 100644 tests/tests/usertools/userdel/07_userdel_usergroup_not_primary/config/etc/login.defs create mode 100644 tests/tests/usertools/userdel/07_userdel_usergroup_not_primary/config/etc/passwd create mode 100644 tests/tests/usertools/userdel/07_userdel_usergroup_not_primary/config/etc/shadow create mode 100644 tests/tests/usertools/userdel/07_userdel_usergroup_not_primary/data/group create mode 100644 tests/tests/usertools/userdel/07_userdel_usergroup_not_primary/data/gshadow create mode 100644 tests/tests/usertools/userdel/07_userdel_usergroup_not_primary/data/passwd create mode 100644 tests/tests/usertools/userdel/07_userdel_usergroup_not_primary/data/shadow create mode 100644 tests/tests/usertools/userdel/07_userdel_usergroup_not_primary/data/userdel.out create mode 100755 tests/tests/usertools/userdel/07_userdel_usergroup_not_primary/userdel.test create mode 100644 tests/tests/usertools/userdel/08_userdel_usergroup_with_other_members/config.txt create mode 100644 tests/tests/usertools/userdel/08_userdel_usergroup_with_other_members/config/etc/default/useradd create mode 100644 tests/tests/usertools/userdel/08_userdel_usergroup_with_other_members/config/etc/group create mode 100644 tests/tests/usertools/userdel/08_userdel_usergroup_with_other_members/config/etc/gshadow create mode 100644 tests/tests/usertools/userdel/08_userdel_usergroup_with_other_members/config/etc/login.defs create mode 100644 tests/tests/usertools/userdel/08_userdel_usergroup_with_other_members/config/etc/passwd create mode 100644 tests/tests/usertools/userdel/08_userdel_usergroup_with_other_members/config/etc/shadow create mode 100644 tests/tests/usertools/userdel/08_userdel_usergroup_with_other_members/data/group create mode 100644 tests/tests/usertools/userdel/08_userdel_usergroup_with_other_members/data/gshadow create mode 100644 tests/tests/usertools/userdel/08_userdel_usergroup_with_other_members/data/passwd create mode 100644 tests/tests/usertools/userdel/08_userdel_usergroup_with_other_members/data/shadow create mode 100644 tests/tests/usertools/userdel/08_userdel_usergroup_with_other_members/data/userdel.out create mode 100755 tests/tests/usertools/userdel/08_userdel_usergroup_with_other_members/userdel.test create mode 100644 tests/tests/usertools/userdel/09_userdel_usergroup_no_other_members_in_gshadow/config.txt create mode 100644 tests/tests/usertools/userdel/09_userdel_usergroup_no_other_members_in_gshadow/config/etc/default/useradd create mode 100644 tests/tests/usertools/userdel/09_userdel_usergroup_no_other_members_in_gshadow/config/etc/group create mode 100644 tests/tests/usertools/userdel/09_userdel_usergroup_no_other_members_in_gshadow/config/etc/gshadow create mode 100644 tests/tests/usertools/userdel/09_userdel_usergroup_no_other_members_in_gshadow/config/etc/login.defs create mode 100644 tests/tests/usertools/userdel/09_userdel_usergroup_no_other_members_in_gshadow/config/etc/passwd create mode 100644 tests/tests/usertools/userdel/09_userdel_usergroup_no_other_members_in_gshadow/config/etc/shadow create mode 100644 tests/tests/usertools/userdel/09_userdel_usergroup_no_other_members_in_gshadow/data/group create mode 100644 tests/tests/usertools/userdel/09_userdel_usergroup_no_other_members_in_gshadow/data/gshadow create mode 100644 tests/tests/usertools/userdel/09_userdel_usergroup_no_other_members_in_gshadow/data/passwd create mode 100644 tests/tests/usertools/userdel/09_userdel_usergroup_no_other_members_in_gshadow/data/shadow create mode 100644 tests/tests/usertools/userdel/09_userdel_usergroup_no_other_members_in_gshadow/data/userdel.out create mode 100755 tests/tests/usertools/userdel/09_userdel_usergroup_no_other_members_in_gshadow/userdel.test create mode 100644 tests/tests/usertools/userdel/10_userdel_del_homedir_symlink/config.txt create mode 100644 tests/tests/usertools/userdel/10_userdel_del_homedir_symlink/config/etc/default/useradd create mode 100644 tests/tests/usertools/userdel/10_userdel_del_homedir_symlink/config/etc/group create mode 100644 tests/tests/usertools/userdel/10_userdel_del_homedir_symlink/config/etc/gshadow create mode 100644 tests/tests/usertools/userdel/10_userdel_del_homedir_symlink/config/etc/passwd create mode 100644 tests/tests/usertools/userdel/10_userdel_del_homedir_symlink/config/etc/shadow create mode 100644 tests/tests/usertools/userdel/10_userdel_del_homedir_symlink/data/group create mode 100644 tests/tests/usertools/userdel/10_userdel_del_homedir_symlink/data/gshadow create mode 100644 tests/tests/usertools/userdel/10_userdel_del_homedir_symlink/data/passwd create mode 100644 tests/tests/usertools/userdel/10_userdel_del_homedir_symlink/data/shadow create mode 100644 tests/tests/usertools/userdel/10_userdel_del_homedir_symlink/data/userdel.err create mode 100755 tests/tests/usertools/userdel/10_userdel_del_homedir_symlink/userdel.test create mode 100644 tests/tests/usertools/usermod/01_usermod-p_no_shadow_file/config.txt create mode 100644 tests/tests/usertools/usermod/01_usermod-p_no_shadow_file/config/etc/default/useradd create mode 100644 tests/tests/usertools/usermod/01_usermod-p_no_shadow_file/config/etc/group create mode 100644 tests/tests/usertools/usermod/01_usermod-p_no_shadow_file/config/etc/gshadow create mode 100644 tests/tests/usertools/usermod/01_usermod-p_no_shadow_file/config/etc/passwd create mode 100644 tests/tests/usertools/usermod/01_usermod-p_no_shadow_file/config/etc/shadow create mode 100644 tests/tests/usertools/usermod/01_usermod-p_no_shadow_file/data/passwd create mode 100755 tests/tests/usertools/usermod/01_usermod-p_no_shadow_file/usermod.test create mode 100644 tests/tests/usertools/usermod/02_usermod-p_no_shadow_entry/config.txt create mode 100644 tests/tests/usertools/usermod/02_usermod-p_no_shadow_entry/config/etc/default/useradd create mode 100644 tests/tests/usertools/usermod/02_usermod-p_no_shadow_entry/config/etc/group create mode 100644 tests/tests/usertools/usermod/02_usermod-p_no_shadow_entry/config/etc/gshadow create mode 100644 tests/tests/usertools/usermod/02_usermod-p_no_shadow_entry/config/etc/passwd create mode 100644 tests/tests/usertools/usermod/02_usermod-p_no_shadow_entry/config/etc/shadow create mode 100644 tests/tests/usertools/usermod/02_usermod-p_no_shadow_entry/data/passwd create mode 100755 tests/tests/usertools/usermod/02_usermod-p_no_shadow_entry/usermod.test create mode 100644 tests/tests/usertools/usermod/03_usermod-p_no_shadow_entry_but_shadow_enabled/config.txt create mode 100644 tests/tests/usertools/usermod/03_usermod-p_no_shadow_entry_but_shadow_enabled/config/etc/default/useradd create mode 100644 tests/tests/usertools/usermod/03_usermod-p_no_shadow_entry_but_shadow_enabled/config/etc/group create mode 100644 tests/tests/usertools/usermod/03_usermod-p_no_shadow_entry_but_shadow_enabled/config/etc/gshadow create mode 100644 tests/tests/usertools/usermod/03_usermod-p_no_shadow_entry_but_shadow_enabled/config/etc/passwd create mode 100644 tests/tests/usertools/usermod/03_usermod-p_no_shadow_entry_but_shadow_enabled/config/etc/shadow create mode 100644 tests/tests/usertools/usermod/03_usermod-p_no_shadow_entry_but_shadow_enabled/data/shadow create mode 100755 tests/tests/usertools/usermod/03_usermod-p_no_shadow_entry_but_shadow_enabled/usermod.test create mode 100644 tests/tests/usertools/usermod/04_usermod_lock_already_locked_password1/config.txt create mode 100644 tests/tests/usertools/usermod/04_usermod_lock_already_locked_password1/config/etc/default/useradd create mode 100644 tests/tests/usertools/usermod/04_usermod_lock_already_locked_password1/config/etc/group create mode 100644 tests/tests/usertools/usermod/04_usermod_lock_already_locked_password1/config/etc/gshadow create mode 100644 tests/tests/usertools/usermod/04_usermod_lock_already_locked_password1/config/etc/passwd create mode 100644 tests/tests/usertools/usermod/04_usermod_lock_already_locked_password1/config/etc/shadow create mode 100755 tests/tests/usertools/usermod/04_usermod_lock_already_locked_password1/usermod.test create mode 100644 tests/tests/usertools/usermod/05_usermod_lock_already_locked_password2/config.txt create mode 100644 tests/tests/usertools/usermod/05_usermod_lock_already_locked_password2/config/etc/default/useradd create mode 100644 tests/tests/usertools/usermod/05_usermod_lock_already_locked_password2/config/etc/group create mode 100644 tests/tests/usertools/usermod/05_usermod_lock_already_locked_password2/config/etc/gshadow create mode 100644 tests/tests/usertools/usermod/05_usermod_lock_already_locked_password2/config/etc/passwd create mode 100644 tests/tests/usertools/usermod/05_usermod_lock_already_locked_password2/config/etc/shadow create mode 100644 tests/tests/usertools/usermod/05_usermod_lock_already_locked_password2/data/shadow create mode 100755 tests/tests/usertools/usermod/05_usermod_lock_already_locked_password2/usermod.test create mode 100644 tests/tests/usertools/usermod/06_usermod_lock_already_locked_password3/config.txt create mode 100644 tests/tests/usertools/usermod/06_usermod_lock_already_locked_password3/config/etc/default/useradd create mode 100644 tests/tests/usertools/usermod/06_usermod_lock_already_locked_password3/config/etc/group create mode 100644 tests/tests/usertools/usermod/06_usermod_lock_already_locked_password3/config/etc/gshadow create mode 100644 tests/tests/usertools/usermod/06_usermod_lock_already_locked_password3/config/etc/passwd create mode 100644 tests/tests/usertools/usermod/06_usermod_lock_already_locked_password3/config/etc/shadow create mode 100755 tests/tests/usertools/usermod/06_usermod_lock_already_locked_password3/usermod.test create mode 100644 tests/tests/usertools/usermod/07_usermod_unlock_already_unlocked_password1/config.txt create mode 100644 tests/tests/usertools/usermod/07_usermod_unlock_already_unlocked_password1/config/etc/default/useradd create mode 100644 tests/tests/usertools/usermod/07_usermod_unlock_already_unlocked_password1/config/etc/group create mode 100644 tests/tests/usertools/usermod/07_usermod_unlock_already_unlocked_password1/config/etc/gshadow create mode 100644 tests/tests/usertools/usermod/07_usermod_unlock_already_unlocked_password1/config/etc/passwd create mode 100644 tests/tests/usertools/usermod/07_usermod_unlock_already_unlocked_password1/config/etc/shadow create mode 100755 tests/tests/usertools/usermod/07_usermod_unlock_already_unlocked_password1/usermod.test create mode 100644 tests/tests/usertools/usermod/08_usermod_unlock_already_unlocked_password2/config.txt create mode 100644 tests/tests/usertools/usermod/08_usermod_unlock_already_unlocked_password2/config/etc/default/useradd create mode 100644 tests/tests/usertools/usermod/08_usermod_unlock_already_unlocked_password2/config/etc/group create mode 100644 tests/tests/usertools/usermod/08_usermod_unlock_already_unlocked_password2/config/etc/gshadow create mode 100644 tests/tests/usertools/usermod/08_usermod_unlock_already_unlocked_password2/config/etc/passwd create mode 100644 tests/tests/usertools/usermod/08_usermod_unlock_already_unlocked_password2/config/etc/shadow create mode 100644 tests/tests/usertools/usermod/08_usermod_unlock_already_unlocked_password2/data/shadow create mode 100755 tests/tests/usertools/usermod/08_usermod_unlock_already_unlocked_password2/usermod.test create mode 100644 tests/tests/usertools/usermod/09_usermod_unlock_already_unlocked_password3/config.txt create mode 100644 tests/tests/usertools/usermod/09_usermod_unlock_already_unlocked_password3/config/etc/default/useradd create mode 100644 tests/tests/usertools/usermod/09_usermod_unlock_already_unlocked_password3/config/etc/group create mode 100644 tests/tests/usertools/usermod/09_usermod_unlock_already_unlocked_password3/config/etc/gshadow create mode 100644 tests/tests/usertools/usermod/09_usermod_unlock_already_unlocked_password3/config/etc/passwd create mode 100644 tests/tests/usertools/usermod/09_usermod_unlock_already_unlocked_password3/config/etc/shadow create mode 100755 tests/tests/usertools/usermod/09_usermod_unlock_already_unlocked_password3/usermod.test create mode 100644 tests/tests/usertools/usermod/10_usermod_usage/config.txt create mode 100644 tests/tests/usertools/usermod/10_usermod_usage/config/etc/default/useradd create mode 100644 tests/tests/usertools/usermod/10_usermod_usage/config/etc/group create mode 100644 tests/tests/usertools/usermod/10_usermod_usage/config/etc/gshadow create mode 100644 tests/tests/usertools/usermod/10_usermod_usage/config/etc/passwd create mode 100644 tests/tests/usertools/usermod/10_usermod_usage/config/etc/shadow create mode 100644 tests/tests/usertools/usermod/10_usermod_usage/data/usage.out create mode 100755 tests/tests/usertools/usermod/10_usermod_usage/usermod.test create mode 100644 tests/tests/usertools/usermod/11_usermod_usage_bad_option/config.txt create mode 100644 tests/tests/usertools/usermod/11_usermod_usage_bad_option/config/etc/default/useradd create mode 100644 tests/tests/usertools/usermod/11_usermod_usage_bad_option/config/etc/group create mode 100644 tests/tests/usertools/usermod/11_usermod_usage_bad_option/config/etc/gshadow create mode 100644 tests/tests/usertools/usermod/11_usermod_usage_bad_option/config/etc/passwd create mode 100644 tests/tests/usertools/usermod/11_usermod_usage_bad_option/config/etc/shadow create mode 100644 tests/tests/usertools/usermod/11_usermod_usage_bad_option/data/usage.out create mode 100755 tests/tests/usertools/usermod/11_usermod_usage_bad_option/usermod.test create mode 100644 tests/tests/usertools/usermod/12_usermod_usage_bad-f/config.txt create mode 100644 tests/tests/usertools/usermod/12_usermod_usage_bad-f/config/etc/default/useradd create mode 100644 tests/tests/usertools/usermod/12_usermod_usage_bad-f/config/etc/group create mode 100644 tests/tests/usertools/usermod/12_usermod_usage_bad-f/config/etc/gshadow create mode 100644 tests/tests/usertools/usermod/12_usermod_usage_bad-f/config/etc/passwd create mode 100644 tests/tests/usertools/usermod/12_usermod_usage_bad-f/config/etc/shadow create mode 100644 tests/tests/usertools/usermod/12_usermod_usage_bad-f/data/usermod.err create mode 100755 tests/tests/usertools/usermod/12_usermod_usage_bad-f/usermod.test create mode 100644 tests/tests/usertools/usermod/13_usermod_usage_bad-f_negativ/config.txt create mode 100644 tests/tests/usertools/usermod/13_usermod_usage_bad-f_negativ/config/etc/default/useradd create mode 100644 tests/tests/usertools/usermod/13_usermod_usage_bad-f_negativ/config/etc/group create mode 100644 tests/tests/usertools/usermod/13_usermod_usage_bad-f_negativ/config/etc/gshadow create mode 100644 tests/tests/usertools/usermod/13_usermod_usage_bad-f_negativ/config/etc/passwd create mode 100644 tests/tests/usertools/usermod/13_usermod_usage_bad-f_negativ/config/etc/shadow create mode 100644 tests/tests/usertools/usermod/13_usermod_usage_bad-f_negativ/data/usermod.err create mode 100755 tests/tests/usertools/usermod/13_usermod_usage_bad-f_negative/usermod.test create mode 100644 tests/tests/usertools/usermod/14_usermod_usage_no_options/config.txt create mode 100644 tests/tests/usertools/usermod/14_usermod_usage_no_options/config/etc/default/useradd create mode 100644 tests/tests/usertools/usermod/14_usermod_usage_no_options/config/etc/group create mode 100644 tests/tests/usertools/usermod/14_usermod_usage_no_options/config/etc/gshadow create mode 100644 tests/tests/usertools/usermod/14_usermod_usage_no_options/config/etc/passwd create mode 100644 tests/tests/usertools/usermod/14_usermod_usage_no_options/config/etc/shadow create mode 100644 tests/tests/usertools/usermod/14_usermod_usage_no_options/data/usage.out create mode 100755 tests/tests/usertools/usermod/14_usermod_usage_no_options/usermod.test create mode 100644 tests/tests/usertools/usermod/15_usermod_usage_no_user/config.txt create mode 100644 tests/tests/usertools/usermod/15_usermod_usage_no_user/config/etc/default/useradd create mode 100644 tests/tests/usertools/usermod/15_usermod_usage_no_user/config/etc/group create mode 100644 tests/tests/usertools/usermod/15_usermod_usage_no_user/config/etc/gshadow create mode 100644 tests/tests/usertools/usermod/15_usermod_usage_no_user/config/etc/passwd create mode 100644 tests/tests/usertools/usermod/15_usermod_usage_no_user/config/etc/shadow create mode 100644 tests/tests/usertools/usermod/15_usermod_usage_no_user/data/usage.out create mode 100755 tests/tests/usertools/usermod/15_usermod_usage_no_user/usermod.test create mode 100644 tests/tests/usertools/usermod/16_usermod_usage_-e_no_shadow_file/config.txt create mode 100644 tests/tests/usertools/usermod/16_usermod_usage_-e_no_shadow_file/config/etc/default/useradd create mode 100644 tests/tests/usertools/usermod/16_usermod_usage_-e_no_shadow_file/config/etc/group create mode 100644 tests/tests/usertools/usermod/16_usermod_usage_-e_no_shadow_file/config/etc/gshadow create mode 100644 tests/tests/usertools/usermod/16_usermod_usage_-e_no_shadow_file/config/etc/passwd create mode 100644 tests/tests/usertools/usermod/16_usermod_usage_-e_no_shadow_file/config/etc/shadow create mode 100644 tests/tests/usertools/usermod/16_usermod_usage_-e_no_shadow_file/data/usage.out create mode 100755 tests/tests/usertools/usermod/16_usermod_usage_-e_no_shadow_file/usermod.test create mode 100644 tests/tests/usertools/usermod/17_usermod_usage_-f_no_shadow_file/config.txt create mode 100644 tests/tests/usertools/usermod/17_usermod_usage_-f_no_shadow_file/config/etc/default/useradd create mode 100644 tests/tests/usertools/usermod/17_usermod_usage_-f_no_shadow_file/config/etc/group create mode 100644 tests/tests/usertools/usermod/17_usermod_usage_-f_no_shadow_file/config/etc/gshadow create mode 100644 tests/tests/usertools/usermod/17_usermod_usage_-f_no_shadow_file/config/etc/passwd create mode 100644 tests/tests/usertools/usermod/17_usermod_usage_-f_no_shadow_file/config/etc/shadow create mode 100644 tests/tests/usertools/usermod/17_usermod_usage_-f_no_shadow_file/data/usage.out create mode 100755 tests/tests/usertools/usermod/17_usermod_usage_-f_no_shadow_file/usermod.test create mode 100644 tests/tests/usertools/usermod/18_usermod_usage-L-p_exclusive/config.txt create mode 100644 tests/tests/usertools/usermod/18_usermod_usage-L-p_exclusive/config/etc/default/useradd create mode 100644 tests/tests/usertools/usermod/18_usermod_usage-L-p_exclusive/config/etc/group create mode 100644 tests/tests/usertools/usermod/18_usermod_usage-L-p_exclusive/config/etc/gshadow create mode 100644 tests/tests/usertools/usermod/18_usermod_usage-L-p_exclusive/config/etc/passwd create mode 100644 tests/tests/usertools/usermod/18_usermod_usage-L-p_exclusive/config/etc/shadow create mode 100644 tests/tests/usertools/usermod/18_usermod_usage-L-p_exclusive/data/usage.out create mode 100755 tests/tests/usertools/usermod/18_usermod_usage-L-p_exclusive/usermod.test create mode 100644 tests/tests/usertools/usermod/19_usermod_usage-L-U_exclusive/config.txt create mode 100644 tests/tests/usertools/usermod/19_usermod_usage-L-U_exclusive/config/etc/default/useradd create mode 100644 tests/tests/usertools/usermod/19_usermod_usage-L-U_exclusive/config/etc/group create mode 100644 tests/tests/usertools/usermod/19_usermod_usage-L-U_exclusive/config/etc/gshadow create mode 100644 tests/tests/usertools/usermod/19_usermod_usage-L-U_exclusive/config/etc/passwd create mode 100644 tests/tests/usertools/usermod/19_usermod_usage-L-U_exclusive/config/etc/shadow create mode 100644 tests/tests/usertools/usermod/19_usermod_usage-L-U_exclusive/data/usage.out create mode 100755 tests/tests/usertools/usermod/19_usermod_usage-L-U_exclusive/usermod.test create mode 100644 tests/tests/usertools/usermod/20_usermod_usage-p-U_exclusive/config.txt create mode 100644 tests/tests/usertools/usermod/20_usermod_usage-p-U_exclusive/config/etc/default/useradd create mode 100644 tests/tests/usertools/usermod/20_usermod_usage-p-U_exclusive/config/etc/group create mode 100644 tests/tests/usertools/usermod/20_usermod_usage-p-U_exclusive/config/etc/gshadow create mode 100644 tests/tests/usertools/usermod/20_usermod_usage-p-U_exclusive/config/etc/passwd create mode 100644 tests/tests/usertools/usermod/20_usermod_usage-p-U_exclusive/config/etc/shadow create mode 100644 tests/tests/usertools/usermod/20_usermod_usage-p-U_exclusive/data/usage.out create mode 100755 tests/tests/usertools/usermod/20_usermod_usage-p-U_exclusive/usermod.test create mode 100644 tests/tests/usertools/usermod/21_usermod_rename_user_no_gshadow_file/config.txt create mode 100644 tests/tests/usertools/usermod/21_usermod_rename_user_no_gshadow_file/config/etc/default/useradd create mode 100644 tests/tests/usertools/usermod/21_usermod_rename_user_no_gshadow_file/config/etc/group create mode 100644 tests/tests/usertools/usermod/21_usermod_rename_user_no_gshadow_file/config/etc/gshadow create mode 100644 tests/tests/usertools/usermod/21_usermod_rename_user_no_gshadow_file/config/etc/passwd create mode 100644 tests/tests/usertools/usermod/21_usermod_rename_user_no_gshadow_file/config/etc/shadow create mode 100644 tests/tests/usertools/usermod/21_usermod_rename_user_no_gshadow_file/data/group create mode 100644 tests/tests/usertools/usermod/21_usermod_rename_user_no_gshadow_file/data/passwd create mode 100644 tests/tests/usertools/usermod/21_usermod_rename_user_no_gshadow_file/data/shadow create mode 100755 tests/tests/usertools/usermod/21_usermod_rename_user_no_gshadow_file/usermod.test create mode 100644 tests/tests/usertools/usermod/22_usermod_usage_rename_invalid_username/config.txt create mode 100644 tests/tests/usertools/usermod/22_usermod_usage_rename_invalid_username/config/etc/default/useradd create mode 100644 tests/tests/usertools/usermod/22_usermod_usage_rename_invalid_username/config/etc/group create mode 100644 tests/tests/usertools/usermod/22_usermod_usage_rename_invalid_username/config/etc/gshadow create mode 100644 tests/tests/usertools/usermod/22_usermod_usage_rename_invalid_username/config/etc/passwd create mode 100644 tests/tests/usertools/usermod/22_usermod_usage_rename_invalid_username/config/etc/shadow create mode 100644 tests/tests/usertools/usermod/22_usermod_usage_rename_invalid_username/data/usage.out create mode 100755 tests/tests/usertools/usermod/22_usermod_usage_rename_invalid_username/usermod.test create mode 100644 tests/tests/usertools/usermod/23_usermod-e_date/config.txt create mode 100644 tests/tests/usertools/usermod/23_usermod-e_date/config/etc/default/useradd create mode 100644 tests/tests/usertools/usermod/23_usermod-e_date/config/etc/group create mode 100644 tests/tests/usertools/usermod/23_usermod-e_date/config/etc/gshadow create mode 100644 tests/tests/usertools/usermod/23_usermod-e_date/config/etc/passwd create mode 100644 tests/tests/usertools/usermod/23_usermod-e_date/config/etc/shadow create mode 100644 tests/tests/usertools/usermod/23_usermod-e_date/data/shadow create mode 100755 tests/tests/usertools/usermod/23_usermod-e_date/usermod.test create mode 100644 tests/tests/usertools/usermod/24_usermod-e_date/config.txt create mode 100644 tests/tests/usertools/usermod/24_usermod-e_date/config/etc/default/useradd create mode 100644 tests/tests/usertools/usermod/24_usermod-e_date/config/etc/group create mode 100644 tests/tests/usertools/usermod/24_usermod-e_date/config/etc/gshadow create mode 100644 tests/tests/usertools/usermod/24_usermod-e_date/config/etc/passwd create mode 100644 tests/tests/usertools/usermod/24_usermod-e_date/config/etc/shadow create mode 100644 tests/tests/usertools/usermod/24_usermod-e_date/data/shadow create mode 100755 tests/tests/usertools/usermod/24_usermod-e_date/usermod.test create mode 100644 tests/tests/usertools/usermod/25_usermod-e_empty_arg/config.txt create mode 100644 tests/tests/usertools/usermod/25_usermod-e_empty_arg/config/etc/default/useradd create mode 100644 tests/tests/usertools/usermod/25_usermod-e_empty_arg/config/etc/group create mode 100644 tests/tests/usertools/usermod/25_usermod-e_empty_arg/config/etc/gshadow create mode 100644 tests/tests/usertools/usermod/25_usermod-e_empty_arg/config/etc/passwd create mode 100644 tests/tests/usertools/usermod/25_usermod-e_empty_arg/config/etc/shadow create mode 100644 tests/tests/usertools/usermod/25_usermod-e_empty_arg/data/shadow create mode 100755 tests/tests/usertools/usermod/25_usermod-e_empty_arg/usermod.test create mode 100644 tests/tests/usertools/usermod/26_usermod-e-1/config.txt create mode 100644 tests/tests/usertools/usermod/26_usermod-e-1/config/etc/default/useradd create mode 100644 tests/tests/usertools/usermod/26_usermod-e-1/config/etc/group create mode 100644 tests/tests/usertools/usermod/26_usermod-e-1/config/etc/gshadow create mode 100644 tests/tests/usertools/usermod/26_usermod-e-1/config/etc/passwd create mode 100644 tests/tests/usertools/usermod/26_usermod-e-1/config/etc/shadow create mode 100644 tests/tests/usertools/usermod/26_usermod-e-1/data/shadow create mode 100755 tests/tests/usertools/usermod/26_usermod-e-1/usermod.test create mode 100644 tests/tests/usertools/usermod/27_usermod-e_invalid1/config.txt create mode 100644 tests/tests/usertools/usermod/27_usermod-e_invalid1/config/etc/default/useradd create mode 100644 tests/tests/usertools/usermod/27_usermod-e_invalid1/config/etc/group create mode 100644 tests/tests/usertools/usermod/27_usermod-e_invalid1/config/etc/gshadow create mode 100644 tests/tests/usertools/usermod/27_usermod-e_invalid1/config/etc/passwd create mode 100644 tests/tests/usertools/usermod/27_usermod-e_invalid1/config/etc/shadow create mode 100644 tests/tests/usertools/usermod/27_usermod-e_invalid1/data/usermod.err create mode 100755 tests/tests/usertools/usermod/27_usermod-e_invalid1/usermod.test create mode 100644 tests/tests/usertools/usermod/28_usermod-e_invalid2/config.txt create mode 100644 tests/tests/usertools/usermod/28_usermod-e_invalid2/config/etc/default/useradd create mode 100644 tests/tests/usertools/usermod/28_usermod-e_invalid2/config/etc/group create mode 100644 tests/tests/usertools/usermod/28_usermod-e_invalid2/config/etc/gshadow create mode 100644 tests/tests/usertools/usermod/28_usermod-e_invalid2/config/etc/passwd create mode 100644 tests/tests/usertools/usermod/28_usermod-e_invalid2/config/etc/shadow create mode 100644 tests/tests/usertools/usermod/28_usermod-e_invalid2/data/usermod.err create mode 100755 tests/tests/usertools/usermod/28_usermod-e_invalid2/usermod.test create mode 100644 tests/tests/usertools/usermod/29_usermod_no_changes/config.txt create mode 100644 tests/tests/usertools/usermod/29_usermod_no_changes/config/etc/default/useradd create mode 100644 tests/tests/usertools/usermod/29_usermod_no_changes/config/etc/group create mode 100644 tests/tests/usertools/usermod/29_usermod_no_changes/config/etc/gshadow create mode 100644 tests/tests/usertools/usermod/29_usermod_no_changes/config/etc/passwd create mode 100644 tests/tests/usertools/usermod/29_usermod_no_changes/config/etc/shadow create mode 100644 tests/tests/usertools/usermod/29_usermod_no_changes/data/usermod.err create mode 100755 tests/tests/usertools/usermod/29_usermod_no_changes/usermod.test create mode 100644 tests/tests/usertools/usermod/30_usermod_usage-a_without-G/config.txt create mode 100644 tests/tests/usertools/usermod/30_usermod_usage-a_without-G/config/etc/default/useradd create mode 100644 tests/tests/usertools/usermod/30_usermod_usage-a_without-G/config/etc/group create mode 100644 tests/tests/usertools/usermod/30_usermod_usage-a_without-G/config/etc/gshadow create mode 100644 tests/tests/usertools/usermod/30_usermod_usage-a_without-G/config/etc/passwd create mode 100644 tests/tests/usertools/usermod/30_usermod_usage-a_without-G/config/etc/shadow create mode 100644 tests/tests/usertools/usermod/30_usermod_usage-a_without-G/data/usage.out create mode 100755 tests/tests/usertools/usermod/30_usermod_usage-a_without-G/usermod.test create mode 100644 tests/tests/usertools/usermod/31_usermod_usage-o_without-u/config.txt create mode 100644 tests/tests/usertools/usermod/31_usermod_usage-o_without-u/config/etc/default/useradd create mode 100644 tests/tests/usertools/usermod/31_usermod_usage-o_without-u/config/etc/group create mode 100644 tests/tests/usertools/usermod/31_usermod_usage-o_without-u/config/etc/gshadow create mode 100644 tests/tests/usertools/usermod/31_usermod_usage-o_without-u/config/etc/passwd create mode 100644 tests/tests/usertools/usermod/31_usermod_usage-o_without-u/config/etc/shadow create mode 100644 tests/tests/usertools/usermod/31_usermod_usage-o_without-u/data/usage.out create mode 100755 tests/tests/usertools/usermod/31_usermod_usage-o_without-u/usermod.test create mode 100644 tests/tests/usertools/usermod/32_usermod_usage-m_without-d/config.txt create mode 100644 tests/tests/usertools/usermod/32_usermod_usage-m_without-d/config/etc/default/useradd create mode 100644 tests/tests/usertools/usermod/32_usermod_usage-m_without-d/config/etc/group create mode 100644 tests/tests/usertools/usermod/32_usermod_usage-m_without-d/config/etc/gshadow create mode 100644 tests/tests/usertools/usermod/32_usermod_usage-m_without-d/config/etc/passwd create mode 100644 tests/tests/usertools/usermod/32_usermod_usage-m_without-d/config/etc/shadow create mode 100644 tests/tests/usertools/usermod/32_usermod_usage-m_without-d/data/usage.out create mode 100755 tests/tests/usertools/usermod/32_usermod_usage-m_without-d/usermod.test create mode 100644 tests/tests/usertools/usermod/33_usermod_change_shell/config.txt create mode 100644 tests/tests/usertools/usermod/33_usermod_change_shell/config/etc/default/useradd create mode 100644 tests/tests/usertools/usermod/33_usermod_change_shell/config/etc/group create mode 100644 tests/tests/usertools/usermod/33_usermod_change_shell/config/etc/gshadow create mode 100644 tests/tests/usertools/usermod/33_usermod_change_shell/config/etc/passwd create mode 100644 tests/tests/usertools/usermod/33_usermod_change_shell/config/etc/shadow create mode 100644 tests/tests/usertools/usermod/33_usermod_change_shell/data/passwd create mode 100755 tests/tests/usertools/usermod/33_usermod_change_shell/usermod.test create mode 100644 tests/tests/usertools/usermod/34_usermod-e_date_no_shadow_entry/config.txt create mode 100644 tests/tests/usertools/usermod/34_usermod-e_date_no_shadow_entry/config/etc/default/useradd create mode 100644 tests/tests/usertools/usermod/34_usermod-e_date_no_shadow_entry/config/etc/group create mode 100644 tests/tests/usertools/usermod/34_usermod-e_date_no_shadow_entry/config/etc/gshadow create mode 100644 tests/tests/usertools/usermod/34_usermod-e_date_no_shadow_entry/config/etc/passwd create mode 100644 tests/tests/usertools/usermod/34_usermod-e_date_no_shadow_entry/config/etc/shadow create mode 100644 tests/tests/usertools/usermod/34_usermod-e_date_no_shadow_entry/data/shadow create mode 100755 tests/tests/usertools/usermod/34_usermod-e_date_no_shadow_entry/usermod.test create mode 100644 tests/tests/usertools/usermod/35_usermod-f_no_shadow_entry/config.txt create mode 100644 tests/tests/usertools/usermod/35_usermod-f_no_shadow_entry/config/etc/default/useradd create mode 100644 tests/tests/usertools/usermod/35_usermod-f_no_shadow_entry/config/etc/group create mode 100644 tests/tests/usertools/usermod/35_usermod-f_no_shadow_entry/config/etc/gshadow create mode 100644 tests/tests/usertools/usermod/35_usermod-f_no_shadow_entry/config/etc/passwd create mode 100644 tests/tests/usertools/usermod/35_usermod-f_no_shadow_entry/config/etc/shadow create mode 100644 tests/tests/usertools/usermod/35_usermod-f_no_shadow_entry/data/shadow create mode 100755 tests/tests/usertools/usermod/35_usermod-f_no_shadow_entry/usermod.test create mode 100644 tests/tests/usertools/usermod/36_usermod_move_homedir_existing_dir/config.txt create mode 100644 tests/tests/usertools/usermod/36_usermod_move_homedir_existing_dir/config/etc/default/useradd create mode 100644 tests/tests/usertools/usermod/36_usermod_move_homedir_existing_dir/config/etc/group create mode 100644 tests/tests/usertools/usermod/36_usermod_move_homedir_existing_dir/config/etc/gshadow create mode 100644 tests/tests/usertools/usermod/36_usermod_move_homedir_existing_dir/config/etc/passwd create mode 100644 tests/tests/usertools/usermod/36_usermod_move_homedir_existing_dir/config/etc/shadow create mode 100644 tests/tests/usertools/usermod/36_usermod_move_homedir_existing_dir/data/home_ls-a create mode 100644 tests/tests/usertools/usermod/36_usermod_move_homedir_existing_dir/data/home_ls-a2 create mode 100644 tests/tests/usertools/usermod/36_usermod_move_homedir_existing_dir/data/passwd create mode 100644 tests/tests/usertools/usermod/36_usermod_move_homedir_existing_dir/data/usermod.err create mode 100755 tests/tests/usertools/usermod/36_usermod_move_homedir_existing_dir/usermod.test create mode 100644 tests/tests/usertools/usermod/37_usermod_move_nonexistent_homedir/config.txt create mode 100644 tests/tests/usertools/usermod/37_usermod_move_nonexistent_homedir/config/etc/default/useradd create mode 100644 tests/tests/usertools/usermod/37_usermod_move_nonexistent_homedir/config/etc/group create mode 100644 tests/tests/usertools/usermod/37_usermod_move_nonexistent_homedir/config/etc/gshadow create mode 100644 tests/tests/usertools/usermod/37_usermod_move_nonexistent_homedir/config/etc/passwd create mode 100644 tests/tests/usertools/usermod/37_usermod_move_nonexistent_homedir/config/etc/shadow create mode 100644 tests/tests/usertools/usermod/37_usermod_move_nonexistent_homedir/data/passwd create mode 100755 tests/tests/usertools/usermod/37_usermod_move_nonexistent_homedir/usermod.test create mode 100644 tests/tests/usertools/usermod/38_usermod-u_lastlog_not_created/config.txt create mode 100644 tests/tests/usertools/usermod/38_usermod-u_lastlog_not_created/config/etc/default/useradd create mode 100644 tests/tests/usertools/usermod/38_usermod-u_lastlog_not_created/config/etc/group create mode 100644 tests/tests/usertools/usermod/38_usermod-u_lastlog_not_created/config/etc/gshadow create mode 100644 tests/tests/usertools/usermod/38_usermod-u_lastlog_not_created/config/etc/passwd create mode 100644 tests/tests/usertools/usermod/38_usermod-u_lastlog_not_created/config/etc/shadow create mode 100644 tests/tests/usertools/usermod/38_usermod-u_lastlog_not_created/data/passwd create mode 100755 tests/tests/usertools/usermod/38_usermod-u_lastlog_not_created/usermod.test create mode 100644 tests/tests/usertools/usermod/39_usermod-u_copy_lastlog_entry/config.txt create mode 100644 tests/tests/usertools/usermod/39_usermod-u_copy_lastlog_entry/config/etc/default/useradd create mode 100644 tests/tests/usertools/usermod/39_usermod-u_copy_lastlog_entry/config/etc/group create mode 100644 tests/tests/usertools/usermod/39_usermod-u_copy_lastlog_entry/config/etc/gshadow create mode 100644 tests/tests/usertools/usermod/39_usermod-u_copy_lastlog_entry/config/etc/passwd create mode 100644 tests/tests/usertools/usermod/39_usermod-u_copy_lastlog_entry/config/etc/shadow create mode 100644 tests/tests/usertools/usermod/39_usermod-u_copy_lastlog_entry/data/passwd create mode 100755 tests/tests/usertools/usermod/39_usermod-u_copy_lastlog_entry/login.exp create mode 100755 tests/tests/usertools/usermod/39_usermod-u_copy_lastlog_entry/usermod.test create mode 100644 tests/tests/usertools/usermod/40_usermod-u_reset_new_lastlog_entry/config.txt create mode 100644 tests/tests/usertools/usermod/40_usermod-u_reset_new_lastlog_entry/config/etc/default/useradd create mode 100644 tests/tests/usertools/usermod/40_usermod-u_reset_new_lastlog_entry/config/etc/group create mode 100644 tests/tests/usertools/usermod/40_usermod-u_reset_new_lastlog_entry/config/etc/gshadow create mode 100644 tests/tests/usertools/usermod/40_usermod-u_reset_new_lastlog_entry/config/etc/passwd create mode 100644 tests/tests/usertools/usermod/40_usermod-u_reset_new_lastlog_entry/config/etc/shadow create mode 100644 tests/tests/usertools/usermod/40_usermod-u_reset_new_lastlog_entry/data/group create mode 100644 tests/tests/usertools/usermod/40_usermod-u_reset_new_lastlog_entry/data/passwd create mode 100644 tests/tests/usertools/usermod/40_usermod-u_reset_new_lastlog_entry/data/shadow create mode 100755 tests/tests/usertools/usermod/40_usermod-u_reset_new_lastlog_entry/login.exp create mode 100755 tests/tests/usertools/usermod/40_usermod-u_reset_new_lastlog_entry/usermod.test create mode 100644 tests/tests/usertools/usermod/41_usermod-u_faillog_not_created/config.txt create mode 100644 tests/tests/usertools/usermod/41_usermod-u_faillog_not_created/config/etc/default/useradd create mode 100644 tests/tests/usertools/usermod/41_usermod-u_faillog_not_created/config/etc/group create mode 100644 tests/tests/usertools/usermod/41_usermod-u_faillog_not_created/config/etc/gshadow create mode 100644 tests/tests/usertools/usermod/41_usermod-u_faillog_not_created/config/etc/passwd create mode 100644 tests/tests/usertools/usermod/41_usermod-u_faillog_not_created/config/etc/shadow create mode 100644 tests/tests/usertools/usermod/41_usermod-u_faillog_not_created/data/passwd create mode 100755 tests/tests/usertools/usermod/41_usermod-u_faillog_not_created/usermod.test create mode 100644 tests/tests/usertools/usermod/42_usermod-u_copy_faillog_entry/config.txt create mode 100644 tests/tests/usertools/usermod/42_usermod-u_copy_faillog_entry/config/etc/default/useradd create mode 100644 tests/tests/usertools/usermod/42_usermod-u_copy_faillog_entry/config/etc/group create mode 100644 tests/tests/usertools/usermod/42_usermod-u_copy_faillog_entry/config/etc/gshadow create mode 100644 tests/tests/usertools/usermod/42_usermod-u_copy_faillog_entry/config/etc/pam.d/login create mode 100644 tests/tests/usertools/usermod/42_usermod-u_copy_faillog_entry/config/etc/passwd create mode 100644 tests/tests/usertools/usermod/42_usermod-u_copy_faillog_entry/config/etc/shadow create mode 100644 tests/tests/usertools/usermod/42_usermod-u_copy_faillog_entry/data/passwd create mode 100755 tests/tests/usertools/usermod/42_usermod-u_copy_faillog_entry/login.exp create mode 100755 tests/tests/usertools/usermod/42_usermod-u_copy_faillog_entry/usermod.test create mode 100644 tests/tests/usertools/usermod/43_usermod-u_reset_new_faillog_entry/config.txt create mode 100644 tests/tests/usertools/usermod/43_usermod-u_reset_new_faillog_entry/config/etc/default/useradd create mode 100644 tests/tests/usertools/usermod/43_usermod-u_reset_new_faillog_entry/config/etc/group create mode 100644 tests/tests/usertools/usermod/43_usermod-u_reset_new_faillog_entry/config/etc/gshadow create mode 100644 tests/tests/usertools/usermod/43_usermod-u_reset_new_faillog_entry/config/etc/pam.d/login create mode 100644 tests/tests/usertools/usermod/43_usermod-u_reset_new_faillog_entry/config/etc/passwd create mode 100644 tests/tests/usertools/usermod/43_usermod-u_reset_new_faillog_entry/config/etc/shadow create mode 100644 tests/tests/usertools/usermod/43_usermod-u_reset_new_faillog_entry/data/group create mode 100644 tests/tests/usertools/usermod/43_usermod-u_reset_new_faillog_entry/data/passwd create mode 100644 tests/tests/usertools/usermod/43_usermod-u_reset_new_faillog_entry/data/shadow create mode 100755 tests/tests/usertools/usermod/43_usermod-u_reset_new_faillog_entry/login.exp create mode 100755 tests/tests/usertools/usermod/43_usermod-u_reset_new_faillog_entry/usermod.test create mode 100644 tests/tests/usertools/usermod/44_usermod-l_move_mailbox/config.txt create mode 100644 tests/tests/usertools/usermod/44_usermod-l_move_mailbox/config/etc/default/useradd create mode 100644 tests/tests/usertools/usermod/44_usermod-l_move_mailbox/config/etc/group create mode 100644 tests/tests/usertools/usermod/44_usermod-l_move_mailbox/config/etc/gshadow create mode 100644 tests/tests/usertools/usermod/44_usermod-l_move_mailbox/config/etc/passwd create mode 100644 tests/tests/usertools/usermod/44_usermod-l_move_mailbox/config/etc/shadow create mode 100644 tests/tests/usertools/usermod/44_usermod-l_move_mailbox/data/mailbox.perms create mode 100644 tests/tests/usertools/usermod/44_usermod-l_move_mailbox/data/passwd create mode 100644 tests/tests/usertools/usermod/44_usermod-l_move_mailbox/data/shadow create mode 100644 tests/tests/usertools/usermod/44_usermod-l_move_mailbox/test create mode 100755 tests/tests/usertools/usermod/44_usermod-l_move_mailbox/usermod.test create mode 100644 tests/tests/usertools/usermod/45_usermod-u_change_mailbox_owner/config.txt create mode 100644 tests/tests/usertools/usermod/45_usermod-u_change_mailbox_owner/config/etc/default/useradd create mode 100644 tests/tests/usertools/usermod/45_usermod-u_change_mailbox_owner/config/etc/group create mode 100644 tests/tests/usertools/usermod/45_usermod-u_change_mailbox_owner/config/etc/gshadow create mode 100644 tests/tests/usertools/usermod/45_usermod-u_change_mailbox_owner/config/etc/passwd create mode 100644 tests/tests/usertools/usermod/45_usermod-u_change_mailbox_owner/config/etc/shadow create mode 100644 tests/tests/usertools/usermod/45_usermod-u_change_mailbox_owner/data/mailbox.perms create mode 100644 tests/tests/usertools/usermod/45_usermod-u_change_mailbox_owner/data/passwd create mode 100755 tests/tests/usertools/usermod/45_usermod-u_change_mailbox_owner/usermod.test create mode 100644 tests/tests/usertools/usermod/46_usermod-u_checks_mailbox_owner/config.txt create mode 100644 tests/tests/usertools/usermod/46_usermod-u_checks_mailbox_owner/config/etc/default/useradd create mode 100644 tests/tests/usertools/usermod/46_usermod-u_checks_mailbox_owner/config/etc/group create mode 100644 tests/tests/usertools/usermod/46_usermod-u_checks_mailbox_owner/config/etc/gshadow create mode 100644 tests/tests/usertools/usermod/46_usermod-u_checks_mailbox_owner/config/etc/passwd create mode 100644 tests/tests/usertools/usermod/46_usermod-u_checks_mailbox_owner/config/etc/shadow create mode 100644 tests/tests/usertools/usermod/46_usermod-u_checks_mailbox_owner/data/mailbox.perms create mode 100644 tests/tests/usertools/usermod/46_usermod-u_checks_mailbox_owner/data/passwd create mode 100644 tests/tests/usertools/usermod/46_usermod-u_checks_mailbox_owner/data/usermod.err create mode 100755 tests/tests/usertools/usermod/46_usermod-u_checks_mailbox_owner/usermod.test create mode 100644 tests/tests/usertools/usermod/47_usermod-u_default_maildir/config.txt create mode 100644 tests/tests/usertools/usermod/47_usermod-u_default_maildir/config/etc/default/useradd create mode 100644 tests/tests/usertools/usermod/47_usermod-u_default_maildir/config/etc/group create mode 100644 tests/tests/usertools/usermod/47_usermod-u_default_maildir/config/etc/gshadow create mode 100644 tests/tests/usertools/usermod/47_usermod-u_default_maildir/config/etc/login.defs create mode 100644 tests/tests/usertools/usermod/47_usermod-u_default_maildir/config/etc/passwd create mode 100644 tests/tests/usertools/usermod/47_usermod-u_default_maildir/config/etc/shadow create mode 100644 tests/tests/usertools/usermod/47_usermod-u_default_maildir/data/mailbox.perms create mode 100644 tests/tests/usertools/usermod/47_usermod-u_default_maildir/data/passwd create mode 100755 tests/tests/usertools/usermod/47_usermod-u_default_maildir/usermod.test create mode 100644 tests/tests/usertools/usermod/48_usermod-u_MAIL_FILE/config.txt create mode 100644 tests/tests/usertools/usermod/48_usermod-u_MAIL_FILE/config/etc/default/useradd create mode 100644 tests/tests/usertools/usermod/48_usermod-u_MAIL_FILE/config/etc/group create mode 100644 tests/tests/usertools/usermod/48_usermod-u_MAIL_FILE/config/etc/gshadow create mode 100644 tests/tests/usertools/usermod/48_usermod-u_MAIL_FILE/config/etc/login.defs create mode 100644 tests/tests/usertools/usermod/48_usermod-u_MAIL_FILE/config/etc/passwd create mode 100644 tests/tests/usertools/usermod/48_usermod-u_MAIL_FILE/config/etc/shadow create mode 100644 tests/tests/usertools/usermod/48_usermod-u_MAIL_FILE/data/mailbox.perms create mode 100644 tests/tests/usertools/usermod/48_usermod-u_MAIL_FILE/data/passwd create mode 100755 tests/tests/usertools/usermod/48_usermod-u_MAIL_FILE/usermod.test create mode 100644 tests/tests/usertools/usermod/49_usermod_change_gid+move_homedir_other_device/config.txt create mode 100644 tests/tests/usertools/usermod/49_usermod_change_gid+move_homedir_other_device/config/etc/default/useradd create mode 100644 tests/tests/usertools/usermod/49_usermod_change_gid+move_homedir_other_device/config/etc/group create mode 100644 tests/tests/usertools/usermod/49_usermod_change_gid+move_homedir_other_device/config/etc/gshadow create mode 100644 tests/tests/usertools/usermod/49_usermod_change_gid+move_homedir_other_device/config/etc/passwd create mode 100644 tests/tests/usertools/usermod/49_usermod_change_gid+move_homedir_other_device/config/etc/shadow create mode 100644 tests/tests/usertools/usermod/49_usermod_change_gid+move_homedir_other_device/data/home_ls-a create mode 100644 tests/tests/usertools/usermod/49_usermod_change_gid+move_homedir_other_device/data/passwd create mode 100755 tests/tests/usertools/usermod/49_usermod_change_gid+move_homedir_other_device/usermod.test create mode 100644 tests/tests/usertools/usermod/50_usermod_change_uid+move_homedir/config.txt create mode 100644 tests/tests/usertools/usermod/50_usermod_change_uid+move_homedir/config/etc/default/useradd create mode 100644 tests/tests/usertools/usermod/50_usermod_change_uid+move_homedir/config/etc/group create mode 100644 tests/tests/usertools/usermod/50_usermod_change_uid+move_homedir/config/etc/gshadow create mode 100644 tests/tests/usertools/usermod/50_usermod_change_uid+move_homedir/config/etc/passwd create mode 100644 tests/tests/usertools/usermod/50_usermod_change_uid+move_homedir/config/etc/shadow create mode 100644 tests/tests/usertools/usermod/50_usermod_change_uid+move_homedir/data/home_ls-a create mode 100644 tests/tests/usertools/usermod/50_usermod_change_uid+move_homedir/data/passwd create mode 100755 tests/tests/usertools/usermod/50_usermod_change_uid+move_homedir/usermod.test create mode 100644 tests/tests/usertools/usermod/51_usermod_change_gid+move_homedir/config.txt create mode 100644 tests/tests/usertools/usermod/51_usermod_change_gid+move_homedir/config/etc/default/useradd create mode 100644 tests/tests/usertools/usermod/51_usermod_change_gid+move_homedir/config/etc/group create mode 100644 tests/tests/usertools/usermod/51_usermod_change_gid+move_homedir/config/etc/gshadow create mode 100644 tests/tests/usertools/usermod/51_usermod_change_gid+move_homedir/config/etc/passwd create mode 100644 tests/tests/usertools/usermod/51_usermod_change_gid+move_homedir/config/etc/shadow create mode 100644 tests/tests/usertools/usermod/51_usermod_change_gid+move_homedir/data/home_ls-a create mode 100644 tests/tests/usertools/usermod/51_usermod_change_gid+move_homedir/data/passwd create mode 100755 tests/tests/usertools/usermod/51_usermod_change_gid+move_homedir/usermod.test create mode 100644 tests/tests/usertools/usermod/52_usermod_move_homedir_symlink/config.txt create mode 100644 tests/tests/usertools/usermod/52_usermod_move_homedir_symlink/config/etc/default/useradd create mode 100644 tests/tests/usertools/usermod/52_usermod_move_homedir_symlink/config/etc/group create mode 100644 tests/tests/usertools/usermod/52_usermod_move_homedir_symlink/config/etc/gshadow create mode 100644 tests/tests/usertools/usermod/52_usermod_move_homedir_symlink/config/etc/passwd create mode 100644 tests/tests/usertools/usermod/52_usermod_move_homedir_symlink/config/etc/shadow create mode 100644 tests/tests/usertools/usermod/52_usermod_move_homedir_symlink/data/home_ls-a create mode 100644 tests/tests/usertools/usermod/52_usermod_move_homedir_symlink/data/home_ls-a2 create mode 100644 tests/tests/usertools/usermod/52_usermod_move_homedir_symlink/data/passwd create mode 100644 tests/tests/usertools/usermod/52_usermod_move_homedir_symlink/data/usermod.err create mode 100755 tests/tests/usertools/usermod/52_usermod_move_homedir_symlink/usermod.test delete mode 100644 tests/unit/test_atoi_strtou_noneg.c diff --git a/Makefile.am b/Makefile.am index 8f489073..22bbd561 100644 --- a/Makefile.am +++ b/Makefile.am @@ -15,3 +15,4 @@ SUBDIRS += man endif CLEANFILES = man/8.out man/po/remove-potcdate.* man/*/login.defs.d man/*/*.mo +EXTRA_DIST = tests/ diff --git a/Makefile.in b/Makefile.in index ed99a126..66aa6b16 100644 --- a/Makefile.in +++ b/Makefile.in @@ -243,6 +243,7 @@ EGREP = @EGREP@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ +FILECMD = @FILECMD@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ @@ -389,7 +390,7 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -EXTRA_DIST = NEWS README +EXTRA_DIST = tests/ SUBDIRS = lib $(am__append_1) src po contrib doc etc tests/unit \ $(am__append_2) CLEANFILES = man/8.out man/po/remove-potcdate.* man/*/login.defs.d man/*/*.mo diff --git a/aclocal.m4 b/aclocal.m4 index aee8bf2f..3aa89a36 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -22,14 +22,15 @@ To do so, use the procedure documented by the package, typically 'autoreconf'.]) # ltdl.m4 - Configure ltdl for the target system. -*-Autoconf-*- # -# Copyright (C) 1999-2008, 2011-2015 Free Software Foundation, Inc. +# Copyright (C) 1999-2008, 2011-2019, 2021-2022 Free Software +# Foundation, Inc. # Written by Thomas Tanner, 1999 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. -# serial 20 LTDL_INIT +# serial 21 LTDL_INIT # LT_CONFIG_LTDL_DIR(DIRECTORY, [LTDL-MODE]) # ------------------------------------------ @@ -357,7 +358,7 @@ AC_CONFIG_COMMANDS_PRE([ if test -n "$_LT_LIBOBJS"; then # Remove the extension. _lt_sed_drop_objext='s/\.o$//;s/\.obj$//' - for i in `for i in $_LT_LIBOBJS; do echo "$i"; done | sed "$_lt_sed_drop_objext" | sort -u`; do + for i in `for i in $_LT_LIBOBJS; do echo "$i"; done | $SED "$_lt_sed_drop_objext" | sort -u`; do _ltdl_libobjs="$_ltdl_libobjs $lt_libobj_prefix$i.$ac_objext" _ltdl_ltlibobjs="$_ltdl_ltlibobjs $lt_libobj_prefix$i.lo" done @@ -495,7 +496,7 @@ AC_CACHE_CHECK([whether deplibs are loaded by dlopen], # If you are looking for one http://www.opendarwin.org/projects/dlcompat lt_cv_sys_dlopen_deplibs=yes ;; - freebsd* | dragonfly*) + freebsd* | dragonfly* | midnightbsd*) lt_cv_sys_dlopen_deplibs=yes ;; gnu* | linux* | k*bsd*-gnu | kopensolaris*-gnu) @@ -930,7 +931,7 @@ AU_ALIAS([AC_LTDL_DLSYM_USCORE], [LT_FUNC_DLSYM_USCORE]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LTDL_DLSYM_USCORE], []) -# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- +# pkg.m4 - Macros to locate and use pkg-config. -*- Autoconf -*- # serial 12 (pkg-config-0.29.2) dnl Copyright © 2004 Scott James Remnant . @@ -1018,7 +1019,7 @@ dnl Check to see whether a particular set of modules exists. Similar to dnl PKG_CHECK_MODULES(), but does not set variables or print errors. dnl dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) -dnl only at the first occurence in configure.ac, so if the first place +dnl only at the first occurrence in configure.ac, so if the first place dnl it's called might be skipped (such as if it is within an "if", you dnl have to call PKG_CHECK_EXISTS manually AC_DEFUN([PKG_CHECK_EXISTS], @@ -1087,14 +1088,14 @@ if test $pkg_failed = yes; then AC_MSG_RESULT([no]) _PKG_SHORT_ERRORS_SUPPORTED if test $_pkg_short_errors_supported = yes; then - $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` + $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` else - $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` + $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` fi - # Put the nasty error message in config.log where it belongs - echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD + # Put the nasty error message in config.log where it belongs + echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD - m4_default([$4], [AC_MSG_ERROR( + m4_default([$4], [AC_MSG_ERROR( [Package requirements ($2) were not met: $$1_PKG_ERRORS @@ -1106,7 +1107,7 @@ _PKG_TEXT])[]dnl ]) elif test $pkg_failed = untried; then AC_MSG_RESULT([no]) - m4_default([$4], [AC_MSG_FAILURE( + m4_default([$4], [AC_MSG_FAILURE( [The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full path to pkg-config. @@ -1116,10 +1117,10 @@ _PKG_TEXT To get pkg-config, see .])[]dnl ]) else - $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS - $1[]_LIBS=$pkg_cv_[]$1[]_LIBS + $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS + $1[]_LIBS=$pkg_cv_[]$1[]_LIBS AC_MSG_RESULT([yes]) - $3 + $3 fi[]dnl ])dnl PKG_CHECK_MODULES @@ -1206,6 +1207,74 @@ AS_VAR_COPY([$1], [pkg_cv_][$1]) AS_VAR_IF([$1], [""], [$5], [$4])dnl ])dnl PKG_CHECK_VAR +dnl PKG_WITH_MODULES(VARIABLE-PREFIX, MODULES, +dnl [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND], +dnl [DESCRIPTION], [DEFAULT]) +dnl ------------------------------------------ +dnl +dnl Prepare a "--with-" configure option using the lowercase +dnl [VARIABLE-PREFIX] name, merging the behaviour of AC_ARG_WITH and +dnl PKG_CHECK_MODULES in a single macro. +AC_DEFUN([PKG_WITH_MODULES], +[ +m4_pushdef([with_arg], m4_tolower([$1])) + +m4_pushdef([description], + [m4_default([$5], [build with ]with_arg[ support])]) + +m4_pushdef([def_arg], [m4_default([$6], [auto])]) +m4_pushdef([def_action_if_found], [AS_TR_SH([with_]with_arg)=yes]) +m4_pushdef([def_action_if_not_found], [AS_TR_SH([with_]with_arg)=no]) + +m4_case(def_arg, + [yes],[m4_pushdef([with_without], [--without-]with_arg)], + [m4_pushdef([with_without],[--with-]with_arg)]) + +AC_ARG_WITH(with_arg, + AS_HELP_STRING(with_without, description[ @<:@default=]def_arg[@:>@]),, + [AS_TR_SH([with_]with_arg)=def_arg]) + +AS_CASE([$AS_TR_SH([with_]with_arg)], + [yes],[PKG_CHECK_MODULES([$1],[$2],$3,$4)], + [auto],[PKG_CHECK_MODULES([$1],[$2], + [m4_n([def_action_if_found]) $3], + [m4_n([def_action_if_not_found]) $4])]) + +m4_popdef([with_arg]) +m4_popdef([description]) +m4_popdef([def_arg]) + +])dnl PKG_WITH_MODULES + +dnl PKG_HAVE_WITH_MODULES(VARIABLE-PREFIX, MODULES, +dnl [DESCRIPTION], [DEFAULT]) +dnl ----------------------------------------------- +dnl +dnl Convenience macro to trigger AM_CONDITIONAL after PKG_WITH_MODULES +dnl check._[VARIABLE-PREFIX] is exported as make variable. +AC_DEFUN([PKG_HAVE_WITH_MODULES], +[ +PKG_WITH_MODULES([$1],[$2],,,[$3],[$4]) + +AM_CONDITIONAL([HAVE_][$1], + [test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"]) +])dnl PKG_HAVE_WITH_MODULES + +dnl PKG_HAVE_DEFINE_WITH_MODULES(VARIABLE-PREFIX, MODULES, +dnl [DESCRIPTION], [DEFAULT]) +dnl ------------------------------------------------------ +dnl +dnl Convenience macro to run AM_CONDITIONAL and AC_DEFINE after +dnl PKG_WITH_MODULES check. HAVE_[VARIABLE-PREFIX] is exported as make +dnl and preprocessor variable. +AC_DEFUN([PKG_HAVE_DEFINE_WITH_MODULES], +[ +PKG_HAVE_WITH_MODULES([$1],[$2],[$3],[$4]) + +AS_IF([test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"], + [AC_DEFINE([HAVE_][$1], 1, [Enable ]m4_tolower([$1])[ support])]) +])dnl PKG_HAVE_DEFINE_WITH_MODULES + # Copyright (C) 2002-2021 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation diff --git a/configure b/configure index 27940b96..e23e2eaf 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for shadow 4.15.1. +# Generated by GNU Autoconf 2.71 for shadow 4.15.2. # # Report bugs to . # @@ -621,8 +621,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='shadow' PACKAGE_TARNAME='shadow' -PACKAGE_VERSION='4.15.1' -PACKAGE_STRING='shadow 4.15.1' +PACKAGE_VERSION='4.15.2' +PACKAGE_STRING='shadow 4.15.2' PACKAGE_BUGREPORT='pkg-shadow-devel@lists.alioth.debian.org' PACKAGE_URL='https://github.com/shadow-maint/shadow' @@ -681,10 +681,6 @@ GMSGFMT MSGFMT GETTEXT_MACRO_VERSION USE_NLS -HAVE_CMOCKA_FALSE -HAVE_CMOCKA_TRUE -CMOCKA_LIBS -CMOCKA_CFLAGS LIBMD LIBSKEY capcmd @@ -709,9 +705,6 @@ WITH_LIBBSD_FALSE WITH_LIBBSD_TRUE LIBBSD_LIBS LIBBSD_CFLAGS -PKG_CONFIG_LIBDIR -PKG_CONFIG_PATH -PKG_CONFIG LIBBSD LIYESCRYPT LIBCRYPT @@ -734,6 +727,13 @@ HAVE_VENDORDIR_TRUE VENDORDIR LIBECONF ECONF_CPPFLAGS +HAVE_CMOCKA_FALSE +HAVE_CMOCKA_TRUE +CMOCKA_LIBS +CMOCKA_CFLAGS +PKG_CONFIG_LIBDIR +PKG_CONFIG_PATH +PKG_CONFIG WITH_SU_FALSE WITH_SU_TRUE USE_YESCRYPT_FALSE @@ -763,6 +763,7 @@ ac_ct_AR AR DLLTOOL OBJDUMP +FILECMD NM ac_ct_DUMPBIN DUMPBIN @@ -936,10 +937,10 @@ CPP PKG_CONFIG PKG_CONFIG_PATH PKG_CONFIG_LIBDIR -LIBBSD_CFLAGS -LIBBSD_LIBS CMOCKA_CFLAGS -CMOCKA_LIBS' +CMOCKA_LIBS +LIBBSD_CFLAGS +LIBBSD_LIBS' # Initialize some variables set by options. @@ -1488,7 +1489,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures shadow 4.15.1 to adapt to many kinds of systems. +\`configure' configures shadow 4.15.2 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1559,7 +1560,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of shadow 4.15.1:";; + short | recursive ) echo "Configuration of shadow 4.15.2:";; esac cat <<\_ACEOF @@ -1663,12 +1664,12 @@ Some influential environment variables: directories to add to pkg-config's search path PKG_CONFIG_LIBDIR path overriding pkg-config's built-in search path - LIBBSD_CFLAGS - C compiler flags for LIBBSD, overriding pkg-config - LIBBSD_LIBS linker flags for LIBBSD, overriding pkg-config CMOCKA_CFLAGS C compiler flags for CMOCKA, overriding pkg-config CMOCKA_LIBS linker flags for CMOCKA, overriding pkg-config + LIBBSD_CFLAGS + C compiler flags for LIBBSD, overriding pkg-config + LIBBSD_LIBS linker flags for LIBBSD, overriding pkg-config Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. @@ -1738,7 +1739,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -shadow configure 4.15.1 +shadow configure 4.15.2 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2338,7 +2339,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by shadow $as_me 4.15.1, which was +It was created by shadow $as_me 4.15.2, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3611,7 +3612,7 @@ fi # Define the identity of the package. PACKAGE='shadow' - VERSION='4.15.1' + VERSION='4.15.2' printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h @@ -3651,7 +3652,93 @@ AMTAR='$${TAR-tar}' # We'll loop over all known methods to create a tar archive until one works. _am_tools='gnutar pax cpio none' -am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to create a pax tar archive" >&5 +printf %s "checking how to create a pax tar archive... " >&6; } + + # Go ahead even if we have the value already cached. We do so because we + # need to set the values for the 'am__tar' and 'am__untar' variables. + _am_tools=${am_cv_prog_tar_pax-$_am_tools} + + for _am_tool in $_am_tools; do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; do + { echo "$as_me:$LINENO: $_am_tar --version" >&5 + ($_am_tar --version) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && break + done + am__tar="$_am_tar --format=posix -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=posix -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x pax -w "$$tardir"' + am__tar_='pax -L -x pax -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H pax -L' + am__tar_='find "$tardir" -print | cpio -o -H pax -L' + am__untar='cpio -i -H pax -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_pax}" && break + + # tar/untar a dummy directory, and stop if the command works. + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + { echo "$as_me:$LINENO: tardir=conftest.dir && eval $am__tar_ >conftest.tar" >&5 + (tardir=conftest.dir && eval $am__tar_ >conftest.tar) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + rm -rf conftest.dir + if test -s conftest.tar; then + { echo "$as_me:$LINENO: $am__untar &5 + ($am__untar &5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + { echo "$as_me:$LINENO: cat conftest.dir/file" >&5 + (cat conftest.dir/file) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + grep GrepMe conftest.dir/file >/dev/null 2>&1 && break + fi + done + rm -rf conftest.dir + + if test ${am_cv_prog_tar_pax+y} +then : + printf %s "(cached) " >&6 +else $as_nop + am_cv_prog_tar_pax=$_am_tool +fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_tar_pax" >&5 +printf "%s\n" "$am_cv_prog_tar_pax" >&6; } @@ -6270,8 +6357,8 @@ esac -macro_version='2.4.6' -macro_revision='2.4.6' +macro_version='2.4.7' +macro_revision='2.4.7' @@ -6899,13 +6986,13 @@ else mingw*) lt_bad_file=conftest.nm/nofile ;; *) lt_bad_file=/dev/null ;; esac - case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in + case `"$tmp_nm" -B $lt_bad_file 2>&1 | $SED '1q'` in *$lt_bad_file* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break 2 ;; *) - case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + case `"$tmp_nm" -p /dev/null 2>&1 | $SED '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break 2 @@ -7043,7 +7130,7 @@ esac fi fi - case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in + case `$DUMPBIN -symbols -headers /dev/null 2>&1 | $SED '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols -headers" ;; @@ -7136,7 +7223,7 @@ else $as_nop lt_cv_sys_max_cmd_len=8192; ;; - bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*) + bitrig* | darwin* | dragonfly* | freebsd* | midnightbsd* | netbsd* | openbsd*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` @@ -7179,7 +7266,7 @@ else $as_nop sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then - lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` + lt_cv_sys_max_cmd_len=`echo $kargmax | $SED 's/.*[ ]//'` else lt_cv_sys_max_cmd_len=32768 fi @@ -7384,6 +7471,114 @@ esac +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}file", so it can be a program name with args. +set dummy ${ac_tool_prefix}file; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_FILECMD+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$FILECMD"; then + ac_cv_prog_FILECMD="$FILECMD" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_FILECMD="${ac_tool_prefix}file" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +FILECMD=$ac_cv_prog_FILECMD +if test -n "$FILECMD"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $FILECMD" >&5 +printf "%s\n" "$FILECMD" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_FILECMD"; then + ac_ct_FILECMD=$FILECMD + # Extract the first word of "file", so it can be a program name with args. +set dummy file; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_FILECMD+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_FILECMD"; then + ac_cv_prog_ac_ct_FILECMD="$ac_ct_FILECMD" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_FILECMD="file" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_FILECMD=$ac_cv_prog_ac_ct_FILECMD +if test -n "$ac_ct_FILECMD"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_FILECMD" >&5 +printf "%s\n" "$ac_ct_FILECMD" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_FILECMD" = x; then + FILECMD=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + FILECMD=$ac_ct_FILECMD + fi +else + FILECMD="$ac_cv_prog_FILECMD" +fi + + + + + + + if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. set dummy ${ac_tool_prefix}objdump; ac_word=$2 @@ -7527,7 +7722,7 @@ beos*) bsdi[45]*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' - lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_cmd='$FILECMD -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; @@ -7561,14 +7756,14 @@ darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; -freebsd* | dragonfly*) +freebsd* | dragonfly* | midnightbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' - lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_cmd=$FILECMD lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac @@ -7582,7 +7777,7 @@ haiku*) ;; hpux10.20* | hpux11*) - lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_cmd=$FILECMD case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' @@ -7629,7 +7824,7 @@ netbsd* | netbsdelf*-gnu) newos6*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' - lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_cmd=$FILECMD lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; @@ -8002,13 +8197,29 @@ esac fi : ${AR=ar} -: ${AR_FLAGS=cr} +# Use ARFLAGS variable as AR's operation code to sync the variable naming with +# Automake. If both AR_FLAGS and ARFLAGS are specified, AR_FLAGS should have +# higher priority because thats what people were doing historically (setting +# ARFLAGS for automake and AR_FLAGS for libtool). FIXME: Make the AR_FLAGS +# variable obsoleted/removed. + +test ${AR_FLAGS+y} || AR_FLAGS=${ARFLAGS-cr} +lt_ar_flags=$AR_FLAGS + + + + + + +# Make AR_FLAGS overridable by 'make ARFLAGS='. Don't try to run-time override +# by AR_FLAGS because that was never working and AR_FLAGS is about to die. + @@ -8425,7 +8636,7 @@ esac if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Gets list of data symbols to import. - lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'" + lt_cv_sys_global_symbol_to_import="$SED -n -e 's/^I .* \(.*\)$/\1/p'" # Adjust the below global symbol transforms to fixup imported variables. lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" @@ -8443,20 +8654,20 @@ fi # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. -lt_cv_sys_global_symbol_to_cdecl="sed -n"\ +lt_cv_sys_global_symbol_to_cdecl="$SED -n"\ $lt_cdecl_hook\ " -e 's/^T .* \(.*\)$/extern int \1();/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address -lt_cv_sys_global_symbol_to_c_name_address="sed -n"\ +lt_cv_sys_global_symbol_to_c_name_address="$SED -n"\ $lt_c_name_hook\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" # Transform an extracted symbol line into symbol name with lib prefix and # symbol address. -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\ +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="$SED -n"\ $lt_c_name_lib_hook\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ @@ -8480,7 +8691,7 @@ for ac_symprfx in "" "_"; do if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function, # D for any global variable and I for any imported variable. - # Also find C++ and __fastcall symbols from MSVC++, + # Also find C++ and __fastcall symbols from MSVC++ or ICC, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK '"\ " {last_section=section; section=\$ 3};"\ @@ -8498,9 +8709,9 @@ for ac_symprfx in "" "_"; do " s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx" else - lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + lt_cv_sys_global_symbol_pipe="$SED -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi - lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | $SED '/ __gnu_lto/d'" # Check to see that the pipe works correctly. pipe_works=no @@ -8700,7 +8911,7 @@ case $with_sysroot in #( fi ;; #( /*) - lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"` ;; #( no|'') ;; #( @@ -8825,7 +9036,7 @@ ia64-*-hpux*) ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - case `/usr/bin/file conftest.$ac_objext` in + case `$FILECMD conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE=32 ;; @@ -8846,7 +9057,7 @@ ia64-*-hpux*) printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then if test yes = "$lt_cv_prog_gnu_ld"; then - case `/usr/bin/file conftest.$ac_objext` in + case `$FILECMD conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; @@ -8858,7 +9069,7 @@ ia64-*-hpux*) ;; esac else - case `/usr/bin/file conftest.$ac_objext` in + case `$FILECMD conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; @@ -8884,7 +9095,7 @@ mips64*-*linux*) printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then emul=elf - case `/usr/bin/file conftest.$ac_objext` in + case `$FILECMD conftest.$ac_objext` in *32-bit*) emul="${emul}32" ;; @@ -8892,7 +9103,7 @@ mips64*-*linux*) emul="${emul}64" ;; esac - case `/usr/bin/file conftest.$ac_objext` in + case `$FILECMD conftest.$ac_objext` in *MSB*) emul="${emul}btsmip" ;; @@ -8900,7 +9111,7 @@ mips64*-*linux*) emul="${emul}ltsmip" ;; esac - case `/usr/bin/file conftest.$ac_objext` in + case `$FILECMD conftest.$ac_objext` in *N32*) emul="${emul}n32" ;; @@ -8924,14 +9135,14 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - case `/usr/bin/file conftest.o` in + case `$FILECMD conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) - case `/usr/bin/file conftest.o` in + case `$FILECMD conftest.o` in *x86-64*) LD="${LD-ld} -m elf32_x86_64" ;; @@ -9039,7 +9250,7 @@ printf "%s\n" "$lt_cv_cc_needs_belf" >&6; } ac_status=$? printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then - case `/usr/bin/file conftest.o` in + case `$FILECMD conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) @@ -9822,8 +10033,8 @@ int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 - echo "$AR cr libconftest.a conftest.o" >&5 - $AR cr libconftest.a conftest.o 2>&5 + echo "$AR $AR_FLAGS libconftest.a conftest.o" >&5 + $AR $AR_FLAGS libconftest.a conftest.o 2>&5 echo "$RANLIB libconftest.a" >&5 $RANLIB libconftest.a 2>&5 cat > conftest.c << _LT_EOF @@ -9850,17 +10061,12 @@ printf "%s\n" "$lt_cv_ld_force_load" >&6; } _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; - darwin*) # darwin 5.x on - # if running on 10.5 or later, the deployment target defaults - # to the OS version, if on x86, and 10.4, the deployment - # target defaults to 10.4. Don't you love it? - case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in - 10.0,*86*-darwin8*|10.0,*-darwin[912]*) - _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; - 10.[012][,.]*) - _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; - 10.*|11.*) - _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; + darwin*) + case $MACOSX_DEPLOYMENT_TARGET,$host in + 10.[012],*|,*powerpc*-darwin[5-8]*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; + *) + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; esac ;; esac @@ -10157,8 +10363,8 @@ esac ofile=libtool can_build_shared=yes -# All known linkers require a '.a' archive for static linking (except MSVC, -# which needs '.lib'). +# All known linkers require a '.a' archive for static linking (except MSVC and +# ICC, which need '.lib'). libext=a with_gnu_ld=$lt_cv_prog_gnu_ld @@ -10676,7 +10882,7 @@ lt_prog_compiler_static= lt_prog_compiler_static='-qstaticlink' ;; *) - case `$CC -V 2>&1 | sed 5q` in + case `$CC -V 2>&1 | $SED 5q` in *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic='-KPIC' @@ -11099,15 +11305,15 @@ printf %s "checking whether the $compiler linker ($LD) supports shared libraries case $host_os in cygwin* | mingw* | pw32* | cegcc*) - # FIXME: the MSVC++ port hasn't been tested in a loooong time + # FIXME: the MSVC++ and ICC port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. + # Microsoft Visual C++ or Intel C++ Compiler. if test yes != "$GCC"; then with_gnu_ld=no fi ;; interix*) - # we just hope/assume this is gcc and not c89 (= MSVC++) + # we just hope/assume this is gcc and not c89 (= MSVC++ or ICC) with_gnu_ld=yes ;; openbsd* | bitrig*) @@ -11162,7 +11368,7 @@ printf %s "checking whether the $compiler linker ($LD) supports shared libraries whole_archive_flag_spec= fi supports_anon_versioning=no - case `$LD -v | $SED -e 's/(^)\+)\s\+//' 2>&1` in + case `$LD -v | $SED -e 's/([^)]\+)\s\+//' 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... @@ -11274,6 +11480,7 @@ _LT_EOF emximp -o $lib $output_objdir/$libname.def' old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' enable_shared_with_static_runtimes=yes + file_list_spec='@' ;; interix[3-9]*) @@ -11288,7 +11495,7 @@ _LT_EOF # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - archive_expsym_cmds='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds='$SED "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) @@ -11331,7 +11538,7 @@ _LT_EOF compiler_needs_object=yes ;; esac - case `$CC -V 2>&1 | sed 5q` in + case `$CC -V 2>&1 | $SED 5q` in *Sun\ C*) # Sun C 5.9 whole_archive_flag_spec='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' compiler_needs_object=yes @@ -11343,13 +11550,14 @@ _LT_EOF if test yes = "$supports_anon_versioning"; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' fi case $cc_basename in tcc*) + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' export_dynamic_flag_spec='-rdynamic' ;; xlf* | bgf* | bgxlf* | mpixlf*) @@ -11359,7 +11567,7 @@ _LT_EOF archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test yes = "$supports_anon_versioning"; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi @@ -11491,7 +11699,7 @@ _LT_EOF if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else - export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no @@ -11762,12 +11970,12 @@ fi cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. + # Microsoft Visual C++ or Intel C++ Compiler. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. case $cc_basename in - cl*) - # Native MSVC + cl* | icl*) + # Native MSVC or ICC hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported always_export_symbols=yes @@ -11808,7 +12016,7 @@ fi fi' ;; *) - # Assume MSVC wrapper + # Assume MSVC and ICC wrapper hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported # Tell ltmain to make .lib files, not .a files. @@ -11849,8 +12057,8 @@ fi output_verbose_link_cmd=func_echo_all archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" - archive_expsym_cmds="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" - module_expsym_cmds="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" + archive_expsym_cmds="$SED 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" + module_expsym_cmds="$SED -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" else ld_shlibs=no @@ -11884,7 +12092,7 @@ fi ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | dragonfly*) + freebsd* | dragonfly* | midnightbsd*) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes @@ -12065,6 +12273,7 @@ printf "%s\n" "$lt_cv_irix_exported_symbol" >&6; } # Fabrice Bellard et al's Tiny C Compiler ld_shlibs=yes archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' ;; esac ;; @@ -12136,6 +12345,7 @@ printf "%s\n" "$lt_cv_irix_exported_symbol" >&6; } emximp -o $lib $output_objdir/$libname.def' old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' enable_shared_with_static_runtimes=yes + file_list_spec='@' ;; osf3*) @@ -12828,7 +13038,7 @@ cygwin* | mingw* | pw32* | cegcc*) case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' - soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + soname_spec='`echo $libname | $SED -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" ;; @@ -12838,14 +13048,14 @@ cygwin* | mingw* | pw32* | cegcc*) ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' - library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + library_names_spec='`echo $libname | $SED -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ;; esac dynamic_linker='Win32 ld.exe' ;; - *,cl*) - # Native MSVC + *,cl* | *,icl*) + # Native MSVC or ICC libname_spec='$name' soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' library_names_spec='$libname.dll.lib' @@ -12864,7 +13074,7 @@ cygwin* | mingw* | pw32* | cegcc*) done IFS=$lt_save_ifs # Convert to MSYS style. - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form @@ -12901,7 +13111,7 @@ cygwin* | mingw* | pw32* | cegcc*) ;; *) - # Assume MSVC wrapper + # Assume MSVC and ICC wrapper library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib' dynamic_linker='Win32 ld.exe' ;; @@ -12934,7 +13144,7 @@ dgux*) shlibpath_var=LD_LIBRARY_PATH ;; -freebsd* | dragonfly*) +freebsd* | dragonfly* | midnightbsd*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then @@ -14099,30 +14309,41 @@ striplib= old_striplib= { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 printf %s "checking whether stripping libraries is possible... " >&6; } -if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then - test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" - test -z "$striplib" && striplib="$STRIP --strip-unneeded" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } +if test -z "$STRIP"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } else -# FIXME - insert some real tests, host_os isn't really good enough - case $host_os in - darwin*) - if test -n "$STRIP"; then + if $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + old_striplib="$STRIP --strip-debug" + striplib="$STRIP --strip-unneeded" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + else + case $host_os in + darwin*) + # FIXME - insert some real tests, host_os isn't really good enough striplib="$STRIP -x" old_striplib="$STRIP -S" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } - else + ;; + freebsd*) + if $STRIP -V 2>&1 | $GREP "elftoolchain" >/dev/null; then + old_striplib="$STRIP --strip-debug" + striplib="$STRIP --strip-unneeded" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + fi + ;; + *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } - fi - ;; - *) - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } - ;; - esac + ;; + esac + fi fi @@ -15861,6 +16082,7 @@ printf "%s\n" "#define GROUP_NAME_MAX_LENGTH $with_group_name_max_length" >>conf GROUP_NAME_MAX_LENGTH="$with_group_name_max_length" + if test "x$with_sha_crypt" = "xyes"; then USE_SHA_CRYPT_TRUE= USE_SHA_CRYPT_FALSE='#' @@ -16005,6 +16227,218 @@ then : fi + + + + + + + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_path_PKG_CONFIG+y} +then : + printf %s "(cached) " >&6 +else $as_nop + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_path_PKG_CONFIG="$as_dir$ac_word$ac_exec_ext" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +printf "%s\n" "$PKG_CONFIG" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_path_ac_pt_PKG_CONFIG+y} +then : + printf %s "(cached) " >&6 +else $as_nop + case $ac_pt_PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir$ac_word$ac_exec_ext" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +printf "%s\n" "$ac_pt_PKG_CONFIG" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + PKG_CONFIG=$ac_pt_PKG_CONFIG + fi +else + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +fi + +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=0.9.0 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 +printf %s "checking pkg-config is at least version $_pkg_min_version... " >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + PKG_CONFIG="" + fi +fi + +pkg_failed=no +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for cmocka" >&5 +printf %s "checking for cmocka... " >&6; } + +if test -n "$CMOCKA_CFLAGS"; then + pkg_cv_CMOCKA_CFLAGS="$CMOCKA_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cmocka\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cmocka") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CMOCKA_CFLAGS=`$PKG_CONFIG --cflags "cmocka" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CMOCKA_LIBS"; then + pkg_cv_CMOCKA_LIBS="$CMOCKA_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cmocka\""; } >&5 + ($PKG_CONFIG --exists --print-errors "cmocka") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CMOCKA_LIBS=`$PKG_CONFIG --libs "cmocka" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + CMOCKA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cmocka" 2>&1` + else + CMOCKA_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cmocka" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$CMOCKA_PKG_ERRORS" >&5 + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: libcmocka not found, cmocka tests will not be built" >&5 +printf "%s\n" "$as_me: WARNING: libcmocka not found, cmocka tests will not be built" >&2;} +elif test $pkg_failed = untried; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: libcmocka not found, cmocka tests will not be built" >&5 +printf "%s\n" "$as_me: WARNING: libcmocka not found, cmocka tests will not be built" >&2;} +else + CMOCKA_CFLAGS=$pkg_cv_CMOCKA_CFLAGS + CMOCKA_LIBS=$pkg_cv_CMOCKA_LIBS + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + have_cmocka="yes" +fi + if test x$have_cmocka = xyes; then + HAVE_CMOCKA_TRUE= + HAVE_CMOCKA_FALSE='#' +else + HAVE_CMOCKA_TRUE='#' + HAVE_CMOCKA_FALSE= +fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for econf_readDirs in -leconf" >&5 printf %s "checking for econf_readDirs in -leconf... " >&6; } if test ${ac_cv_lib_econf_econf_readDirs+y} @@ -16623,137 +17057,7 @@ else $as_nop fi - - - - - - - -if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. -set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_path_PKG_CONFIG+y} -then : - printf %s "(cached) " >&6 -else $as_nop - case $PKG_CONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_path_PKG_CONFIG="$as_dir$ac_word$ac_exec_ext" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -PKG_CONFIG=$ac_cv_path_PKG_CONFIG -if test -n "$PKG_CONFIG"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 -printf "%s\n" "$PKG_CONFIG" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - -fi -if test -z "$ac_cv_path_PKG_CONFIG"; then - ac_pt_PKG_CONFIG=$PKG_CONFIG - # Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -printf %s "checking for $ac_word... " >&6; } -if test ${ac_cv_path_ac_pt_PKG_CONFIG+y} -then : - printf %s "(cached) " >&6 -else $as_nop - case $ac_pt_PKG_CONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - case $as_dir in #((( - '') as_dir=./ ;; - */) ;; - *) as_dir=$as_dir/ ;; - esac - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then - ac_cv_path_ac_pt_PKG_CONFIG="$as_dir$ac_word$ac_exec_ext" - printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - ;; -esac -fi -ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG -if test -n "$ac_pt_PKG_CONFIG"; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 -printf "%s\n" "$ac_pt_PKG_CONFIG" >&6; } -else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } -fi - - if test "x$ac_pt_PKG_CONFIG" = x; then - PKG_CONFIG="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - PKG_CONFIG=$ac_pt_PKG_CONFIG - fi -else - PKG_CONFIG="$ac_cv_path_PKG_CONFIG" -fi - -fi -if test -n "$PKG_CONFIG"; then - _pkg_min_version=0.9.0 - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 -printf %s "checking pkg-config is at least version $_pkg_min_version... " >&6; } - if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } - else - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } - PKG_CONFIG="" - fi -fi -if test "$ac_cv_search_readpassphrase" = "-lbsd" + if test "$ac_cv_search_readpassphrase" = "-lbsd" then : @@ -16808,14 +17112,14 @@ else _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - LIBBSD_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libbsd-overlay" 2>&1` + LIBBSD_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libbsd-overlay" 2>&1` else - LIBBSD_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libbsd-overlay" 2>&1` + LIBBSD_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libbsd-overlay" 2>&1` fi - # Put the nasty error message in config.log where it belongs - echo "$LIBBSD_PKG_ERRORS" >&5 + # Put the nasty error message in config.log where it belongs + echo "$LIBBSD_PKG_ERRORS" >&5 - as_fn_error $? "Package requirements (libbsd-overlay) were not met: + as_fn_error $? "Package requirements (libbsd-overlay) were not met: $LIBBSD_PKG_ERRORS @@ -16828,7 +17132,7 @@ See the pkg-config man page for more details." "$LINENO" 5 elif test $pkg_failed = untried; then { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 printf "%s\n" "no" >&6; } - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it is in your PATH or set the PKG_CONFIG environment variable to the full @@ -16841,8 +17145,8 @@ See the pkg-config man page for more details. To get pkg-config, see . See \`config.log' for more details" "$LINENO" 5; } else - LIBBSD_CFLAGS=$pkg_cv_LIBBSD_CFLAGS - LIBBSD_LIBS=$pkg_cv_LIBBSD_LIBS + LIBBSD_CFLAGS=$pkg_cv_LIBBSD_CFLAGS + LIBBSD_LIBS=$pkg_cv_LIBBSD_LIBS { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 printf "%s\n" "yes" >&6; } @@ -17957,88 +18261,6 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext fi - -pkg_failed=no -{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for cmocka" >&5 -printf %s "checking for cmocka... " >&6; } - -if test -n "$CMOCKA_CFLAGS"; then - pkg_cv_CMOCKA_CFLAGS="$CMOCKA_CFLAGS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cmocka\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cmocka") 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CMOCKA_CFLAGS=`$PKG_CONFIG --cflags "cmocka" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi -if test -n "$CMOCKA_LIBS"; then - pkg_cv_CMOCKA_LIBS="$CMOCKA_LIBS" - elif test -n "$PKG_CONFIG"; then - if test -n "$PKG_CONFIG" && \ - { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cmocka\""; } >&5 - ($PKG_CONFIG --exists --print-errors "cmocka") 2>&5 - ac_status=$? - printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - pkg_cv_CMOCKA_LIBS=`$PKG_CONFIG --libs "cmocka" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes -else - pkg_failed=yes -fi - else - pkg_failed=untried -fi - - - -if test $pkg_failed = yes; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } - -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi - if test $_pkg_short_errors_supported = yes; then - CMOCKA_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cmocka" 2>&1` - else - CMOCKA_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cmocka" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$CMOCKA_PKG_ERRORS" >&5 - - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: libcmocka not found, cmocka tests will not be built" >&5 -printf "%s\n" "$as_me: WARNING: libcmocka not found, cmocka tests will not be built" >&2;} -elif test $pkg_failed = untried; then - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 -printf "%s\n" "no" >&6; } - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: libcmocka not found, cmocka tests will not be built" >&5 -printf "%s\n" "$as_me: WARNING: libcmocka not found, cmocka tests will not be built" >&2;} -else - CMOCKA_CFLAGS=$pkg_cv_CMOCKA_CFLAGS - CMOCKA_LIBS=$pkg_cv_CMOCKA_LIBS - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -printf "%s\n" "yes" >&6; } - have_cmocka="yes" -fi - if test x$have_cmocka = xyes; then - HAVE_CMOCKA_TRUE= - HAVE_CMOCKA_FALSE='#' -else - HAVE_CMOCKA_TRUE='#' - HAVE_CMOCKA_FALSE= -fi - - ac_fn_c_check_func "$LINENO" "fgetpwent_r" "ac_cv_func_fgetpwent_r" if test "x$ac_cv_func_fgetpwent_r" = xyes then : @@ -20318,6 +20540,10 @@ if test -z "${WITH_SU_TRUE}" && test -z "${WITH_SU_FALSE}"; then as_fn_error $? "conditional \"WITH_SU\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${HAVE_CMOCKA_TRUE}" && test -z "${HAVE_CMOCKA_FALSE}"; then + as_fn_error $? "conditional \"HAVE_CMOCKA\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${HAVE_VENDORDIR_TRUE}" && test -z "${HAVE_VENDORDIR_FALSE}"; then as_fn_error $? "conditional \"HAVE_VENDORDIR\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -20370,10 +20596,6 @@ if test -z "${FCAPS_TRUE}" && test -z "${FCAPS_FALSE}"; then as_fn_error $? "conditional \"FCAPS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi -if test -z "${HAVE_CMOCKA_TRUE}" && test -z "${HAVE_CMOCKA_FALSE}"; then - as_fn_error $? "conditional \"HAVE_CMOCKA\" was never defined. -Usually this means the macro was only invoked conditionally." "$LINENO" 5 -fi if test -z "${USE_NLS_TRUE}" && test -z "${USE_NLS_FALSE}"; then as_fn_error $? "conditional \"USE_NLS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -20768,7 +20990,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by shadow $as_me 4.15.1, which was +This file was extended by shadow $as_me 4.15.2, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -20837,7 +21059,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -shadow config.status 4.15.1 +shadow config.status 4.15.2 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" @@ -21000,6 +21222,7 @@ lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_q lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' +FILECMD='`$ECHO "$FILECMD" | $SED "$delay_single_quote_subst"`' OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' @@ -21008,6 +21231,7 @@ want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' +lt_ar_flags='`$ECHO "$lt_ar_flags" | $SED "$delay_single_quote_subst"`' AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' @@ -21128,6 +21352,7 @@ LN_S \ lt_SP2NL \ lt_NL2SP \ reload_flag \ +FILECMD \ OBJDUMP \ deplibs_check_method \ file_magic_cmd \ @@ -21136,7 +21361,6 @@ want_nocaseglob \ DLLTOOL \ sharedlib_from_linklib_cmd \ AR \ -AR_FLAGS \ archiver_list_spec \ STRIP \ RANLIB \ @@ -22119,6 +22343,9 @@ to_host_file_cmd=$lt_cv_to_host_file_cmd # convert \$build files to toolchain format. to_tool_file_cmd=$lt_cv_to_tool_file_cmd +# A file(cmd) program that detects file types. +FILECMD=$lt_FILECMD + # An object symbol dumper. OBJDUMP=$lt_OBJDUMP @@ -22143,8 +22370,11 @@ sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd # The archiver. AR=$lt_AR +# Flags to create an archive (by configure). +lt_ar_flags=$lt_ar_flags + # Flags to create an archive. -AR_FLAGS=$lt_AR_FLAGS +AR_FLAGS=\${ARFLAGS-"\$lt_ar_flags"} # How to feed a file listing to the archiver. archiver_list_spec=$lt_archiver_list_spec @@ -22520,7 +22750,7 @@ ltmain=$ac_aux_dir/ltmain.sh # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? - sed '$q' "$ltmain" >> "$cfgfile" \ + $SED '$q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || diff --git a/configure.ac b/configure.ac index 9a6103d4..789c2c2e 100644 --- a/configure.ac +++ b/configure.ac @@ -4,9 +4,9 @@ m4_define([libsubid_abi_major], 4) m4_define([libsubid_abi_minor], 0) m4_define([libsubid_abi_micro], 0) m4_define([libsubid_abi], [libsubid_abi_major.libsubid_abi_minor.libsubid_abi_micro]) -AC_INIT([shadow], [4.15.1], [pkg-shadow-devel@lists.alioth.debian.org], [], +AC_INIT([shadow], [4.15.2], [pkg-shadow-devel@lists.alioth.debian.org], [], [https://github.com/shadow-maint/shadow]) -AM_INIT_AUTOMAKE([1.11 foreign dist-xz subdir-objects]) +AM_INIT_AUTOMAKE([1.11 foreign dist-xz subdir-objects tar-pax]) AC_CONFIG_MACRO_DIRS([m4]) AM_SILENT_RULES([yes]) AC_CONFIG_HEADERS([config.h]) @@ -274,6 +274,7 @@ AC_DEFINE_UNQUOTED(GROUP_NAME_MAX_LENGTH, $with_group_name_max_length, [max grou AC_SUBST(GROUP_NAME_MAX_LENGTH) GROUP_NAME_MAX_LENGTH="$with_group_name_max_length" + AM_CONDITIONAL(USE_SHA_CRYPT, test "x$with_sha_crypt" = "xyes") if test "$with_sha_crypt" = "yes"; then AC_DEFINE(USE_SHA_CRYPT, 1, [Define to allow the SHA256 and SHA512 password encryption algorithms]) @@ -310,6 +311,10 @@ dnl needed (Linux glibc, Irix), but still link it if needed (Solaris). AC_SEARCH_LIBS(gethostbyname, nsl) +PKG_CHECK_MODULES([CMOCKA], [cmocka], [have_cmocka="yes"], + [AC_MSG_WARN([libcmocka not found, cmocka tests will not be built])]) +AM_CONDITIONAL([HAVE_CMOCKA], [test x$have_cmocka = xyes]) + AC_CHECK_LIB([econf],[econf_readDirs],[LIBECONF="-leconf"],[LIBECONF=""]) if test -n "$LIBECONF"; then AC_DEFINE_UNQUOTED([VENDORDIR], ["$enable_vendordir"], @@ -701,10 +706,6 @@ if test "$with_skey" = "yes"; then ]])],[AC_DEFINE(SKEY_BSD_STYLE, 1, [Define to support newer BSD S/Key API])],[]) fi -PKG_CHECK_MODULES([CMOCKA], [cmocka], [have_cmocka="yes"], - [AC_MSG_WARN([libcmocka not found, cmocka tests will not be built])]) -AM_CONDITIONAL([HAVE_CMOCKA], [test x$have_cmocka = xyes]) - AC_CHECK_FUNC(fgetpwent_r, [AC_DEFINE(HAVE_FGETPWENT_R, 1, [Defined to 1 if you have the declaration of 'fgetpwent_r'])]) AC_DEFINE_UNQUOTED(SHELL, ["$SHELL"], [The default shell.]) diff --git a/contrib/Makefile.in b/contrib/Makefile.in index ad2d07a3..44fa7cb2 100644 --- a/contrib/Makefile.in +++ b/contrib/Makefile.in @@ -161,6 +161,7 @@ EGREP = @EGREP@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ +FILECMD = @FILECMD@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ diff --git a/doc/Makefile.in b/doc/Makefile.in index 0eef0de1..49441a18 100644 --- a/doc/Makefile.in +++ b/doc/Makefile.in @@ -161,6 +161,7 @@ EGREP = @EGREP@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ +FILECMD = @FILECMD@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ diff --git a/etc/Makefile.in b/etc/Makefile.in index 8c9751d9..634d2fa8 100644 --- a/etc/Makefile.in +++ b/etc/Makefile.in @@ -250,6 +250,7 @@ EGREP = @EGREP@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ +FILECMD = @FILECMD@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ diff --git a/etc/pam.d/Makefile.in b/etc/pam.d/Makefile.in index a8393250..556d16b8 100644 --- a/etc/pam.d/Makefile.in +++ b/etc/pam.d/Makefile.in @@ -193,6 +193,7 @@ EGREP = @EGREP@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ +FILECMD = @FILECMD@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ diff --git a/etc/shadow-maint/Makefile.in b/etc/shadow-maint/Makefile.in index ab46b8c6..7b7dc79d 100644 --- a/etc/shadow-maint/Makefile.in +++ b/etc/shadow-maint/Makefile.in @@ -158,6 +158,7 @@ EGREP = @EGREP@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ +FILECMD = @FILECMD@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ diff --git a/lib/Makefile.am b/lib/Makefile.am index 0aa9d5ec..22abb978 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -31,6 +31,10 @@ libshadow_la_SOURCES = \ agetpass.h \ alloc.c \ alloc.h \ + atoi/a2i.c \ + atoi/a2i.h \ + atoi/str2i.c \ + atoi/str2i.h \ atoi/strtoi.c \ atoi/strtoi.h \ atoi/strtou_noneg.c \ @@ -74,11 +78,9 @@ libshadow_la_SOURCES = \ getdate.y \ getdef.c \ getdef.h \ - getlong.c \ getgr_nam_gid.c \ getrange.c \ gettime.c \ - getulong.c \ groupio.c \ groupmem.c \ groupio.h \ diff --git a/lib/Makefile.in b/lib/Makefile.in index dbcd3394..1b4f0fe3 100644 --- a/lib/Makefile.in +++ b/lib/Makefile.in @@ -122,38 +122,39 @@ LTLIBRARIES = $(noinst_LTLIBRARIES) am__DEPENDENCIES_1 = libshadow_la_DEPENDENCIES = $(am__DEPENDENCIES_1) am__libshadow_la_SOURCES_DIST = addgrps.c adds.c adds.h age.c \ - agetpass.c agetpass.h alloc.c alloc.h atoi/strtoi.c \ - atoi/strtoi.h atoi/strtou_noneg.c atoi/strtou_noneg.h attr.h \ - audit_help.c basename.c bit.c bit.h cast.h chkname.c chkname.h \ - chowndir.c chowntty.c cleanup.c cleanup_group.c cleanup_user.c \ - commonio.c commonio.h console.c copydir.c csrand.c defines.h \ - encrypt.c env.c exitcodes.h faillog.h failure.c failure.h fd.c \ - fields.c find_new_gid.c find_new_uid.c find_new_sub_gids.c \ + agetpass.c agetpass.h alloc.c alloc.h atoi/a2i.c atoi/a2i.h \ + atoi/str2i.c atoi/str2i.h atoi/strtoi.c atoi/strtoi.h \ + atoi/strtou_noneg.c atoi/strtou_noneg.h attr.h audit_help.c \ + basename.c bit.c bit.h cast.h chkname.c chkname.h chowndir.c \ + chowntty.c cleanup.c cleanup_group.c cleanup_user.c commonio.c \ + commonio.h console.c copydir.c csrand.c defines.h encrypt.c \ + env.c exitcodes.h faillog.h failure.c failure.h fd.c fields.c \ + find_new_gid.c find_new_uid.c find_new_sub_gids.c \ find_new_sub_uids.c fputsx.c get_gid.c get_pid.c get_uid.c \ - getdate.h getdate.y getdef.c getdef.h getlong.c \ - getgr_nam_gid.c getrange.c gettime.c getulong.c groupio.c \ - groupmem.c groupio.h gshadow.c hushed.c idmapping.h \ - idmapping.c isexpired.c limits.c list.c lockpw.c loginprompt.c \ - mail.c memzero.c memzero.h motd.c must_be.h myname.c nss.c \ - nscd.c nscd.h obscure.c pam_defs.h pam_pass.c \ - pam_pass_non_interactive.c port.c port.h prefix_flag.c \ - prototypes.h pwauth.c pwauth.h pwio.c pwio.h pwd_init.c \ - pwd2spwd.c pwdcheck.c pwmem.c remove_tree.c rlogin.c \ - root_flag.c run_part.h run_part.c salt.c selinux.c semanage.c \ - setugid.c setupenv.c sgetgrent.c sgetpwent.c sgetspent.c \ - sgroupio.c sgroupio.h shadow.c shadowio.c shadowio.h \ - shadowlog.c shadowlog.h shadowlog_internal.h shadowmem.c \ - shell.c sizeof.h spawn.c sssd.c sssd.h string/sprintf.c \ - string/sprintf.h string/stpecpy.c string/stpecpy.h \ - string/stpeprintf.c string/stpeprintf.h string/strftime.c \ - string/strftime.h string/strncpy.h string/strtcpy.c \ - string/strtcpy.h string/zustr2stp.h strtoday.c sub.c \ - subordinateio.h subordinateio.c sulog.c time/day_to_str.c \ - time/day_to_str.h ttytype.c tz.c ulimit.c user_busy.c valid.c \ - write_full.c xgetpwnam.c xprefix_getpwnam.c xgetpwuid.c \ - xgetgrnam.c xgetgrgid.c xgetspnam.c yesno.c tcbfuncs.c \ - tcbfuncs.h btrfs.c log.c logind.c utmp.c freezero.h freezero.c \ - readpassphrase.h readpassphrase.c + getdate.h getdate.y getdef.c getdef.h getgr_nam_gid.c \ + getrange.c gettime.c groupio.c groupmem.c groupio.h gshadow.c \ + hushed.c idmapping.h idmapping.c isexpired.c limits.c list.c \ + lockpw.c loginprompt.c mail.c memzero.c memzero.h motd.c \ + must_be.h myname.c nss.c nscd.c nscd.h obscure.c pam_defs.h \ + pam_pass.c pam_pass_non_interactive.c port.c port.h \ + prefix_flag.c prototypes.h pwauth.c pwauth.h pwio.c pwio.h \ + pwd_init.c pwd2spwd.c pwdcheck.c pwmem.c remove_tree.c \ + rlogin.c root_flag.c run_part.h run_part.c salt.c selinux.c \ + semanage.c setugid.c setupenv.c sgetgrent.c sgetpwent.c \ + sgetspent.c sgroupio.c sgroupio.h shadow.c shadowio.c \ + shadowio.h shadowlog.c shadowlog.h shadowlog_internal.h \ + shadowmem.c shell.c sizeof.h spawn.c sssd.c sssd.h \ + string/sprintf.c string/sprintf.h string/stpecpy.c \ + string/stpecpy.h string/stpeprintf.c string/stpeprintf.h \ + string/strftime.c string/strftime.h string/strncpy.h \ + string/strtcpy.c string/strtcpy.h string/zustr2stp.h \ + strtoday.c sub.c subordinateio.h subordinateio.c sulog.c \ + time/day_to_str.c time/day_to_str.h ttytype.c tz.c ulimit.c \ + user_busy.c valid.c write_full.c xgetpwnam.c \ + xprefix_getpwnam.c xgetpwuid.c xgetgrnam.c xgetgrgid.c \ + xgetspnam.c yesno.c tcbfuncs.c tcbfuncs.h btrfs.c log.c \ + logind.c utmp.c freezero.h freezero.c readpassphrase.h \ + readpassphrase.c am__dirstamp = $(am__leading_dot)dirstamp @WITH_TCB_TRUE@am__objects_1 = libshadow_la-tcbfuncs.lo @WITH_BTRFS_TRUE@am__objects_2 = libshadow_la-btrfs.lo @@ -164,7 +165,8 @@ am__dirstamp = $(am__leading_dot)dirstamp @WITH_LIBBSD_FALSE@ libshadow_la-readpassphrase.lo am_libshadow_la_OBJECTS = libshadow_la-addgrps.lo libshadow_la-adds.lo \ libshadow_la-age.lo libshadow_la-agetpass.lo \ - libshadow_la-alloc.lo atoi/libshadow_la-strtoi.lo \ + libshadow_la-alloc.lo atoi/libshadow_la-a2i.lo \ + atoi/libshadow_la-str2i.lo atoi/libshadow_la-strtoi.lo \ atoi/libshadow_la-strtou_noneg.lo libshadow_la-audit_help.lo \ libshadow_la-basename.lo libshadow_la-bit.lo \ libshadow_la-chkname.lo libshadow_la-chowndir.lo \ @@ -179,9 +181,8 @@ am_libshadow_la_OBJECTS = libshadow_la-addgrps.lo libshadow_la-adds.lo \ libshadow_la-find_new_sub_uids.lo libshadow_la-fputsx.lo \ libshadow_la-get_gid.lo libshadow_la-get_pid.lo \ libshadow_la-get_uid.lo libshadow_la-getdate.lo \ - libshadow_la-getdef.lo libshadow_la-getlong.lo \ - libshadow_la-getgr_nam_gid.lo libshadow_la-getrange.lo \ - libshadow_la-gettime.lo libshadow_la-getulong.lo \ + libshadow_la-getdef.lo libshadow_la-getgr_nam_gid.lo \ + libshadow_la-getrange.lo libshadow_la-gettime.lo \ libshadow_la-groupio.lo libshadow_la-groupmem.lo \ libshadow_la-gshadow.lo libshadow_la-hushed.lo \ libshadow_la-idmapping.lo libshadow_la-isexpired.lo \ @@ -279,10 +280,8 @@ am__depfiles_remade = ./$(DEPDIR)/libshadow_la-addgrps.Plo \ ./$(DEPDIR)/libshadow_la-getdate.Plo \ ./$(DEPDIR)/libshadow_la-getdef.Plo \ ./$(DEPDIR)/libshadow_la-getgr_nam_gid.Plo \ - ./$(DEPDIR)/libshadow_la-getlong.Plo \ ./$(DEPDIR)/libshadow_la-getrange.Plo \ ./$(DEPDIR)/libshadow_la-gettime.Plo \ - ./$(DEPDIR)/libshadow_la-getulong.Plo \ ./$(DEPDIR)/libshadow_la-groupio.Plo \ ./$(DEPDIR)/libshadow_la-groupmem.Plo \ ./$(DEPDIR)/libshadow_la-gshadow.Plo \ @@ -352,6 +351,8 @@ am__depfiles_remade = ./$(DEPDIR)/libshadow_la-addgrps.Plo \ ./$(DEPDIR)/libshadow_la-xgetspnam.Plo \ ./$(DEPDIR)/libshadow_la-xprefix_getpwnam.Plo \ ./$(DEPDIR)/libshadow_la-yesno.Plo \ + atoi/$(DEPDIR)/libshadow_la-a2i.Plo \ + atoi/$(DEPDIR)/libshadow_la-str2i.Plo \ atoi/$(DEPDIR)/libshadow_la-strtoi.Plo \ atoi/$(DEPDIR)/libshadow_la-strtou_noneg.Plo \ string/$(DEPDIR)/libshadow_la-sprintf.Plo \ @@ -448,6 +449,7 @@ EGREP = @EGREP@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ +FILECMD = @FILECMD@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ @@ -604,17 +606,17 @@ libshadow_la_CPPFLAGS = $(ECONF_CPPFLAGS) $(am__append_1) \ libshadow_la_CFLAGS = $(LIBBSD_CFLAGS) $(LIBCRYPT_PAM) $(LIBSYSTEMD) libshadow_la_LIBADD = $(LIBADD_DLOPEN) libshadow_la_SOURCES = addgrps.c adds.c adds.h age.c agetpass.c \ - agetpass.h alloc.c alloc.h atoi/strtoi.c atoi/strtoi.h \ - atoi/strtou_noneg.c atoi/strtou_noneg.h attr.h audit_help.c \ - basename.c bit.c bit.h cast.h chkname.c chkname.h chowndir.c \ - chowntty.c cleanup.c cleanup_group.c cleanup_user.c commonio.c \ - commonio.h console.c copydir.c csrand.c defines.h encrypt.c \ - env.c exitcodes.h faillog.h failure.c failure.h fd.c fields.c \ - find_new_gid.c find_new_uid.c find_new_sub_gids.c \ - find_new_sub_uids.c fputsx.c get_gid.c get_pid.c get_uid.c \ - getdate.h getdate.y getdef.c getdef.h getlong.c \ - getgr_nam_gid.c getrange.c gettime.c getulong.c groupio.c \ - groupmem.c groupio.h gshadow.c hushed.c idmapping.h \ + agetpass.h alloc.c alloc.h atoi/a2i.c atoi/a2i.h atoi/str2i.c \ + atoi/str2i.h atoi/strtoi.c atoi/strtoi.h atoi/strtou_noneg.c \ + atoi/strtou_noneg.h attr.h audit_help.c basename.c bit.c bit.h \ + cast.h chkname.c chkname.h chowndir.c chowntty.c cleanup.c \ + cleanup_group.c cleanup_user.c commonio.c commonio.h console.c \ + copydir.c csrand.c defines.h encrypt.c env.c exitcodes.h \ + faillog.h failure.c failure.h fd.c fields.c find_new_gid.c \ + find_new_uid.c find_new_sub_gids.c find_new_sub_uids.c \ + fputsx.c get_gid.c get_pid.c get_uid.c getdate.h getdate.y \ + getdef.c getdef.h getgr_nam_gid.c getrange.c gettime.c \ + groupio.c groupmem.c groupio.h gshadow.c hushed.c idmapping.h \ idmapping.c isexpired.c limits.c list.c lockpw.c loginprompt.c \ mail.c memzero.c memzero.h motd.c must_be.h myname.c nss.c \ nscd.c nscd.h obscure.c pam_defs.h pam_pass.c \ @@ -696,6 +698,10 @@ atoi/$(am__dirstamp): atoi/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) atoi/$(DEPDIR) @: > atoi/$(DEPDIR)/$(am__dirstamp) +atoi/libshadow_la-a2i.lo: atoi/$(am__dirstamp) \ + atoi/$(DEPDIR)/$(am__dirstamp) +atoi/libshadow_la-str2i.lo: atoi/$(am__dirstamp) \ + atoi/$(DEPDIR)/$(am__dirstamp) atoi/libshadow_la-strtoi.lo: atoi/$(am__dirstamp) \ atoi/$(DEPDIR)/$(am__dirstamp) atoi/libshadow_la-strtou_noneg.lo: atoi/$(am__dirstamp) \ @@ -776,10 +782,8 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libshadow_la-getdate.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libshadow_la-getdef.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libshadow_la-getgr_nam_gid.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libshadow_la-getlong.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libshadow_la-getrange.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libshadow_la-gettime.Plo@am__quote@ # am--include-marker -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libshadow_la-getulong.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libshadow_la-groupio.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libshadow_la-groupmem.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libshadow_la-gshadow.Plo@am__quote@ # am--include-marker @@ -849,6 +853,8 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libshadow_la-xgetspnam.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libshadow_la-xprefix_getpwnam.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libshadow_la-yesno.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@atoi/$(DEPDIR)/libshadow_la-a2i.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@atoi/$(DEPDIR)/libshadow_la-str2i.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@atoi/$(DEPDIR)/libshadow_la-strtoi.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@atoi/$(DEPDIR)/libshadow_la-strtou_noneg.Plo@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@string/$(DEPDIR)/libshadow_la-sprintf.Plo@am__quote@ # am--include-marker @@ -923,6 +929,20 @@ libshadow_la-alloc.lo: alloc.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libshadow_la_CPPFLAGS) $(CPPFLAGS) $(libshadow_la_CFLAGS) $(CFLAGS) -c -o libshadow_la-alloc.lo `test -f 'alloc.c' || echo '$(srcdir)/'`alloc.c +atoi/libshadow_la-a2i.lo: atoi/a2i.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libshadow_la_CPPFLAGS) $(CPPFLAGS) $(libshadow_la_CFLAGS) $(CFLAGS) -MT atoi/libshadow_la-a2i.lo -MD -MP -MF atoi/$(DEPDIR)/libshadow_la-a2i.Tpo -c -o atoi/libshadow_la-a2i.lo `test -f 'atoi/a2i.c' || echo '$(srcdir)/'`atoi/a2i.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) atoi/$(DEPDIR)/libshadow_la-a2i.Tpo atoi/$(DEPDIR)/libshadow_la-a2i.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='atoi/a2i.c' object='atoi/libshadow_la-a2i.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libshadow_la_CPPFLAGS) $(CPPFLAGS) $(libshadow_la_CFLAGS) $(CFLAGS) -c -o atoi/libshadow_la-a2i.lo `test -f 'atoi/a2i.c' || echo '$(srcdir)/'`atoi/a2i.c + +atoi/libshadow_la-str2i.lo: atoi/str2i.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libshadow_la_CPPFLAGS) $(CPPFLAGS) $(libshadow_la_CFLAGS) $(CFLAGS) -MT atoi/libshadow_la-str2i.lo -MD -MP -MF atoi/$(DEPDIR)/libshadow_la-str2i.Tpo -c -o atoi/libshadow_la-str2i.lo `test -f 'atoi/str2i.c' || echo '$(srcdir)/'`atoi/str2i.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) atoi/$(DEPDIR)/libshadow_la-str2i.Tpo atoi/$(DEPDIR)/libshadow_la-str2i.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='atoi/str2i.c' object='atoi/libshadow_la-str2i.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libshadow_la_CPPFLAGS) $(CPPFLAGS) $(libshadow_la_CFLAGS) $(CFLAGS) -c -o atoi/libshadow_la-str2i.lo `test -f 'atoi/str2i.c' || echo '$(srcdir)/'`atoi/str2i.c + atoi/libshadow_la-strtoi.lo: atoi/strtoi.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libshadow_la_CPPFLAGS) $(CPPFLAGS) $(libshadow_la_CFLAGS) $(CFLAGS) -MT atoi/libshadow_la-strtoi.lo -MD -MP -MF atoi/$(DEPDIR)/libshadow_la-strtoi.Tpo -c -o atoi/libshadow_la-strtoi.lo `test -f 'atoi/strtoi.c' || echo '$(srcdir)/'`atoi/strtoi.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) atoi/$(DEPDIR)/libshadow_la-strtoi.Tpo atoi/$(DEPDIR)/libshadow_la-strtoi.Plo @@ -1133,13 +1153,6 @@ libshadow_la-getdef.lo: getdef.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libshadow_la_CPPFLAGS) $(CPPFLAGS) $(libshadow_la_CFLAGS) $(CFLAGS) -c -o libshadow_la-getdef.lo `test -f 'getdef.c' || echo '$(srcdir)/'`getdef.c -libshadow_la-getlong.lo: getlong.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libshadow_la_CPPFLAGS) $(CPPFLAGS) $(libshadow_la_CFLAGS) $(CFLAGS) -MT libshadow_la-getlong.lo -MD -MP -MF $(DEPDIR)/libshadow_la-getlong.Tpo -c -o libshadow_la-getlong.lo `test -f 'getlong.c' || echo '$(srcdir)/'`getlong.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libshadow_la-getlong.Tpo $(DEPDIR)/libshadow_la-getlong.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='getlong.c' object='libshadow_la-getlong.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libshadow_la_CPPFLAGS) $(CPPFLAGS) $(libshadow_la_CFLAGS) $(CFLAGS) -c -o libshadow_la-getlong.lo `test -f 'getlong.c' || echo '$(srcdir)/'`getlong.c - libshadow_la-getgr_nam_gid.lo: getgr_nam_gid.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libshadow_la_CPPFLAGS) $(CPPFLAGS) $(libshadow_la_CFLAGS) $(CFLAGS) -MT libshadow_la-getgr_nam_gid.lo -MD -MP -MF $(DEPDIR)/libshadow_la-getgr_nam_gid.Tpo -c -o libshadow_la-getgr_nam_gid.lo `test -f 'getgr_nam_gid.c' || echo '$(srcdir)/'`getgr_nam_gid.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libshadow_la-getgr_nam_gid.Tpo $(DEPDIR)/libshadow_la-getgr_nam_gid.Plo @@ -1161,13 +1174,6 @@ libshadow_la-gettime.lo: gettime.c @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libshadow_la_CPPFLAGS) $(CPPFLAGS) $(libshadow_la_CFLAGS) $(CFLAGS) -c -o libshadow_la-gettime.lo `test -f 'gettime.c' || echo '$(srcdir)/'`gettime.c -libshadow_la-getulong.lo: getulong.c -@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libshadow_la_CPPFLAGS) $(CPPFLAGS) $(libshadow_la_CFLAGS) $(CFLAGS) -MT libshadow_la-getulong.lo -MD -MP -MF $(DEPDIR)/libshadow_la-getulong.Tpo -c -o libshadow_la-getulong.lo `test -f 'getulong.c' || echo '$(srcdir)/'`getulong.c -@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libshadow_la-getulong.Tpo $(DEPDIR)/libshadow_la-getulong.Plo -@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='getulong.c' object='libshadow_la-getulong.lo' libtool=yes @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libshadow_la_CPPFLAGS) $(CPPFLAGS) $(libshadow_la_CFLAGS) $(CFLAGS) -c -o libshadow_la-getulong.lo `test -f 'getulong.c' || echo '$(srcdir)/'`getulong.c - libshadow_la-groupio.lo: groupio.c @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libshadow_la_CPPFLAGS) $(CPPFLAGS) $(libshadow_la_CFLAGS) $(CFLAGS) -MT libshadow_la-groupio.lo -MD -MP -MF $(DEPDIR)/libshadow_la-groupio.Tpo -c -o libshadow_la-groupio.lo `test -f 'groupio.c' || echo '$(srcdir)/'`groupio.c @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libshadow_la-groupio.Tpo $(DEPDIR)/libshadow_la-groupio.Plo @@ -1886,10 +1892,8 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/libshadow_la-getdate.Plo -rm -f ./$(DEPDIR)/libshadow_la-getdef.Plo -rm -f ./$(DEPDIR)/libshadow_la-getgr_nam_gid.Plo - -rm -f ./$(DEPDIR)/libshadow_la-getlong.Plo -rm -f ./$(DEPDIR)/libshadow_la-getrange.Plo -rm -f ./$(DEPDIR)/libshadow_la-gettime.Plo - -rm -f ./$(DEPDIR)/libshadow_la-getulong.Plo -rm -f ./$(DEPDIR)/libshadow_la-groupio.Plo -rm -f ./$(DEPDIR)/libshadow_la-groupmem.Plo -rm -f ./$(DEPDIR)/libshadow_la-gshadow.Plo @@ -1959,6 +1963,8 @@ distclean: distclean-am -rm -f ./$(DEPDIR)/libshadow_la-xgetspnam.Plo -rm -f ./$(DEPDIR)/libshadow_la-xprefix_getpwnam.Plo -rm -f ./$(DEPDIR)/libshadow_la-yesno.Plo + -rm -f atoi/$(DEPDIR)/libshadow_la-a2i.Plo + -rm -f atoi/$(DEPDIR)/libshadow_la-str2i.Plo -rm -f atoi/$(DEPDIR)/libshadow_la-strtoi.Plo -rm -f atoi/$(DEPDIR)/libshadow_la-strtou_noneg.Plo -rm -f string/$(DEPDIR)/libshadow_la-sprintf.Plo @@ -2048,10 +2054,8 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/libshadow_la-getdate.Plo -rm -f ./$(DEPDIR)/libshadow_la-getdef.Plo -rm -f ./$(DEPDIR)/libshadow_la-getgr_nam_gid.Plo - -rm -f ./$(DEPDIR)/libshadow_la-getlong.Plo -rm -f ./$(DEPDIR)/libshadow_la-getrange.Plo -rm -f ./$(DEPDIR)/libshadow_la-gettime.Plo - -rm -f ./$(DEPDIR)/libshadow_la-getulong.Plo -rm -f ./$(DEPDIR)/libshadow_la-groupio.Plo -rm -f ./$(DEPDIR)/libshadow_la-groupmem.Plo -rm -f ./$(DEPDIR)/libshadow_la-gshadow.Plo @@ -2121,6 +2125,8 @@ maintainer-clean: maintainer-clean-am -rm -f ./$(DEPDIR)/libshadow_la-xgetspnam.Plo -rm -f ./$(DEPDIR)/libshadow_la-xprefix_getpwnam.Plo -rm -f ./$(DEPDIR)/libshadow_la-yesno.Plo + -rm -f atoi/$(DEPDIR)/libshadow_la-a2i.Plo + -rm -f atoi/$(DEPDIR)/libshadow_la-str2i.Plo -rm -f atoi/$(DEPDIR)/libshadow_la-strtoi.Plo -rm -f atoi/$(DEPDIR)/libshadow_la-strtou_noneg.Plo -rm -f string/$(DEPDIR)/libshadow_la-sprintf.Plo diff --git a/lib/alloc.h b/lib/alloc.h index 0e048849..39405a56 100644 --- a/lib/alloc.h +++ b/lib/alloc.h @@ -1,8 +1,5 @@ -/* - * SPDX-FileCopyrightText: 2023, Alejandro Colomar - * - * SPDX-License-Identifier: BSD-3-Clause - */ +// SPDX-FileCopyrightText: 2023-2024, Alejandro Colomar +// SPDX-License-Identifier: BSD-3-Clause #ifndef SHADOW_INCLUDE_LIB_MALLOC_H_ @@ -27,31 +24,19 @@ #define XMALLOC(n, type) ((type *) xmallocarray(n, sizeof(type))) #define REALLOC(ptr, n, type) \ -({ \ - __auto_type p_ = (ptr); \ - \ - static_assert(__builtin_types_compatible_p(typeof(p_), type *), ""); \ - \ - (type *) reallocarray(p_, n, sizeof(type)); \ -}) +( \ + _Generic(ptr, type *: (type *) reallocarray(ptr, n, sizeof(type))) \ +) #define REALLOCF(ptr, n, type) \ -({ \ - __auto_type p_ = (ptr); \ - \ - static_assert(__builtin_types_compatible_p(typeof(p_), type *), ""); \ - \ - (type *) reallocarrayf(p_, n, sizeof(type)); \ -}) +( \ + _Generic(ptr, type *: (type *) reallocarrayf(ptr, n, sizeof(type))) \ +) #define XREALLOC(ptr, n, type) \ -({ \ - __auto_type p_ = (ptr); \ - \ - static_assert(__builtin_types_compatible_p(typeof(p_), type *), ""); \ - \ - (type *) xreallocarray(p_, n, sizeof(type)); \ -}) +( \ + _Generic(ptr, type *: (type *) xreallocarray(ptr, n, sizeof(type))) \ +) ATTR_MALLOC(free) diff --git a/lib/atoi/a2i.c b/lib/atoi/a2i.c new file mode 100644 index 00000000..a2cf8723 --- /dev/null +++ b/lib/atoi/a2i.c @@ -0,0 +1,46 @@ +// SPDX-FileCopyrightText: 2023-2024, Alejandro Colomar +// SPDX-License-Identifier: BSD-3-Clause + + +#include + +#include "atoi/a2i.h" + + +extern inline int a2sh_c(short *restrict n, const char *s, + const char **restrict endp, int base, short min, short max); +extern inline int a2si_c(int *restrict n, const char *s, + const char **restrict endp, int base, int min, int max); +extern inline int a2sl_c(long *restrict n, const char *s, + const char **restrict endp, int base, long min, long max); +extern inline int a2sll_c(long long *restrict n, const char *s, + const char **restrict endp, int base, long long min, long long max); +extern inline int a2uh_c(unsigned short *restrict n, const char *s, + const char **restrict endp, int base, unsigned short min, + unsigned short max); +extern inline int a2ui_c(unsigned int *restrict n, const char *s, + const char **restrict endp, int base, unsigned int min, unsigned int max); +extern inline int a2ul_c(unsigned long *restrict n, const char *s, + const char **restrict endp, int base, unsigned long min, unsigned long max); +extern inline int a2ull_c(unsigned long long *restrict n, const char *s, + const char **restrict endp, int base, unsigned long long min, + unsigned long long max); + + +extern inline int a2sh_nc(short *restrict n, char *s, + char **restrict endp, int base, short min, short max); +extern inline int a2si_nc(int *restrict n, char *s, + char **restrict endp, int base, int min, int max); +extern inline int a2sl_nc(long *restrict n, char *s, + char **restrict endp, int base, long min, long max); +extern inline int a2sll_nc(long long *restrict n, char *s, + char **restrict endp, int base, long long min, long long max); +extern inline int a2uh_nc(unsigned short *restrict n, char *s, + char **restrict endp, int base, unsigned short min, unsigned short max); +extern inline int a2ui_nc(unsigned int *restrict n, char *s, + char **restrict endp, int base, unsigned int min, unsigned int max); +extern inline int a2ul_nc(unsigned long *restrict n, char *s, + char **restrict endp, int base, unsigned long min, unsigned long max); +extern inline int a2ull_nc(unsigned long long *restrict n, char *s, + char **restrict endp, int base, unsigned long long min, + unsigned long long max); diff --git a/lib/atoi/a2i.h b/lib/atoi/a2i.h new file mode 100644 index 00000000..64f775a9 --- /dev/null +++ b/lib/atoi/a2i.h @@ -0,0 +1,386 @@ +// SPDX-FileCopyrightText: 2023-2024, Alejandro Colomar +// SPDX-License-Identifier: BSD-3-Clause + + +#ifndef SHADOW_INCLUDE_LIB_ATOI_A2I_H_ +#define SHADOW_INCLUDE_LIB_ATOI_A2I_H_ + + +#include + +#include + +#include "atoi/strtoi.h" +#include "atoi/strtou_noneg.h" +#include "attr.h" + + +/* + * See the manual of these macros in liba2i's documentation: + * + */ + + +#define a2i(TYPE, n, s, ...) \ +( \ + _Generic((void (*)(TYPE, typeof(s))) 0, \ + void (*)(short, const char *): a2sh_c, \ + void (*)(short, const void *): a2sh_c, \ + void (*)(short, char *): a2sh_nc, \ + void (*)(short, void *): a2sh_nc, \ + void (*)(int, const char *): a2si_c, \ + void (*)(int, const void *): a2si_c, \ + void (*)(int, char *): a2si_nc, \ + void (*)(int, void *): a2si_nc, \ + void (*)(long, const char *): a2sl_c, \ + void (*)(long, const void *): a2sl_c, \ + void (*)(long, char *): a2sl_nc, \ + void (*)(long, void *): a2sl_nc, \ + void (*)(long long, const char *): a2sll_c, \ + void (*)(long long, const void *): a2sll_c, \ + void (*)(long long, char *): a2sll_nc, \ + void (*)(long long, void *): a2sll_nc, \ + void (*)(unsigned short, const char *): a2uh_c, \ + void (*)(unsigned short, const void *): a2uh_c, \ + void (*)(unsigned short, char *): a2uh_nc, \ + void (*)(unsigned short, void *): a2uh_nc, \ + void (*)(unsigned int, const char *): a2ui_c, \ + void (*)(unsigned int, const void *): a2ui_c, \ + void (*)(unsigned int, char *): a2ui_nc, \ + void (*)(unsigned int, void *): a2ui_nc, \ + void (*)(unsigned long, const char *): a2ul_c, \ + void (*)(unsigned long, const void *): a2ul_c, \ + void (*)(unsigned long, char *): a2ul_nc, \ + void (*)(unsigned long, void *): a2ul_nc, \ + void (*)(unsigned long long, const char *): a2ull_c, \ + void (*)(unsigned long long, const void *): a2ull_c, \ + void (*)(unsigned long long, char *): a2ull_nc, \ + void (*)(unsigned long long, void *): a2ull_nc \ + )(n, s, __VA_ARGS__) \ +) + + +#define a2sh(n, s, ...) \ +( \ + _Generic(s, \ + const char *: a2sh_c, \ + const void *: a2sh_c, \ + char *: a2sh_nc, \ + void *: a2sh_nc \ + )(n, s, __VA_ARGS__) \ +) + +#define a2si(n, s, ...) \ +( \ + _Generic(s, \ + const char *: a2si_c, \ + const void *: a2si_c, \ + char *: a2si_nc, \ + void *: a2si_nc \ + )(n, s, __VA_ARGS__) \ +) + +#define a2sl(n, s, ...) \ +( \ + _Generic(s, \ + const char *: a2sl_c, \ + const void *: a2sl_c, \ + char *: a2sl_nc, \ + void *: a2sl_nc \ + )(n, s, __VA_ARGS__) \ +) + +#define a2sll(n, s, ...) \ +( \ + _Generic(s, \ + const char *: a2sll_c, \ + const void *: a2sll_c, \ + char *: a2sll_nc, \ + void *: a2sll_nc \ + )(n, s, __VA_ARGS__) \ +) + +#define a2uh(n, s, ...) \ +( \ + _Generic(s, \ + const char *: a2uh_c, \ + const void *: a2uh_c, \ + char *: a2uh_nc, \ + void *: a2uh_nc \ + )(n, s, __VA_ARGS__) \ +) + +#define a2ui(n, s, ...) \ +( \ + _Generic(s, \ + const char *: a2ui_c, \ + const void *: a2ui_c, \ + char *: a2ui_nc, \ + void *: a2ui_nc \ + )(n, s, __VA_ARGS__) \ +) + +#define a2ul(n, s, ...) \ +( \ + _Generic(s, \ + const char *: a2ul_c, \ + const void *: a2ul_c, \ + char *: a2ul_nc, \ + void *: a2ul_nc \ + )(n, s, __VA_ARGS__) \ +) + +#define a2ull(n, s, ...) \ +( \ + _Generic(s, \ + const char *: a2ull_c, \ + const void *: a2ull_c, \ + char *: a2ull_nc, \ + void *: a2ull_nc \ + )(n, s, __VA_ARGS__) \ +) + + +ATTR_STRING(2) ATTR_ACCESS(write_only, 1) ATTR_ACCESS(write_only, 3) +inline int a2sh_c(short *restrict n, const char *s, + const char **restrict endp, int base, short min, short max); +ATTR_STRING(2) ATTR_ACCESS(write_only, 1) ATTR_ACCESS(write_only, 3) +inline int a2si_c(int *restrict n, const char *s, + const char **restrict endp, int base, int min, int max); +ATTR_STRING(2) ATTR_ACCESS(write_only, 1) ATTR_ACCESS(write_only, 3) +inline int a2sl_c(long *restrict n, const char *s, + const char **restrict endp, int base, long min, long max); +ATTR_STRING(2) ATTR_ACCESS(write_only, 1) ATTR_ACCESS(write_only, 3) +inline int a2sll_c(long long *restrict n, const char *s, + const char **restrict endp, int base, long long min, long long max); +ATTR_STRING(2) ATTR_ACCESS(write_only, 1) ATTR_ACCESS(write_only, 3) +inline int a2uh_c(unsigned short *restrict n, const char *s, + const char **restrict endp, int base, unsigned short min, + unsigned short max); +ATTR_STRING(2) ATTR_ACCESS(write_only, 1) ATTR_ACCESS(write_only, 3) +inline int a2ui_c(unsigned int *restrict n, const char *s, + const char **restrict endp, int base, unsigned int min, unsigned int max); +ATTR_STRING(2) ATTR_ACCESS(write_only, 1) ATTR_ACCESS(write_only, 3) +inline int a2ul_c(unsigned long *restrict n, const char *s, + const char **restrict endp, int base, unsigned long min, unsigned long max); +ATTR_STRING(2) ATTR_ACCESS(write_only, 1) ATTR_ACCESS(write_only, 3) +inline int a2ull_c(unsigned long long *restrict n, const char *s, + const char **restrict endp, int base, unsigned long long min, + unsigned long long max); + +ATTR_STRING(2) ATTR_ACCESS(write_only, 1) ATTR_ACCESS(write_only, 3) +inline int a2sh_nc(short *restrict n, char *s, + char **restrict endp, int base, short min, short max); +ATTR_STRING(2) ATTR_ACCESS(write_only, 1) ATTR_ACCESS(write_only, 3) +inline int a2si_nc(int *restrict n, char *s, + char **restrict endp, int base, int min, int max); +ATTR_STRING(2) ATTR_ACCESS(write_only, 1) ATTR_ACCESS(write_only, 3) +inline int a2sl_nc(long *restrict n, char *s, + char **restrict endp, int base, long min, long max); +ATTR_STRING(2) ATTR_ACCESS(write_only, 1) ATTR_ACCESS(write_only, 3) +inline int a2sll_nc(long long *restrict n, char *s, + char **restrict endp, int base, long long min, long long max); +ATTR_STRING(2) ATTR_ACCESS(write_only, 1) ATTR_ACCESS(write_only, 3) +inline int a2uh_nc(unsigned short *restrict n, char *s, + char **restrict endp, int base, unsigned short min, unsigned short max); +ATTR_STRING(2) ATTR_ACCESS(write_only, 1) ATTR_ACCESS(write_only, 3) +inline int a2ui_nc(unsigned int *restrict n, char *s, + char **restrict endp, int base, unsigned int min, unsigned int max); +ATTR_STRING(2) ATTR_ACCESS(write_only, 1) ATTR_ACCESS(write_only, 3) +inline int a2ul_nc(unsigned long *restrict n, char *s, + char **restrict endp, int base, unsigned long min, unsigned long max); +ATTR_STRING(2) ATTR_ACCESS(write_only, 1) ATTR_ACCESS(write_only, 3) +inline int a2ull_nc(unsigned long long *restrict n, char *s, + char **restrict endp, int base, unsigned long long min, + unsigned long long max); + + +inline int +a2sh_c(short *restrict n, const char *s, + const char **restrict endp, int base, short min, short max) +{ + return a2sh(n, (char *) s, (char **) endp, base, min, max); +} + + +inline int +a2si_c(int *restrict n, const char *s, + const char **restrict endp, int base, int min, int max) +{ + return a2si(n, (char *) s, (char **) endp, base, min, max); +} + + +inline int +a2sl_c(long *restrict n, const char *s, + const char **restrict endp, int base, long min, long max) +{ + return a2sl(n, (char *) s, (char **) endp, base, min, max); +} + + +inline int +a2sll_c(long long *restrict n, const char *s, + const char **restrict endp, int base, long long min, long long max) +{ + return a2sll(n, (char *) s, (char **) endp, base, min, max); +} + + +inline int +a2uh_c(unsigned short *restrict n, const char *s, + const char **restrict endp, int base, unsigned short min, + unsigned short max) +{ + return a2uh(n, (char *) s, (char **) endp, base, min, max); +} + + +inline int +a2ui_c(unsigned int *restrict n, const char *s, + const char **restrict endp, int base, unsigned int min, unsigned int max) +{ + return a2ui(n, (char *) s, (char **) endp, base, min, max); +} + + +inline int +a2ul_c(unsigned long *restrict n, const char *s, + const char **restrict endp, int base, unsigned long min, unsigned long max) +{ + return a2ul(n, (char *) s, (char **) endp, base, min, max); +} + + +inline int +a2ull_c(unsigned long long *restrict n, const char *s, + const char **restrict endp, int base, unsigned long long min, + unsigned long long max) +{ + return a2ull(n, (char *) s, (char **) endp, base, min, max); +} + + +inline int +a2sh_nc(short *restrict n, char *s, + char **restrict endp, int base, short min, short max) +{ + int status; + + *n = strtoi_(s, endp, base, min, max, &status); + if (status != 0) { + errno = status; + return -1; + } + return 0; +} + + +inline int +a2si_nc(int *restrict n, char *s, + char **restrict endp, int base, int min, int max) +{ + int status; + + *n = strtoi_(s, endp, base, min, max, &status); + if (status != 0) { + errno = status; + return -1; + } + return 0; +} + + +inline int +a2sl_nc(long *restrict n, char *s, + char **restrict endp, int base, long min, long max) +{ + int status; + + *n = strtoi_(s, endp, base, min, max, &status); + if (status != 0) { + errno = status; + return -1; + } + return 0; +} + + +inline int +a2sll_nc(long long *restrict n, char *s, + char **restrict endp, int base, long long min, long long max) +{ + int status; + + *n = strtoi_(s, endp, base, min, max, &status); + if (status != 0) { + errno = status; + return -1; + } + return 0; +} + + +inline int +a2uh_nc(unsigned short *restrict n, char *s, + char **restrict endp, int base, unsigned short min, + unsigned short max) +{ + int status; + + *n = strtou_noneg(s, endp, base, min, max, &status); + if (status != 0) { + errno = status; + return -1; + } + return 0; +} + + +inline int +a2ui_nc(unsigned int *restrict n, char *s, + char **restrict endp, int base, unsigned int min, unsigned int max) +{ + int status; + + *n = strtou_noneg(s, endp, base, min, max, &status); + if (status != 0) { + errno = status; + return -1; + } + return 0; +} + + +inline int +a2ul_nc(unsigned long *restrict n, char *s, + char **restrict endp, int base, unsigned long min, unsigned long max) +{ + int status; + + *n = strtou_noneg(s, endp, base, min, max, &status); + if (status != 0) { + errno = status; + return -1; + } + return 0; +} + + +inline int +a2ull_nc(unsigned long long *restrict n, char *s, + char **restrict endp, int base, unsigned long long min, + unsigned long long max) +{ + int status; + + *n = strtou_noneg(s, endp, base, min, max, &status); + if (status != 0) { + errno = status; + return -1; + } + return 0; +} + + +#endif // include guard diff --git a/lib/atoi/str2i.c b/lib/atoi/str2i.c new file mode 100644 index 00000000..25ce3609 --- /dev/null +++ b/lib/atoi/str2i.c @@ -0,0 +1,18 @@ +// SPDX-FileCopyrightText: 2007-2009, Nicolas François +// SPDX-FileCopyrightText: 2023-2024, Alejandro Colomar +// SPDX-License-Identifier: BSD-3-Clause + + +#include + +#include "atoi/str2i.h" + + +extern inline int str2sh(short *restrict n, const char *restrict s); +extern inline int str2si(int *restrict n, const char *restrict s); +extern inline int str2sl(long *restrict n, const char *restrict s); +extern inline int str2sll(long long *restrict n, const char *restrict s); +extern inline int str2uh(unsigned short *restrict n, const char *restrict s); +extern inline int str2ui(unsigned int *restrict n, const char *restrict s); +extern inline int str2ul(unsigned long *restrict n, const char *restrict s); +extern inline int str2ull(unsigned long long *restrict n, const char *restrict s); diff --git a/lib/atoi/str2i.h b/lib/atoi/str2i.h new file mode 100644 index 00000000..b3ded031 --- /dev/null +++ b/lib/atoi/str2i.h @@ -0,0 +1,108 @@ +// SPDX-FileCopyrightText: 2007-2009, Nicolas François +// SPDX-FileCopyrightText: 2023-2024, Alejandro Colomar +// SPDX-License-Identifier: BSD-3-Clause + + +#ifndef SHADOW_INCLUDE_LIB_ATOI_STR2I_H_ +#define SHADOW_INCLUDE_LIB_ATOI_STR2I_H_ + + +#include + +#include +#include + +#include "atoi/a2i.h" +#include "attr.h" + + +#define str2i(TYPE, ...) \ +( \ + _Generic((TYPE) 0, \ + short: str2sh, \ + int: str2si, \ + long: str2sl, \ + long long: str2sll, \ + unsigned short: str2uh, \ + unsigned int: str2ui, \ + unsigned long: str2ul, \ + unsigned long long: str2ull \ + )(__VA_ARGS__) \ +) + + +ATTR_STRING(2) ATTR_ACCESS(write_only, 1) +inline int str2sh(short *restrict n, const char *restrict s); +ATTR_STRING(2) ATTR_ACCESS(write_only, 1) +inline int str2si(int *restrict n, const char *restrict s); +ATTR_STRING(2) ATTR_ACCESS(write_only, 1) +inline int str2sl(long *restrict n, const char *restrict s); +ATTR_STRING(2) ATTR_ACCESS(write_only, 1) +inline int str2sll(long long *restrict n, const char *restrict s); +ATTR_STRING(2) ATTR_ACCESS(write_only, 1) +inline int str2uh(unsigned short *restrict n, const char *restrict s); +ATTR_STRING(2) ATTR_ACCESS(write_only, 1) +inline int str2ui(unsigned int *restrict n, const char *restrict s); +ATTR_STRING(2) ATTR_ACCESS(write_only, 1) +inline int str2ul(unsigned long *restrict n, const char *restrict s); +ATTR_STRING(2) ATTR_ACCESS(write_only, 1) +inline int str2ull(unsigned long long *restrict n, const char *restrict s); + + +inline int +str2sh(short *restrict n, const char *restrict s) +{ + return a2sh(n, s, NULL, 0, SHRT_MIN, SHRT_MAX); +} + + +inline int +str2si(int *restrict n, const char *restrict s) +{ + return a2si(n, s, NULL, 0, INT_MIN, INT_MAX); +} + + +inline int +str2sl(long *restrict n, const char *restrict s) +{ + return a2sl(n, s, NULL, 0, LONG_MIN, LONG_MAX); +} + + +inline int +str2sll(long long *restrict n, const char *restrict s) +{ + return a2sll(n, s, NULL, 0, LLONG_MIN, LLONG_MAX); +} + + +inline int +str2uh(unsigned short *restrict n, const char *restrict s) +{ + return a2uh(n, s, NULL, 0, 0, USHRT_MAX); +} + + +inline int +str2ui(unsigned int *restrict n, const char *restrict s) +{ + return a2ui(n, s, NULL, 0, 0, UINT_MAX); +} + + +inline int +str2ul(unsigned long *restrict n, const char *restrict s) +{ + return a2ul(n, s, NULL, 0, 0, ULONG_MAX); +} + + +inline int +str2ull(unsigned long long *restrict n, const char *restrict s) +{ + return a2ull(n, s, NULL, 0, 0, ULLONG_MAX); +} + + +#endif // include guard diff --git a/lib/atoi/strtou_noneg.c b/lib/atoi/strtou_noneg.c index ec8773d7..71cacbd1 100644 --- a/lib/atoi/strtou_noneg.c +++ b/lib/atoi/strtou_noneg.c @@ -11,8 +11,3 @@ extern inline uintmax_t strtou_noneg(const char *s, char **restrict endp, int base, uintmax_t min, uintmax_t max, int *restrict status); - -extern inline unsigned long strtoul_noneg(const char *s, - char **restrict endp, int base); -extern inline unsigned long long strtoull_noneg(const char *s, - char **restrict endp, int base); diff --git a/lib/atoi/strtou_noneg.h b/lib/atoi/strtou_noneg.h index a1d15569..6d77adf5 100644 --- a/lib/atoi/strtou_noneg.h +++ b/lib/atoi/strtou_noneg.h @@ -9,8 +9,8 @@ #include #include +#include #include -#include #include "atoi/strtoi.h" #include "attr.h" @@ -20,13 +20,6 @@ ATTR_STRING(1) ATTR_ACCESS(write_only, 2) ATTR_ACCESS(write_only, 6) inline uintmax_t strtou_noneg(const char *s, char **restrict endp, int base, uintmax_t min, uintmax_t max, int *restrict status); -ATTR_STRING(1) ATTR_ACCESS(write_only, 2) -inline unsigned long strtoul_noneg(const char *s, - char **restrict endp, int base); -ATTR_STRING(1) ATTR_ACCESS(write_only, 2) -inline unsigned long long strtoull_noneg(const char *s, - char **restrict endp, int base); - inline uintmax_t strtou_noneg(const char *s, char **restrict endp, int base, @@ -43,26 +36,4 @@ strtou_noneg(const char *s, char **restrict endp, int base, } -inline unsigned long -strtoul_noneg(const char *s, char **restrict endp, int base) -{ - if (strtol(s, endp, base) < 0) { - errno = ERANGE; - return 0; - } - return strtoul(s, endp, base); -} - - -inline unsigned long long -strtoull_noneg(const char *s, char **restrict endp, int base) -{ - if (strtol(s, endp, base) < 0) { - errno = ERANGE; - return 0; - } - return strtoull(s, endp, base); -} - - #endif // include guard diff --git a/lib/cast.h b/lib/cast.h index 9229528d..5cbbcf6d 100644 --- a/lib/cast.h +++ b/lib/cast.h @@ -8,14 +8,8 @@ #include -#include "must_be.h" - -#define const_cast(T, p) \ -({ \ - static_assert(is_same_type(typeof(&*(p)), const T), ""); \ - (T) (p); \ -}) +#define const_cast(T, p) _Generic(p, const T: (T) (p)) #endif // include guard diff --git a/lib/chkname.c b/lib/chkname.c index fbd6ba88..995562fa 100644 --- a/lib/chkname.c +++ b/lib/chkname.c @@ -5,6 +5,7 @@ // SPDX-FileCopyrightText: 2023-2024, Alejandro Colomar // SPDX-License-Identifier: BSD-3-Clause + /* * is_valid_user_name(), is_valid_group_name() - check the new user/group * name for validity; @@ -13,6 +14,7 @@ * false - bad name */ + #include #ident "$Id$" @@ -20,11 +22,31 @@ #include #include #include +#include +#include +#include + #include "defines.h" #include "chkname.h" + int allow_bad_names = false; + +size_t +login_name_max_size(void) +{ + long conf; + + errno = 0; + conf = sysconf(_SC_LOGIN_NAME_MAX); + if (conf == -1 && errno != 0) + return LOGIN_NAME_MAX; + + return conf; +} + + static bool is_valid_name (const char *name) { if (allow_bad_names) { @@ -76,18 +98,7 @@ static bool is_valid_name (const char *name) bool is_valid_user_name(const char *name) { - long conf; - size_t maxsize; - - errno = 0; - conf = sysconf(_SC_LOGIN_NAME_MAX); - - if (conf == -1 && errno != 0) - maxsize = LOGIN_NAME_MAX; - else - maxsize = conf; - - if (strlen(name) >= maxsize) + if (strlen(name) >= login_name_max_size()) return false; return is_valid_name(name); diff --git a/lib/chkname.h b/lib/chkname.h index 07713473..4306a8a2 100644 --- a/lib/chkname.h +++ b/lib/chkname.h @@ -11,6 +11,7 @@ #ifndef _CHKNAME_H_ #define _CHKNAME_H_ + /* * is_valid_user_name(), is_valid_group_name() - check the new user/group * name for validity; @@ -19,8 +20,14 @@ * false - bad name */ -#include "defines.h" +#include + +#include +#include + + +extern size_t login_name_max_size(void); extern bool is_valid_user_name (const char *name); extern bool is_valid_group_name (const char *name); diff --git a/lib/csrand.c b/lib/csrand.c index 9d6f1503..8ded343a 100644 --- a/lib/csrand.c +++ b/lib/csrand.c @@ -23,6 +23,7 @@ #include "sizeof.h" +static uint32_t csrand32(void); static uint32_t csrand_uniform32(uint32_t n); static unsigned long csrand_uniform_slow(unsigned long n); @@ -97,6 +98,13 @@ csrand_interval(unsigned long min, unsigned long max) } +static uint32_t +csrand32(void) +{ + return csrand(); +} + + /* * Fast Random Integer Generation in an Interval * ACM Transactions on Modeling and Computer Simulation 29 (1), 2019 @@ -109,12 +117,12 @@ csrand_uniform32(uint32_t n) uint64_t r, mult; if (n == 0) - return csrand(); + return csrand32(); bound = -n % n; // analogous to `2^32 % n`, since `x % y == (x-y) % y` do { - r = csrand(); + r = csrand32(); mult = r * n; rem = mult; // analogous to `mult % 2^32` } while (rem < bound); // p = (2^32 % n) / 2^32; W.C.: n=2^31+1, p=0.5 diff --git a/lib/env.c b/lib/env.c index f2d35d71..9b5fd32f 100644 --- a/lib/env.c +++ b/lib/env.c @@ -127,30 +127,18 @@ void addenv (const char *string, /*@null@*/const char *value) if ((newenvc & (NEWENVP_STEP - 1)) == 0) { bool update_environ; - char **__newenvp; - /* - * If the resize operation succeeds we can - * happily go on, else print a message. - */ update_environ = (environ == newenvp); - __newenvp = REALLOC(newenvp, newenvc + NEWENVP_STEP, char *); + newenvp = XREALLOC(newenvp, newenvc + NEWENVP_STEP, char *); - if (NULL != __newenvp) { - /* - * If this is our current environment, update - * environ so that it doesn't point to some - * free memory area (realloc() could move it). - */ - if (update_environ) - environ = __newenvp; - newenvp = __newenvp; - } else { - (void) fputs (_("Environment overflow\n"), log_get_logfd()); - newenvc--; - free (newenvp[newenvc]); - } + /* + * If this is our current environment, update + * environ so that it doesn't point to some + * free memory area (realloc() could move it). + */ + if (update_environ) + environ = newenvp; } /* diff --git a/lib/get_gid.c b/lib/get_gid.c index 2c5030be..2420137b 100644 --- a/lib/get_gid.c +++ b/lib/get_gid.c @@ -16,13 +16,13 @@ int get_gid(const char *gidstr, gid_t *gid) { + char *end; long long val; - char *endptr; errno = 0; - val = strtoll(gidstr, &endptr, 10); + val = strtoll(gidstr, &end, 10); if ( ('\0' == *gidstr) - || ('\0' != *endptr) + || ('\0' != *end) || (0 != errno) || (/*@+longintegral@*/val != (gid_t)val)/*@=longintegral@*/) { return -1; diff --git a/lib/get_pid.c b/lib/get_pid.c index 61caa7aa..af3f2f8e 100644 --- a/lib/get_pid.c +++ b/lib/get_pid.c @@ -17,15 +17,16 @@ #include "string/sprintf.h" -int get_pid (const char *pidstr, pid_t *pid) +int +get_pid(const char *pidstr, pid_t *pid) { + char *end; long long val; - char *endptr; errno = 0; - val = strtoll(pidstr, &endptr, 10); + val = strtoll(pidstr, &end, 10); if ( ('\0' == *pidstr) - || ('\0' != *endptr) + || ('\0' != *end) || (0 != errno) || (val < 1) || (/*@+longintegral@*/val != (pid_t)val)/*@=longintegral@*/) { @@ -43,15 +44,15 @@ int get_pid (const char *pidstr, pid_t *pid) */ int get_pidfd_from_fd(const char *pidfdstr) { - long long val; - char *endptr; - struct stat st; + char *end; + long long val; + struct stat st; dev_t proc_st_dev, proc_st_rdev; errno = 0; - val = strtoll(pidfdstr, &endptr, 10); + val = strtoll(pidfdstr, &end, 10); if ( ('\0' == *pidfdstr) - || ('\0' != *endptr) + || ('\0' != *end) || (0 != errno) || (val < 0) || (/*@+longintegral@*/val != (int)val)/*@=longintegral@*/) { diff --git a/lib/get_uid.c b/lib/get_uid.c index d7169325..77fe9660 100644 --- a/lib/get_uid.c +++ b/lib/get_uid.c @@ -16,13 +16,13 @@ int get_uid(const char *uidstr, uid_t *uid) { + char *end; long long val; - char *endptr; errno = 0; - val = strtoll(uidstr, &endptr, 10); + val = strtoll(uidstr, &end, 10); if ( ('\0' == *uidstr) - || ('\0' != *endptr) + || ('\0' != *end) || (0 != errno) || (/*@+longintegral@*/val != (uid_t)val)/*@=longintegral@*/) { return -1; diff --git a/lib/getdef.c b/lib/getdef.c index ef2ae1f0..30f54bab 100644 --- a/lib/getdef.c +++ b/lib/getdef.c @@ -23,6 +23,7 @@ #endif #include "alloc.h" +#include "atoi/str2i.h" #include "getdef.h" #include "shadowlog_internal.h" #include "string/sprintf.h" @@ -245,7 +246,7 @@ int getdef_num (const char *item, int dflt) return dflt; } - if ( (getlong(d->value, &val) == -1) + if ( (str2sl(&val, d->value) == -1) || (val > INT_MAX) || (val < -1)) { fprintf (shadow_logfd, @@ -280,7 +281,7 @@ unsigned int getdef_unum (const char *item, unsigned int dflt) return dflt; } - if ( (getlong(d->value, &val) == -1) + if ( (str2sl(&val, d->value) == -1) || (val < 0) || (val > INT_MAX)) { fprintf (shadow_logfd, @@ -315,7 +316,7 @@ long getdef_long (const char *item, long dflt) return dflt; } - if (getlong(d->value, &val) == -1 || val < -1) { + if (str2sl(&val, d->value) == -1 || val < -1) { fprintf (shadow_logfd, _("configuration error - cannot parse %s value: '%s'"), item, d->value); @@ -347,7 +348,7 @@ unsigned long getdef_ulong (const char *item, unsigned long dflt) return dflt; } - if (getulong(d->value, &val) == -1) { + if (str2ul(&val, d->value) == -1) { fprintf (shadow_logfd, _("configuration error - cannot parse %s value: '%s'"), item, d->value); diff --git a/lib/getgr_nam_gid.c b/lib/getgr_nam_gid.c index 6d625979..fd0c2171 100644 --- a/lib/getgr_nam_gid.c +++ b/lib/getgr_nam_gid.c @@ -23,17 +23,17 @@ */ extern /*@only@*//*@null@*/struct group *getgr_nam_gid (/*@null@*/const char *grname) { + char *end; long long gid; - char *endptr; if (NULL == grname) { return NULL; } errno = 0; - gid = strtoll(grname, &endptr, 10); + gid = strtoll(grname, &end, 10); if ( ('\0' != *grname) - && ('\0' == *endptr) + && ('\0' == *end) && (0 == errno) && (/*@+longintegral@*/gid == (gid_t)gid)/*@=longintegral@*/) { return xgetgrgid (gid); diff --git a/lib/getlong.c b/lib/getlong.c deleted file mode 100644 index 4f393fe3..00000000 --- a/lib/getlong.c +++ /dev/null @@ -1,36 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2007 - 2009, Nicolas François - * - * SPDX-License-Identifier: BSD-3-Clause - */ - - -#include - -#ident "$Id$" - -#include -#include - -#include "prototypes.h" - - -/* - * getlong - extract a long integer provided by the numstr string in *result - * - * It supports decimal, hexadecimal or octal representations. - */ -int -getlong(const char *restrict numstr, long *restrict result) -{ - char *endptr; - long val; - - errno = 0; - val = strtol(numstr, &endptr, 0); - if (('\0' == *numstr) || ('\0' != *endptr) || (0 != errno)) - return -1; - - *result = val; - return 0; -} diff --git a/lib/getrange.c b/lib/getrange.c index 03b0a913..466e9089 100644 --- a/lib/getrange.c +++ b/lib/getrange.c @@ -1,8 +1,6 @@ -/* - * SPDX-FileCopyrightText: 2008 , Nicolas François - * - * SPDX-License-Identifier: BSD-3-Clause - */ +// SPDX-FileCopyrightText: 2008, Nicolas François +// SPDX-FileCopyrightText: 2023-2024, Alejandro Colomar +// SPDX-License-Identifier: BSD-3-Clause #include @@ -12,7 +10,7 @@ #include #include -#include "atoi/strtou_noneg.h" +#include "atoi/a2i.h" #include "defines.h" #include "prototypes.h" @@ -30,65 +28,44 @@ getrange(const char *range, unsigned long *min, bool *has_min, unsigned long *max, bool *has_max) { - char *endptr; - unsigned long n; + const char *end; if (NULL == range) return -1; + *min = 0; + *has_min = false; + *has_max = false; + if ('-' == range[0]) { - if (!isdigit(range[1])) - return -1; - - errno = 0; - n = strtoul_noneg(&range[1], &endptr, 10); - if (('\0' != *endptr) || (0 != errno)) - return -1; - - /* - */ - *has_min = false; - *has_max = true; - *max = n; - } else { - errno = 0; - n = strtoul_noneg(range, &endptr, 10); - if (endptr == range || 0 != errno) - return -1; - - switch (*endptr) { - case '\0': - /* */ - *has_min = true; - *has_max = true; - *min = n; - *max = n; - break; - case '-': - endptr++; - if ('\0' == *endptr) { - /* - */ - *has_min = true; - *has_max = false; - *min = n; - } else if (!isdigit (*endptr)) { - return -1; - } else { - *has_min = true; - *min = n; - errno = 0; - n = strtoul_noneg(endptr, &endptr, 10); - if ('\0' != *endptr || 0 != errno) - return -1; - - /* - */ - *has_max = true; - *max = n; - } - break; - default: - return -1; - } + end = range + 1; + goto parse_max; } - return 0; + if (a2ul(min, range, &end, 10, 0, ULONG_MAX) == -1 && errno != ENOTSUP) + return -1; + *has_min = true; + + switch (*end++) { + case '\0': + *has_max = true; + *max = *min; + return 0; /* */ + + case '-': + if ('\0' == *end) + return 0; /* - */ +parse_max: + if (!isdigit((unsigned char) *end)) + return -1; + + if (a2ul(max, end, NULL, 10, *min, ULONG_MAX) == -1) + return -1; + *has_max = true; + + return 0; /* -, or - */ + + default: + return -1; + } } diff --git a/lib/gettime.c b/lib/gettime.c index 19ebe4b3..c61c88c3 100644 --- a/lib/gettime.c +++ b/lib/gettime.c @@ -1,8 +1,7 @@ -/* - * SPDX-FileCopyrightText: 2017, Chris Lamb - * - * SPDX-License-Identifier: BSD-3-Clause - */ +// SPDX-FileCopyrightText: 2017, Chris Lamb +// SPDX-FileCopyrightText: 2023-2024, Alejandro Colomar +// SPDX-License-Identifier: BSD-3-Clause + #include @@ -12,11 +11,12 @@ #include #include -#include "atoi/strtou_noneg.h" +#include "atoi/a2i.h" #include "defines.h" #include "prototypes.h" #include "shadowlog.h" + /* * gettime() returns the time as the number of seconds since the Epoch * @@ -24,13 +24,12 @@ * Epoch, 1970-01-01 00:00:00 +0000 (UTC), except that if the SOURCE_DATE_EPOCH * environment variable is exported it will use that instead. */ -/*@observer@*/time_t gettime (void) +/*@observer@*/time_t +gettime(void) { - char *endptr; - char *source_date_epoch; - time_t fallback; - unsigned long long epoch; - FILE *shadow_logfd = log_get_logfd(); + char *source_date_epoch; + FILE *shadow_logfd = log_get_logfd(); + time_t fallback, epoch; fallback = time (NULL); source_date_epoch = shadow_getenv ("SOURCE_DATE_EPOCH"); @@ -38,32 +37,11 @@ if (!source_date_epoch) return fallback; - errno = 0; - epoch = strtoull_noneg(source_date_epoch, &endptr, 10); - if (errno != 0) { - fprintf (shadow_logfd, - _("Environment variable $SOURCE_DATE_EPOCH: strtoull: %s\n"), - strerror(errno)); - } else if (endptr == source_date_epoch) { - fprintf (shadow_logfd, - _("Environment variable $SOURCE_DATE_EPOCH: No digits were found: %s\n"), - endptr); - } else if (*endptr != '\0') { - fprintf (shadow_logfd, - _("Environment variable $SOURCE_DATE_EPOCH: Trailing garbage: %s\n"), - endptr); - } else if (epoch > ULONG_MAX) { - fprintf (shadow_logfd, - _("Environment variable $SOURCE_DATE_EPOCH: value must be smaller than or equal to %lu but was found to be: %llu\n"), - ULONG_MAX, epoch); - } else if ((time_t)epoch > fallback) { - fprintf (shadow_logfd, - _("Environment variable $SOURCE_DATE_EPOCH: value must be smaller than or equal to the current time (%lu) but was found to be: %llu\n"), - fallback, epoch); - } else { - /* Valid */ - return epoch; + if (a2i(time_t, &epoch, source_date_epoch, NULL, 10, 0, fallback) == -1) { + fprintf(shadow_logfd, + _("Environment variable $SOURCE_DATE_EPOCH: a2i(\"%s\"): %s"), + source_date_epoch, strerror(errno)); + return fallback; } - - return fallback; + return epoch; } diff --git a/lib/getulong.c b/lib/getulong.c deleted file mode 100644 index c8628145..00000000 --- a/lib/getulong.c +++ /dev/null @@ -1,37 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2007 - 2009, Nicolas François - * - * SPDX-License-Identifier: BSD-3-Clause - */ - - -#include - -#ident "$Id: getlong.c 2763 2009-04-23 09:57:03Z nekral-guest $" - -#include -#include - -#include "atoi/strtou_noneg.h" -#include "prototypes.h" - - -/* - * getulong - extract an unsigned long integer provided by the numstr string in *result - * - * It supports decimal, hexadecimal or octal representations. - */ -int -getulong(const char *restrict numstr, unsigned long *restrict result) -{ - char *endptr; - unsigned long val; - - errno = 0; - val = strtoul_noneg(numstr, &endptr, 0); - if (('\0' == *numstr) || ('\0' != *endptr) || (0 != errno)) - return -1; - - *result = val; - return 0; -} diff --git a/lib/idmapping.c b/lib/idmapping.c index 2af2c202..56c72eae 100644 --- a/lib/idmapping.c +++ b/lib/idmapping.c @@ -14,6 +14,7 @@ #include #include "alloc.h" +#include "atoi/str2i.h" #include "prototypes.h" #include "string/stpeprintf.h" #include "idmapping.h" @@ -24,6 +25,7 @@ #include "shadowlog.h" #include "sizeof.h" + struct map_range *get_map_ranges(int ranges, int argc, char **argv) { struct map_range *mappings, *mapping; @@ -49,15 +51,15 @@ struct map_range *get_map_ranges(int ranges, int argc, char **argv) /* Gather up the ranges from the command line */ mapping = mappings; for (idx = 0, argidx = 0; idx < ranges; idx++, argidx += 3, mapping++) { - if (getulong(argv[argidx + 0], &mapping->upper) == -1) { + if (str2ul(&mapping->upper, argv[argidx + 0]) == -1) { free(mappings); return NULL; } - if (getulong(argv[argidx + 1], &mapping->lower) == -1) { + if (str2ul(&mapping->lower, argv[argidx + 1]) == -1) { free(mappings); return NULL; } - if (getulong(argv[argidx + 2], &mapping->count) == -1) { + if (str2ul(&mapping->count, argv[argidx + 2]) == -1) { free(mappings); return NULL; } diff --git a/lib/limits.c b/lib/limits.c index 37a1676c..813c0821 100644 --- a/lib/limits.c +++ b/lib/limits.c @@ -29,7 +29,11 @@ #include "getdef.h" #include "shadowlog.h" #include + +#include "atoi/str2i.h" #include "memzero.h" + + #ifndef LIMITS_FILE #define LIMITS_FILE "/etc/limits" #endif @@ -45,7 +49,7 @@ static int setrlimit_value (unsigned int resource, const char *value, unsigned int multiplier) { - char *endptr; + char *end; long l; rlim_t limit; struct rlimit rlim; @@ -57,15 +61,15 @@ static int setrlimit_value (unsigned int resource, limit = RLIM_INFINITY; } else { - /* We cannot use getlong here because it fails when there + /* We cannot use str2sl() here because it fails when there * is more to the value than just this number! * Also, we are limited to base 10 here (hex numbers will not * work with the limit string parser as is anyway) */ errno = 0; - l = strtol(value, &endptr, 10); + l = strtol(value, &end, 10); - if (value == endptr || errno != 0) + if (value == end || errno != 0) return 0; // FIXME: We could instead throw an error, though. if (__builtin_mul_overflow(l, multiplier, &limit)) { @@ -89,7 +93,7 @@ static int set_prio (const char *value) { long prio; - if ( (getlong(value, &prio) == -1) + if ( (str2sl(&prio, value) == -1) || (prio != (int) prio)) { return 0; } @@ -104,7 +108,7 @@ static int set_umask (const char *value) { unsigned long mask; - if ( (getulong(value, &mask) == -1) + if ( (str2ul(&mask, value) == -1) || (mask != (mode_t) mask)) { return 0; } @@ -119,7 +123,7 @@ static int check_logins (const char *name, const char *maxlogins) { unsigned long limit, count; - if (getulong(maxlogins, &limit) == -1) { + if (str2ul(&limit, maxlogins) == -1) { return 0; } @@ -482,7 +486,7 @@ void setup_limits (const struct passwd *info) if (strncmp (cp, "pri=", 4) == 0) { long inc; - if ( (getlong(cp + 4, &inc) == 0) + if ( (str2sl(&inc, cp + 4) == 0) && (inc >= -20) && (inc <= 20)) { errno = 0; if ( (nice (inc) != -1) @@ -500,7 +504,7 @@ void setup_limits (const struct passwd *info) } if (strncmp (cp, "ulimit=", 7) == 0) { long blocks; - if ( (getlong(cp + 7, &blocks) == -1) + if ( (str2sl(&blocks, cp + 7) == -1) || (blocks != (int) blocks) || (set_filesize_limit (blocks) != 0)) { SYSLOG ((LOG_WARN, @@ -512,7 +516,7 @@ void setup_limits (const struct passwd *info) if (strncmp (cp, "umask=", 6) == 0) { unsigned long mask; - if ( (getulong(cp + 6, &mask) == -1) + if ( (str2ul(&mask, cp + 6) == -1) || (mask != (mode_t) mask)) { SYSLOG ((LOG_WARN, "Can't set umask value for user %s", diff --git a/lib/port.c b/lib/port.c index 05b95651..60ff8989 100644 --- a/lib/port.c +++ b/lib/port.c @@ -168,7 +168,7 @@ again: } *cp = '\0'; cp++; - port.pt_names[j + 1] = NULL; + port.pt_names[j] = NULL; /* * Get the list of user names. It is the second colon diff --git a/lib/prefix_flag.c b/lib/prefix_flag.c index d42657d5..bba7102b 100644 --- a/lib/prefix_flag.c +++ b/lib/prefix_flag.c @@ -334,9 +334,9 @@ extern void prefix_endgrent(void) extern struct group *prefix_getgr_nam_gid(const char *grname) { - long long gid; - char *endptr; - struct group *g; + char *end; + long long gid; + struct group *g; if (NULL == grname) { return NULL; @@ -346,9 +346,9 @@ extern struct group *prefix_getgr_nam_gid(const char *grname) return getgr_nam_gid(grname); errno = 0; - gid = strtoll(grname, &endptr, 10); + gid = strtoll(grname, &end, 10); if ( ('\0' != *grname) - && ('\0' == *endptr) + && ('\0' == *end) && (0 == errno) && (gid == (gid_t)gid)) { diff --git a/lib/prototypes.h b/lib/prototypes.h index 0838884b..5c56e77e 100644 --- a/lib/prototypes.h +++ b/lib/prototypes.h @@ -149,10 +149,6 @@ extern int get_gid (const char *gidstr, gid_t *gid); /* getgr_nam_gid.c */ extern /*@only@*//*@null@*/struct group *getgr_nam_gid (/*@null@*/const char *grname); -/* getlong.c */ -ATTR_ACCESS(write_only, 2) -extern int getlong(const char *restrict numstr, long *restrict result); - /* get_pid.c */ extern int get_pid (const char *pidstr, pid_t *pid); extern int get_pidfd_from_fd(const char *pidfdstr); @@ -169,10 +165,6 @@ extern time_t gettime (void); /* get_uid.c */ extern int get_uid (const char *uidstr, uid_t *uid); -/* getulong.c */ -ATTR_ACCESS(write_only, 2) -extern int getulong(const char *restrict numstr, unsigned long *restrict result); - /* fputsx.c */ ATTR_ACCESS(write_only, 1, 2) extern /*@null@*/char *fgetsx(/*@returned@*/char *restrict, int, FILE *restrict); diff --git a/lib/rlogin.c b/lib/rlogin.c index c2b899eb..cbc05dd8 100644 --- a/lib/rlogin.c +++ b/lib/rlogin.c @@ -18,6 +18,10 @@ #include #include #include + +#include "atoi/str2i.h" + + static struct { int spd_name; int spd_baud; @@ -82,9 +86,8 @@ do_rlogin(const char *remote_host, char *name, size_t namesize, char *term, *cp = '\0'; cp++; - if (getulong(cp, &remote_speed) == -1) { + if (str2ul(&remote_speed, cp) == -1) remote_speed = 9600; - } } for (i = 0; ( (speed_table[i].spd_baud != remote_speed) diff --git a/lib/sgetspent.c b/lib/sgetspent.c index 758258f9..bd2ef8b8 100644 --- a/lib/sgetspent.c +++ b/lib/sgetspent.c @@ -19,6 +19,7 @@ #include #include +#include "atoi/str2i.h" #include "prototypes.h" #include "shadowlog_internal.h" #include "defines.h" @@ -97,7 +98,7 @@ sgetspent(const char *string) if (fields[2][0] == '\0') { spwd.sp_lstchg = -1; - } else if ( (getlong(fields[2], &spwd.sp_lstchg) == -1) + } else if ( (str2sl(&spwd.sp_lstchg, fields[2]) == -1) || (spwd.sp_lstchg < 0)) { return NULL; } @@ -108,7 +109,7 @@ sgetspent(const char *string) if (fields[3][0] == '\0') { spwd.sp_min = -1; - } else if ( (getlong(fields[3], &spwd.sp_min) == -1) + } else if ( (str2sl(&spwd.sp_min, fields[3]) == -1) || (spwd.sp_min < 0)) { return NULL; } @@ -119,7 +120,7 @@ sgetspent(const char *string) if (fields[4][0] == '\0') { spwd.sp_max = -1; - } else if ( (getlong(fields[4], &spwd.sp_max) == -1) + } else if ( (str2sl(&spwd.sp_max, fields[4]) == -1) || (spwd.sp_max < 0)) { return NULL; } @@ -144,7 +145,7 @@ sgetspent(const char *string) if (fields[5][0] == '\0') { spwd.sp_warn = -1; - } else if ( (getlong(fields[5], &spwd.sp_warn) == -1) + } else if ( (str2sl(&spwd.sp_warn, fields[5]) == -1) || (spwd.sp_warn < 0)) { return NULL; } @@ -156,7 +157,7 @@ sgetspent(const char *string) if (fields[6][0] == '\0') { spwd.sp_inact = -1; - } else if ( (getlong(fields[6], &spwd.sp_inact) == -1) + } else if ( (str2sl(&spwd.sp_inact, fields[6]) == -1) || (spwd.sp_inact < 0)) { return NULL; } @@ -168,7 +169,7 @@ sgetspent(const char *string) if (fields[7][0] == '\0') { spwd.sp_expire = -1; - } else if ( (getlong(fields[7], &spwd.sp_expire) == -1) + } else if ( (str2sl(&spwd.sp_expire, fields[7]) == -1) || (spwd.sp_expire < 0)) { return NULL; } @@ -180,7 +181,7 @@ sgetspent(const char *string) if (fields[8][0] == '\0') { spwd.sp_flag = SHADOW_SP_FLAG_UNSET; - } else if (getulong(fields[8], &spwd.sp_flag) == -1) { + } else if (str2ul(&spwd.sp_flag, fields[8]) == -1) { return NULL; } diff --git a/lib/shadow.c b/lib/shadow.c index 8d2c7007..f17d09ee 100644 --- a/lib/shadow.c +++ b/lib/shadow.c @@ -19,6 +19,8 @@ #include "defines.h" #include +#include "atoi/str2i.h" + static FILE *shadow; @@ -116,7 +118,7 @@ static struct spwd *my_sgetspent (const char *string) if (fields[2][0] == '\0') { spwd.sp_lstchg = -1; } else { - if (getlong(fields[2], &spwd.sp_lstchg) == -1) + if (str2sl(&spwd.sp_lstchg, fields[2]) == -1) return 0; if (spwd.sp_lstchg < 0) return 0; @@ -129,7 +131,7 @@ static struct spwd *my_sgetspent (const char *string) if (fields[3][0] == '\0') { spwd.sp_min = -1; } else { - if (getlong(fields[3], &spwd.sp_min) == -1) + if (str2sl(&spwd.sp_min, fields[3]) == -1) return 0; if (spwd.sp_min < 0) return 0; @@ -142,7 +144,7 @@ static struct spwd *my_sgetspent (const char *string) if (fields[4][0] == '\0') { spwd.sp_max = -1; } else { - if (getlong(fields[4], &spwd.sp_max) == -1) + if (str2sl(&spwd.sp_max, fields[4]) == -1) return 0; if (spwd.sp_max < 0) return 0; @@ -169,7 +171,7 @@ static struct spwd *my_sgetspent (const char *string) if (fields[5][0] == '\0') { spwd.sp_warn = -1; } else { - if (getlong(fields[5], &spwd.sp_warn) == -1) + if (str2sl(&spwd.sp_warn, fields[5]) == -1) return 0; if (spwd.sp_warn < 0) return 0; @@ -183,7 +185,7 @@ static struct spwd *my_sgetspent (const char *string) if (fields[6][0] == '\0') { spwd.sp_inact = -1; } else { - if (getlong(fields[6], &spwd.sp_inact) == -1) + if (str2sl(&spwd.sp_inact, fields[6]) == -1) return 0; if (spwd.sp_inact < 0) return 0; @@ -197,7 +199,7 @@ static struct spwd *my_sgetspent (const char *string) if (fields[7][0] == '\0') { spwd.sp_expire = -1; } else { - if (getlong(fields[7], &spwd.sp_expire) == -1) + if (str2sl(&spwd.sp_expire, fields[7]) == -1) return 0; if (spwd.sp_expire < 0) return 0; @@ -211,7 +213,7 @@ static struct spwd *my_sgetspent (const char *string) if (fields[8][0] == '\0') { spwd.sp_flag = SHADOW_SP_FLAG_UNSET; } else { - if (getulong(fields[8], &spwd.sp_flag) == -1) + if (str2ul(&spwd.sp_flag, fields[8]) == -1) return 0; if (spwd.sp_flag < 0) return 0; diff --git a/lib/strtoday.c b/lib/strtoday.c index 0c7a0b01..dabd5b52 100644 --- a/lib/strtoday.c +++ b/lib/strtoday.c @@ -13,9 +13,11 @@ #ident "$Id$" +#include "atoi/str2i.h" #include "prototypes.h" #include "getdate.h" + /* * strtoday() now uses get_date() (borrowed from GNU shellutils) * which can handle many date formats, for example: @@ -62,9 +64,8 @@ long strtoday (const char *str) } if (isnum) { long retdate; - if (getlong(str, &retdate) == -1) { + if (str2sl(&retdate, str) == -1) return -2; - } return retdate; } diff --git a/lib/subordinateio.c b/lib/subordinateio.c index b1080f82..e7cd4b48 100644 --- a/lib/subordinateio.c +++ b/lib/subordinateio.c @@ -19,6 +19,7 @@ #include #include "alloc.h" +#include "atoi/str2i.h" #include "string/sprintf.h" @@ -107,9 +108,9 @@ subordinate_parse(const char *line) if (i != SUBID_NFIELDS || *fields[0] == '\0' || *fields[1] == '\0' || *fields[2] == '\0') return NULL; range.owner = fields[0]; - if (getulong(fields[1], &range.start) == -1) + if (str2ul(&range.start, fields[1]) == -1) return NULL; - if (getulong(fields[2], &range.count) == -1) + if (str2ul(&range.count, fields[2]) == -1) return NULL; return ⦥ diff --git a/libsubid/Makefile.in b/libsubid/Makefile.in index 0395dee3..1cc025db 100644 --- a/libsubid/Makefile.in +++ b/libsubid/Makefile.in @@ -249,6 +249,7 @@ EGREP = @EGREP@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ +FILECMD = @FILECMD@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ diff --git a/ltmain.sh b/ltmain.sh index 540a92ab..1dea62ab 100755 --- a/ltmain.sh +++ b/ltmain.sh @@ -1,12 +1,12 @@ -#! /bin/sh +#! /usr/bin/env sh ## DO NOT EDIT - This file generated from ./build-aux/ltmain.in -## by inline-source v2014-01-03.01 +## by inline-source v2019-02-19.15 -# libtool (GNU libtool) 2.4.6 +# libtool (GNU libtool) 2.4.7 # Provide generalized library-building support services. # Written by Gordon Matzigkeit , 1996 -# Copyright (C) 1996-2015 Free Software Foundation, Inc. +# Copyright (C) 1996-2019, 2021-2022 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. @@ -31,8 +31,8 @@ PROGRAM=libtool PACKAGE=libtool -VERSION="2.4.6 Debian-2.4.6-15build2" -package_revision=2.4.6 +VERSION="2.4.7 Debian-2.4.7-7" +package_revision=2.4.7 ## ------ ## @@ -64,34 +64,25 @@ package_revision=2.4.6 # libraries, which are installed to $pkgauxdir. # Set a version string for this script. -scriptversion=2015-01-20.17; # UTC +scriptversion=2019-02-19.15; # UTC # General shell script boiler plate, and helper functions. # Written by Gary V. Vaughan, 2004 -# Copyright (C) 2004-2015 Free Software Foundation, Inc. -# This is free software; see the source for copying conditions. There is NO -# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# This is free software. There is NO warranty; not even for +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# +# Copyright (C) 2004-2019, 2021 Bootstrap Authors +# +# This file is dual licensed under the terms of the MIT license +# , and GPL version 2 or later +# . You must apply one of +# these licenses when using or redistributing this software or any of +# the files within it. See the URLs above, or the file `LICENSE` +# included in the Bootstrap distribution for the full license texts. -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or -# (at your option) any later version. - -# As a special exception to the GNU General Public License, if you distribute -# this file as part of a program or library that is built using GNU Libtool, -# you may include this file under the same distribution terms that you use -# for the rest of that program. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNES FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. - -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -# Please report bugs or propose patches to gary@gnu.org. +# Please report bugs or propose patches to: +# ## ------ ## @@ -139,9 +130,12 @@ do _G_safe_locale=\"$_G_var=C; \$_G_safe_locale\" fi" done - -# CDPATH. -(unset CDPATH) >/dev/null 2>&1 && unset CDPATH +# These NLS vars are set unconditionally (bootstrap issue #24). Unset those +# in case the environment reset is needed later and the $save_* variant is not +# defined (see the code above). +LC_ALL=C +LANGUAGE=C +export LANGUAGE LC_ALL # Make sure IFS has a sensible default sp=' ' @@ -159,6 +153,26 @@ if test "${PATH_SEPARATOR+set}" != set; then fi +# func_unset VAR +# -------------- +# Portably unset VAR. +# In some shells, an 'unset VAR' statement leaves a non-zero return +# status if VAR is already unset, which might be problematic if the +# statement is used at the end of a function (thus poisoning its return +# value) or when 'set -e' is active (causing even a spurious abort of +# the script in this case). +func_unset () +{ + { eval $1=; (eval unset $1) >/dev/null 2>&1 && eval unset $1 || : ; } +} + + +# Make sure CDPATH doesn't cause `cd` commands to output the target dir. +func_unset CDPATH + +# Make sure ${,E,F}GREP behave sanely. +func_unset GREP_OPTIONS + ## ------------------------- ## ## Locate command utilities. ## @@ -259,7 +273,7 @@ test -z "$SED" && { rm -f conftest.in conftest.tmp conftest.nl conftest.out } - func_path_progs "sed gsed" func_check_prog_sed $PATH:/usr/xpg4/bin + func_path_progs "sed gsed" func_check_prog_sed "$PATH:/usr/xpg4/bin" rm -f conftest.sed SED=$func_path_progs_result } @@ -295,7 +309,7 @@ test -z "$GREP" && { rm -f conftest.in conftest.tmp conftest.nl conftest.out } - func_path_progs "grep ggrep" func_check_prog_grep $PATH:/usr/xpg4/bin + func_path_progs "grep ggrep" func_check_prog_grep "$PATH:/usr/xpg4/bin" GREP=$func_path_progs_result } @@ -360,6 +374,35 @@ sed_double_backslash="\ s/\\([^$_G_bs]\\)$_G_bs2$_G_dollar/\\1$_G_bs2$_G_bs$_G_dollar/g s/\n//g" +# require_check_ifs_backslash +# --------------------------- +# Check if we can use backslash as IFS='\' separator, and set +# $check_ifs_backshlash_broken to ':' or 'false'. +require_check_ifs_backslash=func_require_check_ifs_backslash +func_require_check_ifs_backslash () +{ + _G_save_IFS=$IFS + IFS='\' + _G_check_ifs_backshlash='a\\b' + for _G_i in $_G_check_ifs_backshlash + do + case $_G_i in + a) + check_ifs_backshlash_broken=false + ;; + '') + break + ;; + *) + check_ifs_backshlash_broken=: + break + ;; + esac + done + IFS=$_G_save_IFS + require_check_ifs_backslash=: +} + ## ----------------- ## ## Global variables. ## @@ -529,27 +572,15 @@ func_require_term_colors () # --------------------- # Append VALUE onto the existing contents of VAR. - # We should try to minimise forks, especially on Windows where they are - # unreasonably slow, so skip the feature probes when bash or zsh are - # being used: - if test set = "${BASH_VERSION+set}${ZSH_VERSION+set}"; then - : ${_G_HAVE_ARITH_OP="yes"} - : ${_G_HAVE_XSI_OPS="yes"} - # The += operator was introduced in bash 3.1 - case $BASH_VERSION in - [12].* | 3.0 | 3.0*) ;; - *) - : ${_G_HAVE_PLUSEQ_OP="yes"} - ;; - esac - fi - # _G_HAVE_PLUSEQ_OP # Can be empty, in which case the shell is probed, "yes" if += is # useable or anything else if it does not work. - test -z "$_G_HAVE_PLUSEQ_OP" \ - && (eval 'x=a; x+=" b"; test "a b" = "$x"') 2>/dev/null \ - && _G_HAVE_PLUSEQ_OP=yes + if test -z "$_G_HAVE_PLUSEQ_OP" && \ + __PLUSEQ_TEST="a" && \ + __PLUSEQ_TEST+=" b" 2>/dev/null && \ + test "a b" = "$__PLUSEQ_TEST"; then + _G_HAVE_PLUSEQ_OP=yes + fi if test yes = "$_G_HAVE_PLUSEQ_OP" then @@ -580,16 +611,16 @@ if test yes = "$_G_HAVE_PLUSEQ_OP"; then { $debug_cmd - func_quote_for_eval "$2" - eval "$1+=\\ \$func_quote_for_eval_result" + func_quote_arg pretty "$2" + eval "$1+=\\ \$func_quote_arg_result" }' else func_append_quoted () { $debug_cmd - func_quote_for_eval "$2" - eval "$1=\$$1\\ \$func_quote_for_eval_result" + func_quote_arg pretty "$2" + eval "$1=\$$1\\ \$func_quote_arg_result" } fi @@ -1091,85 +1122,203 @@ func_relative_path () } -# func_quote_for_eval ARG... -# -------------------------- -# Aesthetically quote ARGs to be evaled later. -# This function returns two values: -# i) func_quote_for_eval_result -# double-quoted, suitable for a subsequent eval -# ii) func_quote_for_eval_unquoted_result -# has all characters that are still active within double -# quotes backslashified. -func_quote_for_eval () +# func_quote_portable EVAL ARG +# ---------------------------- +# Internal function to portably implement func_quote_arg. Note that we still +# keep attention to performance here so we as much as possible try to avoid +# calling sed binary (so far O(N) complexity as long as func_append is O(1)). +func_quote_portable () { $debug_cmd - func_quote_for_eval_unquoted_result= - func_quote_for_eval_result= - while test 0 -lt $#; do - case $1 in + $require_check_ifs_backslash + + func_quote_portable_result=$2 + + # one-time-loop (easy break) + while true + do + if $1; then + func_quote_portable_result=`$ECHO "$2" | $SED \ + -e "$sed_double_quote_subst" -e "$sed_double_backslash"` + break + fi + + # Quote for eval. + case $func_quote_portable_result in *[\\\`\"\$]*) - _G_unquoted_arg=`printf '%s\n' "$1" |$SED "$sed_quote_subst"` ;; - *) - _G_unquoted_arg=$1 ;; - esac - if test -n "$func_quote_for_eval_unquoted_result"; then - func_append func_quote_for_eval_unquoted_result " $_G_unquoted_arg" - else - func_append func_quote_for_eval_unquoted_result "$_G_unquoted_arg" - fi + # Fallback to sed for $func_check_bs_ifs_broken=:, or when the string + # contains the shell wildcard characters. + case $check_ifs_backshlash_broken$func_quote_portable_result in + :*|*[\[\*\?]*) + func_quote_portable_result=`$ECHO "$func_quote_portable_result" \ + | $SED "$sed_quote_subst"` + break + ;; + esac - case $_G_unquoted_arg in - # Double-quote args containing shell metacharacters to delay - # word splitting, command substitution and variable expansion - # for a subsequent eval. - # Many Bourne shells cannot handle close brackets correctly - # in scan sets, so we specify it separately. - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - _G_quoted_arg=\"$_G_unquoted_arg\" + func_quote_portable_old_IFS=$IFS + for _G_char in '\' '`' '"' '$' + do + # STATE($1) PREV($2) SEPARATOR($3) + set start "" "" + func_quote_portable_result=dummy"$_G_char$func_quote_portable_result$_G_char"dummy + IFS=$_G_char + for _G_part in $func_quote_portable_result + do + case $1 in + quote) + func_append func_quote_portable_result "$3$2" + set quote "$_G_part" "\\$_G_char" + ;; + start) + set first "" "" + func_quote_portable_result= + ;; + first) + set quote "$_G_part" "" + ;; + esac + done + done + IFS=$func_quote_portable_old_IFS ;; - *) - _G_quoted_arg=$_G_unquoted_arg - ;; + *) ;; esac - - if test -n "$func_quote_for_eval_result"; then - func_append func_quote_for_eval_result " $_G_quoted_arg" - else - func_append func_quote_for_eval_result "$_G_quoted_arg" - fi - shift + break done + + func_quote_portable_unquoted_result=$func_quote_portable_result + case $func_quote_portable_result in + # double-quote args containing shell metacharacters to delay + # word splitting, command substitution and variable expansion + # for a subsequent eval. + # many bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + func_quote_portable_result=\"$func_quote_portable_result\" + ;; + esac } -# func_quote_for_expand ARG -# ------------------------- -# Aesthetically quote ARG to be evaled later; same as above, -# but do not quote variable references. -func_quote_for_expand () +# func_quotefast_eval ARG +# ----------------------- +# Quote one ARG (internal). This is equivalent to 'func_quote_arg eval ARG', +# but optimized for speed. Result is stored in $func_quotefast_eval. +if test xyes = `(x=; printf -v x %q yes; echo x"$x") 2>/dev/null`; then + printf -v _GL_test_printf_tilde %q '~' + if test '\~' = "$_GL_test_printf_tilde"; then + func_quotefast_eval () + { + printf -v func_quotefast_eval_result %q "$1" + } + else + # Broken older Bash implementations. Make those faster too if possible. + func_quotefast_eval () + { + case $1 in + '~'*) + func_quote_portable false "$1" + func_quotefast_eval_result=$func_quote_portable_result + ;; + *) + printf -v func_quotefast_eval_result %q "$1" + ;; + esac + } + fi +else + func_quotefast_eval () + { + func_quote_portable false "$1" + func_quotefast_eval_result=$func_quote_portable_result + } +fi + + +# func_quote_arg MODEs ARG +# ------------------------ +# Quote one ARG to be evaled later. MODEs argument may contain zero or more +# specifiers listed below separated by ',' character. This function returns two +# values: +# i) func_quote_arg_result +# double-quoted (when needed), suitable for a subsequent eval +# ii) func_quote_arg_unquoted_result +# has all characters that are still active within double +# quotes backslashified. Available only if 'unquoted' is specified. +# +# Available modes: +# ---------------- +# 'eval' (default) +# - escape shell special characters +# 'expand' +# - the same as 'eval'; but do not quote variable references +# 'pretty' +# - request aesthetic output, i.e. '"a b"' instead of 'a\ b'. This might +# be used later in func_quote to get output like: 'echo "a b"' instead +# of 'echo a\ b'. This is slower than default on some shells. +# 'unquoted' +# - produce also $func_quote_arg_unquoted_result which does not contain +# wrapping double-quotes. +# +# Examples for 'func_quote_arg pretty,unquoted string': +# +# string | *_result | *_unquoted_result +# ------------+-----------------------+------------------- +# " | \" | \" +# a b | "a b" | a b +# "a b" | "\"a b\"" | \"a b\" +# * | "*" | * +# z="${x-$y}" | "z=\"\${x-\$y}\"" | z=\"\${x-\$y}\" +# +# Examples for 'func_quote_arg pretty,unquoted,expand string': +# +# string | *_result | *_unquoted_result +# --------------+---------------------+-------------------- +# z="${x-$y}" | "z=\"${x-$y}\"" | z=\"${x-$y}\" +func_quote_arg () { - $debug_cmd - - case $1 in - *[\\\`\"]*) - _G_arg=`$ECHO "$1" | $SED \ - -e "$sed_double_quote_subst" -e "$sed_double_backslash"` ;; - *) - _G_arg=$1 ;; - esac - - case $_G_arg in - # Double-quote args containing shell metacharacters to delay - # word splitting and command substitution for a subsequent eval. - # Many Bourne shells cannot handle close brackets correctly - # in scan sets, so we specify it separately. - *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") - _G_arg=\"$_G_arg\" + _G_quote_expand=false + case ,$1, in + *,expand,*) + _G_quote_expand=: ;; esac - func_quote_for_expand_result=$_G_arg + case ,$1, in + *,pretty,*|*,expand,*|*,unquoted,*) + func_quote_portable $_G_quote_expand "$2" + func_quote_arg_result=$func_quote_portable_result + func_quote_arg_unquoted_result=$func_quote_portable_unquoted_result + ;; + *) + # Faster quote-for-eval for some shells. + func_quotefast_eval "$2" + func_quote_arg_result=$func_quotefast_eval_result + ;; + esac +} + + +# func_quote MODEs ARGs... +# ------------------------ +# Quote all ARGs to be evaled later and join them into single command. See +# func_quote_arg's description for more info. +func_quote () +{ + $debug_cmd + _G_func_quote_mode=$1 ; shift + func_quote_result= + while test 0 -lt $#; do + func_quote_arg "$_G_func_quote_mode" "$1" + if test -n "$func_quote_result"; then + func_append func_quote_result " $func_quote_arg_result" + else + func_append func_quote_result "$func_quote_arg_result" + fi + shift + done } @@ -1215,8 +1364,8 @@ func_show_eval () _G_cmd=$1 _G_fail_exp=${2-':'} - func_quote_for_expand "$_G_cmd" - eval "func_notquiet $func_quote_for_expand_result" + func_quote_arg pretty,expand "$_G_cmd" + eval "func_notquiet $func_quote_arg_result" $opt_dry_run || { eval "$_G_cmd" @@ -1241,8 +1390,8 @@ func_show_eval_locale () _G_fail_exp=${2-':'} $opt_quiet || { - func_quote_for_expand "$_G_cmd" - eval "func_echo $func_quote_for_expand_result" + func_quote_arg expand,pretty "$_G_cmd" + eval "func_echo $func_quote_arg_result" } $opt_dry_run || { @@ -1369,30 +1518,26 @@ func_lt_ver () # End: #! /bin/sh -# Set a version string for this script. -scriptversion=2015-10-07.11; # UTC - # A portable, pluggable option parser for Bourne shell. # Written by Gary V. Vaughan, 2010 -# Copyright (C) 2010-2015 Free Software Foundation, Inc. -# This is free software; see the source for copying conditions. There is NO -# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# This is free software. There is NO warranty; not even for +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# +# Copyright (C) 2010-2019, 2021 Bootstrap Authors +# +# This file is dual licensed under the terms of the MIT license +# , and GPL version 2 or later +# . You must apply one of +# these licenses when using or redistributing this software or any of +# the files within it. See the URLs above, or the file `LICENSE` +# included in the Bootstrap distribution for the full license texts. -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# Please report bugs or propose patches to: +# -# 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 General Public License -# along with this program. If not, see . - -# Please report bugs or propose patches to gary@gnu.org. +# Set a version string for this script. +scriptversion=2019-02-19.15; # UTC ## ------ ## @@ -1415,7 +1560,7 @@ scriptversion=2015-10-07.11; # UTC # # In order for the '--version' option to work, you will need to have a # suitably formatted comment like the one at the top of this file -# starting with '# Written by ' and ending with '# warranty; '. +# starting with '# Written by ' and ending with '# Copyright'. # # For '-h' and '--help' to work, you will also need a one line # description of your script's purpose in a comment directly above the @@ -1427,7 +1572,7 @@ scriptversion=2015-10-07.11; # UTC # to display verbose messages only when your user has specified # '--verbose'. # -# After sourcing this file, you can plug processing for additional +# After sourcing this file, you can plug in processing for additional # options by amending the variables from the 'Configuration' section # below, and following the instructions in the 'Option parsing' # section further down. @@ -1476,8 +1621,8 @@ fatal_help="Try '\$progname --help' for more information." ## ------------------------- ## # This section contains functions for adding, removing, and running hooks -# to the main code. A hook is just a named list of of function, that can -# be run in order later on. +# in the main code. A hook is just a list of function names that can be +# run in order later on. # func_hookable FUNC_NAME # ----------------------- @@ -1510,7 +1655,8 @@ func_add_hook () # func_remove_hook FUNC_NAME HOOK_FUNC # ------------------------------------ -# Remove HOOK_FUNC from the list of functions called by FUNC_NAME. +# Remove HOOK_FUNC from the list of hook functions to be called by +# FUNC_NAME. func_remove_hook () { $debug_cmd @@ -1519,10 +1665,28 @@ func_remove_hook () } +# func_propagate_result FUNC_NAME_A FUNC_NAME_B +# --------------------------------------------- +# If the *_result variable of FUNC_NAME_A _is set_, assign its value to +# *_result variable of FUNC_NAME_B. +func_propagate_result () +{ + $debug_cmd + + func_propagate_result_result=: + if eval "test \"\${${1}_result+set}\" = set" + then + eval "${2}_result=\$${1}_result" + else + func_propagate_result_result=false + fi +} + + # func_run_hooks FUNC_NAME [ARG]... # --------------------------------- # Run all hook functions registered to FUNC_NAME. -# It is assumed that the list of hook functions contains nothing more +# It's assumed that the list of hook functions contains nothing more # than a whitespace-delimited list of legal shell function names, and # no effort is wasted trying to catch shell meta-characters or preserve # whitespace. @@ -1534,22 +1698,19 @@ func_run_hooks () case " $hookable_fns " in *" $1 "*) ;; - *) func_fatal_error "'$1' does not support hook funcions.n" ;; + *) func_fatal_error "'$1' does not support hook functions." ;; esac eval _G_hook_fns=\$$1_hooks; shift for _G_hook in $_G_hook_fns; do - if eval $_G_hook '"$@"'; then - # store returned options list back into positional - # parameters for next 'cmd' execution. - eval _G_hook_result=\$${_G_hook}_result - eval set dummy "$_G_hook_result"; shift - _G_rc_run_hooks=: + func_unset "${_G_hook}_result" + eval $_G_hook '${1+"$@"}' + func_propagate_result $_G_hook func_run_hooks + if $func_propagate_result_result; then + eval set dummy "$func_run_hooks_result"; shift fi done - - $_G_rc_run_hooks && func_run_hooks_result=$_G_hook_result } @@ -1559,14 +1720,16 @@ func_run_hooks () ## --------------- ## # In order to add your own option parsing hooks, you must accept the -# full positional parameter list in your hook function, you may remove/edit -# any options that you action, and then pass back the remaining unprocessed -# options in '_result', escaped suitably for -# 'eval'. In this case you also must return $EXIT_SUCCESS to let the -# hook's caller know that it should pay attention to -# '_result'. Returning $EXIT_FAILURE signalizes that -# arguments are left untouched by the hook and therefore caller will ignore the -# result variable. +# full positional parameter list from your hook function. You may remove +# or edit any options that you action, and then pass back the remaining +# unprocessed options in '_result', escaped +# suitably for 'eval'. +# +# The '_result' variable is automatically unset +# before your hook gets called; for best performance, only set the +# *_result variable when necessary (i.e. don't call the 'func_quote' +# function unnecessarily because it can be an expensive operation on some +# machines). # # Like this: # @@ -1578,11 +1741,8 @@ func_run_hooks () # usage_message=$usage_message' # -s, --silent don'\''t print informational messages # ' -# # No change in '$@' (ignored completely by this hook). There is -# # no need to do the equivalent (but slower) action: -# # func_quote_for_eval ${1+"$@"} -# # my_options_prep_result=$func_quote_for_eval_result -# false +# # No change in '$@' (ignored completely by this hook). Leave +# # my_options_prep_result variable intact. # } # func_add_hook func_options_prep my_options_prep # @@ -1593,7 +1753,7 @@ func_run_hooks () # # args_changed=false # -# # Note that for efficiency, we parse as many options as we can +# # Note that, for efficiency, we parse as many options as we can # # recognise in a loop before passing the remainder back to the # # caller on the first unrecognised argument we encounter. # while test $# -gt 0; do @@ -1610,18 +1770,17 @@ func_run_hooks () # args_changed=: # ;; # *) # Make sure the first unrecognised option "$_G_opt" -# # is added back to "$@", we could need that later -# # if $args_changed is true. +# # is added back to "$@" in case we need it later, +# # if $args_changed was set to 'true'. # set dummy "$_G_opt" ${1+"$@"}; shift; break ;; # esac # done # +# # Only call 'func_quote' here if we processed at least one argument. # if $args_changed; then -# func_quote_for_eval ${1+"$@"} -# my_silent_option_result=$func_quote_for_eval_result +# func_quote eval ${1+"$@"} +# my_silent_option_result=$func_quote_result # fi -# -# $args_changed # } # func_add_hook func_parse_options my_silent_option # @@ -1632,8 +1791,6 @@ func_run_hooks () # # $opt_silent && $opt_verbose && func_fatal_help "\ # '--silent' and '--verbose' options are mutually exclusive." -# -# false # } # func_add_hook func_validate_options my_option_validation # @@ -1649,13 +1806,8 @@ func_options_finish () { $debug_cmd - _G_func_options_finish_exit=false - if func_run_hooks func_options ${1+"$@"}; then - func_options_finish_result=$func_run_hooks_result - _G_func_options_finish_exit=: - fi - - $_G_func_options_finish_exit + func_run_hooks func_options ${1+"$@"} + func_propagate_result func_run_hooks func_options_finish } @@ -1668,28 +1820,27 @@ func_options () { $debug_cmd - _G_rc_options=false + _G_options_quoted=false for my_func in options_prep parse_options validate_options options_finish do - if eval func_$my_func '${1+"$@"}'; then - eval _G_res_var='$'"func_${my_func}_result" - eval set dummy "$_G_res_var" ; shift - _G_rc_options=: + func_unset func_${my_func}_result + func_unset func_run_hooks_result + eval func_$my_func '${1+"$@"}' + func_propagate_result func_$my_func func_options + if $func_propagate_result_result; then + eval set dummy "$func_options_result"; shift + _G_options_quoted=: fi done - # Save modified positional parameters for caller. As a top-level - # options-parser function we always need to set the 'func_options_result' - # variable (regardless the $_G_rc_options value). - if $_G_rc_options; then - func_options_result=$_G_res_var - else - func_quote_for_eval ${1+"$@"} - func_options_result=$func_quote_for_eval_result - fi - - $_G_rc_options + $_G_options_quoted || { + # As we (func_options) are top-level options-parser function and + # nobody quoted "$@" for us yet, we need to do it explicitly for + # caller. + func_quote eval ${1+"$@"} + func_options_result=$func_quote_result + } } @@ -1699,8 +1850,7 @@ func_options () # Note that when calling hook functions, we pass through the list of # positional parameters. If a hook function modifies that list, and # needs to propagate that back to rest of this script, then the complete -# modified list must be put in 'func_run_hooks_result' before -# returning $EXIT_SUCCESS (otherwise $EXIT_FAILURE is returned). +# modified list must be put in 'func_run_hooks_result' before returning. func_hookable func_options_prep func_options_prep () { @@ -1710,14 +1860,8 @@ func_options_prep () opt_verbose=false opt_warning_types= - _G_rc_options_prep=false - if func_run_hooks func_options_prep ${1+"$@"}; then - _G_rc_options_prep=: - # save modified positional parameters for caller - func_options_prep_result=$func_run_hooks_result - fi - - $_G_rc_options_prep + func_run_hooks func_options_prep ${1+"$@"} + func_propagate_result func_run_hooks func_options_prep } @@ -1729,27 +1873,32 @@ func_parse_options () { $debug_cmd - func_parse_options_result= - - _G_rc_parse_options=false + _G_parse_options_requote=false # this just eases exit handling while test $# -gt 0; do # Defer to hook functions for initial option parsing, so they # get priority in the event of reusing an option name. - if func_run_hooks func_parse_options ${1+"$@"}; then - eval set dummy "$func_run_hooks_result"; shift - _G_rc_parse_options=: + func_run_hooks func_parse_options ${1+"$@"} + func_propagate_result func_run_hooks func_parse_options + if $func_propagate_result_result; then + eval set dummy "$func_parse_options_result"; shift + # Even though we may have changed "$@", we passed the "$@" array + # down into the hook and it quoted it for us (because we are in + # this if-branch). No need to quote it again. + _G_parse_options_requote=false fi # Break out of the loop if we already parsed every option. test $# -gt 0 || break + # We expect that one of the options parsed in this function matches + # and thus we remove _G_opt from "$@" and need to re-quote. _G_match_parse_options=: _G_opt=$1 shift case $_G_opt in --debug|-x) debug_cmd='set -x' - func_echo "enabling shell trace mode" + func_echo "enabling shell trace mode" >&2 $debug_cmd ;; @@ -1760,7 +1909,7 @@ func_parse_options () --warnings|--warning|-W) if test $# = 0 && func_missing_arg $_G_opt; then - _G_rc_parse_options=: + _G_parse_options_requote=: break fi case " $warning_categories $1" in @@ -1815,7 +1964,7 @@ func_parse_options () shift ;; - --) _G_rc_parse_options=: ; break ;; + --) _G_parse_options_requote=: ; break ;; -*) func_fatal_help "unrecognised option: '$_G_opt'" ;; *) set dummy "$_G_opt" ${1+"$@"}; shift _G_match_parse_options=false @@ -1823,17 +1972,16 @@ func_parse_options () ;; esac - $_G_match_parse_options && _G_rc_parse_options=: + if $_G_match_parse_options; then + _G_parse_options_requote=: + fi done - - if $_G_rc_parse_options; then + if $_G_parse_options_requote; then # save modified positional parameters for caller - func_quote_for_eval ${1+"$@"} - func_parse_options_result=$func_quote_for_eval_result + func_quote eval ${1+"$@"} + func_parse_options_result=$func_quote_result fi - - $_G_rc_parse_options } @@ -1846,21 +1994,14 @@ func_validate_options () { $debug_cmd - _G_rc_validate_options=false - # Display all warnings if -W was not given. test -n "$opt_warning_types" || opt_warning_types=" $warning_categories" - if func_run_hooks func_validate_options ${1+"$@"}; then - # save modified positional parameters for caller - func_validate_options_result=$func_run_hooks_result - _G_rc_validate_options=: - fi + func_run_hooks func_validate_options ${1+"$@"} + func_propagate_result func_run_hooks func_validate_options # Bail if the options were screwed! $exit_cmd $EXIT_FAILURE - - $_G_rc_validate_options } @@ -1916,8 +2057,8 @@ func_missing_arg () # func_split_equals STRING # ------------------------ -# Set func_split_equals_lhs and func_split_equals_rhs shell variables after -# splitting STRING at the '=' sign. +# Set func_split_equals_lhs and func_split_equals_rhs shell variables +# after splitting STRING at the '=' sign. test -z "$_G_HAVE_XSI_OPS" \ && (eval 'x=a/b/c; test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ @@ -1932,8 +2073,9 @@ then func_split_equals_lhs=${1%%=*} func_split_equals_rhs=${1#*=} - test "x$func_split_equals_lhs" = "x$1" \ - && func_split_equals_rhs= + if test "x$func_split_equals_lhs" = "x$1"; then + func_split_equals_rhs= + fi }' else # ...otherwise fall back to using expr, which is often a shell builtin. @@ -1943,7 +2085,7 @@ else func_split_equals_lhs=`expr "x$1" : 'x\([^=]*\)'` func_split_equals_rhs= - test "x$func_split_equals_lhs" = "x$1" \ + test "x$func_split_equals_lhs=" = "x$1" \ || func_split_equals_rhs=`expr "x$1" : 'x[^=]*=\(.*\)$'` } fi #func_split_equals @@ -1969,7 +2111,7 @@ else { $debug_cmd - func_split_short_opt_name=`expr "x$1" : 'x-\(.\)'` + func_split_short_opt_name=`expr "x$1" : 'x\(-.\)'` func_split_short_opt_arg=`expr "x$1" : 'x-.\(.*\)$'` } fi #func_split_short_opt @@ -2011,31 +2153,44 @@ func_usage_message () # func_version # ------------ # Echo version message to standard output and exit. +# The version message is extracted from the calling file's header +# comments, with leading '# ' stripped: +# 1. First display the progname and version +# 2. Followed by the header comment line matching /^# Written by / +# 3. Then a blank line followed by the first following line matching +# /^# Copyright / +# 4. Immediately followed by any lines between the previous matches, +# except lines preceding the intervening completely blank line. +# For example, see the header comments of this file. func_version () { $debug_cmd printf '%s\n' "$progname $scriptversion" $SED -n ' - /(C)/!b go - :more - /\./!{ - N - s|\n# | | - b more + /^# Written by /!b + s|^# ||; p; n + + :fwd2blnk + /./ { + n + b fwd2blnk } - :go - /^# Written by /,/# warranty; / { - s|^# || - s|^# *$|| - s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2| - p + p; n + + :holdwrnt + s|^# || + s|^# *$|| + /^Copyright /!{ + /./H + n + b holdwrnt } - /^# Written by / { - s|^# || - p - } - /^warranty; /q' < "$progpath" + + s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2| + G + s|\(\n\)\n*|\1|g + p; q' < "$progpath" exit $? } @@ -2045,12 +2200,12 @@ func_version () # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'before-save-hook 'time-stamp) -# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" +# time-stamp-pattern: "30/scriptversion=%:y-%02m-%02d.%02H; # UTC" # time-stamp-time-zone: "UTC" # End: # Set a version string. -scriptversion='(GNU libtool) 2.4.6' +scriptversion='(GNU libtool) 2.4.7' # func_echo ARG... @@ -2141,7 +2296,7 @@ include the following information: compiler: $LTCC compiler flags: $LTCFLAGS linker: $LD (gnu? $with_gnu_ld) - version: $progname $scriptversion Debian-2.4.6-15build2 + version: $progname $scriptversion Debian-2.4.7-7 automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q` autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q` @@ -2197,7 +2352,7 @@ fi # a configuration failure hint, and exit. func_fatal_configuration () { - func__fatal_error ${1+"$@"} \ + func_fatal_error ${1+"$@"} \ "See the $PACKAGE documentation for more information." \ "Fatal configuration error." } @@ -2345,6 +2500,8 @@ libtool_options_prep () _G_rc_lt_options_prep=: + _G_rc_lt_options_prep=: + # Shorthand for --mode=foo, only valid as the first argument case $1 in clean|clea|cle|cl) @@ -2375,11 +2532,9 @@ libtool_options_prep () if $_G_rc_lt_options_prep; then # Pass back the list of options. - func_quote_for_eval ${1+"$@"} - libtool_options_prep_result=$func_quote_for_eval_result + func_quote eval ${1+"$@"} + libtool_options_prep_result=$func_quote_result fi - - $_G_rc_lt_options_prep } func_add_hook func_options_prep libtool_options_prep @@ -2482,11 +2637,9 @@ libtool_parse_options () if $_G_rc_lt_parse_options; then # save modified positional parameters for caller - func_quote_for_eval ${1+"$@"} - libtool_parse_options_result=$func_quote_for_eval_result + func_quote eval ${1+"$@"} + libtool_parse_options_result=$func_quote_result fi - - $_G_rc_lt_parse_options } func_add_hook func_parse_options libtool_parse_options @@ -2543,8 +2696,8 @@ libtool_validate_options () } # Pass back the unparsed argument list - func_quote_for_eval ${1+"$@"} - libtool_validate_options_result=$func_quote_for_eval_result + func_quote eval ${1+"$@"} + libtool_validate_options_result=$func_quote_result } func_add_hook func_validate_options libtool_validate_options @@ -3510,8 +3663,8 @@ func_mode_compile () esac done - func_quote_for_eval "$libobj" - test "X$libobj" != "X$func_quote_for_eval_result" \ + func_quote_arg pretty "$libobj" + test "X$libobj" != "X$func_quote_arg_result" \ && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ && func_warning "libobj name '$libobj' may not contain shell special characters." func_dirname_and_basename "$obj" "/" "" @@ -3584,8 +3737,8 @@ compiler." func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 srcfile=$func_to_tool_file_result - func_quote_for_eval "$srcfile" - qsrcfile=$func_quote_for_eval_result + func_quote_arg pretty "$srcfile" + qsrcfile=$func_quote_arg_result # Only build a PIC object if we are building libtool libraries. if test yes = "$build_libtool_libs"; then @@ -3740,7 +3893,8 @@ This mode accepts the following additional options: -prefer-non-pic try to build non-PIC objects only -shared do not build a '.o' file suitable for static linking -static only build a '.o' file suitable for static linking - -Wc,FLAG pass FLAG directly to the compiler + -Wc,FLAG + -Xcompiler FLAG pass FLAG directly to the compiler COMPILE-COMMAND is a command to be used in creating a 'standard' object file from the given SOURCEFILE. @@ -3846,6 +4000,8 @@ The following components of LINK-COMMAND are treated specially: -weak LIBNAME declare that the target provides the LIBNAME interface -Wc,FLAG -Xcompiler FLAG pass linker-specific FLAG directly to the compiler + -Wa,FLAG + -Xassembler FLAG pass linker-specific FLAG directly to the assembler -Wl,FLAG -Xlinker FLAG pass linker-specific FLAG directly to the linker -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) @@ -4188,8 +4344,8 @@ func_mode_install () case $nonopt in *shtool*) :;; *) false;; esac then # Aesthetically quote it. - func_quote_for_eval "$nonopt" - install_prog="$func_quote_for_eval_result " + func_quote_arg pretty "$nonopt" + install_prog="$func_quote_arg_result " arg=$1 shift else @@ -4199,8 +4355,8 @@ func_mode_install () # The real first argument should be the name of the installation program. # Aesthetically quote it. - func_quote_for_eval "$arg" - func_append install_prog "$func_quote_for_eval_result" + func_quote_arg pretty "$arg" + func_append install_prog "$func_quote_arg_result" install_shared_prog=$install_prog case " $install_prog " in *[\\\ /]cp\ *) install_cp=: ;; @@ -4257,12 +4413,12 @@ func_mode_install () esac # Aesthetically quote the argument. - func_quote_for_eval "$arg" - func_append install_prog " $func_quote_for_eval_result" + func_quote_arg pretty "$arg" + func_append install_prog " $func_quote_arg_result" if test -n "$arg2"; then - func_quote_for_eval "$arg2" + func_quote_arg pretty "$arg2" fi - func_append install_shared_prog " $func_quote_for_eval_result" + func_append install_shared_prog " $func_quote_arg_result" done test -z "$install_prog" && \ @@ -4273,8 +4429,8 @@ func_mode_install () if test -n "$install_override_mode" && $no_mode; then if $install_cp; then :; else - func_quote_for_eval "$install_override_mode" - func_append install_shared_prog " -m $func_quote_for_eval_result" + func_quote_arg pretty "$install_override_mode" + func_append install_shared_prog " -m $func_quote_arg_result" fi fi @@ -4570,8 +4726,8 @@ func_mode_install () relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` $opt_quiet || { - func_quote_for_expand "$relink_command" - eval "func_echo $func_quote_for_expand_result" + func_quote_arg expand,pretty "$relink_command" + eval "func_echo $func_quote_arg_result" } if eval "$relink_command"; then : else @@ -5350,7 +5506,8 @@ else if test \"\$libtool_execute_magic\" != \"$magic\"; then file=\"\$0\"" - qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` + func_quote_arg pretty "$ECHO" + qECHO=$func_quote_arg_result $ECHO "\ # A function that is used when there is no print builtin or printf. @@ -5360,7 +5517,7 @@ func_fallback_echo () \$1 _LTECHO_EOF' } - ECHO=\"$qECHO\" + ECHO=$qECHO fi # Very basic option parsing. These options are (a) specific to @@ -6703,9 +6860,9 @@ func_mode_link () while test "$#" -gt 0; do arg=$1 shift - func_quote_for_eval "$arg" - qarg=$func_quote_for_eval_unquoted_result - func_append libtool_args " $func_quote_for_eval_result" + func_quote_arg pretty,unquoted "$arg" + qarg=$func_quote_arg_unquoted_result + func_append libtool_args " $func_quote_arg_result" # If the previous option needs an argument, assign it. if test -n "$prev"; then @@ -6941,6 +7098,13 @@ func_mode_link () prev= continue ;; + xassembler) + func_append compiler_flags " -Xassembler $qarg" + prev= + func_append compile_command " -Xassembler $qarg" + func_append finalize_command " -Xassembler $qarg" + continue + ;; xcclinker) func_append linker_flags " $qarg" func_append compiler_flags " $qarg" @@ -7111,7 +7275,7 @@ func_mode_link () # These systems don't actually have a C library (as such) test X-lc = "X$arg" && continue ;; - *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*) + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig* | *-*-midnightbsd*) # Do not include libc due to us having libc/libc_r. test X-lc = "X$arg" && continue ;; @@ -7131,7 +7295,7 @@ func_mode_link () esac elif test X-lc_r = "X$arg"; then case $host in - *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*) + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig* | *-*-midnightbsd*) # Do not include libc_r directly, use -pthread flag. continue ;; @@ -7161,8 +7325,20 @@ func_mode_link () prev=xcompiler continue ;; - - -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ + # Solaris ld rejects as of 11.4. Refer to Oracle bug 22985199. + -pthread) + case $host in + *solaris2*) ;; + *) + case "$new_inherited_linker_flags " in + *" $arg "*) ;; + * ) func_append new_inherited_linker_flags " $arg" ;; + esac + ;; + esac + continue + ;; + -mt|-mthreads|-kthread|-Kthread|-pthreads|--thread-safe \ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) func_append compiler_flags " $arg" func_append compile_command " $arg" @@ -7303,9 +7479,9 @@ func_mode_link () save_ifs=$IFS; IFS=, for flag in $args; do IFS=$save_ifs - func_quote_for_eval "$flag" - func_append arg " $func_quote_for_eval_result" - func_append compiler_flags " $func_quote_for_eval_result" + func_quote_arg pretty "$flag" + func_append arg " $func_quote_arg_result" + func_append compiler_flags " $func_quote_arg_result" done IFS=$save_ifs func_stripname ' ' '' "$arg" @@ -7319,16 +7495,21 @@ func_mode_link () save_ifs=$IFS; IFS=, for flag in $args; do IFS=$save_ifs - func_quote_for_eval "$flag" - func_append arg " $wl$func_quote_for_eval_result" - func_append compiler_flags " $wl$func_quote_for_eval_result" - func_append linker_flags " $func_quote_for_eval_result" + func_quote_arg pretty "$flag" + func_append arg " $wl$func_quote_arg_result" + func_append compiler_flags " $wl$func_quote_arg_result" + func_append linker_flags " $func_quote_arg_result" done IFS=$save_ifs func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; + -Xassembler) + prev=xassembler + continue + ;; + -Xcompiler) prev=xcompiler continue @@ -7346,8 +7527,8 @@ func_mode_link () # -msg_* for osf cc -msg_*) - func_quote_for_eval "$arg" - arg=$func_quote_for_eval_result + func_quote_arg pretty "$arg" + arg=$func_quote_arg_result ;; # Flags to be passed through unchanged, with rationale: @@ -7370,12 +7551,13 @@ func_mode_link () # -fuse-ld=* Linker select flags for GCC # -static-* direct GCC to link specific libraries statically # -fcilkplus Cilk Plus language extension features for C/C++ + # -Wa,* Pass flags directly to the assembler -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \ - -specs=*|-fsanitize=*|-fuse-ld=*|-static-*|-fcilkplus) - func_quote_for_eval "$arg" - arg=$func_quote_for_eval_result + -specs=*|-fsanitize=*|-fuse-ld=*|-static-*|-fcilkplus|-Wa,*) + func_quote_arg pretty "$arg" + arg=$func_quote_arg_result func_append compile_command " $arg" func_append finalize_command " $arg" func_append compiler_flags " $arg" @@ -7396,15 +7578,15 @@ func_mode_link () continue else # Otherwise treat like 'Some other compiler flag' below - func_quote_for_eval "$arg" - arg=$func_quote_for_eval_result + func_quote_arg pretty "$arg" + arg=$func_quote_arg_result fi ;; # Some other compiler flag. -* | +*) - func_quote_for_eval "$arg" - arg=$func_quote_for_eval_result + func_quote_arg pretty "$arg" + arg=$func_quote_arg_result ;; *.$objext) @@ -7524,8 +7706,8 @@ func_mode_link () *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. - func_quote_for_eval "$arg" - arg=$func_quote_for_eval_result + func_quote_arg pretty "$arg" + arg=$func_quote_arg_result ;; esac # arg @@ -8733,7 +8915,7 @@ func_mode_link () test CXX = "$tagname" && { case $host_os in linux*) - case `$CC -V 2>&1 | sed 5q` in + case `$CC -V 2>&1 | $SED 5q` in *Sun\ C*) # Sun C++ 5.9 func_suncc_cstd_abi @@ -8906,7 +9088,7 @@ func_mode_link () # case $version_type in # correct linux to gnu/linux during the next big refactor - darwin|freebsd-elf|linux|osf|windows|none) + darwin|freebsd-elf|linux|midnightbsd-elf|osf|windows|none) func_arith $number_major + $number_minor current=$func_arith_result age=$number_minor @@ -9000,7 +9182,7 @@ func_mode_link () versuffix=.$current.$revision ;; - freebsd-elf) + freebsd-elf | midnightbsd-elf) func_arith $current - $age major=.$func_arith_result versuffix=$major.$age.$revision @@ -9226,7 +9408,7 @@ func_mode_link () *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; - *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-midnightbsd*) # Do not include libc due to us having libc/libc_r. ;; *-*-sco3.2v5* | *-*-sco5v6*) @@ -10037,8 +10219,8 @@ EOF for cmd in $concat_cmds; do IFS=$save_ifs $opt_quiet || { - func_quote_for_expand "$cmd" - eval "func_echo $func_quote_for_expand_result" + func_quote_arg expand,pretty "$cmd" + eval "func_echo $func_quote_arg_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? @@ -10131,8 +10313,8 @@ EOF eval cmd=\"$cmd\" IFS=$save_ifs $opt_quiet || { - func_quote_for_expand "$cmd" - eval "func_echo $func_quote_for_expand_result" + func_quote_arg expand,pretty "$cmd" + eval "func_echo $func_quote_arg_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? @@ -10606,12 +10788,13 @@ EOF elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else - func_quote_for_eval "$var_value" - relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" + func_quote_arg pretty "$var_value" + relink_command="$var=$func_quote_arg_result; export $var; $relink_command" fi done - relink_command="(cd `pwd`; $relink_command)" - relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` + func_quote eval cd "`pwd`" + func_quote_arg pretty,unquoted "($func_quote_result; $relink_command)" + relink_command=$func_quote_arg_unquoted_result fi # Only actually do things if not in dry run mode. @@ -10851,13 +11034,15 @@ EOF elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else - func_quote_for_eval "$var_value" - relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" + func_quote_arg pretty,unquoted "$var_value" + relink_command="$var=$func_quote_arg_unquoted_result; export $var; $relink_command" fi done # Quote the link command for shipping. - relink_command="(cd `pwd`; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" - relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` + func_quote eval cd "`pwd`" + relink_command="($func_quote_result; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" + func_quote_arg pretty,unquoted "$relink_command" + relink_command=$func_quote_arg_unquoted_result if test yes = "$hardcode_automatic"; then relink_command= fi diff --git a/m4/libtool.m4 b/m4/libtool.m4 index c4c02946..e7b68334 100644 --- a/m4/libtool.m4 +++ b/m4/libtool.m4 @@ -1,6 +1,7 @@ # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # -# Copyright (C) 1996-2001, 2003-2015 Free Software Foundation, Inc. +# Copyright (C) 1996-2001, 2003-2019, 2021-2022 Free Software +# Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is free software; the Free Software Foundation gives @@ -31,7 +32,7 @@ m4_define([_LT_COPYING], [dnl # along with this program. If not, see . ]) -# serial 58 LT_INIT +# serial 59 LT_INIT # LT_PREREQ(VERSION) @@ -181,6 +182,7 @@ m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl m4_require([_LT_CMD_RELOAD])dnl +m4_require([_LT_DECL_FILECMD])dnl m4_require([_LT_CHECK_MAGIC_METHOD])dnl m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl m4_require([_LT_CMD_OLD_ARCHIVE])dnl @@ -219,8 +221,8 @@ esac ofile=libtool can_build_shared=yes -# All known linkers require a '.a' archive for static linking (except MSVC, -# which needs '.lib'). +# All known linkers require a '.a' archive for static linking (except MSVC and +# ICC, which need '.lib'). libext=a with_gnu_ld=$lt_cv_prog_gnu_ld @@ -777,7 +779,7 @@ _LT_EOF # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? - sed '$q' "$ltmain" >> "$cfgfile" \ + $SED '$q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || @@ -1041,8 +1043,8 @@ int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD - echo "$AR cr libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD - $AR cr libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD + echo "$AR $AR_FLAGS libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD + $AR $AR_FLAGS libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD cat > conftest.c << _LT_EOF @@ -1066,17 +1068,12 @@ _LT_EOF _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; - darwin*) # darwin 5.x on - # if running on 10.5 or later, the deployment target defaults - # to the OS version, if on x86, and 10.4, the deployment - # target defaults to 10.4. Don't you love it? - case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in - 10.0,*86*-darwin8*|10.0,*-darwin[[912]]*) - _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; - 10.[[012]][[,.]]*) - _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; - 10.*|11.*) - _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; + darwin*) + case $MACOSX_DEPLOYMENT_TARGET,$host in + 10.[[012]],*|,*powerpc*-darwin[[5-8]]*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; + *) + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; esac ;; esac @@ -1125,12 +1122,12 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES], output_verbose_link_cmd=func_echo_all _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" - _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" - _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" + _LT_TAGVAR(archive_expsym_cmds, $1)="$SED 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" + _LT_TAGVAR(module_expsym_cmds, $1)="$SED -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" m4_if([$1], [CXX], [ if test yes != "$lt_cv_apple_cc_single_mod"; then _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil" - _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil" + _LT_TAGVAR(archive_expsym_cmds, $1)="$SED 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil" fi ],[]) else @@ -1244,7 +1241,8 @@ _LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) # _LT_WITH_SYSROOT # ---------------- AC_DEFUN([_LT_WITH_SYSROOT], -[AC_MSG_CHECKING([for sysroot]) +[m4_require([_LT_DECL_SED])dnl +AC_MSG_CHECKING([for sysroot]) AC_ARG_WITH([sysroot], [AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@], [Search for dependent libraries within DIR (or the compiler's sysroot @@ -1261,7 +1259,7 @@ case $with_sysroot in #( fi ;; #( /*) - lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"` ;; #( no|'') ;; #( @@ -1291,7 +1289,7 @@ ia64-*-hpux*) # options accordingly. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then - case `/usr/bin/file conftest.$ac_objext` in + case `$FILECMD conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE=32 ;; @@ -1308,7 +1306,7 @@ ia64-*-hpux*) echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then if test yes = "$lt_cv_prog_gnu_ld"; then - case `/usr/bin/file conftest.$ac_objext` in + case `$FILECMD conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; @@ -1320,7 +1318,7 @@ ia64-*-hpux*) ;; esac else - case `/usr/bin/file conftest.$ac_objext` in + case `$FILECMD conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; @@ -1342,7 +1340,7 @@ mips64*-*linux*) echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then emul=elf - case `/usr/bin/file conftest.$ac_objext` in + case `$FILECMD conftest.$ac_objext` in *32-bit*) emul="${emul}32" ;; @@ -1350,7 +1348,7 @@ mips64*-*linux*) emul="${emul}64" ;; esac - case `/usr/bin/file conftest.$ac_objext` in + case `$FILECMD conftest.$ac_objext` in *MSB*) emul="${emul}btsmip" ;; @@ -1358,7 +1356,7 @@ mips64*-*linux*) emul="${emul}ltsmip" ;; esac - case `/usr/bin/file conftest.$ac_objext` in + case `$FILECMD conftest.$ac_objext` in *N32*) emul="${emul}n32" ;; @@ -1378,14 +1376,14 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # not appear in the list. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then - case `/usr/bin/file conftest.o` in + case `$FILECMD conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) - case `/usr/bin/file conftest.o` in + case `$FILECMD conftest.o` in *x86-64*) LD="${LD-ld} -m elf32_x86_64" ;; @@ -1453,7 +1451,7 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # options accordingly. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then - case `/usr/bin/file conftest.o` in + case `$FILECMD conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) @@ -1492,9 +1490,22 @@ need_locks=$enable_libtool_lock m4_defun([_LT_PROG_AR], [AC_CHECK_TOOLS(AR, [ar], false) : ${AR=ar} -: ${AR_FLAGS=cr} _LT_DECL([], [AR], [1], [The archiver]) -_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) + +# Use ARFLAGS variable as AR's operation code to sync the variable naming with +# Automake. If both AR_FLAGS and ARFLAGS are specified, AR_FLAGS should have +# higher priority because thats what people were doing historically (setting +# ARFLAGS for automake and AR_FLAGS for libtool). FIXME: Make the AR_FLAGS +# variable obsoleted/removed. + +test ${AR_FLAGS+y} || AR_FLAGS=${ARFLAGS-cr} +lt_ar_flags=$AR_FLAGS +_LT_DECL([], [lt_ar_flags], [0], [Flags to create an archive (by configure)]) + +# Make AR_FLAGS overridable by 'make ARFLAGS='. Don't try to run-time override +# by AR_FLAGS because that was never working and AR_FLAGS is about to die. +_LT_DECL([], [AR_FLAGS], [\@S|@{ARFLAGS-"\@S|@lt_ar_flags"}], + [Flags to create an archive]) AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], [lt_cv_ar_at_file=no @@ -1713,7 +1724,7 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl lt_cv_sys_max_cmd_len=8192; ;; - bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*) + bitrig* | darwin* | dragonfly* | freebsd* | midnightbsd* | netbsd* | openbsd*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` @@ -1756,7 +1767,7 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then - lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` + lt_cv_sys_max_cmd_len=`echo $kargmax | $SED 's/.*[[ ]]//'` else lt_cv_sys_max_cmd_len=32768 fi @@ -2206,26 +2217,35 @@ m4_defun([_LT_CMD_STRIPLIB], striplib= old_striplib= AC_MSG_CHECKING([whether stripping libraries is possible]) -if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then - test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" - test -z "$striplib" && striplib="$STRIP --strip-unneeded" - AC_MSG_RESULT([yes]) +if test -z "$STRIP"; then + AC_MSG_RESULT([no]) else -# FIXME - insert some real tests, host_os isn't really good enough - case $host_os in - darwin*) - if test -n "$STRIP"; then + if $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + old_striplib="$STRIP --strip-debug" + striplib="$STRIP --strip-unneeded" + AC_MSG_RESULT([yes]) + else + case $host_os in + darwin*) + # FIXME - insert some real tests, host_os isn't really good enough striplib="$STRIP -x" old_striplib="$STRIP -S" AC_MSG_RESULT([yes]) - else + ;; + freebsd*) + if $STRIP -V 2>&1 | $GREP "elftoolchain" >/dev/null; then + old_striplib="$STRIP --strip-debug" + striplib="$STRIP --strip-unneeded" + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + ;; + *) AC_MSG_RESULT([no]) - fi - ;; - *) - AC_MSG_RESULT([no]) - ;; - esac + ;; + esac + fi fi _LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) _LT_DECL([], [striplib], [1]) @@ -2548,7 +2568,7 @@ cygwin* | mingw* | pw32* | cegcc*) case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' - soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' + soname_spec='`echo $libname | $SED -e 's/^lib/cyg/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) ;; @@ -2558,14 +2578,14 @@ m4_if([$1], [],[ ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' - library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' + library_names_spec='`echo $libname | $SED -e 's/^lib/pw/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' ;; esac dynamic_linker='Win32 ld.exe' ;; - *,cl*) - # Native MSVC + *,cl* | *,icl*) + # Native MSVC or ICC libname_spec='$name' soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' library_names_spec='$libname.dll.lib' @@ -2584,7 +2604,7 @@ m4_if([$1], [],[ done IFS=$lt_save_ifs # Convert to MSYS style. - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form @@ -2621,7 +2641,7 @@ m4_if([$1], [],[ ;; *) - # Assume MSVC wrapper + # Assume MSVC and ICC wrapper library_names_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext $libname.lib' dynamic_linker='Win32 ld.exe' ;; @@ -2654,7 +2674,7 @@ dgux*) shlibpath_var=LD_LIBRARY_PATH ;; -freebsd* | dragonfly*) +freebsd* | dragonfly* | midnightbsd*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then @@ -3465,7 +3485,7 @@ beos*) bsdi[[45]]*) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)' - lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_cmd='$FILECMD -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; @@ -3499,14 +3519,14 @@ darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; -freebsd* | dragonfly*) +freebsd* | dragonfly* | midnightbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' - lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_cmd=$FILECMD lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac @@ -3520,7 +3540,7 @@ haiku*) ;; hpux10.20* | hpux11*) - lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_cmd=$FILECMD case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' @@ -3567,7 +3587,7 @@ netbsd* | netbsdelf*-gnu) newos6*) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' - lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_cmd=$FILECMD lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; @@ -3694,13 +3714,13 @@ else mingw*) lt_bad_file=conftest.nm/nofile ;; *) lt_bad_file=/dev/null ;; esac - case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in + case `"$tmp_nm" -B $lt_bad_file 2>&1 | $SED '1q'` in *$lt_bad_file* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break 2 ;; *) - case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + case `"$tmp_nm" -p /dev/null 2>&1 | $SED '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break 2 @@ -3726,7 +3746,7 @@ else # Let the user override the test. else AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) - case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in + case `$DUMPBIN -symbols -headers /dev/null 2>&1 | $SED '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols -headers" ;; @@ -3966,7 +3986,7 @@ esac if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Gets list of data symbols to import. - lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'" + lt_cv_sys_global_symbol_to_import="$SED -n -e 's/^I .* \(.*\)$/\1/p'" # Adjust the below global symbol transforms to fixup imported variables. lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" @@ -3984,20 +4004,20 @@ fi # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. -lt_cv_sys_global_symbol_to_cdecl="sed -n"\ +lt_cv_sys_global_symbol_to_cdecl="$SED -n"\ $lt_cdecl_hook\ " -e 's/^T .* \(.*\)$/extern int \1();/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address -lt_cv_sys_global_symbol_to_c_name_address="sed -n"\ +lt_cv_sys_global_symbol_to_c_name_address="$SED -n"\ $lt_c_name_hook\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" # Transform an extracted symbol line into symbol name with lib prefix and # symbol address. -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\ +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="$SED -n"\ $lt_c_name_lib_hook\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ @@ -4021,7 +4041,7 @@ for ac_symprfx in "" "_"; do if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function, # D for any global variable and I for any imported variable. - # Also find C++ and __fastcall symbols from MSVC++, + # Also find C++ and __fastcall symbols from MSVC++ or ICC, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK ['"\ " {last_section=section; section=\$ 3};"\ @@ -4039,9 +4059,9 @@ for ac_symprfx in "" "_"; do " s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx]" else - lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + lt_cv_sys_global_symbol_pipe="$SED -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi - lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | $SED '/ __gnu_lto/d'" # Check to see that the pipe works correctly. pipe_works=no @@ -4329,7 +4349,7 @@ m4_if([$1], [CXX], [ ;; esac ;; - freebsd* | dragonfly*) + freebsd* | dragonfly* | midnightbsd*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) @@ -4412,7 +4432,7 @@ m4_if([$1], [CXX], [ _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) - case `$CC -V 2>&1 | sed 5q` in + case `$CC -V 2>&1 | $SED 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' @@ -4754,7 +4774,7 @@ m4_if([$1], [CXX], [ _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) - case `$CC -V 2>&1 | sed 5q` in + case `$CC -V 2>&1 | $SED 5q` in *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*) # Sun Fortran 8.3 passes all unrecognized flags to the linker _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' @@ -4937,7 +4957,7 @@ m4_if([$1], [CXX], [ if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else - _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' fi ;; pw32*) @@ -4945,7 +4965,7 @@ m4_if([$1], [CXX], [ ;; cygwin* | mingw* | cegcc*) case $cc_basename in - cl*) + cl* | icl*) _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' ;; *) @@ -5005,15 +5025,15 @@ dnl Note also adjust exclude_expsyms for C++ above. case $host_os in cygwin* | mingw* | pw32* | cegcc*) - # FIXME: the MSVC++ port hasn't been tested in a loooong time + # FIXME: the MSVC++ and ICC port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. + # Microsoft Visual C++ or Intel C++ Compiler. if test yes != "$GCC"; then with_gnu_ld=no fi ;; interix*) - # we just hope/assume this is gcc and not c89 (= MSVC++) + # we just hope/assume this is gcc and not c89 (= MSVC++ or ICC) with_gnu_ld=yes ;; openbsd* | bitrig*) @@ -5068,7 +5088,7 @@ dnl Note also adjust exclude_expsyms for C++ above. _LT_TAGVAR(whole_archive_flag_spec, $1)= fi supports_anon_versioning=no - case `$LD -v | $SED -e 's/([^)]\+)\s\+//' 2>&1` in + case `$LD -v | $SED -e 's/([[^)]]\+)\s\+//' 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... @@ -5180,6 +5200,7 @@ _LT_EOF emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' ;; interix[[3-9]]*) @@ -5194,7 +5215,7 @@ _LT_EOF # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$SED "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) @@ -5237,7 +5258,7 @@ _LT_EOF _LT_TAGVAR(compiler_needs_object, $1)=yes ;; esac - case `$CC -V 2>&1 | sed 5q` in + case `$CC -V 2>&1 | $SED 5q` in *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes @@ -5249,13 +5270,14 @@ _LT_EOF if test yes = "$supports_anon_versioning"; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' fi case $cc_basename in tcc*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='-rdynamic' ;; xlf* | bgf* | bgxlf* | mpixlf*) @@ -5265,7 +5287,7 @@ _LT_EOF _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test yes = "$supports_anon_versioning"; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi @@ -5397,7 +5419,7 @@ _LT_EOF if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else - _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no @@ -5580,12 +5602,12 @@ _LT_EOF cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. + # Microsoft Visual C++ or Intel C++ Compiler. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. case $cc_basename in - cl*) - # Native MSVC + cl* | icl*) + # Native MSVC or ICC _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes @@ -5626,7 +5648,7 @@ _LT_EOF fi' ;; *) - # Assume MSVC wrapper + # Assume MSVC and ICC wrapper _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Tell ltmain to make .lib files, not .a files. @@ -5674,7 +5696,7 @@ _LT_EOF ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | dragonfly*) + freebsd* | dragonfly* | midnightbsd*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes @@ -5815,6 +5837,7 @@ _LT_EOF # Fabrice Bellard et al's Tiny C Compiler _LT_TAGVAR(ld_shlibs, $1)=yes _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' ;; esac ;; @@ -5886,6 +5909,7 @@ _LT_EOF emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' ;; osf3*) @@ -6656,8 +6680,8 @@ if test yes != "$_lt_caught_CXX_error"; then cygwin* | mingw* | pw32* | cegcc*) case $GXX,$cc_basename in - ,cl* | no,cl*) - # Native MSVC + ,cl* | no,cl* | ,icl* | no,icl*) + # Native MSVC or ICC # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' @@ -6755,6 +6779,7 @@ if test yes != "$_lt_caught_CXX_error"; then emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' ;; dgux*) @@ -6785,7 +6810,7 @@ if test yes != "$_lt_caught_CXX_error"; then _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; - freebsd* | dragonfly*) + freebsd* | dragonfly* | midnightbsd*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions _LT_TAGVAR(ld_shlibs, $1)=yes @@ -6922,7 +6947,7 @@ if test yes != "$_lt_caught_CXX_error"; then # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$SED "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in @@ -7062,13 +7087,13 @@ if test yes != "$_lt_caught_CXX_error"; then _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' if test yes = "$supports_anon_versioning"; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' fi ;; *) - case `$CC -V 2>&1 | sed 5q` in + case `$CC -V 2>&1 | $SED 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' @@ -8214,6 +8239,14 @@ _LT_DECL([], [DLLTOOL], [1], [DLL creation program]) AC_SUBST([DLLTOOL]) ]) +# _LT_DECL_FILECMD +# ---------------- +# Check for a file(cmd) program that can be used to detect file type and magic +m4_defun([_LT_DECL_FILECMD], +[AC_CHECK_TOOL([FILECMD], [file], [:]) +_LT_DECL([], [FILECMD], [1], [A file(cmd) program that detects file types]) +])# _LD_DECL_FILECMD + # _LT_DECL_SED # ------------ # Check for a fully-functional sed program, that truncates diff --git a/m4/ltoptions.m4 b/m4/ltoptions.m4 index 94b08297..b0b5e9c2 100644 --- a/m4/ltoptions.m4 +++ b/m4/ltoptions.m4 @@ -1,7 +1,7 @@ # Helper functions for option handling. -*- Autoconf -*- # -# Copyright (C) 2004-2005, 2007-2009, 2011-2015 Free Software -# Foundation, Inc. +# Copyright (C) 2004-2005, 2007-2009, 2011-2019, 2021-2022 Free +# Software Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives diff --git a/m4/ltsugar.m4 b/m4/ltsugar.m4 index 48bc9344..902508bd 100644 --- a/m4/ltsugar.m4 +++ b/m4/ltsugar.m4 @@ -1,6 +1,6 @@ # ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- # -# Copyright (C) 2004-2005, 2007-2008, 2011-2015 Free Software +# Copyright (C) 2004-2005, 2007-2008, 2011-2019, 2021-2022 Free Software # Foundation, Inc. # Written by Gary V. Vaughan, 2004 # diff --git a/m4/ltversion.m4 b/m4/ltversion.m4 index fa04b52a..b155d0ac 100644 --- a/m4/ltversion.m4 +++ b/m4/ltversion.m4 @@ -1,6 +1,7 @@ # ltversion.m4 -- version numbers -*- Autoconf -*- # -# Copyright (C) 2004, 2011-2015 Free Software Foundation, Inc. +# Copyright (C) 2004, 2011-2019, 2021-2022 Free Software Foundation, +# Inc. # Written by Scott James Remnant, 2004 # # This file is free software; the Free Software Foundation gives @@ -9,15 +10,15 @@ # @configure_input@ -# serial 4179 ltversion.m4 +# serial 4245 ltversion.m4 # This file is part of GNU Libtool -m4_define([LT_PACKAGE_VERSION], [2.4.6]) -m4_define([LT_PACKAGE_REVISION], [2.4.6]) +m4_define([LT_PACKAGE_VERSION], [2.4.7]) +m4_define([LT_PACKAGE_REVISION], [2.4.7]) AC_DEFUN([LTVERSION_VERSION], -[macro_version='2.4.6' -macro_revision='2.4.6' +[macro_version='2.4.7' +macro_revision='2.4.7' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) diff --git a/m4/lt~obsolete.m4 b/m4/lt~obsolete.m4 index c6b26f88..0f7a8759 100644 --- a/m4/lt~obsolete.m4 +++ b/m4/lt~obsolete.m4 @@ -1,7 +1,7 @@ # lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # -# Copyright (C) 2004-2005, 2007, 2009, 2011-2015 Free Software -# Foundation, Inc. +# Copyright (C) 2004-2005, 2007, 2009, 2011-2019, 2021-2022 Free +# Software Foundation, Inc. # Written by Scott James Remnant, 2004. # # This file is free software; the Free Software Foundation gives diff --git a/man/Makefile.in b/man/Makefile.in index 41773ad7..5eef178c 100644 --- a/man/Makefile.in +++ b/man/Makefile.in @@ -260,6 +260,7 @@ EGREP = @EGREP@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ +FILECMD = @FILECMD@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ diff --git a/man/config.xml b/man/config.xml index ba226717..f3420361 100644 --- a/man/config.xml +++ b/man/config.xml @@ -1,2 +1,2 @@ - + diff --git a/man/cs/Makefile.in b/man/cs/Makefile.in index a4a88c88..a04a706b 100644 --- a/man/cs/Makefile.in +++ b/man/cs/Makefile.in @@ -193,6 +193,7 @@ EGREP = @EGREP@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ +FILECMD = @FILECMD@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ diff --git a/man/da/Makefile.in b/man/da/Makefile.in index e042b371..c192e7ac 100644 --- a/man/da/Makefile.in +++ b/man/da/Makefile.in @@ -195,6 +195,7 @@ EGREP = @EGREP@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ +FILECMD = @FILECMD@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ diff --git a/man/da/man1/chfn.1 b/man/da/man1/chfn.1 index e76758f0..a999af8d 100644 --- a/man/da/man1/chfn.1 +++ b/man/da/man1/chfn.1 @@ -2,12 +2,12 @@ .\" Title: chfn .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Danish .\" -.TH "CHFN" "1" "23/03/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "CHFN" "1" "21/06/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/da/man1/groups.1 b/man/da/man1/groups.1 index 10b1fb70..81f2be2b 100644 --- a/man/da/man1/groups.1 +++ b/man/da/man1/groups.1 @@ -2,12 +2,12 @@ .\" Title: groups .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Danish .\" -.TH "GROUPS" "1" "23/03/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "GROUPS" "1" "21/06/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/da/man1/id.1 b/man/da/man1/id.1 index 9edb0944..6854332b 100644 --- a/man/da/man1/id.1 +++ b/man/da/man1/id.1 @@ -2,12 +2,12 @@ .\" Title: id .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Danish .\" -.TH "ID" "1" "23/03/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "ID" "1" "21/06/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/da/man1/newgrp.1 b/man/da/man1/newgrp.1 index 5a8ecd91..fed91ded 100644 --- a/man/da/man1/newgrp.1 +++ b/man/da/man1/newgrp.1 @@ -2,12 +2,12 @@ .\" Title: newgrp .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Danish .\" -.TH "NEWGRP" "1" "23/03/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "NEWGRP" "1" "21/06/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/da/man1/sg.1 b/man/da/man1/sg.1 index 6b74bb7d..cc288b54 100644 --- a/man/da/man1/sg.1 +++ b/man/da/man1/sg.1 @@ -2,12 +2,12 @@ .\" Title: sg .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Danish .\" -.TH "SG" "1" "23/03/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "SG" "1" "21/06/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/da/man5/gshadow.5 b/man/da/man5/gshadow.5 index 1927c885..56a4e557 100644 --- a/man/da/man5/gshadow.5 +++ b/man/da/man5/gshadow.5 @@ -2,12 +2,12 @@ .\" Title: gshadow .\" Author: Nicolas Fran\(,cois .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Danish .\" -.TH "GSHADOW" "5" "23/03/2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "GSHADOW" "5" "21/06/2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/da/man8/groupdel.8 b/man/da/man8/groupdel.8 index 017f3053..e370ffec 100644 --- a/man/da/man8/groupdel.8 +++ b/man/da/man8/groupdel.8 @@ -2,12 +2,12 @@ .\" Title: groupdel .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Danish .\" -.TH "GROUPDEL" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "GROUPDEL" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/da/man8/logoutd.8 b/man/da/man8/logoutd.8 index 31b974a4..88b506fe 100644 --- a/man/da/man8/logoutd.8 +++ b/man/da/man8/logoutd.8 @@ -2,12 +2,12 @@ .\" Title: logoutd .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Danish .\" -.TH "LOGOUTD" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "LOGOUTD" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/da/man8/nologin.8 b/man/da/man8/nologin.8 index 77d2a653..c22b77cb 100644 --- a/man/da/man8/nologin.8 +++ b/man/da/man8/nologin.8 @@ -2,12 +2,12 @@ .\" Title: nologin .\" Author: Nicolas Fran\(,cois .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Danish .\" -.TH "NOLOGIN" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "NOLOGIN" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/da/man8/vipw.8 b/man/da/man8/vipw.8 index 5e011be8..a586d71c 100644 --- a/man/da/man8/vipw.8 +++ b/man/da/man8/vipw.8 @@ -2,12 +2,12 @@ .\" Title: vipw .\" Author: Marek Micha\(/lkiewicz .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Danish .\" -.TH "VIPW" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "VIPW" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/de/Makefile.in b/man/de/Makefile.in index 49dc69e1..3c64eb6e 100644 --- a/man/de/Makefile.in +++ b/man/de/Makefile.in @@ -197,6 +197,7 @@ EGREP = @EGREP@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ +FILECMD = @FILECMD@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ diff --git a/man/de/man1/chage.1 b/man/de/man1/chage.1 index af9d652c..9d88d46e 100644 --- a/man/de/man1/chage.1 +++ b/man/de/man1/chage.1 @@ -2,12 +2,12 @@ .\" Title: chage .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23.03.2024 +.\" Date: 21.06.2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: German .\" -.TH "CHAGE" "1" "23.03.2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "CHAGE" "1" "21.06.2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/de/man1/chfn.1 b/man/de/man1/chfn.1 index 2f2ac908..458e2e6f 100644 --- a/man/de/man1/chfn.1 +++ b/man/de/man1/chfn.1 @@ -2,12 +2,12 @@ .\" Title: chfn .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23.03.2024 +.\" Date: 21.06.2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: German .\" -.TH "CHFN" "1" "23.03.2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "CHFN" "1" "21.06.2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/de/man1/chsh.1 b/man/de/man1/chsh.1 index db677db0..e7e73529 100644 --- a/man/de/man1/chsh.1 +++ b/man/de/man1/chsh.1 @@ -2,12 +2,12 @@ .\" Title: chsh .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23.03.2024 +.\" Date: 21.06.2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: German .\" -.TH "CHSH" "1" "23.03.2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "CHSH" "1" "21.06.2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/de/man1/expiry.1 b/man/de/man1/expiry.1 index f6e61369..b51c8365 100644 --- a/man/de/man1/expiry.1 +++ b/man/de/man1/expiry.1 @@ -2,12 +2,12 @@ .\" Title: expiry .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23.03.2024 +.\" Date: 21.06.2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: German .\" -.TH "EXPIRY" "1" "23.03.2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "EXPIRY" "1" "21.06.2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/de/man1/gpasswd.1 b/man/de/man1/gpasswd.1 index b7baffac..68f26250 100644 --- a/man/de/man1/gpasswd.1 +++ b/man/de/man1/gpasswd.1 @@ -2,12 +2,12 @@ .\" Title: gpasswd .\" Author: Rafal Maszkowski .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23.03.2024 +.\" Date: 21.06.2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: German .\" -.TH "GPASSWD" "1" "23.03.2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "GPASSWD" "1" "21.06.2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/de/man1/groups.1 b/man/de/man1/groups.1 index b963d047..d06b82e3 100644 --- a/man/de/man1/groups.1 +++ b/man/de/man1/groups.1 @@ -2,12 +2,12 @@ .\" Title: groups .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23.03.2024 +.\" Date: 21.06.2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: German .\" -.TH "GROUPS" "1" "23.03.2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "GROUPS" "1" "21.06.2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/de/man1/id.1 b/man/de/man1/id.1 index a23b4f35..26b40b1d 100644 --- a/man/de/man1/id.1 +++ b/man/de/man1/id.1 @@ -2,12 +2,12 @@ .\" Title: id .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23.03.2024 +.\" Date: 21.06.2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: German .\" -.TH "ID" "1" "23.03.2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "ID" "1" "21.06.2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/de/man1/login.1 b/man/de/man1/login.1 index e2fb66e9..2262e3ea 100644 --- a/man/de/man1/login.1 +++ b/man/de/man1/login.1 @@ -2,12 +2,12 @@ .\" Title: login .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23.03.2024 +.\" Date: 21.06.2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: German .\" -.TH "LOGIN" "1" "23.03.2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "LOGIN" "1" "21.06.2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/de/man1/newgrp.1 b/man/de/man1/newgrp.1 index 9946f374..cc4bcffa 100644 --- a/man/de/man1/newgrp.1 +++ b/man/de/man1/newgrp.1 @@ -2,12 +2,12 @@ .\" Title: newgrp .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23.03.2024 +.\" Date: 21.06.2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: German .\" -.TH "NEWGRP" "1" "23.03.2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "NEWGRP" "1" "21.06.2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/de/man1/passwd.1 b/man/de/man1/passwd.1 index 5e6c102c..0ee0d4f7 100644 --- a/man/de/man1/passwd.1 +++ b/man/de/man1/passwd.1 @@ -2,12 +2,12 @@ .\" Title: passwd .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23.03.2024 +.\" Date: 21.06.2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: German .\" -.TH "PASSWD" "1" "23.03.2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "PASSWD" "1" "21.06.2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/de/man1/sg.1 b/man/de/man1/sg.1 index d4e095ff..edae3273 100644 --- a/man/de/man1/sg.1 +++ b/man/de/man1/sg.1 @@ -2,12 +2,12 @@ .\" Title: sg .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23.03.2024 +.\" Date: 21.06.2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: German .\" -.TH "SG" "1" "23.03.2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "SG" "1" "21.06.2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/de/man1/su.1 b/man/de/man1/su.1 index fb3a3927..598d4cb2 100644 --- a/man/de/man1/su.1 +++ b/man/de/man1/su.1 @@ -2,12 +2,12 @@ .\" Title: su .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23.03.2024 +.\" Date: 21.06.2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: German .\" -.TH "SU" "1" "23.03.2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "SU" "1" "21.06.2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/de/man3/shadow.3 b/man/de/man3/shadow.3 index f2ac79ec..eb6e81cc 100644 --- a/man/de/man3/shadow.3 +++ b/man/de/man3/shadow.3 @@ -2,12 +2,12 @@ .\" Title: shadow .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23.03.2024 +.\" Date: 21.06.2024 .\" Manual: Library Calls -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: German .\" -.TH "SHADOW" "3" "23.03.2024" "shadow\-utils 4\&.15\&.1" "Library Calls" +.TH "SHADOW" "3" "21.06.2024" "shadow\-utils 4\&.15\&.2" "Library Calls" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/de/man5/faillog.5 b/man/de/man5/faillog.5 index d8beb9f9..65517903 100644 --- a/man/de/man5/faillog.5 +++ b/man/de/man5/faillog.5 @@ -2,12 +2,12 @@ .\" Title: faillog .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23.03.2024 +.\" Date: 21.06.2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: German .\" -.TH "FAILLOG" "5" "23.03.2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuratio" +.TH "FAILLOG" "5" "21.06.2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuratio" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/de/man5/gshadow.5 b/man/de/man5/gshadow.5 index 6747839d..0f182179 100644 --- a/man/de/man5/gshadow.5 +++ b/man/de/man5/gshadow.5 @@ -2,12 +2,12 @@ .\" Title: gshadow .\" Author: Nicolas Fran\(,cois .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23.03.2024 +.\" Date: 21.06.2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: German .\" -.TH "GSHADOW" "5" "23.03.2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "GSHADOW" "5" "21.06.2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/de/man5/limits.5 b/man/de/man5/limits.5 index 40d21333..29ebc2ce 100644 --- a/man/de/man5/limits.5 +++ b/man/de/man5/limits.5 @@ -2,12 +2,12 @@ .\" Title: limits .\" Author: Luca Berra .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23.03.2024 +.\" Date: 21.06.2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: German .\" -.TH "LIMITS" "5" "23.03.2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "LIMITS" "5" "21.06.2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/de/man5/login.access.5 b/man/de/man5/login.access.5 index 234f1641..4e3730eb 100644 --- a/man/de/man5/login.access.5 +++ b/man/de/man5/login.access.5 @@ -2,12 +2,12 @@ .\" Title: login.access .\" Author: Marek Micha\(/lkiewicz .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23.03.2024 +.\" Date: 21.06.2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: German .\" -.TH "LOGIN\&.ACCESS" "5" "23.03.2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "LOGIN\&.ACCESS" "5" "21.06.2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/de/man5/login.defs.5 b/man/de/man5/login.defs.5 index a5554b7e..5a3f6ca1 100644 --- a/man/de/man5/login.defs.5 +++ b/man/de/man5/login.defs.5 @@ -2,12 +2,12 @@ .\" Title: login.defs .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23.03.2024 +.\" Date: 21.06.2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: German .\" -.TH "LOGIN\&.DEFS" "5" "23.03.2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "LOGIN\&.DEFS" "5" "21.06.2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/de/man5/passwd.5 b/man/de/man5/passwd.5 index daf018b8..620a79e7 100644 --- a/man/de/man5/passwd.5 +++ b/man/de/man5/passwd.5 @@ -2,12 +2,12 @@ .\" Title: passwd .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23.03.2024 +.\" Date: 21.06.2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: German .\" -.TH "PASSWD" "5" "23.03.2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "PASSWD" "5" "21.06.2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/de/man5/porttime.5 b/man/de/man5/porttime.5 index 3eba5ef9..c6aae574 100644 --- a/man/de/man5/porttime.5 +++ b/man/de/man5/porttime.5 @@ -2,12 +2,12 @@ .\" Title: porttime .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23.03.2024 +.\" Date: 21.06.2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: German .\" -.TH "PORTTIME" "5" "23.03.2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "PORTTIME" "5" "21.06.2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/de/man5/shadow.5 b/man/de/man5/shadow.5 index 8223ee89..aa9ced4a 100644 --- a/man/de/man5/shadow.5 +++ b/man/de/man5/shadow.5 @@ -2,12 +2,12 @@ .\" Title: shadow .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23.03.2024 +.\" Date: 21.06.2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: German .\" -.TH "SHADOW" "5" "23.03.2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "SHADOW" "5" "21.06.2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/de/man5/suauth.5 b/man/de/man5/suauth.5 index d9c35a32..85d03b41 100644 --- a/man/de/man5/suauth.5 +++ b/man/de/man5/suauth.5 @@ -2,12 +2,12 @@ .\" Title: suauth .\" Author: Marek Micha\(/lkiewicz .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23.03.2024 +.\" Date: 21.06.2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: German .\" -.TH "SUAUTH" "5" "23.03.2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "SUAUTH" "5" "21.06.2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/de/man8/chgpasswd.8 b/man/de/man8/chgpasswd.8 index 09c5c080..6123f2a0 100644 --- a/man/de/man8/chgpasswd.8 +++ b/man/de/man8/chgpasswd.8 @@ -2,12 +2,12 @@ .\" Title: chgpasswd .\" Author: Thomas K\(/loczko .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23.03.2024 +.\" Date: 21.06.2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: German .\" -.TH "CHGPASSWD" "8" "23.03.2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "CHGPASSWD" "8" "21.06.2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/de/man8/chpasswd.8 b/man/de/man8/chpasswd.8 index 3a18a6d8..c524312c 100644 --- a/man/de/man8/chpasswd.8 +++ b/man/de/man8/chpasswd.8 @@ -2,12 +2,12 @@ .\" Title: chpasswd .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23.03.2024 +.\" Date: 21.06.2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: German .\" -.TH "CHPASSWD" "8" "23.03.2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "CHPASSWD" "8" "21.06.2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/de/man8/faillog.8 b/man/de/man8/faillog.8 index dd318d8e..a04d0de8 100644 --- a/man/de/man8/faillog.8 +++ b/man/de/man8/faillog.8 @@ -2,12 +2,12 @@ .\" Title: faillog .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23.03.2024 +.\" Date: 21.06.2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: German .\" -.TH "FAILLOG" "8" "23.03.2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "FAILLOG" "8" "21.06.2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/de/man8/groupadd.8 b/man/de/man8/groupadd.8 index 2f325dba..3caed39d 100644 --- a/man/de/man8/groupadd.8 +++ b/man/de/man8/groupadd.8 @@ -2,12 +2,12 @@ .\" Title: groupadd .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23.03.2024 +.\" Date: 21.06.2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: German .\" -.TH "GROUPADD" "8" "23.03.2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "GROUPADD" "8" "21.06.2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/de/man8/groupdel.8 b/man/de/man8/groupdel.8 index 96d944d4..4db2fadf 100644 --- a/man/de/man8/groupdel.8 +++ b/man/de/man8/groupdel.8 @@ -2,12 +2,12 @@ .\" Title: groupdel .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23.03.2024 +.\" Date: 21.06.2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: German .\" -.TH "GROUPDEL" "8" "23.03.2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "GROUPDEL" "8" "21.06.2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/de/man8/groupmems.8 b/man/de/man8/groupmems.8 index 14052558..f741428b 100644 --- a/man/de/man8/groupmems.8 +++ b/man/de/man8/groupmems.8 @@ -2,12 +2,12 @@ .\" Title: groupmems .\" Author: George Kraft, IV .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23.03.2024 +.\" Date: 21.06.2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: German .\" -.TH "GROUPMEMS" "8" "23.03.2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "GROUPMEMS" "8" "21.06.2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/de/man8/groupmod.8 b/man/de/man8/groupmod.8 index a697cb8f..4117b744 100644 --- a/man/de/man8/groupmod.8 +++ b/man/de/man8/groupmod.8 @@ -2,12 +2,12 @@ .\" Title: groupmod .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23.03.2024 +.\" Date: 21.06.2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: German .\" -.TH "GROUPMOD" "8" "23.03.2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "GROUPMOD" "8" "21.06.2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/de/man8/grpck.8 b/man/de/man8/grpck.8 index 4ebb733e..72f27790 100644 --- a/man/de/man8/grpck.8 +++ b/man/de/man8/grpck.8 @@ -2,12 +2,12 @@ .\" Title: grpck .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23.03.2024 +.\" Date: 21.06.2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: German .\" -.TH "GRPCK" "8" "23.03.2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "GRPCK" "8" "21.06.2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/de/man8/lastlog.8 b/man/de/man8/lastlog.8 index ff7525f0..dc4c6730 100644 --- a/man/de/man8/lastlog.8 +++ b/man/de/man8/lastlog.8 @@ -2,12 +2,12 @@ .\" Title: lastlog .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23.03.2024 +.\" Date: 21.06.2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: German .\" -.TH "LASTLOG" "8" "23.03.2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "LASTLOG" "8" "21.06.2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -128,5 +128,5 @@ Datenbank mit Zeiten der letzten Anmeldung der Benutzer Gro\(sse L\(:ucken in den Benutzerkennungen haben zur Folge, dass das Lastlog\-Programm l\(:angere Zeit nichts auf den Bildschirm ausgibt\&. Wenn sich z\&.B\&. in der Lastlog\-Datenbank kein Eintrag f\(:ur Benutzer mit der Kennung zwischen 170 und 800 befindet, wird es, w\(:ahrend der Verarbeitung der Eintr\(:age zu den Kennungen 171 bis 799, scheinen, als sei lastlog stehen geblieben\&. .PP Having high UIDs can create problems when handling the - /var/log/lastlog +/var/log/lastlog with external tools\&. Although the actual file is sparse and does not use too much space, certain applications are not designed to identify sparse files by default and may require a specific option to handle them\&. diff --git a/man/de/man8/logoutd.8 b/man/de/man8/logoutd.8 index b2aa70f2..e9cad468 100644 --- a/man/de/man8/logoutd.8 +++ b/man/de/man8/logoutd.8 @@ -2,12 +2,12 @@ .\" Title: logoutd .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23.03.2024 +.\" Date: 21.06.2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: German .\" -.TH "LOGOUTD" "8" "23.03.2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "LOGOUTD" "8" "21.06.2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/de/man8/newusers.8 b/man/de/man8/newusers.8 index 960de1f1..0a4b9fcd 100644 --- a/man/de/man8/newusers.8 +++ b/man/de/man8/newusers.8 @@ -2,12 +2,12 @@ .\" Title: newusers .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23.03.2024 +.\" Date: 21.06.2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: German .\" -.TH "NEWUSERS" "8" "23.03.2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "NEWUSERS" "8" "21.06.2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/de/man8/nologin.8 b/man/de/man8/nologin.8 index 6724aa3c..57ece97c 100644 --- a/man/de/man8/nologin.8 +++ b/man/de/man8/nologin.8 @@ -2,12 +2,12 @@ .\" Title: nologin .\" Author: Nicolas Fran\(,cois .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23.03.2024 +.\" Date: 21.06.2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: German .\" -.TH "NOLOGIN" "8" "23.03.2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "NOLOGIN" "8" "21.06.2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/de/man8/pwck.8 b/man/de/man8/pwck.8 index 5687d844..f3cd6541 100644 --- a/man/de/man8/pwck.8 +++ b/man/de/man8/pwck.8 @@ -2,12 +2,12 @@ .\" Title: pwck .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23.03.2024 +.\" Date: 21.06.2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: German .\" -.TH "PWCK" "8" "23.03.2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "PWCK" "8" "21.06.2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/de/man8/pwconv.8 b/man/de/man8/pwconv.8 index 3aa60796..98cd6027 100644 --- a/man/de/man8/pwconv.8 +++ b/man/de/man8/pwconv.8 @@ -2,12 +2,12 @@ .\" Title: pwconv .\" Author: Marek Micha\(/lkiewicz .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23.03.2024 +.\" Date: 21.06.2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: German .\" -.TH "PWCONV" "8" "23.03.2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "PWCONV" "8" "21.06.2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/de/man8/sulogin.8 b/man/de/man8/sulogin.8 index d2fa19ff..1244de9d 100644 --- a/man/de/man8/sulogin.8 +++ b/man/de/man8/sulogin.8 @@ -2,12 +2,12 @@ .\" Title: sulogin .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23.03.2024 +.\" Date: 21.06.2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: German .\" -.TH "SULOGIN" "8" "23.03.2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "SULOGIN" "8" "21.06.2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/de/man8/useradd.8 b/man/de/man8/useradd.8 index 8d1aad2f..7920dbf9 100644 --- a/man/de/man8/useradd.8 +++ b/man/de/man8/useradd.8 @@ -2,12 +2,12 @@ .\" Title: useradd .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23.03.2024 +.\" Date: 21.06.2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: German .\" -.TH "USERADD" "8" "23.03.2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "USERADD" "8" "21.06.2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -493,7 +493,7 @@ Usernames may contain only lower and upper case letters, digits, underscores, or \fBls\fR output\&. .PP -Benutzernamen d\(:urfen nur bis zu 32 Zeichen lang sein\&. +Benutzernamen d\(:urfen nur bis zu 256 Zeichen lang sein\&. .SH "KONFIGURATION" .PP The following configuration variables in diff --git a/man/de/man8/userdel.8 b/man/de/man8/userdel.8 index 68520e9a..752e07fe 100644 --- a/man/de/man8/userdel.8 +++ b/man/de/man8/userdel.8 @@ -2,12 +2,12 @@ .\" Title: userdel .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23.03.2024 +.\" Date: 21.06.2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: German .\" -.TH "USERDEL" "8" "23.03.2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "USERDEL" "8" "21.06.2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/de/man8/usermod.8 b/man/de/man8/usermod.8 index 4c5b8202..84a76b6b 100644 --- a/man/de/man8/usermod.8 +++ b/man/de/man8/usermod.8 @@ -2,12 +2,12 @@ .\" Title: usermod .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23.03.2024 +.\" Date: 21.06.2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: German .\" -.TH "USERMOD" "8" "23.03.2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "USERMOD" "8" "21.06.2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/de/man8/vipw.8 b/man/de/man8/vipw.8 index 94923e27..865106c4 100644 --- a/man/de/man8/vipw.8 +++ b/man/de/man8/vipw.8 @@ -2,12 +2,12 @@ .\" Title: vipw .\" Author: Marek Micha\(/lkiewicz .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23.03.2024 +.\" Date: 21.06.2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: German .\" -.TH "VIPW" "8" "23.03.2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "VIPW" "8" "21.06.2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/es/Makefile.in b/man/es/Makefile.in index 19daaecd..2c658c79 100644 --- a/man/es/Makefile.in +++ b/man/es/Makefile.in @@ -158,6 +158,7 @@ EGREP = @EGREP@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ +FILECMD = @FILECMD@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ diff --git a/man/fi/Makefile.in b/man/fi/Makefile.in index c62e9080..468fe98e 100644 --- a/man/fi/Makefile.in +++ b/man/fi/Makefile.in @@ -189,6 +189,7 @@ EGREP = @EGREP@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ +FILECMD = @FILECMD@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ diff --git a/man/fr/Makefile.in b/man/fr/Makefile.in index 20bc80e6..daf92b5f 100644 --- a/man/fr/Makefile.in +++ b/man/fr/Makefile.in @@ -199,6 +199,7 @@ EGREP = @EGREP@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ +FILECMD = @FILECMD@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ diff --git a/man/fr/man1/chage.1 b/man/fr/man1/chage.1 index f104966c..364eb3f3 100644 --- a/man/fr/man1/chage.1 +++ b/man/fr/man1/chage.1 @@ -2,12 +2,12 @@ .\" Title: chage .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: French .\" -.TH "CHAGE" "1" "23/03/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "CHAGE" "1" "21/06/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/fr/man1/chfn.1 b/man/fr/man1/chfn.1 index 426deca3..92452c74 100644 --- a/man/fr/man1/chfn.1 +++ b/man/fr/man1/chfn.1 @@ -2,12 +2,12 @@ .\" Title: chfn .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: French .\" -.TH "CHFN" "1" "23/03/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "CHFN" "1" "21/06/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/fr/man1/chsh.1 b/man/fr/man1/chsh.1 index 042abfb6..18f1b655 100644 --- a/man/fr/man1/chsh.1 +++ b/man/fr/man1/chsh.1 @@ -2,12 +2,12 @@ .\" Title: chsh .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: French .\" -.TH "CHSH" "1" "23/03/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "CHSH" "1" "21/06/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/fr/man1/expiry.1 b/man/fr/man1/expiry.1 index 175fc0fb..0b237a9e 100644 --- a/man/fr/man1/expiry.1 +++ b/man/fr/man1/expiry.1 @@ -2,12 +2,12 @@ .\" Title: expiry .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: French .\" -.TH "EXPIRY" "1" "23/03/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "EXPIRY" "1" "21/06/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/fr/man1/gpasswd.1 b/man/fr/man1/gpasswd.1 index 756655da..c5042b7b 100644 --- a/man/fr/man1/gpasswd.1 +++ b/man/fr/man1/gpasswd.1 @@ -2,12 +2,12 @@ .\" Title: gpasswd .\" Author: rafal Maszkowski .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: French .\" -.TH "GPASSWD" "1" "23/03/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "GPASSWD" "1" "21/06/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/fr/man1/groups.1 b/man/fr/man1/groups.1 index dfadceab..09413e55 100644 --- a/man/fr/man1/groups.1 +++ b/man/fr/man1/groups.1 @@ -2,12 +2,12 @@ .\" Title: groups .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: French .\" -.TH "GROUPS" "1" "23/03/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "GROUPS" "1" "21/06/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/fr/man1/id.1 b/man/fr/man1/id.1 index 418d71fc..1f96b2ae 100644 --- a/man/fr/man1/id.1 +++ b/man/fr/man1/id.1 @@ -2,12 +2,12 @@ .\" Title: id .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: French .\" -.TH "ID" "1" "23/03/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "ID" "1" "21/06/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/fr/man1/login.1 b/man/fr/man1/login.1 index 6e5d6845..6d30e44f 100644 --- a/man/fr/man1/login.1 +++ b/man/fr/man1/login.1 @@ -2,12 +2,12 @@ .\" Title: login .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: French .\" -.TH "LOGIN" "1" "23/03/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "LOGIN" "1" "21/06/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/fr/man1/newgidmap.1 b/man/fr/man1/newgidmap.1 index 03f3bd6d..28bbee33 100644 --- a/man/fr/man1/newgidmap.1 +++ b/man/fr/man1/newgidmap.1 @@ -2,12 +2,12 @@ .\" Title: newgidmap .\" Author: Eric Biederman .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: French .\" -.TH "NEWGIDMAP" "1" "23/03/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "NEWGIDMAP" "1" "21/06/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -76,8 +76,8 @@ before setting Note that newgidmap may be used only once for a given process\&. .PP Instead of an integer process id, the first argument may be specified as -\fIfd:N\fR, where the integer N is the file descriptor number for the calling process\*(Aqs opened file for -/proc/[pid[\&. In this case, +\fIfd:N\fR, where the integer N is the file descriptor number for the calling process\*(Aqs opened file descriptor for the directory +/proc/[pid]\&. In this case, \fBnewgidmap\fR will use openat(2) diff --git a/man/fr/man1/newgrp.1 b/man/fr/man1/newgrp.1 index 592a499f..797403c1 100644 --- a/man/fr/man1/newgrp.1 +++ b/man/fr/man1/newgrp.1 @@ -2,12 +2,12 @@ .\" Title: newgrp .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: French .\" -.TH "NEWGRP" "1" "23/03/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "NEWGRP" "1" "21/06/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/fr/man1/newuidmap.1 b/man/fr/man1/newuidmap.1 index 9d83a1fe..da9c65d3 100644 --- a/man/fr/man1/newuidmap.1 +++ b/man/fr/man1/newuidmap.1 @@ -2,12 +2,12 @@ .\" Title: newuidmap .\" Author: Eric Biederman .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: French .\" -.TH "NEWUIDMAP" "1" "23/03/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "NEWUIDMAP" "1" "21/06/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -76,8 +76,8 @@ before setting Note that newuidmap may be used only once for a given process\&. .PP Instead of an integer process id, the first argument may be specified as -\fIfd:N\fR, where the integer N is the file descriptor number for the calling process\*(Aqs opened file for -/proc/[pid[\&. In this case, +\fIfd:N\fR, where the integer N is the file descriptor number for the calling process\*(Aqs opened file descriptor for the directory +/proc/[pid]\&. In this case, \fBnewuidmap\fR will use openat(2) diff --git a/man/fr/man1/passwd.1 b/man/fr/man1/passwd.1 index 1fe6ba39..ae6e0cbf 100644 --- a/man/fr/man1/passwd.1 +++ b/man/fr/man1/passwd.1 @@ -2,12 +2,12 @@ .\" Title: passwd .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: French .\" -.TH "PASSWD" "1" "23/03/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "PASSWD" "1" "21/06/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/fr/man1/sg.1 b/man/fr/man1/sg.1 index 57841b4b..967e2d33 100644 --- a/man/fr/man1/sg.1 +++ b/man/fr/man1/sg.1 @@ -2,12 +2,12 @@ .\" Title: sg .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: French .\" -.TH "SG" "1" "23/03/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "SG" "1" "21/06/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/fr/man1/su.1 b/man/fr/man1/su.1 index 3f5df6b3..2b586fb7 100644 --- a/man/fr/man1/su.1 +++ b/man/fr/man1/su.1 @@ -2,12 +2,12 @@ .\" Title: su .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: French .\" -.TH "SU" "1" "23/03/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "SU" "1" "21/06/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/fr/man3/shadow.3 b/man/fr/man3/shadow.3 index a72804cc..1e9729f6 100644 --- a/man/fr/man3/shadow.3 +++ b/man/fr/man3/shadow.3 @@ -2,12 +2,12 @@ .\" Title: shadow .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: Library Calls -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: French .\" -.TH "SHADOW" "3" "23/03/2024" "shadow\-utils 4\&.15\&.1" "Library Calls" +.TH "SHADOW" "3" "21/06/2024" "shadow\-utils 4\&.15\&.2" "Library Calls" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/fr/man5/faillog.5 b/man/fr/man5/faillog.5 index ef34834b..e729b0be 100644 --- a/man/fr/man5/faillog.5 +++ b/man/fr/man5/faillog.5 @@ -2,12 +2,12 @@ .\" Title: faillog .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: French .\" -.TH "FAILLOG" "5" "23/03/2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuratio" +.TH "FAILLOG" "5" "21/06/2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuratio" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/fr/man5/gshadow.5 b/man/fr/man5/gshadow.5 index 3b76ee4f..120301de 100644 --- a/man/fr/man5/gshadow.5 +++ b/man/fr/man5/gshadow.5 @@ -2,12 +2,12 @@ .\" Title: gshadow .\" Author: Nicolas Fran\(,cois .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: French .\" -.TH "GSHADOW" "5" "23/03/2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "GSHADOW" "5" "21/06/2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/fr/man5/limits.5 b/man/fr/man5/limits.5 index cdb61977..4589e590 100644 --- a/man/fr/man5/limits.5 +++ b/man/fr/man5/limits.5 @@ -2,12 +2,12 @@ .\" Title: limits .\" Author: Luca Berra .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: French .\" -.TH "LIMITS" "5" "23/03/2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "LIMITS" "5" "21/06/2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/fr/man5/login.access.5 b/man/fr/man5/login.access.5 index 90b2e9ef..0d4767d2 100644 --- a/man/fr/man5/login.access.5 +++ b/man/fr/man5/login.access.5 @@ -2,12 +2,12 @@ .\" Title: login.access .\" Author: Marek Micha\(/lkiewicz .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: French .\" -.TH "LOGIN\&.ACCESS" "5" "23/03/2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "LOGIN\&.ACCESS" "5" "21/06/2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/fr/man5/login.defs.5 b/man/fr/man5/login.defs.5 index 36945102..845e10bd 100644 --- a/man/fr/man5/login.defs.5 +++ b/man/fr/man5/login.defs.5 @@ -2,12 +2,12 @@ .\" Title: login.defs .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: French .\" -.TH "LOGIN\&.DEFS" "5" "23/03/2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "LOGIN\&.DEFS" "5" "21/06/2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/fr/man5/passwd.5 b/man/fr/man5/passwd.5 index 162ee091..ea061d6a 100644 --- a/man/fr/man5/passwd.5 +++ b/man/fr/man5/passwd.5 @@ -2,12 +2,12 @@ .\" Title: passwd .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: French .\" -.TH "PASSWD" "5" "23/03/2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "PASSWD" "5" "21/06/2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/fr/man5/porttime.5 b/man/fr/man5/porttime.5 index 6f488c25..7ea4e735 100644 --- a/man/fr/man5/porttime.5 +++ b/man/fr/man5/porttime.5 @@ -2,12 +2,12 @@ .\" Title: porttime .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: French .\" -.TH "PORTTIME" "5" "23/03/2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "PORTTIME" "5" "21/06/2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/fr/man5/shadow.5 b/man/fr/man5/shadow.5 index 171e25d0..42c8ed29 100644 --- a/man/fr/man5/shadow.5 +++ b/man/fr/man5/shadow.5 @@ -2,12 +2,12 @@ .\" Title: shadow .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: French .\" -.TH "SHADOW" "5" "23/03/2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "SHADOW" "5" "21/06/2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/fr/man5/suauth.5 b/man/fr/man5/suauth.5 index b775bcf1..40d7b661 100644 --- a/man/fr/man5/suauth.5 +++ b/man/fr/man5/suauth.5 @@ -2,12 +2,12 @@ .\" Title: suauth .\" Author: Marek Micha\(/lkiewicz .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: French .\" -.TH "SUAUTH" "5" "23/03/2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "SUAUTH" "5" "21/06/2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/fr/man5/subgid.5 b/man/fr/man5/subgid.5 index 0402e6b2..a035d5fb 100644 --- a/man/fr/man5/subgid.5 +++ b/man/fr/man5/subgid.5 @@ -2,12 +2,12 @@ .\" Title: subgid .\" Author: Eric Biederman .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: French .\" -.TH "SUBGID" "5" "23/03/2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "SUBGID" "5" "21/06/2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/fr/man5/subuid.5 b/man/fr/man5/subuid.5 index ba33af3f..ebe92554 100644 --- a/man/fr/man5/subuid.5 +++ b/man/fr/man5/subuid.5 @@ -2,12 +2,12 @@ .\" Title: subuid .\" Author: Eric Biederman .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: French .\" -.TH "SUBUID" "5" "23/03/2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "SUBUID" "5" "21/06/2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/fr/man8/chgpasswd.8 b/man/fr/man8/chgpasswd.8 index 73714e16..f8c454e2 100644 --- a/man/fr/man8/chgpasswd.8 +++ b/man/fr/man8/chgpasswd.8 @@ -2,12 +2,12 @@ .\" Title: chgpasswd .\" Author: Thomas K\(/loczko .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: French .\" -.TH "CHGPASSWD" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "CHGPASSWD" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/fr/man8/chpasswd.8 b/man/fr/man8/chpasswd.8 index 4f849494..f5cadc8c 100644 --- a/man/fr/man8/chpasswd.8 +++ b/man/fr/man8/chpasswd.8 @@ -2,12 +2,12 @@ .\" Title: chpasswd .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: French .\" -.TH "CHPASSWD" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "CHPASSWD" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/fr/man8/faillog.8 b/man/fr/man8/faillog.8 index 91e85070..b74b7635 100644 --- a/man/fr/man8/faillog.8 +++ b/man/fr/man8/faillog.8 @@ -2,12 +2,12 @@ .\" Title: faillog .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: French .\" -.TH "FAILLOG" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "FAILLOG" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/fr/man8/groupadd.8 b/man/fr/man8/groupadd.8 index 247c8727..3e9b5a3d 100644 --- a/man/fr/man8/groupadd.8 +++ b/man/fr/man8/groupadd.8 @@ -2,12 +2,12 @@ .\" Title: groupadd .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: French .\" -.TH "GROUPADD" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "GROUPADD" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/fr/man8/groupdel.8 b/man/fr/man8/groupdel.8 index 3adb9538..cab97e84 100644 --- a/man/fr/man8/groupdel.8 +++ b/man/fr/man8/groupdel.8 @@ -2,12 +2,12 @@ .\" Title: groupdel .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: French .\" -.TH "GROUPDEL" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "GROUPDEL" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/fr/man8/groupmems.8 b/man/fr/man8/groupmems.8 index ee468ab5..4fc00092 100644 --- a/man/fr/man8/groupmems.8 +++ b/man/fr/man8/groupmems.8 @@ -2,12 +2,12 @@ .\" Title: groupmems .\" Author: George Kraft, IV .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: French .\" -.TH "GROUPMEMS" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "GROUPMEMS" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/fr/man8/groupmod.8 b/man/fr/man8/groupmod.8 index b4c7496d..cd40d5f9 100644 --- a/man/fr/man8/groupmod.8 +++ b/man/fr/man8/groupmod.8 @@ -2,12 +2,12 @@ .\" Title: groupmod .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: French .\" -.TH "GROUPMOD" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "GROUPMOD" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/fr/man8/grpck.8 b/man/fr/man8/grpck.8 index 042f5bd2..a5397b98 100644 --- a/man/fr/man8/grpck.8 +++ b/man/fr/man8/grpck.8 @@ -2,12 +2,12 @@ .\" Title: grpck .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: French .\" -.TH "GRPCK" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "GRPCK" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/fr/man8/lastlog.8 b/man/fr/man8/lastlog.8 index e9c1fc89..14bb18b8 100644 --- a/man/fr/man8/lastlog.8 +++ b/man/fr/man8/lastlog.8 @@ -2,12 +2,12 @@ .\" Title: lastlog .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: French .\" -.TH "LASTLOG" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "LASTLOG" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -130,5 +130,5 @@ S\*(Aqil y a des trous importants dans les valeurs des UID, s\*(Aqex\('ecutera plus lentement, sans affichage \(`a l\*(Aq\('ecran (par exemple, s\*(Aqil n\*(Aqy a pas d\*(Aqentr\('ee pour les utilisateurs ayant un UID compris entre 170 et 800 dans base de donn\('ees lastlog, le programme lastlog semblera bloqu\('e comme s\*(Aqil traitait les entr\('ees correspondant aux UID 171 \(`a 799)\&. .PP Having high UIDs can create problems when handling the - /var/log/lastlog +/var/log/lastlog with external tools\&. Although the actual file is sparse and does not use too much space, certain applications are not designed to identify sparse files by default and may require a specific option to handle them\&. diff --git a/man/fr/man8/logoutd.8 b/man/fr/man8/logoutd.8 index 2e0c89d0..43b07eb4 100644 --- a/man/fr/man8/logoutd.8 +++ b/man/fr/man8/logoutd.8 @@ -2,12 +2,12 @@ .\" Title: logoutd .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: French .\" -.TH "LOGOUTD" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "LOGOUTD" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/fr/man8/newusers.8 b/man/fr/man8/newusers.8 index e7ba535d..4f070018 100644 --- a/man/fr/man8/newusers.8 +++ b/man/fr/man8/newusers.8 @@ -2,12 +2,12 @@ .\" Title: newusers .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: French .\" -.TH "NEWUSERS" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "NEWUSERS" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/fr/man8/nologin.8 b/man/fr/man8/nologin.8 index 39671f52..6c14f0dd 100644 --- a/man/fr/man8/nologin.8 +++ b/man/fr/man8/nologin.8 @@ -2,12 +2,12 @@ .\" Title: nologin .\" Author: Nicolas Fran\(,cois .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: French .\" -.TH "NOLOGIN" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "NOLOGIN" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/fr/man8/pwck.8 b/man/fr/man8/pwck.8 index 4d6e056d..3a6b15df 100644 --- a/man/fr/man8/pwck.8 +++ b/man/fr/man8/pwck.8 @@ -2,12 +2,12 @@ .\" Title: pwck .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: French .\" -.TH "PWCK" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "PWCK" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/fr/man8/pwconv.8 b/man/fr/man8/pwconv.8 index 451d3a6d..bd6d6781 100644 --- a/man/fr/man8/pwconv.8 +++ b/man/fr/man8/pwconv.8 @@ -2,12 +2,12 @@ .\" Title: pwconv .\" Author: Marek Micha\(/lkiewicz .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: French .\" -.TH "PWCONV" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "PWCONV" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/fr/man8/sulogin.8 b/man/fr/man8/sulogin.8 index d86c9c8e..82f336c7 100644 --- a/man/fr/man8/sulogin.8 +++ b/man/fr/man8/sulogin.8 @@ -2,12 +2,12 @@ .\" Title: sulogin .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: French .\" -.TH "SULOGIN" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "SULOGIN" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/fr/man8/useradd.8 b/man/fr/man8/useradd.8 index a8f25dfa..544c14d8 100644 --- a/man/fr/man8/useradd.8 +++ b/man/fr/man8/useradd.8 @@ -2,12 +2,12 @@ .\" Title: useradd .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: French .\" -.TH "USERADD" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "USERADD" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -489,7 +489,7 @@ Usernames may contain only lower and upper case letters, digits, underscores, or \fBls\fR output\&. .PP -Les noms d\*(Aqutilisateur sont limit\('es \(`a 32 caract\(`eres\&. +Les noms d\*(Aqutilisateur sont limit\('es \(`a 256 caract\(`eres\&. .SH "CONFIGURATION" .PP The following configuration variables in diff --git a/man/fr/man8/userdel.8 b/man/fr/man8/userdel.8 index fc21c467..99084c02 100644 --- a/man/fr/man8/userdel.8 +++ b/man/fr/man8/userdel.8 @@ -2,12 +2,12 @@ .\" Title: userdel .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: French .\" -.TH "USERDEL" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "USERDEL" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/fr/man8/usermod.8 b/man/fr/man8/usermod.8 index 0db0477e..17893ea4 100644 --- a/man/fr/man8/usermod.8 +++ b/man/fr/man8/usermod.8 @@ -2,12 +2,12 @@ .\" Title: usermod .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: French .\" -.TH "USERMOD" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "USERMOD" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/fr/man8/vipw.8 b/man/fr/man8/vipw.8 index f8dcbcc3..323e95b2 100644 --- a/man/fr/man8/vipw.8 +++ b/man/fr/man8/vipw.8 @@ -2,12 +2,12 @@ .\" Title: vipw .\" Author: Marek Micha\(/lkiewicz .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: French .\" -.TH "VIPW" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "VIPW" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/hu/Makefile.in b/man/hu/Makefile.in index 3ebe22bd..45fc8eb5 100644 --- a/man/hu/Makefile.in +++ b/man/hu/Makefile.in @@ -193,6 +193,7 @@ EGREP = @EGREP@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ +FILECMD = @FILECMD@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ diff --git a/man/id/Makefile.in b/man/id/Makefile.in index 2640bd6e..79a0521f 100644 --- a/man/id/Makefile.in +++ b/man/id/Makefile.in @@ -190,6 +190,7 @@ EGREP = @EGREP@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ +FILECMD = @FILECMD@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ diff --git a/man/it/Makefile.in b/man/it/Makefile.in index 0befe2e1..dd69471a 100644 --- a/man/it/Makefile.in +++ b/man/it/Makefile.in @@ -197,6 +197,7 @@ EGREP = @EGREP@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ +FILECMD = @FILECMD@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ diff --git a/man/it/man1/chage.1 b/man/it/man1/chage.1 index e5f612f2..d5a27425 100644 --- a/man/it/man1/chage.1 +++ b/man/it/man1/chage.1 @@ -2,12 +2,12 @@ .\" Title: chage .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Italian .\" -.TH "CHAGE" "1" "23/03/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "CHAGE" "1" "21/06/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/it/man1/chfn.1 b/man/it/man1/chfn.1 index b98c9f3d..06641188 100644 --- a/man/it/man1/chfn.1 +++ b/man/it/man1/chfn.1 @@ -2,12 +2,12 @@ .\" Title: chfn .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Italian .\" -.TH "CHFN" "1" "23/03/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "CHFN" "1" "21/06/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/it/man1/chsh.1 b/man/it/man1/chsh.1 index 0d12e9b7..77e7d3e3 100644 --- a/man/it/man1/chsh.1 +++ b/man/it/man1/chsh.1 @@ -2,12 +2,12 @@ .\" Title: chsh .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Italian .\" -.TH "CHSH" "1" "23/03/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "CHSH" "1" "21/06/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/it/man1/expiry.1 b/man/it/man1/expiry.1 index 7523a1f2..378c08c9 100644 --- a/man/it/man1/expiry.1 +++ b/man/it/man1/expiry.1 @@ -2,12 +2,12 @@ .\" Title: expiry .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Italian .\" -.TH "EXPIRY" "1" "23/03/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "EXPIRY" "1" "21/06/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/it/man1/gpasswd.1 b/man/it/man1/gpasswd.1 index 5a507a15..6ef70d07 100644 --- a/man/it/man1/gpasswd.1 +++ b/man/it/man1/gpasswd.1 @@ -2,12 +2,12 @@ .\" Title: gpasswd .\" Author: Rafal Maszkowski .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Italian .\" -.TH "GPASSWD" "1" "23/03/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "GPASSWD" "1" "21/06/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/it/man1/groups.1 b/man/it/man1/groups.1 index c50d52c4..ead76d64 100644 --- a/man/it/man1/groups.1 +++ b/man/it/man1/groups.1 @@ -2,12 +2,12 @@ .\" Title: groups .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Italian .\" -.TH "GROUPS" "1" "23/03/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "GROUPS" "1" "21/06/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/it/man1/id.1 b/man/it/man1/id.1 index 848564b9..2197f9bc 100644 --- a/man/it/man1/id.1 +++ b/man/it/man1/id.1 @@ -2,12 +2,12 @@ .\" Title: id .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Italian .\" -.TH "ID" "1" "23/03/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "ID" "1" "21/06/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/it/man1/login.1 b/man/it/man1/login.1 index eedbb738..d35d2b4c 100644 --- a/man/it/man1/login.1 +++ b/man/it/man1/login.1 @@ -2,12 +2,12 @@ .\" Title: login .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Italian .\" -.TH "LOGIN" "1" "23/03/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "LOGIN" "1" "21/06/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/it/man1/newgrp.1 b/man/it/man1/newgrp.1 index 949e612c..f661d12d 100644 --- a/man/it/man1/newgrp.1 +++ b/man/it/man1/newgrp.1 @@ -2,12 +2,12 @@ .\" Title: newgrp .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Italian .\" -.TH "NEWGRP" "1" "23/03/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "NEWGRP" "1" "21/06/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/it/man1/passwd.1 b/man/it/man1/passwd.1 index 63665893..6f32ad21 100644 --- a/man/it/man1/passwd.1 +++ b/man/it/man1/passwd.1 @@ -2,12 +2,12 @@ .\" Title: passwd .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Italian .\" -.TH "PASSWD" "1" "23/03/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "PASSWD" "1" "21/06/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/it/man1/sg.1 b/man/it/man1/sg.1 index 98064d9a..a938344b 100644 --- a/man/it/man1/sg.1 +++ b/man/it/man1/sg.1 @@ -2,12 +2,12 @@ .\" Title: sg .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Italian .\" -.TH "SG" "1" "23/03/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "SG" "1" "21/06/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/it/man1/su.1 b/man/it/man1/su.1 index a3c010b3..cfc0d911 100644 --- a/man/it/man1/su.1 +++ b/man/it/man1/su.1 @@ -2,12 +2,12 @@ .\" Title: su .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Italian .\" -.TH "SU" "1" "23/03/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "SU" "1" "21/06/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/it/man3/shadow.3 b/man/it/man3/shadow.3 index 5c46fd6f..54c3738d 100644 --- a/man/it/man3/shadow.3 +++ b/man/it/man3/shadow.3 @@ -2,12 +2,12 @@ .\" Title: shadow .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: Library Calls -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Italian .\" -.TH "SHADOW" "3" "23/03/2024" "shadow\-utils 4\&.15\&.1" "Library Calls" +.TH "SHADOW" "3" "21/06/2024" "shadow\-utils 4\&.15\&.2" "Library Calls" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/it/man5/faillog.5 b/man/it/man5/faillog.5 index 5b04148e..c5f659cb 100644 --- a/man/it/man5/faillog.5 +++ b/man/it/man5/faillog.5 @@ -2,12 +2,12 @@ .\" Title: faillog .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Italian .\" -.TH "FAILLOG" "5" "23/03/2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuratio" +.TH "FAILLOG" "5" "21/06/2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuratio" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/it/man5/gshadow.5 b/man/it/man5/gshadow.5 index fbfe5e6c..3032d1d2 100644 --- a/man/it/man5/gshadow.5 +++ b/man/it/man5/gshadow.5 @@ -2,12 +2,12 @@ .\" Title: gshadow .\" Author: Nicolas Fran\(,cois .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Italian .\" -.TH "GSHADOW" "5" "23/03/2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "GSHADOW" "5" "21/06/2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/it/man5/limits.5 b/man/it/man5/limits.5 index b6458d07..951285b4 100644 --- a/man/it/man5/limits.5 +++ b/man/it/man5/limits.5 @@ -2,12 +2,12 @@ .\" Title: limits .\" Author: Luca Berra .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Italian .\" -.TH "LIMITS" "5" "23/03/2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "LIMITS" "5" "21/06/2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/it/man5/login.access.5 b/man/it/man5/login.access.5 index 91c5893f..e38d2b70 100644 --- a/man/it/man5/login.access.5 +++ b/man/it/man5/login.access.5 @@ -2,12 +2,12 @@ .\" Title: login.access .\" Author: Marek Micha\(/lkiewicz .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Italian .\" -.TH "LOGIN\&.ACCESS" "5" "23/03/2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "LOGIN\&.ACCESS" "5" "21/06/2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/it/man5/login.defs.5 b/man/it/man5/login.defs.5 index b332314e..3dbd8ec8 100644 --- a/man/it/man5/login.defs.5 +++ b/man/it/man5/login.defs.5 @@ -2,12 +2,12 @@ .\" Title: login.defs .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Italian .\" -.TH "LOGIN\&.DEFS" "5" "23/03/2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "LOGIN\&.DEFS" "5" "21/06/2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/it/man5/passwd.5 b/man/it/man5/passwd.5 index 301ccc30..01c241e6 100644 --- a/man/it/man5/passwd.5 +++ b/man/it/man5/passwd.5 @@ -2,12 +2,12 @@ .\" Title: passwd .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Italian .\" -.TH "PASSWD" "5" "23/03/2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "PASSWD" "5" "21/06/2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/it/man5/porttime.5 b/man/it/man5/porttime.5 index 8a33e21b..50032715 100644 --- a/man/it/man5/porttime.5 +++ b/man/it/man5/porttime.5 @@ -2,12 +2,12 @@ .\" Title: porttime .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Italian .\" -.TH "PORTTIME" "5" "23/03/2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "PORTTIME" "5" "21/06/2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/it/man5/shadow.5 b/man/it/man5/shadow.5 index 46693e39..6f73d44f 100644 --- a/man/it/man5/shadow.5 +++ b/man/it/man5/shadow.5 @@ -2,12 +2,12 @@ .\" Title: shadow .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Italian .\" -.TH "SHADOW" "5" "23/03/2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "SHADOW" "5" "21/06/2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/it/man5/suauth.5 b/man/it/man5/suauth.5 index 80c044b8..1b00ff17 100644 --- a/man/it/man5/suauth.5 +++ b/man/it/man5/suauth.5 @@ -2,12 +2,12 @@ .\" Title: suauth .\" Author: Marek Micha\(/lkiewicz .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Italian .\" -.TH "SUAUTH" "5" "23/03/2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "SUAUTH" "5" "21/06/2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/it/man8/chgpasswd.8 b/man/it/man8/chgpasswd.8 index 49b43ebe..381d5887 100644 --- a/man/it/man8/chgpasswd.8 +++ b/man/it/man8/chgpasswd.8 @@ -2,12 +2,12 @@ .\" Title: chgpasswd .\" Author: Thomas K\(/loczko .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Italian .\" -.TH "CHGPASSWD" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "CHGPASSWD" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/it/man8/chpasswd.8 b/man/it/man8/chpasswd.8 index 08fbce3c..15b22f55 100644 --- a/man/it/man8/chpasswd.8 +++ b/man/it/man8/chpasswd.8 @@ -2,12 +2,12 @@ .\" Title: chpasswd .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Italian .\" -.TH "CHPASSWD" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "CHPASSWD" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/it/man8/faillog.8 b/man/it/man8/faillog.8 index 81126757..d31a17b1 100644 --- a/man/it/man8/faillog.8 +++ b/man/it/man8/faillog.8 @@ -2,12 +2,12 @@ .\" Title: faillog .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Italian .\" -.TH "FAILLOG" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "FAILLOG" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/it/man8/groupadd.8 b/man/it/man8/groupadd.8 index 4dae85e9..b9776091 100644 --- a/man/it/man8/groupadd.8 +++ b/man/it/man8/groupadd.8 @@ -2,12 +2,12 @@ .\" Title: groupadd .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Italian .\" -.TH "GROUPADD" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "GROUPADD" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/it/man8/groupdel.8 b/man/it/man8/groupdel.8 index 51d7eab2..6b4b592a 100644 --- a/man/it/man8/groupdel.8 +++ b/man/it/man8/groupdel.8 @@ -2,12 +2,12 @@ .\" Title: groupdel .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Italian .\" -.TH "GROUPDEL" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "GROUPDEL" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/it/man8/groupmems.8 b/man/it/man8/groupmems.8 index 73f17b7c..9b2c0e22 100644 --- a/man/it/man8/groupmems.8 +++ b/man/it/man8/groupmems.8 @@ -2,12 +2,12 @@ .\" Title: groupmems .\" Author: George Kraft, IV .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Italian .\" -.TH "GROUPMEMS" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "GROUPMEMS" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/it/man8/groupmod.8 b/man/it/man8/groupmod.8 index dc9e8423..b7ae6c11 100644 --- a/man/it/man8/groupmod.8 +++ b/man/it/man8/groupmod.8 @@ -2,12 +2,12 @@ .\" Title: groupmod .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Italian .\" -.TH "GROUPMOD" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "GROUPMOD" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/it/man8/grpck.8 b/man/it/man8/grpck.8 index 3500c249..063f3d19 100644 --- a/man/it/man8/grpck.8 +++ b/man/it/man8/grpck.8 @@ -2,12 +2,12 @@ .\" Title: grpck .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Italian .\" -.TH "GRPCK" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "GRPCK" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/it/man8/lastlog.8 b/man/it/man8/lastlog.8 index e8d4ccee..8faa9232 100644 --- a/man/it/man8/lastlog.8 +++ b/man/it/man8/lastlog.8 @@ -2,12 +2,12 @@ .\" Title: lastlog .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Italian .\" -.TH "LASTLOG" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "LASTLOG" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -129,5 +129,5 @@ Database degli orari dei precedenti accessi utente\&. Se ci sono dei grossi scarti tra i valori di UID, il programma lastlog pu\(`o restare in esecuzione per un tempo prolungato senza produrre output sullo schermo (ad es\&. se nel database lastlog non ci sono registrazioni per UID tra 170 e 800, il programma sembrer\(`a bloccato mentre esamina gli UID tra 171 e 799)\&. .PP Having high UIDs can create problems when handling the - /var/log/lastlog +/var/log/lastlog with external tools\&. Although the actual file is sparse and does not use too much space, certain applications are not designed to identify sparse files by default and may require a specific option to handle them\&. diff --git a/man/it/man8/logoutd.8 b/man/it/man8/logoutd.8 index 834fb78f..b60132bf 100644 --- a/man/it/man8/logoutd.8 +++ b/man/it/man8/logoutd.8 @@ -2,12 +2,12 @@ .\" Title: logoutd .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Italian .\" -.TH "LOGOUTD" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "LOGOUTD" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/it/man8/newusers.8 b/man/it/man8/newusers.8 index 48aab097..651dada6 100644 --- a/man/it/man8/newusers.8 +++ b/man/it/man8/newusers.8 @@ -2,12 +2,12 @@ .\" Title: newusers .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Italian .\" -.TH "NEWUSERS" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "NEWUSERS" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/it/man8/nologin.8 b/man/it/man8/nologin.8 index 529015a1..10c276ac 100644 --- a/man/it/man8/nologin.8 +++ b/man/it/man8/nologin.8 @@ -2,12 +2,12 @@ .\" Title: nologin .\" Author: Nicolas Fran\(,cois .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Italian .\" -.TH "NOLOGIN" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "NOLOGIN" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/it/man8/pwck.8 b/man/it/man8/pwck.8 index 44ff1558..9c4d3e7b 100644 --- a/man/it/man8/pwck.8 +++ b/man/it/man8/pwck.8 @@ -2,12 +2,12 @@ .\" Title: pwck .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Italian .\" -.TH "PWCK" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "PWCK" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/it/man8/pwconv.8 b/man/it/man8/pwconv.8 index 7526a42a..b1bea599 100644 --- a/man/it/man8/pwconv.8 +++ b/man/it/man8/pwconv.8 @@ -2,12 +2,12 @@ .\" Title: pwconv .\" Author: Marek Micha\(/lkiewicz .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Italian .\" -.TH "PWCONV" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "PWCONV" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/it/man8/sulogin.8 b/man/it/man8/sulogin.8 index bac7f8d5..0feea133 100644 --- a/man/it/man8/sulogin.8 +++ b/man/it/man8/sulogin.8 @@ -2,12 +2,12 @@ .\" Title: sulogin .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Italian .\" -.TH "SULOGIN" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "SULOGIN" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/it/man8/useradd.8 b/man/it/man8/useradd.8 index 3242d2c7..9810e72f 100644 --- a/man/it/man8/useradd.8 +++ b/man/it/man8/useradd.8 @@ -2,12 +2,12 @@ .\" Title: useradd .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Italian .\" -.TH "USERADD" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "USERADD" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -489,7 +489,7 @@ Usernames may contain only lower and upper case letters, digits, underscores, or \fBls\fR output\&. .PP -I nomi utente non possono eccedere i 32 caratteri di lunghezza\&. +I nomi utente non possono eccedere i 256 caratteri di lunghezza\&. .SH "CONFIGURAZIONE" .PP The following configuration variables in diff --git a/man/it/man8/userdel.8 b/man/it/man8/userdel.8 index 0c36191b..439567d3 100644 --- a/man/it/man8/userdel.8 +++ b/man/it/man8/userdel.8 @@ -2,12 +2,12 @@ .\" Title: userdel .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Italian .\" -.TH "USERDEL" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "USERDEL" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/it/man8/usermod.8 b/man/it/man8/usermod.8 index c96aa216..45432d14 100644 --- a/man/it/man8/usermod.8 +++ b/man/it/man8/usermod.8 @@ -2,12 +2,12 @@ .\" Title: usermod .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Italian .\" -.TH "USERMOD" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "USERMOD" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/it/man8/vipw.8 b/man/it/man8/vipw.8 index d0d3416f..25c8127f 100644 --- a/man/it/man8/vipw.8 +++ b/man/it/man8/vipw.8 @@ -2,12 +2,12 @@ .\" Title: vipw .\" Author: Marek Micha\(/lkiewicz .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Italian .\" -.TH "VIPW" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "VIPW" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/ja/Makefile.in b/man/ja/Makefile.in index 8dc98836..9ef122d8 100644 --- a/man/ja/Makefile.in +++ b/man/ja/Makefile.in @@ -195,6 +195,7 @@ EGREP = @EGREP@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ +FILECMD = @FILECMD@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ diff --git a/man/ko/Makefile.in b/man/ko/Makefile.in index 6bd0da2a..cabdc54f 100644 --- a/man/ko/Makefile.in +++ b/man/ko/Makefile.in @@ -192,6 +192,7 @@ EGREP = @EGREP@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ +FILECMD = @FILECMD@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ diff --git a/man/lastlog.8.xml b/man/lastlog.8.xml index 7a4ba967..6700791c 100644 --- a/man/lastlog.8.xml +++ b/man/lastlog.8.xml @@ -211,8 +211,8 @@ to hang as it processes entries with UIDs 171-799). - Having high UIDs can create problems when handling the - /var/log/lastlog with external tools. Although the + Having high UIDs can create problems when handling the + /var/log/lastlog with external tools. Although the actual file is sparse and does not use too much space, certain applications are not designed to identify sparse files by default and may require a specific option to handle them. diff --git a/man/man1/chage.1 b/man/man1/chage.1 index 48e67d33..0998ae80 100644 --- a/man/man1/chage.1 +++ b/man/man1/chage.1 @@ -2,12 +2,12 @@ .\" Title: chage .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: English .\" -.TH "CHAGE" "1" "03/23/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "CHAGE" "1" "06/21/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/man1/chfn.1 b/man/man1/chfn.1 index 10e93208..315f32b4 100644 --- a/man/man1/chfn.1 +++ b/man/man1/chfn.1 @@ -2,12 +2,12 @@ .\" Title: chfn .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: English .\" -.TH "CHFN" "1" "03/23/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "CHFN" "1" "06/21/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/man1/chsh.1 b/man/man1/chsh.1 index fc49e552..597f3ff2 100644 --- a/man/man1/chsh.1 +++ b/man/man1/chsh.1 @@ -2,12 +2,12 @@ .\" Title: chsh .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: English .\" -.TH "CHSH" "1" "03/23/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "CHSH" "1" "06/21/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/man1/expiry.1 b/man/man1/expiry.1 index 2d7436cc..93dc97d3 100644 --- a/man/man1/expiry.1 +++ b/man/man1/expiry.1 @@ -2,12 +2,12 @@ .\" Title: expiry .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: English .\" -.TH "EXPIRY" "1" "03/23/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "EXPIRY" "1" "06/21/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/man1/getsubids.1 b/man/man1/getsubids.1 index 7ee70bdd..fa026b02 100644 --- a/man/man1/getsubids.1 +++ b/man/man1/getsubids.1 @@ -2,12 +2,12 @@ .\" Title: getsubids .\" Author: Iker Pedrosa .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: English .\" -.TH "GETSUBIDS" "1" "03/23/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "GETSUBIDS" "1" "06/21/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/man1/gpasswd.1 b/man/man1/gpasswd.1 index f5007be6..68810fc5 100644 --- a/man/man1/gpasswd.1 +++ b/man/man1/gpasswd.1 @@ -2,12 +2,12 @@ .\" Title: gpasswd .\" Author: Rafal Maszkowski .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: English .\" -.TH "GPASSWD" "1" "03/23/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "GPASSWD" "1" "06/21/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/man1/groups.1 b/man/man1/groups.1 index 6cadcec3..473f1ee7 100644 --- a/man/man1/groups.1 +++ b/man/man1/groups.1 @@ -2,12 +2,12 @@ .\" Title: groups .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: English .\" -.TH "GROUPS" "1" "03/23/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "GROUPS" "1" "06/21/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/man1/id.1 b/man/man1/id.1 index db8b704b..34eb3492 100644 --- a/man/man1/id.1 +++ b/man/man1/id.1 @@ -2,12 +2,12 @@ .\" Title: id .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: English .\" -.TH "ID" "1" "03/23/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "ID" "1" "06/21/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/man1/login.1 b/man/man1/login.1 index d281ca90..36028e8a 100644 --- a/man/man1/login.1 +++ b/man/man1/login.1 @@ -2,12 +2,12 @@ .\" Title: login .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: English .\" -.TH "LOGIN" "1" "03/23/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "LOGIN" "1" "06/21/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/man1/newgidmap.1 b/man/man1/newgidmap.1 index 35e45894..7328aef0 100644 --- a/man/man1/newgidmap.1 +++ b/man/man1/newgidmap.1 @@ -2,12 +2,12 @@ .\" Title: newgidmap .\" Author: Eric Biederman .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: English .\" -.TH "NEWGIDMAP" "1" "03/23/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "NEWGIDMAP" "1" "06/21/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -76,8 +76,8 @@ before setting Note that newgidmap may be used only once for a given process\&. .PP Instead of an integer process id, the first argument may be specified as -\fIfd:N\fR, where the integer N is the file descriptor number for the calling process\*(Aqs opened file for -/proc/[pid[\&. In this case, +\fIfd:N\fR, where the integer N is the file descriptor number for the calling process\*(Aqs opened file descriptor for the directory +/proc/[pid]\&. In this case, \fBnewgidmap\fR will use openat(2) diff --git a/man/man1/newgrp.1 b/man/man1/newgrp.1 index 0702fb79..04cf7e70 100644 --- a/man/man1/newgrp.1 +++ b/man/man1/newgrp.1 @@ -2,12 +2,12 @@ .\" Title: newgrp .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: English .\" -.TH "NEWGRP" "1" "03/23/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "NEWGRP" "1" "06/21/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/man1/newuidmap.1 b/man/man1/newuidmap.1 index 7ee034ff..71b7226c 100644 --- a/man/man1/newuidmap.1 +++ b/man/man1/newuidmap.1 @@ -2,12 +2,12 @@ .\" Title: newuidmap .\" Author: Eric Biederman .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: English .\" -.TH "NEWUIDMAP" "1" "03/23/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "NEWUIDMAP" "1" "06/21/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -76,8 +76,8 @@ before setting Note that newuidmap may be used only once for a given process\&. .PP Instead of an integer process id, the first argument may be specified as -\fIfd:N\fR, where the integer N is the file descriptor number for the calling process\*(Aqs opened file for -/proc/[pid[\&. In this case, +\fIfd:N\fR, where the integer N is the file descriptor number for the calling process\*(Aqs opened file descriptor for the directory +/proc/[pid]\&. In this case, \fBnewuidmap\fR will use openat(2) diff --git a/man/man1/passwd.1 b/man/man1/passwd.1 index 0216bcb4..04a48c2f 100644 --- a/man/man1/passwd.1 +++ b/man/man1/passwd.1 @@ -2,12 +2,12 @@ .\" Title: passwd .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: English .\" -.TH "PASSWD" "1" "03/23/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "PASSWD" "1" "06/21/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/man1/sg.1 b/man/man1/sg.1 index 794706a1..1e104ab1 100644 --- a/man/man1/sg.1 +++ b/man/man1/sg.1 @@ -2,12 +2,12 @@ .\" Title: sg .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: English .\" -.TH "SG" "1" "03/23/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "SG" "1" "06/21/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/man1/su.1 b/man/man1/su.1 index c3c89f34..ebd26293 100644 --- a/man/man1/su.1 +++ b/man/man1/su.1 @@ -2,12 +2,12 @@ .\" Title: su .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: English .\" -.TH "SU" "1" "03/23/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "SU" "1" "06/21/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/man3/shadow.3 b/man/man3/shadow.3 index 645d0053..8489607c 100644 --- a/man/man3/shadow.3 +++ b/man/man3/shadow.3 @@ -2,12 +2,12 @@ .\" Title: shadow .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: Library Calls -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: English .\" -.TH "SHADOW" "3" "03/23/2024" "shadow\-utils 4\&.15\&.1" "Library Calls" +.TH "SHADOW" "3" "06/21/2024" "shadow\-utils 4\&.15\&.2" "Library Calls" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/man5/faillog.5 b/man/man5/faillog.5 index 3d8af95d..ebf45b99 100644 --- a/man/man5/faillog.5 +++ b/man/man5/faillog.5 @@ -2,12 +2,12 @@ .\" Title: faillog .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: English .\" -.TH "FAILLOG" "5" "03/23/2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuratio" +.TH "FAILLOG" "5" "06/21/2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuratio" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/man5/gshadow.5 b/man/man5/gshadow.5 index 8c611102..c3cdbea4 100644 --- a/man/man5/gshadow.5 +++ b/man/man5/gshadow.5 @@ -2,12 +2,12 @@ .\" Title: gshadow .\" Author: Nicolas François .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: English .\" -.TH "GSHADOW" "5" "03/23/2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "GSHADOW" "5" "06/21/2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/man5/limits.5 b/man/man5/limits.5 index a527feea..e2f16110 100644 --- a/man/man5/limits.5 +++ b/man/man5/limits.5 @@ -2,12 +2,12 @@ .\" Title: limits .\" Author: Luca Berra .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: English .\" -.TH "LIMITS" "5" "03/23/2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "LIMITS" "5" "06/21/2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/man5/login.access.5 b/man/man5/login.access.5 index 721465c2..f7d5bc7d 100644 --- a/man/man5/login.access.5 +++ b/man/man5/login.access.5 @@ -2,12 +2,12 @@ .\" Title: login.access .\" Author: Marek Michałkiewicz .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: English .\" -.TH "LOGIN\&.ACCESS" "5" "03/23/2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "LOGIN\&.ACCESS" "5" "06/21/2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/man5/login.defs.5 b/man/man5/login.defs.5 index f05b08d3..78522418 100644 --- a/man/man5/login.defs.5 +++ b/man/man5/login.defs.5 @@ -2,12 +2,12 @@ .\" Title: login.defs .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: English .\" -.TH "LOGIN\&.DEFS" "5" "03/23/2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "LOGIN\&.DEFS" "5" "06/21/2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/man5/passwd.5 b/man/man5/passwd.5 index a1bbb5e1..83c203f2 100644 --- a/man/man5/passwd.5 +++ b/man/man5/passwd.5 @@ -2,12 +2,12 @@ .\" Title: passwd .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: English .\" -.TH "PASSWD" "5" "03/23/2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "PASSWD" "5" "06/21/2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/man5/porttime.5 b/man/man5/porttime.5 index cecd9d87..f59c016c 100644 --- a/man/man5/porttime.5 +++ b/man/man5/porttime.5 @@ -2,12 +2,12 @@ .\" Title: porttime .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: English .\" -.TH "PORTTIME" "5" "03/23/2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "PORTTIME" "5" "06/21/2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/man5/shadow.5 b/man/man5/shadow.5 index 4b7f236a..706aa2b6 100644 --- a/man/man5/shadow.5 +++ b/man/man5/shadow.5 @@ -2,12 +2,12 @@ .\" Title: shadow .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: English .\" -.TH "SHADOW" "5" "03/23/2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "SHADOW" "5" "06/21/2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/man5/suauth.5 b/man/man5/suauth.5 index 09bce83b..533961d5 100644 --- a/man/man5/suauth.5 +++ b/man/man5/suauth.5 @@ -2,12 +2,12 @@ .\" Title: suauth .\" Author: Marek Michałkiewicz .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: English .\" -.TH "SUAUTH" "5" "03/23/2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "SUAUTH" "5" "06/21/2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/man5/subgid.5 b/man/man5/subgid.5 index f305aa08..5471ab78 100644 --- a/man/man5/subgid.5 +++ b/man/man5/subgid.5 @@ -2,12 +2,12 @@ .\" Title: subgid .\" Author: Eric Biederman .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: English .\" -.TH "SUBGID" "5" "03/23/2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "SUBGID" "5" "06/21/2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/man5/subuid.5 b/man/man5/subuid.5 index f388a37a..1e6ba8ac 100644 --- a/man/man5/subuid.5 +++ b/man/man5/subuid.5 @@ -2,12 +2,12 @@ .\" Title: subuid .\" Author: Eric Biederman .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: English .\" -.TH "SUBUID" "5" "03/23/2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "SUBUID" "5" "06/21/2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/man8/chgpasswd.8 b/man/man8/chgpasswd.8 index efe52afe..b65edaf3 100644 --- a/man/man8/chgpasswd.8 +++ b/man/man8/chgpasswd.8 @@ -2,12 +2,12 @@ .\" Title: chgpasswd .\" Author: Thomas Kłoczko .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: English .\" -.TH "CHGPASSWD" "8" "03/23/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "CHGPASSWD" "8" "06/21/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/man8/chpasswd.8 b/man/man8/chpasswd.8 index 4e99ad44..107f4aee 100644 --- a/man/man8/chpasswd.8 +++ b/man/man8/chpasswd.8 @@ -2,12 +2,12 @@ .\" Title: chpasswd .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: English .\" -.TH "CHPASSWD" "8" "03/23/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "CHPASSWD" "8" "06/21/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/man8/faillog.8 b/man/man8/faillog.8 index a8e66620..b5042c23 100644 --- a/man/man8/faillog.8 +++ b/man/man8/faillog.8 @@ -2,12 +2,12 @@ .\" Title: faillog .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: English .\" -.TH "FAILLOG" "8" "03/23/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "FAILLOG" "8" "06/21/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/man8/groupadd.8 b/man/man8/groupadd.8 index e9d253b1..9ab8fb2a 100644 --- a/man/man8/groupadd.8 +++ b/man/man8/groupadd.8 @@ -2,12 +2,12 @@ .\" Title: groupadd .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: English .\" -.TH "GROUPADD" "8" "03/23/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "GROUPADD" "8" "06/21/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/man8/groupdel.8 b/man/man8/groupdel.8 index 6bcbdaf8..8503eba7 100644 --- a/man/man8/groupdel.8 +++ b/man/man8/groupdel.8 @@ -2,12 +2,12 @@ .\" Title: groupdel .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: English .\" -.TH "GROUPDEL" "8" "03/23/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "GROUPDEL" "8" "06/21/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/man8/groupmems.8 b/man/man8/groupmems.8 index 8ad5ae03..3518fc07 100644 --- a/man/man8/groupmems.8 +++ b/man/man8/groupmems.8 @@ -2,12 +2,12 @@ .\" Title: groupmems .\" Author: George Kraft, IV .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: English .\" -.TH "GROUPMEMS" "8" "03/23/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "GROUPMEMS" "8" "06/21/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/man8/groupmod.8 b/man/man8/groupmod.8 index e985a694..a1e695c5 100644 --- a/man/man8/groupmod.8 +++ b/man/man8/groupmod.8 @@ -2,12 +2,12 @@ .\" Title: groupmod .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: English .\" -.TH "GROUPMOD" "8" "03/23/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "GROUPMOD" "8" "06/21/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/man8/grpck.8 b/man/man8/grpck.8 index f6c06fe4..f4082944 100644 --- a/man/man8/grpck.8 +++ b/man/man8/grpck.8 @@ -2,12 +2,12 @@ .\" Title: grpck .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: English .\" -.TH "GRPCK" "8" "03/23/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "GRPCK" "8" "06/21/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/man8/lastlog.8 b/man/man8/lastlog.8 index 9b2085ad..1bbda99f 100644 --- a/man/man8/lastlog.8 +++ b/man/man8/lastlog.8 @@ -2,12 +2,12 @@ .\" Title: lastlog .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: English .\" -.TH "LASTLOG" "8" "03/23/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "LASTLOG" "8" "06/21/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -137,5 +137,5 @@ Database times of previous user logins\&. Large gaps in UID numbers will cause the lastlog program to run longer with no output to the screen (i\&.e\&. if in lastlog database there is no entries for users with UID between 170 and 800 lastlog will appear to hang as it processes entries with UIDs 171\-799)\&. .PP Having high UIDs can create problems when handling the - /var/log/lastlog +/var/log/lastlog with external tools\&. Although the actual file is sparse and does not use too much space, certain applications are not designed to identify sparse files by default and may require a specific option to handle them\&. diff --git a/man/man8/logoutd.8 b/man/man8/logoutd.8 index 772879cf..6f7a8de7 100644 --- a/man/man8/logoutd.8 +++ b/man/man8/logoutd.8 @@ -2,12 +2,12 @@ .\" Title: logoutd .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: English .\" -.TH "LOGOUTD" "8" "03/23/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "LOGOUTD" "8" "06/21/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/man8/newusers.8 b/man/man8/newusers.8 index 8c43184c..560ca0c9 100644 --- a/man/man8/newusers.8 +++ b/man/man8/newusers.8 @@ -2,12 +2,12 @@ .\" Title: newusers .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: English .\" -.TH "NEWUSERS" "8" "03/23/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "NEWUSERS" "8" "06/21/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/man8/nologin.8 b/man/man8/nologin.8 index 097e6c8c..64131b78 100644 --- a/man/man8/nologin.8 +++ b/man/man8/nologin.8 @@ -2,12 +2,12 @@ .\" Title: nologin .\" Author: Nicolas François .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: English .\" -.TH "NOLOGIN" "8" "03/23/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "NOLOGIN" "8" "06/21/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/man8/pwck.8 b/man/man8/pwck.8 index 5605c920..53fb29e5 100644 --- a/man/man8/pwck.8 +++ b/man/man8/pwck.8 @@ -2,12 +2,12 @@ .\" Title: pwck .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: English .\" -.TH "PWCK" "8" "03/23/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "PWCK" "8" "06/21/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/man8/pwconv.8 b/man/man8/pwconv.8 index c9fc50f1..74a81fc4 100644 --- a/man/man8/pwconv.8 +++ b/man/man8/pwconv.8 @@ -2,12 +2,12 @@ .\" Title: pwconv .\" Author: Marek Michałkiewicz .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: English .\" -.TH "PWCONV" "8" "03/23/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "PWCONV" "8" "06/21/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/man8/sulogin.8 b/man/man8/sulogin.8 index ed11f6f7..a1d81967 100644 --- a/man/man8/sulogin.8 +++ b/man/man8/sulogin.8 @@ -2,12 +2,12 @@ .\" Title: sulogin .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: English .\" -.TH "SULOGIN" "8" "03/23/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "SULOGIN" "8" "06/21/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/man8/useradd.8 b/man/man8/useradd.8 index 07fc04c7..3ec476b3 100644 --- a/man/man8/useradd.8 +++ b/man/man8/useradd.8 @@ -2,12 +2,12 @@ .\" Title: useradd .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: English .\" -.TH "USERADD" "8" "03/23/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "USERADD" "8" "06/21/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -489,7 +489,7 @@ Usernames may contain only lower and upper case letters, digits, underscores, or \fBls\fR output\&. .PP -Usernames may only be up to 32 characters long\&. +Usernames may only be up to 256 characters long\&. .SH "CONFIGURATION" .PP The following configuration variables in diff --git a/man/man8/userdel.8 b/man/man8/userdel.8 index f2ec6503..6ee18e91 100644 --- a/man/man8/userdel.8 +++ b/man/man8/userdel.8 @@ -2,12 +2,12 @@ .\" Title: userdel .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: English .\" -.TH "USERDEL" "8" "03/23/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "USERDEL" "8" "06/21/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/man8/usermod.8 b/man/man8/usermod.8 index 9ab0c10e..4b93a189 100644 --- a/man/man8/usermod.8 +++ b/man/man8/usermod.8 @@ -2,12 +2,12 @@ .\" Title: usermod .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: English .\" -.TH "USERMOD" "8" "03/23/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "USERMOD" "8" "06/21/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/man8/vipw.8 b/man/man8/vipw.8 index d8dc21ed..ba1b2e03 100644 --- a/man/man8/vipw.8 +++ b/man/man8/vipw.8 @@ -2,12 +2,12 @@ .\" Title: vipw .\" Author: Marek Michałkiewicz .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: English .\" -.TH "VIPW" "8" "03/23/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "VIPW" "8" "06/21/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/newgidmap.1.xml b/man/newgidmap.1.xml index 9b7683eb..e5b770e8 100644 --- a/man/newgidmap.1.xml +++ b/man/newgidmap.1.xml @@ -120,8 +120,8 @@ Instead of an integer process id, the first argument may be specified as fd:N, where the integer N is the file descriptor number for the calling process's opened - file for /proc/[pid[. In this case, - newgidmap will use + file descriptor for the directory /proc/[pid]. + In this case, newgidmap will use openat2 to open the gid_map file under that directory, avoiding a TOCTTOU in case the process exits and diff --git a/man/newuidmap.1.xml b/man/newuidmap.1.xml index ca917a77..7aed0d50 100644 --- a/man/newuidmap.1.xml +++ b/man/newuidmap.1.xml @@ -120,8 +120,8 @@ Instead of an integer process id, the first argument may be specified as fd:N, where the integer N is the file descriptor number for the calling process's opened - file for /proc/[pid[. In this case, - newuidmap will use + file descriptor for the directory /proc/[pid]. + In this case, newuidmap will use openat2 to open the uid_map file under that directory, avoiding a TOCTTOU in case the process exits and diff --git a/man/pl/Makefile.in b/man/pl/Makefile.in index 39266aed..9737dc14 100644 --- a/man/pl/Makefile.in +++ b/man/pl/Makefile.in @@ -197,6 +197,7 @@ EGREP = @EGREP@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ +FILECMD = @FILECMD@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ diff --git a/man/pl/man1/chage.1 b/man/pl/man1/chage.1 index 5a9482a1..7f0513b5 100644 --- a/man/pl/man1/chage.1 +++ b/man/pl/man1/chage.1 @@ -2,12 +2,12 @@ .\" Title: chage .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Polish .\" -.TH "CHAGE" "1" "03/23/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "CHAGE" "1" "06/21/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/pl/man1/chsh.1 b/man/pl/man1/chsh.1 index 12896f48..58aa47b3 100644 --- a/man/pl/man1/chsh.1 +++ b/man/pl/man1/chsh.1 @@ -2,12 +2,12 @@ .\" Title: chsh .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Polish .\" -.TH "CHSH" "1" "03/23/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "CHSH" "1" "06/21/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/pl/man1/expiry.1 b/man/pl/man1/expiry.1 index eff4dcd6..40d4fb9e 100644 --- a/man/pl/man1/expiry.1 +++ b/man/pl/man1/expiry.1 @@ -2,12 +2,12 @@ .\" Title: expiry .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Polish .\" -.TH "EXPIRY" "1" "03/23/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "EXPIRY" "1" "06/21/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/pl/man1/groups.1 b/man/pl/man1/groups.1 index 4e643552..312e6828 100644 --- a/man/pl/man1/groups.1 +++ b/man/pl/man1/groups.1 @@ -2,12 +2,12 @@ .\" Title: groups .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Polish .\" -.TH "GROUPS" "1" "03/23/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "GROUPS" "1" "06/21/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/pl/man1/id.1 b/man/pl/man1/id.1 index 4bf869ce..74523a36 100644 --- a/man/pl/man1/id.1 +++ b/man/pl/man1/id.1 @@ -2,12 +2,12 @@ .\" Title: id .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Polish .\" -.TH "ID" "1" "03/23/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "ID" "1" "06/21/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/pl/man1/newgrp.1 b/man/pl/man1/newgrp.1 index 820c0e9c..7604ea00 100644 --- a/man/pl/man1/newgrp.1 +++ b/man/pl/man1/newgrp.1 @@ -2,12 +2,12 @@ .\" Title: newgrp .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Polish .\" -.TH "NEWGRP" "1" "03/23/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "NEWGRP" "1" "06/21/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/pl/man1/sg.1 b/man/pl/man1/sg.1 index 8d1ec667..517013fb 100644 --- a/man/pl/man1/sg.1 +++ b/man/pl/man1/sg.1 @@ -2,12 +2,12 @@ .\" Title: sg .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Polish .\" -.TH "SG" "1" "03/23/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "SG" "1" "06/21/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/pl/man3/shadow.3 b/man/pl/man3/shadow.3 index fa2c4f37..de813ed4 100644 --- a/man/pl/man3/shadow.3 +++ b/man/pl/man3/shadow.3 @@ -2,12 +2,12 @@ .\" Title: shadow .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: Library Calls -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Polish .\" -.TH "SHADOW" "3" "03/23/2024" "shadow\-utils 4\&.15\&.1" "Library Calls" +.TH "SHADOW" "3" "06/21/2024" "shadow\-utils 4\&.15\&.2" "Library Calls" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/pl/man5/faillog.5 b/man/pl/man5/faillog.5 index 396db654..66d970d5 100644 --- a/man/pl/man5/faillog.5 +++ b/man/pl/man5/faillog.5 @@ -2,12 +2,12 @@ .\" Title: faillog .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Polish .\" -.TH "FAILLOG" "5" "03/23/2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuratio" +.TH "FAILLOG" "5" "06/21/2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuratio" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/pl/man5/porttime.5 b/man/pl/man5/porttime.5 index 41958994..62878bfc 100644 --- a/man/pl/man5/porttime.5 +++ b/man/pl/man5/porttime.5 @@ -2,12 +2,12 @@ .\" Title: porttime .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Polish .\" -.TH "PORTTIME" "5" "03/23/2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "PORTTIME" "5" "06/21/2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/pl/man8/faillog.8 b/man/pl/man8/faillog.8 index 7c89f0a7..7abd9e1a 100644 --- a/man/pl/man8/faillog.8 +++ b/man/pl/man8/faillog.8 @@ -2,12 +2,12 @@ .\" Title: faillog .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Polish .\" -.TH "FAILLOG" "8" "03/23/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "FAILLOG" "8" "06/21/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/pl/man8/groupadd.8 b/man/pl/man8/groupadd.8 index 380f576b..4b0b811a 100644 --- a/man/pl/man8/groupadd.8 +++ b/man/pl/man8/groupadd.8 @@ -2,12 +2,12 @@ .\" Title: groupadd .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Polish .\" -.TH "GROUPADD" "8" "03/23/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "GROUPADD" "8" "06/21/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/pl/man8/groupdel.8 b/man/pl/man8/groupdel.8 index 7ced0674..af2e67cb 100644 --- a/man/pl/man8/groupdel.8 +++ b/man/pl/man8/groupdel.8 @@ -2,12 +2,12 @@ .\" Title: groupdel .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Polish .\" -.TH "GROUPDEL" "8" "03/23/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "GROUPDEL" "8" "06/21/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/pl/man8/groupmems.8 b/man/pl/man8/groupmems.8 index a4731f50..f0c5d4d0 100644 --- a/man/pl/man8/groupmems.8 +++ b/man/pl/man8/groupmems.8 @@ -2,12 +2,12 @@ .\" Title: groupmems .\" Author: George Kraft, IV .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Polish .\" -.TH "GROUPMEMS" "8" "03/23/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "GROUPMEMS" "8" "06/21/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/pl/man8/groupmod.8 b/man/pl/man8/groupmod.8 index 640e9d1c..cfbd44c3 100644 --- a/man/pl/man8/groupmod.8 +++ b/man/pl/man8/groupmod.8 @@ -2,12 +2,12 @@ .\" Title: groupmod .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Polish .\" -.TH "GROUPMOD" "8" "03/23/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "GROUPMOD" "8" "06/21/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/pl/man8/grpck.8 b/man/pl/man8/grpck.8 index 68294a88..72c742f8 100644 --- a/man/pl/man8/grpck.8 +++ b/man/pl/man8/grpck.8 @@ -2,12 +2,12 @@ .\" Title: grpck .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Polish .\" -.TH "GRPCK" "8" "03/23/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "GRPCK" "8" "06/21/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/pl/man8/lastlog.8 b/man/pl/man8/lastlog.8 index f8645134..f0288ce5 100644 --- a/man/pl/man8/lastlog.8 +++ b/man/pl/man8/lastlog.8 @@ -2,12 +2,12 @@ .\" Title: lastlog .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Polish .\" -.TH "LASTLOG" "8" "03/23/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "LASTLOG" "8" "06/21/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -128,5 +128,5 @@ Baza danych ostatnich logowań użytkownik\('ow\&. Duże luki w numeracji UID powodują, że program będzie pracowa\(/l d\(/lużej, nie wyświetlając wynik\('ow (np\&. jeśli w bazie lastlog nie ma wpis\('ow dla o UID pomiedzy 170, a 800, to program będzie sprawia\(/l wrażenie zawieszonego w trakcie przetwarzania wpis\('ow dla użytkowanik\('o\(/l o UID 171\-799)\&. .PP Having high UIDs can create problems when handling the - /var/log/lastlog +/var/log/lastlog with external tools\&. Although the actual file is sparse and does not use too much space, certain applications are not designed to identify sparse files by default and may require a specific option to handle them\&. diff --git a/man/pl/man8/logoutd.8 b/man/pl/man8/logoutd.8 index 2125d0cf..3e5665e7 100644 --- a/man/pl/man8/logoutd.8 +++ b/man/pl/man8/logoutd.8 @@ -2,12 +2,12 @@ .\" Title: logoutd .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Polish .\" -.TH "LOGOUTD" "8" "03/23/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "LOGOUTD" "8" "06/21/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/pl/man8/userdel.8 b/man/pl/man8/userdel.8 index aa3a7c50..147dffb1 100644 --- a/man/pl/man8/userdel.8 +++ b/man/pl/man8/userdel.8 @@ -2,12 +2,12 @@ .\" Title: userdel .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Polish .\" -.TH "USERDEL" "8" "03/23/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "USERDEL" "8" "06/21/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/pl/man8/usermod.8 b/man/pl/man8/usermod.8 index e478674f..c5b06dba 100644 --- a/man/pl/man8/usermod.8 +++ b/man/pl/man8/usermod.8 @@ -2,12 +2,12 @@ .\" Title: usermod .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Polish .\" -.TH "USERMOD" "8" "03/23/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "USERMOD" "8" "06/21/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/pl/man8/vipw.8 b/man/pl/man8/vipw.8 index c7f9f30f..2af9cd4c 100644 --- a/man/pl/man8/vipw.8 +++ b/man/pl/man8/vipw.8 @@ -2,12 +2,12 @@ .\" Title: vipw .\" Author: Marek Micha\(/lkiewicz .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Polish .\" -.TH "VIPW" "8" "03/23/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "VIPW" "8" "06/21/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/po/da.po b/man/po/da.po index 08615d16..49b838d8 100644 --- a/man/po/da.po +++ b/man/po/da.po @@ -9021,8 +9021,8 @@ msgstr "" #. (itstool) path: refsect1/para #: useradd.8.xml.out:724 -msgid "Usernames may only be up to 32 characters long." -msgstr "Brugernavne må kun være op til 32 tegn lange." +msgid "Usernames may only be up to 256 characters long." +msgstr "Brugernavne må kun være op til 256 tegn lange." #. (itstool) path: listitem/para #: useradd.8.xml.out:789 diff --git a/man/po/de.po b/man/po/de.po index a5ba94fc..7063b528 100644 --- a/man/po/de.po +++ b/man/po/de.po @@ -12462,8 +12462,8 @@ msgstr "" #. (itstool) path: refsect1/para #: useradd.8.xml.out:724 -msgid "Usernames may only be up to 32 characters long." -msgstr "Benutzernamen dürfen nur bis zu 32 Zeichen lang sein." +msgid "Usernames may only be up to 256 characters long." +msgstr "Benutzernamen dürfen nur bis zu 256 Zeichen lang sein." # type: Plain text #. (itstool) path: listitem/para diff --git a/man/po/fr.po b/man/po/fr.po index 393ef92f..6bc183e2 100644 --- a/man/po/fr.po +++ b/man/po/fr.po @@ -11888,8 +11888,8 @@ msgstr "" #. (itstool) path: refsect1/para #: useradd.8.xml.out:724 -msgid "Usernames may only be up to 32 characters long." -msgstr "Les noms d'utilisateur sont limités à 32 caractères." +msgid "Usernames may only be up to 256 characters long." +msgstr "Les noms d'utilisateur sont limités à 256 caractères." #. (itstool) path: listitem/para #: useradd.8.xml.out:789 diff --git a/man/po/it.po b/man/po/it.po index ec5084df..dbf05700 100644 --- a/man/po/it.po +++ b/man/po/it.po @@ -12082,8 +12082,8 @@ msgstr "" #. (itstool) path: refsect1/para #: useradd.8.xml.out:724 -msgid "Usernames may only be up to 32 characters long." -msgstr "I nomi utente non possono eccedere i 32 caratteri di lunghezza." +msgid "Usernames may only be up to 256 characters long." +msgstr "I nomi utente non possono eccedere i 256 caratteri di lunghezza." #. (itstool) path: listitem/para #: useradd.8.xml.out:789 diff --git a/man/po/pl.po b/man/po/pl.po index 2c86af43..219a57c9 100644 --- a/man/po/pl.po +++ b/man/po/pl.po @@ -9334,7 +9334,7 @@ msgstr "" #. (itstool) path: refsect1/para #: useradd.8.xml.out:724 -msgid "Usernames may only be up to 32 characters long." +msgid "Usernames may only be up to 256 characters long." msgstr "" #. (itstool) path: listitem/para diff --git a/man/po/ru.po b/man/po/ru.po index 2a550188..02417b08 100644 --- a/man/po/ru.po +++ b/man/po/ru.po @@ -12335,8 +12335,8 @@ msgstr "" # type: Content of: #. (itstool) path: refsect1/para #: useradd.8.xml.out:724 -msgid "Usernames may only be up to 32 characters long." -msgstr "Имена пользователей могут быть длиной не более 32 знаков." +msgid "Usernames may only be up to 256 characters long." +msgstr "Имена пользователей могут быть длиной не более 256 знаков." # type: Content of: #. (itstool) path: listitem/para diff --git a/man/po/shadow-man-pages.pot b/man/po/shadow-man-pages.pot index fc39c1db..e4634bcf 100644 --- a/man/po/shadow-man-pages.pot +++ b/man/po/shadow-man-pages.pot @@ -9629,7 +9629,7 @@ msgstr "" #. (itstool) path: refsect1/para #: useradd.8.xml.out:724 -msgid "Usernames may only be up to 32 characters long." +msgid "Usernames may only be up to 256 characters long." msgstr "" #. (itstool) path: listitem/para diff --git a/man/po/sv.po b/man/po/sv.po index 9dc652f3..818a2966 100644 --- a/man/po/sv.po +++ b/man/po/sv.po @@ -9476,7 +9476,7 @@ msgstr "" #. (itstool) path: refsect1/para #: useradd.8.xml.out:724 -msgid "Usernames may only be up to 32 characters long." +msgid "Usernames may only be up to 256 characters long." msgstr "" #. (itstool) path: listitem/para diff --git a/man/po/uk.po b/man/po/uk.po index 08ab387e..307245f7 100644 --- a/man/po/uk.po +++ b/man/po/uk.po @@ -10023,8 +10023,8 @@ msgstr "" #. (itstool) path: refsect1/para #: useradd.8.xml.out:724 -msgid "Usernames may only be up to 32 characters long." -msgstr "Довжина імен користувачів не може перевищувати 32 символи." +msgid "Usernames may only be up to 256 characters long." +msgstr "Довжина імен користувачів не може перевищувати 256 символи." #. (itstool) path: listitem/para #: useradd.8.xml.out:789 diff --git a/man/po/zh_CN.po b/man/po/zh_CN.po index 9644c519..7160da25 100644 --- a/man/po/zh_CN.po +++ b/man/po/zh_CN.po @@ -10474,8 +10474,8 @@ msgstr "" #. (itstool) path: refsect1/para #: useradd.8.xml.out:724 -msgid "Usernames may only be up to 32 characters long." -msgstr "用户名不能超过 32 个字符长。" +msgid "Usernames may only be up to 256 characters long." +msgstr "用户名不能超过 256 个字符长。" #. (itstool) path: listitem/para #: useradd.8.xml.out:789 diff --git a/man/pt_BR/Makefile.in b/man/pt_BR/Makefile.in index c56c22ab..f12dbd05 100644 --- a/man/pt_BR/Makefile.in +++ b/man/pt_BR/Makefile.in @@ -192,6 +192,7 @@ EGREP = @EGREP@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ +FILECMD = @FILECMD@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ diff --git a/man/ru/Makefile.in b/man/ru/Makefile.in index 5db579f5..cfa19823 100644 --- a/man/ru/Makefile.in +++ b/man/ru/Makefile.in @@ -197,6 +197,7 @@ EGREP = @EGREP@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ +FILECMD = @FILECMD@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ diff --git a/man/ru/man1/chage.1 b/man/ru/man1/chage.1 index 5632ec66..fd2c3ece 100644 --- a/man/ru/man1/chage.1 +++ b/man/ru/man1/chage.1 @@ -2,12 +2,12 @@ .\" Title: chage .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Russian .\" -.TH "chage" "1" "03/23/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "chage" "1" "06/21/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/ru/man1/chfn.1 b/man/ru/man1/chfn.1 index 767f554d..6d7039e3 100644 --- a/man/ru/man1/chfn.1 +++ b/man/ru/man1/chfn.1 @@ -2,12 +2,12 @@ .\" Title: chfn .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Russian .\" -.TH "chfn" "1" "03/23/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "chfn" "1" "06/21/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/ru/man1/chsh.1 b/man/ru/man1/chsh.1 index 470c37d1..20fcc1a8 100644 --- a/man/ru/man1/chsh.1 +++ b/man/ru/man1/chsh.1 @@ -2,12 +2,12 @@ .\" Title: chsh .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Russian .\" -.TH "chsh" "1" "03/23/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "chsh" "1" "06/21/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/ru/man1/expiry.1 b/man/ru/man1/expiry.1 index 0435aa7c..84d59b13 100644 --- a/man/ru/man1/expiry.1 +++ b/man/ru/man1/expiry.1 @@ -2,12 +2,12 @@ .\" Title: expiry .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Russian .\" -.TH "expiry" "1" "03/23/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "expiry" "1" "06/21/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/ru/man1/gpasswd.1 b/man/ru/man1/gpasswd.1 index 859c85ff..976a154e 100644 --- a/man/ru/man1/gpasswd.1 +++ b/man/ru/man1/gpasswd.1 @@ -2,12 +2,12 @@ .\" Title: gpasswd .\" Author: Rafal Maszkowski .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Russian .\" -.TH "gpasswd" "1" "03/23/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "gpasswd" "1" "06/21/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/ru/man1/groups.1 b/man/ru/man1/groups.1 index 15beca52..08a849a3 100644 --- a/man/ru/man1/groups.1 +++ b/man/ru/man1/groups.1 @@ -2,12 +2,12 @@ .\" Title: groups .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Russian .\" -.TH "groups" "1" "03/23/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "groups" "1" "06/21/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/ru/man1/id.1 b/man/ru/man1/id.1 index 8a946fb0..75561921 100644 --- a/man/ru/man1/id.1 +++ b/man/ru/man1/id.1 @@ -2,12 +2,12 @@ .\" Title: id .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Russian .\" -.TH "id" "1" "03/23/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "id" "1" "06/21/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/ru/man1/login.1 b/man/ru/man1/login.1 index 37c8655a..e3b0720e 100644 --- a/man/ru/man1/login.1 +++ b/man/ru/man1/login.1 @@ -2,12 +2,12 @@ .\" Title: login .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Russian .\" -.TH "login" "1" "03/23/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "login" "1" "06/21/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/ru/man1/newgrp.1 b/man/ru/man1/newgrp.1 index 9e7325d6..4bf0c076 100644 --- a/man/ru/man1/newgrp.1 +++ b/man/ru/man1/newgrp.1 @@ -2,12 +2,12 @@ .\" Title: newgrp .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Russian .\" -.TH "newgrp" "1" "03/23/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "newgrp" "1" "06/21/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/ru/man1/passwd.1 b/man/ru/man1/passwd.1 index 2ed1bcaf..4fa5ce07 100644 --- a/man/ru/man1/passwd.1 +++ b/man/ru/man1/passwd.1 @@ -2,12 +2,12 @@ .\" Title: passwd .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Russian .\" -.TH "passwd" "1" "03/23/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "passwd" "1" "06/21/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/ru/man1/sg.1 b/man/ru/man1/sg.1 index f9386cec..6f87d74d 100644 --- a/man/ru/man1/sg.1 +++ b/man/ru/man1/sg.1 @@ -2,12 +2,12 @@ .\" Title: sg .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Russian .\" -.TH "sg" "1" "03/23/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "sg" "1" "06/21/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/ru/man1/su.1 b/man/ru/man1/su.1 index f47b415b..c47ada9e 100644 --- a/man/ru/man1/su.1 +++ b/man/ru/man1/su.1 @@ -2,12 +2,12 @@ .\" Title: su .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Russian .\" -.TH "su" "1" "03/23/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "su" "1" "06/21/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/ru/man3/shadow.3 b/man/ru/man3/shadow.3 index 3f35e99f..68d19f44 100644 --- a/man/ru/man3/shadow.3 +++ b/man/ru/man3/shadow.3 @@ -2,12 +2,12 @@ .\" Title: shadow .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: Library Calls -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Russian .\" -.TH "shadow" "3" "03/23/2024" "shadow\-utils 4\&.15\&.1" "Library Calls" +.TH "shadow" "3" "06/21/2024" "shadow\-utils 4\&.15\&.2" "Library Calls" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/ru/man5/faillog.5 b/man/ru/man5/faillog.5 index 7f78d7cb..26c9102d 100644 --- a/man/ru/man5/faillog.5 +++ b/man/ru/man5/faillog.5 @@ -2,12 +2,12 @@ .\" Title: faillog .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Russian .\" -.TH "faillog" "5" "03/23/2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuratio" +.TH "faillog" "5" "06/21/2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuratio" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/ru/man5/gshadow.5 b/man/ru/man5/gshadow.5 index c99dcdff..e0ad132b 100644 --- a/man/ru/man5/gshadow.5 +++ b/man/ru/man5/gshadow.5 @@ -2,12 +2,12 @@ .\" Title: gshadow .\" Author: Nicolas Fran\(,cois .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Russian .\" -.TH "gshadow" "5" "03/23/2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "gshadow" "5" "06/21/2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/ru/man5/limits.5 b/man/ru/man5/limits.5 index cbb1f997..da824718 100644 --- a/man/ru/man5/limits.5 +++ b/man/ru/man5/limits.5 @@ -2,12 +2,12 @@ .\" Title: limits .\" Author: Luca Berra .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Russian .\" -.TH "limits" "5" "03/23/2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "limits" "5" "06/21/2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/ru/man5/login.access.5 b/man/ru/man5/login.access.5 index 74c6f13c..4ca9898d 100644 --- a/man/ru/man5/login.access.5 +++ b/man/ru/man5/login.access.5 @@ -2,12 +2,12 @@ .\" Title: login.access .\" Author: Marek Micha\(/lkiewicz .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Russian .\" -.TH "login\&.access" "5" "03/23/2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "login\&.access" "5" "06/21/2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/ru/man5/login.defs.5 b/man/ru/man5/login.defs.5 index ad332e88..1f4bc48d 100644 --- a/man/ru/man5/login.defs.5 +++ b/man/ru/man5/login.defs.5 @@ -2,12 +2,12 @@ .\" Title: login.defs .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Russian .\" -.TH "login\&.defs" "5" "03/23/2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "login\&.defs" "5" "06/21/2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/ru/man5/passwd.5 b/man/ru/man5/passwd.5 index 46df54cd..8a3aeed2 100644 --- a/man/ru/man5/passwd.5 +++ b/man/ru/man5/passwd.5 @@ -2,12 +2,12 @@ .\" Title: passwd .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Russian .\" -.TH "passwd" "5" "03/23/2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "passwd" "5" "06/21/2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/ru/man5/porttime.5 b/man/ru/man5/porttime.5 index 5d0d175c..38065be1 100644 --- a/man/ru/man5/porttime.5 +++ b/man/ru/man5/porttime.5 @@ -2,12 +2,12 @@ .\" Title: porttime .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Russian .\" -.TH "porttime" "5" "03/23/2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "porttime" "5" "06/21/2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/ru/man5/shadow.5 b/man/ru/man5/shadow.5 index b1a28593..3145f93a 100644 --- a/man/ru/man5/shadow.5 +++ b/man/ru/man5/shadow.5 @@ -2,12 +2,12 @@ .\" Title: shadow .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Russian .\" -.TH "shadow" "5" "03/23/2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "shadow" "5" "06/21/2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/ru/man5/suauth.5 b/man/ru/man5/suauth.5 index 40d4c8c4..44fa4e07 100644 --- a/man/ru/man5/suauth.5 +++ b/man/ru/man5/suauth.5 @@ -2,12 +2,12 @@ .\" Title: suauth .\" Author: Marek Micha\(/lkiewicz .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Russian .\" -.TH "suauth" "5" "03/23/2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "suauth" "5" "06/21/2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/ru/man8/chgpasswd.8 b/man/ru/man8/chgpasswd.8 index 9cef4d7b..868d573e 100644 --- a/man/ru/man8/chgpasswd.8 +++ b/man/ru/man8/chgpasswd.8 @@ -2,12 +2,12 @@ .\" Title: chgpasswd .\" Author: Thomas K\(/loczko .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Russian .\" -.TH "chgpasswd" "8" "03/23/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "chgpasswd" "8" "06/21/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/ru/man8/chpasswd.8 b/man/ru/man8/chpasswd.8 index 9dd10a9f..d0ffacb9 100644 --- a/man/ru/man8/chpasswd.8 +++ b/man/ru/man8/chpasswd.8 @@ -2,12 +2,12 @@ .\" Title: chpasswd .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Russian .\" -.TH "chpasswd" "8" "03/23/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "chpasswd" "8" "06/21/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/ru/man8/faillog.8 b/man/ru/man8/faillog.8 index 8956825b..017e0bb4 100644 --- a/man/ru/man8/faillog.8 +++ b/man/ru/man8/faillog.8 @@ -2,12 +2,12 @@ .\" Title: faillog .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Russian .\" -.TH "faillog" "8" "03/23/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "faillog" "8" "06/21/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/ru/man8/groupadd.8 b/man/ru/man8/groupadd.8 index 2856ac7f..f0942ef5 100644 --- a/man/ru/man8/groupadd.8 +++ b/man/ru/man8/groupadd.8 @@ -2,12 +2,12 @@ .\" Title: groupadd .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Russian .\" -.TH "groupadd" "8" "03/23/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "groupadd" "8" "06/21/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/ru/man8/groupdel.8 b/man/ru/man8/groupdel.8 index ccef79d3..949d9841 100644 --- a/man/ru/man8/groupdel.8 +++ b/man/ru/man8/groupdel.8 @@ -2,12 +2,12 @@ .\" Title: groupdel .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Russian .\" -.TH "groupdel" "8" "03/23/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "groupdel" "8" "06/21/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/ru/man8/groupmems.8 b/man/ru/man8/groupmems.8 index 3f422191..a3ef2fa6 100644 --- a/man/ru/man8/groupmems.8 +++ b/man/ru/man8/groupmems.8 @@ -2,12 +2,12 @@ .\" Title: groupmems .\" Author: George Kraft, IV .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Russian .\" -.TH "groupmems" "8" "03/23/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "groupmems" "8" "06/21/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/ru/man8/groupmod.8 b/man/ru/man8/groupmod.8 index fe3c4eff..f0e4b262 100644 --- a/man/ru/man8/groupmod.8 +++ b/man/ru/man8/groupmod.8 @@ -2,12 +2,12 @@ .\" Title: groupmod .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Russian .\" -.TH "groupmod" "8" "03/23/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "groupmod" "8" "06/21/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/ru/man8/grpck.8 b/man/ru/man8/grpck.8 index 15cb9196..39ebad19 100644 --- a/man/ru/man8/grpck.8 +++ b/man/ru/man8/grpck.8 @@ -2,12 +2,12 @@ .\" Title: grpck .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Russian .\" -.TH "grpck" "8" "03/23/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "grpck" "8" "06/21/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/ru/man8/lastlog.8 b/man/ru/man8/lastlog.8 index 3786ea43..cd96dfb9 100644 --- a/man/ru/man8/lastlog.8 +++ b/man/ru/man8/lastlog.8 @@ -2,12 +2,12 @@ .\" Title: lastlog .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Russian .\" -.TH "lastlog" "8" "03/23/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "lastlog" "8" "06/21/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -128,5 +128,5 @@ change the behavior of this tool: Большие промежутки в значениях идентификаторов пользователей приводят к тому, что программа некоторое время ничего не выводит на экран (то есть, если в базе данных lastlog нет пользователей с идентификаторами с 170 по 800, то во время обработки UID с 171 по 799 программа кажется повисшей)\&. .PP Having high UIDs can create problems when handling the - /var/log/lastlog +/var/log/lastlog with external tools\&. Although the actual file is sparse and does not use too much space, certain applications are not designed to identify sparse files by default and may require a specific option to handle them\&. diff --git a/man/ru/man8/logoutd.8 b/man/ru/man8/logoutd.8 index 94eaacee..20b26e74 100644 --- a/man/ru/man8/logoutd.8 +++ b/man/ru/man8/logoutd.8 @@ -2,12 +2,12 @@ .\" Title: logoutd .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Russian .\" -.TH "logoutd" "8" "03/23/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "logoutd" "8" "06/21/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/ru/man8/newusers.8 b/man/ru/man8/newusers.8 index e2af160a..d01897a7 100644 --- a/man/ru/man8/newusers.8 +++ b/man/ru/man8/newusers.8 @@ -2,12 +2,12 @@ .\" Title: newusers .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Russian .\" -.TH "newusers" "8" "03/23/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "newusers" "8" "06/21/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/ru/man8/nologin.8 b/man/ru/man8/nologin.8 index c8dc5708..dd071b9e 100644 --- a/man/ru/man8/nologin.8 +++ b/man/ru/man8/nologin.8 @@ -2,12 +2,12 @@ .\" Title: nologin .\" Author: Nicolas Fran\(,cois .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Russian .\" -.TH "nologin" "8" "03/23/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "nologin" "8" "06/21/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/ru/man8/pwck.8 b/man/ru/man8/pwck.8 index 77359a21..b052af45 100644 --- a/man/ru/man8/pwck.8 +++ b/man/ru/man8/pwck.8 @@ -2,12 +2,12 @@ .\" Title: pwck .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Russian .\" -.TH "pwck" "8" "03/23/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "pwck" "8" "06/21/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/ru/man8/pwconv.8 b/man/ru/man8/pwconv.8 index 3295e46b..1dafb35f 100644 --- a/man/ru/man8/pwconv.8 +++ b/man/ru/man8/pwconv.8 @@ -2,12 +2,12 @@ .\" Title: pwconv .\" Author: Marek Micha\(/lkiewicz .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Russian .\" -.TH "pwconv" "8" "03/23/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "pwconv" "8" "06/21/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/ru/man8/sulogin.8 b/man/ru/man8/sulogin.8 index 8379adcb..37e61c99 100644 --- a/man/ru/man8/sulogin.8 +++ b/man/ru/man8/sulogin.8 @@ -2,12 +2,12 @@ .\" Title: sulogin .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Russian .\" -.TH "sulogin" "8" "03/23/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "sulogin" "8" "06/21/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/ru/man8/useradd.8 b/man/ru/man8/useradd.8 index 13cf9e38..336ab741 100644 --- a/man/ru/man8/useradd.8 +++ b/man/ru/man8/useradd.8 @@ -2,12 +2,12 @@ .\" Title: useradd .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Russian .\" -.TH "useradd" "8" "03/23/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "useradd" "8" "06/21/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -489,7 +489,7 @@ Usernames may contain only lower and upper case letters, digits, underscores, or \fBls\fR output\&. .PP -Имена пользователей могут быть длиной не более 32 знаков\&. +Имена пользователей могут быть длиной не более 256 знаков\&. .SH "НАСТРОЙКА" .PP The following configuration variables in diff --git a/man/ru/man8/userdel.8 b/man/ru/man8/userdel.8 index d4836062..7d1c3179 100644 --- a/man/ru/man8/userdel.8 +++ b/man/ru/man8/userdel.8 @@ -2,12 +2,12 @@ .\" Title: userdel .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Russian .\" -.TH "userdel" "8" "03/23/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "userdel" "8" "06/21/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/ru/man8/usermod.8 b/man/ru/man8/usermod.8 index 15bdd035..fd85384e 100644 --- a/man/ru/man8/usermod.8 +++ b/man/ru/man8/usermod.8 @@ -2,12 +2,12 @@ .\" Title: usermod .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Russian .\" -.TH "usermod" "8" "03/23/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "usermod" "8" "06/21/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/ru/man8/vipw.8 b/man/ru/man8/vipw.8 index a66bf0b7..82712edd 100644 --- a/man/ru/man8/vipw.8 +++ b/man/ru/man8/vipw.8 @@ -2,12 +2,12 @@ .\" Title: vipw .\" Author: Marek Micha\(/lkiewicz .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 03/23/2024 +.\" Date: 06/21/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Russian .\" -.TH "vipw" "8" "03/23/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "vipw" "8" "06/21/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/sv/Makefile.in b/man/sv/Makefile.in index 4c91989c..b3d1b124 100644 --- a/man/sv/Makefile.in +++ b/man/sv/Makefile.in @@ -197,6 +197,7 @@ EGREP = @EGREP@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ +FILECMD = @FILECMD@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ diff --git a/man/sv/man1/chage.1 b/man/sv/man1/chage.1 index b09056ce..5e9c0979 100644 --- a/man/sv/man1/chage.1 +++ b/man/sv/man1/chage.1 @@ -2,12 +2,12 @@ .\" Title: chage .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23-03-2024 +.\" Date: 21-06-2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Swedish .\" -.TH "CHAGE" "1" "23-03-2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "CHAGE" "1" "21-06-2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/sv/man1/chsh.1 b/man/sv/man1/chsh.1 index 27917e4e..1a8f1dbf 100644 --- a/man/sv/man1/chsh.1 +++ b/man/sv/man1/chsh.1 @@ -2,12 +2,12 @@ .\" Title: chsh .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23-03-2024 +.\" Date: 21-06-2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Swedish .\" -.TH "CHSH" "1" "23-03-2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "CHSH" "1" "21-06-2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/sv/man1/expiry.1 b/man/sv/man1/expiry.1 index a76c285e..f9625cc1 100644 --- a/man/sv/man1/expiry.1 +++ b/man/sv/man1/expiry.1 @@ -2,12 +2,12 @@ .\" Title: expiry .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23-03-2024 +.\" Date: 21-06-2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Swedish .\" -.TH "EXPIRY" "1" "23-03-2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "EXPIRY" "1" "21-06-2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/sv/man1/groups.1 b/man/sv/man1/groups.1 index 19066d94..886569a3 100644 --- a/man/sv/man1/groups.1 +++ b/man/sv/man1/groups.1 @@ -2,12 +2,12 @@ .\" Title: groups .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23-03-2024 +.\" Date: 21-06-2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Swedish .\" -.TH "GROUPS" "1" "23-03-2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "GROUPS" "1" "21-06-2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/sv/man1/id.1 b/man/sv/man1/id.1 index 4cf4e573..4ae10de5 100644 --- a/man/sv/man1/id.1 +++ b/man/sv/man1/id.1 @@ -2,12 +2,12 @@ .\" Title: id .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23-03-2024 +.\" Date: 21-06-2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Swedish .\" -.TH "ID" "1" "23-03-2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "ID" "1" "21-06-2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/sv/man1/newgrp.1 b/man/sv/man1/newgrp.1 index f1fb6c45..3dbce36c 100644 --- a/man/sv/man1/newgrp.1 +++ b/man/sv/man1/newgrp.1 @@ -2,12 +2,12 @@ .\" Title: newgrp .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23-03-2024 +.\" Date: 21-06-2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Swedish .\" -.TH "NEWGRP" "1" "23-03-2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "NEWGRP" "1" "21-06-2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/sv/man1/passwd.1 b/man/sv/man1/passwd.1 index 47235d2c..6259499a 100644 --- a/man/sv/man1/passwd.1 +++ b/man/sv/man1/passwd.1 @@ -2,12 +2,12 @@ .\" Title: passwd .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23-03-2024 +.\" Date: 21-06-2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Swedish .\" -.TH "PASSWD" "1" "23-03-2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "PASSWD" "1" "21-06-2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/sv/man1/sg.1 b/man/sv/man1/sg.1 index 202e1fb4..967f2274 100644 --- a/man/sv/man1/sg.1 +++ b/man/sv/man1/sg.1 @@ -2,12 +2,12 @@ .\" Title: sg .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23-03-2024 +.\" Date: 21-06-2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Swedish .\" -.TH "SG" "1" "23-03-2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "SG" "1" "21-06-2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/sv/man3/shadow.3 b/man/sv/man3/shadow.3 index 1676c3ab..a2de94d0 100644 --- a/man/sv/man3/shadow.3 +++ b/man/sv/man3/shadow.3 @@ -2,12 +2,12 @@ .\" Title: shadow .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23-03-2024 +.\" Date: 21-06-2024 .\" Manual: Library Calls -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Swedish .\" -.TH "SHADOW" "3" "23-03-2024" "shadow\-utils 4\&.15\&.1" "Library Calls" +.TH "SHADOW" "3" "21-06-2024" "shadow\-utils 4\&.15\&.2" "Library Calls" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/sv/man5/faillog.5 b/man/sv/man5/faillog.5 index 831c1eea..f4a5f759 100644 --- a/man/sv/man5/faillog.5 +++ b/man/sv/man5/faillog.5 @@ -2,12 +2,12 @@ .\" Title: faillog .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23-03-2024 +.\" Date: 21-06-2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Swedish .\" -.TH "FAILLOG" "5" "23-03-2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuratio" +.TH "FAILLOG" "5" "21-06-2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuratio" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/sv/man5/gshadow.5 b/man/sv/man5/gshadow.5 index 63297c4f..d90374a5 100644 --- a/man/sv/man5/gshadow.5 +++ b/man/sv/man5/gshadow.5 @@ -2,12 +2,12 @@ .\" Title: gshadow .\" Author: Nicolas Fran\(,cois .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23-03-2024 +.\" Date: 21-06-2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Swedish .\" -.TH "GSHADOW" "5" "23-03-2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "GSHADOW" "5" "21-06-2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/sv/man5/limits.5 b/man/sv/man5/limits.5 index ee2397e3..647d8566 100644 --- a/man/sv/man5/limits.5 +++ b/man/sv/man5/limits.5 @@ -2,12 +2,12 @@ .\" Title: limits .\" Author: Luca Berra .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23-03-2024 +.\" Date: 21-06-2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Swedish .\" -.TH "LIMITS" "5" "23-03-2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "LIMITS" "5" "21-06-2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/sv/man5/passwd.5 b/man/sv/man5/passwd.5 index 5e3807dd..2d362b8b 100644 --- a/man/sv/man5/passwd.5 +++ b/man/sv/man5/passwd.5 @@ -2,12 +2,12 @@ .\" Title: passwd .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23-03-2024 +.\" Date: 21-06-2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Swedish .\" -.TH "PASSWD" "5" "23-03-2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "PASSWD" "5" "21-06-2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/sv/man5/porttime.5 b/man/sv/man5/porttime.5 index f6692de6..e1da89a7 100644 --- a/man/sv/man5/porttime.5 +++ b/man/sv/man5/porttime.5 @@ -2,12 +2,12 @@ .\" Title: porttime .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23-03-2024 +.\" Date: 21-06-2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Swedish .\" -.TH "PORTTIME" "5" "23-03-2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "PORTTIME" "5" "21-06-2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/sv/man5/suauth.5 b/man/sv/man5/suauth.5 index 7dace0e7..2caf2d39 100644 --- a/man/sv/man5/suauth.5 +++ b/man/sv/man5/suauth.5 @@ -2,12 +2,12 @@ .\" Title: suauth .\" Author: Marek Micha\(/lkiewicz .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23-03-2024 +.\" Date: 21-06-2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Swedish .\" -.TH "SUAUTH" "5" "23-03-2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "SUAUTH" "5" "21-06-2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/sv/man8/faillog.8 b/man/sv/man8/faillog.8 index c544b128..98263bf5 100644 --- a/man/sv/man8/faillog.8 +++ b/man/sv/man8/faillog.8 @@ -2,12 +2,12 @@ .\" Title: faillog .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23-03-2024 +.\" Date: 21-06-2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Swedish .\" -.TH "FAILLOG" "8" "23-03-2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "FAILLOG" "8" "21-06-2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/sv/man8/groupadd.8 b/man/sv/man8/groupadd.8 index c6198790..3bfea6f9 100644 --- a/man/sv/man8/groupadd.8 +++ b/man/sv/man8/groupadd.8 @@ -2,12 +2,12 @@ .\" Title: groupadd .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23-03-2024 +.\" Date: 21-06-2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Swedish .\" -.TH "GROUPADD" "8" "23-03-2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "GROUPADD" "8" "21-06-2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/sv/man8/groupdel.8 b/man/sv/man8/groupdel.8 index fa4a1708..8b66eb6f 100644 --- a/man/sv/man8/groupdel.8 +++ b/man/sv/man8/groupdel.8 @@ -2,12 +2,12 @@ .\" Title: groupdel .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23-03-2024 +.\" Date: 21-06-2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Swedish .\" -.TH "GROUPDEL" "8" "23-03-2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "GROUPDEL" "8" "21-06-2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/sv/man8/groupmems.8 b/man/sv/man8/groupmems.8 index 144750de..4203d4a7 100644 --- a/man/sv/man8/groupmems.8 +++ b/man/sv/man8/groupmems.8 @@ -2,12 +2,12 @@ .\" Title: groupmems .\" Author: George Kraft, IV .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23-03-2024 +.\" Date: 21-06-2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Swedish .\" -.TH "GROUPMEMS" "8" "23-03-2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "GROUPMEMS" "8" "21-06-2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/sv/man8/groupmod.8 b/man/sv/man8/groupmod.8 index 51987696..d72f8002 100644 --- a/man/sv/man8/groupmod.8 +++ b/man/sv/man8/groupmod.8 @@ -2,12 +2,12 @@ .\" Title: groupmod .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23-03-2024 +.\" Date: 21-06-2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Swedish .\" -.TH "GROUPMOD" "8" "23-03-2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "GROUPMOD" "8" "21-06-2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/sv/man8/grpck.8 b/man/sv/man8/grpck.8 index d099708b..665a4c21 100644 --- a/man/sv/man8/grpck.8 +++ b/man/sv/man8/grpck.8 @@ -2,12 +2,12 @@ .\" Title: grpck .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23-03-2024 +.\" Date: 21-06-2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Swedish .\" -.TH "GRPCK" "8" "23-03-2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "GRPCK" "8" "21-06-2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/sv/man8/lastlog.8 b/man/sv/man8/lastlog.8 index cdd243f5..bf36f8dc 100644 --- a/man/sv/man8/lastlog.8 +++ b/man/sv/man8/lastlog.8 @@ -2,12 +2,12 @@ .\" Title: lastlog .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23-03-2024 +.\" Date: 21-06-2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Swedish .\" -.TH "LASTLOG" "8" "23-03-2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "LASTLOG" "8" "21-06-2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -128,5 +128,5 @@ Databastider f\(:or tidigare anv\(:andarinloggningar\&. Large gaps in UID numbers will cause the lastlog program to run longer with no output to the screen (i\&.e\&. if in lastlog database there is no entries for users with UID between 170 and 800 lastlog will appear to hang as it processes entries with UIDs 171\-799)\&. .PP Having high UIDs can create problems when handling the - /var/log/lastlog +/var/log/lastlog with external tools\&. Although the actual file is sparse and does not use too much space, certain applications are not designed to identify sparse files by default and may require a specific option to handle them\&. diff --git a/man/sv/man8/logoutd.8 b/man/sv/man8/logoutd.8 index 3b79602b..12677d86 100644 --- a/man/sv/man8/logoutd.8 +++ b/man/sv/man8/logoutd.8 @@ -2,12 +2,12 @@ .\" Title: logoutd .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23-03-2024 +.\" Date: 21-06-2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Swedish .\" -.TH "LOGOUTD" "8" "23-03-2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "LOGOUTD" "8" "21-06-2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/sv/man8/nologin.8 b/man/sv/man8/nologin.8 index ce22170b..b943388d 100644 --- a/man/sv/man8/nologin.8 +++ b/man/sv/man8/nologin.8 @@ -2,12 +2,12 @@ .\" Title: nologin .\" Author: Nicolas Fran\(,cois .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23-03-2024 +.\" Date: 21-06-2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Swedish .\" -.TH "NOLOGIN" "8" "23-03-2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "NOLOGIN" "8" "21-06-2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/sv/man8/pwck.8 b/man/sv/man8/pwck.8 index 9b5e02e2..fff09528 100644 --- a/man/sv/man8/pwck.8 +++ b/man/sv/man8/pwck.8 @@ -2,12 +2,12 @@ .\" Title: pwck .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23-03-2024 +.\" Date: 21-06-2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Swedish .\" -.TH "PWCK" "8" "23-03-2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "PWCK" "8" "21-06-2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/sv/man8/userdel.8 b/man/sv/man8/userdel.8 index d4b2f830..c80ef7f2 100644 --- a/man/sv/man8/userdel.8 +++ b/man/sv/man8/userdel.8 @@ -2,12 +2,12 @@ .\" Title: userdel .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23-03-2024 +.\" Date: 21-06-2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Swedish .\" -.TH "USERDEL" "8" "23-03-2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "USERDEL" "8" "21-06-2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/sv/man8/vipw.8 b/man/sv/man8/vipw.8 index 724db5c1..4dc34dc2 100644 --- a/man/sv/man8/vipw.8 +++ b/man/sv/man8/vipw.8 @@ -2,12 +2,12 @@ .\" Title: vipw .\" Author: Marek Micha\(/lkiewicz .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23-03-2024 +.\" Date: 21-06-2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Swedish .\" -.TH "VIPW" "8" "23-03-2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "VIPW" "8" "21-06-2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/tr/Makefile.in b/man/tr/Makefile.in index 3a4e4ba1..ff1d8845 100644 --- a/man/tr/Makefile.in +++ b/man/tr/Makefile.in @@ -192,6 +192,7 @@ EGREP = @EGREP@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ +FILECMD = @FILECMD@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ diff --git a/man/uk/Makefile.in b/man/uk/Makefile.in index 979061ba..83e14faa 100644 --- a/man/uk/Makefile.in +++ b/man/uk/Makefile.in @@ -197,6 +197,7 @@ EGREP = @EGREP@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ +FILECMD = @FILECMD@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ diff --git a/man/uk/man1/chage.1 b/man/uk/man1/chage.1 index 90e9ce7c..3f51fd37 100644 --- a/man/uk/man1/chage.1 +++ b/man/uk/man1/chage.1 @@ -2,12 +2,12 @@ .\" Title: chage .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Ukrainian .\" -.TH "chage" "1" "23/03/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "chage" "1" "21/06/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/uk/man1/chfn.1 b/man/uk/man1/chfn.1 index 7dbdbf4a..fbce48e1 100644 --- a/man/uk/man1/chfn.1 +++ b/man/uk/man1/chfn.1 @@ -2,12 +2,12 @@ .\" Title: chfn .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Ukrainian .\" -.TH "chfn" "1" "23/03/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "chfn" "1" "21/06/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/uk/man1/chsh.1 b/man/uk/man1/chsh.1 index c141216e..50d1566d 100644 --- a/man/uk/man1/chsh.1 +++ b/man/uk/man1/chsh.1 @@ -2,12 +2,12 @@ .\" Title: chsh .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Ukrainian .\" -.TH "chsh" "1" "23/03/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "chsh" "1" "21/06/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/uk/man1/expiry.1 b/man/uk/man1/expiry.1 index 7bef2d4a..fc6211be 100644 --- a/man/uk/man1/expiry.1 +++ b/man/uk/man1/expiry.1 @@ -2,12 +2,12 @@ .\" Title: expiry .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Ukrainian .\" -.TH "expiry" "1" "23/03/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "expiry" "1" "21/06/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/uk/man1/gpasswd.1 b/man/uk/man1/gpasswd.1 index 1a0e4078..6e872c87 100644 --- a/man/uk/man1/gpasswd.1 +++ b/man/uk/man1/gpasswd.1 @@ -2,12 +2,12 @@ .\" Title: gpasswd .\" Author: Rafal Maszkowski .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Ukrainian .\" -.TH "gpasswd" "1" "23/03/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "gpasswd" "1" "21/06/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/uk/man1/groups.1 b/man/uk/man1/groups.1 index 2510a6e4..420b9356 100644 --- a/man/uk/man1/groups.1 +++ b/man/uk/man1/groups.1 @@ -2,12 +2,12 @@ .\" Title: groups .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Ukrainian .\" -.TH "groups" "1" "23/03/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "groups" "1" "21/06/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/uk/man1/id.1 b/man/uk/man1/id.1 index dbbeefc7..f37ac67e 100644 --- a/man/uk/man1/id.1 +++ b/man/uk/man1/id.1 @@ -2,12 +2,12 @@ .\" Title: id .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Ukrainian .\" -.TH "id" "1" "23/03/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "id" "1" "21/06/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/uk/man1/login.1 b/man/uk/man1/login.1 index 1da157c2..411f26d0 100644 --- a/man/uk/man1/login.1 +++ b/man/uk/man1/login.1 @@ -2,12 +2,12 @@ .\" Title: login .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Ukrainian .\" -.TH "login" "1" "23/03/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "login" "1" "21/06/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/uk/man1/newgrp.1 b/man/uk/man1/newgrp.1 index fd59ad2a..94f09746 100644 --- a/man/uk/man1/newgrp.1 +++ b/man/uk/man1/newgrp.1 @@ -2,12 +2,12 @@ .\" Title: newgrp .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Ukrainian .\" -.TH "newgrp" "1" "23/03/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "newgrp" "1" "21/06/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/uk/man1/passwd.1 b/man/uk/man1/passwd.1 index 66d122b4..cf6d8096 100644 --- a/man/uk/man1/passwd.1 +++ b/man/uk/man1/passwd.1 @@ -2,12 +2,12 @@ .\" Title: passwd .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Ukrainian .\" -.TH "passwd" "1" "23/03/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "passwd" "1" "21/06/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/uk/man1/sg.1 b/man/uk/man1/sg.1 index ff2771ad..df439f4d 100644 --- a/man/uk/man1/sg.1 +++ b/man/uk/man1/sg.1 @@ -2,12 +2,12 @@ .\" Title: sg .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Ukrainian .\" -.TH "sg" "1" "23/03/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "sg" "1" "21/06/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/uk/man1/su.1 b/man/uk/man1/su.1 index 2abd0eaf..722a9ba5 100644 --- a/man/uk/man1/su.1 +++ b/man/uk/man1/su.1 @@ -2,12 +2,12 @@ .\" Title: su .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Ukrainian .\" -.TH "su" "1" "23/03/2024" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "su" "1" "21/06/2024" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/uk/man3/shadow.3 b/man/uk/man3/shadow.3 index 9b815ea2..06391085 100644 --- a/man/uk/man3/shadow.3 +++ b/man/uk/man3/shadow.3 @@ -2,12 +2,12 @@ .\" Title: shadow .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: Library Calls -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Ukrainian .\" -.TH "shadow" "3" "23/03/2024" "shadow\-utils 4\&.15\&.1" "Library Calls" +.TH "shadow" "3" "21/06/2024" "shadow\-utils 4\&.15\&.2" "Library Calls" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/uk/man5/faillog.5 b/man/uk/man5/faillog.5 index dec3fb9d..23632071 100644 --- a/man/uk/man5/faillog.5 +++ b/man/uk/man5/faillog.5 @@ -2,12 +2,12 @@ .\" Title: faillog .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Ukrainian .\" -.TH "faillog" "5" "23/03/2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuratio" +.TH "faillog" "5" "21/06/2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuratio" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/uk/man5/gshadow.5 b/man/uk/man5/gshadow.5 index 671de987..68fd5efc 100644 --- a/man/uk/man5/gshadow.5 +++ b/man/uk/man5/gshadow.5 @@ -2,12 +2,12 @@ .\" Title: gshadow .\" Author: Nicolas Fran\(,cois .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Ukrainian .\" -.TH "gshadow" "5" "23/03/2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "gshadow" "5" "21/06/2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/uk/man5/login.access.5 b/man/uk/man5/login.access.5 index 3cb34582..9d1669af 100644 --- a/man/uk/man5/login.access.5 +++ b/man/uk/man5/login.access.5 @@ -2,12 +2,12 @@ .\" Title: login.access .\" Author: Marek Micha\(/lkiewicz .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Ukrainian .\" -.TH "login\&.access" "5" "23/03/2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "login\&.access" "5" "21/06/2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/uk/man5/login.defs.5 b/man/uk/man5/login.defs.5 index ef3adafe..d075f740 100644 --- a/man/uk/man5/login.defs.5 +++ b/man/uk/man5/login.defs.5 @@ -2,12 +2,12 @@ .\" Title: login.defs .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Ukrainian .\" -.TH "login\&.defs" "5" "23/03/2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "login\&.defs" "5" "21/06/2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/uk/man5/passwd.5 b/man/uk/man5/passwd.5 index c5044427..280322d9 100644 --- a/man/uk/man5/passwd.5 +++ b/man/uk/man5/passwd.5 @@ -2,12 +2,12 @@ .\" Title: passwd .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Ukrainian .\" -.TH "passwd" "5" "23/03/2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "passwd" "5" "21/06/2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/uk/man5/porttime.5 b/man/uk/man5/porttime.5 index 459280c2..690a22e6 100644 --- a/man/uk/man5/porttime.5 +++ b/man/uk/man5/porttime.5 @@ -2,12 +2,12 @@ .\" Title: porttime .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Ukrainian .\" -.TH "porttime" "5" "23/03/2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "porttime" "5" "21/06/2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/uk/man5/shadow.5 b/man/uk/man5/shadow.5 index a8a7139c..9780f750 100644 --- a/man/uk/man5/shadow.5 +++ b/man/uk/man5/shadow.5 @@ -2,12 +2,12 @@ .\" Title: shadow .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Ukrainian .\" -.TH "shadow" "5" "23/03/2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "shadow" "5" "21/06/2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/uk/man5/suauth.5 b/man/uk/man5/suauth.5 index 0c72c5d3..4f5e91c0 100644 --- a/man/uk/man5/suauth.5 +++ b/man/uk/man5/suauth.5 @@ -2,12 +2,12 @@ .\" Title: suauth .\" Author: Marek Micha\(/lkiewicz .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Ukrainian .\" -.TH "suauth" "5" "23/03/2024" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "suauth" "5" "21/06/2024" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/uk/man8/chgpasswd.8 b/man/uk/man8/chgpasswd.8 index c2dd4353..7a067ef5 100644 --- a/man/uk/man8/chgpasswd.8 +++ b/man/uk/man8/chgpasswd.8 @@ -2,12 +2,12 @@ .\" Title: chgpasswd .\" Author: Thomas K\(/loczko .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Ukrainian .\" -.TH "chgpasswd" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "chgpasswd" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/uk/man8/chpasswd.8 b/man/uk/man8/chpasswd.8 index c645882c..7b7d86b6 100644 --- a/man/uk/man8/chpasswd.8 +++ b/man/uk/man8/chpasswd.8 @@ -2,12 +2,12 @@ .\" Title: chpasswd .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Ukrainian .\" -.TH "chpasswd" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "chpasswd" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/uk/man8/faillog.8 b/man/uk/man8/faillog.8 index 658eb839..f19d424e 100644 --- a/man/uk/man8/faillog.8 +++ b/man/uk/man8/faillog.8 @@ -2,12 +2,12 @@ .\" Title: faillog .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Ukrainian .\" -.TH "faillog" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "faillog" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/uk/man8/groupadd.8 b/man/uk/man8/groupadd.8 index 62248dce..32685412 100644 --- a/man/uk/man8/groupadd.8 +++ b/man/uk/man8/groupadd.8 @@ -2,12 +2,12 @@ .\" Title: groupadd .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Ukrainian .\" -.TH "groupadd" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "groupadd" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/uk/man8/groupdel.8 b/man/uk/man8/groupdel.8 index 03822a5d..dbbf8e7a 100644 --- a/man/uk/man8/groupdel.8 +++ b/man/uk/man8/groupdel.8 @@ -2,12 +2,12 @@ .\" Title: groupdel .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Ukrainian .\" -.TH "groupdel" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "groupdel" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/uk/man8/groupmems.8 b/man/uk/man8/groupmems.8 index 41bfa1f1..6270c579 100644 --- a/man/uk/man8/groupmems.8 +++ b/man/uk/man8/groupmems.8 @@ -2,12 +2,12 @@ .\" Title: groupmems .\" Author: George Kraft, IV .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Ukrainian .\" -.TH "groupmems" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "groupmems" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/uk/man8/groupmod.8 b/man/uk/man8/groupmod.8 index b35a7eea..0e584c15 100644 --- a/man/uk/man8/groupmod.8 +++ b/man/uk/man8/groupmod.8 @@ -2,12 +2,12 @@ .\" Title: groupmod .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Ukrainian .\" -.TH "groupmod" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "groupmod" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/uk/man8/grpck.8 b/man/uk/man8/grpck.8 index f6bc1417..3e574d99 100644 --- a/man/uk/man8/grpck.8 +++ b/man/uk/man8/grpck.8 @@ -2,12 +2,12 @@ .\" Title: grpck .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Ukrainian .\" -.TH "grpck" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "grpck" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/uk/man8/lastlog.8 b/man/uk/man8/lastlog.8 index 440f83a8..0fdc9f2a 100644 --- a/man/uk/man8/lastlog.8 +++ b/man/uk/man8/lastlog.8 @@ -2,12 +2,12 @@ .\" Title: lastlog .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Ukrainian .\" -.TH "lastlog" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "lastlog" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -127,6 +127,6 @@ change the behavior of this tool: .PP Великі прогалини у числах UID призведуть до того, що програма lastlog працюватиме довше без виведення даних на екран (тобто, якщо у базі даних lastlog немає записів для користувачів із UID між 170 і 800, може здатися, що lastlog зависла, доки програма обробляє UID у діапазоні 171\-799)\&. .PP -Наявність великих значень UID може створити проблеми при обробці - /var/log/lastlog -за допомогою зовнішніх інструментів\&. Хоча сам файл є розрідженим і він не використовує надто багато місця на диску, деякі програми типово не призначено для визначення розріджених файлів \(em такі програми можуть потребувати для обробки певного параметра\&. +Having high UIDs can create problems when handling the +/var/log/lastlog +with external tools\&. Although the actual file is sparse and does not use too much space, certain applications are not designed to identify sparse files by default and may require a specific option to handle them\&. diff --git a/man/uk/man8/logoutd.8 b/man/uk/man8/logoutd.8 index 3cf85f02..f86a741a 100644 --- a/man/uk/man8/logoutd.8 +++ b/man/uk/man8/logoutd.8 @@ -2,12 +2,12 @@ .\" Title: logoutd .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Ukrainian .\" -.TH "logoutd" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "logoutd" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/uk/man8/newusers.8 b/man/uk/man8/newusers.8 index 9bb406a1..1bc4f25c 100644 --- a/man/uk/man8/newusers.8 +++ b/man/uk/man8/newusers.8 @@ -2,12 +2,12 @@ .\" Title: newusers .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Ukrainian .\" -.TH "newusers" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "newusers" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/uk/man8/nologin.8 b/man/uk/man8/nologin.8 index 9bb56b98..ae3599b8 100644 --- a/man/uk/man8/nologin.8 +++ b/man/uk/man8/nologin.8 @@ -2,12 +2,12 @@ .\" Title: nologin .\" Author: Nicolas Fran\(,cois .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Ukrainian .\" -.TH "nologin" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "nologin" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/uk/man8/pwck.8 b/man/uk/man8/pwck.8 index 90aea0fa..bb3c08d7 100644 --- a/man/uk/man8/pwck.8 +++ b/man/uk/man8/pwck.8 @@ -2,12 +2,12 @@ .\" Title: pwck .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Ukrainian .\" -.TH "pwck" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "pwck" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/uk/man8/pwconv.8 b/man/uk/man8/pwconv.8 index 0ec72915..9f2ec23e 100644 --- a/man/uk/man8/pwconv.8 +++ b/man/uk/man8/pwconv.8 @@ -2,12 +2,12 @@ .\" Title: pwconv .\" Author: Marek Micha\(/lkiewicz .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Ukrainian .\" -.TH "pwconv" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "pwconv" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/uk/man8/sulogin.8 b/man/uk/man8/sulogin.8 index 08958dd0..66496cad 100644 --- a/man/uk/man8/sulogin.8 +++ b/man/uk/man8/sulogin.8 @@ -2,12 +2,12 @@ .\" Title: sulogin .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Ukrainian .\" -.TH "sulogin" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "sulogin" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/uk/man8/useradd.8 b/man/uk/man8/useradd.8 index 82d3a3f5..573e877e 100644 --- a/man/uk/man8/useradd.8 +++ b/man/uk/man8/useradd.8 @@ -2,12 +2,12 @@ .\" Title: useradd .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Ukrainian .\" -.TH "useradd" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "useradd" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -489,7 +489,7 @@ Usernames may contain only lower and upper case letters, digits, underscores, or \fBls\fR output\&. .PP -Довжина імен користувачів не може перевищувати 32 символи\&. +Довжина імен користувачів не може перевищувати 256 символи\&. .SH "НАЛАШТУВАННЯ" .PP The following configuration variables in diff --git a/man/uk/man8/userdel.8 b/man/uk/man8/userdel.8 index bcffb4b9..014809ec 100644 --- a/man/uk/man8/userdel.8 +++ b/man/uk/man8/userdel.8 @@ -2,12 +2,12 @@ .\" Title: userdel .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Ukrainian .\" -.TH "userdel" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "userdel" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/uk/man8/usermod.8 b/man/uk/man8/usermod.8 index ce67ad3e..66e68610 100644 --- a/man/uk/man8/usermod.8 +++ b/man/uk/man8/usermod.8 @@ -2,12 +2,12 @@ .\" Title: usermod .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Ukrainian .\" -.TH "usermod" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "usermod" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/uk/man8/vipw.8 b/man/uk/man8/vipw.8 index 5293147e..d0bb175b 100644 --- a/man/uk/man8/vipw.8 +++ b/man/uk/man8/vipw.8 @@ -2,12 +2,12 @@ .\" Title: vipw .\" Author: Marek Micha\(/lkiewicz .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 23/03/2024 +.\" Date: 21/06/2024 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Ukrainian .\" -.TH "vipw" "8" "23/03/2024" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "vipw" "8" "21/06/2024" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/useradd.8.xml b/man/useradd.8.xml index 067440ac..001e7d14 100644 --- a/man/useradd.8.xml +++ b/man/useradd.8.xml @@ -727,7 +727,7 @@ the ls output. - Usernames may only be up to 32 characters long. + Usernames may only be up to 256 characters long. diff --git a/man/zh_CN/Makefile.in b/man/zh_CN/Makefile.in index da1dbf67..7f100a79 100644 --- a/man/zh_CN/Makefile.in +++ b/man/zh_CN/Makefile.in @@ -197,6 +197,7 @@ EGREP = @EGREP@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ +FILECMD = @FILECMD@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ diff --git a/man/zh_CN/man1/chage.1 b/man/zh_CN/man1/chage.1 index a2fb533b..88d574ac 100644 --- a/man/zh_CN/man1/chage.1 +++ b/man/zh_CN/man1/chage.1 @@ -2,12 +2,12 @@ .\" Title: chage .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 2024-03-23 +.\" Date: 2024-06-21 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Chinese Simplified .\" -.TH "CHAGE" "1" "2024-03-23" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "CHAGE" "1" "2024-06-21" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/zh_CN/man1/chfn.1 b/man/zh_CN/man1/chfn.1 index 90dc7895..17ed9717 100644 --- a/man/zh_CN/man1/chfn.1 +++ b/man/zh_CN/man1/chfn.1 @@ -2,12 +2,12 @@ .\" Title: chfn .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 2024-03-23 +.\" Date: 2024-06-21 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Chinese Simplified .\" -.TH "CHFN" "1" "2024-03-23" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "CHFN" "1" "2024-06-21" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/zh_CN/man1/chsh.1 b/man/zh_CN/man1/chsh.1 index 2c6d3f31..52c6dee4 100644 --- a/man/zh_CN/man1/chsh.1 +++ b/man/zh_CN/man1/chsh.1 @@ -2,12 +2,12 @@ .\" Title: chsh .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 2024-03-23 +.\" Date: 2024-06-21 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Chinese Simplified .\" -.TH "CHSH" "1" "2024-03-23" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "CHSH" "1" "2024-06-21" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/zh_CN/man1/expiry.1 b/man/zh_CN/man1/expiry.1 index 0a46a786..e4b528b5 100644 --- a/man/zh_CN/man1/expiry.1 +++ b/man/zh_CN/man1/expiry.1 @@ -2,12 +2,12 @@ .\" Title: expiry .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 2024-03-23 +.\" Date: 2024-06-21 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Chinese Simplified .\" -.TH "EXPIRY" "1" "2024-03-23" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "EXPIRY" "1" "2024-06-21" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/zh_CN/man1/gpasswd.1 b/man/zh_CN/man1/gpasswd.1 index 74410bed..8648209d 100644 --- a/man/zh_CN/man1/gpasswd.1 +++ b/man/zh_CN/man1/gpasswd.1 @@ -2,12 +2,12 @@ .\" Title: gpasswd .\" Author: Rafal Maszkowski .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 2024-03-23 +.\" Date: 2024-06-21 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Chinese Simplified .\" -.TH "GPASSWD" "1" "2024-03-23" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "GPASSWD" "1" "2024-06-21" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/zh_CN/man1/groups.1 b/man/zh_CN/man1/groups.1 index b21eab4e..d7b66f9f 100644 --- a/man/zh_CN/man1/groups.1 +++ b/man/zh_CN/man1/groups.1 @@ -2,12 +2,12 @@ .\" Title: groups .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 2024-03-23 +.\" Date: 2024-06-21 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Chinese Simplified .\" -.TH "GROUPS" "1" "2024-03-23" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "GROUPS" "1" "2024-06-21" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/zh_CN/man1/id.1 b/man/zh_CN/man1/id.1 index 0f0bef33..30f53a7f 100644 --- a/man/zh_CN/man1/id.1 +++ b/man/zh_CN/man1/id.1 @@ -2,12 +2,12 @@ .\" Title: id .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 2024-03-23 +.\" Date: 2024-06-21 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Chinese Simplified .\" -.TH "ID" "1" "2024-03-23" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "ID" "1" "2024-06-21" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/zh_CN/man1/login.1 b/man/zh_CN/man1/login.1 index 21daa498..03f92b8b 100644 --- a/man/zh_CN/man1/login.1 +++ b/man/zh_CN/man1/login.1 @@ -2,12 +2,12 @@ .\" Title: login .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 2024-03-23 +.\" Date: 2024-06-21 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Chinese Simplified .\" -.TH "LOGIN" "1" "2024-03-23" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "LOGIN" "1" "2024-06-21" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/zh_CN/man1/newgrp.1 b/man/zh_CN/man1/newgrp.1 index bb7b5370..f34266c6 100644 --- a/man/zh_CN/man1/newgrp.1 +++ b/man/zh_CN/man1/newgrp.1 @@ -2,12 +2,12 @@ .\" Title: newgrp .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 2024-03-23 +.\" Date: 2024-06-21 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Chinese Simplified .\" -.TH "NEWGRP" "1" "2024-03-23" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "NEWGRP" "1" "2024-06-21" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/zh_CN/man1/passwd.1 b/man/zh_CN/man1/passwd.1 index 0b46e15b..cfc00166 100644 --- a/man/zh_CN/man1/passwd.1 +++ b/man/zh_CN/man1/passwd.1 @@ -2,12 +2,12 @@ .\" Title: passwd .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 2024-03-23 +.\" Date: 2024-06-21 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Chinese Simplified .\" -.TH "PASSWD" "1" "2024-03-23" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "PASSWD" "1" "2024-06-21" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/zh_CN/man1/sg.1 b/man/zh_CN/man1/sg.1 index bb1072fd..163e0b2c 100644 --- a/man/zh_CN/man1/sg.1 +++ b/man/zh_CN/man1/sg.1 @@ -2,12 +2,12 @@ .\" Title: sg .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 2024-03-23 +.\" Date: 2024-06-21 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Chinese Simplified .\" -.TH "SG" "1" "2024-03-23" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "SG" "1" "2024-06-21" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/zh_CN/man1/su.1 b/man/zh_CN/man1/su.1 index b3db1fd1..51cde5cb 100644 --- a/man/zh_CN/man1/su.1 +++ b/man/zh_CN/man1/su.1 @@ -2,12 +2,12 @@ .\" Title: su .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 2024-03-23 +.\" Date: 2024-06-21 .\" Manual: User Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Chinese Simplified .\" -.TH "SU" "1" "2024-03-23" "shadow\-utils 4\&.15\&.1" "User Commands" +.TH "SU" "1" "2024-06-21" "shadow\-utils 4\&.15\&.2" "User Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/zh_CN/man3/shadow.3 b/man/zh_CN/man3/shadow.3 index 88e03032..8521b3a7 100644 --- a/man/zh_CN/man3/shadow.3 +++ b/man/zh_CN/man3/shadow.3 @@ -2,12 +2,12 @@ .\" Title: shadow .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 2024-03-23 +.\" Date: 2024-06-21 .\" Manual: Library Calls -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Chinese Simplified .\" -.TH "SHADOW" "3" "2024-03-23" "shadow\-utils 4\&.15\&.1" "Library Calls" +.TH "SHADOW" "3" "2024-06-21" "shadow\-utils 4\&.15\&.2" "Library Calls" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/zh_CN/man5/faillog.5 b/man/zh_CN/man5/faillog.5 index d42b717e..7603c8e5 100644 --- a/man/zh_CN/man5/faillog.5 +++ b/man/zh_CN/man5/faillog.5 @@ -2,12 +2,12 @@ .\" Title: faillog .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 2024-03-23 +.\" Date: 2024-06-21 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Chinese Simplified .\" -.TH "FAILLOG" "5" "2024-03-23" "shadow\-utils 4\&.15\&.1" "File Formats and Configuratio" +.TH "FAILLOG" "5" "2024-06-21" "shadow\-utils 4\&.15\&.2" "File Formats and Configuratio" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/zh_CN/man5/gshadow.5 b/man/zh_CN/man5/gshadow.5 index 4ce813ff..3faeb89e 100644 --- a/man/zh_CN/man5/gshadow.5 +++ b/man/zh_CN/man5/gshadow.5 @@ -2,12 +2,12 @@ .\" Title: gshadow .\" Author: Nicolas Fran\(,cois .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 2024-03-23 +.\" Date: 2024-06-21 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Chinese Simplified .\" -.TH "GSHADOW" "5" "2024-03-23" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "GSHADOW" "5" "2024-06-21" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/zh_CN/man5/limits.5 b/man/zh_CN/man5/limits.5 index 2bf2b252..18aa71ed 100644 --- a/man/zh_CN/man5/limits.5 +++ b/man/zh_CN/man5/limits.5 @@ -2,12 +2,12 @@ .\" Title: limits .\" Author: Luca Berra .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 2024-03-23 +.\" Date: 2024-06-21 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Chinese Simplified .\" -.TH "LIMITS" "5" "2024-03-23" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "LIMITS" "5" "2024-06-21" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/zh_CN/man5/login.access.5 b/man/zh_CN/man5/login.access.5 index a9ea71e3..f4aaabd0 100644 --- a/man/zh_CN/man5/login.access.5 +++ b/man/zh_CN/man5/login.access.5 @@ -2,12 +2,12 @@ .\" Title: login.access .\" Author: Marek Micha\(/lkiewicz .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 2024-03-23 +.\" Date: 2024-06-21 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Chinese Simplified .\" -.TH "LOGIN\&.ACCESS" "5" "2024-03-23" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "LOGIN\&.ACCESS" "5" "2024-06-21" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/zh_CN/man5/login.defs.5 b/man/zh_CN/man5/login.defs.5 index b4eac227..f53439fe 100644 --- a/man/zh_CN/man5/login.defs.5 +++ b/man/zh_CN/man5/login.defs.5 @@ -2,12 +2,12 @@ .\" Title: login.defs .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 2024-03-23 +.\" Date: 2024-06-21 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Chinese Simplified .\" -.TH "LOGIN\&.DEFS" "5" "2024-03-23" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "LOGIN\&.DEFS" "5" "2024-06-21" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/zh_CN/man5/passwd.5 b/man/zh_CN/man5/passwd.5 index ca2ce128..eeb6262f 100644 --- a/man/zh_CN/man5/passwd.5 +++ b/man/zh_CN/man5/passwd.5 @@ -2,12 +2,12 @@ .\" Title: passwd .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 2024-03-23 +.\" Date: 2024-06-21 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Chinese Simplified .\" -.TH "PASSWD" "5" "2024-03-23" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "PASSWD" "5" "2024-06-21" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/zh_CN/man5/porttime.5 b/man/zh_CN/man5/porttime.5 index b3bd7703..31991372 100644 --- a/man/zh_CN/man5/porttime.5 +++ b/man/zh_CN/man5/porttime.5 @@ -2,12 +2,12 @@ .\" Title: porttime .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 2024-03-23 +.\" Date: 2024-06-21 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Chinese Simplified .\" -.TH "PORTTIME" "5" "2024-03-23" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "PORTTIME" "5" "2024-06-21" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/zh_CN/man5/shadow.5 b/man/zh_CN/man5/shadow.5 index d60e66ea..7991081b 100644 --- a/man/zh_CN/man5/shadow.5 +++ b/man/zh_CN/man5/shadow.5 @@ -2,12 +2,12 @@ .\" Title: shadow .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 2024-03-23 +.\" Date: 2024-06-21 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Chinese Simplified .\" -.TH "SHADOW" "5" "2024-03-23" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "SHADOW" "5" "2024-06-21" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/zh_CN/man5/suauth.5 b/man/zh_CN/man5/suauth.5 index 31988c20..176649b1 100644 --- a/man/zh_CN/man5/suauth.5 +++ b/man/zh_CN/man5/suauth.5 @@ -2,12 +2,12 @@ .\" Title: suauth .\" Author: Marek Micha\(/lkiewicz .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 2024-03-23 +.\" Date: 2024-06-21 .\" Manual: File Formats and Configuration Files -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Chinese Simplified .\" -.TH "SUAUTH" "5" "2024-03-23" "shadow\-utils 4\&.15\&.1" "File Formats and Configuration" +.TH "SUAUTH" "5" "2024-06-21" "shadow\-utils 4\&.15\&.2" "File Formats and Configuration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/zh_CN/man8/chgpasswd.8 b/man/zh_CN/man8/chgpasswd.8 index 1d969d2a..29228e1d 100644 --- a/man/zh_CN/man8/chgpasswd.8 +++ b/man/zh_CN/man8/chgpasswd.8 @@ -2,12 +2,12 @@ .\" Title: chgpasswd .\" Author: Thomas K\(/loczko .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 2024-03-23 +.\" Date: 2024-06-21 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Chinese Simplified .\" -.TH "CHGPASSWD" "8" "2024-03-23" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "CHGPASSWD" "8" "2024-06-21" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/zh_CN/man8/chpasswd.8 b/man/zh_CN/man8/chpasswd.8 index 37f03a42..3729e51d 100644 --- a/man/zh_CN/man8/chpasswd.8 +++ b/man/zh_CN/man8/chpasswd.8 @@ -2,12 +2,12 @@ .\" Title: chpasswd .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 2024-03-23 +.\" Date: 2024-06-21 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Chinese Simplified .\" -.TH "CHPASSWD" "8" "2024-03-23" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "CHPASSWD" "8" "2024-06-21" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/zh_CN/man8/faillog.8 b/man/zh_CN/man8/faillog.8 index 0f66c3b5..0151be41 100644 --- a/man/zh_CN/man8/faillog.8 +++ b/man/zh_CN/man8/faillog.8 @@ -2,12 +2,12 @@ .\" Title: faillog .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 2024-03-23 +.\" Date: 2024-06-21 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Chinese Simplified .\" -.TH "FAILLOG" "8" "2024-03-23" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "FAILLOG" "8" "2024-06-21" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/zh_CN/man8/groupadd.8 b/man/zh_CN/man8/groupadd.8 index 6b4468a7..5f846fc5 100644 --- a/man/zh_CN/man8/groupadd.8 +++ b/man/zh_CN/man8/groupadd.8 @@ -2,12 +2,12 @@ .\" Title: groupadd .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 2024-03-23 +.\" Date: 2024-06-21 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Chinese Simplified .\" -.TH "GROUPADD" "8" "2024-03-23" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "GROUPADD" "8" "2024-06-21" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/zh_CN/man8/groupdel.8 b/man/zh_CN/man8/groupdel.8 index 2fcc20c8..6cd0f67c 100644 --- a/man/zh_CN/man8/groupdel.8 +++ b/man/zh_CN/man8/groupdel.8 @@ -2,12 +2,12 @@ .\" Title: groupdel .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 2024-03-23 +.\" Date: 2024-06-21 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Chinese Simplified .\" -.TH "GROUPDEL" "8" "2024-03-23" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "GROUPDEL" "8" "2024-06-21" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/zh_CN/man8/groupmems.8 b/man/zh_CN/man8/groupmems.8 index 1b4028ba..85708095 100644 --- a/man/zh_CN/man8/groupmems.8 +++ b/man/zh_CN/man8/groupmems.8 @@ -2,12 +2,12 @@ .\" Title: groupmems .\" Author: George Kraft, IV .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 2024-03-23 +.\" Date: 2024-06-21 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Chinese Simplified .\" -.TH "GROUPMEMS" "8" "2024-03-23" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "GROUPMEMS" "8" "2024-06-21" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/zh_CN/man8/groupmod.8 b/man/zh_CN/man8/groupmod.8 index 62aa7c4a..79b5648a 100644 --- a/man/zh_CN/man8/groupmod.8 +++ b/man/zh_CN/man8/groupmod.8 @@ -2,12 +2,12 @@ .\" Title: groupmod .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 2024-03-23 +.\" Date: 2024-06-21 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Chinese Simplified .\" -.TH "GROUPMOD" "8" "2024-03-23" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "GROUPMOD" "8" "2024-06-21" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/zh_CN/man8/grpck.8 b/man/zh_CN/man8/grpck.8 index cc99c08e..38a7a9d8 100644 --- a/man/zh_CN/man8/grpck.8 +++ b/man/zh_CN/man8/grpck.8 @@ -2,12 +2,12 @@ .\" Title: grpck .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 2024-03-23 +.\" Date: 2024-06-21 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Chinese Simplified .\" -.TH "GRPCK" "8" "2024-03-23" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "GRPCK" "8" "2024-06-21" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/zh_CN/man8/lastlog.8 b/man/zh_CN/man8/lastlog.8 index 73528129..30ab644e 100644 --- a/man/zh_CN/man8/lastlog.8 +++ b/man/zh_CN/man8/lastlog.8 @@ -2,12 +2,12 @@ .\" Title: lastlog .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 2024-03-23 +.\" Date: 2024-06-21 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Chinese Simplified .\" -.TH "LASTLOG" "8" "2024-03-23" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "LASTLOG" "8" "2024-06-21" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -128,5 +128,5 @@ Database times of previous user logins\&. Large gaps in UID numbers will cause the lastlog program to run longer with no output to the screen (i\&.e\&. if in lastlog database there is no entries for users with UID between 170 and 800 lastlog will appear to hang as it processes entries with UIDs 171\-799)\&. .PP Having high UIDs can create problems when handling the - /var/log/lastlog +/var/log/lastlog with external tools\&. Although the actual file is sparse and does not use too much space, certain applications are not designed to identify sparse files by default and may require a specific option to handle them\&. diff --git a/man/zh_CN/man8/logoutd.8 b/man/zh_CN/man8/logoutd.8 index 94c0c252..bded7566 100644 --- a/man/zh_CN/man8/logoutd.8 +++ b/man/zh_CN/man8/logoutd.8 @@ -2,12 +2,12 @@ .\" Title: logoutd .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 2024-03-23 +.\" Date: 2024-06-21 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Chinese Simplified .\" -.TH "LOGOUTD" "8" "2024-03-23" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "LOGOUTD" "8" "2024-06-21" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/zh_CN/man8/newusers.8 b/man/zh_CN/man8/newusers.8 index 6c5588f8..7f31ec0a 100644 --- a/man/zh_CN/man8/newusers.8 +++ b/man/zh_CN/man8/newusers.8 @@ -2,12 +2,12 @@ .\" Title: newusers .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 2024-03-23 +.\" Date: 2024-06-21 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Chinese Simplified .\" -.TH "NEWUSERS" "8" "2024-03-23" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "NEWUSERS" "8" "2024-06-21" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/zh_CN/man8/nologin.8 b/man/zh_CN/man8/nologin.8 index 5fd3ac76..a5cc0d2e 100644 --- a/man/zh_CN/man8/nologin.8 +++ b/man/zh_CN/man8/nologin.8 @@ -2,12 +2,12 @@ .\" Title: nologin .\" Author: Nicolas Fran\(,cois .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 2024-03-23 +.\" Date: 2024-06-21 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Chinese Simplified .\" -.TH "NOLOGIN" "8" "2024-03-23" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "NOLOGIN" "8" "2024-06-21" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/zh_CN/man8/pwck.8 b/man/zh_CN/man8/pwck.8 index f080bfca..b3088a2b 100644 --- a/man/zh_CN/man8/pwck.8 +++ b/man/zh_CN/man8/pwck.8 @@ -2,12 +2,12 @@ .\" Title: pwck .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 2024-03-23 +.\" Date: 2024-06-21 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Chinese Simplified .\" -.TH "PWCK" "8" "2024-03-23" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "PWCK" "8" "2024-06-21" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/zh_CN/man8/pwconv.8 b/man/zh_CN/man8/pwconv.8 index 2bdb506b..cc29defe 100644 --- a/man/zh_CN/man8/pwconv.8 +++ b/man/zh_CN/man8/pwconv.8 @@ -2,12 +2,12 @@ .\" Title: pwconv .\" Author: Marek Micha\(/lkiewicz .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 2024-03-23 +.\" Date: 2024-06-21 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Chinese Simplified .\" -.TH "PWCONV" "8" "2024-03-23" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "PWCONV" "8" "2024-06-21" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/zh_CN/man8/sulogin.8 b/man/zh_CN/man8/sulogin.8 index a9a5172b..555b60de 100644 --- a/man/zh_CN/man8/sulogin.8 +++ b/man/zh_CN/man8/sulogin.8 @@ -2,12 +2,12 @@ .\" Title: sulogin .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 2024-03-23 +.\" Date: 2024-06-21 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Chinese Simplified .\" -.TH "SULOGIN" "8" "2024-03-23" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "SULOGIN" "8" "2024-06-21" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/zh_CN/man8/useradd.8 b/man/zh_CN/man8/useradd.8 index 372dfc25..17391755 100644 --- a/man/zh_CN/man8/useradd.8 +++ b/man/zh_CN/man8/useradd.8 @@ -2,12 +2,12 @@ .\" Title: useradd .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 2024-03-23 +.\" Date: 2024-06-21 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Chinese Simplified .\" -.TH "USERADD" "8" "2024-03-23" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "USERADD" "8" "2024-06-21" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -489,7 +489,7 @@ Usernames may contain only lower and upper case letters, digits, underscores, or \fBls\fR output\&. .PP -用户名不能超过 32 个字符长。 +用户名不能超过 256 个字符长。 .SH "配置文件" .PP The following configuration variables in diff --git a/man/zh_CN/man8/userdel.8 b/man/zh_CN/man8/userdel.8 index a1946aa9..d03dd71f 100644 --- a/man/zh_CN/man8/userdel.8 +++ b/man/zh_CN/man8/userdel.8 @@ -2,12 +2,12 @@ .\" Title: userdel .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 2024-03-23 +.\" Date: 2024-06-21 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Chinese Simplified .\" -.TH "USERDEL" "8" "2024-03-23" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "USERDEL" "8" "2024-06-21" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/zh_CN/man8/usermod.8 b/man/zh_CN/man8/usermod.8 index 4bcce9b8..6bc9f597 100644 --- a/man/zh_CN/man8/usermod.8 +++ b/man/zh_CN/man8/usermod.8 @@ -2,12 +2,12 @@ .\" Title: usermod .\" Author: Julianne Frances Haugh .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 2024-03-23 +.\" Date: 2024-06-21 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Chinese Simplified .\" -.TH "USERMOD" "8" "2024-03-23" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "USERMOD" "8" "2024-06-21" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/zh_CN/man8/vipw.8 b/man/zh_CN/man8/vipw.8 index a9f6d8b9..c28295d8 100644 --- a/man/zh_CN/man8/vipw.8 +++ b/man/zh_CN/man8/vipw.8 @@ -2,12 +2,12 @@ .\" Title: vipw .\" Author: Marek Micha\(/lkiewicz .\" Generator: DocBook XSL Stylesheets vsnapshot -.\" Date: 2024-03-23 +.\" Date: 2024-06-21 .\" Manual: System Management Commands -.\" Source: shadow-utils 4.15.1 +.\" Source: shadow-utils 4.15.2 .\" Language: Chinese Simplified .\" -.TH "VIPW" "8" "2024-03-23" "shadow\-utils 4\&.15\&.1" "System Management Commands" +.TH "VIPW" "8" "2024-06-21" "shadow\-utils 4\&.15\&.2" "System Management Commands" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff --git a/man/zh_TW/Makefile.in b/man/zh_TW/Makefile.in index 1ec42f98..aa24541d 100644 --- a/man/zh_TW/Makefile.in +++ b/man/zh_TW/Makefile.in @@ -192,6 +192,7 @@ EGREP = @EGREP@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ +FILECMD = @FILECMD@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ diff --git a/po/POTFILES.in b/po/POTFILES.in index ce610d1a..9ff6100b 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -25,7 +25,6 @@ lib/fputsx.c lib/get_gid.c lib/get_uid.c lib/getdef.c -lib/getlong.c lib/getgr_nam_gid.c lib/getrange.c lib/groupio.c diff --git a/po/bs.po b/po/bs.po index 2826d703..e97797c1 100644 --- a/po/bs.po +++ b/po/bs.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: shadow\n" "Report-Msgid-Bugs-To: pkg-shadow-devel@lists.alioth.debian.org\n" -"POT-Creation-Date: 2024-03-23 18:35-0500\n" +"POT-Creation-Date: 2024-06-21 11:23+0200\n" "PO-Revision-Date: 2004-05-09 12:03+0100\n" "Last-Translator: Safir Šećerović \n" "Language-Team: Bosnian \n" @@ -79,9 +79,6 @@ msgstr "" msgid "crypt method not supported by libcrypt? (%s)\n" msgstr "" -msgid "Environment overflow\n" -msgstr "" - #, c-format msgid "You may not change $%s\n" msgstr "" @@ -2073,10 +2070,6 @@ msgstr "nepoznata grupa: %s\n" msgid "%s: cannot create directory for defaults file\n" msgstr "nepoznata grupa: %s\n" -#, c-format -msgid "%s: cannot create new defaults file\n" -msgstr "" - #, c-format msgid "%s: cannot open new defaults file\n" msgstr "" diff --git a/po/ca.gmo b/po/ca.gmo index 59bf4a578e9557db8be469fe888ed02c62fff91a..f55a2eb3e354d6a1d4d0028cddccc219601f2a71 100644 GIT binary patch delta 11135 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 diff --git a/po/ca.po b/po/ca.po index bccc3df9..87a8d251 100644 --- a/po/ca.po +++ b/po/ca.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: shadow 4.0.18\n" "Report-Msgid-Bugs-To: pkg-shadow-devel@lists.alioth.debian.org\n" -"POT-Creation-Date: 2024-03-23 18:35-0500\n" +"POT-Creation-Date: 2024-06-21 11:23+0200\n" "PO-Revision-Date: 2012-01-22 18:25+0100\n" "Last-Translator: Innocent De Marchi \n" "Language-Team: Catalan \n" @@ -82,9 +82,6 @@ msgstr ": " msgid "crypt method not supported by libcrypt? (%s)\n" msgstr "el mètode «crypt» no és compatible amb «libcrypt»? (%s)\n" -msgid "Environment overflow\n" -msgstr "Desbordament d'entorn\n" - #, c-format msgid "You may not change $%s\n" msgstr "No podeu canviar $%s\n" @@ -2382,10 +2379,6 @@ msgstr "%s: no es pot crear un fitxer nou de preferències predeterminades\n" msgid "%s: cannot create directory for defaults file\n" msgstr "%s: no es pot crear un fitxer nou de preferències predeterminades\n" -#, c-format -msgid "%s: cannot create new defaults file\n" -msgstr "%s: no es pot crear un fitxer nou de preferències predeterminades\n" - #, c-format msgid "%s: cannot open new defaults file\n" msgstr "%s: no es pot obrir un fitxer nou de preferències predeterminades\n" @@ -3225,6 +3218,9 @@ msgstr "%s: no es pot restaurar %s: %s (els seus canvis estan a %s)\n" msgid "%s: failed to find tcb directory for %s\n" msgstr "%s: no es pot trobar el directori «tcb» per %s\n" +#~ msgid "Environment overflow\n" +#~ msgstr "Desbordament d'entorn\n" + #, c-format #~ msgid "%s: cannot change user '%s' on NIS client.\n" #~ msgstr "%s: no s'ha pogut canviar l'usuari «%s» al client NIS.\n" @@ -3245,6 +3241,10 @@ msgstr "%s: no es pot trobar el directori «tcb» per %s\n" #~ msgid "%s: group %s is a NIS group\n" #~ msgstr "%s: el grup %s no és un grup NIS\n" +#, c-format +#~ msgid "%s: cannot create new defaults file\n" +#~ msgstr "%s: no es pot crear un fitxer nou de preferències predeterminades\n" + #, c-format #~ msgid "%s: group '%s' is a NIS group.\n" #~ msgstr "%s: el grup «%s» és un grup NIS.\n" diff --git a/po/cs.gmo b/po/cs.gmo index df0529833dddf929505bd30d11a17ae306b90a65..6d012ceedc1cef081901e23ff68086ee093eefac 100644 GIT binary patch delta 12252 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\n" "Language-Team: Czech \n" @@ -81,9 +81,6 @@ msgstr ": " msgid "crypt method not supported by libcrypt? (%s)\n" msgstr "typ šifry není knihovnou libcrypt podporován? (%s)\n" -msgid "Environment overflow\n" -msgstr "Přetečení prostředí\n" - #, c-format msgid "You may not change $%s\n" msgstr "Nemůžete změnit $%s\n" @@ -2312,10 +2309,6 @@ msgstr "%s: nelze vytvořit nový soubor s výchozími hodnotami\n" msgid "%s: cannot create directory for defaults file\n" msgstr "%s: nelze vytvořit nový soubor s výchozími hodnotami\n" -#, c-format -msgid "%s: cannot create new defaults file\n" -msgstr "%s: nelze vytvořit nový soubor s výchozími hodnotami\n" - #, c-format msgid "%s: cannot open new defaults file\n" msgstr "%s: nelze otevřít nový soubor s výchozími hodnotami\n" @@ -3127,6 +3120,9 @@ msgstr "%s: %s nelze obnovit: %s (změny jsou v %s)\n" msgid "%s: failed to find tcb directory for %s\n" msgstr "%s: nepodařilo se nalézt tcb adresář uživatele %s\n" +#~ msgid "Environment overflow\n" +#~ msgstr "Přetečení prostředí\n" + #, c-format #~ msgid "%s: cannot change user '%s' on NIS client.\n" #~ msgstr "%s: uživatele „%s“ nelze na NIS klientu změnit.\n" @@ -3147,6 +3143,10 @@ msgstr "%s: nepodařilo se nalézt tcb adresář uživatele %s\n" #~ msgid "%s: group %s is a NIS group\n" #~ msgstr "%s: skupina %s je NIS skupinou\n" +#, c-format +#~ msgid "%s: cannot create new defaults file\n" +#~ msgstr "%s: nelze vytvořit nový soubor s výchozími hodnotami\n" + #, c-format #~ msgid "%s: group '%s' is a NIS group.\n" #~ msgstr "%s: skupina „%s“ je NIS skupinou.\n" diff --git a/po/da.gmo b/po/da.gmo index 8e2f82dd9b7f04dfefa2613e5fcc3dccbe596ce2..e515ea33096f5977ca12d46f21a8d189fd42d2b7 100644 GIT binary patch delta 11097 zcmYk?2YgT0|HttgL_%UENJu1KiHIaN5iwG+Vgya?UBn)Z+Ve}T+Kmt?sz!|#tYQ{j|%LRIlUIDeE}in1~+O1br|W!?7Kf#l-uJ{IOVqsi{Dw2k8 z;wG$zIjOTwn1orFfg`bOO>?EIP~%?5Ay}@KbTromh#c43GYO9Il1Vh>C{72XcB6|N0D^3 zv_n;9Rg&Axw{_@<}|r=uotz)d5CMiHi^d)gayrRz}l>H+G65iA4^@D9@De2v#I2cu~J zO{8c}bPH3lffz{sGlrul_rVvVupm~$Qs_>yI|f)sVP1AjMQ=>U?zqVI|BVI6y_t0` z3`8$1frT&v%V8WwU{4IfnOGjzU|~FuCH4G2qM-xxy=6XF1(kQhNSubcf-kTvp26a% zXH@%xFcj;dPSgW=KpZz##_iUhkrO(htymwJh~awvQ?nb6^FC_8^{5G)MGgEXMq%;R z<^=Uo1H6qY@gxkuC0G%^LVf-&7DJyl<^m#6<2S}KI2c1Yzq5#j2Hb%f=o+fzFR?1N zYs-Db*{Bb0!x+4U8Zciw^Z8g*1=?W=9BQ41)yX#^%fWeIjc-qtv|~DrqPP$9<0aG; z+(#{%{2k21f>0B!f`hRQ7REzZ9Iv5H{0D|$(T?Vp#-b|O1NHeysI{=VBlXu~b&iez z^y_3M5{L zd6zhzUCg~~f+}$j)D_J_Jtk|=g~w0>KSnLaf?dt~qqfzJTC96f&rtU^Z#OegWz>~+MBXV*8tRR<6XP&Pck>>ofg$9Rtt(L%un+6u zPw2v!9%ga6lWFMQ_d-oz9O}v!U@&e(7aqqF_yl#FZ>p(8Dbxv*Q2o8I7>-9BpM@^m zf}wc9=D%aOp8vp}=DDneDoq#EmCr{_WETeMgBXU-u_PAlWqx>6N0qoMY9h1H57(hC z;2U(|71U$=7uLbjz4an<^UBR`@Wq0)*)a|E9PdXB{2NAKcpq~GjZr7)i-9;6RlxX@0yRJumcjiP zg-=jd9N6Eil~~k-n&1NLg7fhOs)Ex8P=DQ{bu_pa&S6yk*ycV1&0|*qOVi&0T{san zzzR&j?=cZ`4l;|f0qV+Uq1M7~)I=^|4t#{F=#xRzzZ8wa@0be2V;=Gp)IINr`rruE zaWm0{8&MNDg<2!eQEMZAnyFMJRAoA&DmoP_;A$*{=TW!tej4@Hy?bR3^y9UrN>oM- z&<1rPH)^2es4Lows>l^|VUBmr=fY7}mSppR7)_pT`*)!}cN?`>^SFnYnU_IbNmJB4 z?1ehfB=p0NP|yEH)SGWVj>IcC4OccKrz!~*Cs!aPNVus(SU)aT}7HT)D+ft#k^ z?Raq++7XPJVN1-9i>;rb7R`3l8rX&2cnej+hp36>8D)Oil*a1haj0?9&=cLLiBG{o zxE#au{BNcaK*xCu#3!f{d5tz-LVl?I4Nz;KGwO=Rp$43eS}Uv2g+E|He2PWU8Dshb zFov``Mq(<4aeikOjUfC2_4pk{&F}$gBCoIr<{oQSaWHDNC!N^GY${g5;S)Kb8f)oz121DR7JtwFibW0F6E*O3)M{RW8t_Zh znmLI2+)WI{zcB<$OfvnoFpRuCYW0srRcfW%Hg;nW9T!joK1W@#?_{$kA~Bh~0qVr_ zP?cGWI)0D!5^9`ZQ4`5O#hkc2suC%v&-XzubdRS|lEzfjjMt(k9z?x3j$=4pK+XIW z>V#oa%~MblBgm6bCmx8UaXRX_ji?hHw)rX4Q}7U}nA<5j%{(quP$#U9dc2xrQ|y3c zaWzKa8PvdkVYHr-J*xghn+w z?xF?`o@pMRSnNgK0XyMdY>FYX%&*^mm`HvVc?&xsv&{=^9#$d0j9OFq=a}P~<1q3M zFb;FiHBW?-Ktmnrn1+W@1JwAy{PTGb@>+Mk#nxCg-Sp4E?&Mdn1}4liYh)DGCqICC z?tL;G=OnhmK^QTgcLvT!cQTD!3(Pw^1#6Pe#dti54bd~xyi${~3HcP%m7l}}^jl~q zl!EohSKtV|hpIrAEK|9q$hA2Sk-OlG{*e0XfLx0x1=h!RaUp6Vc^8`#G{jNlQ*b2y zi*Yz|34`E9)P!O_GAA5}N#q+)7x)r2vARpmg-u0W*q)`_e_g59$L4?YNyM7u3vdjc z!dlpDnfdqn3>;5>2`6B?<@}>UIr7LmeO8#yKSE6`awX3?uD~`J`iZI3aMT12x@lCW zk$;t097(8qwi}0F?$zdlqfu9M3d>`$HD--8!v5rA@eRC>x_~lk%?VObiq2%kVx1 zZZP9`d~POEAE)X0pG>1T2l#$r-sO?#OWp_zVrz`XUba6S3y?3xJoveF8+Ik%hdvm# z(Y&(DV=nSU^umVdkIgYg&wqCsk#x*KO=JsdO`Jj<=<}s{1BRmBboHy}U^s3^o%ou~bADyMrXx}P z?NG;!xBV-yB>5TCL|>vVEc|O@0>+TH$L#O_DKvuU*n(kr8g(TvQ4VouNq)jt4> zVJ4>HMl6p-wwg-R$Fk)8u>xkHPIw4ai5FM`gSSzC7mXU*Oi4OoEcr-G#?P&I7?0YvuwL#vf4=`XBbfGCRz--&`z4z8YP)X9x9H32)I+3B7ijnZ=_@ z*cRh(6zb{t5_RvMT77q!{ZXhZ>xQb>bPUB!7=Wj(4^fLb$8IyBa&8*>Kz-{#tVy1U zT2!Y|x8#4=2!p>d-`_n^6CZ;vT#mZpeW=epvj%=^F6<3#O#fi(PSk|mo_ov(%AqRI z3RR-17>~=WmobpM@Lp4)au`D16t&3up)Mo~i{M^-3ooGF3(@<`t9%%ykbi|NTDOz? zJ2Ox;>Tzm}^>C2w--IQ|PoXC86g5Hb@6G4JFqAye+6`5)iC7#zK~>~iRK@P0#_`>+ z&%5cQ5l%;a)Pa4hb5U2c1+|)QppNrBU~W-G)cye&j0>b7p(|X2F5HhA;2t(a-$SOPEzys>FE+)osC#}0HNoF85=$L6Cr(B!zBKFm zsLCxvf82p?7mXiiRK%xP1zktXDs6=t*lqLms1II1mG%+pbGeV21h&AIu9V0$rpnPy?o+-UFGa z#drX9D_+?BMNgPY*1~4=Pr|l%>IC(#K_lvSHbPG}PxeVD{oe9seil78E^eCXj%tWG7UG+!JY(r?C>N;c1M)Jm*Y*ENZ}1EQ2#p zt9LWH@HFc2dycA%|9P`N8Vi#*#;(`}`{6eji%}P{$8|ehX*8r`3g*RQ*cLCK7go4v z9Ue5*6uxQJLOklk6Htq84OYaHsD6)I<^*L>i?uWAo=&%Bp(eTpUAPZ5&K<0U zzPHT)*qy#;&Ycc@av+%YAtiCP;iF%-w3DzezR4Rx!|p(gwc zbzI<&W^GhQKk|-l8amM+)Bs~pCCfssiLF>2k6AtMnxD@J7(oAcRH-wu6dpx=?iah? z^PZ_h2~^3eqsDK8;piSlBaFs}r~!7N3vb!}96y;4MxZ8G&-%7?oZY_&wPv=Vo~FB~ z3e>)DY>%4oFq_Xt7w30ArJ)%e!3ca{4=C`!d>{tB>92=6E*W)Pf6R^Ps9TqXk+=rS z;0e?T|3EFyf)CAO7>ue!LoB7|Kb1x?I;LYDTxk#3fO?@EMOEk(>Yjx>G83wVUgR~f zHP*!h%)%(VfG+g-*?bp-p$ECP$}~n{u2wnB{V7ONlFksK0g;n@HZhlYNh~4sg|dl# zyx^Q*EJZw{{d)U?{A1#Sj4w+DMCE2=A41!0;tYEN2yK7qNNk3AGM<(6kEQ6@zbR^J zH(O)&^dMZc1F<(zgwUoUXiLqA4+|~w-1d5Nu7&hcZf91;z_0*!CH4#>dxCK|#~$g+ zk)A|X`o1G}(Vs;eqn$>mcscB`Z(4(_^R4%-JQmLTL=~H-(=JVWmzLHM5^crk@Fv#S zgZ!{J{k-YWVa2tnEjKmJn@kB45B6RdW)s4XJsN@C;p~=(C!>Tu2r$ygQXQg zvX012=sU}W|JVbC{!cfb(f4}O12jzueKo+7c$?_(pJQ&*{vUnX<{7e==Q-LfZQhMz zK2PS)Pqsr`B(F+j5{+#CK-$^{TUp}HWZFYf57BAbE3iODvr++WAF}QC$o+VWJ=#7p zIBW42`g3wwhiGr5{R1(Rb~~at?e16@wQa^iL|>ct$7mv%eVVoz5&jt`BXY4coD_OHVhbFEKM>=I zEaFe%1pO;_)bBOx1|0R5M7@IHcX~gfe zD`ofa+>jq3{IhSwgh+4qEA}+Ddq=V-53!!S8ZIDyrJYJ#p{*?ezcx*05AC;T^PbP% zzU8mJtG}ba4n|=G;tcISZ~(4CZT}L>^^3Uyjl5JkKcTHC@l8gFG6C**duSv*k8C@b zwtfh;C;!U!kvhMrpL{H_kNAcBQ|yo7xB#_f(AL%ny@;|lS6>1BVS7O|*ZU`i#tjZQ zMflS8$EL(i+DmXQp{*6smG37j6WS(Z?2QiasGV^sI>`MIeK|PQVEW71{Wod%p}ms$otQ+7BK{`c zC$x3P9mKc9Nb(i9kk@ZO`u~3~*!}9rPy3#}U9Xa~B^gh=Njop$#e`;{wmbGi z&1j$IkqwA#XM40a$+kP=Q=$ibLBs&sVZ@f=K|=2Aki>`;d+%9$6GZGyM9WPmRcghiR$6;i>{1k^YL6PN z`Pj5pX{)sV&o}4zzk0o%pZEEl>)dBu=em>h^_;n!@!pk;?(4ZT&2_l)WN;jR+?LaE zj!R(k9PK##&*{QHzBmol{!8qO$FQm6 zxSi6)9j6f$$v7BKVGXQS!f}S-c&v%9upGvgH1`K#ee$ny1irxvIJlIlUx&(HVq=Vs z;j=gz8Q4j~28{1yDD5~+sA!D3u?Sn@L!^yUrHmTVG1kRBSPwnQI?g$4fJx}j?6i=1 zSO;%oHH;`vAK2Tv3LBE&!SamnlwevKI03by9jF!mi<($XmZ2S)iOumG*1}-+Spz2E z0!+hE*tn8e=@C@F|KKoeQrU4RItNjY=pDK>(^#gb24j)MIWJHv3a@GgT7lKc@1oj; zu`K0_P!s+cx#fgVNzv(n+M!g`gdZbgIh9$3`b|Rq=e(@J{%dQ?vRuvFjbrgooQjDo zQ+dYPW($)sk^BIT#8_spt=x!CY7eqp>Z9 z;wR{b>#;Z<#k}|$1NHuUw=fN(Q6Fq+^YIu?z8bZH(-?&>u@Jgin){V7fV>B4pb5we z;w-}$ykhlfl|G~AQVBKj=9mXZq6YlT)^Eg8_ib%UJi9=nxQ6?h+64#Ri9(m! z4W>|#!YtGoSdV%X-=S8175(uQx-fT7^NdTQ+I@&Y*atP>G+VzO)$buJjMvbGe`5gp z$EW8!e+t1=bjCm&kJ_44)XJ}*CgRb{oNj;AfU&6d9We~Yptkr+)I`o=ZhVGXK*j_! z0T=3Zu7TC{{`aGxZ?p~8y;z0(1nPbE>TNo%grVfUQ7f2^8ekLZQ5{6>;8oP&dyX#j z>|^=~L%p_bQT<^bGYVvJWtM3@UGq#c()=;WBjL_o&a`$EuiZ zpm_`GV_ovkP&;@Qbrv!VG86H~4CEyTvH#kN(o}?Cd(;k$#cVha{ct&I1$$BL&Y%ll zp(c=jusI{KsI$=$BXJ~ZXI7$i^hYd#k1-ee4PpQF45Rrv)3d9NYSxE?jo zG0cs(QP1=h>YLANxcSY=g_Fq_VrdKGeP&2STD$JbWRBy)K3qRxUZX2r^=oveeJXivHWV+ zAr}>IQI8<|XmbclVFB_6s2%E#F*v~9UyeE}yU-giqjusB>dZJFnMY6*HIasxA3NIm zp%}^dP6~x^+>e^Tee^@GkIicshMHh))I{1~K8!=1=0w!zR-*vzp5sl&(Wo70 zit2AD`rs$19h!~W!L{QVP+Pm7ic)yinlah@-d+~{sULySI2+aR0aV9#P>1#pREItj z%$W&7eXbG)U^~}vH~|Y|GB(ELsDXb) z?M%i`OnX0T8Pr*7f|^Jl)WB0vJK^3yK^+{zEO-S2@fK>v87G<7B?$G!5rM%NgJIYP zHNi2cw_qNI;!4!O$1n`L5rLjP%ILP-@}HZ(l9R9=`LC$2 z!$hpH!0fY$PEHOKF z9!HaVe_7kBd74g{l^jAmg!+8lR5P(;{FwY5w!zWvFU?k+MNJ^+E3>tIa0K~E z)S)b}${eaV)CVu3Rur|`{3$gYOOvN!KfHw1u+|zgfeEPo_oMpDyw==zH=|INiWyi2 zkDwa9!75l|9d81MWjL7|H?R;UY&PHJ$>>9#iaBu$7Q=(K{t4zF{|mEWwk^gy*p<96dgB<(jZ-ia zF2O8%|5s4RL&aK*#C;f!4^b1z^|e`96slb>493x@Z@Q%zjfXJ=Utk#eZZ%&}RZ)+o zHx|YvsQ&k$i}9V?6#Ow`n%R06>UB!6uEhxQ$EbnxZZiYNqVg_S5|eFxnytTL>)&A@ z_ls{g6K#%K*jRL{u#kdQz75sUP4vTDJIq&QG!`Xqj+)45)WE5>{wNkCe~vxTd#5>+ zgHb!N45RRSEP*dk;|1?x|Fsp(cA2e7L>Kv7)Q;@HvUnaFW47JKHmLek^u;Tf6Q837 z$gszpnHbDVUJZ+5E9`|6Fh4%p!~Pef;PH(a*bntgD`P3_j(TQuP+Pba%i{&q+u^g< zOthgj0d;>OYGHd(J9Y;H@PmEk@J6F1-p*|cgYAt^Q8P_)QHSawF2*b;*~Br`dmP<#$vx!E9&veGuDXMcjmO^dCuG~?WUj=wnuf8i0XJL7RPh8-s8OalPUu9P~Q>t%{B=Aa3X34mZNs& zI9A5jsD4XdFavf#wI7E%6YeDxG=akyg11pyl;xtCKv675-VW9A3|s#VYK4z50(1Uk z4sQi?k+(y=eo2@g7h?MBjCsjVV^_WZcPR9wqV^^8oxT~>@mOMV{WEHS{8!C?COXS0LNu@d<}Y=-MFC%&F4G&#oEj{Y*k_ z(HB?-x7z$ZdXm3IJ)#WP%vlIQJ-S%*!_HU;lkfwagHgB=eepDEocrib-{R}$nfaj( zOJ&p}=z;lg3i{(Rbm3l9hu2W;y>6HZl|l{N64id7bt-z3uR#sG4Yjb#H`xCo6h63V z28u$hq$U=|1XTWsbsg3vKaCnV|1ER)s$fa-Ua0!{r~$r39omZv?2Fi5TbdU?RW5rQtqzT4ick5!TMt%V`k-YcJPDEh{c^v9< zlTi2Fiz#R;(okD|3N^qJ3`Xz!W9z6Gt(5? z;z!61xSjK+;5E2wt2QSCe)@mCIpqaIyx z496-Mf$`|8_kTJCoz7KQ6t|*Q^b2amZ?GT+JT`w=R6yOYh5AB?Lp`!ts7JO9HKC)J z1yo^<`_!BeE0CX|FGoONfDC|NH)K!{75@ya|9*@3Af~X51>Jk~rKPP4ouZbmu z`q;)jzQ>%x7)rdL{Qmlyd<8L^cz>lV3G^wNl|eorba7yvi!>-;8~uaJsB4PeDQ5%o zlx2U@f6b_bx*Bq)C*h)85PK8(30>L`UGXUeg97rsvbA1}HJ@5G)|sBtB*@nt!<`Xi z&#*ksv@NsKG7Hg_xaP>oh?B(oYa@j(xIY2)v-%0;X+$gH{Z)>#4$%a>N&G|ksJ)p) zt^=~)gHsSjvQZU;etZSuzqX;!|37B~b?>hz3X=&B>MEiq(T(W%pEh?WzoAaoY(x4< z1ViqdK`St9B>iEoL?L@&aZ`0tg0e2K05{Xh5GP;N-WryeOQLi40-3C+aOa9U8? z5u4*cJVlHp77%|EXQ@xcrNsMdC3W?P)9)+r7h*Xvocj0IRtkTRU&N_+k4PXswhi3X zNj4GhubUJWlF!56a2saiDW>2W^4r7^;xPF;;wceFeu^kTS=S!Qy7ZH%H*ts1S8QkM z)9k$}rzco7@O%j10FCFP#PHOjiG;dWDW zzN6fN@)MiyNB!77LVa~Ch9!v$l;2=~T#e}$uFx;hb;x{}c1}W9e&RsNyKrB3McXu- znqO_%pR#@@>Oj83){#1Y5T(e+5{HTB z-ze){SWHBa|Bv|Zm6Lo1F*2o8(LC<1lz!#*IXr+-I0=8i9r!1%!uG@&;u!ft>`bIm zo|LtS_6hni46r&qQ@OKRHNTD7Q8nLmb|F8G}2LD`QOKslKBin6W}DJLU+Kio`> zu2nb?zK3?HLH|R$x_hNfymTV({{e0Qgi-(i diff --git a/po/da.po b/po/da.po index 3d8ab964..cba6dc0b 100644 --- a/po/da.po +++ b/po/da.po @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: shadow\n" "Report-Msgid-Bugs-To: pkg-shadow-devel@lists.alioth.debian.org\n" -"POT-Creation-Date: 2024-03-23 18:35-0500\n" +"POT-Creation-Date: 2024-06-21 11:23+0200\n" "PO-Revision-Date: 2012-01-26 23:57+0100\n" "Last-Translator: Joe Hansen \n" "Language-Team: Danish \n" @@ -94,9 +94,6 @@ msgstr ": " msgid "crypt method not supported by libcrypt? (%s)\n" msgstr "cryptmetode er ikke understøttet af libcrypt? (%s)\n" -msgid "Environment overflow\n" -msgstr "Miljøoverløb\n" - #, c-format msgid "You may not change $%s\n" msgstr "Du kan ikke ændre $%s\n" @@ -2333,10 +2330,6 @@ msgstr "%s: Kan ikke oprette ny standardværdifil\n" msgid "%s: cannot create directory for defaults file\n" msgstr "%s: Kan ikke oprette ny standardværdifil\n" -#, c-format -msgid "%s: cannot create new defaults file\n" -msgstr "%s: Kan ikke oprette ny standardværdifil\n" - #, c-format msgid "%s: cannot open new defaults file\n" msgstr "%s: Kan ikke åbne ny standardværdifil\n" @@ -3154,6 +3147,9 @@ msgstr "%s: Kan ikke gendanne %s: %s (dine ændringer er i %s)\n" msgid "%s: failed to find tcb directory for %s\n" msgstr "%s: Kunne ikke finde tcb-mappe for %s\n" +#~ msgid "Environment overflow\n" +#~ msgstr "Miljøoverløb\n" + #, c-format #~ msgid "%s: cannot change user '%s' on NIS client.\n" #~ msgstr "%s: Kan ikke ændre brugeren »%s« på NIS-klienten.\n" @@ -3174,6 +3170,10 @@ msgstr "%s: Kunne ikke finde tcb-mappe for %s\n" #~ msgid "%s: group %s is a NIS group\n" #~ msgstr "%s: Gruppen %s er en NIS-gruppe\n" +#, c-format +#~ msgid "%s: cannot create new defaults file\n" +#~ msgstr "%s: Kan ikke oprette ny standardværdifil\n" + #, c-format #~ msgid "%s: group '%s' is a NIS group.\n" #~ msgstr "%s: Gruppen »%s« er en NIS-gruppe.\n" diff --git a/po/de.gmo b/po/de.gmo index da2466010c782b6534cac8517ed7e674276b0738..cf7dcbd5b540d9f093d0b7b78a275fd1aa8ce30d 100644 GIT binary patch delta 11445 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 Bn=JqU delta 11599 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\n" "Language-Team: German \n" @@ -83,9 +83,6 @@ msgstr ": " msgid "crypt method not supported by libcrypt? (%s)\n" msgstr "Verschlüsselungsmethode von libcrypt nicht unterstützt? (%s)\n" -msgid "Environment overflow\n" -msgstr "Umgebungsüberlauf\n" - #, c-format msgid "You may not change $%s\n" msgstr "Sie dürfen $%s nicht ändern.\n" @@ -2377,10 +2374,6 @@ msgstr "%s: Neue defaults-Datei kann nicht erzeugt werden.\n" msgid "%s: cannot create directory for defaults file\n" msgstr "%s: Neue defaults-Datei kann nicht erzeugt werden.\n" -#, c-format -msgid "%s: cannot create new defaults file\n" -msgstr "%s: Neue defaults-Datei kann nicht erzeugt werden.\n" - #, c-format msgid "%s: cannot open new defaults file\n" msgstr "%s: Neue defaults-Datei kann nicht geöffnet werden.\n" @@ -3228,6 +3221,9 @@ msgstr "" msgid "%s: failed to find tcb directory for %s\n" msgstr "%s: tcb-Verzeichnis für %s konnte nicht gefunden werden\n" +#~ msgid "Environment overflow\n" +#~ msgstr "Umgebungsüberlauf\n" + #, c-format #~ msgid "%s: cannot change user '%s' on NIS client.\n" #~ msgstr "" @@ -3249,6 +3245,10 @@ msgstr "%s: tcb-Verzeichnis für %s konnte nicht gefunden werden\n" #~ msgid "%s: group %s is a NIS group\n" #~ msgstr "%s: Gruppe %s ist eine NIS-Gruppe.\n" +#, c-format +#~ msgid "%s: cannot create new defaults file\n" +#~ msgstr "%s: Neue defaults-Datei kann nicht erzeugt werden.\n" + #, c-format #~ msgid "%s: group '%s' is a NIS group.\n" #~ msgstr "%s: Die Gruppe »%s« ist eine NIS-Gruppe.\n" diff --git a/po/dz.gmo b/po/dz.gmo index a423fe3b98c93f5d18458421ac2b95a6f48a1f30..96279bac30fd542dc6b0e45f6764c5c03168c284 100644 GIT binary patch delta 4243 zcmYk>-+s(zrXM0d1}``%kKELtoT{Q zVfQ54o6<^7Jv^lbWhtH6DE6jw>Cq`2$+_&v#hk`1?9ZQhGW#Br((#H(eFr{MpL1CsHzvKsIR;1KKeLfp-IUP!?*nt~!ce921zP$cF9;e>EGNr~G zz-Z8DHswqX&-Q$l1%AkQ(|<7@bo{Z| zgL-hZdNm7N%jVq1XyAK{^FNQ{o}YeFXw4Rm#({o}2A$0lcvZfCJ>$HsEbv`M0}e16 zc$AAl=WRyU^hks#xfqTkX^Wu@y2@?4gCvsdOFxr|F2PqsecM;Sm3Mt6+h)j z?q|%}9{S(4sXya}=h2}wmuJ&Fo_6sq$b%kug< z#w>m(_ajD6d`ZhD9nmIxa3!t4RK1OJQ zV%n?_WBWAYL2ol|{1tn#v8!UNhcV8Z%xLH}EN~^`jUQnQ$#zD=-^%@jaozX1O-zuu ze-{>F{ZCMcNpqEt_=eiZXz^o=H`v7?e4qYOBjXScs$z`caK`!PGkS6XV@|ALywGDb zYU!=~_&&z@KS$m3Q-!G-7j|WIVKw8z>D1`7f^os4Y`|BjbJ81(8}DO%mRkxjX&W*c zT0wuQkB=C-DRgR@o9|!C()xc%A#VHuWBvb?@dowuQ%tS`2S^uA|Fwc(pe4Yii?w*b5V8&z_ z%RO#5i*aG6s_f0juz~tz9K=Puhue5DNAyhTB5vh6HZY;8xrsgaX)pcXTj3~+e;S8# zKOf~*-gc_DVILTY}tW17QxT+bE!C3l5Z)~c6zt(AO` z(creaXDOF4dgyx&KRs0Sw zS8p;V`^sL%RqD?(9@txV=)CkC$MGO0>%5MCr%_Ai>b9uYvMrmLVbQ?;jLG)4 zkD2VCTkd8JV@O(0*WN)2Tc>AT_cdcIyUxgF^LEA!_p(3B-6dAVATHrbe#@U|Skr-v zvoY^GE9)S2lGp3Y_lK8AQQZ{RDl^;f)Uzf1fw@gdG+A%!|pl(8n@<&Ulk4W@;?sPgr2p!fct2=W6v2S-}eyWkWoVcd8d_6>1f_ zU6uWAzsGgzU-Ld*dv(@jl@@Dz^@WTZ-b=%pT3_S;47{E(RNHwn|IB!yGUHUn*!pCY zKDYX`l8dGB-kl#P=McG79+5NUMv3i&jMCfnRF3YyE8ka#Q7J9a+v|3)>mlW(hm_;( zOMR^aO22NqXr7dQ@rH4m9J(3W^gF39-Ng4&>Bk49ZHLcS*u(@=RqT1ads zNtKL^N{sbcQLy!r^JKilZ0{g3%TJe;a-F;;dN%EpOT^MI{X*8`O>(5f7PEY$be3@v z+da~wR7&XqJ}6^jOk+*7Ou^p9B`uQt7&JS*o&YiTF3HIX(_6BS#GNo+B#V;dzG%R-4Y*GZEW4S_Z$PWg0$c2a0wj zuJwEDI3+*WGPir~R1T2U@|l32J8No*I$i?TtM%cF9&OqAG~W~ArYP}=$i wO0Uc1@{(LHH%n||x$+(KJT-$)s8=%bFlsY0o@_rYybcN delta 4363 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 G`~M%SPZ_@e diff --git a/po/dz.po b/po/dz.po index 5b194798..16c7923e 100644 --- a/po/dz.po +++ b/po/dz.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: shadow 4.0.17\n" "Report-Msgid-Bugs-To: pkg-shadow-devel@lists.alioth.debian.org\n" -"POT-Creation-Date: 2024-03-23 18:35-0500\n" +"POT-Creation-Date: 2024-06-21 11:23+0200\n" "PO-Revision-Date: 2006-06-01 15:28+0530\n" "Last-Translator: Jurmey Rabgay \n" "Language-Team: dzongkha \n" @@ -82,9 +82,6 @@ msgstr "" msgid "crypt method not supported by libcrypt? (%s)\n" msgstr "" -msgid "Environment overflow\n" -msgstr "མཐའ་འཁོར་ལུད་སོང་བ།\n" - #, c-format msgid "You may not change $%s\n" msgstr "" @@ -2125,10 +2122,6 @@ msgstr "%s: སྔོན་སྒྲིག་ཡིག་སྣོད་གས msgid "%s: cannot create directory for defaults file\n" msgstr "%s: སྔོན་སྒྲིག་ཡིག་སྣོད་གསརཔ་ གསར་བསྐྲུན་འབད་མི་ཚུགས།\n" -#, c-format -msgid "%s: cannot create new defaults file\n" -msgstr "%s: སྔོན་སྒྲིག་ཡིག་སྣོད་གསརཔ་ གསར་བསྐྲུན་འབད་མི་ཚུགས།\n" - #, c-format msgid "%s: cannot open new defaults file\n" msgstr "%s: སྔོན་སྒྲིག་ཡིག་སྣོད་གསརཔ་ ཁ་ཕྱེ་མི་ཚུགས།\n" @@ -2837,6 +2830,9 @@ msgstr "%s: %sསོར་ཆུད་འབད་མ་ཚུགས་: %s (ཁ msgid "%s: failed to find tcb directory for %s\n" msgstr "%s: ནུས་མེད་གཞི་རྟེན་སྣོད་ཐོ་'%s'།\n" +#~ msgid "Environment overflow\n" +#~ msgstr "མཐའ་འཁོར་ལུད་སོང་བ།\n" + #, c-format #~ msgid "%s: cannot change user '%s' on NIS client.\n" #~ msgstr "%s: ཨེན་ཨའི་ཨེསི་ ཞབས་ཏོག་སྤྱོད་མི་གུ་ ལག་ལེན་པ་ '%s' བསྒྱུར་བཅོས་འབད་མི་ཚུགས།\n" @@ -2857,6 +2853,10 @@ msgstr "%s: ནུས་མེད་གཞི་རྟེན་སྣོད་ #~ msgid "%s: group %s is a NIS group\n" #~ msgstr "%s: སྡེ་ཚན་ %s འདི་ ཨེན་ཇི་ཨེསི་ སྡེ་ཚན་ཨིན།\n" +#, c-format +#~ msgid "%s: cannot create new defaults file\n" +#~ msgstr "%s: སྔོན་སྒྲིག་ཡིག་སྣོད་གསརཔ་ གསར་བསྐྲུན་འབད་མི་ཚུགས།\n" + #, c-format #~ msgid "%s: group '%s' is a NIS group.\n" #~ msgstr "%s: སྡེ་ཚན་ '%s' འདི་ ཨེན་ཨའི་ཨེསི་སྡེ་ཚན་ཨིན།\n" diff --git a/po/el.gmo b/po/el.gmo index f74e04d3018a2f9162391edef9ebb91ca576caa7..cd53fce0a1985216aa13b9268d54ed263a90169e 100644 GIT binary patch delta 11353 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 MW$Ti>o|rQK2XY}jMF0Q* delta 11458 zcmYk?2YgP~AII_Y5IYD$Vnt%ah)om3h)sn9|1jge+Y;BC!WUOdR z3o2r8D1L(VF?S_nhGSc7fCn%fvsSk2>tQqUi8vCEU`>pwV(Z7D@_pD6pJNStv#N7q zlZ?$dzd1>v6)TEVvn%4U9r+GqmC0FM8**T5g43}np1_k>@C{?e;%(H0^rMxHaTC_V zf3ObLh_H^rH_5kP1m`y|DbN)rg68Rprl77k4b`x`T!wli4%^^zY>1CgCyb!K7h*Dw z!6K3NO6Q@Dn~KA+Xl-LCnh#M!bPT;}X;zx24O$}?W%lA&e1baBu)175ZbfbP7}d~t zE{~$wjJnc?{7}zSjj|0Lhn&OwggRbUu0j_wi683G{q^a8wKx}-`z}t!8JL-~D*p&+ zgUQp#n9&%Gqwo-_3+vK)op2gzXigxbU;;^oVQW4O~8e1zPq9wGc7lHcl5zT%!0!)501wQI15YRE-Z`}u_8W4 ze=N`ChG2cvcD+&iO|!YzY^P9~igQ>3GsUnImc>HY5w(687Q;oT6YW550CNhfV(xa< z2B;H`#NxOBb=;k<=TXPY&|VE<{L4|$f!knN9Ev)@V$=b)p}IC51MneM#_S#J6-8n} z@}8&@jYpl}Q!ImrP{+TII-Xxgdz@<6i}RZn6sqHTEQgm-JLc+SCuaoefW1)%n1O2G zdMt`ZT>nH(%FJ(Zr(iwTIjH(SumA>j=Ga&Xy&99c6f{}-U;qw7ooE^k!?oy-L0#;S zR70J(H3ne)eV&R!n5DZt zVQ~y5Z;Cqb0Mw+Mf%Wkl*MCuCUb}}qP8@2xX{Zxy!#6O^HB+3ek3{u!d#_uOfEwfX zPz_p#y3${fXNb9ldXk0rv=5wjP|ty_7=$lfgL>HusDllu?}fqm1s23ZsII?=YJm42 z3c7N?-uC?;hQZ{`uqX~hZ8#N+)R;a&b)nw?JNZguFnJ{Exe$wCI16>0 z9jN2};pV;rZI4#PVw~T+Nud(Pqjp^EdJu!jAEFMBFW%0LC@f1p5Ou{VsJZer>TWoI z^DrIf;*deM2YnLk5QL(J>P_@&Oa{0WGu;i=U^(hjF%+L-Fa{5{2da;C$$MjcT#ilf z3aSUf678IbMKx#?X29vF9+`zDadRU5ugP_qifnivHTM6ab}TT&ZdeY3$)hm@hoUC! zN2ocn4%KtVu?#*#4PB|Bwr3k-9`cc>p`3~u!o@@Be{Hyt3iZSZ)B*lRohXRMpVmjA zW_cW{N5)|=E<^3N7jS^y33K0~RqfYp{ z>m5{s^u48?D2o1A54B@^tcgQ02d=@~xDD&zL2QIRqwRjpF`T?Rswd{zdawD`U2y_) zu_7y%Cj(HECKNSU%3@Y*jq1Wqs0NNgKTN?IxB|8RIn0E&Q4M~Gc`(;l+x5X1p!>fe zg+NwxMRm;xtcqS|1HR)?bKnT-N^hbL_!u=;@{Y4zABk#6EEd4QZvAA`}X5+XYOp2d;g<#kbaK_^s?B_nr>*L+4nC)|iS@GfkDhp;^6n`+;7QK$pO zV`)sr)gEKMLOmBcOtXKW=#Dy0942A{w#GAf3Cm44=6%dLLw~Sf{O40pS3E{NN&{!| zv4Jg-Hkk9c5&O>KWEe1;I|cXQmsov{{oU~#_9l<{fZoDwI1r0*u&;3%#$m0Gczoj$ z9L@PnffQyw&c^2bkk?{^+239DzTrp#N7;h+4_x5wG&2JhxTFu7F}yEY&vctFR+gO zZ$jblIy;tr>+OkmAfsV|IO`9%34g~C3}hy{G@1!@j@jC?0_fk+-M{g&=Gsv)+B-X}Zjve+jnt*%AHzM=MB<*BEqR%e- z7m;|3C%=eE*phMSiMw4xzOzG{jN0xNjz@3D@9kf^PU2iDLU&ttp}Mxs9@~&3*oi!h z?wE?7`J;AHC1Ei2$1n!(Vg;{6qp5#u#=BPO^ z9lPUmtc0;Y+Y6kDx{H2AZ$}C>f3cJ71JtBCg^?I}%Fg=HIGjA@S39c@qD~z8o9&52 z)Bz7;G?qVYd*W>@PQC_9<1thZ|BZ22FP;8Z;j?tR!oxkLmbO66f$^xWn~%Qu5<}7V zjO~eP$UifIAC)ooto=*MEG$dD7sK&3&cqVu?7QV_R70PgqyJk|XnEdt^%B%1F@M;u ztc9_p|7GXI`=|!~gb^6{xBZ4}gO$j8qZ*omwK%^?r*IVgAKNF_MGPi?fgfVAC-!#R zi2cZ)qOLsdAN#A;5)3C#$71OB)c)D6GL|6kf$HI8jKH*hhrqJ#71}#8(?TgkMo<(Kx{$22|vacI1QKj zc+7Tf$Gf{Po<|L7qs(59^Uar>*<&(Lu^l_(PSkkLs7H!bL@$C zF%H}KdYs9*5w*ThPLDI$`l5Q|W7Pf^P?IfRE?eIjGG ze)dXMqVnsgo~fG0_RLJwBs`6p6Z!IboZGAq(s||sEQky8d7Q7{jsAAO!uf5(`eTCb z|HTvnI6#&H9_LY742zP_$2V{bj>el<273i~oLM~s8q`@eJ{k8?ji$DynUFYIw1#jCJ3`D0ANYDGNG?e&H0LCj43HPo2i z!9v)esKSQmc5+R?lGIN`_0$)r3pj-{w0&8R^MqW1>WMR` z2Iep4^*Aqyh;kn1qp=rWW`!3uM!m!AZ8a4&#=Efz`j@wJqbsTh7owgE$59vHSHWI+ zXHgL80>@VQA3iilE?WabR_D)&rn_6xU%i~O{nL_ zU#K1^T*cn5QK$ybKuz8YsL9x_sy*&@)KGZ~R0Sjfjj?Oeba%d{3A~gzo)~tos#tHW}_p=a)`WXIW4F2{DIwwQO|@>oF52 z%T8#yK%8Vd9=6W%A1|& z@5(boHsXl8omfLGX8i=LNZg=2orobcyPbtw%08a(9PuBu`|T<-nq1TUTja57)(}2K z9_oVdnY*3P|D&^-x>rki3Yz*a2tA)O5#5Q-ueQIS&alk7(-FCs5Wh)b&rwlPT*7Q-(M}`BThAL$x?xmn!JVvVzFQ2H&_l@5ev1 zl12BEmX*Xk>N9YF1C+N>K1RGxxf2mcIS%upmQ9$O7~tmd$TQ#hc5A`g&Dm%b74Ntk zjB?d|*NwFu@Cwn9atP7T*@Krk{!9Ijnr#0>JmsMn!B>>dz$IOv(%gP6qn zNzNA&b^N4?lRO&y&CB&=cQ|cNMM_*N7I`J`)ME$E}1BJiHPhw5HO!R$i zy_e^m`RcWbb8I-DJOyvzM$}jK2e6X-4`K-M1NpziZK4PHPlR3>TDDWx;!pG=E)oTa zuGD|+uB$^n{MBGnc9vgQnUzuo+~wAZqvQjL!NePcmM-`eYSwmE1xqf=|9|Fkw^haW zggz@8Qul($p-R2ivy)6E{wCG$D_Z^`KTPCv9*DDSrFn|Y-0~RKW+7ISSI4=;eagLv z-zjV19pn7PQsv#0+u{u+EZ-7(Q|_fc3QJ=J;soU<7>_HE#cQ7P^An;Gk&O$^sf%VQ zKzzqW<*+*8L+m58MA)63kH(vBxd`=@iMPl%yLH<3FQOv(+r$sVUGgt+AcpX{XFj5! zawN4SM(MQE9TO>i2f zIyLqOUue!(?ia7ssW^aG$~upi?ifN6Mxy0B(Vy~i;xVz47)v}O-Y2y5#2v)<#3=G* zxPj2(!TQ8yoBsdjukLzP_)@-tzY}FUlDtbqlVm3{)1axS<&wKoOUh}^)1oako!nY& z(S-7GjK#Y|Ps)XfL6n1u<&?FQr<~Ik%_DqqA?0AMs>RO3;P;DPu3jZSHX)pn8>+X%kYnrcF$nnz}W0L+Y;7 o9cjs_+kW\n" "Language-Team: Greek \n" @@ -83,9 +83,6 @@ msgstr ": " msgid "crypt method not supported by libcrypt? (%s)\n" msgstr "η μέθοδος κρυπτογράφησης δεν υποστηρίζεται από το libcrypt? (%s)\n" -msgid "Environment overflow\n" -msgstr "Υπερχείλιση περιβάλλοντος\n" - #, c-format msgid "You may not change $%s\n" msgstr "Δεν μπορείτε να αλλάξετε το $%s\n" @@ -2393,10 +2390,6 @@ msgstr "%s: αδυναμία δημιουργίας νέου αρχείου πρ msgid "%s: cannot create directory for defaults file\n" msgstr "%s: αδυναμία δημιουργίας νέου αρχείου προκαθορισμένων ρυθμίσεων\n" -#, c-format -msgid "%s: cannot create new defaults file\n" -msgstr "%s: αδυναμία δημιουργίας νέου αρχείου προκαθορισμένων ρυθμίσεων\n" - #, c-format msgid "%s: cannot open new defaults file\n" msgstr "%s: αδυναμία ανοίγματος νέου αρχείου προκαθορισμένων ρυθμίσεων\n" @@ -3241,6 +3234,9 @@ msgstr "%s: αδυναμία επαναφοράς %s: %s (οι αλλαγές ε msgid "%s: failed to find tcb directory for %s\n" msgstr "%s: αποτυχία εύρεσης καταλόγου tcb %s\n" +#~ msgid "Environment overflow\n" +#~ msgstr "Υπερχείλιση περιβάλλοντος\n" + #, c-format #~ msgid "%s: cannot change user '%s' on NIS client.\n" #~ msgstr "%s: αδυναμία αλλαγής χρήστη '%s' στον εξυπηρετητή NIS.\n" @@ -3262,6 +3258,10 @@ msgstr "%s: αποτυχία εύρεσης καταλόγου tcb %s\n" #~ msgid "%s: group %s is a NIS group\n" #~ msgstr "%s: Η ομάδα %s είναι NIS ομάδα\n" +#, c-format +#~ msgid "%s: cannot create new defaults file\n" +#~ msgstr "%s: αδυναμία δημιουργίας νέου αρχείου προκαθορισμένων ρυθμίσεων\n" + #, c-format #~ msgid "%s: group '%s' is a NIS group.\n" #~ msgstr "%s: Η ομάδα '%s' είναι NIS ομάδα.\n" diff --git a/po/es.gmo b/po/es.gmo index 6950151b8f5a3ba5e5737da23baec73731ca01b1..802fd08455b397d445793c87f9ef945105113ae2 100644 GIT binary patch delta 10043 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 delta 10142 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 diff --git a/po/es.po b/po/es.po index 9d6795ae..b03242f3 100644 --- a/po/es.po +++ b/po/es.po @@ -32,7 +32,7 @@ msgid "" msgstr "" "Project-Id-Version: shadow 4.1.4.2\n" "Report-Msgid-Bugs-To: pkg-shadow-devel@lists.alioth.debian.org\n" -"POT-Creation-Date: 2024-03-23 18:35-0500\n" +"POT-Creation-Date: 2024-06-21 11:23+0200\n" "PO-Revision-Date: 2011-11-23 23:56+0100\n" "Last-Translator: Francisco Javier Cuadrado \n" "Language-Team: Debian l10n Spanish \n" @@ -108,9 +108,6 @@ msgstr ": " msgid "crypt method not supported by libcrypt? (%s)\n" msgstr "¿libcrypt no permite utilizar el método de cifrado? (%s)\n" -msgid "Environment overflow\n" -msgstr "Desbordamiento de entorno\n" - #, c-format msgid "You may not change $%s\n" msgstr "No debe cambiar $%s\n" @@ -2389,11 +2386,6 @@ msgid "%s: cannot create directory for defaults file\n" msgstr "" "%s: no se puede crear un nuevo fichero de preferencias predeterminadas\n" -#, c-format -msgid "%s: cannot create new defaults file\n" -msgstr "" -"%s: no se puede crear un nuevo fichero de preferencias predeterminadas\n" - #, c-format msgid "%s: cannot open new defaults file\n" msgstr "" @@ -3229,6 +3221,9 @@ msgstr "%s: no se puede restaurar %s: %s (sus cambios están en %s)\n" msgid "%s: failed to find tcb directory for %s\n" msgstr "%s: se produjo un fallo al buscar el directorio tcb de %s\n" +#~ msgid "Environment overflow\n" +#~ msgstr "Desbordamiento de entorno\n" + #, c-format #~ msgid "%s: cannot change user '%s' on NIS client.\n" #~ msgstr "%s: no se pudo cambiar el usuario «%s» en el cliente NIS.\n" @@ -3249,6 +3244,11 @@ msgstr "%s: se produjo un fallo al buscar el directorio tcb de %s\n" #~ msgid "%s: group %s is a NIS group\n" #~ msgstr "%s: el grupo %s es un grupo NIS\n" +#, c-format +#~ msgid "%s: cannot create new defaults file\n" +#~ msgstr "" +#~ "%s: no se puede crear un nuevo fichero de preferencias predeterminadas\n" + #, c-format #~ msgid "%s: group '%s' is a NIS group.\n" #~ msgstr "%s: el grupo «%s» es un grupo NIS.\n" diff --git a/po/eu.gmo b/po/eu.gmo index 374fd649fe4699f60e81d136e02980769d42598c..5c35de36d4108e88525bb4e19b1decda30cfe7d7 100644 GIT binary patch delta 8502 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 OEL~HhB>0WekpBWl2wchl delta 8622 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 diff --git a/po/eu.po b/po/eu.po index 767c2faf..127e09be 100644 --- a/po/eu.po +++ b/po/eu.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: eu\n" "Report-Msgid-Bugs-To: pkg-shadow-devel@lists.alioth.debian.org\n" -"POT-Creation-Date: 2024-03-23 18:35-0500\n" +"POT-Creation-Date: 2024-06-21 11:23+0200\n" "PO-Revision-Date: 2011-11-26 19:42+0100\n" "Last-Translator: Piarres Beobide \n" "Language-Team: Euskara \n" @@ -82,9 +82,6 @@ msgstr ": " msgid "crypt method not supported by libcrypt? (%s)\n" msgstr "libcrypt-ek onartzen ez duen kriptografia metodoa? (%s)\n" -msgid "Environment overflow\n" -msgstr "Inguruneak gainezka egin du\n" - #, c-format msgid "You may not change $%s\n" msgstr "Ez zenuke $%s aldatu beharko\n" @@ -2304,10 +2301,6 @@ msgstr "%s: ezin da lehenespen fitxategi berria sortu\n" msgid "%s: cannot create directory for defaults file\n" msgstr "%s: ezin da lehenespen fitxategi berria sortu\n" -#, c-format -msgid "%s: cannot create new defaults file\n" -msgstr "%s: ezin da lehenespen fitxategi berria sortu\n" - #, c-format msgid "%s: cannot open new defaults file\n" msgstr "%s: ezin da lehenespen fitxategi berria ireki\n" @@ -3101,6 +3094,9 @@ msgstr "%s: ezin da %s leheneratu: %s (zure aldaketak %s(e)n daude)\n" msgid "%s: failed to find tcb directory for %s\n" msgstr "%s: oinarrizko '%s' direktorio baliogabea\n" +#~ msgid "Environment overflow\n" +#~ msgstr "Inguruneak gainezka egin du\n" + #, c-format #~ msgid "%s: cannot change user '%s' on NIS client.\n" #~ msgstr "%s: ezin da NIS bezeroko '%s' erabiltzailea aldatu.\n" @@ -3121,6 +3117,10 @@ msgstr "%s: oinarrizko '%s' direktorio baliogabea\n" #~ msgid "%s: group %s is a NIS group\n" #~ msgstr "%s: %s taldea NIS talde bat da\n" +#, c-format +#~ msgid "%s: cannot create new defaults file\n" +#~ msgstr "%s: ezin da lehenespen fitxategi berria sortu\n" + #, c-format #~ msgid "%s: group '%s' is a NIS group.\n" #~ msgstr "%s: taldea '%s' NIS talde bat da.\n" diff --git a/po/fi.gmo b/po/fi.gmo index aedf0322d1f67835a64da743cf48c3e871241c27..69b441e6f9254f37ab98067b2a0a7bf269d57a2a 100644 GIT binary patch delta 4278 zcmYk;39waV0SEB!i7X=ekX;bC4^#xf4HZP_DTyeq6ru_G5SP+23{!l$Tung*!L(Rh z3WM?~YNe=|rh+oIh|QQfsV$^4Zsn3T4w+^B{_kF9-Z$@mf8Y7;x#xV_Iq>lf4I7p; zRR7Xz`{hO1B)iGPE~RvBC}nn!w3c#7&r)_|EBE9=w(wp~V2@o&8N;dU&x<&mOF4k| z*N=b8T=IQ(=cnveO0{(9Rmxlqjm#JG*~rV;l}qW|vYdOct?qLi==h)Y+nbB38#JgzH%A2faq@So%*vrA*9Lvl^3rBNd{rCY^9KT#||Ad*L zJq<4-KY{7cS*-9nevWt3UwPYy$u8UJZLZ&Mp!v^~PSl_e2=RLSE?!pYnV}QSW-W} zgW1J@sQV@}6CcxKQw9#L-FP@XiRCbk=XB3z-?cp4l5~m;pUW zt5>$vzyFMV-M{p=Rr7-}b&q7GvW5BKrPTRy8*_sv*p)BRB$Yog7ygW$IoKnS%{!dw z=oscHneHP?cnO_au3<|1eYELvMEA5I)7d zm=64%S<9{L%3gYtB^k*5IfnVisfF1)OX;t)`N+Ut9BuydqWMrme%RUB6%JrC58+g{ zGE1?M`cz)y1oqgcw%eyNH$0mau4D%C2u)&njs8lveQVbl$8`MUs>+vD<}+*ZDl07e z)ofzcb~5dkat5=ei_GUFgNIZ zKyAv$^Ek)Tn3-9{EYUrza1;Hcyg`#u`g?um4LZd~j$4@ywlO!_#PNKK8BpcG_AypV zvr4As0v^lN%#Ge6yH%l{tYwLTbK@X@mlT81DW=tn6;lr zmoB%n{onuRRno%`nI-5muJ+=Xz>4E9FmJRAc{Oih*1oUdWNJ@jHs@uW#YNnauQN;Y zJ~I>j{6o;hu}u3(%>FBv*S}cDDULUD0DHMhI<_~nS&rupat3t&Qvz4TCj&#PqD^VYMkgm_r;-XWB2Q zAFp7}e~4N87nqU#nFHD7@Y=uoO&scY7IVW(*@w%x8`oAue9&Vd$bM8 zh$CuKb|$mS=P?(!joAwuxf5Sy9;dgtI|omxJ)V=9DL;i7@mV~Qt!!Y52d-MH`MgJ_ z$wIkaQnr(3St4sC?}u+oN@gvkBH7(}i{309%U2xSB}+RrW-!~zB^~ZxZmhS?XV&yF zIZN_{94_}u$8w&7UrJ}m<~v%t%C_>L%A?Yy-f%BZlEY-ZWS_L(euwZrlE)$_PrD_`%>-lE>r;kZrx2hzLVwx(|0nklp7YjRr-l&58^v=3%b zT9kd{2{~O3l|}MXStWTl%#~Z@2Kk|+d`TXb@5$xzBl)Jxkd!_(%FozME|87#Rrz`L s>SZd|NXjvCpKQPWzMl7WT3_w+Y`67u1`pU}{n~vNbYH*!AxG@=f7I5X82|tP delta 4390 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 U?}_DA^{XRwk+`\n" "Language-Team: Finnish \n" @@ -78,9 +78,6 @@ msgstr "" msgid "crypt method not supported by libcrypt? (%s)\n" msgstr "" -msgid "Environment overflow\n" -msgstr "Ympäristön ylivuoto\n" - #, c-format msgid "You may not change $%s\n" msgstr "Et voi muuttaa muuttujaa $%s\n" @@ -2140,10 +2137,6 @@ msgstr "%s: uutta defaults-tiedostoa ei voi luoda\n" msgid "%s: cannot create directory for defaults file\n" msgstr "%s: uutta defaults-tiedostoa ei voi luoda\n" -#, c-format -msgid "%s: cannot create new defaults file\n" -msgstr "%s: uutta defaults-tiedostoa ei voi luoda\n" - #, c-format msgid "%s: cannot open new defaults file\n" msgstr "%s: uutta defaults-tiedostoa ei voi avata\n" @@ -2857,6 +2850,9 @@ msgstr "" msgid "%s: failed to find tcb directory for %s\n" msgstr "%s: virheellinen perushakemisto \"%s\"\n" +#~ msgid "Environment overflow\n" +#~ msgstr "Ympäristön ylivuoto\n" + #, c-format #~ msgid "%s: cannot change user '%s' on NIS client.\n" #~ msgstr "%s: ei voi vaihtaa käyttäjää \"%s\" NIS-asiakkaalla.\n" @@ -2877,6 +2873,10 @@ msgstr "%s: virheellinen perushakemisto \"%s\"\n" #~ msgid "%s: group %s is a NIS group\n" #~ msgstr "%s: ryhmä %s on NIS-ryhmä\n" +#, c-format +#~ msgid "%s: cannot create new defaults file\n" +#~ msgstr "%s: uutta defaults-tiedostoa ei voi luoda\n" + #, c-format #~ msgid "%s: group '%s' is a NIS group.\n" #~ msgstr "%s: ryhmä \"%s\" on NIS-ryhmä.\n" diff --git a/po/fr.gmo b/po/fr.gmo index ab95a18e67a21b03b0c3a9741cbb8a105cd6886e..49f574e03f80f76b83d069d97615fae21db31ac2 100644 GIT binary patch delta 13449 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\n" "Language-Team: French \n" @@ -98,9 +98,6 @@ msgid "crypt method not supported by libcrypt? (%s)\n" msgstr "" "la méthode de chiffrement n'est pas prise en charge par libcrypt ? (%s)\n" -msgid "Environment overflow\n" -msgstr "Débordement de l'environnement\n" - #, c-format msgid "You may not change $%s\n" msgstr "Vous ne devriez pas changer $%s\n" @@ -2440,10 +2437,6 @@ msgstr "" msgid "%s: cannot create directory for defaults file\n" msgstr "%s : impossible de créer répertoire pour les fichiers par défaut\n" -#, c-format -msgid "%s: cannot create new defaults file\n" -msgstr "%s : impossible de créer un nouveau fichier des valeurs par défaut\n" - #, c-format msgid "%s: cannot open new defaults file\n" msgstr "%s : impossible d'ouvrir le nouveau fichier des valeurs par défaut\n" @@ -3301,6 +3294,9 @@ msgstr "" "%s : impossible de trouver le répertoire tcb pour %s\n" "\n" +#~ msgid "Environment overflow\n" +#~ msgstr "Débordement de l'environnement\n" + #, c-format #~ msgid "%s: cannot change user '%s' on NIS client.\n" #~ msgstr "%s : impossible de changer l'utilisateur '%s' sur le client NIS.\n" @@ -3323,6 +3319,11 @@ msgstr "" #~ msgid "%s: group %s is a NIS group\n" #~ msgstr "%s : le groupe %s est un groupe NIS\n" +#, c-format +#~ msgid "%s: cannot create new defaults file\n" +#~ msgstr "" +#~ "%s : impossible de créer un nouveau fichier des valeurs par défaut\n" + #, c-format #~ msgid "%s: group '%s' is a NIS group.\n" #~ msgstr "%s : le groupe '%s' est un groupe NIS.\n" diff --git a/po/gl.gmo b/po/gl.gmo index 7e4a52fc64e847b2a77d502822a1719a492a1e36..55b30c0551ecece1226405c1b6780df83844a253 100644 GIT binary patch delta 4278 zcmYk-d9YP=0SEBkQ(1f}50FJb;35e55L|OX2ue`|mrz^+1YEMR+*4W9D=8`xZiRvy ziVJR3`f^`G#y?b=sd3NItkKj_M{|lH9PRUc_q-W?^S<})GG&SJiR1?Mvz7cyD&& z6sAMd*^B3JEU)06T*txMFB?>La-y%R(!dy|=X3ZS&SM%{#bJDgHU5Jc>6X144UM2v zWjrTy8f#q1ete$k;M+{czRdU9FIzi1kgd!Ylb8<8;UHdGonOUV_atk4lj*=lrh^0h zcmVffem{*hUck)ga*pG@G->5S)-%$LDmC_WFp_&QGclXHa#3~sFl&zAtj=#_W@xzK zW#mUP9Xf?IUdiwAKKd&k`7qgK3%$+#`}8;enbNUN=tDV?8Noc}!ez|&_t9VZvybeB zkC_{8Vm4)OKdNyo(}5G11{SiFtC}GLmWVP-f<4FjIaibNz+1Z|h~H zN~YvdW{qED8hoE=pvl$g&@RlH&t$GUpSkgMtnn6RyvFhT7yXqH)*}r~Vb*dMbN#u@j4o#O#wun&&(Z3Y z_p0x|VQ=l1zP4(9FskxkW-4bhKU_eaFE=v{Jj*V8l_sgY!`%2AcH%&fL^khGrlX^n zr(~*+Ea6C`1W108ENu1wQ$~D#b z=3PqJ!}&fuo0E7rpX69}^-N}uOl&p(&Xtp^6HA%3et?^CsfnEHIGZ|$P z$MH;lmur}%`X{wfzGWI3Ia(u}>?2Dsk8V|NWtQwE=69dgRi>(R-L0`E(^+$T3Dc1~ zm&v{1|DN~zC*KGK4V5Wz`SRv4q`?ygV{`Vrr}$ehF@Wx|Ie8v>8y9T&(6$% zkLIvE{|i(yWw&!8UuKOx3@>ZCC-b<>;#Iti-($;ujj2C^+c}=gX}p|0_&3)08MB1l zOhX>yR;Inf*)PxkT$POEdXC|v?8PtHlbxN+l=WjCpM9$1bF1TPnd{b9{+(&yE4FaZ z0gXK{n(4qS{(uWvPebce^5S@_y5K$L{1#fv4D{sy9#}b>8Sw%dTv^P_&{}5cK4NBI zJCBOVDubC#dK@#*h1`*Mk2C*So3&2#<~ctc!5ui2x$$Yt4KCy$u3+}Y z;~dZTnGO$eFp%Ten=_cl_-t;&<>Tv(O?Fpx!6VG(c$xkA6|m{vGDSBr zH@=7I$Q#Vmcb+I5%Itwwreh~FduJ&#GpnlOhq$-n7um!V4_duZ^Z9^GmPN8yQnnB) zP?pG@lJ~=}BqgIusmUJl6S-bCFF$o~uPoi{pOa*RxnHp%+8x1VXt6lcSv9MPctKh?47Q)P_o zEEkBSE(>M8JSXSNBXX)7FMVW7xm2=*DJRGwlBeWINx4Dl**qyL<#rh+%Osnxhh%M2 zvgX&yaJgT8Cb!7*@*7E6Cs)ahaO}93FE~@4k#prfIZ+;$hco|AsN5u;i1Ir*TJq8u zDk&{8Sgy>0;wSATyE$c&oGfR{0?FewN5)Ae+2}|iIc{?&u;pXBHASoZ3LDwj#h6j>u%wXNyC dX3MsEua~>F%^7%o_qN?fZ)|QmYX3{O`#;MZr6B+S delta 4417 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 diff --git a/po/gl.po b/po/gl.po index 543ac085..ae9d92e7 100644 --- a/po/gl.po +++ b/po/gl.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: shadow 4.0.18\n" "Report-Msgid-Bugs-To: pkg-shadow-devel@lists.alioth.debian.org\n" -"POT-Creation-Date: 2024-03-23 18:35-0500\n" +"POT-Creation-Date: 2024-06-21 11:23+0200\n" "PO-Revision-Date: 2006-07-18 23:27+0200\n" "Last-Translator: Jacobo Tarrio \n" "Language-Team: Galician \n" @@ -78,9 +78,6 @@ msgstr "" msgid "crypt method not supported by libcrypt? (%s)\n" msgstr "" -msgid "Environment overflow\n" -msgstr "Desbordamento nas variables de ambiente\n" - #, c-format msgid "You may not change $%s\n" msgstr "Non pode cambiar $%s\n" @@ -2124,10 +2121,6 @@ msgstr "%s: non se pode crear o novo ficheiro de valores por defecto\n" msgid "%s: cannot create directory for defaults file\n" msgstr "%s: non se pode crear o novo ficheiro de valores por defecto\n" -#, c-format -msgid "%s: cannot create new defaults file\n" -msgstr "%s: non se pode crear o novo ficheiro de valores por defecto\n" - #, c-format msgid "%s: cannot open new defaults file\n" msgstr "%s: non se pode abrir o novo ficheiro de valores por defecto\n" @@ -2840,6 +2833,9 @@ msgstr "%s: non se pode restaurar %s: %s (os seus cambios están en %s)\n" msgid "%s: failed to find tcb directory for %s\n" msgstr "%s: directorio base \"%s\" non válido\n" +#~ msgid "Environment overflow\n" +#~ msgstr "Desbordamento nas variables de ambiente\n" + #, c-format #~ msgid "%s: cannot change user '%s' on NIS client.\n" #~ msgstr "%s: non se pode cambiar o usuario \"%s\" no cliente NIS.\n" @@ -2860,6 +2856,10 @@ msgstr "%s: directorio base \"%s\" non válido\n" #~ msgid "%s: group %s is a NIS group\n" #~ msgstr "%s: o grupo %s é un grupo NIS\n" +#, c-format +#~ msgid "%s: cannot create new defaults file\n" +#~ msgstr "%s: non se pode crear o novo ficheiro de valores por defecto\n" + #, c-format #~ msgid "%s: group '%s' is a NIS group.\n" #~ msgstr "%s: o grupo \"%s\" é un grupo NIS.\n" diff --git a/po/he.gmo b/po/he.gmo index 75d74a4cabb13657e9850cd6c79bc24c3ac17922..61b8e6636f4c09fb724b6709e9904ad39c0e6a1e 100644 GIT binary patch delta 1081 zcmX}rPe_w-9LMpmZf?zVnwFVOeROWx=2nv8AFAOW=pqGzR$lGU!J<mvIfXfo;ztRN^zdgpnX?lHX!X zw8JE70}oLPK0__^+`Io8_2xOefuB$tUqbzU1H-t3Rd|Tk@tMmIalM7kcotZOW)twi6?vedC%E7@B6&(`I z3~dwbNx*CvvyJ=^`JmZGJc=nii)-*Irf~+>V;$S@BW}eXxDI10%-XRBJ28j)|9Om= zRqQ$)y?7tj;!Etp_vqknOk+G`){6&m4~}3Q@8U{)icy@$4t#^F@Cz!DU%rv>aso+= zFux7aVGcWv%Jd{Eks@lq3TmKf|NabW2j(z=&ru8bfO>ujoAEEUVmM;90o!~tsOOJK z=C=Z!ZoGmH&Y`yY9UjIdR02C#<`~DbACp|qGFug9p*xP|LU)EQM#JMzN+{{kN1I?zNin8nk05eM-VYO8}RpRp~0s;M;U z`5{ydjH83Mn%RGKo^fLU7qA7R>@UY{0RH7j=lI5 z9gHz3#byJjaq`%O=UUkRoph$Tq0Hv72N&@WhA0FLm_to8jwkRQYK7l1fJ##1=vg-5 zf9&>qnp~lGc*VBqg2?Fnm65htp-NWt)3gGuN@uNAD`N$@dC4kKeVW^83Wr7sc%j1N z3-orW1KC(F8u-;$qo6)*uRe1Xi9%;it$D?y0@8|gehSrvs(2TzyOs\n" "Language-Team: Hebrew \n" @@ -80,9 +80,6 @@ msgstr "" msgid "crypt method not supported by libcrypt? (%s)\n" msgstr "" -msgid "Environment overflow\n" -msgstr "הצפת סביבה\n" - #, c-format msgid "You may not change $%s\n" msgstr "אינך רשאי לשנות את $%s\n" @@ -2083,10 +2080,6 @@ msgstr "%s: לא יכול לכתוב מחדש קובץ סיסמאות\n" msgid "%s: cannot create directory for defaults file\n" msgstr "%s: לא יכול לכתוב מחדש קובץ סיסמאות\n" -#, c-format -msgid "%s: cannot create new defaults file\n" -msgstr "" - #, c-format msgid "%s: cannot open new defaults file\n" msgstr "" @@ -2768,6 +2761,9 @@ msgstr "" msgid "%s: failed to find tcb directory for %s\n" msgstr "ספרית שורש לא חוקית \"%s\"\n" +#~ msgid "Environment overflow\n" +#~ msgstr "הצפת סביבה\n" + #, fuzzy, c-format #~ msgid "%s: cannot change user '%s' on NIS client.\n" #~ msgstr "%s: לא יכול לשנות משתמש `%s' על לקוח NIS.\n" diff --git a/po/hu.gmo b/po/hu.gmo index d07b7e89f5acd53fa6d3a55f4a165ad7ffdeff5a..251636d4089c6ed9ac5ac520029dfd54afbfb3e2 100644 GIT binary patch delta 4278 zcmYk-4b+z70SEBw^--aeK18XWgjQ6DN#2whsZ30>Em2~&8JqHvSMf|rs$oXSXO=c1 zGu{bV*t9Rx&NyqscIKE(jM;FUPV2D!{_k_Y=eW-Me}30}KhJ$%pZEQ)UfT5f;->mv zyYIBDC>v!TY3@);$EH%Ibf4&6(c=|orNi`neTE7+0O(QnH#?$3KGH?fc7531wcdz7-L5jb`4GpGK zWh^Ih3Ts@+z4;8&!B?1$y_fH`Uv_b}ABQquoWOKw2K)2s>ijC^ck5Z>OH2p0F&*sZ z;=UZkTt9_1&S7SB1;_9{nzZr;>lx`bl^VM{IFKWmnV8OlxUf2Ygf+)6Rp+-cGjxFA zW#p5Y4xPgqujSEPLx1H>A11r(ptrgIo_)-JrnK1!eJE!!BWPiMxQzLJ4gHnh`N&>) zi@D);W>fZZQH{+^2hLy`xQau0FEip7nU4O0X21NmulZl3(#_T%$rY^edG5l0aXhy& zn{%xBcWs%--0)obscrCO_-P*7%o9gRe0SH2HNpG=y36Y0U2~Wo~>UYrKOQ`37cbo@WN|YUNhux~?`z9LmAk zFUP6WoVbAg%Jn|-rh0_w@zcymHghbu&|evBJ<`x5W-ZTTet!`&ql=lnv5Fbc)3kc! z)$03?*-QJSx2>8BhE*QVOyzXu!nxG>ay!$&Q|!n;&?J?=FgN~~JF}lhBAa&*)6rqf zQ*w%rEa7GJ)3Si|d~v^zbl?T%#{XpA1Mf2<=x-ge$&O-fd?ItB)0p?eOg`3B$_>m+ zj33f?FHGY+#|wEZcknEZ-pS3WZ04|q8D*6YmNH<;k=xnLHv z_RE=$t)s~(o2iYqyXP?*u9Y00$TWO8Gvd4GuRQ1D5N>CFH_Soqdph$J)aRzPgVGV|v8H}lvHG2Ha{SY}U5V`iYmN3LJXjO_Q-@it~A`~N-IXRyY_)S-I0 zUnL`ciJ9t;n4XP4tg)G9G9#Zu_bjWJ4s51XDetp82UysQ_)yk(HgkRfGk{xY^2)=^ z%)Q2edH(;Wk{b>59@cg_iD_UyGi5883pQ~f-{vu#bwp!it=!G=pZQg8VOLHb)fmWh z=JCCpnTb1@nfgV}Yrnj!lBwUreCNgoGd-WpUR=l?yq)RbL)G!?)R(fAT{wJn!)9it zCRWE+Fl)Y)x$gr!noqHwo_?g#fnAPjEJaUtb9^KRaw5}_^Vys8xeIS&W@t5g@a#vY_5IAG#;~YOheO{j?H2o z%bS>vtmh=Y$-X?yFl#)S8Tl+`CKhlHu0GoQXJqS~$c>(7I`TpFgU(|c7xrfwJcQ}c zsmxl=VLH5$_F;L5d-Ly{$d8%(P8ip??m}j>-^{f0M7^rK$TaYFWtU?bQ#XRS;4G%$ zYnU6}&l+D~-fZu41o!%keZUh~;~ZuwS8xE=upfWJomk(Zvb)MVH0ZLua`dr{UERV= z?LwyER%Q)fVb=IVTBTAx+jxq`FjIRT^Hj`ZHs`fGk;~b{6q~o+sQG+AGG%$h7E8(w zVg}1nxkqw?`I6GVLE9+3quL(5?^Wm8`I^doa$Wlg9{7p+WuIuj+)#Zno7vq@$~lth zGrQ$s`D8iI!B1sp$@^o1bd>h;6P5MSp*pdaUyyOqDw)N$_J{Cb`CLvYCpBn$hEG#J zMMg{3d5&12a+O>zPs^q9sGKWbl09WdxmvOWDQC!d$%|*Qq%4>eZ4MNdw3R&XDJRI;GE3%4-U~BijI@^@R+T(qDcvPc-M4bHE2X_$uQIj$ zfOkq>6pQ4W(q5*k3~WE(y>gfIsLrjb%*!a{bU9yc&w=u+jFh&)^vxM%xI86i%29HS zJR~dRNSP_O%6H`ZlJaF)CpXI#vRW>dDU#B&LHRK|$%XPW`G!1}y*f{2fuu~52W6+$ g2fIDEV{5(VZ#%Wl=r^}pYnR~{?b>?Bs7_t}5AFe|>i_@% delta 4409 zcmYk<3vg7`9mny1Fb|Rt2q6Rr3AvykAwnP&i4c-#NFonKD2As7#l;Xq7B(9!0a*ow zg3?mLLlhAyP@tef6afhc0Xl65oIG!wy;Pi~Y{hWLE?mf?Y zBY$2Mv*X2>$mO)y4MsUjvdH*&vy>RKB^`9u?Cn&uWITZVuobKEa~y%AJDUx}2zJB$ zcsriK?)Zf}ZkJ}JTlT{w9E$DvnH5ucoD-Gqi@n&1<99Iu&mi}(bJ!O@b;flu%j7r@ zb-n^Kuns%oa#V-bVLI-`B0PZwcpYGdtf%bR7Z#N(T(=)K`I{3!E9WqFK{QSL#@~gKXd1A zqOR-4MIH`Ab)X8>!6xj98&JPLfFAxHHM7@n6vi>S2(xKrR5a2mK0FL!9m{hfbo0f5Bpmr*~AX9GQKq&Sd`8Km#WThe zK6V#=?Y@uaBvs2p?THH14X2_uX9zvqjOxHq)cr5x0E}gaYry%aj^3BW{Ie`Jg%c}r z9uCE8=wUANtnbHSBF@4}tVQkOgUG$D6?NlF$WQGG_QpikO%3Itt}DfRa3<=h+8Cjt zHQA23@F3oezjDXlx#KQ5{;nSDoQ9gQ8sssuHK>L+B2T8ZU?HAHJqw#BFsu17sCucN-dfZWUeff_*)!=!2%cqa}=-LD!o;$_HW*j7}7 z$58h@kIZbuE>Y1BzCt#(rE#Dc$wjU8J*WmJqZ$aKI zhr0f+s2RPETB5G(NDZg}d(pm4qM{2HpnkC09dC0UK~3ca)DOQz25TMJ^16NqCSWBp zi8cY*Hnsrca4l-{ZbWr-8}gr><|Cpt{3jLeY5#FwWHSxw&}h_+AHh5fphoaB)Fyiq zb>kDL`}`X9KKKaVi!p1*OF=VnG}nJWe27ap{x6nc;{fKrl**9-{@Q$l>R}qKX)5nV zjbsd}!5Y+3EW%`5fu*<(^+LIbDfl-`z-#XO4b%&&Grgl~BTxgLa~JbJjLJ)#(A1s6 z4){5$;j5@klgghsy%+l97@Uck!d*B7&tX2^L~YLeLH?3Gj!cFvMGb5h4#wXg+rhq# zxDy_~Ru3nlroIWMV>9XoU!s1H!LPLkMxr`61DP~yLfW>SsK@Q1JHCo)IEP+pm4$kX5ry zn1-iOBmM(=*q+y`&gWteJ^w{im|d$vP2CFAUf6-U(OIOA_HR@JcMkVEI2v_*2w%Xp zcrRuY`b#zy_1Hd($+!id#NF5lQ<=t0+Bc7ip68LMwSE*eWh>nIw@^!P0oA}&)Ch)- z@Ry_lyKp=c)zSIxcn8vFJB%s#mGcH_#*#-e|N5esiq?KS>c(|gj1g2%k7GQZM=i-m zn2O(^W-7VJ@5n&x#&H=Y;tbSM22e}Zj9RkYn1mOLn1AiU%bf5qb(FuxLr_yY9yRh> z?2fBY9omk%(LvNE`y=+m7<#RSvQZr?Ks~0DQ5{)~<8Tk^`fJ6^zelBWi9hlJ)J&9P zXAEFhd>VD5HK>lfEp>0bYb zLr_!vFsh*@XEXNZc%Sn;YUcihy1vhS{_iVM_j?LGT!(towO~G8LS8wRSmu8pDWsyc zoQ64Ai`lpuV{tcj#Qn&u*)iw0s9il`v_G{KsD{IsiLav8_z<$Xb`te8eTSOayz=Pp zBQ}bPHsKf?k5e!PRk+r6kl94*y^>5LDsK?>pFN=iN-5E%yHz4oD#%0<>rO6kKIqi@ zCt9B8b3b{DEF(+EdZMz%$M)jGMC&%)of8MiZlYN`LR6}WUTP}Zc=wZ~ugGiKy%&@#ImWM{FJmKDs5y_w8l%z`GQld zAhT4V{F11BYbAOne@u=OmBBvWf1aTB-1kTPKcK7YWuj6`xwuE) z6aD9Yf9f0fx38U~vYGslyh&8v_py+(9z9Y+wh)zvNIx<~2b7~Ey`?dA|84QJLxIP_ zf#!bcIW2wCf7`xmdHuqN&3MP^f-UpeYcZ>xJ8n*3E7RhMs7wYkQ+1spXU5i7EdBLOsIm diff --git a/po/hu.po b/po/hu.po index d0164466..c2a2cda0 100644 --- a/po/hu.po +++ b/po/hu.po @@ -3,7 +3,7 @@ msgid "" msgstr "" "Project-Id-Version: 4.0.18\n" "Report-Msgid-Bugs-To: pkg-shadow-devel@lists.alioth.debian.org\n" -"POT-Creation-Date: 2024-03-23 18:35-0500\n" +"POT-Creation-Date: 2024-06-21 11:23+0200\n" "PO-Revision-Date: 2007-11-25 20:56+0100\n" "Last-Translator: SZERVÁC Attila \n" "Language-Team: Hungarian \n" @@ -78,9 +78,6 @@ msgstr "" msgid "crypt method not supported by libcrypt? (%s)\n" msgstr "" -msgid "Environment overflow\n" -msgstr "Környezeti túlcsordulás\n" - #, c-format msgid "You may not change $%s\n" msgstr "Nem módosítható a következő: $%s\n" @@ -2134,10 +2131,6 @@ msgstr "%s: nem tudom létrehozni az új defaults fájlt\n" msgid "%s: cannot create directory for defaults file\n" msgstr "%s: nem tudom létrehozni az új defaults fájlt\n" -#, c-format -msgid "%s: cannot create new defaults file\n" -msgstr "%s: nem tudom létrehozni az új defaults fájlt\n" - #, c-format msgid "%s: cannot open new defaults file\n" msgstr "%s: nem tudom megnyitni az új defaults fájlt\n" @@ -2847,6 +2840,9 @@ msgstr "%s: nem tudom visszaállítani %s-t: %s (módosításaid itt vannak: %s) msgid "%s: failed to find tcb directory for %s\n" msgstr "%s: érvénytelen alapkönyvtár: \"%s\"\n" +#~ msgid "Environment overflow\n" +#~ msgstr "Környezeti túlcsordulás\n" + #, c-format #~ msgid "%s: cannot change user '%s' on NIS client.\n" #~ msgstr "%s: `%s' felhasználó nem módosítható NIS kliensen.\n" @@ -2867,6 +2863,10 @@ msgstr "%s: érvénytelen alapkönyvtár: \"%s\"\n" #~ msgid "%s: group %s is a NIS group\n" #~ msgstr "%s: %s egy NIS csoport\n" +#, c-format +#~ msgid "%s: cannot create new defaults file\n" +#~ msgstr "%s: nem tudom létrehozni az új defaults fájlt\n" + #, c-format #~ msgid "%s: group '%s' is a NIS group.\n" #~ msgstr "%s: a(z) \"%s\" csoport egy NIS csoport.\n" diff --git a/po/id.gmo b/po/id.gmo index d9fd654850d77f2e768b9cebac2469b7ab090128..773b1d1f2829b43ef411bf6cc884f5555cbfb554 100644 GIT binary patch delta 3741 zcmYkjFSZd;u8(MM{#l6%}%hc3T z({gHraz-YdoU&y`Go8jI)0u40Y9^;NwLhxq``r6F!;_BaFGwKhJu~|17qdF?aRP@k?2T(ISgX-v4R7W9=&4yz$^kEU| zxpGuHhww2xjji!I`shFKZOyn9t@OnVq)nTP8c;dMpOrTQ8Pb-n(1$-8H7^Nb1hLb^COFA zqfqTkMV*zU=)--ej!&c7t;G%)oy7WUrahUaMwo|daSC?FTj;}NT8+eP)ZrP78ps&b z_h(}(^ib{Wcb^}}KGZLw4si^l)k-I!o=Zz+{d-dA>uxMW)z_mA(`U}}sFk>ZoLZ|# z?|NHekaK70*c-D@-&=s;SdRQ->-eJ;I)K{yqGYIv1=3|8y zV)nB8AcPa9C2ELsFcbUY0nEXhsD@J*h2HBN)Xb(kD^MLCL~Ye^tdFO$3x4hHKSaI0 zq0GY5$eU5njh3k2azC>DR)}4(3^mgaQA_s~YR|8uUZX!S7sDBSKg>hD@9QuVk75tJ ziQ1AxM&ALur?LK8iYeUC2sgS9YEUz+b%v$~4`T|B8OrI^GBzD8TQAmsEJ(Y!2YYF+uUH=EQ}3QgY8fqOv3J1fm)dpsD^L5&l~cP-j*y> zJ0-|s*aqh@)bGg^WS6ZGji_TkYM{eB3i_Y~_4;f*}*m?W{*Nd=#}67f?$c$3E)&op3P@#a`&0qTr+O0Anz*8wU_mQTP3*fs8{YVKY$; z?LZCS7-r)YjK(G`pI&1h>dg4DH;zC}a5bvq-59U;|NCIUZXuJjzcCKmv94O`UZ@|U z0?fiC$QP{&Bk>E=ihYYZjCWC68Nt43OVUv*Fa$NgX{fhq4yNe+KT1I}Ig6V4J>(o& z2uD^++7VUHclA=#VcLaJScMwENmNHaVH5lpwN(k3!7a%^wKD>8@07}i-6>xo*?0@U+!Fb}t&*O`_g$In^I3@^6*}lXuR(3$H#iV4V+igf&yiB1 zy;mReNulUMg+y=09P$j&0O}L1=nSGuvwb~K zG8^Cwp#9g9B@-=~uCO4s8MVyY$y#@h-<`mL31VZMFJUO*aNBHBL7pO7L4Lbz4~ZvwlXTb)kyS+J zsz1>|&mlTbor$gjeR~as@qsG;@qm-a7FT~6D~S%-NV1JgAv=h!VPpaEleR?H3NnZ! z5nb;Gu_36pXC3KBIGgsKMn8gVB#*AwC~)utKQg+vj|?O+oI=r~3N|OZ>eRjVR1Va+vDcL&ow=A-=kt1$^GO+5NqUjFWH*^cbS(}N_#5ZS qlW_ydB=5L;7S*=8GInLX>OKh*BdQNIUmaUrm^P_F^|@}L(fU- delta 3845 zcmY+_3rv<(9LMp4q6ip@AOc=^Ardc0ikB2c^DYLJcq>s66w#CyLM~$FtD>No2BMj! zW-4l$&W1BxHnX&gu59UIL#LINP}wOI!bgQ*0eIF9`E|_!By^Oj4xJTcie@kcpl?0vYjz~FcmxDMtl;hFc`nK^`EgV z_15i;QPTm~#u%6BMj@RWQT9O@@~+v6URZ_xcod()vlxoM*t#ADQSXk7$;6`ul8Avg z4~Jn9#^Ol~!+MOQf8*W3m)9 z1U0i#B&%jGs+|+4J@YL(@K037LCi+&#s!oAUKHkVLo?lg8sTm%#cJ%2Lut){*~nx} zIeOy()Mh%48qmk6c4{yje?zs`meJ{XI1a&h)TS;BCI3o!F*o#LB@V(vwtmyrAD}i@ zZ(5OYsEi~ayVy8Ur>79vmu3qN#wyhNH?S4nL;lQtK9s3;F21GB7mj4dj6o)CW};@6 zkFmJYKCedY-b<(%{Ekuh7pk4GuI>&-A%A8zAL?j1s=ZC9_qHReYFuY1C<9lJNt#=z z4*o$k+^w5?0OOEsnj+MDm8b@fp#x8&W?G9{f_l`19$5ovRNsrXjz`*enRE&c9+aUr z#}U*I#bwmUuj2^(1GV-s4tIveAd@z;kVj@2(wEtR%HV0#``_Do9V+!6Yz)2M6(e;1 z<0wI0U&st42;v%|CmOVNpYFdo~{>o810HC%=|-v?1M`_9^c>aabd z(^7?FYmCMi?2j%zNT;B4oP`?sDqCNV`fcBZYzK1*pT>IBOhXu*G8czVK2Oj%E)8XNTYkY@28+ja+LWJSBG#h5 z7eyoea0+S(OHjwP3Q3B&i2Rv`UgTfLpfd|K0%K7#%0+dw4q0APg=+9iR0j`HKTO@J zC_^()4X;BzKgNfS?KM<8e!N7|OmAy4>UXBdMS2GWc#tp6G!8X@WYmjg z)}2UF%rR__*HJ0IhuQ-HtVbO7L49uldgC%w=GLGlatO7gpI{fA|CL!_jsDG76tp&X zPz|?bXXwAwAar03s-p_@!xN|mKSwom2bFv_m(nF>@tpP@@L zyGubS4PYJgg-A@maTtK*s0R02&!N6|12vFVj8>WIiTa&LK+QB0gRvMj!JVk~&!Gl- zYY6%GqR@hcQ$s$e7h_PVn~Yk^*{G$-K{mEoZasn>sn?=1(}1jod5jw10Ct`-l!AJm zgIYotj>L^a$-f5$UByHRv4%(?S`bcRA@LfahLx4w#Jhw#);@WbSW75_FA_n7PD&b~ zOUJE<$R;)t(+Lg2L5$G)XA#Y>CCw^}C~Ks12>oJdR+EVp#0SK7LYdR`4iQ3ZCWaAB z*I`@OgsA* zm`AiG3Wyg74ht9af3>mT{?XY>Ig;2wBQT_0b&B7YYZ`!Xhj?% znqSXTnL)fvl-URCupQxw;A038Md\n" "Language-Team: Debian Indonesia \n" @@ -77,9 +77,6 @@ msgstr "" msgid "crypt method not supported by libcrypt? (%s)\n" msgstr "" -msgid "Environment overflow\n" -msgstr "Lingkungan overflow\n" - #, c-format msgid "You may not change $%s\n" msgstr "Anda tidak boleh mengubah $%s\n" @@ -2120,10 +2117,6 @@ msgstr "%s: tak dapat membuat berkas-berkas bawaan yang baru\n" msgid "%s: cannot create directory for defaults file\n" msgstr "%s: tak dapat membuat berkas-berkas bawaan yang baru\n" -#, c-format -msgid "%s: cannot create new defaults file\n" -msgstr "%s: tak dapat membuat berkas-berkas bawaan yang baru\n" - #, c-format msgid "%s: cannot open new defaults file\n" msgstr "%s: tak dapat membuka berkas-berkas bawaan yang baru\n" @@ -2826,6 +2819,9 @@ msgstr "%s: tidak dapat mengembalikan %s: %s (perubahan ada dalam %s)\n" msgid "%s: failed to find tcb directory for %s\n" msgstr "%s: direktori awal `%s' tak sah\n" +#~ msgid "Environment overflow\n" +#~ msgstr "Lingkungan overflow\n" + #, fuzzy, c-format #~ msgid "%s: cannot change user '%s' on NIS client.\n" #~ msgstr "%s: tidak dapat mengubah pengguna '%s' pada klien NIS.\n" @@ -2846,6 +2842,10 @@ msgstr "%s: direktori awal `%s' tak sah\n" #~ msgid "%s: group %s is a NIS group\n" #~ msgstr "%s: grup %s merupakan sebuah grup NIS\n" +#, c-format +#~ msgid "%s: cannot create new defaults file\n" +#~ msgstr "%s: tak dapat membuat berkas-berkas bawaan yang baru\n" + #, fuzzy, c-format #~ msgid "%s: group '%s' is a NIS group.\n" #~ msgstr "%s: grup `%s' merupakan grup NIS.\n" diff --git a/po/it.gmo b/po/it.gmo index 8a5679f5b5913eb7b7264a26b05394a9fbc8446b..eafc7481bae7303da70839617b38ae38603e163e 100644 GIT binary patch delta 4666 zcmZwJdt6ub9mnwxc|lO*lHi5g@d643nu-xa(ZEoFnJsm58c8UPG~H|}O*<8t7j&-7 z(wbx`D${hzx|pS@uQf_DNg^jZnx%!AEsD}nvzR!u&KQg7n2hCEgn76bv#fzr&7Uzt?rA+Zf4Q6<1rl5Fcz~g4GWwzuovw**WQ8& zv`=DJ{41(Mmykb;j5o{2RMhdQn85w*J}QGbP=~3wAN%0Ps2hfH)gtVV8qq8qfJ;yv z*opn{IC}UQY6haYi*7W851m(n>PRJy!y5Fszr9JNCtg6#wQrF>OW-UIvoRURqmIu; zb#Mu$;5K*sDC&1D=;2k=fKs@)+9OaMD@S#_7X3sj^;C4hSJA_dP)qPX9FAT2wJubO zEVIo*u5CVgxDKzwy{H+xfY)PZF0OVi>iavKE6}6;QX=!OAO490n$q^{Kuu8=_Qso0 zJ+4F#m*EI(MEYibL$-}w!?1Ou1k_UGqh@M4a%rnU{cf%Mz7gr8y_3xRYja)XfG+qA zYL~||uO8;3Ixr1&gNHB^x1wg^JyeG;Alt>h#)TNebS=f@I0R$8;CiDmg7!=-#<@Nf zJr1v+dU_ad#1_;Ix-$(j6B(=xNB(RIAG+}()OnBLP51)pas3pvg#SkUt{v+;411v3 z<6YaYq@tcYgQ3U9c?mU@VGN(=)Y4HM7>F@gin%xqb>5TM0UJ;q+K!spqsXP~1JsgS zLG7JxT%3XXmPKVS2XawAxCgb_YEdKEgdXlf-S{->DLIeYRF|YnI-!S^~#Ln(NK?5Q6tI00xU+odY7Vp z|03#!AE4IwpQ!V~GJ+}Zj#|P&sDYKC&xWQ5KVnk*z)fuSY zmtr_pAp6a#QP*9G9dJ8F;BHh$_aT#HEt$-}*0>`J$?RJk>Wf^|CMics<5AvZA z>_F{>V5JBJ{-mp(9rRXOw&-@fqFd8V;N4#X8wObWm|SIl21@0_!>3R zq=CWno{w77D(r;woj$Ijy$mBUVNlSq-l&cbMlDGm=3p5zc&kMXWT#I>Jv)J#V!I(2 zc@k=Bb5NVD1WR!Ss)Kvb!?QRR|ATB7D`1D_V-<49HsdsGMh}PbHq!4VqT2pqDta;0 zBg<>=BeP@QqSh*l-tmOl1k~d-A1C8_WPjP0sF~`;@HBut)W{~GmUJHKhU?w;2T}L= zC^+t0ICs|x15sa;qNZrRYd?ot(-X)f*=5voopEDu<6_i}s!$zWh4HutZ^L7#nMmYq zrQ>C&8NCa8>-k?yC65EoBFk>)a0Ev1K2>`R>H-U#ji@E~3u*?gI@7s`cKvwNdH13Q zv;j2(NAXtt95rJj*?9W*$L^$}kv)JK`7YFqoI{Q5E9`~IEUY?`iyl^EcdWxC+=Tqu z8+>S~uA*kd8y@^4G#U$O*PsUQI{F@!7AoqghP?nXu@;}l0!-&aBb|v+xEkl;2JDGl zM+O}nfVa~w#1veIn(~)XH#~*9&*#_!dyZoM)ziVFf`7dxq8_u=7>D(kjJuI#w0AKH z!*34S{cr;9sThMhod-}ec^Wly-yr+h5*WVDABT+1stWz!Mq4=0fdhN7Hy%KpcpiC| z*cH@>1{4KTUyPBo??xVdn}?~m3ANUT-S_`Mwuk)}6L8SzpaaFI4psV8w7b_~Uwq4X z5z}Z#-4cv!2*%PbLOq_7P@C)#?1oLKr8$OLl4ewgzd&^`x;S`G6rcvS9MjR?OeK-Z z3DgZgMXg!XnBazeQQzk{C!j7o8#UsUs2SSfj{h0^(EbWFL%qfZ?KITPjzKM1HRf=C zdyR@Na0%73lySin-GsW(BvempFatNDX5ek)!LZAii9<_*^U6^(xd?T`jo2R#p?>#w z)Xc^6I!)H|UqmIG0~M$rR^xT}IJU$6sLgc9EHduYf~@`pCE0^Y8u+LDtib&`>yC|dCRplD;4B7 zuDx%~#i&I80ImDUugG4qm}C*nk%svgsU;oAFNsP$X$aN$zc`L3dVaK}Tgz@Lygx!y zr(>GB`&6O4K_XSrLN5s_b_cE@3(0$=D_KvDlXu9QL>r;Cbfoe-vV}ww&E*cVl^h|h zr9G7mB#p57LT@gx2T8RST15+}@(LMA#t{{^VyHCpd5ru#Xofy-arOB)&DHhZeU{Xb zdG6S)PCYKuT|FItO)_+U?V8Obo9H1`(Zjil93uOPHp0V%UHV-)OKmwBOa9=FuEX0% zC7DZRk!|D#@*Gillr)k>#EqZ-w$iwZ6cX*WC&~L{66s5ROWKxGu91vCY4gQl>Yd5& z$u9C^(pr8-r3;BALxY39{V1r|R9r@ml1=1oGKaiM?jb7AlV`{u$qVE(d5Eawk-JF~ zNg-26C*qNb?E3&Uyw)0wWN&HkO|~P5`@G%2kCnrfbSwLF=6i5iKysFA7WN7vP%8gvM!^L*1v!NCxY-iIm3y-W^r$Sgt!D{%ns zwDm_&4Q#_$ylv~lxQWh7KnEwGI#y)&H=r8!D*Dv&^Auw62I__#=-?m@YAPn|ZN8+Q7d%rEH^O}7WLMWWT zJiLf{J^IjXwKx_>VLN8L2sOfkkXxHk z$kh1Edao>_t7`T~tGFqSj1bDs^5Osv|Se z!TG2WsYXpXIb)Qzto|IDBH zQ3rzg%4jVlpl+Owp_q;QGc)*EAHWpY`gVqC6!pPF8UJbuSwmUjcoZMPz+rArvQa&l zhw5n+(h0K*HK!-B2VSyX!|m+fKo2e(?lx=4bfP>Zb*XX5*)28Oc|9UO+!a5icU?ZGTOY3)ERFyIGn-K(b_CUt%cu_CK}~HaH|Kdi zlSV-&EI>VIg?qrfjJn{Qt-pyHsR%xYI&Um$Zi|q?Gj*u<`vmI2U!fkt7l->Utf6RVAde;k|wys8v=(fo|w`Ffrp^>aWs2<%!2Lp56_dfyo6qsQ+5DQRmna>_?Qb9dCg3)*j)qub$Zi5`u zDxZt-SYv$+6WPCj>e=71H|lS4c#Tw;?f_6V2DMXmxQS}3j=W#Y6{k&*3b^rVmyVR*p9ki@GSTK z8R)QIh#@@Rtf#^Mf?4GhD7qSi(SW?}S?j0wPBkgnSc>}1=Dw~*8RziAPl zvwONn5qXhxSKWK{7s6wFCn&8UYsnvpnl_YZkk!w6vWe&teGRnznl!1vHkr&O8stpU zxwTLjPad!p58_H&K8YT;?DPLeS>*!KKvt1IkqGiDa*=#O&JwMJ&Mk<-8{{DANi+#> zl0)P?>D;>%TDAlmNLnabdjepDFw}f0JZKRTPZh5v)jZfHe zUwnmZCo627K1JH}J}vQ=+!a+vIYqH~E~*Ckf;w(sldT?&w`v z*yX?(%Aw>4IZPIi&h2RmVMJdLz2s~@|DOhx9w%GK1@apCfGi{Ll2W4WRkDv-Ym%Xd+0JyE%3D~l`2%Sydv%boI--ijwn%BwsrUMDiLen*CRu-=;^t3#m9n$lE2nP3W diff --git a/po/it.po b/po/it.po index cb379b7d..28eaa85a 100644 --- a/po/it.po +++ b/po/it.po @@ -25,7 +25,7 @@ msgid "" msgstr "" "Project-Id-Version: shadow 4.1.1\n" "Report-Msgid-Bugs-To: pkg-shadow-devel@lists.alioth.debian.org\n" -"POT-Creation-Date: 2024-03-23 18:35-0500\n" +"POT-Creation-Date: 2024-06-21 11:23+0200\n" "PO-Revision-Date: 2008-03-27 14:40+0100\n" "Last-Translator: Danilo Piazzalunga \n" "Language-Team: Italian \n" @@ -99,9 +99,6 @@ msgstr "" msgid "crypt method not supported by libcrypt? (%s)\n" msgstr "metodo di cifratura non supportato da libcrypt? (%s)\n" -msgid "Environment overflow\n" -msgstr "Dimensione dell'ambiente eccessiva\n" - #, c-format msgid "You may not change $%s\n" msgstr "Non si può modificare $%s\n" @@ -2221,10 +2218,6 @@ msgstr "%s: impossibile creare il nuovo file dei valori predefiniti\n" msgid "%s: cannot create directory for defaults file\n" msgstr "%s: impossibile creare il nuovo file dei valori predefiniti\n" -#, c-format -msgid "%s: cannot create new defaults file\n" -msgstr "%s: impossibile creare il nuovo file dei valori predefiniti\n" - #, c-format msgid "%s: cannot open new defaults file\n" msgstr "%s: impossibile aprire il nuovo file dei valori predefiniti\n" @@ -2983,6 +2976,9 @@ msgstr "" msgid "%s: failed to find tcb directory for %s\n" msgstr "%s: directory di base «%s» non valida\n" +#~ msgid "Environment overflow\n" +#~ msgstr "Dimensione dell'ambiente eccessiva\n" + #, c-format #~ msgid "%s: cannot change user '%s' on NIS client.\n" #~ msgstr "%s: impossibile modificare l'utente «%s» sul client NIS.\n" @@ -3003,6 +2999,10 @@ msgstr "%s: directory di base «%s» non valida\n" #~ msgid "%s: group %s is a NIS group\n" #~ msgstr "%s: il gruppo «%s» è un gruppo NIS\n" +#, c-format +#~ msgid "%s: cannot create new defaults file\n" +#~ msgstr "%s: impossibile creare il nuovo file dei valori predefiniti\n" + #, c-format #~ msgid "%s: group '%s' is a NIS group.\n" #~ msgstr "%s: il gruppo «%s» è un gruppo NIS.\n" diff --git a/po/ja.gmo b/po/ja.gmo index 9a3c5ba680a85bd035db6be4673b2397ea1398a0..4726f5a8bea0ee0a92aeae3a0e089c5e72ba5df5 100644 GIT binary patch delta 11441 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 P^T^T9A~G}XclG=qOS)aR delta 11626 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 Pqc>4VwtfGzwyysJjAWn? diff --git a/po/ja.po b/po/ja.po index 5b66342e..a047a8ad 100644 --- a/po/ja.po +++ b/po/ja.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: shadow 4.1.5\n" "Report-Msgid-Bugs-To: pkg-shadow-devel@lists.alioth.debian.org\n" -"POT-Creation-Date: 2024-03-23 18:35-0500\n" +"POT-Creation-Date: 2024-06-21 11:23+0200\n" "PO-Revision-Date: 2012-05-21 02:52+0900\n" "Last-Translator: NAKANO Takeo \n" "Language-Team: Japanese \n" @@ -80,9 +80,6 @@ msgstr ": " msgid "crypt method not supported by libcrypt? (%s)\n" msgstr "暗号化手法が libcrypt によってサポートされていない? (%s)\n" -msgid "Environment overflow\n" -msgstr "環境変数領域のオーバーフロー\n" - #, c-format msgid "You may not change $%s\n" msgstr "$%s を変更できません\n" @@ -2308,10 +2305,6 @@ msgstr "%s: 新しいデフォルトファイルを作れません\n" msgid "%s: cannot create directory for defaults file\n" msgstr "%s: 新しいデフォルトファイルを作れません\n" -#, c-format -msgid "%s: cannot create new defaults file\n" -msgstr "%s: 新しいデフォルトファイルを作れません\n" - #, c-format msgid "%s: cannot open new defaults file\n" msgstr "%s: 新しいデフォルトファイルを開けません\n" @@ -3106,6 +3099,9 @@ msgstr "%s: %s を復旧できませんでした: %s (あなたの変更は %s msgid "%s: failed to find tcb directory for %s\n" msgstr "%s: %s の tcb ディレクトリが見付かりませんでした\n" +#~ msgid "Environment overflow\n" +#~ msgstr "環境変数領域のオーバーフロー\n" + #, c-format #~ msgid "%s: cannot change user '%s' on NIS client.\n" #~ msgstr "%s: NIS クライアントではユーザ '%s' を変更できません。\n" @@ -3126,6 +3122,10 @@ msgstr "%s: %s の tcb ディレクトリが見付かりませんでした\n" #~ msgid "%s: group %s is a NIS group\n" #~ msgstr "%s: グループ %s は NIS のグループです\n" +#, c-format +#~ msgid "%s: cannot create new defaults file\n" +#~ msgstr "%s: 新しいデフォルトファイルを作れません\n" + #, c-format #~ msgid "%s: group '%s' is a NIS group.\n" #~ msgstr "%s: グループ '%s' は NIS グループです。\n" diff --git a/po/ka.gmo b/po/ka.gmo index eac263d2ccaa3573d2bf00e25dd63e7a69d24961..98fc7b9673842c9030220dad275214aa9b9cf818 100644 GIT binary patch delta 14296 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 delta 14437 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 tlP*_Y)no_N={f#d72}qc6e9o{U0kZv)cdw diff --git a/po/ka.po b/po/ka.po index d3adc182..3fb19152 100644 --- a/po/ka.po +++ b/po/ka.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: shadow-utils\n" "Report-Msgid-Bugs-To: pkg-shadow-devel@lists.alioth.debian.org\n" -"POT-Creation-Date: 2024-03-23 18:35-0500\n" +"POT-Creation-Date: 2024-06-21 11:23+0200\n" "PO-Revision-Date: 2024-02-08 06:13+0100\n" "Last-Translator: Temuri Doghonadze \n" "Language-Team: Georgian <(nothing)>\n" @@ -80,9 +80,6 @@ msgstr ": " msgid "crypt method not supported by libcrypt? (%s)\n" msgstr "crypt-ის მეთოდი არაა მხარდაჭერილი libcrypt-ის მიერ? (%s)\n" -msgid "Environment overflow\n" -msgstr "გარემო გადავსებულია\n" - #, c-format msgid "You may not change $%s\n" msgstr "$%s-ს ვერ შეცვლით\n" @@ -2305,10 +2302,6 @@ msgstr "" "%s: ნაგულისხმები მნიშვნელობების შემცველი ფაილისთვის საქაღალდის შექმნა " "შეუძლებელია\n" -#, c-format -msgid "%s: cannot create new defaults file\n" -msgstr "%s: ნაგულისხმები მნიშვნელობების შემცველი ფაილის შექმნის შეცდომა\n" - #, c-format msgid "%s: cannot open new defaults file\n" msgstr "%s: ნაგულისხმები მნიშვნელობების შემცველი ფაილის გახსნის შეცდომა\n" @@ -3099,6 +3092,9 @@ msgstr "%s: %s-ის აღდგენის შეცდომა: %s (თქ msgid "%s: failed to find tcb directory for %s\n" msgstr "%s: %s-სთვის tcb საქაღალდის პოვნის შეცდომა\n" +#~ msgid "Environment overflow\n" +#~ msgstr "გარემო გადავსებულია\n" + #, c-format #~ msgid "%s: cannot change user '%s' on NIS client.\n" #~ msgstr "%s: მომხმარებლის '%s' შეცვლა NIS კლიენტზე შეუძლებელია.\n" @@ -3119,6 +3115,10 @@ msgstr "%s: %s-სთვის tcb საქაღალდის პოვნ #~ msgid "%s: group %s is a NIS group\n" #~ msgstr "%s: ჯგუფი '%s' NIS ჯგუფია\n" +#, c-format +#~ msgid "%s: cannot create new defaults file\n" +#~ msgstr "%s: ნაგულისხმები მნიშვნელობების შემცველი ფაილის შექმნის შეცდომა\n" + #, c-format #~ msgid "%s: group '%s' is a NIS group.\n" #~ msgstr "%s: ჯგუფი '%s' NIS ჯგუფია.\n" diff --git a/po/kk.gmo b/po/kk.gmo index 83542cf2a2010c866cf5947d8496fecc484683a7..ccf7c7396d0785b66260291c141130fb2b78cc10 100644 GIT binary patch delta 11835 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\n" "Language-Team: Kazakh \n" @@ -82,9 +82,6 @@ msgstr ": " msgid "crypt method not supported by libcrypt? (%s)\n" msgstr "шифрлеу тәсіліне libcrypt-тан қолдау жоқ па? (%s)\n" -msgid "Environment overflow\n" -msgstr "Орындалу орта айнымалыларының шектен көп саны\n" - #, c-format msgid "You may not change $%s\n" msgstr "Сіз $%s өзгерте алмайсыз\n" @@ -2342,10 +2339,6 @@ msgstr "%s: жаңа defaults файлын жасау мүмкін емес\n" msgid "%s: cannot create directory for defaults file\n" msgstr "%s: жаңа defaults файлын жасау мүмкін емес\n" -#, c-format -msgid "%s: cannot create new defaults file\n" -msgstr "%s: жаңа defaults файлын жасау мүмкін емес\n" - #, c-format msgid "%s: cannot open new defaults file\n" msgstr "%s: жаңа defaults файлын ашу мүмкін емес\n" @@ -3155,6 +3148,9 @@ msgstr "%s: %s қайтару мүмкін емес: %s (сіздің өзгер msgid "%s: failed to find tcb directory for %s\n" msgstr "%s: %s үшін tcb бумасын табу сәтсіз\n" +#~ msgid "Environment overflow\n" +#~ msgstr "Орындалу орта айнымалыларының шектен көп саны\n" + #, c-format #~ msgid "%s: cannot change user '%s' on NIS client.\n" #~ msgstr "%s: NIS клиентінде '%s' пайдаланушыны ауыстыруға мүмкін емес.\n" @@ -3175,6 +3171,10 @@ msgstr "%s: %s үшін tcb бумасын табу сәтсіз\n" #~ msgid "%s: group %s is a NIS group\n" #~ msgstr "%s: %s тобы NIS тобы болып тұр\n" +#, c-format +#~ msgid "%s: cannot create new defaults file\n" +#~ msgstr "%s: жаңа defaults файлын жасау мүмкін емес\n" + #, c-format #~ msgid "%s: group '%s' is a NIS group.\n" #~ msgstr "%s: '%s' тобы NIS тобы болып тұр.\n" diff --git a/po/km.gmo b/po/km.gmo index d5f3d5ec4497ab425cbb9096c628df7a26c7492f..0b647b23d4689e34c7617d667664351684ac8c14 100644 GIT binary patch delta 3747 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 diff --git a/po/km.po b/po/km.po index 4c017fff..b62ee8ff 100644 --- a/po/km.po +++ b/po/km.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: shadow_po_km\n" "Report-Msgid-Bugs-To: pkg-shadow-devel@lists.alioth.debian.org\n" -"POT-Creation-Date: 2024-03-23 18:35-0500\n" +"POT-Creation-Date: 2024-06-21 11:23+0200\n" "PO-Revision-Date: 2006-06-28 10:08+0700\n" "Last-Translator: Khoem Sokhem \n" "Language-Team: Khmer \n" @@ -88,9 +88,6 @@ msgstr "" msgid "crypt method not supported by libcrypt? (%s)\n" msgstr "" -msgid "Environment overflow\n" -msgstr "​លើស​ចំណុះ​បរិស្ថាន\n" - #, c-format msgid "You may not change $%s\n" msgstr "អ្នក​ប្រហែល​មិន​បាន​ប្តូរ​ $%s បានទេ\n" @@ -2152,10 +2149,6 @@ msgstr "%s ៖ មិន​អាច​បង្កើត​ឯកសារ​ msgid "%s: cannot create directory for defaults file\n" msgstr "%s ៖ មិន​អាច​បង្កើត​ឯកសារ​លំនាំ​ដើម​ថ្មី​បានឡើយ​\n" -#, c-format -msgid "%s: cannot create new defaults file\n" -msgstr "%s ៖ មិន​អាច​បង្កើត​ឯកសារ​លំនាំ​ដើម​ថ្មី​បានឡើយ​\n" - #, c-format msgid "%s: cannot open new defaults file\n" msgstr "%s ៖ មិន​អាច​បើក​ឯកសារ​លំនាំដើម​ថ្មី​​បានលឡើយ\n" @@ -2859,6 +2852,9 @@ msgstr "%s ៖ មិន​អាច​ស្តារ %s ៖ %s (ការប msgid "%s: failed to find tcb directory for %s\n" msgstr "%s  ៖ ថត​មូលដ្ឋាន​មិន​ត្រឹមត្រូវ​ '%s'\n" +#~ msgid "Environment overflow\n" +#~ msgstr "​លើស​ចំណុះ​បរិស្ថាន\n" + #, c-format #~ msgid "%s: cannot change user '%s' on NIS client.\n" #~ msgstr "%s ៖ មិនអាចផ្លាស់​​ប្តូរ​អ្នក​ប្រើបានទេ​ '%s' លើ​ម៉ាស៊ីន​ភ្ញៀវ NIS បានទេ ។\n" @@ -2879,6 +2875,10 @@ msgstr "%s  ៖ ថត​មូលដ្ឋាន​មិន​ត្រឹ #~ msgid "%s: group %s is a NIS group\n" #~ msgstr "%s ៖ ក្រុម​ %s គឺជា​ក្រុម NIS\n" +#, c-format +#~ msgid "%s: cannot create new defaults file\n" +#~ msgstr "%s ៖ មិន​អាច​បង្កើត​ឯកសារ​លំនាំ​ដើម​ថ្មី​បានឡើយ​\n" + #, c-format #~ msgid "%s: group '%s' is a NIS group.\n" #~ msgstr "%s ៖ ក្រុម​ '%s' គឺជាក្រុម​ NIS ។\n" diff --git a/po/ko.gmo b/po/ko.gmo index 36e1e529389cb629a3569e46fa4e785ddebff6b5..ea9ba3bbf6a6dad4e676742447e63e5631914acb 100644 GIT binary patch delta 6140 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 Gk-q^bOu3x^ delta 6251 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\n" "Language-Team: Korean \n" @@ -82,9 +82,6 @@ msgstr "" msgid "crypt method not supported by libcrypt? (%s)\n" msgstr "libcrypt가 지원하지 않는 암호화 방법? (%s)\n" -msgid "Environment overflow\n" -msgstr "환경 변수 오버플로우\n" - #, c-format msgid "You may not change $%s\n" msgstr "$%s 변수를 바꿀 수 없습니다\n" @@ -2165,10 +2162,6 @@ msgstr "%s: 새로운 기본값 파일을 만들 수 없습니다\n" msgid "%s: cannot create directory for defaults file\n" msgstr "%s: 새로운 기본값 파일을 만들 수 없습니다\n" -#, c-format -msgid "%s: cannot create new defaults file\n" -msgstr "%s: 새로운 기본값 파일을 만들 수 없습니다\n" - #, c-format msgid "%s: cannot open new defaults file\n" msgstr "%s: 새로운 기본값 파일을 만들 수 없습니다\n" @@ -2906,6 +2899,9 @@ msgstr "%s: %s을(를) 복구할 수 없습니다: %s (바뀐 사항은 %s에 msgid "%s: failed to find tcb directory for %s\n" msgstr "%s: 기본 디렉터리 '%s' 잘못되었습니다\n" +#~ msgid "Environment overflow\n" +#~ msgstr "환경 변수 오버플로우\n" + #, c-format #~ msgid "%s: cannot change user '%s' on NIS client.\n" #~ msgstr "%s: NIS 클라이언트에서 '%s' 사용자를 바꿀 수 없습니다.\n" @@ -2926,6 +2922,10 @@ msgstr "%s: 기본 디렉터리 '%s' 잘못되었습니다\n" #~ msgid "%s: group %s is a NIS group\n" #~ msgstr "%s: %s 그룹은 NIS 그룹입니다\n" +#, c-format +#~ msgid "%s: cannot create new defaults file\n" +#~ msgstr "%s: 새로운 기본값 파일을 만들 수 없습니다\n" + #, c-format #~ msgid "%s: group '%s' is a NIS group.\n" #~ msgstr "%s: '%s' 그룹은 NIS 그룹입니다.\n" diff --git a/po/nb.gmo b/po/nb.gmo index 748bda5f5308efe9c3703e6631f88ea92f87d057..59b4c0c49e9dc100d07537129eb5e676b70c93fe 100644 GIT binary patch delta 11855 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 auU;;`@FQY&D#+mlf zIGDU6ws#!2vx}e&6~$^e&T#CCiMSs}V9}b6(+tOBUEGU0e;-?7d@aWriIXuNAE4@M z);9TA>_NT_+hWN&j#D3dVtdAS780n#i`FPcX+{1Tw!_WHOdY45U<+cV-=l^s5`ra8n6$~Cjqlj?JnB9J0~^qrO4RMd1NRj>;iOL%6T6<;oqpGPGY%qr!!EGYCmeg0yNU~ z?U1=R9z2C-QA@w4v+*gaeWMr6UUE+(&=P)+<*{WK^PZ+)aq_8H3g=@*%(nI4S&v~c z>d&JW{)zqYo~`fk60aQjt5^^-u?UXF(t7_V5%6X>9*n_57>SQD5W~7UPIYXIzBmL` zKMBKdC93@w7>bur{S;#Bdt)us`KDM2Q!xT(W3=A?O#}f{oVE=fqB;ueZU#z3O|Td0 zy=PmOvlYo0}ZhG9Gh=OP2?o1f9GW$H{&}l0^Lz-R7V4_JkCIWd=KMr zC#r)RSOH7FVg{^+8n6Ra#w^qT@1pwKi|XeB>d`#L+St1%>tB_?L!b-ypmzBcREK4I znGPDF>U(1p&cs06gu!^odIRf|7wyetu$gr}s{TCsVPGG}@xhvXSpPZ%iBvSgEYuxt zMQy&5sF`0u-N`dd$MC*pFD$?S@-?W5e2pP^9<>MZrI?k7MP1(kwU;tb6{n*mN! zp*y~Zy2B9GNi$7C)%Qfzzlqud>(GU#Q7iZiL$PXq^Om&6a^z{KO*<8JW6Q8C?!|EY z*-fC=>b`9d^eSJ)XG@UniWXEisY}L3n!umSdG#6H74S1 zYpnrh54cAXXmhQ_2>cDz@iUuO9%xpeEvlnT)C5+eCc4x52kKFVyk_izYBv-02(xXz z3oDWTjFt8NKOxW(MGi8b)eW!(`Bbcj2eB0v9Bfviy>%$+j^D!OxCveO59;mkd)++3 zIMf7^QG2Bi2H_ZV>HS|!pv|)b)$llK>Hb13ed!^lJ`OeWme%2@ftH}I-;6HIMeT*# zHZMKYtZYpTqrNL@rQX0wjPGn9(9DjbUaQ-v36vOSE{MY@^3E8Iqfrz45X;~2}oH@gr(C zUq%-`!Z-}%9j%6KQT@Dun)oW4A3&}2?R3^(0~F2Rs}rlBF6?2QiZ1d^s1A-Io5p#D zy2HvN%$;{e?V&W(gxc(B5hHdH^WWfPp}w^;-{!Rkb}CD zW2lDL(1kv4m9+4Ik^0(s~dvm){6BJYd3ZW8LwKCt-#)C%6T^#NnebqT1=I}n+;+nGiX zK*bu=F8&%d&^gphAEPh&j58mp5y(wB@i-kfV=Zhj-b`p1mLq=~o8bqjmA#6|cn6DN zg9%z`o_`WSJt|UA11`0$#~|`AP%H5}Y9jw)AeQCYc#K7F9E2rNd#W)`#TRfN>N>B9 z<`0-))Sl{szMON$64b@Hs2T1@A1pb^7=qe7F{r%|hhF#+hG1{hM8{((T!!^=9jc#; zSP1_{P5dF2#&VNcf1ZI;iNGIQV|na{TB5O76Q|kpIT%WQ1a-%^Q5`--?U@Qw%p+)q znn-`tCd;(-vrwCKJ?fM6#1z&)oWOb0bQFQXq)kyX?1h?08tR#jLG9+bsO$Ek2DpF` z_z1NkAydstHMaJ{mefy2EqyL(0{8Wd^uC5pGbcKt@+?$?k5SJw*LoJUS#P0M!h5=D zR}HmNFQPW@G*r8HQ8%y)UHC2PkzB!nc+X9sP1pN><`JZ0CGr`lJK1FGb5R{$wHBCR z+J&Ht`WC1a7>Md`78b`QFf@YdOMB1Y^(;SS!b*PSiMRoiX zwVO-LG95;u_Dn<6bzM*^la9K9dA5Ed>X9A7D7=NNl-u!t%Pd(9)Mjdf>Tn?Hjwhn_ z#BywlIjB1+Jlm{T5UPD`Ydcgw15gv0j2ieo)JlAVy8d@8qWAv}K^PT}P%{piV_uhr zSd=^wwE}HWGfzVexCp)RQ;fu2sDaO++C4?JtN6D0i>EOvPr_>08-p0%nMt76CRKMq|KS^R1VR>L?wxS7zd>e0&n37kQ`o=AUX_M)lJZWAQbN!6i5uzeRUT zf>s{0>*u4EXdi0HPT~lBitRCdf%$;ii^{zgnoqiJm`uJ9Tj43Jg_RbWZ^>7%4*4?d zfVtQdU5i|#GO|A3H%waGun zW_SmiVx5op8y-huJf6gE==-tRR70>A`7%ty2dIHxTcekp3E*fyqyuYPJ* z0GnuPX9+rSB6Op9P0~@jcQtAWk6{9OZ88J5Lao@_s6Frtc0|9;=2;I!E%g@EO5I1b ztFgt@4@a%+R!r2=+$Xq-@moy?;oFSEus`)Xu_1#xm~K}8k(2z6&iFbti~&4uAule8VG-9*%# ztVJ#LkLbe3SQ&%%n0}H_{bZtUbP;Oedr&uc(`_q)zc2%|M|C&}d*COiB`vboOe7w4 z;j7pL=c774g6jAo>V~R*X(rkSHGvuE!gUyg2QePq*9i35M0{m-@le!>Js5}&uoU|4 zGmjt=o0IoIt;kB$CdX8NSH;*J4Bgsc$HNF2U2sH3_*2|~~ z75vW3xGw6MzKB}laj4Ds32LRzp(Yggy?He4v7_3dUeiOU&37KPq9uMXc@+$2e5VV6 zW|W0_ON#0s*BW-fy#E55fxgK6b-B*cSbMG#&QGR^;!Y_P`$)f+cg!`(GWK zlXphdFUn>8HPAL&@e`IOzk?CzeZ(}3Mcrw8tc1gC{UX##Y(up_hniraqvjEYT05b} znS#20HAdt2M_GRb_o%3e5kHwt*A?|hrlIb9Jyymms1+*pvstki)WGdg?K4pAmS7Bi ziJJILEQ2MFnNP-Wbdkrq2{eJ1u^moFUp$5-@j52sBUFdYj+^&+I94T}j~e)M)I=_z zt}pV7{dJ65k=oYwsHJ}mYoL2NK~sVpbm2pc!hjPdPed(UKjeLNCZg`}1Jr~LV?%s` z>bU-|W`fCp z$h+VR*au7C`>2)JjEQ&2@pYFzIttba3t zkSk_$q+kg7dTfLTP|wuss;RGus_%ra;2iY9>(+-@K<%%Yl`M|BfqEE+Nw$6zY9g!M z1oa6vV`;pBh43jxVu9!(Hp9yKbnJ9fx`ymtq;lcX9}{bO%u#|7v}PdghUL%zNI-Itde~&q1x&Bh>CL|F`)r z>5Ll4jXJ*qwGul~D|O6zAKjX9g}Y{HnxUTEVAPV&LrrKa>cW$#j-H^F)c+szNa|uN zc?#;z=3z(Ngj(7B_sn%6nD^{$-u)iyuM0*{p@BT83FM$IJd3)MCs+h4+&3!{hPtyP zEQI~B1P(%N$}Fso@1Q>(Mm^fgsPlJFHyH4M^>-08eqf$;Z!Anc0yTj#7>A2c7wpF} zcpbg)skQJ!bH^nyn)<$|m7R?)+>SB$3+6)|jVK>_knzD-$ zOj$tbOVM$|s`zu_{WdSf7*A~+rSaoQx=^ZfLNE05qor;11@@Jsh~tQd;RVdV&#<{YPwMQYtRO#Z>&nn~KN}DD zPrGR*Hrt{g7d4^8QdxluPGK8LU+R9R=;&-N$cq=*IFhzr#3!jOMm&Mok8(4w72jLb z=}4q*tO@h}+noPa<(!{BKDU$nOwkA8n=~v*8Sbf2IkZO~B0id(c{mUC8OxVS-oGwK zU@?l0{C1cn#Obtseq17ckMi5|3jB^z!ZWY3zk7^r=|xRB;_~#e7kiNN9h>(_zLVUS zQir@9E;J|+)glG{9|s`|St6X|$^GN00lvn43Glpu=O>DWmQAMCyHr+u_?39Y0bwQNFcpS`mLndFV-x z_ID>y`zfV7c2{sch$*u@Eta4P)6FYp{c_%U1_6IGX@Mv%PO{|)p+mLo<6&a79KX*H6Sg+b7Oz7 tr~RHHTVB~;Ik;@QK|==b+mV{-O3iQ$7&&A}W--Te_^W^|D=!}Q{Xc4$2#Wv! diff --git a/po/nb.po b/po/nb.po index 744a3224..c7ef84aa 100644 --- a/po/nb.po +++ b/po/nb.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: shadow 4.0.17\n" "Report-Msgid-Bugs-To: pkg-shadow-devel@lists.alioth.debian.org\n" -"POT-Creation-Date: 2024-03-23 18:35-0500\n" +"POT-Creation-Date: 2024-06-21 11:23+0200\n" "PO-Revision-Date: 2018-03-05 12:33+0100\n" "Last-Translator: Åka Sikrom \n" "Language-Team: Norwegian Bokmål \n" @@ -90,9 +90,6 @@ msgstr ": " msgid "crypt method not supported by libcrypt? (%s)\n" msgstr "har du et libcrypt som ikke støtter crypt-metoden? (%s)\n" -msgid "Environment overflow\n" -msgstr "Miljøet er fullt\n" - #, c-format msgid "You may not change $%s\n" msgstr "Du har ikke tilgang til å endre $%s\n" @@ -2407,10 +2404,6 @@ msgstr "%s: klarte ikke å opprette ny forvalg-fil\n" msgid "%s: cannot create directory for defaults file\n" msgstr "%s: klarte ikke å opprette ny forvalg-fil\n" -#, c-format -msgid "%s: cannot create new defaults file\n" -msgstr "%s: klarte ikke å opprette ny forvalg-fil\n" - #, c-format msgid "%s: cannot open new defaults file\n" msgstr "%s: klarte ikke å åpne ny frovalg-fil\n" @@ -3245,6 +3238,9 @@ msgstr "%s: klarte ikke å gjenopprette %s: %s (endringer ligger i %s)\n" msgid "%s: failed to find tcb directory for %s\n" msgstr "%s: fant ikke tcb-mappe for %s\n" +#~ msgid "Environment overflow\n" +#~ msgstr "Miljøet er fullt\n" + #, c-format #~ msgid "%s: cannot change user '%s' on NIS client.\n" #~ msgstr "%s: klarte ikke å endre bruker «%s» på NIS-klient.\n" @@ -3266,6 +3262,10 @@ msgstr "%s: fant ikke tcb-mappe for %s\n" #~ msgid "%s: group %s is a NIS group\n" #~ msgstr "%s: gruppa %s er en NIS-gruppe\n" +#, c-format +#~ msgid "%s: cannot create new defaults file\n" +#~ msgstr "%s: klarte ikke å opprette ny forvalg-fil\n" + #, c-format #~ msgid "%s: group '%s' is a NIS group.\n" #~ msgstr "%s: gruppe «%s» er en NIS-gruppe.\n" diff --git a/po/ne.gmo b/po/ne.gmo index 001ac2fd974c73753411ff2f576648ab04a5569f..c72fe576c7ba30b69f33532b953e8d26784a5d47 100644 GIT binary patch delta 4278 zcmYk;36xh=9S86`qAW@d+ps$Fm%(8jK}BU57DW~r(5R7QQ3h1X1qCcw)c$OWf}kKE zD2jlIC>Da5xROzwV`3?loUE`;fs~n+$x)7;KEMC}an8Im-~Z>{_kZu*`|iE({b&2z zC3pS0B>(3YC$34hy>gmVH%zHfNlKHN#@>|XG)w6e&SfR<QENQWZzA4Zp_< zE@xXlo7LZ7T=FBH%wuevQa&|okl@HcBR1_#aiaLk?pvL(ZN43I`&C?ul>}--g0(ld@+*Ip*o(E@LDnvnTJ&>N}ZJKalPJ zoH0U`ZZGcqGDe54VUBlm5Vz4^`oM?5PABMXT)%aD;~zs>ZHGRjDU3Uq%Q$ci(qC8L1_?9Q!>JAQ}J(ZAE^r!P7f|0N2|Ed6u2jyb-` zCj1vi@F-((4mSSIO`{kWoJL=zxjchw84bL^IBp;N@d)E7sxY516}?zkD|vmvO-l84Z;h1~;2}FdDpsF>(_bLq3gh z{Oz=E^J$|(49WA1IsOHs!M`vXC~Cozt@m2u&f%y9$b&R=0n&6|uHIGA~q zabBqf5_V@7?WbW1IXkA)Us~ZK-c&moJ${XGC%@xh9;Uz4#e76VHH^8uigElcj1j$u zu{Jg{Zs;|dy>u}9{wtPgKee$`U?^b(ZH*0#NW~&r9Uz*{1s1P zxkn-vZv~^HRg9-(tdE$&Ido`R%zS+Dl#l4Z+l&kUgYh2t591C_HxIGM1~4u>nsK3V zjQ7J-t}RLFKE{Ytb~DfH$5Q(r!|qHLv4GoX0D?G=_3NFK3%R#aHZf#+^RRZ?M;Sj^#qymEL2#Ih*A@ z{7no|KlZg_=mo_gy`3>K+cNj@BK1!gQ`5)6G52+h{R6G*yW9rJyZyjfI3J-8vJpcWzjOg(uE@Io^#Ub55)07VK5|&w^GfF&` z+^znbkw%A0ec75v_zq(MwZwi#hYz!YoohTn9LboH#jMhP`nN(XlJe31ec}wp1rM=3 zzhrczt?{~>m(uj6ce8r4ON+k^>lst@D&z6{8{;}P<{?I4Dr4?n=4yV(e0PNfUoSpx z+ZjW)o3VI~aT2S>7T3m7eoOrgwqYl|eu@2gH9zC!obb)!dt(QqzK?Oo6}2gSn=2SM z`dO{Z~qamCdrMlm&Ef_CEA(Feq7HuZhu}OdRnUWXsDJtpSJK?9%CJ+_!z?1X`!bEQ#8Wi zw0zPGMnf;tB~y#3#iwE>PgQ@2aougah9%~!BlFV~Iw{=68{z=YWSOJda|um%+RV7) zPw4?j*Xvye?qrO}TQtpSkd;@(Rcy^Yj1hX5EBPr)7@HBv7fU{$7EemLQ|^)2PLRQ} zOty#zp)k)V{NjZ<@I*9|Re6Ossk&j7dStI93bBPyC zY%z!TOQk#|*U1LiBM(Sydu6FSD8pr?#MV?!E|iK-$?M7&7wh@-wd@P;n!*BWlhvnZ z#;WZuRq_KFCe?C*%$MWawF+~kQ?{e*_!pccugER3O{T~TvNOhix57g*RDLM2ip!-! zVk?!7a(7g0PAP1CGDq@inJKqP7paqha(sItD-6nP!FVihj*ERi+Zn8o3H9oaD7Td* za#Owila_1a zUhb7m65DurURKK;^0<6gY9+Q-MbZv7mKpL>xj}vsuZY_f7E5e3@{F9g>zQWHG}x7I Y^{d9a>dHsA-qo$obFFu^tXW_Ff2y|4ZvX%Q delta 4430 zcmYk;e^giX9mnxE$`3^l6#*rXuc9d8L^1pgn!i9&F*TFYi9g66QwT)eQ1>;cV5!TW zILge`m+2UmijK2-xjdUE|CoN~sZKS|*4ftac#hVduY2!2`y5~2$LDju_j~W> z*S+|{m5}C7L;N>-g&r`<2PBEi3O9=mG20rYqh=?1n03RGn1=1R6hFuDIIXAIkI;_^ zcpOvl686Eby>_QwX1Zh=M&c;!!p|(1%5o0md0#YP4DD8oz)Q$A?2kAIZ+eEsnkCZC zKpmff@wg7VV-2c9d$Bh*;Y94fEWC#)+}|?!b|41|aR64LE_e_%f_5B&*HAb70d;<2 zoS6?Np+;Pcy5V!kDRu}8@Fe>19`?m#dZ~_%;Uj_j+Z-xBd>WInR$pKvszdGA4};$E zA5iBdaFP$RQ5{%_>R=Tiet6wd@l= zQ8zq`y6z{)%=+y*75(6!$i}u_G&CdWsI?x4y5R!U4JuI`I)qyLE2#6nMqN0Rh4*0$ zYUCqOOEU>IfO(#4QTxxTor>A3s2iL?9|n@E^!vtvg#@=a0k) z%tI#83XyGNUu*bxDqPd&XZUtl@L(b$HyI32@AF#p@BJUW7D z#E(%^`aMp=-W)8zBK!mcxDPk51B)<%m&I0GhHLN!R$>0byjAf6K8_LD?kjf*YQV4H zJWTQPurH!gft+iXQLj=P!_+cW={T0=C_b1BTZfvV2G4e!Li=y1B^t=vMSEZ_>Uag} zx~=HLZ%_m6HlCLl`g5qPq;d>3RnZgNH&hNTqP-a>;h!)EdrV~gaSqZq3!?T;AHLLx zb8$UZ<0kwT%W+k%+rEy4wC8eBI^ee>R7yF}ZL<6Kxe8~~eh1aDut#`1;##c0XoeMw z+i^4QNBUq<++7`-i3{;r)J%Scx_$`j`6NDrT*@wEk)Ho(c0w@+R^c-I5Vc!}&TxCY z2Wx0|VMlT=+lefnUBQ_cmd`~)7!|hBKF`4)V-*`m=UvBmjCqtt7}HP#xQi3HzeUe- z*R%kcWh+IkO%t-QEsp8XW|@i`u^x57s5$PNFBNs8T&%-NWINb>uRWUi9!R?bwN#&@ z1{gV)`PYTYsT5%yX5uZ}kG&pq|7;$`DB4$1Q+E?bVt;zI80RCaXeaOq{1y{1f4qe9CVf3Rqa2kEs zlO5X^vrr?Rg~PENtMLf_5>pv1%WtQOn143D-Qj@qLv{$~*ep!LMjVYF<5KMWl>f_QLN>^6aEG4?gS9NKt{c_iIP5^3co)^v z>|*yuRmfoNBP_xG>{zN+i<9vy)Fw?|PH-Kv&#WGGpIfNSIhOSpg8qY4x>Griy6_cT ziG%q_!JRk&oAD?59?Nk8cTdFQ$ab&~Q6o-dXYpXzZhQzoL(Ry4kZoWqSzm4HGZ?Su z|4S-K9Jr5rFp+r;L6vDFKFXrJV9>J~c!1$0?Kf?CMsXPd}eCh&mVQ9C16Y zs+PV^}$5DwvwDAzaV;UBgi9U9N9$1knv<8(dJaqdqL%8 z!oy%k$txs=yiO8{%B#*N^FM&fFp}pS@cy&t)kQA(8Cgs|Apc(`(irO%96? zsONq+8AMJKJq<4sm7QAu7P3JtN*|)f=r!^Td4sGX{mEgXQcsqUEHab4L^=_b3*?|v zbN@Q3`n=Z`FOXtYD8D1RzqON|q>h{;DkEGTe0ETK_Cd>iRMi~r9b1dBUVXHu-YeN; zi`UNdT#iG?0X>QDQ)wXc$(uywJs0Qiy{e_eM^=+VL}e~XBYJ76yi0nwZ0vEobNGsi zl4X@8`_g)+v<&Edxl7#i(oJhB%1YOllveu6HkDL7y{>F?WXtWO+41`(j1_N&g0|$bQJAA>w^T9yC`JyS\n" "Language-Team: Nepali \n" @@ -81,9 +81,6 @@ msgstr "" msgid "crypt method not supported by libcrypt? (%s)\n" msgstr "" -msgid "Environment overflow\n" -msgstr "परिवेशको अतिप्रवाह\n" - #, c-format msgid "You may not change $%s\n" msgstr "तपाईँले $%s परिवर्तन गर्न सक्नुहुन्न\n" @@ -2126,10 +2123,6 @@ msgstr "%s: नयाँ पूर्वनिर्धारित फाइल msgid "%s: cannot create directory for defaults file\n" msgstr "%s: नयाँ पूर्वनिर्धारित फाइल सिर्जना गर्न सकिएन\n" -#, c-format -msgid "%s: cannot create new defaults file\n" -msgstr "%s: नयाँ पूर्वनिर्धारित फाइल सिर्जना गर्न सकिएन\n" - #, c-format msgid "%s: cannot open new defaults file\n" msgstr "%s: नयाँ पूर्वनिर्धारित फाइल खोल्न सकिएन\n" @@ -2835,6 +2828,9 @@ msgstr "%s: पुन:भण्डारण गर्न सकिदैन %s: msgid "%s: failed to find tcb directory for %s\n" msgstr "%s: अवैध डाइरेक्ट्री '%s'\n" +#~ msgid "Environment overflow\n" +#~ msgstr "परिवेशको अतिप्रवाह\n" + #, c-format #~ msgid "%s: cannot change user '%s' on NIS client.\n" #~ msgstr "%s: NIS ग्राहकमा प्रयोगकर्ता '%s' परिवर्तन गर्न सकिदैन ।\n" @@ -2855,6 +2851,10 @@ msgstr "%s: अवैध डाइरेक्ट्री '%s'\n" #~ msgid "%s: group %s is a NIS group\n" #~ msgstr "%s: समूह %s NIS समूह हो\n" +#, c-format +#~ msgid "%s: cannot create new defaults file\n" +#~ msgstr "%s: नयाँ पूर्वनिर्धारित फाइल सिर्जना गर्न सकिएन\n" + #, c-format #~ msgid "%s: group '%s' is a NIS group.\n" #~ msgstr "%s: समूह '%s' NIS समूह हो ।\n" diff --git a/po/nl.gmo b/po/nl.gmo index 485dd08f003b7e6bd00e7aa3251ac2311057846d..b3c8d3cb67b2f0db1d3d2f1eabc8fe4b683e5e53 100644 GIT binary patch delta 17709 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 delta 14445 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, 2004, 2006. -# Frans Spiesschaert , 2014-2022. +# Frans Spiesschaert , 2014-2024. # msgid "" msgstr "" -"Project-Id-Version: shadow 4.12.2\n" +"Project-Id-Version: shadow 4.15.1\n" "Report-Msgid-Bugs-To: pkg-shadow-devel@lists.alioth.debian.org\n" -"POT-Creation-Date: 2024-03-23 18:35-0500\n" -"PO-Revision-Date: 2022-09-27 17:08+0200\n" +"POT-Creation-Date: 2024-06-21 11:23+0200\n" +"PO-Revision-Date: 2024-05-09 12:30+0200\n" "Last-Translator: Frans Spiesschaert \n" "Language-Team: Debian Dutch l10n Team \n" "Language: nl\n" @@ -82,9 +82,6 @@ msgstr ": " msgid "crypt method not supported by libcrypt? (%s)\n" msgstr "niet door libcrypt ondersteunde encryptiemethode? (%s)\n" -msgid "Environment overflow\n" -msgstr "Omgeving wordt te groot\n" - #, c-format msgid "You may not change $%s\n" msgstr "U mag $%s niet veranderen\n" @@ -237,10 +234,9 @@ msgstr "%s: Kon seteuid niet op %d instellen\n" msgid "%s: Could not set caps\n" msgstr "%s: Kon hoofdletters niet instellen\n" -#, fuzzy, c-format -#| msgid "%s: snprintf failed!\n" +#, c-format msgid "%s: stpeprintf failed!\n" -msgstr "%s: snprintf is mislukt!\n" +msgstr "%s: stpeprintf is mislukt!\n" #, c-format msgid "%s: open of %s failed: %s\n" @@ -250,10 +246,9 @@ msgstr "%s: openen van %s mislukte: %s\n" msgid "%s: write to %s failed: %s\n" msgstr "%s: schrijven naar %s mislukte: %s\n" -#, fuzzy, c-format -#| msgid "%s: open of %s failed: %s\n" +#, c-format msgid "%s: closing %s failed: %s\n" -msgstr "%s: openen van %s mislukte: %s\n" +msgstr "%s: sluiten van %s mislukte: %s\n" msgid "Too many logins.\n" msgstr "Te veel aanmeldingen.\n" @@ -375,10 +370,9 @@ msgstr "%s: krijg geen toegang tot chroot-map %s: %s\n" msgid "%s: unable to chroot to directory %s: %s\n" msgstr "%s: chroot naar map %s lukt niet: %s\n" -#, fuzzy, c-format -#| msgid "%s: cannot chdir to chroot directory %s: %s\n" +#, c-format msgid "%s: cannot chdir in chroot directory %s: %s\n" -msgstr "%s: kan chdir naar chroot-map %s niet uitvoeren: %s\n" +msgstr "%s: kan chdir in chroot-map %s niet uitvoeren: %s\n" #, c-format msgid "" @@ -435,10 +429,9 @@ msgstr "Kan de SELinux-transactie niet beginnen\n" msgid "Could not query seuser for %s\n" msgstr "Kon de seuser van %s niet opvragen\n" -#, fuzzy, c-format -#| msgid "Could not set serange for %s\n" +#, c-format msgid "Could not set serange for %s to %s\n" -msgstr "Kon de serange van %s niet instellen\n" +msgstr "Kon de serange voor %s niet instellen op %s\n" #, c-format msgid "Could not set sename for %s\n" @@ -517,7 +510,7 @@ msgstr "Kan %s niet uitvoeren" #, c-format msgid "Maximum subsystem depth reached\n" -msgstr "" +msgstr "Maximale diepte van het subsysteem bereikt\n" #, c-format msgid "Invalid root directory '%s'\n" @@ -680,8 +673,6 @@ msgstr "" msgid " -R, --root CHROOT_DIR directory to chroot into\n" msgstr " -R, --root CHROOT_MAP basismap voor chroot\n" -#, fuzzy -#| msgid " -P, --prefix PREFIX_DI directory prefix\n" msgid " -P, --prefix PREFIX_DIR directory prefix\n" msgstr " -P, --prefix PREFIX_MAP map-prefix\n" @@ -716,7 +707,7 @@ msgid "never" msgstr "nooit" msgid "future" -msgstr "" +msgstr "toekomst" msgid "Last password change\t\t\t\t\t: " msgstr "Laatste wachtwoordverandering\t\t\t\t: " @@ -935,10 +926,9 @@ msgstr "" " -s, --sha-rounds aantal rondes voor de SHA, BCRYPT\n" " of YESCRYPT encryptie-algoritmes\n" -#, fuzzy, c-format -#| msgid "%s: unsupported crypt method: %s\n" +#, c-format msgid "%s: no crypt method defined\n" -msgstr "%s: niet-ondersteunde encryptiemethode: %s\n" +msgstr "%s: geen encryptiemethode gedefinieerd\n" #, c-format msgid "%s: %s flag is only allowed with the %s flag\n" @@ -993,15 +983,13 @@ msgstr "" msgid "Login Shell" msgstr "Login-shell" -#, fuzzy, c-format -#| msgid "%s: Cannot get the size of %s: %s\n" +#, c-format msgid "Cannot parse shell files: %s" -msgstr "%s: kan grootte van %s niet opvragen: %s\n" +msgstr "Kan shell-bestanden niet ontleden: %s" -#, fuzzy, c-format -#| msgid "%s: cannot create new defaults file: %s\n" +#, c-format msgid "Cannot evaluate entries in shell files: %s" -msgstr "%s: kan geen nieuw bestand met standaardwaarden aanmaken: %s\n" +msgstr "Kan items in shell-bestanden niet evalueren: %s" #, c-format msgid "You may not change the shell for '%s'.\n" @@ -1015,10 +1003,9 @@ msgstr "De login-shell voor %s wordt aangepast\n" msgid "%s: Invalid entry: %s\n" msgstr "%s: ongeldig element: %s\n" -#, fuzzy, c-format -#| msgid "%s: %s is an invalid shell\n" +#, c-format msgid "%s: Warning: %s is an invalid shell\n" -msgstr "%s: %s is geen geldige shell\n" +msgstr "%s: Waarschuwing: %s is geen geldige shell\n" #, c-format msgid "%s: %s is an invalid shell\n" @@ -1278,10 +1265,9 @@ msgstr "Ongeldige lid-gebruikersnaam %s\n" msgid "%s: '%s' is not a valid group name\n" msgstr "%s: '%s' is geen geldige groepsnaam\n" -#, fuzzy, c-format -#| msgid "%s: Cannot open %s: %s\n" +#, c-format msgid "%s: cannot open %s: %s\n" -msgstr "%s: kan bestand %s niet openen: %s\n" +msgstr "%s: kan %s niet openen: %s\n" #, c-format msgid "%s: invalid group ID '%s'\n" @@ -1546,10 +1532,6 @@ msgid "" msgstr "" " -b, --before DAGEN enkel lastlog-items ouder dan DAGEN tonen\n" -#, fuzzy -#| msgid "" -#| " -C, --clear clear lastlog record of an user (usable " -#| "only with -u)\n" msgid "" " -C, --clear clear lastlog record of a user (usable only " "with -u)\n" @@ -1722,15 +1704,12 @@ msgstr "Gebruik: logoutd\n" msgid "%s: gid range [%lu-%lu) -> [%lu-%lu) not allowed\n" msgstr "%s: gid-bereik [%lu-%lu) -> [%lu-%lu) niet toegestaan\n" -#, fuzzy, c-format -#| msgid "" -#| "usage: %s [ " -#| " ] ... \n" +#, c-format msgid "" "usage: %s [] [ " " ] ... \n" msgstr "" -"gebruik: %s [ " +"gebruik: %s [] [ " " ] ... \n" #, c-format @@ -1753,21 +1732,17 @@ msgstr "%s: setgroups opzoeken mislukte: %s\n" msgid "%s: failed to setgroups %s policy: %s\n" msgstr "%s: setgroups-beleid %s mislukte: %s\n" -#, fuzzy, c-format -#| msgid "%s: Could not stat directory for target %u\n" +#, c-format msgid "%s: Could not stat directory for process\n" -msgstr "%s: Kon status van map voor doel %u niet opvragen\n" +msgstr "%s: Kon status van map voor proces niet opvragen\n" -#, fuzzy, c-format -#| msgid "" -#| "%s: Target process %u is owned by a different user: uid:%lu pw_uid:%lu " -#| "st_uid:%lu, gid:%lu pw_gid:%lu st_gid:%lu\n" +#, c-format msgid "" "%s: Target process is owned by a different user: uid:%lu pw_uid:%lu st_uid:" "%lu, gid:%lu pw_gid:%lu st_gid:%lu\n" msgstr "" -"%s: Doelproces %u is van een andere gebruiker: uid:%lu pw_uid:%lu st_uid:" -"%lu, gid:%lu pw_gid:%lu st_gid:%lu\n" +"%s: Doelproces is van een andere gebruiker: uid:%lu pw_uid:%lu st_uid:%lu, " +"gid:%lu pw_gid:%lu st_gid:%lu\n" msgid "Usage: newgrp [-] [group]\n" msgstr "Gebruik: newgrp [-] [groep]\n" @@ -1799,21 +1774,17 @@ msgstr "te veel groepen\n" msgid "%s: uid range [%lu-%lu) -> [%lu-%lu) not allowed\n" msgstr "%s: uid-bereik [%lu-%lu) -> [%lu-%lu) niet toegestaan\n" -#, fuzzy, c-format -#| msgid "" -#| "usage: %s [ " -#| " ] ... \n" +#, c-format msgid "" "usage: %s [|fd:] [ " " ] ... \n" msgstr "" -"gebruik: %s [ " +"gebruik: %s [|fd:] [ " " ] ... \n" -#, fuzzy, c-format -#| msgid "%s: Could not stat directory for target %u\n" +#, c-format msgid "%s: Could not stat directory for target process\n" -msgstr "%s: Kon status van map voor doel %u niet opvragen\n" +msgstr "%s: Kon status van map voor doelproces niet opvragen\n" msgid " -b, --badname allow bad names\n" msgstr " -b, --badname slechte namen toestaan\n" @@ -1835,7 +1806,7 @@ msgstr "%s: ongeldige gebruikersnaam '%s': gebruik --badname om te negeren\n" #, c-format msgid "%s: Provide '--crypt-method' before number of rounds\n" -msgstr "" +msgstr "%s: Geef '--crypt-method' op vóór het aantal rondes\n" #, c-format msgid "%s: line %d: invalid line\n" @@ -1859,10 +1830,9 @@ msgstr "%s: regel %d: kan de groep niet aanmaken\n" msgid "%s: line %d: user '%s' does not exist in %s\n" msgstr "%s: regel %d: gebruiker '%s' bestaat niet in %s\n" -#, fuzzy, c-format -#| msgid "%s: unlink: %s: %s\n" +#, c-format msgid "%s: line %d: %s\n" -msgstr "%s: ontkoppelen: %s: %s\n" +msgstr "%s: regel: %d: %s\n" #, c-format msgid "%s: line %d: can't update password\n" @@ -1972,11 +1942,8 @@ msgstr "" "wachtwoordwijziging\n" " instellen op MAX_DAGEN\n" -#, fuzzy -#| msgid " -l, --list show account aging information\n" msgid " -s, --stdin read new token from stdin\n" -msgstr "" -" -l, --list verouderingsinformatie over accounts tonen\n" +msgstr " -s, --stdin nieuw token lezen van stdin\n" msgid "Old password: " msgstr "Oud wachtwoord: " @@ -1997,10 +1964,8 @@ msgstr "" "Voer het nieuwe wachtwoord in (minimaal %d en maximaal %d tekens)\n" "Gebruik een combinatie van grote en kleine letters en cijfers.\n" -#, fuzzy -#| msgid "%s: fields too long\n" msgid "Password is too long.\n" -msgstr "%s: velden zijn te lang\n" +msgstr "Wachtwoord is te lang.\n" msgid "New password: " msgstr "Nieuw wachtwoord: " @@ -2047,10 +2012,9 @@ msgstr "" msgid "%s: repository %s not supported\n" msgstr "%s: depot %s wordt niet ondersteund\n" -#, fuzzy, c-format -#| msgid "%s: only root can use the -g/--group option\n" +#, c-format msgid "%s: only root can use --stdin/-s option\n" -msgstr "%s: enkel de systeembeheerder kan de optie -g/--group gebruiken\n" +msgstr "%s: enkel de systeembeheerder kan de optie --stdin/-s gebruiken\n" #, c-format msgid "%s: root is not authorized by SELinux to change the password of %s\n" @@ -2281,10 +2245,9 @@ msgstr "%s: U bent niet gerechtigd om op dat tijdstip 'su' uit te voeren\n" msgid "No passwd entry for user '%s'\n" msgstr "Geen wachtwoordregel voor gebruiker '%s'\n" -#, fuzzy, c-format -#| msgid "Invalid member username %s\n" +#, c-format msgid "Overlong user name '%s'\n" -msgstr "Ongeldige lid-gebruikersnaam %s\n" +msgstr "Te lange gebruikersnaam '%s'\n" #, c-format msgid "%s: must be run from a terminal\n" @@ -2331,12 +2294,13 @@ msgstr "%s: %s was aangemaakt, maar kon niet verwijderd worden\n" msgid "%s: the %s configuration in %s will be ignored\n" msgstr "%s: de %s-instellingen in %s zullen genegeerd worden\n" -#, fuzzy, c-format -#| msgid "%s: the %s configuration in %s will be ignored\n" +#, c-format msgid "" "%s: the '%s' configuration in %s has an invalid group, ignoring the bad " "group\n" -msgstr "%s: de %s-instellingen in %s zullen genegeerd worden\n" +msgstr "" +"%s: de configuratie van '%s' in %s heeft een ongeldige groep, deze groep " +"wordt genegeerd\n" #, c-format msgid "%s: cannot create new defaults file: %s\n" @@ -2346,10 +2310,6 @@ msgstr "%s: kan geen nieuw bestand met standaardwaarden aanmaken: %s\n" msgid "%s: cannot create directory for defaults file\n" msgstr "%s: kan geen map aanmaken voor bestand met standaardwaarden\n" -#, c-format -msgid "%s: cannot create new defaults file\n" -msgstr "%s: kan geen nieuw bestand met standaardwaarden aanmaken\n" - #, c-format msgid "%s: cannot open new defaults file\n" msgstr "%s: kan het nieuwe bestand met standaardwaarden niet openen\n" @@ -2434,6 +2394,8 @@ msgid "" " -F, --add-subids-for-system add entries to sub[ud]id even when adding a " "system user\n" msgstr "" +" -F, --add-subids-for-system items toevoegen aan sub[ud]id, zelfs bij het " +"toevoegen van een systeemgebruiker\n" msgid "" " -g, --gid GROUP name or ID of the primary group of the new\n" @@ -2513,15 +2475,11 @@ msgstr "" " -Z, --selinux-user SEUSER een specifieke SEUSER gebruiken om de\n" " gebruikerskoppeling voor SELinux te maken\n" -#, fuzzy -#| msgid "" -#| " -Z, --selinux-user SEUSER use a specific SEUSER for the SELinux " -#| "user mapping\n" msgid "" " --selinux-range SERANGE use a specific MLS range for the SELinux " "user mapping\n" msgstr "" -" -Z, --selinux-user SEUSER een specifieke SEUSER gebruiken om de\n" +" --selinux-range SERANGE een specifiek MLS-bereik gebruiken om de\n" " gebruikerskoppeling voor SELinux te maken\n" #, c-format @@ -2656,15 +2614,11 @@ msgstr "" msgid "Setting mailbox file permissions" msgstr "Bestandsrechten van postvak-bestand worden ingesteld" -#, fuzzy -#| msgid "Creating mailbox file" msgid "Synchronize mailbox file" -msgstr "Postvak-bestand wordt aangemaakt" +msgstr "Postvak-bestand synchroniseren" -#, fuzzy -#| msgid "Creating mailbox file" msgid "Closing mailbox file" -msgstr "Postvak-bestand wordt aangemaakt" +msgstr "Postvak-bestand wordt gesloten" #, c-format msgid "%s warning: %s's uid %d is greater than SYS_UID_MAX %d\n" @@ -2926,14 +2880,10 @@ msgstr "" " -Z, --selinux-user SEUSER nieuwe koppeling met SELinux-gebruiker voor\n" " het gebruikersaccount\n" -#, fuzzy -#| msgid "" -#| " -Z, --selinux-user SEUSER new SELinux user mapping for the user " -#| "account\n" msgid "" " --selinux-range SERANGE new SELinux MLS range for the user account\n" msgstr "" -" -Z, --selinux-user SEUSER nieuwe koppeling met SELinux-gebruiker voor\n" +" --selinux-range SERANGE nieuw SELinux MLS-bereik voor\n" " het gebruikersaccount\n" #, c-format @@ -3017,16 +2967,13 @@ msgstr "" msgid "%s: cannot rename directory %s to %s\n" msgstr "%s: kan map %s niet hernoemen naar %s\n" -#, fuzzy, c-format -#| msgid "" -#| "%s: The previous home directory (%s) was not a directory. It is not " -#| "removed and no home directories are created.\n" +#, c-format msgid "" "%s: The previous home directory (%s) does not exist or is inaccessible. Move " "cannot be completed.\n" msgstr "" -"%s: De vroegere persoonlijke map (%s) was geen map. Ze werd niet verwijderd " -"en er werden geen persoonlijke mappen aangemaakt.\n" +"%s: De vroegere persoonlijke map (%s) bestaat niet of is ontoegankelijk. Het " +"verplaatsen kan niet worden voltooid.\n" #, c-format msgid "%s: failed to copy the lastlog entry of user %lu to user %lu: %s\n" @@ -3034,11 +2981,10 @@ msgstr "" "%s: kopiëren van het lastlog-item van gebruiker %lu naar gebruiker %lu is " "mislukt: %s\n" -#, fuzzy, c-format -#| msgid "%s: failed to copy the lastlog entry of user %lu to user %lu: %s\n" +#, c-format msgid "%s: failed to copy the lastlog entry of user %ju to user %ju: %s\n" msgstr "" -"%s: kopiëren van het lastlog-item van gebruiker %lu naar gebruiker %lu is " +"%s: kopiëren van het lastlog-item van gebruiker %ju naar gebruiker %ju is " "mislukt: %s\n" #, c-format @@ -3047,11 +2993,10 @@ msgstr "" "%s: kopiëren van het faillog-item van gebruiker %lu naar gebruiker %lu is " "mislukt: %s\n" -#, fuzzy, c-format -#| msgid "%s: failed to copy the faillog entry of user %lu to user %lu: %s\n" +#, c-format msgid "%s: failed to copy the faillog entry of user %ju to user %ju: %s\n" msgstr "" -"%s: kopiëren van het faillog-item van gebruiker %lu naar gebruiker %lu is " +"%s: kopiëren van het faillog-item van gebruiker %ju naar gebruiker %ju is " "mislukt: %s\n" #, c-format @@ -3155,10 +3100,8 @@ msgstr "ontkoppelen van initieel bestand is mislukt" msgid "failed to stat edited file" msgstr "opvragen van status van bewerkt bestand is mislukt" -#, fuzzy -#| msgid "%s: snprintf failed!\n" msgid "asprintf(3) failed" -msgstr "%s: snprintf is mislukt!\n" +msgstr "asprintf(3) is mislukt" msgid "failed to create backup file" msgstr "maken van reservekopie is mislukt" @@ -3171,6 +3114,9 @@ msgstr "%s: kan %s niet herstellen: %s (uw aanpassingen staan in %s)\n" msgid "%s: failed to find tcb directory for %s\n" msgstr "%s: tcb-map van %s vinden is mislukt\n" +#~ msgid "Environment overflow\n" +#~ msgstr "Omgeving wordt te groot\n" + #, c-format #~ msgid "%s: cannot change user '%s' on NIS client.\n" #~ msgstr "%s: kan gebruiker '%s' niet veranderen op NIS-client.\n" @@ -3191,6 +3137,10 @@ msgstr "%s: tcb-map van %s vinden is mislukt\n" #~ msgid "%s: group %s is a NIS group\n" #~ msgstr "%s: groep %s is een NIS-groep\n" +#, c-format +#~ msgid "%s: cannot create new defaults file\n" +#~ msgstr "%s: kan geen nieuw bestand met standaardwaarden aanmaken\n" + #, c-format #~ msgid "%s: group '%s' is a NIS group.\n" #~ msgstr "%s: groep '%s' is een NIS-groep.\n" @@ -3198,34 +3148,3 @@ msgstr "%s: tcb-map van %s vinden is mislukt\n" #, c-format #~ msgid "%s: user %s is a NIS user\n" #~ msgstr "%s: gebruiker %s is een NIS-gebruiker\n" - -#, c-format -#~ msgid "%s: Not enough arguments to form %u mappings\n" -#~ msgstr "%s: Onvoldoende argumenten om %u-toewijzingen te vormen\n" - -#~ msgid "too simple" -#~ msgstr "te simpel" - -#, c-format -#~ msgid "Unable to obtain random bytes.\n" -#~ msgstr "Kan geen willekeurige bytes verkrijgen.\n" - -#~ msgid "No utmp entry. You must exec \"login\" from the lowest level \"sh\"" -#~ msgstr "" -#~ "Er is geen utmp-item. U dient \"login\" uit te voeren vanaf het laagste " -#~ "niveau \"sh\"" - -#, c-format -#~ msgid "%s: Could not open proc directory for target %u\n" -#~ msgstr "%s: Kon proc-map voor doel %u niet openen\n" - -#, c-format -#~ msgid "" -#~ "%s: Target %u is owned by a different user: uid:%lu pw_uid:%lu st_uid:" -#~ "%lu, gid:%lu pw_gid:%lu st_gid:%lu\n" -#~ msgstr "" -#~ "%s: Doel %u is van een andere gebruiker: uid:%lu pw_uid:%lu st_uid:%lu, " -#~ "gid:%lu pw_gid:%lu st_gid:%lu\n" - -#~ msgid "failed to allocate memory" -#~ msgstr "geheugen toekennen is mislukt" diff --git a/po/nn.gmo b/po/nn.gmo index 2b8c788fb98e52ed903a6ba826b5fdb83d754b8d..549776433e82905d16c4a39cf8c8745e9b69f00d 100644 GIT binary patch delta 3043 zcmZ|PdrVhl9LMnoLioW?pdhda>yU}WEiM`HI-CixlxB#;cA?YZPs2)1nNDiw8Dj3rp@Jus#hwUR+p!(Z__jJPs5&@^1 zF%A!-CNPK&p2Z9dWtEy>HfA!uS!!>zp~H1AYQ}@8iH)Hq5>BrUrsK6(it*Th>Tn}! zW&2SRJ!zkRhg!e|q$?9kBehRKS9@AW#le-Rf!a|W_F_7YAZ^V!YC?Yg?LY_fu@4>m z1|#tjYL6olg6-lkh3o0aBU6kVA5)z`{*}5W`(T5$6WJznz}k;m*#PQX{)jrPzav>S zeh!F!pNx|*1C@bX)QT6O&PE+-V%sqfI}^#jPVE3Ubcjx)W;Tv9FpP(4n2G9eF;2x* zsE&7`I(!{zV%|b6=qM`XBdC6VLiOk4Kxp6`)E3mcRP@6wsE%Gm2M?lFbP|>NQ%E0X z)cOyqT_U~6T+{$%=wJ(KE4y$W9zl|2{zjUbSQ;sVZWE3lkd z-G=*7DL#!F_zzS@;+TyFPDg!UDo~lMK^?{>)K)d4GTDJT^xc@L_x~d*%)$JE`ay&f zTtO1f<2oPtGwb-5jW1&ko#+`@UYp;r7(;oeflE*w*CNR{U#kXf%)ia zkDIAz0y|L+dQdAFMh);Yrei31R>LeLS*8j#kNJnAJy+?$ehg?RR8K+?WUrG zMXBUJk4h~!)bJ(LzX;(}Lbxf_gg+qS_roerkqL1N~{ANAnrg>zIt3 zSCfg#KryQQiZt@C${KE@po`J?25P|fP#v7I{(xazpGQq}9CfM_Zw`K-W}psT8S0c* zq6Th9^|ucr@i>xHGwf2)z+b92TRW zgP;j6L1knuY9TM6#@mPL#~q-e*W+_khi9!9ty5Tr-i|yZtEL>ahpni+eFYcb5mfts z?foPUiWX9YB+1m<>*rAmJ%se@ny;xi-1y5HpB-#C6Sbn{=*Kox!%kGn`;k9$oPS;h zQLk_OEy1@S6+^h5L^uSA@!D-h^*f)qTkpS06rs)@Aqt3Pgi0Zi>(zqaf?KI?AX@Fc zl{l9mS!R*F$4;6`;$C}QhD&T+hgk=3qO8&Q^+YW(o6w%$MX30Kc>Ag9WIgPoy2nDN#Y8kDR9=`6B>9oraL^aEa4r0U{=alc%UHd!-)R?Zn_Vx delta 3123 zcmYk+eN5F=9LMpmH$*Q88i>!z4^$*kQ_1HLg_Oi6NX(~_fG#Qs=oL}Zx(rP!P)SzI zwKZ*X=EGmIlCoKir8QSg-I{+`uFV=OT&1&>)7JZQ?{Vvl@9%Yf=l*`@;d{=HtLy(P z4*ir6^^Q>v5F?0vQD&cGPhT#Su2?hvteZ<3-os)X(a&r)?!k$84hQ2eI2s?~5KM`S z+|NduY(2(cB{D?F>ZtUmA%u_PAsmaxoR@GA_qQ<~qqq#jM4XE0n2hUi4DQBMJc{b4 z6E%@;Oh+Gs4Z{o^!}zw4ibq2ws^ezN$78O&2eqQO0g)G{;BfAjpa$BA9yTG5+8NBk z&oBY+qb3l?>O4%t49vr^jBnehOu!>*z>DZ%4{FA7^rDGPM@?igdRT))u>}+H6zcs8 zs7%~KP1Mhi`h6@Ht$Y^JwH0AV9h6hi-qxdsCr|@@jq0!m$72Gspij#}O{joNBL*-N zZ=;7PNoM?64i`VJM(uei>isHA!TKcfuZ}*TL5J)dDutb>_G`{AWc%!)vmXaSD;$nG zr}I#UcM+0pD@Q%Q1AF6sR3@5HEB_F+b)OC*|C-s4G)%=V)F~d$MTaUAHL(>q4vSGQ zHljK_g(LAIs^eRz{{BL`vR-Vw7BmEv`gBykxv2iiLR2(x6KX3ipdP%A>gXTW{{_Hz0+PdFy5~ik@O~yjxgRutG7QBl(BNtE^xPh8*UoL|g z-!iDI#9Y*hk2o)(QgshKOke}Ghndb*sIO!<=3xtJ;OnSN^dL#HC_WVpJQ_V*j#}^* z45^`w3g^N)P!qU{+H2)e6BvYgArrNdwWtAh;&^O9y>}i-qIIJt;^!p~N20cBE~?*^ z$eOG&jr?nXgEZ*H)9B%4RBC%rFD8>m4Lludu?TerzCjjgKK@PW%%q|AdIsui$w9qe zh;(HeQR5wQzn@7b|N1`9)4;*D%cxBJ>K?EsA|3U|6xv5&9L_@xybSez(Aj`d+#g0w zxD7S2kC3F=MfBrusIzu2L`4Iql1Fuzg?gX_^+F|T;1>7$StPsm1L{ydK%Md=Hdv`m zMXh`$s^2{HuoRVny_komP!kN@p`w%wU^-gKMAU#;sE&$JpG!5W!+Pg?&X18#*{&eF zVYg9RnZ$w69#6vsxEl5T`>y>HWFaBDL4|Cak8emT%RptK5Y_Q^^zd!xS=4jaP%HWe zW6^su^4_*h}AkZ*KH}8uj9- z68|qc6;Z?8R_w(tnZtL?N-4P-zTb*%AHI ztRtonONmTEC60KG(59)(C-i@Ahi)jz#N2Q#aw&54{-}?07oj6qPwXQel?_yyh$`YK zk4rxBs7$7^hR{c-($M;IOybCG)Jlj-;w|C@qK0^ksA&H(_P8&)EEp)M4YXFoC%2c! zw?!u{sIJ=-tf{UFRM&bnb%9{{=9(Qb?GFZ?j*Z?D4Ak=INiVf^j^}Sb?%j\n" "Language-Team: Norwegian (Nynorsk) \n" @@ -79,9 +79,6 @@ msgstr "" msgid "crypt method not supported by libcrypt? (%s)\n" msgstr "" -msgid "Environment overflow\n" -msgstr "Miljø overflyt\n" - #, c-format msgid "You may not change $%s\n" msgstr "Du klarer ikkje endra $%s\n" @@ -2116,10 +2113,6 @@ msgstr "%s: klarer ikkje opprette fil for standardverdiar\n" msgid "%s: cannot create directory for defaults file\n" msgstr "%s: klarer ikkje opprette fil for standardverdiar\n" -#, c-format -msgid "%s: cannot create new defaults file\n" -msgstr "%s: klarer ikkje opprette fil for standardverdiar\n" - #, c-format msgid "%s: cannot open new defaults file\n" msgstr "%s: klarer ikkje opna fil for standardverdiar\n" @@ -2816,6 +2809,9 @@ msgstr "%s: klarer ikkje gjenoppretta %s: %s (endringane dine er i %s)\n" msgid "%s: failed to find tcb directory for %s\n" msgstr "%s: ugyldig startmappe «%s»\n" +#~ msgid "Environment overflow\n" +#~ msgstr "Miljø overflyt\n" + #, fuzzy, c-format #~ msgid "%s: cannot change user '%s' on NIS client.\n" #~ msgstr "%s: klarer ikkje endra brukar «%s» på NIS-klient.\n" @@ -2836,6 +2832,10 @@ msgstr "%s: ugyldig startmappe «%s»\n" #~ msgid "%s: group %s is a NIS group\n" #~ msgstr "%s: gruppe %s er ei NIS-gruppe\n" +#, c-format +#~ msgid "%s: cannot create new defaults file\n" +#~ msgstr "%s: klarer ikkje opprette fil for standardverdiar\n" + #, fuzzy, c-format #~ msgid "%s: group '%s' is a NIS group.\n" #~ msgstr "%s: gruppe «%s» er ei NIS-gruppe.\n" diff --git a/po/pl.gmo b/po/pl.gmo index 40f24251309dc1722cc9fe1f2fb71f6cd14133a5..3736da768e96ac86a1e9d1587b26f245300b5a88 100644 GIT binary patch delta 4278 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 Z&uiOOT{X9AMa9zlXC<`!I&4a({{fjy!^Qvr diff --git a/po/pl.po b/po/pl.po index 1c36ea64..35e562ff 100644 --- a/po/pl.po +++ b/po/pl.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: shadow 4.0.18\n" "Report-Msgid-Bugs-To: pkg-shadow-devel@lists.alioth.debian.org\n" -"POT-Creation-Date: 2024-03-23 18:35-0500\n" +"POT-Creation-Date: 2024-06-21 11:23+0200\n" "PO-Revision-Date: 2007-11-25 20:53+0100\n" "Last-Translator: Tomasz Kłoczko \n" "Language-Team: Polish \n" @@ -81,9 +81,6 @@ msgstr "" msgid "crypt method not supported by libcrypt? (%s)\n" msgstr "" -msgid "Environment overflow\n" -msgstr "Przepełnienie środowiska\n" - #, c-format msgid "You may not change $%s\n" msgstr "Nie możesz zmieniać $%s\n" @@ -2143,10 +2140,6 @@ msgstr "%s: nie można utworzyć nowego pliku z ustawieniami domyślnymi\n" msgid "%s: cannot create directory for defaults file\n" msgstr "%s: nie można utworzyć nowego pliku z ustawieniami domyślnymi\n" -#, c-format -msgid "%s: cannot create new defaults file\n" -msgstr "%s: nie można utworzyć nowego pliku z ustawieniami domyślnymi\n" - #, c-format msgid "%s: cannot open new defaults file\n" msgstr "%s: nie można otworzyć nowego pliku z ustawieniami domyślnymi\n" @@ -2857,6 +2850,9 @@ msgstr "%s: nie można odzyskać %s: %s (twoje zmiany są w %s)\n" msgid "%s: failed to find tcb directory for %s\n" msgstr "%s: nieprawidłowy katalog bazowy '%s'\n" +#~ msgid "Environment overflow\n" +#~ msgstr "Przepełnienie środowiska\n" + #, c-format #~ msgid "%s: cannot change user '%s' on NIS client.\n" #~ msgstr "%s: nie można zmienić użytkownika '%s' na kliencie NIS.\n" @@ -2877,6 +2873,10 @@ msgstr "%s: nieprawidłowy katalog bazowy '%s'\n" #~ msgid "%s: group %s is a NIS group\n" #~ msgstr "%s: grupa %s jest grupą NIS\n" +#, c-format +#~ msgid "%s: cannot create new defaults file\n" +#~ msgstr "%s: nie można utworzyć nowego pliku z ustawieniami domyślnymi\n" + #, c-format #~ msgid "%s: group '%s' is a NIS group.\n" #~ msgstr "%s: grupa '%s' jest grupą NIS.\n" diff --git a/po/pt.gmo b/po/pt.gmo index 9fdd73cfede8d2bb9cced6752dd28be6d80ce256..8e2f3321e8aad92d30a40a087f0801908a70a289 100644 GIT binary patch delta 11131 zcmYk?2YgRgAII?<1Pzjikq|OvNr)A(VujeTs`f0UHDk~I6}4(Mb`hH@Pm$VtwN`6X ztQu9Ts+87ztmpI1Ii6SV>-ptuFZkRiA9L9X6jVj#C8J zc{|Qw+Es$p>o`qf9499>MK^4Nxv(9EVh;?*DcBLyu@dGh;W+%yN#=(yjzk?l3qQea znCv(%C$yyFG@zqD_QO3`17l+yX8@*PO}vHWF|w4|-x2GQFU3Ll2Uf&RrA_|=RDJ^+ zV$m{=Qvp9gF6=DFdR*W6n?@r#s+2W5CS!B*i^wjgL^&PEz?g(puEpZ+$$DvrIvbodEsBs_Q08FUjI5eG&s7G`kU7Bem)6)TckehOTL*0>YRdb=4 zSe-lrbzDJiOZjBfgpVV;ocwgsbef|ol!}`0FUYl=816#jevG=I8#SoEN*l)QYUX|M zQ~Vvj!0z0p@_$ez>|e`qhTsMqjFHSILe8aV!K4;6l2b!*~UK7)ARZB1Lm5 zH8vF+g?{9(Fcb^$9CBkt^u{DChOU-&$4KiW^kByv%!x~}3$C^Od6=yixgTc3NX&sH zFfYbo39N%*I0*gmD=djyF+bkMV7>n@Y3RVB&CH33s5}KDa4zZ&_F@d)z{2R=-0Y9W zK=S6O3k^VC5NA4;!K2n!$OWC)_Z=q$n_{Tm|ACneULn*4ccCV56E(0$3&)AV;;0L} zj~bvKs>G@2i|eoy9zvb}1Ph`62j&LiP~*48Nc;=~xxTZOh6X%_8t6W%7Qlz731n|?ChU*-$ZMc3)WY@;#nR-9ZGH+h!Kdx1Ki?9k zKnL?I+n`E30Ch(TQLo8X48qH(fnTE*V^Bx){b*#Jj#{jzQR6&89T(8ajNbs`$h%q> zxa^Kos0!S*xm#!RYzw0Xs)@SOo>(78qrPazF&=%onD0P+3?QFnO-J3p8PxaX83tkH z56$9qwWFbDKNvNEsi-?&iA8W92H_Pfif>TI73pd!Q4V#%mZ<*0SO}+~j$ea8_&o;V z9h>LqmRTv66GX>4RF;D^L?Tf&O?0Lon+{=J;?7C$EbtabMI#7NQUCMBTto z7=-swuW|0~=F?mrz4ZPM$!s{z1We$7xv2Lz12u5=9%gZsMcqMb)CGp2A5KA4a3yN- z?ZO~Dg&OA(>U9nI*o>2m8h4;_uJ0_Rq0;?;y1+Gz#kZ&vV?Qyr#USztr~%esBxYa~ zzCqn_WKXkJYNIC924`a*oQ2tXnF`KFS127jY3Ny9L*=h+9^BjH)v!4IA7VI8!yw#@ z!FUd<;&ZHl@qNtV9EPgEKGd3cgql#UzK)Xx1N&0{Fd89r6vMixO7zC}@N?9&pN=~5 z8`N=oF$iy>Cg9%Btd$7V8mWoV*bP;onW)O{z*xM5dC?<<`s-O1;d7>E7>hbE2~~-Y zPyuJz7$o#!?yn+>b!!k0cO=Epl031#)2)Q%>o8BRb?JZZg(S~T}jYv3W~!~(-i1p`nMO+asKgB7qRYMd45j_Ih0Z^yiP z|1)T)^mot~J%*e2Is{ds%2)=IQ2U3W*2qlM9dASpxEr-rE@BX78DS<8iUrBbq52!3 z7H2Pv;QG!y8k)d9^v4^h*YPdp#iAq4L}IZ3c_q{;Zh|^*H0lD&QHyT}>PvVPRjJq3 zkWuE(^*X4xbfU3lC)N%JvmCDCm6~ZLc zah*_=9DzYN9`#68yQqJ68e8blq6-*pN?aN>U_A`L6jbSFpaxuHJ%~E)Dh6Tp&rAg( zP~$bg+}HtCp`NG;jzLv+-e+96G>x@%$jev_J;#{El#C_Fd!kA^A2sl9)S^9w8t@kS z;Y%!n`Nx{dlt$e^Q&fLH48f_WN3g*~L!~-zeS}&AxyG3RBT#o-9gAXHY>2~97yceq znaijNJhtZf+>8^Bf%MlzUAPOX5}%{acP*rmgT^Kd#vP~`Uq*L)iTZH3jW-p@g_?OR z>VhAj-h#duh9ginuoS~_H|n^XsO!A8x%-67x4`8D&`@dWqu$%@s0$874Lk-L;53ZE zOBjVYCYpguV+479T;#?--7qJ)_hj=QEDE8<@yBS4z>?S;wf>wjG<1P1UziU@G6s=P zKwWSR@{7&Mz;>88#r)%Q2{t76oofD|=!&DsS7I{^pJvw5Fswzs9d-O0Y>o}4^KVM7 z@1)U4!prKw&>7~R*`2T^`B|)kzBA1QI$~GyU$H&b{?c(K;c~2wB~r~lyZc~E^1V0| zeP{8i;tU*u?PgPf;WWUI z$Q$WwMLmMb%T3A0;-}=-k;moL-ywRmzTo7>q5_&4*(M<|1E=Ubq%xa0hzh9rVQKm=kk+ zXWx75PhJQ;a0=>6Hy5+vddz{F&`0n84jLus_z}zEOANr+%_dLALgZtxBre3#c--c% zQRl~OF(0BfsN=?9JZ?mdcNcYD&aLMAQVEN2eWxvrCO8zE;!&&rHuHPFH%8FE2sQ9w z)Ig6>6As^Qo@E;hA)kYq&~~hdcWfTK!+gRUTL+*kiUa1-&_Mf9-|#0k_upw&abr~J zr=ljX1LN>67RSI{=8IS#%aQNLGWZm=cA|Ehi8Mo9XA0`PeY>f@N^_46fArX6eiwve zW%5L9hA!(F+aI>q{8sFY`Pe@aE8q;wjYrWJ&!H;!0Eb|~edf35G}QIh?Q@yN5jr%} zo2U!t*>5gT4^`5xs5_c~TJ<|@zuN)x%cvOEr#~5^aX#w!!>C8`9D^|Ypm_v!uqt^^ z7mYv~Yq2pNLzSrTA@iOlqwefW)Ii6vGrqtg*!Hk_TZUo?c^c{l4qzC*L5*MRdvk-e zP;0HX)wPF4F*>|{FpI4mmM8Cu1@SA4$4%BhP!|q4V%~~s7);(8wU$Pp*2+o@z%$qi zA7MkRf7EPeNhvc ziK@U(EQHrF0$-xW3q7IpdH!{2sG~bZ;uO>>-;8<`H&LtI??+SGWK^jqqx#pQ2EKv1 z<6J+Pyf|ti%}~dW#28FNt&I~H&h?$QG<-1pq`8xd7)#z7HNYfnhv`@Vy-%6HUc*t( zvI3UWai|Gx!)Sbfnpok}=26x}y%nud6;DBz2AoDicfJDk{{DywnB|PgtD`<7gHRXv z7FF_Fs0+FOY!+u})Py@)C!s2vj#cmi>ihy{&FXJ(mip^iPNqWxuEBhG1lQqZ+=r7g z%x}B;=ggOH1nOC@M?K?{s1iRx-H6|LQ^6Wof;qM)h?RvLr2U)J_2=tPpzx5Ao(fuz&p18Z`4}wzhv&X64oT|hovwbi{nifjq)_S zelaCa!m{M!P|tK5R>nK10YfjFiPc1vwhL;lOu(wR)%p~5UfdP4*itZvdEe5 zUeM4?ie5FPs*5^tFgCzV7>{pkfB9>sg#A$yPeWDY9BQ1msFD}|)vTRXs0mI*RcbfR zz_Ykm?|--J=1;3^znR6<5bJTkP|Sk|umhe#Z;ZWRo^^F>ME)WA;YKWk$1n(QVrg{0 zX(|!Tjo{qY+XSP4=w&|~ht>~YK`SH5- zDP|+jb;nG^8}pLaM2+)4#&LaT42^KyhE?$zs#F2Lo9{v#79+2V>hF!ZvvC-NTd*je zM=yMW3Fv;;Jd#Az_+PS#-k^B1Jp#@pw`e7)LJ-%I`8p4>aPp?{An+QDouCmY-~q<5OreEeKTMa ztVliv)xXQ;f1)NB{=ihKrL_+R)Bic@hF7C*;HL-Fzb1|6bZGHZ{>#j)1?odI09E=4 zm>bvOaNLf1mgOFr3ngI~d3y}Sv8c7M8jIjA+kX*DlD|exB*yi~%%nN`&@l=-pTyMRTo7{T)R|F(gA z2{AKuf3R;<4o1#RX#0&g%N}1s+iOh2Wb{aN3(2QXPUh!dYe`#u_H-qJX!~Igq5z>y zMbOqQwO&YIfycJ@J+3vEUcM>L)YMTSzOK^j8ASFM>d8#EN9N(k>_kWU4idZRpHG~i z-H*szmiE}DR)6bk>s{+jj-N=BwfRii;k0*YsU0KHR)~(A#2R~$4|b>j3h^HCBk^uq zPh%nb$D-E%J=$Lo?-TE~INExL#^5#LHSHhl&Y|R5u6x{AYGEYni0njOI)m_yJy7WX zg!2u3@3t5k6O_+3k2|(QTqG|?%q8mD z{ywy|^|$h2cRr^*5P4gjpJ^{c@6`6id|kQ7cGx4o$Ls9Tw#eYD!AJCG zomcd~+X88CC;6BdM@%8_i)D%71mD8UUr;TuGch)`eVBi;P{3S7-_=qS- z{CjgF|H}6L^RIm$(5}yc58P5uhviHCH7pxT!)ZouTWo@T@F(I^VjjVl!Z}6%a$HQj z+m_N-hdBAJ1Aifw5CiFdw{4>Fl>97K##=;pVx&F5Rh?u#@ou|DV;=b&ypP{u7M@}% zt|q@uq!5S5Ul9+8&g4H5v9z^qr>!kN(Sx`_6e8Nwzsc@PARpwGxwdK9?HoIE($0o^ z-gV+nG%0+lBk-okrAFA5+%1UR!SRi3Gn6GXE%1-+#%E6ZtY9 z#EgiXu9x)I(=N7Q?0Jt^N4q@EA^xV_mAFh>TQ%Hln$CXO&1m1V`ChC*9HPHEMqw=R zGwm1H3s<4Gx5QHYimpu~7t{74v=t=wrk05Gbyc*7M$q%8Z5N?kifBW=+4hk-{LXYr zk&hw{5)aAOqJA%h;%wA5i?+6Un1hJ1x%#~HgY7YqtnW`WjbAz743V35K5R(rq`e4d z5Zc}+I?+Cwnehi!>g!0~M(*^Cut$tx&u7F@@=JILuM+oZ>s|PYh#>!s`1j^TK8+Zh z+Bqtpt0S#H*?k)KVKk1%Be(^h;VNuRoFaZ8pO5W{WwcX?t%SA>L>1ZrmxY_X+*uGKpRdCa96}Enyr}AJbkzJSWBx!-+SzP(J+io``Uq3uEBWI~fs+f92?Bid(piGAZ* z+aB$$Yug?0A@L!7{zPxuA;d}@#8xu(b+m8O|InjtB~HPsM3_3*W)bJ r^1(QXC_}v4GU)eA?-sMARC@LHJ^j-64?5Q<{m#KEf$0@*EcE*ysCSH} delta 11244 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\n" "Language-Team: Portuguese \n" @@ -81,9 +81,6 @@ msgstr ": " msgid "crypt method not supported by libcrypt? (%s)\n" msgstr "método de encriptação não suportado por libcrypt? (%s)\n" -msgid "Environment overflow\n" -msgstr "Overflow do ambiente\n" - #, c-format msgid "You may not change $%s\n" msgstr "Não pode alterar $%s\n" @@ -2367,11 +2364,6 @@ msgid "%s: cannot create directory for defaults file\n" msgstr "" "%s: não é possível criar um novo ficheiro de configurações pré-definidas\n" -#, c-format -msgid "%s: cannot create new defaults file\n" -msgstr "" -"%s: não é possível criar um novo ficheiro de configurações pré-definidas\n" - #, c-format msgid "%s: cannot open new defaults file\n" msgstr "" @@ -3198,6 +3190,9 @@ msgstr "%s: não é possível restaurar %s: %s (a suas alterações estão em %s msgid "%s: failed to find tcb directory for %s\n" msgstr "%s: falhou encontrar o directório tcb para %s\n" +#~ msgid "Environment overflow\n" +#~ msgstr "Overflow do ambiente\n" + #, c-format #~ msgid "%s: cannot change user '%s' on NIS client.\n" #~ msgstr "%s: não é possível alterar o utilizador '%s' no cliente NIS.\n" @@ -3218,6 +3213,11 @@ msgstr "%s: falhou encontrar o directório tcb para %s\n" #~ msgid "%s: group %s is a NIS group\n" #~ msgstr "%s: o grupo %s é um grupo NIS\n" +#, c-format +#~ msgid "%s: cannot create new defaults file\n" +#~ msgstr "" +#~ "%s: não é possível criar um novo ficheiro de configurações pré-definidas\n" + #, c-format #~ msgid "%s: group '%s' is a NIS group.\n" #~ msgstr "%s: o grupo '%s' é um grupo NIS.\n" diff --git a/po/pt_BR.gmo b/po/pt_BR.gmo index 794426fa19d32f6fdc5506a8e840f756ee5449d0..ec40de229fa819a24a01a05e73c9a166d6b94ef8 100644 GIT binary patch delta 10061 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\n" "Language-Team: Debian-BR Project \n" @@ -80,9 +80,6 @@ msgstr ": " msgid "crypt method not supported by libcrypt? (%s)\n" msgstr "metodo de encriptacao não suportado por libcrypt? (%s)\n" -msgid "Environment overflow\n" -msgstr "Overflow de ambiente\n" - #, c-format msgid "You may not change $%s\n" msgstr "Você não pode mudar $%s\n" @@ -2326,10 +2323,6 @@ msgstr "%s: não foi possível criar novo arquivo de padrões\n" msgid "%s: cannot create directory for defaults file\n" msgstr "%s: não foi possível criar novo arquivo de padrões\n" -#, c-format -msgid "%s: cannot create new defaults file\n" -msgstr "%s: não foi possível criar novo arquivo de padrões\n" - #, c-format msgid "%s: cannot open new defaults file\n" msgstr "%s: não foi possível abrir novo arquivo de padrões\n" @@ -3147,6 +3140,9 @@ msgstr "%s : não foi possível restaurar %s : %s (suas mudanças estão em %s)\ msgid "%s: failed to find tcb directory for %s\n" msgstr "%s: falha ao procurar o diretório tcb para %s\n" +#~ msgid "Environment overflow\n" +#~ msgstr "Overflow de ambiente\n" + #, c-format #~ msgid "%s: cannot change user '%s' on NIS client.\n" #~ msgstr "%s: não foi possível mudar o usuário '%s' no cliente NIS.\n" @@ -3167,6 +3163,10 @@ msgstr "%s: falha ao procurar o diretório tcb para %s\n" #~ msgid "%s: group %s is a NIS group\n" #~ msgstr "%s : grupo %s é um grupo NIS\n" +#, c-format +#~ msgid "%s: cannot create new defaults file\n" +#~ msgstr "%s: não foi possível criar novo arquivo de padrões\n" + #, c-format #~ msgid "%s: group '%s' is a NIS group.\n" #~ msgstr "%s: grupo '%s' é um grupo NIS.\n" diff --git a/po/ro.gmo b/po/ro.gmo index 2f84e042e22593ebcb70083762a54d8ec03ddfa5..7aa55de595e4ed75869153b30cf5da33c0c92515 100644 GIT binary patch delta 4278 zcmYk;3-p%r0SEBkKhnjezmjy*t3M*iluOc;QDSIomPBbZv$;&DhP@-V5Mxqg%W7_g zQ4`DEV&@>|xXhfL4ZFDQFviR=XPte%@B94E>381m`+1({eV*rceV+e+-8C(jUfoiE zqx+VNi?Tub$*8SL>C{rn^lfsqlzFYCY|Z)HotJS2@8L*pvwbOha{_zuJhpKWcj5!p z{&UPN|H-cWlATMbm#w;&GRuK(%n#?V8!uufE~0bGV(!K}D>t%_{ZFg??Ru25qy7E3 z9gk!hG>tp(9FF1@9L5bCp#Ji?je!pIa#kuB$+UbX_uzb{q7~egkFmzTGCkd*XS1R~ zbf}EwBu-(C%h{VxG7bDA)3AT#clDPpj`rtZ=7)()gJyDPE~t*LV9s058eeA`@CDPr z{x0sz5zO^dSmRt~M3-_j@1j8~@35Ypeqp1=?soR#aAqWCa0oA}_Sdjx|Mlwl7t9Fl zu6ybEF-(I_VU1UE4DY5-dC!-@E*-Qs_usLP@z0QsazGo($xILCGbb))e!rVOG{E}IeJzZ4eD5e1?G8J6R!Mu~{@ykp@-=@(o|Ltr1udvZ-=?~{p*7yRu@Iy}E z=gi_9Yy4eXCNVdhO+S_S+=VwW6+FzGw~+_&edZ}@GoP7?eb`tlbsGmbFr_+hb+vyR zvx@&v`3^G@pV4De`V44R+(u7g8OITv%v^UBJMw0xA?i z4|ic6k0HznGw75um+8S0`jnNv25|#(!w;B>x)}zYEqgH)9>I*<3CxhsX3oEm)@{8k zw~--P$IS7wOoe}8Drj+b8nh=f=hK<<&S!3XJ!`y`>G@;K)V#oS;LXaz*2W5^Lr>7` zl{c&3H?gPsOD{_`7wlbmI5U(pm8F(zTN%$ZY$~$`t{h_g)8duYfrnVL|1u}>Q|9>{<4;_M zcpiPq5?`s{8RkYGQCmybq0OP*p9kBY&YZWD`|@e#KL2J$yhmMgX4n|Q%+)o_kl)V? z(ZZkJzdCLe;?DJ=a~`x56xy7pcQGr;jFQKs*Oy+<(2m^ zi|l1i<$Fv^#}8{ZXc|-Dx%4SZeC7J*m^bLh)&8z_(xFMr?`P7j%8ktX;aMJ-=l}0E za-)9xd6akz)52xUnpn^D#d<_I!mIk+*3OONRrR z_Z!BxJpU)!FwNy+j^TaG1s^s}FsGVn9hITHgwyy{{+XHEfg_sli=%kD{o}bEH!vM} zh3WAp%*eG`P-)w)amjTGg7@rHy7!l%v78<+W0pf4+r`>@HErnH<%lJ#2R~=mp(jzJvf>D zc`7q<3urdV9URX$SYvH$)A8Ka{w$_LXEP1FacsT$B3bD`F9+5!H-3@n@dr%B9mX{; z?9UASc=qE7?8_U~tg?nP$x zcRHk5!7yfj3Uh-x^IYG;%<)sz{`=K_>!Hmz=?Hp9m5I!VpU*VBew&R9`D*%d4C)sous||+Qxdxla+Fhd{f5BTFLY^>d$;+2(w^Pj&9O; zD;{TivW%47WUd?{7t0Uj2{~ULl-V*>vH-V`1(GRDIZ-A^rt%m`xk>W(r%{&szD;(O z#j?L--m(Z&vf6(lS!}E1yK<{MDL<8z4RVz%k;CPBN!doaHny7o2Rv=tGD)d7p37_< zE9Xfb!;~|cly7mcWcA)Ihsh{8P<|}!GoGI;PhK*g?cX+4#TzXW;R#fIuO*uinFUzu{{8olbqceST zL>VfN%Sm#uTrR(orE-wWlAGlk`Guq$FYDw+xk!E~=gJgG*`Z0fpPl7wc}l(~4`r=h qXyZ~zIa2PGE!W=LdhZr%>pMK(dF{;p54NryJ9JgowVOta*!KTQK%>6^ delta 4397 zcmYk zG=hYp7!Xu6f+Ym0U;>4L4wGq_GSwOVgVL&PS*Go18K#tCzt24{PS5b%&-11lWS+^*&XS?dG*}iP(bK*p8L>6^_M8z08K7k12Qn z2jUq_#Y?Upon)q4W@7@5#LoQ83MtIvM2Y*N8GBIw06XCsbevz@-QFOff=X{uEINU8|wEh=;0qwGkXokV;rONnN6EWK_i{Phle$oiw&rmXv2H( z&#vBsVR+Q@QRio%W@s&H+I!1kBLhfzts2hKd{M4>u26kcH)KD(!x(PT2pF}-XjXnjf z$sW{&hwxtf#MN)PdhY?jt}b=XM$On_MnC(~N708gWyhW}z5cJ+deB%x-| zA4)-+WCCjH=OfE(&!9&53hHs$h5G(Haxc4#8bJcXq-cHdZXAueUnOe9YmmvXCRBrM zsQdm7nOWaHr=TDF1KHS?L`5?)7`4`8Pz^qcYM>s~p`EC;KZm;R66(gWEWC$3P$M6X zTACu%0Lq-Oi(^sXUMR;op(LT6ea*t{;J&umqVz zn~rQ7TaIzqfZDu`sE+PN{@H0he68UX3f$AKyD$1N4eHP&)Qu}J7elBKyo}mp@1t&f z0(GCWsQ1CAxHrlynwNr}^S1}{$l);z<7F(z**VOAA%*=p!CGEHbtI0~G~!&;i=_m$ zCzfF%u0}Py317rU)YNCux-7s>ScY1vN02rxgsg(SgxYI|?_vJcvkp#Z6a5F(oDg!C%2qsQNtA?>8Z1vVEv2Kacm}zfsra`?NlSLM7^k zFQcaZAXeg8)S3+*9!&i-)UK~`u0ws_gqo>Ss9k;qwMSyOxkj9gTDme+hZdu*_qS3| z&)QHO_!2#g&I^`epmPdpv(?}%T#xGL1yqNwqZ;frGI%^kp_XzH^3OKA`bkuW{~FYN zOB@x=a75aQ7pr&s16q72YX{CY9w{2hMKSso<=qB1*&7WklD6WUaOJ4 zguSRQ!}Q4WPk~vsU8ozLL*3v8vK_2Hy(z>p)D&(+eZLRcch-Sx@H$SyRRzJ?p1@@4 zm#{0|!YWK;19iuh7p*qrPuLl6Ah)y_dZ7Upp_Zxwb>Fq)nSW-*ws1m^LkDWNUPCQO8uPC6rFbXSqdMGx zy3rfx;U}1ef5YAwQxr6qf|}8MWOZy7-j5CF;rSvzD16I_Zk$M-5R51j)x*h{gpXkg zF2;Vi8a3i3RKtf+GjR^J6yIVxcB8cf%)t!IM=jkiI>~jsJzZal!*Z zgIU<0`b1Zshnl(7s7-qmGw>@{kDnO)egx|Ao{C!HI#++q)%{Zxdho?%ewMn#DAhT>rGSxS;fH&Ov5KwB+DK)jp0tpklNU)R!h;d{6TA{fld)t5`4Q1ED!^XFxnv)CjcAkaA!$U% z>yc09Ka+yq^CgiJ!Si0^%A$}wO`aqllm9=)Q7LdIik)$|)RmvWa?(Ju$YD}LHWD41 zwEnH6PBo5HvV!a)%gA1`h-8o^qN9;ikUTPlyhNgjj^B{&k&@X{&h<|5Gcrd7j`xV# zw|1gO@Og5a=olXG{pSfv&wXFxKU7?KsIv-tyYjtGy+QNIGp;_&IS&VsZT!ElousgX zJVM?lIz9@pT4xwNvY6~7I(|U1$xKx^j*;Zn6+I8c#Luq{&8-h@%}yTBnwi|uxleI; z<&xT(aCInL@71gf)h=9G^Hf6X)$}7hV|D4)<{{awdxkV8Bu@#i2rrm>X77@aw;<$I QhZZbZk\n" "Language-Team: Romanian \n" @@ -80,9 +80,6 @@ msgstr "" msgid "crypt method not supported by libcrypt? (%s)\n" msgstr "" -msgid "Environment overflow\n" -msgstr "Inundaţie de mediu\n" - #, c-format msgid "You may not change $%s\n" msgstr "Nu puteţi schimba $%s\n" @@ -2127,10 +2124,6 @@ msgstr "%s: nu pot crea noile fişiere implicite\n" msgid "%s: cannot create directory for defaults file\n" msgstr "%s: nu pot crea noile fişiere implicite\n" -#, c-format -msgid "%s: cannot create new defaults file\n" -msgstr "%s: nu pot crea noile fişiere implicite\n" - #, c-format msgid "%s: cannot open new defaults file\n" msgstr "%s: nu pot deschide noile fişiere implicite\n" @@ -2842,6 +2835,9 @@ msgstr "%s: nu pot reface %s: %s (schimbările dvs. sunt în %s)\n" msgid "%s: failed to find tcb directory for %s\n" msgstr "%s: director de bază nevalid '%s'\n" +#~ msgid "Environment overflow\n" +#~ msgstr "Inundaţie de mediu\n" + #, c-format #~ msgid "%s: cannot change user '%s' on NIS client.\n" #~ msgstr "%s: nu pot schimba utilizatorul '%s' pe un client NIS.\n" @@ -2862,6 +2858,10 @@ msgstr "%s: director de bază nevalid '%s'\n" #~ msgid "%s: group %s is a NIS group\n" #~ msgstr "%s: grupul %s este un grup NIS\n" +#, c-format +#~ msgid "%s: cannot create new defaults file\n" +#~ msgstr "%s: nu pot crea noile fişiere implicite\n" + #, c-format #~ msgid "%s: group '%s' is a NIS group.\n" #~ msgstr "%s: grupul '%s' este un grup NIS.\n" diff --git a/po/ru.gmo b/po/ru.gmo index 492b106ad57e6e4bac585e090bec89dfbd8ff970..55fecd61f163ecf72cbb6aa8040d778aa5552724 100644 GIT binary patch delta 11835 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 diff --git a/po/ru.po b/po/ru.po index 66295fb0..f3f1d0d5 100644 --- a/po/ru.po +++ b/po/ru.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: shadow 4.1.5.1-1\n" "Report-Msgid-Bugs-To: pkg-shadow-devel@lists.alioth.debian.org\n" -"POT-Creation-Date: 2024-03-23 18:35-0500\n" +"POT-Creation-Date: 2024-06-21 11:23+0200\n" "PO-Revision-Date: 2017-03-05 11:14+0300\n" "Last-Translator: Yuri Kozlov \n" "Language-Team: Russian \n" @@ -87,9 +87,6 @@ msgstr ": " msgid "crypt method not supported by libcrypt? (%s)\n" msgstr "алгоритм шифрования не поддерживается libcrypt? (%s)\n" -msgid "Environment overflow\n" -msgstr "Слишком большое количество переменных окружения\n" - #, c-format msgid "You may not change $%s\n" msgstr "Вы не можете изменить $%s\n" @@ -2371,10 +2368,6 @@ msgstr "%s: не удалось создать новый файл значен msgid "%s: cannot create directory for defaults file\n" msgstr "%s: не удалось создать новый файл значений по умолчанию\n" -#, c-format -msgid "%s: cannot create new defaults file\n" -msgstr "%s: не удалось создать новый файл значений по умолчанию\n" - #, c-format msgid "%s: cannot open new defaults file\n" msgstr "%s: не удалось открыть новый файл значений по умолчанию\n" @@ -3214,6 +3207,9 @@ msgstr "%s: не удалось восстановить %s: %s (ваши изм msgid "%s: failed to find tcb directory for %s\n" msgstr "%s: не удалось найти каталог tcb для %s\n" +#~ msgid "Environment overflow\n" +#~ msgstr "Слишком большое количество переменных окружения\n" + #, c-format #~ msgid "%s: cannot change user '%s' on NIS client.\n" #~ msgstr "%s: невозможно изменить пользователя «%s» в клиенте NIS.\n" @@ -3234,6 +3230,10 @@ msgstr "%s: не удалось найти каталог tcb для %s\n" #~ msgid "%s: group %s is a NIS group\n" #~ msgstr "%s: группа %s является группой NIS\n" +#, c-format +#~ msgid "%s: cannot create new defaults file\n" +#~ msgstr "%s: не удалось создать новый файл значений по умолчанию\n" + #, c-format #~ msgid "%s: group '%s' is a NIS group.\n" #~ msgstr "%s: группа «%s» является группой NIS.\n" diff --git a/po/shadow.pot b/po/shadow.pot index 06ab8b67..bf30c54e 100644 --- a/po/shadow.pot +++ b/po/shadow.pot @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: shadow 4.15.1\n" +"Project-Id-Version: shadow 4.15.2\n" "Report-Msgid-Bugs-To: pkg-shadow-devel@lists.alioth.debian.org\n" -"POT-Creation-Date: 2024-03-23 18:35-0500\n" +"POT-Creation-Date: 2024-06-21 11:23+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -80,9 +80,6 @@ msgstr "" msgid "crypt method not supported by libcrypt? (%s)\n" msgstr "" -msgid "Environment overflow\n" -msgstr "" - #, c-format msgid "You may not change $%s\n" msgstr "" @@ -2061,10 +2058,6 @@ msgstr "" msgid "%s: cannot create directory for defaults file\n" msgstr "" -#, c-format -msgid "%s: cannot create new defaults file\n" -msgstr "" - #, c-format msgid "%s: cannot open new defaults file\n" msgstr "" diff --git a/po/sk.gmo b/po/sk.gmo index 68d98340c30dad3c78d8b90633026db2a8534a7a..6d36ce9aacc02190977b95f1b0eb413553761416 100644 GIT binary patch delta 7946 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 delta 8085 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 TGQYg6aC%XGz@AH0$6Ndl82a?f diff --git a/po/sk.po b/po/sk.po index 08a26379..82e046ed 100644 --- a/po/sk.po +++ b/po/sk.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: shadow 4.0.17\n" "Report-Msgid-Bugs-To: pkg-shadow-devel@lists.alioth.debian.org\n" -"POT-Creation-Date: 2024-03-23 18:35-0500\n" +"POT-Creation-Date: 2024-06-21 11:23+0200\n" "PO-Revision-Date: 2011-11-26 22:06+0100\n" "Last-Translator: Ivan Masár \n" "Language-Team: Slovak \n" @@ -80,9 +80,6 @@ msgstr ": " msgid "crypt method not supported by libcrypt? (%s)\n" msgstr "libcrypt nepodporuje metódy šifrovania? (%s)\n" -msgid "Environment overflow\n" -msgstr "Preplnenie prostredia\n" - #, c-format msgid "You may not change $%s\n" msgstr "Nemôžete zmeniť $%s\n" @@ -2259,10 +2256,6 @@ msgstr "%s: nedá sa vytvoriť nový súbor s predvolenými hodnotami\n" msgid "%s: cannot create directory for defaults file\n" msgstr "%s: nedá sa vytvoriť nový súbor s predvolenými hodnotami\n" -#, c-format -msgid "%s: cannot create new defaults file\n" -msgstr "%s: nedá sa vytvoriť nový súbor s predvolenými hodnotami\n" - #, c-format msgid "%s: cannot open new defaults file\n" msgstr "%s: nedá sa otvoriť nový súbor s predvolenými hodnotami\n" @@ -3039,6 +3032,9 @@ msgstr "%s: %s sa nedá obnoviť: %s (zmeny sú v %s)\n" msgid "%s: failed to find tcb directory for %s\n" msgstr "%s: chybný základný adresár „%s“\n" +#~ msgid "Environment overflow\n" +#~ msgstr "Preplnenie prostredia\n" + #, c-format #~ msgid "%s: cannot change user '%s' on NIS client.\n" #~ msgstr "%s: na NIC klientovi sa nedá zmeniť používateľ „%s“.\n" @@ -3059,6 +3055,10 @@ msgstr "%s: chybný základný adresár „%s“\n" #~ msgid "%s: group %s is a NIS group\n" #~ msgstr "%s: skupina %s je NIS skupinou\n" +#, c-format +#~ msgid "%s: cannot create new defaults file\n" +#~ msgstr "%s: nedá sa vytvoriť nový súbor s predvolenými hodnotami\n" + #, c-format #~ msgid "%s: group '%s' is a NIS group.\n" #~ msgstr "%s: skupina „%s“ je skupinou NIS.\n" diff --git a/po/sq.po b/po/sq.po index f1581f53..0a475b5a 100644 --- a/po/sq.po +++ b/po/sq.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: shadow 4.0.3\n" "Report-Msgid-Bugs-To: pkg-shadow-devel@lists.alioth.debian.org\n" -"POT-Creation-Date: 2024-03-23 18:35-0500\n" +"POT-Creation-Date: 2024-06-21 11:23+0200\n" "PO-Revision-Date: 2004-11-20 03:28+0100\n" "Last-Translator: Elian Myftiu \n" "Language-Team: Albanian \n" @@ -81,9 +81,6 @@ msgstr "" msgid "crypt method not supported by libcrypt? (%s)\n" msgstr "" -msgid "Environment overflow\n" -msgstr "" - #, c-format msgid "You may not change $%s\n" msgstr "" @@ -2069,10 +2066,6 @@ msgstr "Kujdes: grup i panjohur %s\n" msgid "%s: cannot create directory for defaults file\n" msgstr "Kujdes: grup i panjohur %s\n" -#, c-format -msgid "%s: cannot create new defaults file\n" -msgstr "" - #, c-format msgid "%s: cannot open new defaults file\n" msgstr "" diff --git a/po/sv.gmo b/po/sv.gmo index ba47f69653cc1b33d2f907aa975c7d1cf01d269b..8a5531a49e7001dc052dc47ef952079b70f9878c 100644 GIT binary patch delta 10019 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\n" "Language-Team: Swedish \n" @@ -81,9 +81,6 @@ msgstr ": " msgid "crypt method not supported by libcrypt? (%s)\n" msgstr "krypteringsmetoden stöds inte av libcrypt? (%s)\n" -msgid "Environment overflow\n" -msgstr "Överskott av miljövariabler\n" - #, c-format msgid "You may not change $%s\n" msgstr "Du får inte ändra $%s\n" @@ -2319,10 +2316,6 @@ msgstr "%s: kan inte skapa ny standardfil\n" msgid "%s: cannot create directory for defaults file\n" msgstr "%s: kan inte skapa ny standardfil\n" -#, c-format -msgid "%s: cannot create new defaults file\n" -msgstr "%s: kan inte skapa ny standardfil\n" - #, c-format msgid "%s: cannot open new defaults file\n" msgstr "%s: kan inte öppna ny fil med standardvärden\n" @@ -3132,6 +3125,9 @@ msgstr "%s: kan inte återställa %s: %s (dina ändringar finns i %s)\n" msgid "%s: failed to find tcb directory for %s\n" msgstr "%s: misslyckades med att hitta tcb-katalog för %s\n" +#~ msgid "Environment overflow\n" +#~ msgstr "Överskott av miljövariabler\n" + #, c-format #~ msgid "%s: cannot change user '%s' on NIS client.\n" #~ msgstr "%s: kan inte ändra användare \"%s\" på en NIS-klient.\n" @@ -3152,6 +3148,10 @@ msgstr "%s: misslyckades med att hitta tcb-katalog för %s\n" #~ msgid "%s: group %s is a NIS group\n" #~ msgstr "%s: gruppen %s är en NIS-grupp\n" +#, c-format +#~ msgid "%s: cannot create new defaults file\n" +#~ msgstr "%s: kan inte skapa ny standardfil\n" + #, c-format #~ msgid "%s: group '%s' is a NIS group.\n" #~ msgstr "%s: gruppen \"%s\" är en NIS-grupp.\n" diff --git a/po/tl.gmo b/po/tl.gmo index b7b9ab4a0e0cfe9308a67355468a922a6dc00fe9..7750180deb7d1160ca42a1e7e742ef56ab1d36ca 100644 GIT binary patch delta 4243 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 X&{A(XwW`Xcl{LXoT-)ap&h-5slBm5# diff --git a/po/tl.po b/po/tl.po index 89d8c5ba..9a04b6c2 100644 --- a/po/tl.po +++ b/po/tl.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: shadow 4.0.18\n" "Report-Msgid-Bugs-To: pkg-shadow-devel@lists.alioth.debian.org\n" -"POT-Creation-Date: 2024-03-23 18:35-0500\n" +"POT-Creation-Date: 2024-06-21 11:23+0200\n" "PO-Revision-Date: 2007-11-26 21:34+0100\n" "Last-Translator: Eric Pareja \n" "Language-Team: Tagalog \n" @@ -82,9 +82,6 @@ msgstr "" msgid "crypt method not supported by libcrypt? (%s)\n" msgstr "" -msgid "Environment overflow\n" -msgstr "Umapaw ang kapaligiran\n" - #, c-format msgid "You may not change $%s\n" msgstr "Hindi niyo maaaring baguhin ang $%s\n" @@ -2148,10 +2145,6 @@ msgstr "%s: hindi malikha ang bagong talaksan ng mga default\n" msgid "%s: cannot create directory for defaults file\n" msgstr "%s: hindi malikha ang bagong talaksan ng mga default\n" -#, c-format -msgid "%s: cannot create new defaults file\n" -msgstr "%s: hindi malikha ang bagong talaksan ng mga default\n" - #, c-format msgid "%s: cannot open new defaults file\n" msgstr "%s: hindi mabuksan ang bagong talaksan ng mga default\n" @@ -2862,6 +2855,9 @@ msgstr "%s: hindi maibalik ang %s: %s (ang mga pagbabago ay nasa %s)\n" msgid "%s: failed to find tcb directory for %s\n" msgstr "%s: hindi tanggap na batayang directory '%s'\n" +#~ msgid "Environment overflow\n" +#~ msgstr "Umapaw ang kapaligiran\n" + #, c-format #~ msgid "%s: cannot change user '%s' on NIS client.\n" #~ msgstr "%s: hindi mapalitan ang gumagamit '%s' sa NIS client.\n" @@ -2882,6 +2878,10 @@ msgstr "%s: hindi tanggap na batayang directory '%s'\n" #~ msgid "%s: group %s is a NIS group\n" #~ msgstr "%s: ang grupong %s ay grupong NIS\n" +#, c-format +#~ msgid "%s: cannot create new defaults file\n" +#~ msgstr "%s: hindi malikha ang bagong talaksan ng mga default\n" + #, c-format #~ msgid "%s: group '%s' is a NIS group.\n" #~ msgstr "%s: ang grupong '%s' ay grupong NIS.\n" diff --git a/po/tr.gmo b/po/tr.gmo index 67052f9ec7ad2c2f0ac9f3b16817b21da4d453fc..5ec46dda2d6c72eb25a0cdebd7b17feca4123321 100644 GIT binary patch delta 4670 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 diff --git a/po/tr.po b/po/tr.po index 0aa9f4f5..80c5dc41 100644 --- a/po/tr.po +++ b/po/tr.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: shadow 4.0.18\n" "Report-Msgid-Bugs-To: pkg-shadow-devel@lists.alioth.debian.org\n" -"POT-Creation-Date: 2024-03-23 18:35-0500\n" +"POT-Creation-Date: 2024-06-21 11:23+0200\n" "PO-Revision-Date: 2008-03-29 20:31+0200\n" "Last-Translator: Mehmet Türker \n" "Language-Team: Türkçe \n" @@ -83,9 +83,6 @@ msgstr "" msgid "crypt method not supported by libcrypt? (%s)\n" msgstr "kripto medotu libcrypt tarafından desteklenmiyor? (%s)\n" -msgid "Environment overflow\n" -msgstr "Ortam taşması\n" - #, c-format msgid "You may not change $%s\n" msgstr "$%s değiştirilemez\n" @@ -2193,10 +2190,6 @@ msgstr "%s: yeni varsayılanlar dosyası oluşturulamadı\n" msgid "%s: cannot create directory for defaults file\n" msgstr "%s: yeni varsayılanlar dosyası oluşturulamadı\n" -#, c-format -msgid "%s: cannot create new defaults file\n" -msgstr "%s: yeni varsayılanlar dosyası oluşturulamadı\n" - #, c-format msgid "%s: cannot open new defaults file\n" msgstr "%s: yeni varsayılanlar dosyası açılamadı\n" @@ -2950,6 +2943,9 @@ msgstr "%s: %s geri yüklenemiyor: %s (değişiklikleriniz %s içinde)\n" msgid "%s: failed to find tcb directory for %s\n" msgstr "%s: geçersiz ana dizin '%s'\n" +#~ msgid "Environment overflow\n" +#~ msgstr "Ortam taşması\n" + #, c-format #~ msgid "%s: cannot change user '%s' on NIS client.\n" #~ msgstr "%s: kullanıcı `%s' NIS istemcisinde değiştirilemedi.\n" @@ -2970,6 +2966,10 @@ msgstr "%s: geçersiz ana dizin '%s'\n" #~ msgid "%s: group %s is a NIS group\n" #~ msgstr "%s: grup %s bir NIS grubudur\n" +#, c-format +#~ msgid "%s: cannot create new defaults file\n" +#~ msgstr "%s: yeni varsayılanlar dosyası oluşturulamadı\n" + #, c-format #~ msgid "%s: group '%s' is a NIS group.\n" #~ msgstr "%s: grup '%s' bir NIS grubu.\n" diff --git a/po/uk.gmo b/po/uk.gmo index 4a047038d912d95a7d093fcf07a5efea3c13575c..9528c68e2a4d72f169e5f3baf06a5e6d4eed9722 100644 GIT binary patch delta 13395 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 delta 13493 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 bYFY59Jf~uxU2*W#!oqh-9Ecd=3XA+d2s)q( diff --git a/po/uk.po b/po/uk.po index 68a4130e..eb2407e5 100644 --- a/po/uk.po +++ b/po/uk.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: shadow 4.0.18\n" "Report-Msgid-Bugs-To: pkg-shadow-devel@lists.alioth.debian.org\n" -"POT-Creation-Date: 2024-03-23 18:35-0500\n" +"POT-Creation-Date: 2024-06-21 11:23+0200\n" "PO-Revision-Date: 2022-05-16 19:32+0300\n" "Last-Translator: Yuri Chornoivan \n" "Language-Team: Ukrainian \n" @@ -85,9 +85,6 @@ msgstr ": " msgid "crypt method not supported by libcrypt? (%s)\n" msgstr "Підтримку методу шифрування не передбачено у libcrypt? (%s)\n" -msgid "Environment overflow\n" -msgstr "Переповнення середовища\n" - #, c-format msgid "You may not change $%s\n" msgstr "Ви не можете змінити $%s\n" @@ -2344,10 +2341,6 @@ msgstr "%s: не вдалося створити файл із типовими msgid "%s: cannot create directory for defaults file\n" msgstr "%s: не вдалося створити каталог для файла з типовими значеннями\n" -#, c-format -msgid "%s: cannot create new defaults file\n" -msgstr "%s: не вдалося створити файл з типовими значеннями\n" - #, c-format msgid "%s: cannot open new defaults file\n" msgstr "%s: не вдалося відкрити новий файл із типовими значеннями\n" @@ -3176,6 +3169,9 @@ msgstr "%s: не вдалося відновити %s: %s (ваші зміни msgid "%s: failed to find tcb directory for %s\n" msgstr "%s: не вдалося знайти каталог tcb для %s\n" +#~ msgid "Environment overflow\n" +#~ msgstr "Переповнення середовища\n" + #, c-format #~ msgid "%s: cannot change user '%s' on NIS client.\n" #~ msgstr "%s: не вдалося змінити користувача «%s» у клієнті NIS.\n" @@ -3196,6 +3192,10 @@ msgstr "%s: не вдалося знайти каталог tcb для %s\n" #~ msgid "%s: group %s is a NIS group\n" #~ msgstr "%s: група %s є групою NIS\n" +#, c-format +#~ msgid "%s: cannot create new defaults file\n" +#~ msgstr "%s: не вдалося створити файл з типовими значеннями\n" + #, c-format #~ msgid "%s: group '%s' is a NIS group.\n" #~ msgstr "%s: група «%s» є групою NIS.\n" diff --git a/po/vi.gmo b/po/vi.gmo index bfff0e08835380f243467135956a9526141ed5cd..a7d1742dd4e5f29f037973c735e477bf66a67003 100644 GIT binary patch delta 11814 zcmYk>2Xq$28piScA|*g*2_Yec1X3U&2??P}OXwY`5~-p0E=9nlC?H4;y-4wb7gSV2 z4+o~iT9LE=TqX$37LU<6P@EFG81MH5W6&>eAoPdeA1B37is{Jz@ zh>^*T)5>vNXEs4|D$e3?j7@QzbX~>Kwy%7*Wk}IJYwj)ovp; z!aLX)tI_*$ba6bkWmLMr@30{TGd*>&8`kFh&N~Y5Cv1ixHR%NVpiaCRbwxK(Gf}0M z8Q3_~zz^X|=u0Q{F#~nN)%Y_0hRZO$j^m8Ov&h(-c8tQ+3En0ch3AlSIIYvnJ)Dgi z@gdZHKhDPNIg?RWwjFiCii|1^N1@tnvw3-TYTyHqb2?j*Q#f}~GnLYS`PazDH*g#- z!ubZ(aemIKE1QCv;xAAmFU&l@j?-~A=A{?q3y_O+igC8F*b2wsA=Hf4rW2iTChArl zL+-K@)Xa695dQse3i^?Ez+%`Fqj8k2UuNBa z1*zYPzW6Ej#6z||u7l$gC9jNmumR@BrdV9he;Wdx45t?+;%bb+Z!r|_ViFea=r|>? z7OK7tmcb#Y_VX|Tx1;*`0Sn;^JObKZ6w6^1jKZ#%pyz)IK?oIFY=f^+9oAe6NS8DI;x7nHgS6g$iI{6u7y*mEgj6G5HTd^eGz#{0=o%ydqP`tZ& zd>W&!@D0@B+l(6dPSikhaRlB&t%cq_%&i-b8pt9njayM`;Cqa~=cwZ&GR<15hqcH@ zWV+@ATd2?#A3|N>ZPZ8unJ?8Rpz7PB*1!ae#4V^9%tf8(2?klLWMVNAhWHjn6SuB0J0puRV1O>9Els?RY5Z(ua$>thB~0d;~Fn1I7D9amW| zpzeKSU$ds%4g^tDOhP__#>YhHf1`jk>Tn+0}-vuLaE$XQ_fVy?( zP;2KNYNiSfG9NfG7)f3a!}a|4B2dFAsHt0yI^kYhe-1VB`_|CG=0x>Ti>@n1;sn$h zSY`9QsF^*FWzaLk%v2PrzYGlF{LT~tJx;4o1K5Q+;2g%{-AGc!{UHKl`4GddfKV-EV`5iE%pQSBa~F5C?oZ#t-n zI#F*_gXvfbH=-8devHIlQ3v|IX09v&mA6IB;22xK4t3mN)YEhuHSod{%!MQ)x6pN( z6X-pVctb@f|QP_C^hSAZiUv zM@{`Q48j}?#uMmjif$5A!bi42{8Y0B>Y=W#D7Ph84)e zrP~k1GS1hZ6!Mf!8P;1G3PLN0tHp_I}4At>a)M}oB>Tn5a(R_e9 z@JrOpTt;1h&umj)26eCNU@T^$W@@H&J!%c?Mf!7{(*(NWyQoFs_qO>jn0VBQ$D*ce z4r%}!te>GeI)xg@ebk8q=9rnNiaNd}=Eq)G1_z-AJO}gY`Tu~R02NzNQ@a;6@{6bw z=AUbxf=G-ZPe7fxEvns6RJ+Bf6K%2i4y-_)i<+^gsHY`(o;hC}7UKL)DnWCsiwQUz z<8T+M4067CFPvIn{v>k|_1ke76Y(K7#OQ^5X5m0o?w@7;MAHd1qr1@6 z6(1uQgAcF+4qC)?;Q{Q3F^kP7+C*GSei-{=|0U+tn~Q4azm!K52jDCC8MeSu%gj^I z7h94a#fccUocZrVuzb0BB|gWt%nu!h_2Ybux_9-r*gv^o5AtFk@r{5Zkg++zA2V3okM(i*C%nvX8&1O_ zTg|{0Vh26{w+YhN(IDGg>6_S(JQsBjt8Fu%T8mLv^b^*>>f6n#9*b4UKgGB40ctT$ z*rf+nLmxLM{bu>c)xjL z?ZR5*XR$a29Wc*t9LAHUV__VOe)t*|#2J_$7h-2zf&TaqgRsEo%zqw&G6ZTEi`tQd zx_6B*8E0V%=3o-u!gd(;g?YCR$MR~2ahQ#b@H{4B^g*+D+hQT|g{b!L9Ay4$6C9?Z z3g-RNd|uZ?HJF4=aU<%U-NBMr>yVk^cBn=AzV!)KC2xAztdYrBlYAf6#iytN*8Iv` zSf8($f9+U8g|6^Nd=Y)WHut}9UF&%WrYSb@5o!}@&pwChB<5U)7 z$m?Jl_C_tr4c5PHz1tzzd_pb35E|s5ZpDwN1N@GeE9s4X6KMVWxN-RwQ47TK$JG7GF4NP8^TA zbv>~iuE)yw5Oo0+elP>cMDM^*16qeE_^G$vUok7m;EFx%zPp|=pg$G0uqJN6SiFR7(f7KUna-$@&%r?a0(F8jr~%~t&Ab`oQ1xk; zj)So_Zb8k^O>BbEznk10LZB<%fN^*bHR9XY5KG@M_QoXg&6tR1Q0?;HG>>OBj3ytA zWpFtLU=E(dTx3}||G8x@^o`rzTkJaf3Dog5REL3on0ww3HR9J%Q@#Te@D5hQ@H=L; zw?s|tYV3%QuoFQG;}7AxRv48onL$1fMP1`6Ic zx1ugKAb%A#pgpK|zoQmy%mcHgx}oalVK{z+p?Dn=Ilq(VPqR8Jq1HejY=rA<{dG(w z4}E9`+8SGuk3n^O5H&N;QTIIIk?C(JYLTwPWW0i!$-uvCKj>DXVhn+v=S^4^524n= zZ?-<*u~~G<7)gC2T#x|LQ2g@p%7#-dHR_e$(plc$|FXC9x)kV=>IYS~w8(l)Q&!@D|p`qCOt)`=A}> zCGU&zI2bjh94g1@4kwo-XL-v6d_n-FMS^Jx*s(Q8YVoW_-J(-AFIL3d^Jb`aT~PyBfSU517=hPN1IkwvIlt4D;APx~YT#GQ zRtaemc&~aj(Lh3%c5SvX{cM&2Xz6VPH$ zS|meI4VR&&`b+CG98aDaU}ow=)Z_Yt)lKqdJgXvn_`cYx~h^ zGTvjf%b{*RPq7PN-K)CWNUf)`kPp9zq%}J?-sLl$b71&Wxt?ky> zHrk7sl#SHir2Im8-R_Iyn11BV$uHt#TfdxG+ZOT?w9)Uow!Y-EkWT<-F0uFe$C8wy z(LWonT<0Z924xOqwA~Rxyq0(pcE;OyjM9>lk8+s0bre2!z0WN;(e&GqeRU{_#Ca*V zh_(6p@auboK=1RPs4RjHvOMJiTz=M^0GiIEW*g-a<&-^4-!j^!+584^MdG1&5l7-S ztY`O=I{Wp{zqX?E-NWwh{jYX!nAj|fJRDGml0;=m4mgX=C_SkAiK4BIIlvod*|;oi z^An$?Hb3!1VqT5TZEq{S0;toLM%@GxdjGA@zvb9hQeR6uNKR5hDN|`!gfcWMu6#sB zSE4_uoreohuh@HPMTw#mq-cB2er?Mr!)&blGVvP9IVE=c3JYefD<9;Jvn_q8;fKHp zWI&%{2KgV9a+ICq{HS=pNLt_`>a_JC{s3=zGxN_~I8O1<&oEq08(zoWEdkpSjiU57 zb*}Rn!6@6{0dAz!pzNkBqG-!w%_QzZyaHF@Q%VFUI)jnaO-2u;3PsxzN*?w`U-!@QXJO`8~??t(w3bx~R|7PNJ8xO>fZJeF;cU(l^&tx}j&1zaU zBo4|-i4Sng(5E)OjGgt=@>}n0_tx;Dz#qu(Q6eaB+Iq2)vV%H(ibdmll+%<>-RPSkktyg+pvyAD7tJk8}CcPTx$As4L6o4mO6uOCtfP#z`_ri}OxzOZQMBb!KB0VJ z+cYKKN%<>lNJQ5=u@bWEh!Eh{K7Jn^@GGR#NWLa9yLF&Ia=LwQ8mN8OaH%)|iqcOq?{ z;2^wUbJhJpe8A@C$h`2nGWiR%s!1GXTg2e&lrO3Kjgpsm zJf$_Uw%;jxDO$N99Q!4{z&?G)7r>WoyDPYf@++kvAev50w)D delta 11919 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 P{{HX*`Lk1>OfB($@VmEW diff --git a/po/vi.po b/po/vi.po index afac38a4..b3f51f7d 100644 --- a/po/vi.po +++ b/po/vi.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: shadow master\n" "Report-Msgid-Bugs-To: pkg-shadow-devel@lists.alioth.debian.org\n" -"POT-Creation-Date: 2024-03-23 18:35-0500\n" +"POT-Creation-Date: 2024-06-21 11:23+0200\n" "PO-Revision-Date: 2016-10-04 07:07+0700\n" "Last-Translator: Trần Ngọc Quân \n" "Language-Team: Vietnamese \n" @@ -84,9 +84,6 @@ msgstr ": " msgid "crypt method not supported by libcrypt? (%s)\n" msgstr "Phương pháp mã hóa không được thư viện libcrypt hỗ trợ? (%s)\n" -msgid "Environment overflow\n" -msgstr "Tràn môi trường\n" - #, c-format msgid "You may not change $%s\n" msgstr "Không cho phép bạn thay đổi $%s\n" @@ -2361,10 +2358,6 @@ msgstr "%s: không thể tạo tập tin mặc định mới\n" msgid "%s: cannot create directory for defaults file\n" msgstr "%s: không thể tạo tập tin mặc định mới\n" -#, c-format -msgid "%s: cannot create new defaults file\n" -msgstr "%s: không thể tạo tập tin mặc định mới\n" - #, c-format msgid "%s: cannot open new defaults file\n" msgstr "%s: không thể mở tập tin mặc định mới\n" @@ -3174,6 +3167,9 @@ msgstr "%s: không thể phục hồi %s: %s (các thay đổi của bạn nằm msgid "%s: failed to find tcb directory for %s\n" msgstr "%s: gặp lỗi khi tìm thư mục tcb cho %s\n" +#~ msgid "Environment overflow\n" +#~ msgstr "Tràn môi trường\n" + #, c-format #~ msgid "%s: cannot change user '%s' on NIS client.\n" #~ msgstr "%s: không thể thay đổi người dùng “%s” trên ứng dụng khách NIS.\n" @@ -3194,6 +3190,10 @@ msgstr "%s: gặp lỗi khi tìm thư mục tcb cho %s\n" #~ msgid "%s: group %s is a NIS group\n" #~ msgstr "%s: nhóm %s là một nhóm kiểu NIS\n" +#, c-format +#~ msgid "%s: cannot create new defaults file\n" +#~ msgstr "%s: không thể tạo tập tin mặc định mới\n" + #, c-format #~ msgid "%s: group '%s' is a NIS group.\n" #~ msgstr "%s: nhóm “%s” là nhóm kiểu NIS.\n" diff --git a/po/zh_CN.gmo b/po/zh_CN.gmo index 8e5e618836184cca48b45f40c2352e7e63ce974d..813401caec9270d6f9a8da7356807e8a6541301c 100644 GIT binary patch delta 12991 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 diff --git a/po/zh_CN.po b/po/zh_CN.po index 89ff908b..d429d782 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: shadow 4.0.15\n" "Report-Msgid-Bugs-To: pkg-shadow-devel@lists.alioth.debian.org\n" -"POT-Creation-Date: 2024-03-23 18:35-0500\n" +"POT-Creation-Date: 2024-06-21 11:23+0200\n" "PO-Revision-Date: 2022-07-27 23:04+0800\n" "Last-Translator: Celeste Liu \n" "Language-Team: Chinese (simplified) \n" @@ -84,9 +84,6 @@ msgstr ":" msgid "crypt method not supported by libcrypt? (%s)\n" msgstr "libcrypt 不支持此加密方法?(%s)\n" -msgid "Environment overflow\n" -msgstr "环境溢出\n" - #, c-format msgid "You may not change $%s\n" msgstr "您不应该改变 $%s\n" @@ -2188,10 +2185,6 @@ msgstr "%s:无法创建新的默认文件:%s\n" msgid "%s: cannot create directory for defaults file\n" msgstr "%s:无法为默认文件创建目录\n" -#, c-format -msgid "%s: cannot create new defaults file\n" -msgstr "%s:无法创建新的默认文件\n" - #, c-format msgid "%s: cannot open new defaults file\n" msgstr "%s:无法打开新的默认文件\n" @@ -2924,6 +2917,9 @@ msgstr "%s:无法恢复 %s:%s (您的修改在 %s 中)\n" msgid "%s: failed to find tcb directory for %s\n" msgstr "%s:无法为“%s”找到 tcb 目录\n" +#~ msgid "Environment overflow\n" +#~ msgstr "环境溢出\n" + #, c-format #~ msgid "%s: cannot change user '%s' on NIS client.\n" #~ msgstr "%s:不能在 NIS 客户端上修改用户“%s”。\n" @@ -2944,6 +2940,10 @@ msgstr "%s:无法为“%s”找到 tcb 目录\n" #~ msgid "%s: group %s is a NIS group\n" #~ msgstr "%s:%s 组是一个 NIS 组\n" +#, c-format +#~ msgid "%s: cannot create new defaults file\n" +#~ msgstr "%s:无法创建新的默认文件\n" + #, c-format #~ msgid "%s: group '%s' is a NIS group.\n" #~ msgstr "%s:“%s”组是一个 NIS 组。\n" diff --git a/po/zh_TW.gmo b/po/zh_TW.gmo index b45ff2c9cb17e86e22ec8b420c4d1df2317347a0..c4ffca84f0b8d993eb1e54263b95e42e6d66b733 100644 GIT binary patch delta 12187 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 delta 12263 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\n" "Language-Team: Chinese \n" @@ -81,9 +81,6 @@ msgstr ":" msgid "crypt method not supported by libcrypt? (%s)\n" msgstr "libcrypt 不支援該加密方法?(%s)\n" -msgid "Environment overflow\n" -msgstr "環境溢位\n" - #, c-format msgid "You may not change $%s\n" msgstr "您不應變更 $%s\n" @@ -2246,10 +2243,6 @@ msgstr "%s:無法建立新的預設檔案:%s\n" msgid "%s: cannot create directory for defaults file\n" msgstr "%s:無法建立新的預設檔案\n" -#, c-format -msgid "%s: cannot create new defaults file\n" -msgstr "%s:無法建立新的預設檔案\n" - #, c-format msgid "%s: cannot open new defaults file\n" msgstr "%s:無法打開新的預設檔案\n" @@ -3003,6 +2996,9 @@ msgstr "%s:無法復原 %s:%s (您的修改在 %s 中)\n" msgid "%s: failed to find tcb directory for %s\n" msgstr "%s:找不到 %s 的 tcb 目錄\n" +#~ msgid "Environment overflow\n" +#~ msgstr "環境溢位\n" + #, c-format #~ msgid "%s: cannot change user '%s' on NIS client.\n" #~ msgstr "%s:無法在 NIS 客戶端變更使用者「%s」。\n" @@ -3023,6 +3019,10 @@ msgstr "%s:找不到 %s 的 tcb 目錄\n" #~ msgid "%s: group %s is a NIS group\n" #~ msgstr "%s:%s 群組是 NIS 群組\n" +#, c-format +#~ msgid "%s: cannot create new defaults file\n" +#~ msgstr "%s:無法建立新的預設檔案\n" + #, c-format #~ msgid "%s: group '%s' is a NIS group.\n" #~ msgstr "%s:群組「%s」是 NIS 群組。\n" diff --git a/src/Makefile.in b/src/Makefile.in index 9f26971e..f62a5cf8 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -489,6 +489,7 @@ EGREP = @EGREP@ ETAGS = @ETAGS@ EXEEXT = @EXEEXT@ FGREP = @FGREP@ +FILECMD = @FILECMD@ GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ GMSGFMT = @GMSGFMT@ GMSGFMT_015 = @GMSGFMT_015@ diff --git a/src/chage.c b/src/chage.c index 1c4a2017..1edab47f 100644 --- a/src/chage.c +++ b/src/chage.c @@ -27,6 +27,7 @@ #include #include "alloc.h" +#include "atoi/str2i.h" #include "defines.h" #include "memzero.h" #include "prototypes.h" @@ -170,14 +171,14 @@ static int new_fields (void) SNPRINTF(buf, "%ld", mindays); change_field (buf, sizeof buf, _("Minimum Password Age")); - if ( (getlong(buf, &mindays) == -1) + if ( (str2sl(&mindays, buf) == -1) || (mindays < -1)) { return 0; } SNPRINTF(buf, "%ld", maxdays); change_field (buf, sizeof buf, _("Maximum Password Age")); - if ( (getlong(buf, &maxdays) == -1) + if ( (str2sl(&maxdays, buf) == -1) || (maxdays < -1)) { return 0; } @@ -200,14 +201,14 @@ static int new_fields (void) SNPRINTF(buf, "%ld", warndays); change_field (buf, sizeof buf, _("Password Expiration Warning")); - if ( (getlong(buf, &warndays) == -1) + if ( (str2sl(&warndays, buf) == -1) || (warndays < -1)) { return 0; } SNPRINTF(buf, "%ld", inactdays); change_field (buf, sizeof buf, _("Password Inactive")); - if ( (getlong(buf, &inactdays) == -1) + if ( (str2sl(&inactdays, buf) == -1) || (inactdays < -1)) { return 0; } @@ -396,7 +397,7 @@ static void process_flags (int argc, char **argv) break; case 'I': Iflg = true; - if ( (getlong(optarg, &inactdays) == -1) + if ( (str2sl(&inactdays, optarg) == -1) || (inactdays < -1)) { fprintf (stderr, _("%s: invalid numeric argument '%s'\n"), @@ -409,7 +410,7 @@ static void process_flags (int argc, char **argv) break; case 'm': mflg = true; - if ( (getlong(optarg, &mindays) == -1) + if ( (str2sl(&mindays, optarg) == -1) || (mindays < -1)) { fprintf (stderr, _("%s: invalid numeric argument '%s'\n"), @@ -419,7 +420,7 @@ static void process_flags (int argc, char **argv) break; case 'M': Mflg = true; - if ( (getlong(optarg, &maxdays) == -1) + if ( (str2sl(&maxdays, optarg) == -1) || (maxdays < -1)) { fprintf (stderr, _("%s: invalid numeric argument '%s'\n"), @@ -433,7 +434,7 @@ static void process_flags (int argc, char **argv) break; case 'W': Wflg = true; - if ( (getlong(optarg, &warndays) == -1) + if ( (str2sl(&warndays, optarg) == -1) || (warndays < -1)) { fprintf (stderr, _("%s: invalid numeric argument '%s'\n"), diff --git a/src/check_subid_range.c b/src/check_subid_range.c index 5dc0bd7d..68266f55 100644 --- a/src/check_subid_range.c +++ b/src/check_subid_range.c @@ -13,7 +13,7 @@ #include #include -#include "atoi/strtou_noneg.h" +#include "atoi/str2i.h" #include "defines.h" #include "prototypes.h" #include "subordinateio.h" @@ -36,11 +36,9 @@ int main(int argc, char **argv) owner = argv[1]; check_uids = argv[2][0] == 'u'; errno = 0; - start = strtoul_noneg(argv[3], NULL, 10); - if (errno != 0) + if (str2ul(&start, argv[3]) == -1) exit(1); - count = strtoul_noneg(argv[4], NULL, 10); - if (errno != 0) + if (str2ul(&count, argv[4]) == -1) exit(1); if (check_uids) { if (have_sub_uids(owner, start, count)) diff --git a/src/chgpasswd.c b/src/chgpasswd.c index d7ac85c4..1ff6776b 100644 --- a/src/chgpasswd.c +++ b/src/chgpasswd.c @@ -16,11 +16,13 @@ #include #include #include + #ifdef ACCT_TOOLS_SETUID #ifdef USE_PAM #include "pam_defs.h" #endif /* USE_PAM */ #endif /* ACCT_TOOLS_SETUID */ +#include "atoi/str2i.h" #include "defines.h" #include "nscd.h" #include "sssd.h" @@ -33,6 +35,7 @@ #include "exitcodes.h" #include "shadowlog.h" + /* * Global variables */ @@ -195,19 +198,19 @@ static void process_flags (int argc, char **argv) } #if defined(USE_SHA_CRYPT) if ( ( ((0 == strcmp (crypt_method, "SHA256")) || (0 == strcmp (crypt_method, "SHA512"))) - && (-1 == getlong(optarg, &sha_rounds)))) { + && (-1 == str2sl(&sha_rounds, optarg)))) { bad_s = 1; } #endif /* USE_SHA_CRYPT */ #if defined(USE_BCRYPT) if (( (0 == strcmp (crypt_method, "BCRYPT")) - && (-1 == getlong(optarg, &bcrypt_rounds)))) { + && (-1 == str2sl(&bcrypt_rounds, optarg)))) { bad_s = 1; } #endif /* USE_BCRYPT */ #if defined(USE_YESCRYPT) if (( (0 == strcmp (crypt_method, "YESCRYPT")) - && (-1 == getlong(optarg, &yescrypt_cost)))) { + && (-1 == str2sl(&yescrypt_cost, optarg)))) { bad_s = 1; } #endif /* USE_YESCRYPT */ diff --git a/src/chpasswd.c b/src/chpasswd.c index 82338429..79880f56 100644 --- a/src/chpasswd.c +++ b/src/chpasswd.c @@ -16,9 +16,11 @@ #include #include #include + #ifdef USE_PAM #include "pam_defs.h" #endif /* USE_PAM */ +#include "atoi/str2i.h" #include "defines.h" #include "nscd.h" #include "sssd.h" @@ -30,6 +32,7 @@ #include "exitcodes.h" #include "shadowlog.h" + #define IS_CRYPT_METHOD(str) ((crypt_method != NULL && strcmp(crypt_method, str) == 0) ? true : false) /* @@ -190,19 +193,19 @@ static void process_flags (int argc, char **argv) bad_s = 0; #if defined(USE_SHA_CRYPT) if ((IS_CRYPT_METHOD("SHA256") || IS_CRYPT_METHOD("SHA512")) - && (-1 == getlong(optarg, &sha_rounds))) { + && (-1 == str2sl(&sha_rounds, optarg))) { bad_s = 1; } #endif /* USE_SHA_CRYPT */ #if defined(USE_BCRYPT) if (IS_CRYPT_METHOD("BCRYPT") - && (-1 == getlong(optarg, &bcrypt_rounds))) { + && (-1 == str2sl(&bcrypt_rounds, optarg))) { bad_s = 1; } #endif /* USE_BCRYPT */ #if defined(USE_YESCRYPT) if (IS_CRYPT_METHOD("YESCRYPT") - && (-1 == getlong(optarg, &yescrypt_cost))) { + && (-1 == str2sl(&yescrypt_cost, optarg))) { bad_s = 1; } #endif /* USE_YESCRYPT */ diff --git a/src/faillog.c b/src/faillog.c index 61180273..77c25b8a 100644 --- a/src/faillog.c +++ b/src/faillog.c @@ -19,6 +19,7 @@ #include #include +#include "atoi/str2i.h" #include "defines.h" #include "faillog.h" #include "memzero.h" @@ -29,6 +30,7 @@ #include "string/strftime.h" + /* local function prototypes */ NORETURN static void usage (int status); static void print_one (/*@null@*/const struct passwd *pw, bool force); @@ -545,7 +547,7 @@ int main (int argc, char **argv) usage (E_SUCCESS); /*@notreached@*/break; case 'l': - if (getlong(optarg, &fail_locktime) == -1) { + if (str2sl(&fail_locktime, optarg) == -1) { fprintf (stderr, _("%s: invalid numeric argument '%s'\n"), Prog, optarg); @@ -557,7 +559,7 @@ int main (int argc, char **argv) { long lmax; - if ( (getlong(optarg, &lmax) == -1) + if ( (str2sl(&lmax, optarg) == -1) || ((long)(short) lmax != lmax)) { fprintf (stderr, _("%s: invalid numeric argument '%s'\n"), @@ -574,7 +576,7 @@ int main (int argc, char **argv) case 'R': /* no-op, handled in process_root_flag () */ break; case 't': - if (getlong(optarg, &days) == -1) { + if (str2sl(&days, optarg) == -1) { fprintf (stderr, _("%s: invalid numeric argument '%s'\n"), Prog, optarg); diff --git a/src/getsubids.c b/src/getsubids.c index fb645b19..0753abd7 100644 --- a/src/getsubids.c +++ b/src/getsubids.c @@ -44,5 +44,6 @@ int main(int argc, char *argv[]) printf("%d: %s %lu %lu\n", i, owner, ranges[i].start, ranges[i].count); } + free(ranges); return 0; } diff --git a/src/groupmod.c b/src/groupmod.c index a29cf73f..989d7ea3 100644 --- a/src/groupmod.c +++ b/src/groupmod.c @@ -250,8 +250,6 @@ static void grp_update (void) if (!aflg) { // requested to replace the existing groups - if (NULL != grp.gr_mem[0]) - gr_free_members(&grp); grp.gr_mem = XMALLOC(1, char *); grp.gr_mem[0] = NULL; } else { diff --git a/src/lastlog.c b/src/lastlog.c index 74b2faea..3914b72b 100644 --- a/src/lastlog.c +++ b/src/lastlog.c @@ -23,6 +23,7 @@ #include #endif +#include "atoi/str2i.h" #include "defines.h" #include "prototypes.h" #include "getdef.h" @@ -33,6 +34,7 @@ #include "string/strftime.h" + /* * Needed for MkLinux DR1/2/2.1 - J. */ @@ -326,7 +328,7 @@ int main (int argc, char **argv) case 'b': { unsigned long inverse_days; - if (getulong(optarg, &inverse_days) == -1) { + if (str2ul(&inverse_days, optarg) == -1) { fprintf (stderr, _("%s: invalid numeric argument '%s'\n"), Prog, optarg); @@ -354,7 +356,7 @@ int main (int argc, char **argv) case 't': { unsigned long days; - if (getulong(optarg, &days) == -1) { + if (str2ul(&days, optarg) == -1) { fprintf (stderr, _("%s: invalid numeric argument '%s'\n"), Prog, optarg); diff --git a/src/login.c b/src/login.c index a862c6bd..9fed7b38 100644 --- a/src/login.c +++ b/src/login.c @@ -27,6 +27,7 @@ #include "alloc.h" #include "attr.h" +#include "chkname.h" #include "defines.h" #include "faillog.h" #include "failure.h" @@ -573,8 +574,9 @@ int main (int argc, char **argv) } #ifdef RLOGIN if (rflg) { - size_t max_size = sysconf(_SC_LOGIN_NAME_MAX); + size_t max_size; + max_size = login_name_max_size(); assert (NULL == username); username = XMALLOC(max_size, char); username[max_size - 1] = '\0'; @@ -882,8 +884,9 @@ int main (int argc, char **argv) failed = false; /* haven't failed authentication yet */ if (NULL == username) { /* need to get a login id */ - size_t max_size = sysconf(_SC_LOGIN_NAME_MAX); + size_t max_size; + max_size = login_name_max_size(); if (subroot) { closelog (); exit (1); diff --git a/src/newusers.c b/src/newusers.c index bff20b44..0705b579 100644 --- a/src/newusers.c +++ b/src/newusers.c @@ -31,6 +31,7 @@ #include #include "alloc.h" +#include "atoi/str2i.h" #ifdef ACCT_TOOLS_SETUID #ifdef USE_PAM #include "pam_defs.h" @@ -673,19 +674,19 @@ static void process_flags (int argc, char **argv) } #if defined(USE_SHA_CRYPT) if ( ( ((0 == strcmp (crypt_method, "SHA256")) || (0 == strcmp (crypt_method, "SHA512"))) - && (-1 == getlong(optarg, &sha_rounds)))) { + && (-1 == str2sl(&sha_rounds, optarg)))) { bad_s = 1; } #endif /* USE_SHA_CRYPT */ #if defined(USE_BCRYPT) if (( (0 == strcmp (crypt_method, "BCRYPT")) - && (-1 == getlong(optarg, &bcrypt_rounds)))) { + && (-1 == str2sl(&bcrypt_rounds, optarg)))) { bad_s = 1; } #endif /* USE_BCRYPT */ #if defined(USE_YESCRYPT) if (( (0 == strcmp (crypt_method, "YESCRYPT")) - && (-1 == getlong(optarg, &yescrypt_cost)))) { + && (-1 == str2sl(&yescrypt_cost, optarg)))) { bad_s = 1; } #endif /* USE_YESCRYPT */ diff --git a/src/passwd.c b/src/passwd.c index d90bc659..2999a3c8 100644 --- a/src/passwd.c +++ b/src/passwd.c @@ -22,6 +22,7 @@ #include "agetpass.h" #include "alloc.h" +#include "atoi/str2i.h" #include "defines.h" #include "getdef.h" #include "memzero.h" @@ -36,6 +37,7 @@ #include "time/day_to_str.h" + /* * exit status values */ @@ -799,7 +801,7 @@ int main (int argc, char **argv) usage (E_SUCCESS); /*@notreached@*/break; case 'i': - if ( (getlong(optarg, &inact) == -1) + if ( (str2sl(&inact, optarg) == -1) || (inact < -1)) { fprintf (stderr, _("%s: invalid numeric argument '%s'\n"), @@ -818,7 +820,7 @@ int main (int argc, char **argv) anyflag = true; break; case 'n': - if ( (getlong(optarg, &age_min) == -1) + if ( (str2sl(&age_min, optarg) == -1) || (age_min < -1)) { fprintf (stderr, _("%s: invalid numeric argument '%s'\n"), @@ -853,7 +855,7 @@ int main (int argc, char **argv) anyflag = true; break; case 'w': - if ( (getlong(optarg, &warn) == -1) + if ( (str2sl(&warn, optarg) == -1) || (warn < -1)) { (void) fprintf (stderr, _("%s: invalid numeric argument '%s'\n"), @@ -864,7 +866,7 @@ int main (int argc, char **argv) anyflag = true; break; case 'x': - if ( (getlong(optarg, &age_max) == -1) + if ( (str2sl(&age_max, optarg) == -1) || (age_max < -1)) { (void) fprintf (stderr, _("%s: invalid numeric argument '%s'\n"), diff --git a/src/useradd.c b/src/useradd.c index 15e4f160..347334a6 100644 --- a/src/useradd.c +++ b/src/useradd.c @@ -37,6 +37,7 @@ #include #include "alloc.h" +#include "atoi/str2i.h" #include "chkname.h" #include "defines.h" #include "faillog.h" @@ -237,6 +238,9 @@ static void create_home (void); static void create_mail (void); static void check_uid_range(int rflg, uid_t user_id); +static FILE *fmkstemp(char *template); + + /* * fail_exit - undo as much as possible */ @@ -415,7 +419,7 @@ static void get_defaults (void) * Default Password Inactive value */ else if (MATCH (buf, DINACT)) { - if ( (getlong(ccp, &def_inactive) == -1) + if ( (str2sl(&def_inactive, ccp) == -1) || (def_inactive < -1)) { fprintf (stderr, _("%s: invalid numeric argument '%s'\n"), @@ -523,7 +527,6 @@ static void show_defaults (void) */ static int set_defaults (void) { - int ofd; int ret = -1; bool out_group = false; bool out_groups = false; @@ -557,7 +560,7 @@ static int set_defaults (void) fprintf(stderr, _("%s: cannot create new defaults file: %s\n"), Prog, strerror(errno)); - goto setdef_err; + goto err_free_new; } } @@ -566,36 +569,27 @@ static int set_defaults (void) fprintf (stderr, _("%s: cannot create directory for defaults file\n"), Prog); - goto setdef_err; + goto err_free_def; } ret = mkdir(dirname(new_file_dup), 0755); + free(new_file_dup); if (-1 == ret && EEXIST != errno) { fprintf (stderr, _("%s: cannot create directory for defaults file\n"), Prog); - free(new_file_dup); - goto setdef_err; + goto err_free_def; } - free(new_file_dup); /* * Create a temporary file to copy the new output to. */ - ofd = mkstemp (new_file); - if (-1 == ofd) { - fprintf (stderr, - _("%s: cannot create new defaults file\n"), - Prog); - goto setdef_err; - } - - ofp = fdopen (ofd, "w"); + ofp = fmkstemp(new_file); if (NULL == ofp) { fprintf (stderr, _("%s: cannot open new defaults file\n"), Prog); - goto setdef_err; + goto err_free_def; } /* @@ -621,8 +615,9 @@ static int set_defaults (void) fprintf (stderr, _("%s: line too long in %s: %s..."), Prog, default_file, buf); - (void) fclose (ifp); - goto setdef_err; + fclose(ifp); + fclose(ofp); + goto err_free_def; } } @@ -701,9 +696,10 @@ static int set_defaults (void) (void) fflush (ofp); if ( (ferror (ofp) != 0) || (fsync (fileno (ofp)) != 0) - || (fclose (ofp) != 0)) { + || (fclose (ofp) != 0)) + { unlink (new_file); - goto setdef_err; + goto err_free_def; } /* @@ -717,7 +713,7 @@ static int set_defaults (void) _("%s: Cannot create backup file (%s): %s\n"), Prog, buf, strerror (err)); unlink (new_file); - goto setdef_err; + goto err_free_def; } /* @@ -728,7 +724,7 @@ static int set_defaults (void) fprintf (stderr, _("%s: rename: %s: %s\n"), Prog, new_file, strerror (err)); - goto setdef_err; + goto err_free_def; } #ifdef WITH_AUDIT audit_logger (AUDIT_USYS_CONFIG, Prog, @@ -743,11 +739,12 @@ static int set_defaults (void) def_inactive, def_expire, def_template, def_create_mail_spool, def_log_init)); ret = 0; - setdef_err: - free(new_file); - if (prefix[0]) { + +err_free_def: + if (prefix[0]) free(default_file); - } +err_free_new: + free(new_file); return ret; } @@ -856,14 +853,14 @@ static int get_groups (char *list) */ static struct group * get_local_group(char * grp_name) { + char *end; const struct group *grp; struct group *result_grp = NULL; long long gid; - char *endptr; - gid = strtoll (grp_name, &endptr, 10); + gid = strtoll(grp_name, &end, 10); if ( ('\0' != *grp_name) - && ('\0' == *endptr) + && ('\0' == *end) && (ERANGE != errno) && (gid == (gid_t)gid)) { grp = gr_locate_gid (gid); @@ -1301,7 +1298,7 @@ static void process_flags (int argc, char **argv) eflg = true; break; case 'f': - if ( (getlong(optarg, &def_inactive) == -1) + if ( (str2sl(&def_inactive, optarg) == -1) || (def_inactive < -1)) { fprintf (stderr, _("%s: invalid numeric argument '%s'\n"), @@ -2750,3 +2747,23 @@ int main (int argc, char **argv) return E_SUCCESS; } + +static FILE * +fmkstemp(char *template) +{ + int fd; + FILE *fp; + + fd = mkstemp(template); + if (fd == -1) + return NULL; + + fp = fdopen(fd, "w"); + if (fp == NULL) { + close(fd); + unlink(template); + return NULL; + } + + return fp; +} diff --git a/src/usermod.c b/src/usermod.c index dff0487a..f8896984 100644 --- a/src/usermod.c +++ b/src/usermod.c @@ -33,6 +33,7 @@ #include #include "alloc.h" +#include "atoi/str2i.h" #include "chkname.h" #include "defines.h" #include "faillog.h" @@ -177,10 +178,12 @@ NORETURN static void usage (int status); static void new_pwent (struct passwd *); static void new_spent (struct spwd *); NORETURN static void fail_exit (int); -static void update_group (void); +static void update_group_file(void); +static void update_group(const struct group *grp); #ifdef SHADOWGRP -static void update_gshadow (void); +static void update_gshadow_file(void); +static void update_gshadow(const struct sgrp *sgrp); #endif static void grp_update (void); @@ -684,263 +687,277 @@ fail_exit (int code) } -static void update_group (void) +static void +update_group_file(void) { - bool is_member; - bool was_member; - bool changed; - const struct group *grp; - struct group *ngrp; - - changed = false; + const struct group *grp; /* * Scan through the entire group file looking for the groups that * the user is a member of. */ - while ((grp = gr_next ()) != NULL) { - /* - * See if the user specified this group as one of their - * concurrent groups. - */ - was_member = is_on_list (grp->gr_mem, user_name); - is_member = Gflg && ( (was_member && aflg) - || is_on_list (user_groups, grp->gr_name)); + while ((grp = gr_next()) != NULL) + update_group(grp); +} - if (!was_member && !is_member) { - continue; - } - /* - * If rflg+Gflg is passed in AKA -rG invert is_member flag, which removes - * mentioned groups while leaving the others. - */ - if (Gflg && rflg) { - is_member = !is_member; - } +static void +update_group(const struct group *grp) +{ + bool changed; + bool is_member; + bool was_member; + struct group *ngrp; - ngrp = __gr_dup (grp); - if (NULL == ngrp) { - fprintf (stderr, - _("%s: Out of memory. Cannot update %s.\n"), - Prog, gr_dbname ()); - fail_exit (E_GRP_UPDATE); - } + changed = false; - if (was_member) { - if ((!Gflg) || is_member) { - /* User was a member and is still a member - * of this group. - * But the user might have been renamed. - */ - if (lflg) { - ngrp->gr_mem = del_list (ngrp->gr_mem, - user_name); - ngrp->gr_mem = add_list (ngrp->gr_mem, - user_newname); - changed = true; -#ifdef WITH_AUDIT - audit_logger (AUDIT_USER_CHAUTHTOK, Prog, - "changing group member", - user_newname, AUDIT_NO_ID, 1); -#endif - SYSLOG ((LOG_INFO, - "change '%s' to '%s' in group '%s'", - user_name, user_newname, - ngrp->gr_name)); - } - } else { - /* User was a member but is no more a - * member of this group. - */ - ngrp->gr_mem = del_list (ngrp->gr_mem, user_name); + /* + * See if the user specified this group as one of their + * concurrent groups. + */ + was_member = is_on_list (grp->gr_mem, user_name); + is_member = Gflg && ( (was_member && aflg) + || is_on_list (user_groups, grp->gr_name)); + + if (!was_member && !is_member) + return; + + /* + * If rflg+Gflg is passed in AKA -rG invert is_member flag, which removes + * mentioned groups while leaving the others. + */ + if (Gflg && rflg) { + is_member = !is_member; + } + + ngrp = __gr_dup (grp); + if (NULL == ngrp) { + fprintf (stderr, + _("%s: Out of memory. Cannot update %s.\n"), + Prog, gr_dbname ()); + fail_exit (E_GRP_UPDATE); + } + + if (was_member) { + if ((!Gflg) || is_member) { + /* User was a member and is still a member + * of this group. + * But the user might have been renamed. + */ + if (lflg) { + ngrp->gr_mem = del_list (ngrp->gr_mem, + user_name); + ngrp->gr_mem = add_list (ngrp->gr_mem, + user_newname); changed = true; #ifdef WITH_AUDIT audit_logger (AUDIT_USER_CHAUTHTOK, Prog, - "removing group member", - user_name, AUDIT_NO_ID, 1); + "changing group member", + user_newname, AUDIT_NO_ID, 1); #endif SYSLOG ((LOG_INFO, - "delete '%s' from group '%s'", - user_name, ngrp->gr_name)); + "change '%s' to '%s' in group '%s'", + user_name, user_newname, + ngrp->gr_name)); } - } else if (is_member) { - /* User was not a member but is now a member this - * group. + } else { + /* User was a member but is no more a + * member of this group. */ - ngrp->gr_mem = add_list (ngrp->gr_mem, user_newname); + ngrp->gr_mem = del_list (ngrp->gr_mem, user_name); changed = true; #ifdef WITH_AUDIT audit_logger (AUDIT_USER_CHAUTHTOK, Prog, - "adding user to group", - user_name, AUDIT_NO_ID, 1); + "removing group member", + user_name, AUDIT_NO_ID, 1); #endif - SYSLOG ((LOG_INFO, "add '%s' to group '%s'", - user_newname, ngrp->gr_name)); + SYSLOG ((LOG_INFO, + "delete '%s' from group '%s'", + user_name, ngrp->gr_name)); } - if (!changed) { - continue; - } - - changed = false; - if (gr_update (ngrp) == 0) { - fprintf (stderr, - _("%s: failed to prepare the new %s entry '%s'\n"), - Prog, gr_dbname (), ngrp->gr_name); - SYSLOG ((LOG_WARN, "failed to prepare the new %s entry '%s'", gr_dbname (), ngrp->gr_name)); - fail_exit (E_GRP_UPDATE); - } - - gr_free(ngrp); + } else if (is_member) { + /* User was not a member but is now a member this + * group. + */ + ngrp->gr_mem = add_list (ngrp->gr_mem, user_newname); + changed = true; +#ifdef WITH_AUDIT + audit_logger (AUDIT_USER_CHAUTHTOK, Prog, + "adding user to group", + user_name, AUDIT_NO_ID, 1); +#endif + SYSLOG ((LOG_INFO, "add '%s' to group '%s'", + user_newname, ngrp->gr_name)); } + if (!changed) + goto free_ngrp; + + if (gr_update (ngrp) == 0) { + fprintf (stderr, + _("%s: failed to prepare the new %s entry '%s'\n"), + Prog, gr_dbname (), ngrp->gr_name); + SYSLOG ((LOG_WARN, "failed to prepare the new %s entry '%s'", gr_dbname (), ngrp->gr_name)); + fail_exit (E_GRP_UPDATE); + } + +free_ngrp: + gr_free(ngrp); } -#ifdef SHADOWGRP -static void update_gshadow (void) -{ - bool is_member; - bool was_member; - bool was_admin; - bool changed; - const struct sgrp *sgrp; - struct sgrp *nsgrp; - changed = false; +#ifdef SHADOWGRP +static void +update_gshadow_file(void) +{ + const struct sgrp *sgrp; /* * Scan through the entire shadow group file looking for the groups * that the user is a member of. */ - while ((sgrp = sgr_next ()) != NULL) { + while ((sgrp = sgr_next()) != NULL) + update_gshadow(sgrp); +} +#endif /* SHADOWGRP */ - /* - * See if the user was a member of this group + +#ifdef SHADOWGRP +static void +update_gshadow(const struct sgrp *sgrp) +{ + bool changed; + bool is_member; + bool was_member; + bool was_admin; + struct sgrp *nsgrp; + + changed = false; + + /* + * See if the user was a member of this group + */ + was_member = is_on_list (sgrp->sg_mem, user_name); + + /* + * See if the user was an administrator of this group + */ + was_admin = is_on_list (sgrp->sg_adm, user_name); + + /* + * See if the user specified this group as one of their + * concurrent groups. + */ + is_member = Gflg && ( (was_member && aflg) + || is_on_list (user_groups, sgrp->sg_name)); + + if (!was_member && !was_admin && !is_member) + return; + + /* + * If rflg+Gflg is passed in AKA -rG invert is_member, to remove targeted + * groups while leaving the user apart of groups not mentioned + */ + if (Gflg && rflg) { + is_member = !is_member; + } + + nsgrp = __sgr_dup (sgrp); + if (NULL == nsgrp) { + fprintf (stderr, + _("%s: Out of memory. Cannot update %s.\n"), + Prog, sgr_dbname ()); + fail_exit (E_GRP_UPDATE); + } + + if (was_admin && lflg) { + /* User was an admin of this group but the user + * has been renamed. */ - was_member = is_on_list (sgrp->sg_mem, user_name); + nsgrp->sg_adm = del_list (nsgrp->sg_adm, user_name); + nsgrp->sg_adm = add_list (nsgrp->sg_adm, user_newname); + changed = true; +#ifdef WITH_AUDIT + audit_logger (AUDIT_USER_CHAUTHTOK, Prog, + "changing admin name in shadow group", + user_name, AUDIT_NO_ID, 1); +#endif + SYSLOG ((LOG_INFO, + "change admin '%s' to '%s' in shadow group '%s'", + user_name, user_newname, nsgrp->sg_name)); + } - /* - * See if the user was an administrator of this group - */ - was_admin = is_on_list (sgrp->sg_adm, user_name); - - /* - * See if the user specified this group as one of their - * concurrent groups. - */ - is_member = Gflg && ( (was_member && aflg) - || is_on_list (user_groups, sgrp->sg_name)); - - if (!was_member && !was_admin && !is_member) { - continue; - } - - /* - * If rflg+Gflg is passed in AKA -rG invert is_member, to remove targeted - * groups while leaving the user apart of groups not mentioned - */ - if (Gflg && rflg) { - is_member = !is_member; - } - - nsgrp = __sgr_dup (sgrp); - if (NULL == nsgrp) { - fprintf (stderr, - _("%s: Out of memory. Cannot update %s.\n"), - Prog, sgr_dbname ()); - fail_exit (E_GRP_UPDATE); - } - - if (was_admin && lflg) { - /* User was an admin of this group but the user - * has been renamed. + if (was_member) { + if ((!Gflg) || is_member) { + /* User was a member and is still a member + * of this group. + * But the user might have been renamed. */ - nsgrp->sg_adm = del_list (nsgrp->sg_adm, user_name); - nsgrp->sg_adm = add_list (nsgrp->sg_adm, user_newname); - changed = true; -#ifdef WITH_AUDIT - audit_logger (AUDIT_USER_CHAUTHTOK, Prog, - "changing admin name in shadow group", - user_name, AUDIT_NO_ID, 1); -#endif - SYSLOG ((LOG_INFO, - "change admin '%s' to '%s' in shadow group '%s'", - user_name, user_newname, nsgrp->sg_name)); - } - - if (was_member) { - if ((!Gflg) || is_member) { - /* User was a member and is still a member - * of this group. - * But the user might have been renamed. - */ - if (lflg) { - nsgrp->sg_mem = del_list (nsgrp->sg_mem, - user_name); - nsgrp->sg_mem = add_list (nsgrp->sg_mem, - user_newname); - changed = true; -#ifdef WITH_AUDIT - audit_logger (AUDIT_USER_CHAUTHTOK, Prog, - "changing member in shadow group", - user_name, AUDIT_NO_ID, 1); -#endif - SYSLOG ((LOG_INFO, - "change '%s' to '%s' in shadow group '%s'", - user_name, user_newname, - nsgrp->sg_name)); - } - } else { - /* User was a member but is no more a - * member of this group. - */ - nsgrp->sg_mem = del_list (nsgrp->sg_mem, user_name); + if (lflg) { + nsgrp->sg_mem = del_list (nsgrp->sg_mem, + user_name); + nsgrp->sg_mem = add_list (nsgrp->sg_mem, + user_newname); changed = true; #ifdef WITH_AUDIT audit_logger (AUDIT_USER_CHAUTHTOK, Prog, - "removing user from shadow group", - user_name, AUDIT_NO_ID, 1); + "changing member in shadow group", + user_name, AUDIT_NO_ID, 1); #endif SYSLOG ((LOG_INFO, - "delete '%s' from shadow group '%s'", - user_name, nsgrp->sg_name)); + "change '%s' to '%s' in shadow group '%s'", + user_name, user_newname, + nsgrp->sg_name)); } - } else if (is_member) { - /* User was not a member but is now a member this - * group. + } else { + /* User was a member but is no more a + * member of this group. */ - nsgrp->sg_mem = add_list (nsgrp->sg_mem, user_newname); + nsgrp->sg_mem = del_list (nsgrp->sg_mem, user_name); changed = true; #ifdef WITH_AUDIT audit_logger (AUDIT_USER_CHAUTHTOK, Prog, - "adding user to shadow group", - user_newname, AUDIT_NO_ID, 1); + "removing user from shadow group", + user_name, AUDIT_NO_ID, 1); #endif - SYSLOG ((LOG_INFO, "add '%s' to shadow group '%s'", - user_newname, nsgrp->sg_name)); + SYSLOG ((LOG_INFO, + "delete '%s' from shadow group '%s'", + user_name, nsgrp->sg_name)); } - if (!changed) { - continue; - } - - changed = false; - - /* - * Update the group entry to reflect the changes. + } else if (is_member) { + /* User was not a member but is now a member this + * group. */ - if (sgr_update (nsgrp) == 0) { - fprintf (stderr, - _("%s: failed to prepare the new %s entry '%s'\n"), - Prog, sgr_dbname (), nsgrp->sg_name); - SYSLOG ((LOG_WARN, "failed to prepare the new %s entry '%s'", - sgr_dbname (), nsgrp->sg_name)); - fail_exit (E_GRP_UPDATE); - } - - free (nsgrp); + nsgrp->sg_mem = add_list (nsgrp->sg_mem, user_newname); + changed = true; +#ifdef WITH_AUDIT + audit_logger (AUDIT_USER_CHAUTHTOK, Prog, + "adding user to shadow group", + user_newname, AUDIT_NO_ID, 1); +#endif + SYSLOG ((LOG_INFO, "add '%s' to shadow group '%s'", + user_newname, nsgrp->sg_name)); } + if (!changed) + goto free_nsgrp; + + /* + * Update the group entry to reflect the changes. + */ + if (sgr_update (nsgrp) == 0) { + fprintf (stderr, + _("%s: failed to prepare the new %s entry '%s'\n"), + Prog, sgr_dbname (), nsgrp->sg_name); + SYSLOG ((LOG_WARN, "failed to prepare the new %s entry '%s'", + sgr_dbname (), nsgrp->sg_name)); + fail_exit (E_GRP_UPDATE); + } + +free_nsgrp: + free (nsgrp); } #endif /* SHADOWGRP */ + /* * grp_update - add user to secondary group set * @@ -949,10 +966,10 @@ static void update_gshadow (void) */ static void grp_update (void) { - update_group (); + update_group_file(); #ifdef SHADOWGRP if (is_shadow_grp) { - update_gshadow (); + update_gshadow_file(); } #endif } @@ -1061,7 +1078,7 @@ static void process_flags (int argc, char **argv) eflg = true; break; case 'f': - if ( (getlong(optarg, &user_newinactive) == -1) + if ( (str2sl(&user_newinactive, optarg) == -1) || (user_newinactive < -1)) { fprintf (stderr, _("%s: invalid numeric argument '%s'\n"), diff --git a/tests/tests/README b/tests/tests/README new file mode 100644 index 00000000..2e5fdf86 --- /dev/null +++ b/tests/tests/README @@ -0,0 +1,19 @@ +This testsuite is NOT SECURE: it will temporarily change your passwords file +with known passwords. +You should run it on a chroot, or on a secured dedicated system. + + + +To test a Debian system: + $ mkdir sid-chroot + $ sudo debootstrap sid sid-chroot/ http://deb.debian.org/debian/ +edit or copy a sources.list + $ sudo cp /etc/apt/sources.list sid-chroot/etc/apt/ +edit or copy a resolv.conf + $ sudo cp /etc/resolv.conf sid-chroot/etc/ + $ su - root -c "chroot sid-chroot/ /bin/bash" + # mount -t proc proc /proc + # mount -t devpts devpts /dev/pts + # aptitude update + # aptitude install expect + # cd /dev ; mknod --mode=666 /dev/ptmx c 5 2 diff --git a/tests/tests/bug332198-test.exp b/tests/tests/bug332198-test.exp new file mode 100755 index 00000000..fd365bb6 --- /dev/null +++ b/tests/tests/bug332198-test.exp @@ -0,0 +1,61 @@ +#!/usr/bin/expect -f + +# This is a script for repeatedly logging into the localhost +# using `rlogin` in order to apparently see a symptoms described +# in bug #332198. +# As described in the bug log, sometimes `rlogind` will fail to +# establish a connection, because it starts "login" process and +# the latter fails with "unable to determine TTY name, got /dev/pts/1" +# message. +# +# BUGS +# +# * the script rlogins to localhost +# * the script doesn't handle passwdord prompt, because it's intended +# to use .rhosts auth and expects shell prompt immediately after +# `rlogin` +# * the regexp for shell prompt is hardcoded + +log_user 0 +match_max 8192 + +while {1} { + set rlogin_spawn [spawn rlogin localhost] + if { $rlogin_spawn == 0 } { exit 1 } + expect { + -timeout 10 -re "^.*(Last login\[^\r\n\]*).*\n(\[^\r\n\]*\[#$\] )$" { + send_error "$expect_out(1,string)\n" + send_error "$expect_out(2,string)\n" +# send_error "$expect_out(0,string)\n" + } + timeout { + send_error "TIMEOUT/prompt\n" + send_error "$expect_out(buffer)\n" + send_error "RETRYING\n" + log_user 1 + send "tty /\r" + expect -timeout 2 -re "^.*\r?\n(\[^\r\n\]*# )$" {} + send "tty /\r" + expect -timeout 2 -re "^.*\r?\n(\[^\r\n\]*# )$" {} + send_error "\n" + exit 2 + } + } + send "tty\r" + expect { + -timeout 4 -re "tty\r?\n(\[^\r\n\]*)\r?\n(\[^\r\n\]*\[#$\] )$" { + send_error "$expect_out(2,string)$expect_out(1,string)\n" +# send_error "$expect_out(0,string)\n" + } + timeout { send_error "TIMEOUT/tty\n" ; exit 3 } + } + send "exit\r" + expect { + -timeout 2 eof { +# send_error "OK4: EOF\n" + } + timeout { send_error "TIMEOUT/eof\n" ; exit 4 } + } + wait +} +# vi: set sw=4: diff --git a/tests/tests/bug334803-test.exp b/tests/tests/bug334803-test.exp new file mode 100755 index 00000000..19d9334f --- /dev/null +++ b/tests/tests/bug334803-test.exp @@ -0,0 +1,83 @@ +#!/usr/bin/expect -- + +# This is a script for switching to another user and then +# suspending (`suspend -f`) and resuming (`fg`) his shell + +package require cmdline +set opts { + {s.arg "sudo su -" "user switching method"} + {u.arg "" "username to switch to"} +} +set usage ": \[options]\noptions:" +array set conf [::cmdline::getoptions argv $opts $usage] + +log_user 1 +match_max 8192 +expect_after { + timeout { send_error "TIMEOUT\n" ; exit 1 } + eof { send_error "EXITED\n" ; exit 2 } +} +set timeout 2 + +# user switching command, by default `sudo su -` +set swcmd $conf(s) +# ending of typical shell prompt (zsh/sh): +set shpmt "(%|#|\\$) \\Z" +catch {set shpmt $env(EXPECT_PROMPT)} +# initial username: +set user0 [exec id -un] +# user we switch to (with $swcmd), by default initial user +if {$conf(u) != ""} {set swuser $conf(u)} else {set swuser $user0} + +# 1. start shell +spawn bash +expect -re "$shpmt" {} + +# 2. sudo-ing swuser's shell: +send "$swcmd $swuser\r" +expect { + -re "$swuser.*$shpmt" {} + -re "assword: ?\\Z" { + stty -echo + expect_user -timeout -1 -re "(.*)\n" {set swpwd $expect_out(1,string)} + stty echo + send "$swpwd\r" + expect -re "$swuser.*$shpmt" {} + } +} + +# 3. getting pid and ppid of swuser's shell (needed for 5b): +send "echo \$\$:\$PPID\r" +expect -re "(?n)^(\[\[:digit:\]\]*):(\[\[:digit:\]\]*)\r?\n(.*)$shpmt" {} +set swpid $expect_out(1,string) +set swppid $expect_out(2,string) + +#send_error "$user0:$swpid:$swppid\n" + +# 4. suspending swuser's shell (trying to return to parent shell): +send "suspend -f\r" +expect { + -re "$shpmt" { + # 5a. got to parent shell -- resuming swuser's shell by `fg`: + send "fg\r" + set hung no + } + timeout { + # 5b. `suspend -f` has hung -- resuming swuser's shell by SIGCONT: + send_error "kill $swppid\n" + send_error [exec kill -CONT $swppid] + set hung yes + } +} +expect -re "$shpmt" {} + +# 6. exiting [both] shells +#set swstat [wait -nowait] +#send_error [pid]:[exp_pid]:$swstat\n +send "exit\rexit\r" +expect eof {} +#send_error [wait -nowait]\n +#exec kill -KILL -[exp_pid] +if {$hung} {send_error "BUGGY\n" ; exit 3 } + +# vi:set sw=4: diff --git a/tests/tests/chage/01/data/chage1 b/tests/tests/chage/01/data/chage1 new file mode 100644 index 00000000..64754ca5 --- /dev/null +++ b/tests/tests/chage/01/data/chage1 @@ -0,0 +1,7 @@ +Last password change : Jul 27, 2005 +Password expires : never +Password inactive : never +Account expires : never +Minimum number of days between password change : 0 +Maximum number of days between password change : 99999 +Number of days of warning before password expires : 7 diff --git a/tests/tests/chage/01/data/chage2 b/tests/tests/chage/01/data/chage2 new file mode 100644 index 00000000..7efdc0cd --- /dev/null +++ b/tests/tests/chage/01/data/chage2 @@ -0,0 +1,7 @@ +Last password change : Jul 28, 2005 +Password expires : never +Password inactive : never +Account expires : never +Minimum number of days between password change : 1 +Maximum number of days between password change : 99996 +Number of days of warning before password expires : 5 diff --git a/tests/tests/chage/01/data/chage3 b/tests/tests/chage/01/data/chage3 new file mode 100644 index 00000000..a263db9d --- /dev/null +++ b/tests/tests/chage/01/data/chage3 @@ -0,0 +1,7 @@ +Last password change : Jul 27, 2005 +Password expires : never +Password inactive : never +Account expires : Jan 01, 1970 +Minimum number of days between password change : 0 +Maximum number of days between password change : 99999 +Number of days of warning before password expires : 7 diff --git a/tests/tests/chage/01/data/chage4 b/tests/tests/chage/01/data/chage4 new file mode 100644 index 00000000..11e2f2d9 --- /dev/null +++ b/tests/tests/chage/01/data/chage4 @@ -0,0 +1,7 @@ +Last password change : Jul 27, 2005 +Password expires : never +Password inactive : never +Account expires : Jan 02, 1970 +Minimum number of days between password change : 0 +Maximum number of days between password change : 99999 +Number of days of warning before password expires : 7 diff --git a/tests/tests/chage/01/data/chage5 b/tests/tests/chage/01/data/chage5 new file mode 100644 index 00000000..64754ca5 --- /dev/null +++ b/tests/tests/chage/01/data/chage5 @@ -0,0 +1,7 @@ +Last password change : Jul 27, 2005 +Password expires : never +Password inactive : never +Account expires : never +Minimum number of days between password change : 0 +Maximum number of days between password change : 99999 +Number of days of warning before password expires : 7 diff --git a/tests/tests/chage/01/data/chage6 b/tests/tests/chage/01/data/chage6 new file mode 100644 index 00000000..64754ca5 --- /dev/null +++ b/tests/tests/chage/01/data/chage6 @@ -0,0 +1,7 @@ +Last password change : Jul 27, 2005 +Password expires : never +Password inactive : never +Account expires : never +Minimum number of days between password change : 0 +Maximum number of days between password change : 99999 +Number of days of warning before password expires : 7 diff --git a/tests/tests/chage/01/data/chage7 b/tests/tests/chage/01/data/chage7 new file mode 100644 index 00000000..64754ca5 --- /dev/null +++ b/tests/tests/chage/01/data/chage7 @@ -0,0 +1,7 @@ +Last password change : Jul 27, 2005 +Password expires : never +Password inactive : never +Account expires : never +Minimum number of days between password change : 0 +Maximum number of days between password change : 99999 +Number of days of warning before password expires : 7 diff --git a/tests/tests/chage/01/data/chage7b b/tests/tests/chage/01/data/chage7b new file mode 100644 index 00000000..0cea901f --- /dev/null +++ b/tests/tests/chage/01/data/chage7b @@ -0,0 +1,7 @@ +Last password change : Jul 26, 2005 +Password expires : Aug 09, 2005 +Password inactive : Sep 13, 2005 +Account expires : Jul 27, 2012 +Minimum number of days between password change : 13 +Maximum number of days between password change : 14 +Number of days of warning before password expires : 9 diff --git a/tests/tests/chage/01/data/chage8 b/tests/tests/chage/01/data/chage8 new file mode 100644 index 00000000..25151a28 --- /dev/null +++ b/tests/tests/chage/01/data/chage8 @@ -0,0 +1 @@ +chage: user 'myuser8' does not exist in /etc/passwd diff --git a/tests/tests/chage/01/data/group b/tests/tests/chage/01/data/group new file mode 100644 index 00000000..245cc9cf --- /dev/null +++ b/tests/tests/chage/01/data/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: diff --git a/tests/tests/chage/01/data/gshadow b/tests/tests/chage/01/data/gshadow new file mode 100644 index 00000000..25bd55bd --- /dev/null +++ b/tests/tests/chage/01/data/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: diff --git a/tests/tests/chage/01/data/passwd b/tests/tests/chage/01/data/passwd new file mode 100644 index 00000000..5d27e129 --- /dev/null +++ b/tests/tests/chage/01/data/passwd @@ -0,0 +1,26 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser1:x:424242:424242::/home:/bin/bash +myuser2:x:424243:424242::/home:/bin/bash +myuser3:x:424244:424242::/home:/bin/bash +myuser4:x:424245:424242::/home:/bin/bash +myuser5:x:424246:424242::/home:/bin/bash +myuser6:x:424247:424242::/home:/bin/bash +myuser7:x:424248:424242::/home:/bin/bash diff --git a/tests/tests/chage/01/data/shadow b/tests/tests/chage/01/data/shadow new file mode 100644 index 00000000..da4c2bc4 --- /dev/null +++ b/tests/tests/chage/01/data/shadow @@ -0,0 +1,26 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser1:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: +myuser2:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12992:1:99996:5::: +myuser3:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::0: +myuser4:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::1: +myuser5:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:0:: +myuser6:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: +myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: diff --git a/tests/tests/chage/01/data/usage b/tests/tests/chage/01/data/usage new file mode 100644 index 00000000..19177f7b --- /dev/null +++ b/tests/tests/chage/01/data/usage @@ -0,0 +1,16 @@ +Usage: chage [options] LOGIN + +Options: + -d, --lastday LAST_DAY set date of last password change to LAST_DAY + -E, --expiredate EXPIRE_DATE set account expiration date to EXPIRE_DATE + -h, --help display this help message and exit + -I, --inactive INACTIVE set password inactive after expiration + to INACTIVE + -l, --list show account aging information + -m, --mindays MIN_DAYS set minimum number of days before password + change to MIN_DAYS + -M, --maxdays MAX_DAYS set maximum number of days before password + change to MAX_DAYS + -R, --root CHROOT_DIR directory to chroot into + -W, --warndays WARN_DAYS set expiration warning days to WARN_DAYS + diff --git a/tests/tests/chage/01/run b/tests/tests/chage/01/run new file mode 100755 index 00000000..4434fcff --- /dev/null +++ b/tests/tests/chage/01/run @@ -0,0 +1,206 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +# Rational: +# Test chage options + +# no testsuite password +# root password: rootF00barbaz +# myuser password: myuserF00barbaz + +save() +{ + [ ! -d tmp ] && mkdir tmp + for i in passwd group shadow gshadow + do + [ -f /etc/$i ] && cp /etc/$i tmp/$i + [ -f /etc/$i- ] && cp /etc/$i- tmp/$i- + done + + true +} + +restore() +{ + for i in passwd group shadow gshadow + do + [ -f tmp/$i ] && cp tmp/$i /etc/$i && rm tmp/$i + [ -f tmp/$i- ] && cp tmp/$i- /etc/$i- && rm tmp/$i- + done + rm -f tmp/out + rmdir tmp +} + +save + +# restore the files on exit +trap 'if [ "$?" != "0" ]; then echo "FAIL"; fi; restore' 0 + +for i in passwd group shadow gshadow +do + cp data/$i /etc +done + +echo -n "testing option -l" +chage -l myuser1 > tmp/out +diff -au data/chage1 tmp/out +echo -n . +chage -l myuser2 > tmp/out +diff -au data/chage2 tmp/out +echo -n . +chage -l myuser3 > tmp/out +diff -au data/chage3 tmp/out +echo -n . +chage -l myuser4 > tmp/out +diff -au data/chage4 tmp/out +echo -n . +chage -l myuser5 > tmp/out +diff -au data/chage5 tmp/out +echo -n . +chage -l myuser6 > tmp/out +diff -au data/chage6 tmp/out +echo -n . +chage --list myuser7 > tmp/out +diff -au data/chage7 tmp/out +echo -n . +msg=$(chage -l myuser8 2> tmp/out) || err=$? +[ "$err" = "1" ] && [ "$msg" = "" ] || exit 1 +diff -au data/chage8 tmp/out +echo . + +echo "testing option -d" +chage -d 2001-10-02 myuser7 +ent=$(getent shadow myuser7) +[ "$ent" = 'myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:11597:0:99999:7:1::' ] || exit 1 +echo "testing option -d -1" +chage -d -1 myuser7 +ent=$(getent shadow myuser7) +[ "$ent" = 'myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.::0:99999:7:1::' ] || exit 1 +echo "testing option -d 0" +chage -d 0 myuser7 +ent=$(getent shadow myuser7) +[ "$ent" = 'myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:0:0:99999:7:1::' ] || exit 1 +echo "testing option --lastday" +chage --lastday 2011-11-02 myuser7 +ent=$(getent shadow myuser7) +[ "$ent" = 'myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:15280:0:99999:7:1::' ] || exit 1 + +echo "testing option -E" +chage -E 2010-10-02 myuser7 +ent=$(getent shadow myuser7) +[ "$ent" = 'myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:15280:0:99999:7:1:14884:' ] || exit 1 +echo "testing option -E -1" +chage -E -1 myuser7 +ent=$(getent shadow myuser7) +[ "$ent" = 'myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:15280:0:99999:7:1::' ] || exit 1 +echo "testing option -E 0" +chage -E 0 myuser7 +ent=$(getent shadow myuser7) +[ "$ent" = 'myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:15280:0:99999:7:1:0:' ] || exit 1 +echo "testing option --expiredate" +chage --expiredate 2020-02-02 myuser7 +ent=$(getent shadow myuser7) +[ "$ent" = 'myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:15280:0:99999:7:1:18294:' ] || exit 1 + +echo "testing option -I" +# NOTE: I could pass a date to -I +chage -I 42 myuser7 +ent=$(getent shadow myuser7) +[ "$ent" = 'myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:15280:0:99999:7:42:18294:' ] || exit 1 +echo "testing option -I -1" +# NOTE: this behavior is not documented +chage -I -1 myuser7 +ent=$(getent shadow myuser7) +[ "$ent" = 'myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:15280:0:99999:7::18294:' ] || exit 1 +echo "testing option -I 0" +# NOTE: We should check that this is the expected behavior +chage -I 0 myuser7 +ent=$(getent shadow myuser7) +[ "$ent" = 'myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:15280:0:99999:7:0:18294:' ] || exit 1 +echo "testing option --inactive" +chage --inactive 12 myuser7 +ent=$(getent shadow myuser7) +[ "$ent" = 'myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:15280:0:99999:7:12:18294:' ] || exit 1 + +echo "testing option -m" +chage -m 24 myuser7 +ent=$(getent shadow myuser7) +[ "$ent" = 'myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:15280:24:99999:7:12:18294:' ] || exit 1 +echo "testing option -m -1" +# NOTE: this behavior is not documented +chage -m -1 myuser7 +ent=$(getent shadow myuser7) +[ "$ent" = 'myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:15280::99999:7:12:18294:' ] || exit 1 +echo "testing option -m 0" +chage -m 0 myuser7 +ent=$(getent shadow myuser7) +[ "$ent" = 'myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:15280:0:99999:7:12:18294:' ] || exit 1 +echo "testing option --mindays" +chage --min 1 myuser7 +# NOTE: that shouldn't have work +ent=$(getent shadow myuser7) +[ "$ent" = 'myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:15280:1:99999:7:12:18294:' ] || exit 1 + +echo "testing option -M" +chage -M 25 myuser7 +ent=$(getent shadow myuser7) +[ "$ent" = 'myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:15280:1:25:7:12:18294:' ] || exit 1 +echo "testing option -M -1" +# NOTE: this behavior is not documented +chage -M -1 myuser7 +ent=$(getent shadow myuser7) +[ "$ent" = 'myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:15280:1::7:12:18294:' ] || exit 1 +echo "testing option -M 0" +chage -M 0 myuser7 +ent=$(getent shadow myuser7) +[ "$ent" = 'myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:15280:1:0:7:12:18294:' ] || exit 1 +echo "testing option --maxdays" +chage --max 2 myuser7 +ent=$(getent shadow myuser7) +[ "$ent" = 'myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:15280:1:2:7:12:18294:' ] || exit 1 + +echo "testing option -W" +chage -W 26 myuser7 +ent=$(getent shadow myuser7) +[ "$ent" = 'myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:15280:1:2:26:12:18294:' ] || exit 1 +echo "testing option -W -1" +# NOTE: this behavior is not documented +chage -W -1 myuser7 +ent=$(getent shadow myuser7) +[ "$ent" = 'myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:15280:1:2::12:18294:' ] || exit 1 +echo "testing option -W 0" +chage -W 0 myuser7 +ent=$(getent shadow myuser7) +[ "$ent" = 'myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:15280:1:2:0:12:18294:' ] || exit 1 +echo "testing option --warndays" +chage --warndays 3 myuser7 +ent=$(getent shadow myuser7) +[ "$ent" = 'myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:15280:1:2:3:12:18294:' ] || exit 1 + +echo "testing with all options" +chage -d 2030-03-02 -E 1979-11-24 -I 10 -m 11 -M 12 --warndays 4 myuser7 +ent=$(getent shadow myuser7) +[ "$ent" = 'myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:21975:11:12:4:10:3614:' ] || exit 1 + +echo "interactive test" +./run1.exp +ent=$(getent shadow myuser7) +[ "$ent" = 'myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12990:13:14:9:35:15548:' ] || exit 1 + +echo "interactive test (default)" +./run2.exp +ent=$(getent shadow myuser7) +[ "$ent" = 'myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12990:13:14:9:35:15548:' ] || exit 1 +chage -l myuser7 > tmp/out +diff -au data/chage7b tmp/out + +echo "usage" +chage -h > tmp/out || { + if [ "$?" != "2" ]; then false; fi +} +diff -au data/usage tmp/out + +echo "OK" diff --git a/tests/tests/chage/01/run1.exp b/tests/tests/chage/01/run1.exp new file mode 100755 index 00000000..0160fb15 --- /dev/null +++ b/tests/tests/chage/01/run1.exp @@ -0,0 +1,31 @@ +#!/usr/bin/expect + +set timeout 5 + +# I've not been able to put the opening bracket in the regular expressions +# If anyone knows... + +spawn /usr/bin/chage myuser7 +expect -re "Minimum Password Age .11\]: " +send "13\r" +expect -re "Maximum Password Age .12\]: " +send "14\r" +expect -re "Last Password Change \[(]YYYY-MM-DD\[)] .2030-03-02\]: " +send "2005-07-26\r" +expect -re "Password Expiration Warning .4\]: " +send "9\r" +expect -re "Password Inactive .10\]: " +send "35\r" +expect -re "Account Expiration Date \[(]YYYY-MM-DD\[)] .1979-11-24\]: " +send "2012-07-27\r" +expect { + eof { + } default { + puts "\nFAIL" + exit 1 + } +} + +puts "\nPASS" +exit 0 + diff --git a/tests/tests/chage/01/run2.exp b/tests/tests/chage/01/run2.exp new file mode 100755 index 00000000..f4f342fb --- /dev/null +++ b/tests/tests/chage/01/run2.exp @@ -0,0 +1,31 @@ +#!/usr/bin/expect + +set timeout 5 + +# I've not been able to put the opening bracket in the regular expressions +# If anyone knows... + +spawn /usr/bin/chage myuser7 +expect -re "Minimum Password Age .13\]: " +send "\r" +expect -re "Maximum Password Age .14\]: " +send "\r" +expect -re "Last Password Change \[(]YYYY-MM-DD\[)] .2005-07-26\]: " +send "\r" +expect -re "Password Expiration Warning .9\]: " +send "\r" +expect -re "Password Inactive .35\]: " +send "\r" +expect -re "Account Expiration Date \[(]YYYY-MM-DD\[)] .2012-07-27\]: " +send "\r" +expect { + eof { + } default { + puts "\nFAIL" + exit 1 + } +} + +puts "\nPASS" +exit 0 + diff --git a/tests/tests/chage/02/data/group b/tests/tests/chage/02/data/group new file mode 100644 index 00000000..245cc9cf --- /dev/null +++ b/tests/tests/chage/02/data/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: diff --git a/tests/tests/chage/02/data/gshadow b/tests/tests/chage/02/data/gshadow new file mode 100644 index 00000000..25bd55bd --- /dev/null +++ b/tests/tests/chage/02/data/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: diff --git a/tests/tests/chage/02/data/passwd b/tests/tests/chage/02/data/passwd new file mode 100644 index 00000000..5bec3749 --- /dev/null +++ b/tests/tests/chage/02/data/passwd @@ -0,0 +1,20 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser:x:424248:424242::/home:/bin/bash diff --git a/tests/tests/chage/02/data/shadow b/tests/tests/chage/02/data/shadow new file mode 100644 index 00000000..038d5cf4 --- /dev/null +++ b/tests/tests/chage/02/data/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: diff --git a/tests/tests/chage/02/run b/tests/tests/chage/02/run new file mode 100755 index 00000000..a792f0cc --- /dev/null +++ b/tests/tests/chage/02/run @@ -0,0 +1,50 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +# Rational: +# Test chage with bogus inputs + +# no testsuite password +# root password: rootF00barbaz +# myuser password: myuserF00barbaz + +save() +{ + [ ! -d tmp ] && mkdir tmp + for i in passwd group shadow gshadow + do + [ -f /etc/$i ] && cp /etc/$i tmp/$i + [ -f /etc/$i- ] && cp /etc/$i- tmp/$i- + done + + true +} + +restore() +{ + for i in passwd group shadow gshadow + do + [ -f tmp/$i ] && cp tmp/$i /etc/$i && rm tmp/$i + [ -f tmp/$i- ] && cp tmp/$i- /etc/$i- && rm tmp/$i- + done + rm -f tmp/out + rmdir tmp +} + +save + +# restore the files on exit +trap 'if [ "$?" != "0" ]; then echo "FAIL"; fi; restore' 0 + +for i in passwd group shadow gshadow +do + cp data/$i /etc +done + +echo "interactive test" +./run.exp $(date "+%Y-%m-%d") + +echo "OK" diff --git a/tests/tests/chage/02/run.exp b/tests/tests/chage/02/run.exp new file mode 100755 index 00000000..0dbb27d0 --- /dev/null +++ b/tests/tests/chage/02/run.exp @@ -0,0 +1,83 @@ +#!/usr/bin/expect + +set timeout 5 + +proc expect_error {} { + expect { + "chage: error changing fields" { + expect { + eof { + } default { + puts "\nFAIL" + exit 1 + } + } + } default { + puts "\nFAIL" + exit 1 + } + } +} + + +# I've not been able to put the opening bracket in the regular expressions +# If anyone knows... + +spawn /usr/bin/chage myuser +expect -re "Minimum Password Age .0\]: " +send -- "-2\r" +expect_error + +spawn /usr/bin/chage myuser +expect -re "Minimum Password Age .0\]: " +send "foo\r" +expect_error + +# chage accepts to be given only spaces +#spawn /usr/bin/chage myuser +#expect -re "Minimum Password Age .0\]: " +#send -- " \r" +#expect_error +# +#chage may not parse all the arguments. +#This may be a problem is a date is provided instead of just a number +#spawn /usr/bin/chage myuser +#expect -re "Minimum Password Age .0\]: " +#send -- "1 2\r" +#expect_error + +spawn /usr/bin/chage myuser +expect -re "Minimum Password Age .0\]: " +send "11\r" +expect -re "Maximum Password Age .99999\]: " +send -- "-2\r" +expect_error + +spawn /usr/bin/chage myuser +expect -re "Minimum Password Age .0\]: " +send "\r" +expect -re "Maximum Password Age .99999\]: " +send "foo\r" +expect_error + +# chage should verify the range of the arguments +#spawn /usr/bin/chage myuser +#expect -re "Minimum Password Age .0\]: " +#send "\r" +#expect -re "Maximum Password Age .99999\]: " +#send "100000\r" +#expect_error + +#spawn /usr/bin/chage myuser +#expect -re "Minimum Password Age .0\]: " +#send "\r" +#expect -re "Maximum Password Age .99999\]: " +#send "\r" +#expect -re "Last Password Change \[(]YYYY-MM-DD\[)] .2005-07-25]: " +#send "12\n" +#expect_error + + +puts "\nPASS" +exit 0 + diff --git a/tests/tests/chage/03_chsh_usage/chage.test b/tests/tests/chage/03_chsh_usage/chage.test new file mode 100755 index 00000000..db6200c5 --- /dev/null +++ b/tests/tests/chage/03_chsh_usage/chage.test @@ -0,0 +1,48 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../common/config.sh +. ../../common/log.sh + +log_start "$0" "chage can display its usage message" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "Get chage usage (chage -h)..." +chage -h >tmp/usage.out +echo "OK" + +echo "chage reported:" +echo "=======================================================================" +cat tmp/usage.out +echo "=======================================================================" +echo -n "Check the usage message..." +diff -au data/usage.out tmp/usage.out +echo "usage message OK." +rm -f tmp/usage.out + +echo -n "Check the passwd file..." +../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chage/03_chsh_usage/config.txt b/tests/tests/chage/03_chsh_usage/config.txt new file mode 100644 index 00000000..e69de29b diff --git a/tests/tests/chage/03_chsh_usage/config/etc/group b/tests/tests/chage/03_chsh_usage/config/etc/group new file mode 100644 index 00000000..245cc9cf --- /dev/null +++ b/tests/tests/chage/03_chsh_usage/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: diff --git a/tests/tests/chage/03_chsh_usage/config/etc/gshadow b/tests/tests/chage/03_chsh_usage/config/etc/gshadow new file mode 100644 index 00000000..25bd55bd --- /dev/null +++ b/tests/tests/chage/03_chsh_usage/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: diff --git a/tests/tests/chage/03_chsh_usage/config/etc/passwd b/tests/tests/chage/03_chsh_usage/config/etc/passwd new file mode 100644 index 00000000..5d27e129 --- /dev/null +++ b/tests/tests/chage/03_chsh_usage/config/etc/passwd @@ -0,0 +1,26 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser1:x:424242:424242::/home:/bin/bash +myuser2:x:424243:424242::/home:/bin/bash +myuser3:x:424244:424242::/home:/bin/bash +myuser4:x:424245:424242::/home:/bin/bash +myuser5:x:424246:424242::/home:/bin/bash +myuser6:x:424247:424242::/home:/bin/bash +myuser7:x:424248:424242::/home:/bin/bash diff --git a/tests/tests/chage/03_chsh_usage/config/etc/shadow b/tests/tests/chage/03_chsh_usage/config/etc/shadow new file mode 100644 index 00000000..da4c2bc4 --- /dev/null +++ b/tests/tests/chage/03_chsh_usage/config/etc/shadow @@ -0,0 +1,26 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser1:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: +myuser2:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12992:1:99996:5::: +myuser3:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::0: +myuser4:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::1: +myuser5:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:0:: +myuser6:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: +myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: diff --git a/tests/tests/chage/03_chsh_usage/data/usage.out b/tests/tests/chage/03_chsh_usage/data/usage.out new file mode 100644 index 00000000..19177f7b --- /dev/null +++ b/tests/tests/chage/03_chsh_usage/data/usage.out @@ -0,0 +1,16 @@ +Usage: chage [options] LOGIN + +Options: + -d, --lastday LAST_DAY set date of last password change to LAST_DAY + -E, --expiredate EXPIRE_DATE set account expiration date to EXPIRE_DATE + -h, --help display this help message and exit + -I, --inactive INACTIVE set password inactive after expiration + to INACTIVE + -l, --list show account aging information + -m, --mindays MIN_DAYS set minimum number of days before password + change to MIN_DAYS + -M, --maxdays MAX_DAYS set maximum number of days before password + change to MAX_DAYS + -R, --root CHROOT_DIR directory to chroot into + -W, --warndays WARN_DAYS set expiration warning days to WARN_DAYS + diff --git a/tests/tests/chage/04_chsh_usage_invalid_option/chage.test b/tests/tests/chage/04_chsh_usage_invalid_option/chage.test new file mode 100755 index 00000000..1ba81630 --- /dev/null +++ b/tests/tests/chage/04_chsh_usage_invalid_option/chage.test @@ -0,0 +1,54 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../common/config.sh +. ../../common/log.sh + +log_start "$0" "chage displays its usage message when an invalid option is used" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "Use chage with an invalid option (chage -Z bin)..." +chage -Z bin 2>tmp/usage.out && exit 1 || { + status=$? +} +echo "OK" + +echo -n "Check returned status ($status)..." +test "$status" = "2" +echo "OK" + +echo "chage reported:" +echo "=======================================================================" +cat tmp/usage.out +echo "=======================================================================" +echo -n "Check the usage message..." +diff -au data/usage.out tmp/usage.out +echo "usage message OK." +rm -f tmp/usage.out + +echo -n "Check the passwd file..." +../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chage/04_chsh_usage_invalid_option/config.txt b/tests/tests/chage/04_chsh_usage_invalid_option/config.txt new file mode 100644 index 00000000..e69de29b diff --git a/tests/tests/chage/04_chsh_usage_invalid_option/config/etc/group b/tests/tests/chage/04_chsh_usage_invalid_option/config/etc/group new file mode 100644 index 00000000..245cc9cf --- /dev/null +++ b/tests/tests/chage/04_chsh_usage_invalid_option/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: diff --git a/tests/tests/chage/04_chsh_usage_invalid_option/config/etc/gshadow b/tests/tests/chage/04_chsh_usage_invalid_option/config/etc/gshadow new file mode 100644 index 00000000..25bd55bd --- /dev/null +++ b/tests/tests/chage/04_chsh_usage_invalid_option/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: diff --git a/tests/tests/chage/04_chsh_usage_invalid_option/config/etc/passwd b/tests/tests/chage/04_chsh_usage_invalid_option/config/etc/passwd new file mode 100644 index 00000000..5d27e129 --- /dev/null +++ b/tests/tests/chage/04_chsh_usage_invalid_option/config/etc/passwd @@ -0,0 +1,26 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser1:x:424242:424242::/home:/bin/bash +myuser2:x:424243:424242::/home:/bin/bash +myuser3:x:424244:424242::/home:/bin/bash +myuser4:x:424245:424242::/home:/bin/bash +myuser5:x:424246:424242::/home:/bin/bash +myuser6:x:424247:424242::/home:/bin/bash +myuser7:x:424248:424242::/home:/bin/bash diff --git a/tests/tests/chage/04_chsh_usage_invalid_option/config/etc/shadow b/tests/tests/chage/04_chsh_usage_invalid_option/config/etc/shadow new file mode 100644 index 00000000..da4c2bc4 --- /dev/null +++ b/tests/tests/chage/04_chsh_usage_invalid_option/config/etc/shadow @@ -0,0 +1,26 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser1:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: +myuser2:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12992:1:99996:5::: +myuser3:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::0: +myuser4:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::1: +myuser5:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:0:: +myuser6:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: +myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: diff --git a/tests/tests/chage/04_chsh_usage_invalid_option/data/usage.out b/tests/tests/chage/04_chsh_usage_invalid_option/data/usage.out new file mode 100644 index 00000000..4428283d --- /dev/null +++ b/tests/tests/chage/04_chsh_usage_invalid_option/data/usage.out @@ -0,0 +1,17 @@ +chage: invalid option -- 'Z' +Usage: chage [options] LOGIN + +Options: + -d, --lastday LAST_DAY set date of last password change to LAST_DAY + -E, --expiredate EXPIRE_DATE set account expiration date to EXPIRE_DATE + -h, --help display this help message and exit + -I, --inactive INACTIVE set password inactive after expiration + to INACTIVE + -l, --list show account aging information + -m, --mindays MIN_DAYS set minimum number of days before password + change to MIN_DAYS + -M, --maxdays MAX_DAYS set maximum number of days before password + change to MAX_DAYS + -R, --root CHROOT_DIR directory to chroot into + -W, --warndays WARN_DAYS set expiration warning days to WARN_DAYS + diff --git a/tests/tests/chage/05_chsh_usage_2_users/chage.test b/tests/tests/chage/05_chsh_usage_2_users/chage.test new file mode 100755 index 00000000..5860393c --- /dev/null +++ b/tests/tests/chage/05_chsh_usage_2_users/chage.test @@ -0,0 +1,54 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../common/config.sh +. ../../common/log.sh + +log_start "$0" "chage displays its usage message when 2 users are provided" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "Use chage with 2 users (chage -I 12 bin nobody)..." +chage -I 12 bin nobody 2>tmp/usage.out && exit 1 || { + status=$? +} +echo "OK" + +echo -n "Check returned status ($status)..." +test "$status" = "2" +echo "OK" + +echo "chage reported:" +echo "=======================================================================" +cat tmp/usage.out +echo "=======================================================================" +echo -n "Check the usage message..." +diff -au data/usage.out tmp/usage.out +echo "usage message OK." +rm -f tmp/usage.out + +echo -n "Check the passwd file..." +../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chage/05_chsh_usage_2_users/config.txt b/tests/tests/chage/05_chsh_usage_2_users/config.txt new file mode 100644 index 00000000..e69de29b diff --git a/tests/tests/chage/05_chsh_usage_2_users/config/etc/group b/tests/tests/chage/05_chsh_usage_2_users/config/etc/group new file mode 100644 index 00000000..245cc9cf --- /dev/null +++ b/tests/tests/chage/05_chsh_usage_2_users/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: diff --git a/tests/tests/chage/05_chsh_usage_2_users/config/etc/gshadow b/tests/tests/chage/05_chsh_usage_2_users/config/etc/gshadow new file mode 100644 index 00000000..25bd55bd --- /dev/null +++ b/tests/tests/chage/05_chsh_usage_2_users/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: diff --git a/tests/tests/chage/05_chsh_usage_2_users/config/etc/passwd b/tests/tests/chage/05_chsh_usage_2_users/config/etc/passwd new file mode 100644 index 00000000..5d27e129 --- /dev/null +++ b/tests/tests/chage/05_chsh_usage_2_users/config/etc/passwd @@ -0,0 +1,26 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser1:x:424242:424242::/home:/bin/bash +myuser2:x:424243:424242::/home:/bin/bash +myuser3:x:424244:424242::/home:/bin/bash +myuser4:x:424245:424242::/home:/bin/bash +myuser5:x:424246:424242::/home:/bin/bash +myuser6:x:424247:424242::/home:/bin/bash +myuser7:x:424248:424242::/home:/bin/bash diff --git a/tests/tests/chage/05_chsh_usage_2_users/config/etc/shadow b/tests/tests/chage/05_chsh_usage_2_users/config/etc/shadow new file mode 100644 index 00000000..da4c2bc4 --- /dev/null +++ b/tests/tests/chage/05_chsh_usage_2_users/config/etc/shadow @@ -0,0 +1,26 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser1:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: +myuser2:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12992:1:99996:5::: +myuser3:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::0: +myuser4:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::1: +myuser5:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:0:: +myuser6:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: +myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: diff --git a/tests/tests/chage/05_chsh_usage_2_users/data/usage.out b/tests/tests/chage/05_chsh_usage_2_users/data/usage.out new file mode 100644 index 00000000..19177f7b --- /dev/null +++ b/tests/tests/chage/05_chsh_usage_2_users/data/usage.out @@ -0,0 +1,16 @@ +Usage: chage [options] LOGIN + +Options: + -d, --lastday LAST_DAY set date of last password change to LAST_DAY + -E, --expiredate EXPIRE_DATE set account expiration date to EXPIRE_DATE + -h, --help display this help message and exit + -I, --inactive INACTIVE set password inactive after expiration + to INACTIVE + -l, --list show account aging information + -m, --mindays MIN_DAYS set minimum number of days before password + change to MIN_DAYS + -M, --maxdays MAX_DAYS set maximum number of days before password + change to MAX_DAYS + -R, --root CHROOT_DIR directory to chroot into + -W, --warndays WARN_DAYS set expiration warning days to WARN_DAYS + diff --git a/tests/tests/chage/06_chsh_usage_no_users/chage.test b/tests/tests/chage/06_chsh_usage_no_users/chage.test new file mode 100755 index 00000000..0851d6e3 --- /dev/null +++ b/tests/tests/chage/06_chsh_usage_no_users/chage.test @@ -0,0 +1,54 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../common/config.sh +. ../../common/log.sh + +log_start "$0" "chage displays its usage message when no users are provided" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "Use chage without an user (chage -I 12)..." +chage -I 12 2>tmp/usage.out && exit 1 || { + status=$? +} +echo "OK" + +echo -n "Check returned status ($status)..." +test "$status" = "2" +echo "OK" + +echo "chage reported:" +echo "=======================================================================" +cat tmp/usage.out +echo "=======================================================================" +echo -n "Check the usage message..." +diff -au data/usage.out tmp/usage.out +echo "usage message OK." +rm -f tmp/usage.out + +echo -n "Check the passwd file..." +../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chage/06_chsh_usage_no_users/config.txt b/tests/tests/chage/06_chsh_usage_no_users/config.txt new file mode 100644 index 00000000..e69de29b diff --git a/tests/tests/chage/06_chsh_usage_no_users/config/etc/group b/tests/tests/chage/06_chsh_usage_no_users/config/etc/group new file mode 100644 index 00000000..245cc9cf --- /dev/null +++ b/tests/tests/chage/06_chsh_usage_no_users/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: diff --git a/tests/tests/chage/06_chsh_usage_no_users/config/etc/gshadow b/tests/tests/chage/06_chsh_usage_no_users/config/etc/gshadow new file mode 100644 index 00000000..25bd55bd --- /dev/null +++ b/tests/tests/chage/06_chsh_usage_no_users/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: diff --git a/tests/tests/chage/06_chsh_usage_no_users/config/etc/passwd b/tests/tests/chage/06_chsh_usage_no_users/config/etc/passwd new file mode 100644 index 00000000..5d27e129 --- /dev/null +++ b/tests/tests/chage/06_chsh_usage_no_users/config/etc/passwd @@ -0,0 +1,26 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser1:x:424242:424242::/home:/bin/bash +myuser2:x:424243:424242::/home:/bin/bash +myuser3:x:424244:424242::/home:/bin/bash +myuser4:x:424245:424242::/home:/bin/bash +myuser5:x:424246:424242::/home:/bin/bash +myuser6:x:424247:424242::/home:/bin/bash +myuser7:x:424248:424242::/home:/bin/bash diff --git a/tests/tests/chage/06_chsh_usage_no_users/config/etc/shadow b/tests/tests/chage/06_chsh_usage_no_users/config/etc/shadow new file mode 100644 index 00000000..da4c2bc4 --- /dev/null +++ b/tests/tests/chage/06_chsh_usage_no_users/config/etc/shadow @@ -0,0 +1,26 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser1:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: +myuser2:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12992:1:99996:5::: +myuser3:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::0: +myuser4:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::1: +myuser5:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:0:: +myuser6:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: +myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: diff --git a/tests/tests/chage/06_chsh_usage_no_users/data/usage.out b/tests/tests/chage/06_chsh_usage_no_users/data/usage.out new file mode 100644 index 00000000..19177f7b --- /dev/null +++ b/tests/tests/chage/06_chsh_usage_no_users/data/usage.out @@ -0,0 +1,16 @@ +Usage: chage [options] LOGIN + +Options: + -d, --lastday LAST_DAY set date of last password change to LAST_DAY + -E, --expiredate EXPIRE_DATE set account expiration date to EXPIRE_DATE + -h, --help display this help message and exit + -I, --inactive INACTIVE set password inactive after expiration + to INACTIVE + -l, --list show account aging information + -m, --mindays MIN_DAYS set minimum number of days before password + change to MIN_DAYS + -M, --maxdays MAX_DAYS set maximum number of days before password + change to MAX_DAYS + -R, --root CHROOT_DIR directory to chroot into + -W, --warndays WARN_DAYS set expiration warning days to WARN_DAYS + diff --git a/tests/tests/chage/07_chsh_usage-l_exclusive/chage.test b/tests/tests/chage/07_chsh_usage-l_exclusive/chage.test new file mode 100755 index 00000000..9036f09c --- /dev/null +++ b/tests/tests/chage/07_chsh_usage-l_exclusive/chage.test @@ -0,0 +1,57 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../common/config.sh +. ../../common/log.sh + +log_start "$0" "chage displays its usage message when -l is used with another option" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +for opt in "-m 12" "-M 12" "-d 2011-09-11" "-W 12" "-I 12" "-E 2011-09-11" +do + echo -n "Use chage with -l and $opt (chage -l $opt bin)..." + chage -l $opt bin 2>tmp/usage.out && exit 1 || { + status=$? + } + echo "OK" + + echo -n "Check returned status ($status)..." + test "$status" = "2" + echo "OK" + + echo "chage reported:" + echo "=======================================================================" + cat tmp/usage.out + echo "=======================================================================" + echo -n "Check the usage message..." + diff -au data/usage.out tmp/usage.out + echo "usage message OK." + rm -f tmp/usage.out +done + +echo -n "Check the passwd file..." +../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chage/07_chsh_usage-l_exclusive/config.txt b/tests/tests/chage/07_chsh_usage-l_exclusive/config.txt new file mode 100644 index 00000000..e69de29b diff --git a/tests/tests/chage/07_chsh_usage-l_exclusive/config/etc/group b/tests/tests/chage/07_chsh_usage-l_exclusive/config/etc/group new file mode 100644 index 00000000..245cc9cf --- /dev/null +++ b/tests/tests/chage/07_chsh_usage-l_exclusive/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: diff --git a/tests/tests/chage/07_chsh_usage-l_exclusive/config/etc/gshadow b/tests/tests/chage/07_chsh_usage-l_exclusive/config/etc/gshadow new file mode 100644 index 00000000..25bd55bd --- /dev/null +++ b/tests/tests/chage/07_chsh_usage-l_exclusive/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: diff --git a/tests/tests/chage/07_chsh_usage-l_exclusive/config/etc/passwd b/tests/tests/chage/07_chsh_usage-l_exclusive/config/etc/passwd new file mode 100644 index 00000000..5d27e129 --- /dev/null +++ b/tests/tests/chage/07_chsh_usage-l_exclusive/config/etc/passwd @@ -0,0 +1,26 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser1:x:424242:424242::/home:/bin/bash +myuser2:x:424243:424242::/home:/bin/bash +myuser3:x:424244:424242::/home:/bin/bash +myuser4:x:424245:424242::/home:/bin/bash +myuser5:x:424246:424242::/home:/bin/bash +myuser6:x:424247:424242::/home:/bin/bash +myuser7:x:424248:424242::/home:/bin/bash diff --git a/tests/tests/chage/07_chsh_usage-l_exclusive/config/etc/shadow b/tests/tests/chage/07_chsh_usage-l_exclusive/config/etc/shadow new file mode 100644 index 00000000..da4c2bc4 --- /dev/null +++ b/tests/tests/chage/07_chsh_usage-l_exclusive/config/etc/shadow @@ -0,0 +1,26 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser1:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: +myuser2:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12992:1:99996:5::: +myuser3:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::0: +myuser4:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::1: +myuser5:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:0:: +myuser6:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: +myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: diff --git a/tests/tests/chage/07_chsh_usage-l_exclusive/data/usage.out b/tests/tests/chage/07_chsh_usage-l_exclusive/data/usage.out new file mode 100644 index 00000000..e6c2635b --- /dev/null +++ b/tests/tests/chage/07_chsh_usage-l_exclusive/data/usage.out @@ -0,0 +1,17 @@ +chage: do not include "l" with other flags +Usage: chage [options] LOGIN + +Options: + -d, --lastday LAST_DAY set date of last password change to LAST_DAY + -E, --expiredate EXPIRE_DATE set account expiration date to EXPIRE_DATE + -h, --help display this help message and exit + -I, --inactive INACTIVE set password inactive after expiration + to INACTIVE + -l, --list show account aging information + -m, --mindays MIN_DAYS set minimum number of days before password + change to MIN_DAYS + -M, --maxdays MAX_DAYS set maximum number of days before password + change to MAX_DAYS + -R, --root CHROOT_DIR directory to chroot into + -W, --warndays WARN_DAYS set expiration warning days to WARN_DAYS + diff --git a/tests/tests/chage/08_chsh_usage_invalid_date/chage.test b/tests/tests/chage/08_chsh_usage_invalid_date/chage.test new file mode 100755 index 00000000..90007fc7 --- /dev/null +++ b/tests/tests/chage/08_chsh_usage_invalid_date/chage.test @@ -0,0 +1,59 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../common/config.sh +. ../../common/log.sh + +log_start "$0" "chage displays its usage message when -l is used with another option" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +for opt in "-d 2011-09" "-E 2011-09-09-11" +do + echo -n "Use chage with an invalid date (chage $opt bin)..." + chage $opt bin 2>tmp/usage.out && exit 1 || { + status=$? + } + echo "OK" + + echo -n "Check returned status ($status)..." + test "$status" = "2" + echo "OK" + + echo "chage reported:" + echo "=======================================================================" + cat tmp/usage.out + echo "=======================================================================" + d=$(echo $opt | cut -d' ' -f2) + sed -e "s/'$d'/'DATE'/" -i tmp/usage.out + echo -n "Check the usage message..." + diff -au data/usage.out tmp/usage.out + echo "usage message OK." + rm -f tmp/usage.out +done + +echo -n "Check the passwd file..." +../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chage/08_chsh_usage_invalid_date/config.txt b/tests/tests/chage/08_chsh_usage_invalid_date/config.txt new file mode 100644 index 00000000..e69de29b diff --git a/tests/tests/chage/08_chsh_usage_invalid_date/config/etc/group b/tests/tests/chage/08_chsh_usage_invalid_date/config/etc/group new file mode 100644 index 00000000..245cc9cf --- /dev/null +++ b/tests/tests/chage/08_chsh_usage_invalid_date/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: diff --git a/tests/tests/chage/08_chsh_usage_invalid_date/config/etc/gshadow b/tests/tests/chage/08_chsh_usage_invalid_date/config/etc/gshadow new file mode 100644 index 00000000..25bd55bd --- /dev/null +++ b/tests/tests/chage/08_chsh_usage_invalid_date/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: diff --git a/tests/tests/chage/08_chsh_usage_invalid_date/config/etc/passwd b/tests/tests/chage/08_chsh_usage_invalid_date/config/etc/passwd new file mode 100644 index 00000000..5d27e129 --- /dev/null +++ b/tests/tests/chage/08_chsh_usage_invalid_date/config/etc/passwd @@ -0,0 +1,26 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser1:x:424242:424242::/home:/bin/bash +myuser2:x:424243:424242::/home:/bin/bash +myuser3:x:424244:424242::/home:/bin/bash +myuser4:x:424245:424242::/home:/bin/bash +myuser5:x:424246:424242::/home:/bin/bash +myuser6:x:424247:424242::/home:/bin/bash +myuser7:x:424248:424242::/home:/bin/bash diff --git a/tests/tests/chage/08_chsh_usage_invalid_date/config/etc/shadow b/tests/tests/chage/08_chsh_usage_invalid_date/config/etc/shadow new file mode 100644 index 00000000..da4c2bc4 --- /dev/null +++ b/tests/tests/chage/08_chsh_usage_invalid_date/config/etc/shadow @@ -0,0 +1,26 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser1:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: +myuser2:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12992:1:99996:5::: +myuser3:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::0: +myuser4:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::1: +myuser5:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:0:: +myuser6:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: +myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: diff --git a/tests/tests/chage/08_chsh_usage_invalid_date/data/usage.out b/tests/tests/chage/08_chsh_usage_invalid_date/data/usage.out new file mode 100644 index 00000000..d284dd59 --- /dev/null +++ b/tests/tests/chage/08_chsh_usage_invalid_date/data/usage.out @@ -0,0 +1,17 @@ +chage: invalid date 'DATE' +Usage: chage [options] LOGIN + +Options: + -d, --lastday LAST_DAY set date of last password change to LAST_DAY + -E, --expiredate EXPIRE_DATE set account expiration date to EXPIRE_DATE + -h, --help display this help message and exit + -I, --inactive INACTIVE set password inactive after expiration + to INACTIVE + -l, --list show account aging information + -m, --mindays MIN_DAYS set minimum number of days before password + change to MIN_DAYS + -M, --maxdays MAX_DAYS set maximum number of days before password + change to MAX_DAYS + -R, --root CHROOT_DIR directory to chroot into + -W, --warndays WARN_DAYS set expiration warning days to WARN_DAYS + diff --git a/tests/tests/chage/09_chsh_usage_invalid_numeric_arg/chage.test b/tests/tests/chage/09_chsh_usage_invalid_numeric_arg/chage.test new file mode 100755 index 00000000..36d11e59 --- /dev/null +++ b/tests/tests/chage/09_chsh_usage_invalid_numeric_arg/chage.test @@ -0,0 +1,59 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../common/config.sh +. ../../common/log.sh + +log_start "$0" "chage displays its usage message when -l is used with another option" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +for opt in "-I -12" "-m -12" "-M -12" "-W -12" "-I a" "-m 12.5" "-M 12a" "-W a12" +do + echo -n "Use chage with an invalid date (chage $opt bin)..." + chage $opt bin 2>tmp/usage.out && exit 1 || { + status=$? + } + echo "OK" + + echo -n "Check returned status ($status)..." + test "$status" = "2" + echo "OK" + + echo "chage reported:" + echo "=======================================================================" + cat tmp/usage.out + echo "=======================================================================" + v=$(echo $opt | cut -d' ' -f2) + sed -e "s/'$v'/'VAL'/" -i tmp/usage.out + echo -n "Check the usage message..." + diff -au data/usage.out tmp/usage.out + echo "usage message OK." + rm -f tmp/usage.out +done + +echo -n "Check the passwd file..." +../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chage/09_chsh_usage_invalid_numeric_arg/config.txt b/tests/tests/chage/09_chsh_usage_invalid_numeric_arg/config.txt new file mode 100644 index 00000000..e69de29b diff --git a/tests/tests/chage/09_chsh_usage_invalid_numeric_arg/config/etc/group b/tests/tests/chage/09_chsh_usage_invalid_numeric_arg/config/etc/group new file mode 100644 index 00000000..245cc9cf --- /dev/null +++ b/tests/tests/chage/09_chsh_usage_invalid_numeric_arg/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: diff --git a/tests/tests/chage/09_chsh_usage_invalid_numeric_arg/config/etc/gshadow b/tests/tests/chage/09_chsh_usage_invalid_numeric_arg/config/etc/gshadow new file mode 100644 index 00000000..25bd55bd --- /dev/null +++ b/tests/tests/chage/09_chsh_usage_invalid_numeric_arg/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: diff --git a/tests/tests/chage/09_chsh_usage_invalid_numeric_arg/config/etc/passwd b/tests/tests/chage/09_chsh_usage_invalid_numeric_arg/config/etc/passwd new file mode 100644 index 00000000..5d27e129 --- /dev/null +++ b/tests/tests/chage/09_chsh_usage_invalid_numeric_arg/config/etc/passwd @@ -0,0 +1,26 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser1:x:424242:424242::/home:/bin/bash +myuser2:x:424243:424242::/home:/bin/bash +myuser3:x:424244:424242::/home:/bin/bash +myuser4:x:424245:424242::/home:/bin/bash +myuser5:x:424246:424242::/home:/bin/bash +myuser6:x:424247:424242::/home:/bin/bash +myuser7:x:424248:424242::/home:/bin/bash diff --git a/tests/tests/chage/09_chsh_usage_invalid_numeric_arg/config/etc/shadow b/tests/tests/chage/09_chsh_usage_invalid_numeric_arg/config/etc/shadow new file mode 100644 index 00000000..da4c2bc4 --- /dev/null +++ b/tests/tests/chage/09_chsh_usage_invalid_numeric_arg/config/etc/shadow @@ -0,0 +1,26 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser1:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: +myuser2:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12992:1:99996:5::: +myuser3:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::0: +myuser4:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::1: +myuser5:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:0:: +myuser6:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: +myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: diff --git a/tests/tests/chage/09_chsh_usage_invalid_numeric_arg/data/usage.out b/tests/tests/chage/09_chsh_usage_invalid_numeric_arg/data/usage.out new file mode 100644 index 00000000..1ac46cf8 --- /dev/null +++ b/tests/tests/chage/09_chsh_usage_invalid_numeric_arg/data/usage.out @@ -0,0 +1,17 @@ +chage: invalid numeric argument 'VAL' +Usage: chage [options] LOGIN + +Options: + -d, --lastday LAST_DAY set date of last password change to LAST_DAY + -E, --expiredate EXPIRE_DATE set account expiration date to EXPIRE_DATE + -h, --help display this help message and exit + -I, --inactive INACTIVE set password inactive after expiration + to INACTIVE + -l, --list show account aging information + -m, --mindays MIN_DAYS set minimum number of days before password + change to MIN_DAYS + -M, --maxdays MAX_DAYS set maximum number of days before password + change to MAX_DAYS + -R, --root CHROOT_DIR directory to chroot into + -W, --warndays WARN_DAYS set expiration warning days to WARN_DAYS + diff --git a/tests/tests/chage/10_chsh-l/chage.test b/tests/tests/chage/10_chsh-l/chage.test new file mode 100755 index 00000000..394c9813 --- /dev/null +++ b/tests/tests/chage/10_chsh-l/chage.test @@ -0,0 +1,51 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../common/config.sh +. ../../common/log.sh + +log_start "$0" "chage displays its usage message when -l is used with another option" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +for user in $(ls data/) +do + echo -n "Get $user aging info (chage -l $user)..." + chage -l $user >tmp/$user + echo "OK" + + echo "chage reported:" + echo "=======================================================================" + cat tmp/$user + echo "=======================================================================" + echo -n "Compare with expected output..." + diff -au data/$user tmp/$user + echo "OK" + rm -f tmp/$user +done + +echo -n "Check the passwd file..." +../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chage/10_chsh-l/config.txt b/tests/tests/chage/10_chsh-l/config.txt new file mode 100644 index 00000000..e69de29b diff --git a/tests/tests/chage/10_chsh-l/config/etc/group b/tests/tests/chage/10_chsh-l/config/etc/group new file mode 100644 index 00000000..245cc9cf --- /dev/null +++ b/tests/tests/chage/10_chsh-l/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: diff --git a/tests/tests/chage/10_chsh-l/config/etc/gshadow b/tests/tests/chage/10_chsh-l/config/etc/gshadow new file mode 100644 index 00000000..25bd55bd --- /dev/null +++ b/tests/tests/chage/10_chsh-l/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: diff --git a/tests/tests/chage/10_chsh-l/config/etc/passwd b/tests/tests/chage/10_chsh-l/config/etc/passwd new file mode 100644 index 00000000..31046cf6 --- /dev/null +++ b/tests/tests/chage/10_chsh-l/config/etc/passwd @@ -0,0 +1,32 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser1:x:424242:424242::/home:/bin/bash +myuser2:x:424243:424242::/home:/bin/bash +myuser3:x:424244:424242::/home:/bin/bash +myuser4:x:424245:424242::/home:/bin/bash +myuser5:x:424246:424242::/home:/bin/bash +myuser6:x:424247:424242::/home:/bin/bash +myuser7:x:424248:424242::/home:/bin/bash +myuser8:x:424249:424242::/home:/bin/bash +myuser9:x:424250:424242::/home:/bin/bash +myuser10:x:424251:424242::/home:/bin/bash +myuser11:x:424252:424242::/home:/bin/bash +myuser12:x:424253:424242::/home:/bin/bash +myuser13:x:424254:424242::/home:/bin/bash diff --git a/tests/tests/chage/10_chsh-l/config/etc/shadow b/tests/tests/chage/10_chsh-l/config/etc/shadow new file mode 100644 index 00000000..4b81469b --- /dev/null +++ b/tests/tests/chage/10_chsh-l/config/etc/shadow @@ -0,0 +1,30 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser1:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: +myuser2:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12992:1:99996:5::: +myuser3:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::0: +myuser4:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::1: +myuser5:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:0:: +myuser6:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: +myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:9999:7:1:: +myuser8:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.::0:9999:7:1:: +myuser9:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:0:0:9999:7:1:: +myuser10:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0::7:1:: +#myuser11:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:9999:7:1:: diff --git a/tests/tests/chage/10_chsh-l/data/myuser1 b/tests/tests/chage/10_chsh-l/data/myuser1 new file mode 100644 index 00000000..64754ca5 --- /dev/null +++ b/tests/tests/chage/10_chsh-l/data/myuser1 @@ -0,0 +1,7 @@ +Last password change : Jul 27, 2005 +Password expires : never +Password inactive : never +Account expires : never +Minimum number of days between password change : 0 +Maximum number of days between password change : 99999 +Number of days of warning before password expires : 7 diff --git a/tests/tests/chage/10_chsh-l/data/myuser10 b/tests/tests/chage/10_chsh-l/data/myuser10 new file mode 100644 index 00000000..8a9e5d12 --- /dev/null +++ b/tests/tests/chage/10_chsh-l/data/myuser10 @@ -0,0 +1,7 @@ +Last password change : Jul 27, 2005 +Password expires : never +Password inactive : never +Account expires : never +Minimum number of days between password change : 0 +Maximum number of days between password change : -1 +Number of days of warning before password expires : 7 diff --git a/tests/tests/chage/10_chsh-l/data/myuser11 b/tests/tests/chage/10_chsh-l/data/myuser11 new file mode 100644 index 00000000..a54ec7a7 --- /dev/null +++ b/tests/tests/chage/10_chsh-l/data/myuser11 @@ -0,0 +1,7 @@ +Last password change : never +Password expires : never +Password inactive : never +Account expires : never +Minimum number of days between password change : -1 +Maximum number of days between password change : -1 +Number of days of warning before password expires : -1 diff --git a/tests/tests/chage/10_chsh-l/data/myuser2 b/tests/tests/chage/10_chsh-l/data/myuser2 new file mode 100644 index 00000000..7efdc0cd --- /dev/null +++ b/tests/tests/chage/10_chsh-l/data/myuser2 @@ -0,0 +1,7 @@ +Last password change : Jul 28, 2005 +Password expires : never +Password inactive : never +Account expires : never +Minimum number of days between password change : 1 +Maximum number of days between password change : 99996 +Number of days of warning before password expires : 5 diff --git a/tests/tests/chage/10_chsh-l/data/myuser3 b/tests/tests/chage/10_chsh-l/data/myuser3 new file mode 100644 index 00000000..a263db9d --- /dev/null +++ b/tests/tests/chage/10_chsh-l/data/myuser3 @@ -0,0 +1,7 @@ +Last password change : Jul 27, 2005 +Password expires : never +Password inactive : never +Account expires : Jan 01, 1970 +Minimum number of days between password change : 0 +Maximum number of days between password change : 99999 +Number of days of warning before password expires : 7 diff --git a/tests/tests/chage/10_chsh-l/data/myuser4 b/tests/tests/chage/10_chsh-l/data/myuser4 new file mode 100644 index 00000000..11e2f2d9 --- /dev/null +++ b/tests/tests/chage/10_chsh-l/data/myuser4 @@ -0,0 +1,7 @@ +Last password change : Jul 27, 2005 +Password expires : never +Password inactive : never +Account expires : Jan 02, 1970 +Minimum number of days between password change : 0 +Maximum number of days between password change : 99999 +Number of days of warning before password expires : 7 diff --git a/tests/tests/chage/10_chsh-l/data/myuser5 b/tests/tests/chage/10_chsh-l/data/myuser5 new file mode 100644 index 00000000..64754ca5 --- /dev/null +++ b/tests/tests/chage/10_chsh-l/data/myuser5 @@ -0,0 +1,7 @@ +Last password change : Jul 27, 2005 +Password expires : never +Password inactive : never +Account expires : never +Minimum number of days between password change : 0 +Maximum number of days between password change : 99999 +Number of days of warning before password expires : 7 diff --git a/tests/tests/chage/10_chsh-l/data/myuser6 b/tests/tests/chage/10_chsh-l/data/myuser6 new file mode 100644 index 00000000..64754ca5 --- /dev/null +++ b/tests/tests/chage/10_chsh-l/data/myuser6 @@ -0,0 +1,7 @@ +Last password change : Jul 27, 2005 +Password expires : never +Password inactive : never +Account expires : never +Minimum number of days between password change : 0 +Maximum number of days between password change : 99999 +Number of days of warning before password expires : 7 diff --git a/tests/tests/chage/10_chsh-l/data/myuser7 b/tests/tests/chage/10_chsh-l/data/myuser7 new file mode 100644 index 00000000..63debfb9 --- /dev/null +++ b/tests/tests/chage/10_chsh-l/data/myuser7 @@ -0,0 +1,7 @@ +Last password change : Jul 27, 2005 +Password expires : Dec 11, 2032 +Password inactive : Dec 12, 2032 +Account expires : never +Minimum number of days between password change : 0 +Maximum number of days between password change : 9999 +Number of days of warning before password expires : 7 diff --git a/tests/tests/chage/10_chsh-l/data/myuser8 b/tests/tests/chage/10_chsh-l/data/myuser8 new file mode 100644 index 00000000..4a3f4bd3 --- /dev/null +++ b/tests/tests/chage/10_chsh-l/data/myuser8 @@ -0,0 +1,7 @@ +Last password change : never +Password expires : never +Password inactive : never +Account expires : never +Minimum number of days between password change : 0 +Maximum number of days between password change : 9999 +Number of days of warning before password expires : 7 diff --git a/tests/tests/chage/10_chsh-l/data/myuser9 b/tests/tests/chage/10_chsh-l/data/myuser9 new file mode 100644 index 00000000..09f6fdca --- /dev/null +++ b/tests/tests/chage/10_chsh-l/data/myuser9 @@ -0,0 +1,7 @@ +Last password change : password must be changed +Password expires : password must be changed +Password inactive : password must be changed +Account expires : never +Minimum number of days between password change : 0 +Maximum number of days between password change : 9999 +Number of days of warning before password expires : 7 diff --git a/tests/tests/chage/11_chsh_usage_invalid_user/chage.test b/tests/tests/chage/11_chsh_usage_invalid_user/chage.test new file mode 100755 index 00000000..46d9d656 --- /dev/null +++ b/tests/tests/chage/11_chsh_usage_invalid_user/chage.test @@ -0,0 +1,54 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../common/config.sh +. ../../common/log.sh + +log_start "$0" "chage warns in case of invalid user" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "Use chage with an invalid user (chage -I 12 foo)..." +chage -I 12 foo 2>tmp/usage.out && exit 1 || { + status=$? +} +echo "OK" + +echo -n "Check returned status ($status)..." +test "$status" = "1" +echo "OK" + +echo "chage reported:" +echo "=======================================================================" +cat tmp/usage.out +echo "=======================================================================" +echo -n "Check the usage message..." +diff -au data/usage.out tmp/usage.out +echo "usage message OK." +rm -f tmp/usage.out + +echo -n "Check the passwd file..." +../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chage/11_chsh_usage_invalid_user/config.txt b/tests/tests/chage/11_chsh_usage_invalid_user/config.txt new file mode 100644 index 00000000..e69de29b diff --git a/tests/tests/chage/11_chsh_usage_invalid_user/config/etc/group b/tests/tests/chage/11_chsh_usage_invalid_user/config/etc/group new file mode 100644 index 00000000..245cc9cf --- /dev/null +++ b/tests/tests/chage/11_chsh_usage_invalid_user/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: diff --git a/tests/tests/chage/11_chsh_usage_invalid_user/config/etc/gshadow b/tests/tests/chage/11_chsh_usage_invalid_user/config/etc/gshadow new file mode 100644 index 00000000..25bd55bd --- /dev/null +++ b/tests/tests/chage/11_chsh_usage_invalid_user/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: diff --git a/tests/tests/chage/11_chsh_usage_invalid_user/config/etc/passwd b/tests/tests/chage/11_chsh_usage_invalid_user/config/etc/passwd new file mode 100644 index 00000000..5d27e129 --- /dev/null +++ b/tests/tests/chage/11_chsh_usage_invalid_user/config/etc/passwd @@ -0,0 +1,26 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser1:x:424242:424242::/home:/bin/bash +myuser2:x:424243:424242::/home:/bin/bash +myuser3:x:424244:424242::/home:/bin/bash +myuser4:x:424245:424242::/home:/bin/bash +myuser5:x:424246:424242::/home:/bin/bash +myuser6:x:424247:424242::/home:/bin/bash +myuser7:x:424248:424242::/home:/bin/bash diff --git a/tests/tests/chage/11_chsh_usage_invalid_user/config/etc/shadow b/tests/tests/chage/11_chsh_usage_invalid_user/config/etc/shadow new file mode 100644 index 00000000..da4c2bc4 --- /dev/null +++ b/tests/tests/chage/11_chsh_usage_invalid_user/config/etc/shadow @@ -0,0 +1,26 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser1:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: +myuser2:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12992:1:99996:5::: +myuser3:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::0: +myuser4:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::1: +myuser5:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:0:: +myuser6:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: +myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: diff --git a/tests/tests/chage/11_chsh_usage_invalid_user/data/usage.out b/tests/tests/chage/11_chsh_usage_invalid_user/data/usage.out new file mode 100644 index 00000000..cdc8a1fa --- /dev/null +++ b/tests/tests/chage/11_chsh_usage_invalid_user/data/usage.out @@ -0,0 +1 @@ +chage: user 'foo' does not exist in /etc/passwd diff --git a/tests/tests/chage/12_chsh_usage-l_invalid_user2/chage.test b/tests/tests/chage/12_chsh_usage-l_invalid_user2/chage.test new file mode 100755 index 00000000..d3b5255c --- /dev/null +++ b/tests/tests/chage/12_chsh_usage-l_invalid_user2/chage.test @@ -0,0 +1,54 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../common/config.sh +. ../../common/log.sh + +log_start "$0" "chage warns in case of invalid user" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "Use chage with an invalid user (chage -l foo)..." +chage -l foo 2>tmp/usage.out && exit 1 || { + status=$? +} +echo "OK" + +echo -n "Check returned status ($status)..." +test "$status" = "1" +echo "OK" + +echo "chage reported:" +echo "=======================================================================" +cat tmp/usage.out +echo "=======================================================================" +echo -n "Check the usage message..." +diff -au data/usage.out tmp/usage.out +echo "usage message OK." +rm -f tmp/usage.out + +echo -n "Check the passwd file..." +../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chage/12_chsh_usage-l_invalid_user2/config.txt b/tests/tests/chage/12_chsh_usage-l_invalid_user2/config.txt new file mode 100644 index 00000000..e69de29b diff --git a/tests/tests/chage/12_chsh_usage-l_invalid_user2/config/etc/group b/tests/tests/chage/12_chsh_usage-l_invalid_user2/config/etc/group new file mode 100644 index 00000000..245cc9cf --- /dev/null +++ b/tests/tests/chage/12_chsh_usage-l_invalid_user2/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: diff --git a/tests/tests/chage/12_chsh_usage-l_invalid_user2/config/etc/gshadow b/tests/tests/chage/12_chsh_usage-l_invalid_user2/config/etc/gshadow new file mode 100644 index 00000000..25bd55bd --- /dev/null +++ b/tests/tests/chage/12_chsh_usage-l_invalid_user2/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: diff --git a/tests/tests/chage/12_chsh_usage-l_invalid_user2/config/etc/passwd b/tests/tests/chage/12_chsh_usage-l_invalid_user2/config/etc/passwd new file mode 100644 index 00000000..5d27e129 --- /dev/null +++ b/tests/tests/chage/12_chsh_usage-l_invalid_user2/config/etc/passwd @@ -0,0 +1,26 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser1:x:424242:424242::/home:/bin/bash +myuser2:x:424243:424242::/home:/bin/bash +myuser3:x:424244:424242::/home:/bin/bash +myuser4:x:424245:424242::/home:/bin/bash +myuser5:x:424246:424242::/home:/bin/bash +myuser6:x:424247:424242::/home:/bin/bash +myuser7:x:424248:424242::/home:/bin/bash diff --git a/tests/tests/chage/12_chsh_usage-l_invalid_user2/config/etc/shadow b/tests/tests/chage/12_chsh_usage-l_invalid_user2/config/etc/shadow new file mode 100644 index 00000000..da4c2bc4 --- /dev/null +++ b/tests/tests/chage/12_chsh_usage-l_invalid_user2/config/etc/shadow @@ -0,0 +1,26 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser1:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: +myuser2:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12992:1:99996:5::: +myuser3:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::0: +myuser4:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::1: +myuser5:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:0:: +myuser6:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: +myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: diff --git a/tests/tests/chage/12_chsh_usage-l_invalid_user2/data/usage.out b/tests/tests/chage/12_chsh_usage-l_invalid_user2/data/usage.out new file mode 100644 index 00000000..cdc8a1fa --- /dev/null +++ b/tests/tests/chage/12_chsh_usage-l_invalid_user2/data/usage.out @@ -0,0 +1 @@ +chage: user 'foo' does not exist in /etc/passwd diff --git a/tests/tests/chage/13_chsh_locked_passwd/chage.test b/tests/tests/chage/13_chsh_locked_passwd/chage.test new file mode 100755 index 00000000..aeeb412a --- /dev/null +++ b/tests/tests/chage/13_chsh_locked_passwd/chage.test @@ -0,0 +1,59 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../common/config.sh +. ../../common/log.sh + +log_start "$0" "chage warns when passwd is already locked" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config; rm -f /etc/passwd.lock' 0 + +change_config + +echo -n "Create lock file for /etc/passwd..." +touch /etc/passwd.lock +echo "done" + +echo -n "Use chage with an invalid user (chage -I 12 bin)..." +chage -I 12 bin 2>tmp/usage.out && exit 1 || { + status=$? +} +echo "OK" +rm -f /etc/passwd.lock + +echo -n "Check returned status ($status)..." +test "$status" = "1" +echo "OK" + +echo "chage reported:" +echo "=======================================================================" +cat tmp/usage.out +echo "=======================================================================" +echo -n "Check the usage message..." +diff -au data/usage.out tmp/usage.out +echo "usage message OK." +rm -f tmp/usage.out + +echo -n "Check the passwd file..." +../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chage/13_chsh_locked_passwd/config.txt b/tests/tests/chage/13_chsh_locked_passwd/config.txt new file mode 100644 index 00000000..e69de29b diff --git a/tests/tests/chage/13_chsh_locked_passwd/config/etc/group b/tests/tests/chage/13_chsh_locked_passwd/config/etc/group new file mode 100644 index 00000000..245cc9cf --- /dev/null +++ b/tests/tests/chage/13_chsh_locked_passwd/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: diff --git a/tests/tests/chage/13_chsh_locked_passwd/config/etc/gshadow b/tests/tests/chage/13_chsh_locked_passwd/config/etc/gshadow new file mode 100644 index 00000000..25bd55bd --- /dev/null +++ b/tests/tests/chage/13_chsh_locked_passwd/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: diff --git a/tests/tests/chage/13_chsh_locked_passwd/config/etc/passwd b/tests/tests/chage/13_chsh_locked_passwd/config/etc/passwd new file mode 100644 index 00000000..5d27e129 --- /dev/null +++ b/tests/tests/chage/13_chsh_locked_passwd/config/etc/passwd @@ -0,0 +1,26 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser1:x:424242:424242::/home:/bin/bash +myuser2:x:424243:424242::/home:/bin/bash +myuser3:x:424244:424242::/home:/bin/bash +myuser4:x:424245:424242::/home:/bin/bash +myuser5:x:424246:424242::/home:/bin/bash +myuser6:x:424247:424242::/home:/bin/bash +myuser7:x:424248:424242::/home:/bin/bash diff --git a/tests/tests/chage/13_chsh_locked_passwd/config/etc/shadow b/tests/tests/chage/13_chsh_locked_passwd/config/etc/shadow new file mode 100644 index 00000000..da4c2bc4 --- /dev/null +++ b/tests/tests/chage/13_chsh_locked_passwd/config/etc/shadow @@ -0,0 +1,26 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser1:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: +myuser2:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12992:1:99996:5::: +myuser3:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::0: +myuser4:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::1: +myuser5:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:0:: +myuser6:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: +myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: diff --git a/tests/tests/chage/13_chsh_locked_passwd/data/usage.out b/tests/tests/chage/13_chsh_locked_passwd/data/usage.out new file mode 100644 index 00000000..caa44b5f --- /dev/null +++ b/tests/tests/chage/13_chsh_locked_passwd/data/usage.out @@ -0,0 +1,2 @@ +chage: existing lock file /etc/passwd.lock without a PID +chage: cannot lock /etc/passwd; try again later. diff --git a/tests/tests/chage/14_chsh_locked_shadow/chage.test b/tests/tests/chage/14_chsh_locked_shadow/chage.test new file mode 100755 index 00000000..3474d953 --- /dev/null +++ b/tests/tests/chage/14_chsh_locked_shadow/chage.test @@ -0,0 +1,59 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../common/config.sh +. ../../common/log.sh + +log_start "$0" "chage warns when shadow is already locked" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config; rm -f /etc/shadow.lock' 0 + +change_config + +echo -n "Create lock file for /etc/shadow..." +touch /etc/shadow.lock +echo "done" + +echo -n "Use chage with an invalid user (chage -I 12 bin)..." +chage -I 12 bin 2>tmp/usage.out && exit 1 || { + status=$? +} +echo "OK" +rm -f /etc/shadow.lock + +echo -n "Check returned status ($status)..." +test "$status" = "1" +echo "OK" + +echo "chage reported:" +echo "=======================================================================" +cat tmp/usage.out +echo "=======================================================================" +echo -n "Check the usage message..." +diff -au data/usage.out tmp/usage.out +echo "usage message OK." +rm -f tmp/usage.out + +echo -n "Check the passwd file..." +../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chage/14_chsh_locked_shadow/config.txt b/tests/tests/chage/14_chsh_locked_shadow/config.txt new file mode 100644 index 00000000..e69de29b diff --git a/tests/tests/chage/14_chsh_locked_shadow/config/etc/group b/tests/tests/chage/14_chsh_locked_shadow/config/etc/group new file mode 100644 index 00000000..245cc9cf --- /dev/null +++ b/tests/tests/chage/14_chsh_locked_shadow/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: diff --git a/tests/tests/chage/14_chsh_locked_shadow/config/etc/gshadow b/tests/tests/chage/14_chsh_locked_shadow/config/etc/gshadow new file mode 100644 index 00000000..25bd55bd --- /dev/null +++ b/tests/tests/chage/14_chsh_locked_shadow/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: diff --git a/tests/tests/chage/14_chsh_locked_shadow/config/etc/passwd b/tests/tests/chage/14_chsh_locked_shadow/config/etc/passwd new file mode 100644 index 00000000..5d27e129 --- /dev/null +++ b/tests/tests/chage/14_chsh_locked_shadow/config/etc/passwd @@ -0,0 +1,26 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser1:x:424242:424242::/home:/bin/bash +myuser2:x:424243:424242::/home:/bin/bash +myuser3:x:424244:424242::/home:/bin/bash +myuser4:x:424245:424242::/home:/bin/bash +myuser5:x:424246:424242::/home:/bin/bash +myuser6:x:424247:424242::/home:/bin/bash +myuser7:x:424248:424242::/home:/bin/bash diff --git a/tests/tests/chage/14_chsh_locked_shadow/config/etc/shadow b/tests/tests/chage/14_chsh_locked_shadow/config/etc/shadow new file mode 100644 index 00000000..da4c2bc4 --- /dev/null +++ b/tests/tests/chage/14_chsh_locked_shadow/config/etc/shadow @@ -0,0 +1,26 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser1:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: +myuser2:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12992:1:99996:5::: +myuser3:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::0: +myuser4:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::1: +myuser5:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:0:: +myuser6:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: +myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: diff --git a/tests/tests/chage/14_chsh_locked_shadow/data/usage.out b/tests/tests/chage/14_chsh_locked_shadow/data/usage.out new file mode 100644 index 00000000..f396f3ca --- /dev/null +++ b/tests/tests/chage/14_chsh_locked_shadow/data/usage.out @@ -0,0 +1,2 @@ +chage: existing lock file /etc/shadow.lock without a PID +chage: cannot lock /etc/shadow; try again later. diff --git a/tests/tests/chage/15_chage-I_no_shadow_entry/chage.test b/tests/tests/chage/15_chage-I_no_shadow_entry/chage.test new file mode 100755 index 00000000..77a06a26 --- /dev/null +++ b/tests/tests/chage/15_chage-I_no_shadow_entry/chage.test @@ -0,0 +1,39 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../common/config.sh +. ../../common/log.sh + +log_start "$0" "chage creates a shadow entry if there were none" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "Change bin's inactivity period (chage -I 12 bin)..." +chage -I 12 bin +echo "OK" + +echo -n "Check the passwd file..." +../../common/compare_file.pl data/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../common/compare_file.pl data/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chage/15_chage-I_no_shadow_entry/config.txt b/tests/tests/chage/15_chage-I_no_shadow_entry/config.txt new file mode 100644 index 00000000..e9e4bbed --- /dev/null +++ b/tests/tests/chage/15_chage-I_no_shadow_entry/config.txt @@ -0,0 +1 @@ +group foo, GID 1000 diff --git a/tests/tests/chage/15_chage-I_no_shadow_entry/config/etc/group b/tests/tests/chage/15_chage-I_no_shadow_entry/config/etc/group new file mode 100644 index 00000000..fecba0c4 --- /dev/null +++ b/tests/tests/chage/15_chage-I_no_shadow_entry/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: diff --git a/tests/tests/chage/15_chage-I_no_shadow_entry/config/etc/gshadow b/tests/tests/chage/15_chage-I_no_shadow_entry/config/etc/gshadow new file mode 100644 index 00000000..5042e581 --- /dev/null +++ b/tests/tests/chage/15_chage-I_no_shadow_entry/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/chage/15_chage-I_no_shadow_entry/config/etc/login.defs b/tests/tests/chage/15_chage-I_no_shadow_entry/config/etc/login.defs new file mode 100644 index 00000000..cf181ac0 --- /dev/null +++ b/tests/tests/chage/15_chage-I_no_shadow_entry/config/etc/login.defs @@ -0,0 +1,314 @@ +# +# /etc/login.defs - Configuration control definitions for the login package. +# +# Three items must be defined: MAIL_DIR, ENV_SUPATH, and ENV_PATH. +# If unspecified, some arbitrary (and possibly incorrect) value will +# be assumed. All other items are optional - if not specified then +# the described action or option will be inhibited. +# +# Comment lines (lines beginning with "#") and blank lines are ignored. +# +# Modified for Linux. --marekm + +# REQUIRED for useradd/userdel/usermod +# Directory where mailboxes reside, _or_ name of file, relative to the +# home directory. If you _do_ define MAIL_DIR and MAIL_FILE, +# MAIL_DIR takes precedence. +# +# Essentially: +# - MAIL_DIR defines the location of users mail spool files +# (for mbox use) by appending the username to MAIL_DIR as defined +# below. +# - MAIL_FILE defines the location of the users mail spool files as the +# fully-qualified filename obtained by prepending the user home +# directory before $MAIL_FILE +# +# NOTE: This is no more used for setting up users MAIL environment variable +# which is, starting from shadow 4.0.12-1 in Debian, entirely the +# job of the pam_mail PAM modules +# See default PAM configuration files provided for +# login, su, etc. +# +# This is a temporary situation: setting these variables will soon +# move to /etc/default/useradd and the variables will then be +# no more supported +MAIL_DIR /var/mail +#MAIL_FILE .mail + +# +# Enable logging and display of /var/log/faillog login failure info. +# This option conflicts with the pam_tally PAM module. +# +FAILLOG_ENAB yes + +# +# Enable display of unknown usernames when login failures are recorded. +# +# WARNING: Unknown usernames may become world readable. +# See #290803 and #298773 for details about how this could become a security +# concern +LOG_UNKFAIL_ENAB no + +# +# Enable logging of successful logins +# +LOG_OK_LOGINS no + +# +# Enable "syslog" logging of su activity - in addition to sulog file logging. +# SYSLOG_SG_ENAB does the same for newgrp and sg. +# +SYSLOG_SU_ENAB yes +SYSLOG_SG_ENAB yes + +# +# If defined, all su activity is logged to this file. +# +#SULOG_FILE /var/log/sulog + +# +# If defined, file which maps tty line to TERM environment parameter. +# Each line of the file is in a format something like "vt100 tty01". +# +#TTYTYPE_FILE /etc/ttytype + +# +# If defined, login failures will be logged here in a utmp format +# last, when invoked as lastb, will read /var/log/btmp, so... +# +FTMP_FILE /var/log/btmp + +# +# If defined, the command name to display when running "su -". For +# example, if this is defined as "su" then a "ps" will display the +# command is "-su". If not defined, then "ps" would display the +# name of the shell actually being run, e.g. something like "-sh". +# +SU_NAME su + +# +# If defined, file which inhibits all the usual chatter during the login +# sequence. If a full pathname, then hushed mode will be enabled if the +# user's name or shell are found in the file. If not a full pathname, then +# hushed mode will be enabled if the file exists in the user's home directory. +# +HUSHLOGIN_FILE .hushlogin +#HUSHLOGIN_FILE /etc/hushlogins + +# +# *REQUIRED* The default PATH settings, for superuser and normal users. +# +# (they are minimal, add the rest in the shell startup files) +ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/games + +# +# Terminal permissions +# +# TTYGROUP Login tty will be assigned this group ownership. +# TTYPERM Login tty will be set to this permission. +# +# If you have a "write" program which is "setgid" to a special group +# which owns the terminals, define TTYGROUP to the group number and +# TTYPERM to 0620. Otherwise leave TTYGROUP commented out and assign +# TTYPERM to either 622 or 600. +# +# In Debian /usr/bin/bsd-write or similar programs are setgid tty +# However, the default and recommended value for TTYPERM is still 0600 +# to not allow anyone to write to anyone else console or terminal + +# Users can still allow other people to write them by issuing +# the "mesg y" command. + +TTYGROUP tty +TTYPERM 0600 + +# +# Login configuration initializations: +# +# ERASECHAR Terminal ERASE character ('\010' = backspace). +# KILLCHAR Terminal KILL character ('\025' = CTRL/U). +# UMASK Default "umask" value. +# +# The ERASECHAR and KILLCHAR are used only on System V machines. +# +# UMASK usage is discouraged because it catches only some classes of user +# entries to system, in fact only those made through login(1), while setting +# umask in shell rc file will catch also logins through su, cron, ssh etc. +# +# At the same time, using shell rc to set umask won't catch entries which use +# non-shell executables in place of login shell, like /usr/sbin/pppd for "ppp" +# user and alike. +# +# Therefore the use of pam_umask is recommended (Debian package libpam-umask) +# as the solution which catches all these cases on PAM-enabled systems. +# +# This avoids the confusion created by having the umask set +# in two different places -- in login.defs and shell rc files (i.e. +# /etc/profile). +# +# For discussion, see #314539 and #248150 as well as the thread starting at +# http://lists.debian.org/debian-devel/2005/06/msg01598.html +# +# Prefix these values with "0" to get octal, "0x" to get hexadecimal. +# +ERASECHAR 0177 +KILLCHAR 025 +# 022 is the "historical" value in Debian for UMASK when it was used +# 027, or even 077, could be considered better for privacy +# There is no One True Answer here : each sysadmin must make up their +# mind. +#UMASK 022 + +# +# Password aging controls: +# +# PASS_MAX_DAYS Maximum number of days a password may be used. +# PASS_MIN_DAYS Minimum number of days allowed between password changes. +# PASS_WARN_AGE Number of days warning given before a password expires. +# +PASS_MAX_DAYS 99999 +PASS_MIN_DAYS 0 +PASS_WARN_AGE 7 + +# +# Min/max values for automatic uid selection in useradd +# +UID_MIN 1000 +UID_MAX 60000 + +# +# Min/max values for automatic gid selection in groupadd +# +GID_MIN 100 +GID_MAX 60000 + +# +# Max number of login retries if password is bad. This will most likely be +# overridden by PAM, since the default pam_unix module has it's own built +# in of 3 retries. However, this is a safe fallback in case you are using +# an authentication module that does not enforce PAM_MAXTRIES. +# +LOGIN_RETRIES 5 + +# +# Max time in seconds for login +# +LOGIN_TIMEOUT 60 + +# +# Which fields may be changed by regular users using chfn - use +# any combination of letters "frwh" (full name, room number, work +# phone, home phone). If not defined, no changes are allowed. +# For backward compatibility, "yes" = "rwh" and "no" = "frwh". +# +CHFN_RESTRICT rwh + +# +# Should login be allowed if we can't cd to the home directory? +# Default is no. +# +DEFAULT_HOME yes + +# +# If defined, this command is run when removing a user. +# It should remove any at/cron/print jobs etc. owned by +# the user to be removed (passed as the first argument). +# +#USERDEL_CMD /usr/sbin/userdel_local + +# +# This enables userdel to remove user groups if no members exist. +# +# Other former uses of this variable such as setting the umask when +# user==primary group are not used in PAM environments, thus in Debian +# +USERGROUPS_ENAB yes + +# +# Instead of the real user shell, the program specified by this parameter +# will be launched, although its visible name (argv[0]) will be the shell's. +# The program may do whatever it wants (logging, additional authentification, +# banner, ...) before running the actual shell. +# +# FAKE_SHELL /bin/fakeshell + +# +# If defined, either full pathname of a file containing device names or +# a ":" delimited list of device names. Root logins will be allowed only +# upon these devices. +# +# This variable is used by login and su. +# +#CONSOLE /etc/consoles +#CONSOLE console:tty01:tty02:tty03:tty04 + +# +# List of groups to add to the user's supplementary group set +# when logging in on the console (as determined by the CONSOLE +# setting). Default is none. +# +# Use with caution - it is possible for users to gain permanent +# access to these groups, even when not logged in on the console. +# How to do it is left as an exercise for the reader... +# +# This variable is used by login and su. +# +#CONSOLE_GROUPS floppy:audio:cdrom + +# +# Only works if compiled with MD5_CRYPT defined: +# If set to "yes", new passwords will be encrypted using the MD5-based +# algorithm compatible with the one used by recent releases of FreeBSD. +# It supports passwords of unlimited length and longer salt strings. +# Set to "no" if you need to copy encrypted passwords to other systems +# which don't understand the new algorithm. Default is "no". +# +# This variable is used by chpasswd, gpasswd and newusers. +# +#MD5_CRYPT_ENAB no + +################# OBSOLETED BY PAM ############## +# # +# These options are now handled by PAM. Please # +# edit the appropriate file in /etc/pam.d/ to # +# enable the equivalents of them. +# +############### + +#MOTD_FILE +#DIALUPS_CHECK_ENAB +#LASTLOG_ENAB +#MAIL_CHECK_ENAB +#OBSCURE_CHECKS_ENAB +#PORTTIME_CHECKS_ENAB +#SU_WHEEL_ONLY +#PASS_CHANGE_TRIES +#PASS_ALWAYS_WARN +#ENVIRON_FILE +#NOLOGINS_FILE +#ISSUE_FILE +#PASS_MIN_LEN +#PASS_MAX_LEN +#ULIMIT +#ENV_HZ +#CHFN_AUTH +#CHSH_AUTH +#FAIL_DELAY + +################# OBSOLETED ####################### +# # +# These options are no more handled by shadow. # +# # +# Shadow utilities will display a warning if they # +# still appear. # +# # +################################################### + +# CLOSE_SESSIONS +# LOGIN_STRING +# NO_PASSWORD_CONSOLE +# QMAIL_DIR + + + diff --git a/tests/tests/chage/15_chage-I_no_shadow_entry/config/etc/passwd b/tests/tests/chage/15_chage-I_no_shadow_entry/config/etc/passwd new file mode 100644 index 00000000..8656be41 --- /dev/null +++ b/tests/tests/chage/15_chage-I_no_shadow_entry/config/etc/passwd @@ -0,0 +1,20 @@ +root:*:0:0:root:/root:/bin/bash +daemon:*:1:1:daemon:/usr/sbin:/bin/sh +bin:*:2:2:bin:/bin:/bin/sh +sys:*:3:3:sys:/dev:/bin/sh +sync:*:4:65534:sync:/bin:/bin/sync +games:*:5:60:games:/usr/games:/bin/sh +man:*:6:12:man:/var/cache/man:/bin/sh +lp:*:7:7:lp:/var/spool/lpd:/bin/sh +mail:*:8:8:mail:/var/mail:/bin/sh +news:*:9:9:news:/var/spool/news:/bin/sh +uucp:*:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:*:13:13:proxy:/bin:/bin/sh +www-data:*:33:33:www-data:/var/www:/bin/sh +backup:*:34:34:backup:/var/backups:/bin/sh +list:*:38:38:Mailing List Manager:/var/list:/bin/sh +irc:*:39:39:ircd:/var/run/ircd:/bin/sh +gnats:*:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:*:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:*:102:102::/var/spool/exim4:/bin/false +foo:abc:1000:1000::/nonexistent:/bin/sh diff --git a/tests/tests/chage/15_chage-I_no_shadow_entry/config/etc/shadow b/tests/tests/chage/15_chage-I_no_shadow_entry/config/etc/shadow new file mode 100644 index 00000000..88faec23 --- /dev/null +++ b/tests/tests/chage/15_chage-I_no_shadow_entry/config/etc/shadow @@ -0,0 +1,19 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/chage/15_chage-I_no_shadow_entry/data/passwd b/tests/tests/chage/15_chage-I_no_shadow_entry/data/passwd new file mode 100644 index 00000000..d9ad1e23 --- /dev/null +++ b/tests/tests/chage/15_chage-I_no_shadow_entry/data/passwd @@ -0,0 +1,20 @@ +root:*:0:0:root:/root:/bin/bash +daemon:*:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:*:3:3:sys:/dev:/bin/sh +sync:*:4:65534:sync:/bin:/bin/sync +games:*:5:60:games:/usr/games:/bin/sh +man:*:6:12:man:/var/cache/man:/bin/sh +lp:*:7:7:lp:/var/spool/lpd:/bin/sh +mail:*:8:8:mail:/var/mail:/bin/sh +news:*:9:9:news:/var/spool/news:/bin/sh +uucp:*:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:*:13:13:proxy:/bin:/bin/sh +www-data:*:33:33:www-data:/var/www:/bin/sh +backup:*:34:34:backup:/var/backups:/bin/sh +list:*:38:38:Mailing List Manager:/var/list:/bin/sh +irc:*:39:39:ircd:/var/run/ircd:/bin/sh +gnats:*:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:*:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:*:102:102::/var/spool/exim4:/bin/false +foo:abc:1000:1000::/nonexistent:/bin/sh diff --git a/tests/tests/chage/15_chage-I_no_shadow_entry/data/shadow b/tests/tests/chage/15_chage-I_no_shadow_entry/data/shadow new file mode 100644 index 00000000..d32d937b --- /dev/null +++ b/tests/tests/chage/15_chage-I_no_shadow_entry/data/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: +bin:*:::::12:: diff --git a/tests/tests/chage/16_chage-m_no_shadow_entry/chage.test b/tests/tests/chage/16_chage-m_no_shadow_entry/chage.test new file mode 100755 index 00000000..778a65aa --- /dev/null +++ b/tests/tests/chage/16_chage-m_no_shadow_entry/chage.test @@ -0,0 +1,39 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../common/config.sh +. ../../common/log.sh + +log_start "$0" "chage creates a shadow entry if there were none" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "Change bin's mindays (chage -m 12 bin)..." +chage -m 12 bin +echo "OK" + +echo -n "Check the passwd file..." +../../common/compare_file.pl data/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../common/compare_file.pl data/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chage/16_chage-m_no_shadow_entry/config.txt b/tests/tests/chage/16_chage-m_no_shadow_entry/config.txt new file mode 100644 index 00000000..e9e4bbed --- /dev/null +++ b/tests/tests/chage/16_chage-m_no_shadow_entry/config.txt @@ -0,0 +1 @@ +group foo, GID 1000 diff --git a/tests/tests/chage/16_chage-m_no_shadow_entry/config/etc/group b/tests/tests/chage/16_chage-m_no_shadow_entry/config/etc/group new file mode 100644 index 00000000..fecba0c4 --- /dev/null +++ b/tests/tests/chage/16_chage-m_no_shadow_entry/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: diff --git a/tests/tests/chage/16_chage-m_no_shadow_entry/config/etc/gshadow b/tests/tests/chage/16_chage-m_no_shadow_entry/config/etc/gshadow new file mode 100644 index 00000000..5042e581 --- /dev/null +++ b/tests/tests/chage/16_chage-m_no_shadow_entry/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/chage/16_chage-m_no_shadow_entry/config/etc/login.defs b/tests/tests/chage/16_chage-m_no_shadow_entry/config/etc/login.defs new file mode 100644 index 00000000..cf181ac0 --- /dev/null +++ b/tests/tests/chage/16_chage-m_no_shadow_entry/config/etc/login.defs @@ -0,0 +1,314 @@ +# +# /etc/login.defs - Configuration control definitions for the login package. +# +# Three items must be defined: MAIL_DIR, ENV_SUPATH, and ENV_PATH. +# If unspecified, some arbitrary (and possibly incorrect) value will +# be assumed. All other items are optional - if not specified then +# the described action or option will be inhibited. +# +# Comment lines (lines beginning with "#") and blank lines are ignored. +# +# Modified for Linux. --marekm + +# REQUIRED for useradd/userdel/usermod +# Directory where mailboxes reside, _or_ name of file, relative to the +# home directory. If you _do_ define MAIL_DIR and MAIL_FILE, +# MAIL_DIR takes precedence. +# +# Essentially: +# - MAIL_DIR defines the location of users mail spool files +# (for mbox use) by appending the username to MAIL_DIR as defined +# below. +# - MAIL_FILE defines the location of the users mail spool files as the +# fully-qualified filename obtained by prepending the user home +# directory before $MAIL_FILE +# +# NOTE: This is no more used for setting up users MAIL environment variable +# which is, starting from shadow 4.0.12-1 in Debian, entirely the +# job of the pam_mail PAM modules +# See default PAM configuration files provided for +# login, su, etc. +# +# This is a temporary situation: setting these variables will soon +# move to /etc/default/useradd and the variables will then be +# no more supported +MAIL_DIR /var/mail +#MAIL_FILE .mail + +# +# Enable logging and display of /var/log/faillog login failure info. +# This option conflicts with the pam_tally PAM module. +# +FAILLOG_ENAB yes + +# +# Enable display of unknown usernames when login failures are recorded. +# +# WARNING: Unknown usernames may become world readable. +# See #290803 and #298773 for details about how this could become a security +# concern +LOG_UNKFAIL_ENAB no + +# +# Enable logging of successful logins +# +LOG_OK_LOGINS no + +# +# Enable "syslog" logging of su activity - in addition to sulog file logging. +# SYSLOG_SG_ENAB does the same for newgrp and sg. +# +SYSLOG_SU_ENAB yes +SYSLOG_SG_ENAB yes + +# +# If defined, all su activity is logged to this file. +# +#SULOG_FILE /var/log/sulog + +# +# If defined, file which maps tty line to TERM environment parameter. +# Each line of the file is in a format something like "vt100 tty01". +# +#TTYTYPE_FILE /etc/ttytype + +# +# If defined, login failures will be logged here in a utmp format +# last, when invoked as lastb, will read /var/log/btmp, so... +# +FTMP_FILE /var/log/btmp + +# +# If defined, the command name to display when running "su -". For +# example, if this is defined as "su" then a "ps" will display the +# command is "-su". If not defined, then "ps" would display the +# name of the shell actually being run, e.g. something like "-sh". +# +SU_NAME su + +# +# If defined, file which inhibits all the usual chatter during the login +# sequence. If a full pathname, then hushed mode will be enabled if the +# user's name or shell are found in the file. If not a full pathname, then +# hushed mode will be enabled if the file exists in the user's home directory. +# +HUSHLOGIN_FILE .hushlogin +#HUSHLOGIN_FILE /etc/hushlogins + +# +# *REQUIRED* The default PATH settings, for superuser and normal users. +# +# (they are minimal, add the rest in the shell startup files) +ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/games + +# +# Terminal permissions +# +# TTYGROUP Login tty will be assigned this group ownership. +# TTYPERM Login tty will be set to this permission. +# +# If you have a "write" program which is "setgid" to a special group +# which owns the terminals, define TTYGROUP to the group number and +# TTYPERM to 0620. Otherwise leave TTYGROUP commented out and assign +# TTYPERM to either 622 or 600. +# +# In Debian /usr/bin/bsd-write or similar programs are setgid tty +# However, the default and recommended value for TTYPERM is still 0600 +# to not allow anyone to write to anyone else console or terminal + +# Users can still allow other people to write them by issuing +# the "mesg y" command. + +TTYGROUP tty +TTYPERM 0600 + +# +# Login configuration initializations: +# +# ERASECHAR Terminal ERASE character ('\010' = backspace). +# KILLCHAR Terminal KILL character ('\025' = CTRL/U). +# UMASK Default "umask" value. +# +# The ERASECHAR and KILLCHAR are used only on System V machines. +# +# UMASK usage is discouraged because it catches only some classes of user +# entries to system, in fact only those made through login(1), while setting +# umask in shell rc file will catch also logins through su, cron, ssh etc. +# +# At the same time, using shell rc to set umask won't catch entries which use +# non-shell executables in place of login shell, like /usr/sbin/pppd for "ppp" +# user and alike. +# +# Therefore the use of pam_umask is recommended (Debian package libpam-umask) +# as the solution which catches all these cases on PAM-enabled systems. +# +# This avoids the confusion created by having the umask set +# in two different places -- in login.defs and shell rc files (i.e. +# /etc/profile). +# +# For discussion, see #314539 and #248150 as well as the thread starting at +# http://lists.debian.org/debian-devel/2005/06/msg01598.html +# +# Prefix these values with "0" to get octal, "0x" to get hexadecimal. +# +ERASECHAR 0177 +KILLCHAR 025 +# 022 is the "historical" value in Debian for UMASK when it was used +# 027, or even 077, could be considered better for privacy +# There is no One True Answer here : each sysadmin must make up their +# mind. +#UMASK 022 + +# +# Password aging controls: +# +# PASS_MAX_DAYS Maximum number of days a password may be used. +# PASS_MIN_DAYS Minimum number of days allowed between password changes. +# PASS_WARN_AGE Number of days warning given before a password expires. +# +PASS_MAX_DAYS 99999 +PASS_MIN_DAYS 0 +PASS_WARN_AGE 7 + +# +# Min/max values for automatic uid selection in useradd +# +UID_MIN 1000 +UID_MAX 60000 + +# +# Min/max values for automatic gid selection in groupadd +# +GID_MIN 100 +GID_MAX 60000 + +# +# Max number of login retries if password is bad. This will most likely be +# overridden by PAM, since the default pam_unix module has it's own built +# in of 3 retries. However, this is a safe fallback in case you are using +# an authentication module that does not enforce PAM_MAXTRIES. +# +LOGIN_RETRIES 5 + +# +# Max time in seconds for login +# +LOGIN_TIMEOUT 60 + +# +# Which fields may be changed by regular users using chfn - use +# any combination of letters "frwh" (full name, room number, work +# phone, home phone). If not defined, no changes are allowed. +# For backward compatibility, "yes" = "rwh" and "no" = "frwh". +# +CHFN_RESTRICT rwh + +# +# Should login be allowed if we can't cd to the home directory? +# Default is no. +# +DEFAULT_HOME yes + +# +# If defined, this command is run when removing a user. +# It should remove any at/cron/print jobs etc. owned by +# the user to be removed (passed as the first argument). +# +#USERDEL_CMD /usr/sbin/userdel_local + +# +# This enables userdel to remove user groups if no members exist. +# +# Other former uses of this variable such as setting the umask when +# user==primary group are not used in PAM environments, thus in Debian +# +USERGROUPS_ENAB yes + +# +# Instead of the real user shell, the program specified by this parameter +# will be launched, although its visible name (argv[0]) will be the shell's. +# The program may do whatever it wants (logging, additional authentification, +# banner, ...) before running the actual shell. +# +# FAKE_SHELL /bin/fakeshell + +# +# If defined, either full pathname of a file containing device names or +# a ":" delimited list of device names. Root logins will be allowed only +# upon these devices. +# +# This variable is used by login and su. +# +#CONSOLE /etc/consoles +#CONSOLE console:tty01:tty02:tty03:tty04 + +# +# List of groups to add to the user's supplementary group set +# when logging in on the console (as determined by the CONSOLE +# setting). Default is none. +# +# Use with caution - it is possible for users to gain permanent +# access to these groups, even when not logged in on the console. +# How to do it is left as an exercise for the reader... +# +# This variable is used by login and su. +# +#CONSOLE_GROUPS floppy:audio:cdrom + +# +# Only works if compiled with MD5_CRYPT defined: +# If set to "yes", new passwords will be encrypted using the MD5-based +# algorithm compatible with the one used by recent releases of FreeBSD. +# It supports passwords of unlimited length and longer salt strings. +# Set to "no" if you need to copy encrypted passwords to other systems +# which don't understand the new algorithm. Default is "no". +# +# This variable is used by chpasswd, gpasswd and newusers. +# +#MD5_CRYPT_ENAB no + +################# OBSOLETED BY PAM ############## +# # +# These options are now handled by PAM. Please # +# edit the appropriate file in /etc/pam.d/ to # +# enable the equivalents of them. +# +############### + +#MOTD_FILE +#DIALUPS_CHECK_ENAB +#LASTLOG_ENAB +#MAIL_CHECK_ENAB +#OBSCURE_CHECKS_ENAB +#PORTTIME_CHECKS_ENAB +#SU_WHEEL_ONLY +#PASS_CHANGE_TRIES +#PASS_ALWAYS_WARN +#ENVIRON_FILE +#NOLOGINS_FILE +#ISSUE_FILE +#PASS_MIN_LEN +#PASS_MAX_LEN +#ULIMIT +#ENV_HZ +#CHFN_AUTH +#CHSH_AUTH +#FAIL_DELAY + +################# OBSOLETED ####################### +# # +# These options are no more handled by shadow. # +# # +# Shadow utilities will display a warning if they # +# still appear. # +# # +################################################### + +# CLOSE_SESSIONS +# LOGIN_STRING +# NO_PASSWORD_CONSOLE +# QMAIL_DIR + + + diff --git a/tests/tests/chage/16_chage-m_no_shadow_entry/config/etc/passwd b/tests/tests/chage/16_chage-m_no_shadow_entry/config/etc/passwd new file mode 100644 index 00000000..8656be41 --- /dev/null +++ b/tests/tests/chage/16_chage-m_no_shadow_entry/config/etc/passwd @@ -0,0 +1,20 @@ +root:*:0:0:root:/root:/bin/bash +daemon:*:1:1:daemon:/usr/sbin:/bin/sh +bin:*:2:2:bin:/bin:/bin/sh +sys:*:3:3:sys:/dev:/bin/sh +sync:*:4:65534:sync:/bin:/bin/sync +games:*:5:60:games:/usr/games:/bin/sh +man:*:6:12:man:/var/cache/man:/bin/sh +lp:*:7:7:lp:/var/spool/lpd:/bin/sh +mail:*:8:8:mail:/var/mail:/bin/sh +news:*:9:9:news:/var/spool/news:/bin/sh +uucp:*:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:*:13:13:proxy:/bin:/bin/sh +www-data:*:33:33:www-data:/var/www:/bin/sh +backup:*:34:34:backup:/var/backups:/bin/sh +list:*:38:38:Mailing List Manager:/var/list:/bin/sh +irc:*:39:39:ircd:/var/run/ircd:/bin/sh +gnats:*:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:*:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:*:102:102::/var/spool/exim4:/bin/false +foo:abc:1000:1000::/nonexistent:/bin/sh diff --git a/tests/tests/chage/16_chage-m_no_shadow_entry/config/etc/shadow b/tests/tests/chage/16_chage-m_no_shadow_entry/config/etc/shadow new file mode 100644 index 00000000..88faec23 --- /dev/null +++ b/tests/tests/chage/16_chage-m_no_shadow_entry/config/etc/shadow @@ -0,0 +1,19 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/chage/16_chage-m_no_shadow_entry/data/passwd b/tests/tests/chage/16_chage-m_no_shadow_entry/data/passwd new file mode 100644 index 00000000..d9ad1e23 --- /dev/null +++ b/tests/tests/chage/16_chage-m_no_shadow_entry/data/passwd @@ -0,0 +1,20 @@ +root:*:0:0:root:/root:/bin/bash +daemon:*:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:*:3:3:sys:/dev:/bin/sh +sync:*:4:65534:sync:/bin:/bin/sync +games:*:5:60:games:/usr/games:/bin/sh +man:*:6:12:man:/var/cache/man:/bin/sh +lp:*:7:7:lp:/var/spool/lpd:/bin/sh +mail:*:8:8:mail:/var/mail:/bin/sh +news:*:9:9:news:/var/spool/news:/bin/sh +uucp:*:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:*:13:13:proxy:/bin:/bin/sh +www-data:*:33:33:www-data:/var/www:/bin/sh +backup:*:34:34:backup:/var/backups:/bin/sh +list:*:38:38:Mailing List Manager:/var/list:/bin/sh +irc:*:39:39:ircd:/var/run/ircd:/bin/sh +gnats:*:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:*:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:*:102:102::/var/spool/exim4:/bin/false +foo:abc:1000:1000::/nonexistent:/bin/sh diff --git a/tests/tests/chage/16_chage-m_no_shadow_entry/data/shadow b/tests/tests/chage/16_chage-m_no_shadow_entry/data/shadow new file mode 100644 index 00000000..dc6bc8bb --- /dev/null +++ b/tests/tests/chage/16_chage-m_no_shadow_entry/data/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: +bin:*::12::::: diff --git a/tests/tests/chage/17_chage-M_no_shadow_entry/chage.test b/tests/tests/chage/17_chage-M_no_shadow_entry/chage.test new file mode 100755 index 00000000..6b70f066 --- /dev/null +++ b/tests/tests/chage/17_chage-M_no_shadow_entry/chage.test @@ -0,0 +1,39 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../common/config.sh +. ../../common/log.sh + +log_start "$0" "chage creates a shadow entry if there were none" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "Change bin's mindays (chage -M 12 bin)..." +chage -M 12 bin +echo "OK" + +echo -n "Check the passwd file..." +../../common/compare_file.pl data/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../common/compare_file.pl data/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chage/17_chage-M_no_shadow_entry/config.txt b/tests/tests/chage/17_chage-M_no_shadow_entry/config.txt new file mode 100644 index 00000000..e9e4bbed --- /dev/null +++ b/tests/tests/chage/17_chage-M_no_shadow_entry/config.txt @@ -0,0 +1 @@ +group foo, GID 1000 diff --git a/tests/tests/chage/17_chage-M_no_shadow_entry/config/etc/group b/tests/tests/chage/17_chage-M_no_shadow_entry/config/etc/group new file mode 100644 index 00000000..fecba0c4 --- /dev/null +++ b/tests/tests/chage/17_chage-M_no_shadow_entry/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: diff --git a/tests/tests/chage/17_chage-M_no_shadow_entry/config/etc/gshadow b/tests/tests/chage/17_chage-M_no_shadow_entry/config/etc/gshadow new file mode 100644 index 00000000..5042e581 --- /dev/null +++ b/tests/tests/chage/17_chage-M_no_shadow_entry/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/chage/17_chage-M_no_shadow_entry/config/etc/login.defs b/tests/tests/chage/17_chage-M_no_shadow_entry/config/etc/login.defs new file mode 100644 index 00000000..cf181ac0 --- /dev/null +++ b/tests/tests/chage/17_chage-M_no_shadow_entry/config/etc/login.defs @@ -0,0 +1,314 @@ +# +# /etc/login.defs - Configuration control definitions for the login package. +# +# Three items must be defined: MAIL_DIR, ENV_SUPATH, and ENV_PATH. +# If unspecified, some arbitrary (and possibly incorrect) value will +# be assumed. All other items are optional - if not specified then +# the described action or option will be inhibited. +# +# Comment lines (lines beginning with "#") and blank lines are ignored. +# +# Modified for Linux. --marekm + +# REQUIRED for useradd/userdel/usermod +# Directory where mailboxes reside, _or_ name of file, relative to the +# home directory. If you _do_ define MAIL_DIR and MAIL_FILE, +# MAIL_DIR takes precedence. +# +# Essentially: +# - MAIL_DIR defines the location of users mail spool files +# (for mbox use) by appending the username to MAIL_DIR as defined +# below. +# - MAIL_FILE defines the location of the users mail spool files as the +# fully-qualified filename obtained by prepending the user home +# directory before $MAIL_FILE +# +# NOTE: This is no more used for setting up users MAIL environment variable +# which is, starting from shadow 4.0.12-1 in Debian, entirely the +# job of the pam_mail PAM modules +# See default PAM configuration files provided for +# login, su, etc. +# +# This is a temporary situation: setting these variables will soon +# move to /etc/default/useradd and the variables will then be +# no more supported +MAIL_DIR /var/mail +#MAIL_FILE .mail + +# +# Enable logging and display of /var/log/faillog login failure info. +# This option conflicts with the pam_tally PAM module. +# +FAILLOG_ENAB yes + +# +# Enable display of unknown usernames when login failures are recorded. +# +# WARNING: Unknown usernames may become world readable. +# See #290803 and #298773 for details about how this could become a security +# concern +LOG_UNKFAIL_ENAB no + +# +# Enable logging of successful logins +# +LOG_OK_LOGINS no + +# +# Enable "syslog" logging of su activity - in addition to sulog file logging. +# SYSLOG_SG_ENAB does the same for newgrp and sg. +# +SYSLOG_SU_ENAB yes +SYSLOG_SG_ENAB yes + +# +# If defined, all su activity is logged to this file. +# +#SULOG_FILE /var/log/sulog + +# +# If defined, file which maps tty line to TERM environment parameter. +# Each line of the file is in a format something like "vt100 tty01". +# +#TTYTYPE_FILE /etc/ttytype + +# +# If defined, login failures will be logged here in a utmp format +# last, when invoked as lastb, will read /var/log/btmp, so... +# +FTMP_FILE /var/log/btmp + +# +# If defined, the command name to display when running "su -". For +# example, if this is defined as "su" then a "ps" will display the +# command is "-su". If not defined, then "ps" would display the +# name of the shell actually being run, e.g. something like "-sh". +# +SU_NAME su + +# +# If defined, file which inhibits all the usual chatter during the login +# sequence. If a full pathname, then hushed mode will be enabled if the +# user's name or shell are found in the file. If not a full pathname, then +# hushed mode will be enabled if the file exists in the user's home directory. +# +HUSHLOGIN_FILE .hushlogin +#HUSHLOGIN_FILE /etc/hushlogins + +# +# *REQUIRED* The default PATH settings, for superuser and normal users. +# +# (they are minimal, add the rest in the shell startup files) +ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/games + +# +# Terminal permissions +# +# TTYGROUP Login tty will be assigned this group ownership. +# TTYPERM Login tty will be set to this permission. +# +# If you have a "write" program which is "setgid" to a special group +# which owns the terminals, define TTYGROUP to the group number and +# TTYPERM to 0620. Otherwise leave TTYGROUP commented out and assign +# TTYPERM to either 622 or 600. +# +# In Debian /usr/bin/bsd-write or similar programs are setgid tty +# However, the default and recommended value for TTYPERM is still 0600 +# to not allow anyone to write to anyone else console or terminal + +# Users can still allow other people to write them by issuing +# the "mesg y" command. + +TTYGROUP tty +TTYPERM 0600 + +# +# Login configuration initializations: +# +# ERASECHAR Terminal ERASE character ('\010' = backspace). +# KILLCHAR Terminal KILL character ('\025' = CTRL/U). +# UMASK Default "umask" value. +# +# The ERASECHAR and KILLCHAR are used only on System V machines. +# +# UMASK usage is discouraged because it catches only some classes of user +# entries to system, in fact only those made through login(1), while setting +# umask in shell rc file will catch also logins through su, cron, ssh etc. +# +# At the same time, using shell rc to set umask won't catch entries which use +# non-shell executables in place of login shell, like /usr/sbin/pppd for "ppp" +# user and alike. +# +# Therefore the use of pam_umask is recommended (Debian package libpam-umask) +# as the solution which catches all these cases on PAM-enabled systems. +# +# This avoids the confusion created by having the umask set +# in two different places -- in login.defs and shell rc files (i.e. +# /etc/profile). +# +# For discussion, see #314539 and #248150 as well as the thread starting at +# http://lists.debian.org/debian-devel/2005/06/msg01598.html +# +# Prefix these values with "0" to get octal, "0x" to get hexadecimal. +# +ERASECHAR 0177 +KILLCHAR 025 +# 022 is the "historical" value in Debian for UMASK when it was used +# 027, or even 077, could be considered better for privacy +# There is no One True Answer here : each sysadmin must make up their +# mind. +#UMASK 022 + +# +# Password aging controls: +# +# PASS_MAX_DAYS Maximum number of days a password may be used. +# PASS_MIN_DAYS Minimum number of days allowed between password changes. +# PASS_WARN_AGE Number of days warning given before a password expires. +# +PASS_MAX_DAYS 99999 +PASS_MIN_DAYS 0 +PASS_WARN_AGE 7 + +# +# Min/max values for automatic uid selection in useradd +# +UID_MIN 1000 +UID_MAX 60000 + +# +# Min/max values for automatic gid selection in groupadd +# +GID_MIN 100 +GID_MAX 60000 + +# +# Max number of login retries if password is bad. This will most likely be +# overridden by PAM, since the default pam_unix module has it's own built +# in of 3 retries. However, this is a safe fallback in case you are using +# an authentication module that does not enforce PAM_MAXTRIES. +# +LOGIN_RETRIES 5 + +# +# Max time in seconds for login +# +LOGIN_TIMEOUT 60 + +# +# Which fields may be changed by regular users using chfn - use +# any combination of letters "frwh" (full name, room number, work +# phone, home phone). If not defined, no changes are allowed. +# For backward compatibility, "yes" = "rwh" and "no" = "frwh". +# +CHFN_RESTRICT rwh + +# +# Should login be allowed if we can't cd to the home directory? +# Default is no. +# +DEFAULT_HOME yes + +# +# If defined, this command is run when removing a user. +# It should remove any at/cron/print jobs etc. owned by +# the user to be removed (passed as the first argument). +# +#USERDEL_CMD /usr/sbin/userdel_local + +# +# This enables userdel to remove user groups if no members exist. +# +# Other former uses of this variable such as setting the umask when +# user==primary group are not used in PAM environments, thus in Debian +# +USERGROUPS_ENAB yes + +# +# Instead of the real user shell, the program specified by this parameter +# will be launched, although its visible name (argv[0]) will be the shell's. +# The program may do whatever it wants (logging, additional authentification, +# banner, ...) before running the actual shell. +# +# FAKE_SHELL /bin/fakeshell + +# +# If defined, either full pathname of a file containing device names or +# a ":" delimited list of device names. Root logins will be allowed only +# upon these devices. +# +# This variable is used by login and su. +# +#CONSOLE /etc/consoles +#CONSOLE console:tty01:tty02:tty03:tty04 + +# +# List of groups to add to the user's supplementary group set +# when logging in on the console (as determined by the CONSOLE +# setting). Default is none. +# +# Use with caution - it is possible for users to gain permanent +# access to these groups, even when not logged in on the console. +# How to do it is left as an exercise for the reader... +# +# This variable is used by login and su. +# +#CONSOLE_GROUPS floppy:audio:cdrom + +# +# Only works if compiled with MD5_CRYPT defined: +# If set to "yes", new passwords will be encrypted using the MD5-based +# algorithm compatible with the one used by recent releases of FreeBSD. +# It supports passwords of unlimited length and longer salt strings. +# Set to "no" if you need to copy encrypted passwords to other systems +# which don't understand the new algorithm. Default is "no". +# +# This variable is used by chpasswd, gpasswd and newusers. +# +#MD5_CRYPT_ENAB no + +################# OBSOLETED BY PAM ############## +# # +# These options are now handled by PAM. Please # +# edit the appropriate file in /etc/pam.d/ to # +# enable the equivalents of them. +# +############### + +#MOTD_FILE +#DIALUPS_CHECK_ENAB +#LASTLOG_ENAB +#MAIL_CHECK_ENAB +#OBSCURE_CHECKS_ENAB +#PORTTIME_CHECKS_ENAB +#SU_WHEEL_ONLY +#PASS_CHANGE_TRIES +#PASS_ALWAYS_WARN +#ENVIRON_FILE +#NOLOGINS_FILE +#ISSUE_FILE +#PASS_MIN_LEN +#PASS_MAX_LEN +#ULIMIT +#ENV_HZ +#CHFN_AUTH +#CHSH_AUTH +#FAIL_DELAY + +################# OBSOLETED ####################### +# # +# These options are no more handled by shadow. # +# # +# Shadow utilities will display a warning if they # +# still appear. # +# # +################################################### + +# CLOSE_SESSIONS +# LOGIN_STRING +# NO_PASSWORD_CONSOLE +# QMAIL_DIR + + + diff --git a/tests/tests/chage/17_chage-M_no_shadow_entry/config/etc/passwd b/tests/tests/chage/17_chage-M_no_shadow_entry/config/etc/passwd new file mode 100644 index 00000000..8656be41 --- /dev/null +++ b/tests/tests/chage/17_chage-M_no_shadow_entry/config/etc/passwd @@ -0,0 +1,20 @@ +root:*:0:0:root:/root:/bin/bash +daemon:*:1:1:daemon:/usr/sbin:/bin/sh +bin:*:2:2:bin:/bin:/bin/sh +sys:*:3:3:sys:/dev:/bin/sh +sync:*:4:65534:sync:/bin:/bin/sync +games:*:5:60:games:/usr/games:/bin/sh +man:*:6:12:man:/var/cache/man:/bin/sh +lp:*:7:7:lp:/var/spool/lpd:/bin/sh +mail:*:8:8:mail:/var/mail:/bin/sh +news:*:9:9:news:/var/spool/news:/bin/sh +uucp:*:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:*:13:13:proxy:/bin:/bin/sh +www-data:*:33:33:www-data:/var/www:/bin/sh +backup:*:34:34:backup:/var/backups:/bin/sh +list:*:38:38:Mailing List Manager:/var/list:/bin/sh +irc:*:39:39:ircd:/var/run/ircd:/bin/sh +gnats:*:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:*:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:*:102:102::/var/spool/exim4:/bin/false +foo:abc:1000:1000::/nonexistent:/bin/sh diff --git a/tests/tests/chage/17_chage-M_no_shadow_entry/config/etc/shadow b/tests/tests/chage/17_chage-M_no_shadow_entry/config/etc/shadow new file mode 100644 index 00000000..88faec23 --- /dev/null +++ b/tests/tests/chage/17_chage-M_no_shadow_entry/config/etc/shadow @@ -0,0 +1,19 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/chage/17_chage-M_no_shadow_entry/data/passwd b/tests/tests/chage/17_chage-M_no_shadow_entry/data/passwd new file mode 100644 index 00000000..d9ad1e23 --- /dev/null +++ b/tests/tests/chage/17_chage-M_no_shadow_entry/data/passwd @@ -0,0 +1,20 @@ +root:*:0:0:root:/root:/bin/bash +daemon:*:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:*:3:3:sys:/dev:/bin/sh +sync:*:4:65534:sync:/bin:/bin/sync +games:*:5:60:games:/usr/games:/bin/sh +man:*:6:12:man:/var/cache/man:/bin/sh +lp:*:7:7:lp:/var/spool/lpd:/bin/sh +mail:*:8:8:mail:/var/mail:/bin/sh +news:*:9:9:news:/var/spool/news:/bin/sh +uucp:*:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:*:13:13:proxy:/bin:/bin/sh +www-data:*:33:33:www-data:/var/www:/bin/sh +backup:*:34:34:backup:/var/backups:/bin/sh +list:*:38:38:Mailing List Manager:/var/list:/bin/sh +irc:*:39:39:ircd:/var/run/ircd:/bin/sh +gnats:*:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:*:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:*:102:102::/var/spool/exim4:/bin/false +foo:abc:1000:1000::/nonexistent:/bin/sh diff --git a/tests/tests/chage/17_chage-M_no_shadow_entry/data/shadow b/tests/tests/chage/17_chage-M_no_shadow_entry/data/shadow new file mode 100644 index 00000000..fb623f7c --- /dev/null +++ b/tests/tests/chage/17_chage-M_no_shadow_entry/data/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: +bin:*:::12:::: diff --git a/tests/tests/chage/18_chage-d_no_shadow_entry/chage.test b/tests/tests/chage/18_chage-d_no_shadow_entry/chage.test new file mode 100755 index 00000000..fb56cef8 --- /dev/null +++ b/tests/tests/chage/18_chage-d_no_shadow_entry/chage.test @@ -0,0 +1,39 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../common/config.sh +. ../../common/log.sh + +log_start "$0" "chage creates a shadow entry if there were none" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "Change bin's mindays (chage -d 2011-09-11 bin)..." +chage -d 2011-09-11 bin +echo "OK" + +echo -n "Check the passwd file..." +../../common/compare_file.pl data/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../common/compare_file.pl data/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chage/18_chage-d_no_shadow_entry/config.txt b/tests/tests/chage/18_chage-d_no_shadow_entry/config.txt new file mode 100644 index 00000000..e9e4bbed --- /dev/null +++ b/tests/tests/chage/18_chage-d_no_shadow_entry/config.txt @@ -0,0 +1 @@ +group foo, GID 1000 diff --git a/tests/tests/chage/18_chage-d_no_shadow_entry/config/etc/group b/tests/tests/chage/18_chage-d_no_shadow_entry/config/etc/group new file mode 100644 index 00000000..fecba0c4 --- /dev/null +++ b/tests/tests/chage/18_chage-d_no_shadow_entry/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: diff --git a/tests/tests/chage/18_chage-d_no_shadow_entry/config/etc/gshadow b/tests/tests/chage/18_chage-d_no_shadow_entry/config/etc/gshadow new file mode 100644 index 00000000..5042e581 --- /dev/null +++ b/tests/tests/chage/18_chage-d_no_shadow_entry/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/chage/18_chage-d_no_shadow_entry/config/etc/login.defs b/tests/tests/chage/18_chage-d_no_shadow_entry/config/etc/login.defs new file mode 100644 index 00000000..cf181ac0 --- /dev/null +++ b/tests/tests/chage/18_chage-d_no_shadow_entry/config/etc/login.defs @@ -0,0 +1,314 @@ +# +# /etc/login.defs - Configuration control definitions for the login package. +# +# Three items must be defined: MAIL_DIR, ENV_SUPATH, and ENV_PATH. +# If unspecified, some arbitrary (and possibly incorrect) value will +# be assumed. All other items are optional - if not specified then +# the described action or option will be inhibited. +# +# Comment lines (lines beginning with "#") and blank lines are ignored. +# +# Modified for Linux. --marekm + +# REQUIRED for useradd/userdel/usermod +# Directory where mailboxes reside, _or_ name of file, relative to the +# home directory. If you _do_ define MAIL_DIR and MAIL_FILE, +# MAIL_DIR takes precedence. +# +# Essentially: +# - MAIL_DIR defines the location of users mail spool files +# (for mbox use) by appending the username to MAIL_DIR as defined +# below. +# - MAIL_FILE defines the location of the users mail spool files as the +# fully-qualified filename obtained by prepending the user home +# directory before $MAIL_FILE +# +# NOTE: This is no more used for setting up users MAIL environment variable +# which is, starting from shadow 4.0.12-1 in Debian, entirely the +# job of the pam_mail PAM modules +# See default PAM configuration files provided for +# login, su, etc. +# +# This is a temporary situation: setting these variables will soon +# move to /etc/default/useradd and the variables will then be +# no more supported +MAIL_DIR /var/mail +#MAIL_FILE .mail + +# +# Enable logging and display of /var/log/faillog login failure info. +# This option conflicts with the pam_tally PAM module. +# +FAILLOG_ENAB yes + +# +# Enable display of unknown usernames when login failures are recorded. +# +# WARNING: Unknown usernames may become world readable. +# See #290803 and #298773 for details about how this could become a security +# concern +LOG_UNKFAIL_ENAB no + +# +# Enable logging of successful logins +# +LOG_OK_LOGINS no + +# +# Enable "syslog" logging of su activity - in addition to sulog file logging. +# SYSLOG_SG_ENAB does the same for newgrp and sg. +# +SYSLOG_SU_ENAB yes +SYSLOG_SG_ENAB yes + +# +# If defined, all su activity is logged to this file. +# +#SULOG_FILE /var/log/sulog + +# +# If defined, file which maps tty line to TERM environment parameter. +# Each line of the file is in a format something like "vt100 tty01". +# +#TTYTYPE_FILE /etc/ttytype + +# +# If defined, login failures will be logged here in a utmp format +# last, when invoked as lastb, will read /var/log/btmp, so... +# +FTMP_FILE /var/log/btmp + +# +# If defined, the command name to display when running "su -". For +# example, if this is defined as "su" then a "ps" will display the +# command is "-su". If not defined, then "ps" would display the +# name of the shell actually being run, e.g. something like "-sh". +# +SU_NAME su + +# +# If defined, file which inhibits all the usual chatter during the login +# sequence. If a full pathname, then hushed mode will be enabled if the +# user's name or shell are found in the file. If not a full pathname, then +# hushed mode will be enabled if the file exists in the user's home directory. +# +HUSHLOGIN_FILE .hushlogin +#HUSHLOGIN_FILE /etc/hushlogins + +# +# *REQUIRED* The default PATH settings, for superuser and normal users. +# +# (they are minimal, add the rest in the shell startup files) +ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/games + +# +# Terminal permissions +# +# TTYGROUP Login tty will be assigned this group ownership. +# TTYPERM Login tty will be set to this permission. +# +# If you have a "write" program which is "setgid" to a special group +# which owns the terminals, define TTYGROUP to the group number and +# TTYPERM to 0620. Otherwise leave TTYGROUP commented out and assign +# TTYPERM to either 622 or 600. +# +# In Debian /usr/bin/bsd-write or similar programs are setgid tty +# However, the default and recommended value for TTYPERM is still 0600 +# to not allow anyone to write to anyone else console or terminal + +# Users can still allow other people to write them by issuing +# the "mesg y" command. + +TTYGROUP tty +TTYPERM 0600 + +# +# Login configuration initializations: +# +# ERASECHAR Terminal ERASE character ('\010' = backspace). +# KILLCHAR Terminal KILL character ('\025' = CTRL/U). +# UMASK Default "umask" value. +# +# The ERASECHAR and KILLCHAR are used only on System V machines. +# +# UMASK usage is discouraged because it catches only some classes of user +# entries to system, in fact only those made through login(1), while setting +# umask in shell rc file will catch also logins through su, cron, ssh etc. +# +# At the same time, using shell rc to set umask won't catch entries which use +# non-shell executables in place of login shell, like /usr/sbin/pppd for "ppp" +# user and alike. +# +# Therefore the use of pam_umask is recommended (Debian package libpam-umask) +# as the solution which catches all these cases on PAM-enabled systems. +# +# This avoids the confusion created by having the umask set +# in two different places -- in login.defs and shell rc files (i.e. +# /etc/profile). +# +# For discussion, see #314539 and #248150 as well as the thread starting at +# http://lists.debian.org/debian-devel/2005/06/msg01598.html +# +# Prefix these values with "0" to get octal, "0x" to get hexadecimal. +# +ERASECHAR 0177 +KILLCHAR 025 +# 022 is the "historical" value in Debian for UMASK when it was used +# 027, or even 077, could be considered better for privacy +# There is no One True Answer here : each sysadmin must make up their +# mind. +#UMASK 022 + +# +# Password aging controls: +# +# PASS_MAX_DAYS Maximum number of days a password may be used. +# PASS_MIN_DAYS Minimum number of days allowed between password changes. +# PASS_WARN_AGE Number of days warning given before a password expires. +# +PASS_MAX_DAYS 99999 +PASS_MIN_DAYS 0 +PASS_WARN_AGE 7 + +# +# Min/max values for automatic uid selection in useradd +# +UID_MIN 1000 +UID_MAX 60000 + +# +# Min/max values for automatic gid selection in groupadd +# +GID_MIN 100 +GID_MAX 60000 + +# +# Max number of login retries if password is bad. This will most likely be +# overridden by PAM, since the default pam_unix module has it's own built +# in of 3 retries. However, this is a safe fallback in case you are using +# an authentication module that does not enforce PAM_MAXTRIES. +# +LOGIN_RETRIES 5 + +# +# Max time in seconds for login +# +LOGIN_TIMEOUT 60 + +# +# Which fields may be changed by regular users using chfn - use +# any combination of letters "frwh" (full name, room number, work +# phone, home phone). If not defined, no changes are allowed. +# For backward compatibility, "yes" = "rwh" and "no" = "frwh". +# +CHFN_RESTRICT rwh + +# +# Should login be allowed if we can't cd to the home directory? +# Default is no. +# +DEFAULT_HOME yes + +# +# If defined, this command is run when removing a user. +# It should remove any at/cron/print jobs etc. owned by +# the user to be removed (passed as the first argument). +# +#USERDEL_CMD /usr/sbin/userdel_local + +# +# This enables userdel to remove user groups if no members exist. +# +# Other former uses of this variable such as setting the umask when +# user==primary group are not used in PAM environments, thus in Debian +# +USERGROUPS_ENAB yes + +# +# Instead of the real user shell, the program specified by this parameter +# will be launched, although its visible name (argv[0]) will be the shell's. +# The program may do whatever it wants (logging, additional authentification, +# banner, ...) before running the actual shell. +# +# FAKE_SHELL /bin/fakeshell + +# +# If defined, either full pathname of a file containing device names or +# a ":" delimited list of device names. Root logins will be allowed only +# upon these devices. +# +# This variable is used by login and su. +# +#CONSOLE /etc/consoles +#CONSOLE console:tty01:tty02:tty03:tty04 + +# +# List of groups to add to the user's supplementary group set +# when logging in on the console (as determined by the CONSOLE +# setting). Default is none. +# +# Use with caution - it is possible for users to gain permanent +# access to these groups, even when not logged in on the console. +# How to do it is left as an exercise for the reader... +# +# This variable is used by login and su. +# +#CONSOLE_GROUPS floppy:audio:cdrom + +# +# Only works if compiled with MD5_CRYPT defined: +# If set to "yes", new passwords will be encrypted using the MD5-based +# algorithm compatible with the one used by recent releases of FreeBSD. +# It supports passwords of unlimited length and longer salt strings. +# Set to "no" if you need to copy encrypted passwords to other systems +# which don't understand the new algorithm. Default is "no". +# +# This variable is used by chpasswd, gpasswd and newusers. +# +#MD5_CRYPT_ENAB no + +################# OBSOLETED BY PAM ############## +# # +# These options are now handled by PAM. Please # +# edit the appropriate file in /etc/pam.d/ to # +# enable the equivalents of them. +# +############### + +#MOTD_FILE +#DIALUPS_CHECK_ENAB +#LASTLOG_ENAB +#MAIL_CHECK_ENAB +#OBSCURE_CHECKS_ENAB +#PORTTIME_CHECKS_ENAB +#SU_WHEEL_ONLY +#PASS_CHANGE_TRIES +#PASS_ALWAYS_WARN +#ENVIRON_FILE +#NOLOGINS_FILE +#ISSUE_FILE +#PASS_MIN_LEN +#PASS_MAX_LEN +#ULIMIT +#ENV_HZ +#CHFN_AUTH +#CHSH_AUTH +#FAIL_DELAY + +################# OBSOLETED ####################### +# # +# These options are no more handled by shadow. # +# # +# Shadow utilities will display a warning if they # +# still appear. # +# # +################################################### + +# CLOSE_SESSIONS +# LOGIN_STRING +# NO_PASSWORD_CONSOLE +# QMAIL_DIR + + + diff --git a/tests/tests/chage/18_chage-d_no_shadow_entry/config/etc/passwd b/tests/tests/chage/18_chage-d_no_shadow_entry/config/etc/passwd new file mode 100644 index 00000000..8656be41 --- /dev/null +++ b/tests/tests/chage/18_chage-d_no_shadow_entry/config/etc/passwd @@ -0,0 +1,20 @@ +root:*:0:0:root:/root:/bin/bash +daemon:*:1:1:daemon:/usr/sbin:/bin/sh +bin:*:2:2:bin:/bin:/bin/sh +sys:*:3:3:sys:/dev:/bin/sh +sync:*:4:65534:sync:/bin:/bin/sync +games:*:5:60:games:/usr/games:/bin/sh +man:*:6:12:man:/var/cache/man:/bin/sh +lp:*:7:7:lp:/var/spool/lpd:/bin/sh +mail:*:8:8:mail:/var/mail:/bin/sh +news:*:9:9:news:/var/spool/news:/bin/sh +uucp:*:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:*:13:13:proxy:/bin:/bin/sh +www-data:*:33:33:www-data:/var/www:/bin/sh +backup:*:34:34:backup:/var/backups:/bin/sh +list:*:38:38:Mailing List Manager:/var/list:/bin/sh +irc:*:39:39:ircd:/var/run/ircd:/bin/sh +gnats:*:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:*:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:*:102:102::/var/spool/exim4:/bin/false +foo:abc:1000:1000::/nonexistent:/bin/sh diff --git a/tests/tests/chage/18_chage-d_no_shadow_entry/config/etc/shadow b/tests/tests/chage/18_chage-d_no_shadow_entry/config/etc/shadow new file mode 100644 index 00000000..88faec23 --- /dev/null +++ b/tests/tests/chage/18_chage-d_no_shadow_entry/config/etc/shadow @@ -0,0 +1,19 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/chage/18_chage-d_no_shadow_entry/data/passwd b/tests/tests/chage/18_chage-d_no_shadow_entry/data/passwd new file mode 100644 index 00000000..d9ad1e23 --- /dev/null +++ b/tests/tests/chage/18_chage-d_no_shadow_entry/data/passwd @@ -0,0 +1,20 @@ +root:*:0:0:root:/root:/bin/bash +daemon:*:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:*:3:3:sys:/dev:/bin/sh +sync:*:4:65534:sync:/bin:/bin/sync +games:*:5:60:games:/usr/games:/bin/sh +man:*:6:12:man:/var/cache/man:/bin/sh +lp:*:7:7:lp:/var/spool/lpd:/bin/sh +mail:*:8:8:mail:/var/mail:/bin/sh +news:*:9:9:news:/var/spool/news:/bin/sh +uucp:*:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:*:13:13:proxy:/bin:/bin/sh +www-data:*:33:33:www-data:/var/www:/bin/sh +backup:*:34:34:backup:/var/backups:/bin/sh +list:*:38:38:Mailing List Manager:/var/list:/bin/sh +irc:*:39:39:ircd:/var/run/ircd:/bin/sh +gnats:*:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:*:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:*:102:102::/var/spool/exim4:/bin/false +foo:abc:1000:1000::/nonexistent:/bin/sh diff --git a/tests/tests/chage/18_chage-d_no_shadow_entry/data/shadow b/tests/tests/chage/18_chage-d_no_shadow_entry/data/shadow new file mode 100644 index 00000000..df82e6ca --- /dev/null +++ b/tests/tests/chage/18_chage-d_no_shadow_entry/data/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: +bin:*:15228:::::: diff --git a/tests/tests/chage/19_chage-W_no_shadow_entry/chage.test b/tests/tests/chage/19_chage-W_no_shadow_entry/chage.test new file mode 100755 index 00000000..410ccbb9 --- /dev/null +++ b/tests/tests/chage/19_chage-W_no_shadow_entry/chage.test @@ -0,0 +1,39 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../common/config.sh +. ../../common/log.sh + +log_start "$0" "chage creates a shadow entry if there were none" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "Change bin's mindays (chage -W 12 bin)..." +chage -W 12 bin +echo "OK" + +echo -n "Check the passwd file..." +../../common/compare_file.pl data/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../common/compare_file.pl data/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chage/19_chage-W_no_shadow_entry/config.txt b/tests/tests/chage/19_chage-W_no_shadow_entry/config.txt new file mode 100644 index 00000000..e9e4bbed --- /dev/null +++ b/tests/tests/chage/19_chage-W_no_shadow_entry/config.txt @@ -0,0 +1 @@ +group foo, GID 1000 diff --git a/tests/tests/chage/19_chage-W_no_shadow_entry/config/etc/group b/tests/tests/chage/19_chage-W_no_shadow_entry/config/etc/group new file mode 100644 index 00000000..fecba0c4 --- /dev/null +++ b/tests/tests/chage/19_chage-W_no_shadow_entry/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: diff --git a/tests/tests/chage/19_chage-W_no_shadow_entry/config/etc/gshadow b/tests/tests/chage/19_chage-W_no_shadow_entry/config/etc/gshadow new file mode 100644 index 00000000..5042e581 --- /dev/null +++ b/tests/tests/chage/19_chage-W_no_shadow_entry/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/chage/19_chage-W_no_shadow_entry/config/etc/login.defs b/tests/tests/chage/19_chage-W_no_shadow_entry/config/etc/login.defs new file mode 100644 index 00000000..cf181ac0 --- /dev/null +++ b/tests/tests/chage/19_chage-W_no_shadow_entry/config/etc/login.defs @@ -0,0 +1,314 @@ +# +# /etc/login.defs - Configuration control definitions for the login package. +# +# Three items must be defined: MAIL_DIR, ENV_SUPATH, and ENV_PATH. +# If unspecified, some arbitrary (and possibly incorrect) value will +# be assumed. All other items are optional - if not specified then +# the described action or option will be inhibited. +# +# Comment lines (lines beginning with "#") and blank lines are ignored. +# +# Modified for Linux. --marekm + +# REQUIRED for useradd/userdel/usermod +# Directory where mailboxes reside, _or_ name of file, relative to the +# home directory. If you _do_ define MAIL_DIR and MAIL_FILE, +# MAIL_DIR takes precedence. +# +# Essentially: +# - MAIL_DIR defines the location of users mail spool files +# (for mbox use) by appending the username to MAIL_DIR as defined +# below. +# - MAIL_FILE defines the location of the users mail spool files as the +# fully-qualified filename obtained by prepending the user home +# directory before $MAIL_FILE +# +# NOTE: This is no more used for setting up users MAIL environment variable +# which is, starting from shadow 4.0.12-1 in Debian, entirely the +# job of the pam_mail PAM modules +# See default PAM configuration files provided for +# login, su, etc. +# +# This is a temporary situation: setting these variables will soon +# move to /etc/default/useradd and the variables will then be +# no more supported +MAIL_DIR /var/mail +#MAIL_FILE .mail + +# +# Enable logging and display of /var/log/faillog login failure info. +# This option conflicts with the pam_tally PAM module. +# +FAILLOG_ENAB yes + +# +# Enable display of unknown usernames when login failures are recorded. +# +# WARNING: Unknown usernames may become world readable. +# See #290803 and #298773 for details about how this could become a security +# concern +LOG_UNKFAIL_ENAB no + +# +# Enable logging of successful logins +# +LOG_OK_LOGINS no + +# +# Enable "syslog" logging of su activity - in addition to sulog file logging. +# SYSLOG_SG_ENAB does the same for newgrp and sg. +# +SYSLOG_SU_ENAB yes +SYSLOG_SG_ENAB yes + +# +# If defined, all su activity is logged to this file. +# +#SULOG_FILE /var/log/sulog + +# +# If defined, file which maps tty line to TERM environment parameter. +# Each line of the file is in a format something like "vt100 tty01". +# +#TTYTYPE_FILE /etc/ttytype + +# +# If defined, login failures will be logged here in a utmp format +# last, when invoked as lastb, will read /var/log/btmp, so... +# +FTMP_FILE /var/log/btmp + +# +# If defined, the command name to display when running "su -". For +# example, if this is defined as "su" then a "ps" will display the +# command is "-su". If not defined, then "ps" would display the +# name of the shell actually being run, e.g. something like "-sh". +# +SU_NAME su + +# +# If defined, file which inhibits all the usual chatter during the login +# sequence. If a full pathname, then hushed mode will be enabled if the +# user's name or shell are found in the file. If not a full pathname, then +# hushed mode will be enabled if the file exists in the user's home directory. +# +HUSHLOGIN_FILE .hushlogin +#HUSHLOGIN_FILE /etc/hushlogins + +# +# *REQUIRED* The default PATH settings, for superuser and normal users. +# +# (they are minimal, add the rest in the shell startup files) +ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/games + +# +# Terminal permissions +# +# TTYGROUP Login tty will be assigned this group ownership. +# TTYPERM Login tty will be set to this permission. +# +# If you have a "write" program which is "setgid" to a special group +# which owns the terminals, define TTYGROUP to the group number and +# TTYPERM to 0620. Otherwise leave TTYGROUP commented out and assign +# TTYPERM to either 622 or 600. +# +# In Debian /usr/bin/bsd-write or similar programs are setgid tty +# However, the default and recommended value for TTYPERM is still 0600 +# to not allow anyone to write to anyone else console or terminal + +# Users can still allow other people to write them by issuing +# the "mesg y" command. + +TTYGROUP tty +TTYPERM 0600 + +# +# Login configuration initializations: +# +# ERASECHAR Terminal ERASE character ('\010' = backspace). +# KILLCHAR Terminal KILL character ('\025' = CTRL/U). +# UMASK Default "umask" value. +# +# The ERASECHAR and KILLCHAR are used only on System V machines. +# +# UMASK usage is discouraged because it catches only some classes of user +# entries to system, in fact only those made through login(1), while setting +# umask in shell rc file will catch also logins through su, cron, ssh etc. +# +# At the same time, using shell rc to set umask won't catch entries which use +# non-shell executables in place of login shell, like /usr/sbin/pppd for "ppp" +# user and alike. +# +# Therefore the use of pam_umask is recommended (Debian package libpam-umask) +# as the solution which catches all these cases on PAM-enabled systems. +# +# This avoids the confusion created by having the umask set +# in two different places -- in login.defs and shell rc files (i.e. +# /etc/profile). +# +# For discussion, see #314539 and #248150 as well as the thread starting at +# http://lists.debian.org/debian-devel/2005/06/msg01598.html +# +# Prefix these values with "0" to get octal, "0x" to get hexadecimal. +# +ERASECHAR 0177 +KILLCHAR 025 +# 022 is the "historical" value in Debian for UMASK when it was used +# 027, or even 077, could be considered better for privacy +# There is no One True Answer here : each sysadmin must make up their +# mind. +#UMASK 022 + +# +# Password aging controls: +# +# PASS_MAX_DAYS Maximum number of days a password may be used. +# PASS_MIN_DAYS Minimum number of days allowed between password changes. +# PASS_WARN_AGE Number of days warning given before a password expires. +# +PASS_MAX_DAYS 99999 +PASS_MIN_DAYS 0 +PASS_WARN_AGE 7 + +# +# Min/max values for automatic uid selection in useradd +# +UID_MIN 1000 +UID_MAX 60000 + +# +# Min/max values for automatic gid selection in groupadd +# +GID_MIN 100 +GID_MAX 60000 + +# +# Max number of login retries if password is bad. This will most likely be +# overridden by PAM, since the default pam_unix module has it's own built +# in of 3 retries. However, this is a safe fallback in case you are using +# an authentication module that does not enforce PAM_MAXTRIES. +# +LOGIN_RETRIES 5 + +# +# Max time in seconds for login +# +LOGIN_TIMEOUT 60 + +# +# Which fields may be changed by regular users using chfn - use +# any combination of letters "frwh" (full name, room number, work +# phone, home phone). If not defined, no changes are allowed. +# For backward compatibility, "yes" = "rwh" and "no" = "frwh". +# +CHFN_RESTRICT rwh + +# +# Should login be allowed if we can't cd to the home directory? +# Default is no. +# +DEFAULT_HOME yes + +# +# If defined, this command is run when removing a user. +# It should remove any at/cron/print jobs etc. owned by +# the user to be removed (passed as the first argument). +# +#USERDEL_CMD /usr/sbin/userdel_local + +# +# This enables userdel to remove user groups if no members exist. +# +# Other former uses of this variable such as setting the umask when +# user==primary group are not used in PAM environments, thus in Debian +# +USERGROUPS_ENAB yes + +# +# Instead of the real user shell, the program specified by this parameter +# will be launched, although its visible name (argv[0]) will be the shell's. +# The program may do whatever it wants (logging, additional authentification, +# banner, ...) before running the actual shell. +# +# FAKE_SHELL /bin/fakeshell + +# +# If defined, either full pathname of a file containing device names or +# a ":" delimited list of device names. Root logins will be allowed only +# upon these devices. +# +# This variable is used by login and su. +# +#CONSOLE /etc/consoles +#CONSOLE console:tty01:tty02:tty03:tty04 + +# +# List of groups to add to the user's supplementary group set +# when logging in on the console (as determined by the CONSOLE +# setting). Default is none. +# +# Use with caution - it is possible for users to gain permanent +# access to these groups, even when not logged in on the console. +# How to do it is left as an exercise for the reader... +# +# This variable is used by login and su. +# +#CONSOLE_GROUPS floppy:audio:cdrom + +# +# Only works if compiled with MD5_CRYPT defined: +# If set to "yes", new passwords will be encrypted using the MD5-based +# algorithm compatible with the one used by recent releases of FreeBSD. +# It supports passwords of unlimited length and longer salt strings. +# Set to "no" if you need to copy encrypted passwords to other systems +# which don't understand the new algorithm. Default is "no". +# +# This variable is used by chpasswd, gpasswd and newusers. +# +#MD5_CRYPT_ENAB no + +################# OBSOLETED BY PAM ############## +# # +# These options are now handled by PAM. Please # +# edit the appropriate file in /etc/pam.d/ to # +# enable the equivalents of them. +# +############### + +#MOTD_FILE +#DIALUPS_CHECK_ENAB +#LASTLOG_ENAB +#MAIL_CHECK_ENAB +#OBSCURE_CHECKS_ENAB +#PORTTIME_CHECKS_ENAB +#SU_WHEEL_ONLY +#PASS_CHANGE_TRIES +#PASS_ALWAYS_WARN +#ENVIRON_FILE +#NOLOGINS_FILE +#ISSUE_FILE +#PASS_MIN_LEN +#PASS_MAX_LEN +#ULIMIT +#ENV_HZ +#CHFN_AUTH +#CHSH_AUTH +#FAIL_DELAY + +################# OBSOLETED ####################### +# # +# These options are no more handled by shadow. # +# # +# Shadow utilities will display a warning if they # +# still appear. # +# # +################################################### + +# CLOSE_SESSIONS +# LOGIN_STRING +# NO_PASSWORD_CONSOLE +# QMAIL_DIR + + + diff --git a/tests/tests/chage/19_chage-W_no_shadow_entry/config/etc/passwd b/tests/tests/chage/19_chage-W_no_shadow_entry/config/etc/passwd new file mode 100644 index 00000000..8656be41 --- /dev/null +++ b/tests/tests/chage/19_chage-W_no_shadow_entry/config/etc/passwd @@ -0,0 +1,20 @@ +root:*:0:0:root:/root:/bin/bash +daemon:*:1:1:daemon:/usr/sbin:/bin/sh +bin:*:2:2:bin:/bin:/bin/sh +sys:*:3:3:sys:/dev:/bin/sh +sync:*:4:65534:sync:/bin:/bin/sync +games:*:5:60:games:/usr/games:/bin/sh +man:*:6:12:man:/var/cache/man:/bin/sh +lp:*:7:7:lp:/var/spool/lpd:/bin/sh +mail:*:8:8:mail:/var/mail:/bin/sh +news:*:9:9:news:/var/spool/news:/bin/sh +uucp:*:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:*:13:13:proxy:/bin:/bin/sh +www-data:*:33:33:www-data:/var/www:/bin/sh +backup:*:34:34:backup:/var/backups:/bin/sh +list:*:38:38:Mailing List Manager:/var/list:/bin/sh +irc:*:39:39:ircd:/var/run/ircd:/bin/sh +gnats:*:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:*:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:*:102:102::/var/spool/exim4:/bin/false +foo:abc:1000:1000::/nonexistent:/bin/sh diff --git a/tests/tests/chage/19_chage-W_no_shadow_entry/config/etc/shadow b/tests/tests/chage/19_chage-W_no_shadow_entry/config/etc/shadow new file mode 100644 index 00000000..88faec23 --- /dev/null +++ b/tests/tests/chage/19_chage-W_no_shadow_entry/config/etc/shadow @@ -0,0 +1,19 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/chage/19_chage-W_no_shadow_entry/data/passwd b/tests/tests/chage/19_chage-W_no_shadow_entry/data/passwd new file mode 100644 index 00000000..d9ad1e23 --- /dev/null +++ b/tests/tests/chage/19_chage-W_no_shadow_entry/data/passwd @@ -0,0 +1,20 @@ +root:*:0:0:root:/root:/bin/bash +daemon:*:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:*:3:3:sys:/dev:/bin/sh +sync:*:4:65534:sync:/bin:/bin/sync +games:*:5:60:games:/usr/games:/bin/sh +man:*:6:12:man:/var/cache/man:/bin/sh +lp:*:7:7:lp:/var/spool/lpd:/bin/sh +mail:*:8:8:mail:/var/mail:/bin/sh +news:*:9:9:news:/var/spool/news:/bin/sh +uucp:*:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:*:13:13:proxy:/bin:/bin/sh +www-data:*:33:33:www-data:/var/www:/bin/sh +backup:*:34:34:backup:/var/backups:/bin/sh +list:*:38:38:Mailing List Manager:/var/list:/bin/sh +irc:*:39:39:ircd:/var/run/ircd:/bin/sh +gnats:*:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:*:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:*:102:102::/var/spool/exim4:/bin/false +foo:abc:1000:1000::/nonexistent:/bin/sh diff --git a/tests/tests/chage/19_chage-W_no_shadow_entry/data/shadow b/tests/tests/chage/19_chage-W_no_shadow_entry/data/shadow new file mode 100644 index 00000000..32654238 --- /dev/null +++ b/tests/tests/chage/19_chage-W_no_shadow_entry/data/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: +bin:*::::12::: diff --git a/tests/tests/chage/20_chage-E_no_shadow_entry/chage.test b/tests/tests/chage/20_chage-E_no_shadow_entry/chage.test new file mode 100755 index 00000000..52079f7e --- /dev/null +++ b/tests/tests/chage/20_chage-E_no_shadow_entry/chage.test @@ -0,0 +1,39 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../common/config.sh +. ../../common/log.sh + +log_start "$0" "chage creates a shadow entry if there were none" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "Change bin's mindays (chage -E 2011-09-11 bin)..." +chage -E 2011-09-11 bin +echo "OK" + +echo -n "Check the passwd file..." +../../common/compare_file.pl data/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../common/compare_file.pl data/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chage/20_chage-E_no_shadow_entry/config.txt b/tests/tests/chage/20_chage-E_no_shadow_entry/config.txt new file mode 100644 index 00000000..e9e4bbed --- /dev/null +++ b/tests/tests/chage/20_chage-E_no_shadow_entry/config.txt @@ -0,0 +1 @@ +group foo, GID 1000 diff --git a/tests/tests/chage/20_chage-E_no_shadow_entry/config/etc/group b/tests/tests/chage/20_chage-E_no_shadow_entry/config/etc/group new file mode 100644 index 00000000..fecba0c4 --- /dev/null +++ b/tests/tests/chage/20_chage-E_no_shadow_entry/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: diff --git a/tests/tests/chage/20_chage-E_no_shadow_entry/config/etc/gshadow b/tests/tests/chage/20_chage-E_no_shadow_entry/config/etc/gshadow new file mode 100644 index 00000000..5042e581 --- /dev/null +++ b/tests/tests/chage/20_chage-E_no_shadow_entry/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/chage/20_chage-E_no_shadow_entry/config/etc/login.defs b/tests/tests/chage/20_chage-E_no_shadow_entry/config/etc/login.defs new file mode 100644 index 00000000..cf181ac0 --- /dev/null +++ b/tests/tests/chage/20_chage-E_no_shadow_entry/config/etc/login.defs @@ -0,0 +1,314 @@ +# +# /etc/login.defs - Configuration control definitions for the login package. +# +# Three items must be defined: MAIL_DIR, ENV_SUPATH, and ENV_PATH. +# If unspecified, some arbitrary (and possibly incorrect) value will +# be assumed. All other items are optional - if not specified then +# the described action or option will be inhibited. +# +# Comment lines (lines beginning with "#") and blank lines are ignored. +# +# Modified for Linux. --marekm + +# REQUIRED for useradd/userdel/usermod +# Directory where mailboxes reside, _or_ name of file, relative to the +# home directory. If you _do_ define MAIL_DIR and MAIL_FILE, +# MAIL_DIR takes precedence. +# +# Essentially: +# - MAIL_DIR defines the location of users mail spool files +# (for mbox use) by appending the username to MAIL_DIR as defined +# below. +# - MAIL_FILE defines the location of the users mail spool files as the +# fully-qualified filename obtained by prepending the user home +# directory before $MAIL_FILE +# +# NOTE: This is no more used for setting up users MAIL environment variable +# which is, starting from shadow 4.0.12-1 in Debian, entirely the +# job of the pam_mail PAM modules +# See default PAM configuration files provided for +# login, su, etc. +# +# This is a temporary situation: setting these variables will soon +# move to /etc/default/useradd and the variables will then be +# no more supported +MAIL_DIR /var/mail +#MAIL_FILE .mail + +# +# Enable logging and display of /var/log/faillog login failure info. +# This option conflicts with the pam_tally PAM module. +# +FAILLOG_ENAB yes + +# +# Enable display of unknown usernames when login failures are recorded. +# +# WARNING: Unknown usernames may become world readable. +# See #290803 and #298773 for details about how this could become a security +# concern +LOG_UNKFAIL_ENAB no + +# +# Enable logging of successful logins +# +LOG_OK_LOGINS no + +# +# Enable "syslog" logging of su activity - in addition to sulog file logging. +# SYSLOG_SG_ENAB does the same for newgrp and sg. +# +SYSLOG_SU_ENAB yes +SYSLOG_SG_ENAB yes + +# +# If defined, all su activity is logged to this file. +# +#SULOG_FILE /var/log/sulog + +# +# If defined, file which maps tty line to TERM environment parameter. +# Each line of the file is in a format something like "vt100 tty01". +# +#TTYTYPE_FILE /etc/ttytype + +# +# If defined, login failures will be logged here in a utmp format +# last, when invoked as lastb, will read /var/log/btmp, so... +# +FTMP_FILE /var/log/btmp + +# +# If defined, the command name to display when running "su -". For +# example, if this is defined as "su" then a "ps" will display the +# command is "-su". If not defined, then "ps" would display the +# name of the shell actually being run, e.g. something like "-sh". +# +SU_NAME su + +# +# If defined, file which inhibits all the usual chatter during the login +# sequence. If a full pathname, then hushed mode will be enabled if the +# user's name or shell are found in the file. If not a full pathname, then +# hushed mode will be enabled if the file exists in the user's home directory. +# +HUSHLOGIN_FILE .hushlogin +#HUSHLOGIN_FILE /etc/hushlogins + +# +# *REQUIRED* The default PATH settings, for superuser and normal users. +# +# (they are minimal, add the rest in the shell startup files) +ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/games + +# +# Terminal permissions +# +# TTYGROUP Login tty will be assigned this group ownership. +# TTYPERM Login tty will be set to this permission. +# +# If you have a "write" program which is "setgid" to a special group +# which owns the terminals, define TTYGROUP to the group number and +# TTYPERM to 0620. Otherwise leave TTYGROUP commented out and assign +# TTYPERM to either 622 or 600. +# +# In Debian /usr/bin/bsd-write or similar programs are setgid tty +# However, the default and recommended value for TTYPERM is still 0600 +# to not allow anyone to write to anyone else console or terminal + +# Users can still allow other people to write them by issuing +# the "mesg y" command. + +TTYGROUP tty +TTYPERM 0600 + +# +# Login configuration initializations: +# +# ERASECHAR Terminal ERASE character ('\010' = backspace). +# KILLCHAR Terminal KILL character ('\025' = CTRL/U). +# UMASK Default "umask" value. +# +# The ERASECHAR and KILLCHAR are used only on System V machines. +# +# UMASK usage is discouraged because it catches only some classes of user +# entries to system, in fact only those made through login(1), while setting +# umask in shell rc file will catch also logins through su, cron, ssh etc. +# +# At the same time, using shell rc to set umask won't catch entries which use +# non-shell executables in place of login shell, like /usr/sbin/pppd for "ppp" +# user and alike. +# +# Therefore the use of pam_umask is recommended (Debian package libpam-umask) +# as the solution which catches all these cases on PAM-enabled systems. +# +# This avoids the confusion created by having the umask set +# in two different places -- in login.defs and shell rc files (i.e. +# /etc/profile). +# +# For discussion, see #314539 and #248150 as well as the thread starting at +# http://lists.debian.org/debian-devel/2005/06/msg01598.html +# +# Prefix these values with "0" to get octal, "0x" to get hexadecimal. +# +ERASECHAR 0177 +KILLCHAR 025 +# 022 is the "historical" value in Debian for UMASK when it was used +# 027, or even 077, could be considered better for privacy +# There is no One True Answer here : each sysadmin must make up their +# mind. +#UMASK 022 + +# +# Password aging controls: +# +# PASS_MAX_DAYS Maximum number of days a password may be used. +# PASS_MIN_DAYS Minimum number of days allowed between password changes. +# PASS_WARN_AGE Number of days warning given before a password expires. +# +PASS_MAX_DAYS 99999 +PASS_MIN_DAYS 0 +PASS_WARN_AGE 7 + +# +# Min/max values for automatic uid selection in useradd +# +UID_MIN 1000 +UID_MAX 60000 + +# +# Min/max values for automatic gid selection in groupadd +# +GID_MIN 100 +GID_MAX 60000 + +# +# Max number of login retries if password is bad. This will most likely be +# overridden by PAM, since the default pam_unix module has it's own built +# in of 3 retries. However, this is a safe fallback in case you are using +# an authentication module that does not enforce PAM_MAXTRIES. +# +LOGIN_RETRIES 5 + +# +# Max time in seconds for login +# +LOGIN_TIMEOUT 60 + +# +# Which fields may be changed by regular users using chfn - use +# any combination of letters "frwh" (full name, room number, work +# phone, home phone). If not defined, no changes are allowed. +# For backward compatibility, "yes" = "rwh" and "no" = "frwh". +# +CHFN_RESTRICT rwh + +# +# Should login be allowed if we can't cd to the home directory? +# Default is no. +# +DEFAULT_HOME yes + +# +# If defined, this command is run when removing a user. +# It should remove any at/cron/print jobs etc. owned by +# the user to be removed (passed as the first argument). +# +#USERDEL_CMD /usr/sbin/userdel_local + +# +# This enables userdel to remove user groups if no members exist. +# +# Other former uses of this variable such as setting the umask when +# user==primary group are not used in PAM environments, thus in Debian +# +USERGROUPS_ENAB yes + +# +# Instead of the real user shell, the program specified by this parameter +# will be launched, although its visible name (argv[0]) will be the shell's. +# The program may do whatever it wants (logging, additional authentification, +# banner, ...) before running the actual shell. +# +# FAKE_SHELL /bin/fakeshell + +# +# If defined, either full pathname of a file containing device names or +# a ":" delimited list of device names. Root logins will be allowed only +# upon these devices. +# +# This variable is used by login and su. +# +#CONSOLE /etc/consoles +#CONSOLE console:tty01:tty02:tty03:tty04 + +# +# List of groups to add to the user's supplementary group set +# when logging in on the console (as determined by the CONSOLE +# setting). Default is none. +# +# Use with caution - it is possible for users to gain permanent +# access to these groups, even when not logged in on the console. +# How to do it is left as an exercise for the reader... +# +# This variable is used by login and su. +# +#CONSOLE_GROUPS floppy:audio:cdrom + +# +# Only works if compiled with MD5_CRYPT defined: +# If set to "yes", new passwords will be encrypted using the MD5-based +# algorithm compatible with the one used by recent releases of FreeBSD. +# It supports passwords of unlimited length and longer salt strings. +# Set to "no" if you need to copy encrypted passwords to other systems +# which don't understand the new algorithm. Default is "no". +# +# This variable is used by chpasswd, gpasswd and newusers. +# +#MD5_CRYPT_ENAB no + +################# OBSOLETED BY PAM ############## +# # +# These options are now handled by PAM. Please # +# edit the appropriate file in /etc/pam.d/ to # +# enable the equivalents of them. +# +############### + +#MOTD_FILE +#DIALUPS_CHECK_ENAB +#LASTLOG_ENAB +#MAIL_CHECK_ENAB +#OBSCURE_CHECKS_ENAB +#PORTTIME_CHECKS_ENAB +#SU_WHEEL_ONLY +#PASS_CHANGE_TRIES +#PASS_ALWAYS_WARN +#ENVIRON_FILE +#NOLOGINS_FILE +#ISSUE_FILE +#PASS_MIN_LEN +#PASS_MAX_LEN +#ULIMIT +#ENV_HZ +#CHFN_AUTH +#CHSH_AUTH +#FAIL_DELAY + +################# OBSOLETED ####################### +# # +# These options are no more handled by shadow. # +# # +# Shadow utilities will display a warning if they # +# still appear. # +# # +################################################### + +# CLOSE_SESSIONS +# LOGIN_STRING +# NO_PASSWORD_CONSOLE +# QMAIL_DIR + + + diff --git a/tests/tests/chage/20_chage-E_no_shadow_entry/config/etc/passwd b/tests/tests/chage/20_chage-E_no_shadow_entry/config/etc/passwd new file mode 100644 index 00000000..8656be41 --- /dev/null +++ b/tests/tests/chage/20_chage-E_no_shadow_entry/config/etc/passwd @@ -0,0 +1,20 @@ +root:*:0:0:root:/root:/bin/bash +daemon:*:1:1:daemon:/usr/sbin:/bin/sh +bin:*:2:2:bin:/bin:/bin/sh +sys:*:3:3:sys:/dev:/bin/sh +sync:*:4:65534:sync:/bin:/bin/sync +games:*:5:60:games:/usr/games:/bin/sh +man:*:6:12:man:/var/cache/man:/bin/sh +lp:*:7:7:lp:/var/spool/lpd:/bin/sh +mail:*:8:8:mail:/var/mail:/bin/sh +news:*:9:9:news:/var/spool/news:/bin/sh +uucp:*:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:*:13:13:proxy:/bin:/bin/sh +www-data:*:33:33:www-data:/var/www:/bin/sh +backup:*:34:34:backup:/var/backups:/bin/sh +list:*:38:38:Mailing List Manager:/var/list:/bin/sh +irc:*:39:39:ircd:/var/run/ircd:/bin/sh +gnats:*:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:*:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:*:102:102::/var/spool/exim4:/bin/false +foo:abc:1000:1000::/nonexistent:/bin/sh diff --git a/tests/tests/chage/20_chage-E_no_shadow_entry/config/etc/shadow b/tests/tests/chage/20_chage-E_no_shadow_entry/config/etc/shadow new file mode 100644 index 00000000..88faec23 --- /dev/null +++ b/tests/tests/chage/20_chage-E_no_shadow_entry/config/etc/shadow @@ -0,0 +1,19 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/chage/20_chage-E_no_shadow_entry/data/passwd b/tests/tests/chage/20_chage-E_no_shadow_entry/data/passwd new file mode 100644 index 00000000..d9ad1e23 --- /dev/null +++ b/tests/tests/chage/20_chage-E_no_shadow_entry/data/passwd @@ -0,0 +1,20 @@ +root:*:0:0:root:/root:/bin/bash +daemon:*:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:*:3:3:sys:/dev:/bin/sh +sync:*:4:65534:sync:/bin:/bin/sync +games:*:5:60:games:/usr/games:/bin/sh +man:*:6:12:man:/var/cache/man:/bin/sh +lp:*:7:7:lp:/var/spool/lpd:/bin/sh +mail:*:8:8:mail:/var/mail:/bin/sh +news:*:9:9:news:/var/spool/news:/bin/sh +uucp:*:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:*:13:13:proxy:/bin:/bin/sh +www-data:*:33:33:www-data:/var/www:/bin/sh +backup:*:34:34:backup:/var/backups:/bin/sh +list:*:38:38:Mailing List Manager:/var/list:/bin/sh +irc:*:39:39:ircd:/var/run/ircd:/bin/sh +gnats:*:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:*:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:*:102:102::/var/spool/exim4:/bin/false +foo:abc:1000:1000::/nonexistent:/bin/sh diff --git a/tests/tests/chage/20_chage-E_no_shadow_entry/data/shadow b/tests/tests/chage/20_chage-E_no_shadow_entry/data/shadow new file mode 100644 index 00000000..752a49af --- /dev/null +++ b/tests/tests/chage/20_chage-E_no_shadow_entry/data/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: +bin:*::::::15228: diff --git a/tests/tests/chage/21_chage_no_shadow_file/chage.test b/tests/tests/chage/21_chage_no_shadow_file/chage.test new file mode 100755 index 00000000..c2e8d0ed --- /dev/null +++ b/tests/tests/chage/21_chage_no_shadow_file/chage.test @@ -0,0 +1,58 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../common/config.sh +. ../../common/log.sh + +log_start "$0" "chage warns when shadow is not enabled" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "Remove /etc/shadow..." +rm -f /etc/shadow +echo "OK" + +echo -n "Use chage with an invalid user (chage -I 12 bin)..." +chage -I 12 bin 2>tmp/usage.out && exit 1 || { + status=$? +} +echo "OK" + +echo -n "Check returned status ($status)..." +test "$status" = "15" +echo "OK" + +echo "chage reported:" +echo "=======================================================================" +cat tmp/usage.out +echo "=======================================================================" +echo -n "Check the usage message..." +diff -au data/usage.out tmp/usage.out +echo "usage message OK." +rm -f tmp/usage.out + +echo -n "Check the passwd file..." +../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +test ! -f /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chage/21_chage_no_shadow_file/config.txt b/tests/tests/chage/21_chage_no_shadow_file/config.txt new file mode 100644 index 00000000..e69de29b diff --git a/tests/tests/chage/21_chage_no_shadow_file/config/etc/group b/tests/tests/chage/21_chage_no_shadow_file/config/etc/group new file mode 100644 index 00000000..245cc9cf --- /dev/null +++ b/tests/tests/chage/21_chage_no_shadow_file/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: diff --git a/tests/tests/chage/21_chage_no_shadow_file/config/etc/gshadow b/tests/tests/chage/21_chage_no_shadow_file/config/etc/gshadow new file mode 100644 index 00000000..25bd55bd --- /dev/null +++ b/tests/tests/chage/21_chage_no_shadow_file/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: diff --git a/tests/tests/chage/21_chage_no_shadow_file/config/etc/passwd b/tests/tests/chage/21_chage_no_shadow_file/config/etc/passwd new file mode 100644 index 00000000..5d27e129 --- /dev/null +++ b/tests/tests/chage/21_chage_no_shadow_file/config/etc/passwd @@ -0,0 +1,26 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser1:x:424242:424242::/home:/bin/bash +myuser2:x:424243:424242::/home:/bin/bash +myuser3:x:424244:424242::/home:/bin/bash +myuser4:x:424245:424242::/home:/bin/bash +myuser5:x:424246:424242::/home:/bin/bash +myuser6:x:424247:424242::/home:/bin/bash +myuser7:x:424248:424242::/home:/bin/bash diff --git a/tests/tests/chage/21_chage_no_shadow_file/config/etc/shadow b/tests/tests/chage/21_chage_no_shadow_file/config/etc/shadow new file mode 100644 index 00000000..da4c2bc4 --- /dev/null +++ b/tests/tests/chage/21_chage_no_shadow_file/config/etc/shadow @@ -0,0 +1,26 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser1:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: +myuser2:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12992:1:99996:5::: +myuser3:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::0: +myuser4:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::1: +myuser5:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:0:: +myuser6:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: +myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: diff --git a/tests/tests/chage/21_chage_no_shadow_file/data/usage.out b/tests/tests/chage/21_chage_no_shadow_file/data/usage.out new file mode 100644 index 00000000..07d7a30e --- /dev/null +++ b/tests/tests/chage/21_chage_no_shadow_file/data/usage.out @@ -0,0 +1 @@ +chage: the shadow password file is not present diff --git a/tests/tests/chage/22_chage_myuser-l/chage.test b/tests/tests/chage/22_chage_myuser-l/chage.test new file mode 100755 index 00000000..34ad36d2 --- /dev/null +++ b/tests/tests/chage/22_chage_myuser-l/chage.test @@ -0,0 +1,51 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../common/config.sh +. ../../common/log.sh + +log_start "$0" "chage can be used to show one's aging info" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +for user in $(ls data/) +do + echo -n "Get $user aging info (chage -l $user)..." + su myuser1 -c "chage -l $user" >tmp/$user + echo "OK" + + echo "chage reported:" + echo "=======================================================================" + cat tmp/$user + echo "=======================================================================" + echo -n "Compare with expected output..." + diff -au data/$user tmp/$user + echo "OK" + rm -f tmp/$user +done + +echo -n "Check the passwd file..." +../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chage/22_chage_myuser-l/config.txt b/tests/tests/chage/22_chage_myuser-l/config.txt new file mode 100644 index 00000000..e69de29b diff --git a/tests/tests/chage/22_chage_myuser-l/config/etc/group b/tests/tests/chage/22_chage_myuser-l/config/etc/group new file mode 100644 index 00000000..245cc9cf --- /dev/null +++ b/tests/tests/chage/22_chage_myuser-l/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: diff --git a/tests/tests/chage/22_chage_myuser-l/config/etc/gshadow b/tests/tests/chage/22_chage_myuser-l/config/etc/gshadow new file mode 100644 index 00000000..25bd55bd --- /dev/null +++ b/tests/tests/chage/22_chage_myuser-l/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: diff --git a/tests/tests/chage/22_chage_myuser-l/config/etc/passwd b/tests/tests/chage/22_chage_myuser-l/config/etc/passwd new file mode 100644 index 00000000..31046cf6 --- /dev/null +++ b/tests/tests/chage/22_chage_myuser-l/config/etc/passwd @@ -0,0 +1,32 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser1:x:424242:424242::/home:/bin/bash +myuser2:x:424243:424242::/home:/bin/bash +myuser3:x:424244:424242::/home:/bin/bash +myuser4:x:424245:424242::/home:/bin/bash +myuser5:x:424246:424242::/home:/bin/bash +myuser6:x:424247:424242::/home:/bin/bash +myuser7:x:424248:424242::/home:/bin/bash +myuser8:x:424249:424242::/home:/bin/bash +myuser9:x:424250:424242::/home:/bin/bash +myuser10:x:424251:424242::/home:/bin/bash +myuser11:x:424252:424242::/home:/bin/bash +myuser12:x:424253:424242::/home:/bin/bash +myuser13:x:424254:424242::/home:/bin/bash diff --git a/tests/tests/chage/22_chage_myuser-l/config/etc/shadow b/tests/tests/chage/22_chage_myuser-l/config/etc/shadow new file mode 100644 index 00000000..4b81469b --- /dev/null +++ b/tests/tests/chage/22_chage_myuser-l/config/etc/shadow @@ -0,0 +1,30 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser1:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: +myuser2:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12992:1:99996:5::: +myuser3:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::0: +myuser4:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::1: +myuser5:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:0:: +myuser6:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: +myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:9999:7:1:: +myuser8:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.::0:9999:7:1:: +myuser9:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:0:0:9999:7:1:: +myuser10:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0::7:1:: +#myuser11:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:9999:7:1:: diff --git a/tests/tests/chage/22_chage_myuser-l/data/myuser1 b/tests/tests/chage/22_chage_myuser-l/data/myuser1 new file mode 100644 index 00000000..64754ca5 --- /dev/null +++ b/tests/tests/chage/22_chage_myuser-l/data/myuser1 @@ -0,0 +1,7 @@ +Last password change : Jul 27, 2005 +Password expires : never +Password inactive : never +Account expires : never +Minimum number of days between password change : 0 +Maximum number of days between password change : 99999 +Number of days of warning before password expires : 7 diff --git a/tests/tests/chage/23_chage_myuser-I/chage.test b/tests/tests/chage/23_chage_myuser-I/chage.test new file mode 100755 index 00000000..0bd70435 --- /dev/null +++ b/tests/tests/chage/23_chage_myuser-I/chage.test @@ -0,0 +1,54 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../common/config.sh +. ../../common/log.sh + +log_start "$0" "chage forbids to change aging info" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "myusers1 uses chage to change myuser1 aging info (chage -I 12 myuser2)..." +su myuser1 -c "chage -I 12 myuser1" 2>tmp/usage.out && exit 1 || { + status=$? +} +echo "OK" + +echo -n "Check returned status ($status)..." +test "$status" = "1" +echo "OK" + +echo "chage reported:" +echo "=======================================================================" +cat tmp/usage.out +echo "=======================================================================" +echo -n "Check the usage message..." +diff -au data/usage.out tmp/usage.out +echo "usage message OK." +rm -f tmp/usage.out + +echo -n "Check the passwd file..." +../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chage/23_chage_myuser-I/config.txt b/tests/tests/chage/23_chage_myuser-I/config.txt new file mode 100644 index 00000000..e69de29b diff --git a/tests/tests/chage/23_chage_myuser-I/config/etc/group b/tests/tests/chage/23_chage_myuser-I/config/etc/group new file mode 100644 index 00000000..245cc9cf --- /dev/null +++ b/tests/tests/chage/23_chage_myuser-I/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: diff --git a/tests/tests/chage/23_chage_myuser-I/config/etc/gshadow b/tests/tests/chage/23_chage_myuser-I/config/etc/gshadow new file mode 100644 index 00000000..25bd55bd --- /dev/null +++ b/tests/tests/chage/23_chage_myuser-I/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: diff --git a/tests/tests/chage/23_chage_myuser-I/config/etc/passwd b/tests/tests/chage/23_chage_myuser-I/config/etc/passwd new file mode 100644 index 00000000..5d27e129 --- /dev/null +++ b/tests/tests/chage/23_chage_myuser-I/config/etc/passwd @@ -0,0 +1,26 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser1:x:424242:424242::/home:/bin/bash +myuser2:x:424243:424242::/home:/bin/bash +myuser3:x:424244:424242::/home:/bin/bash +myuser4:x:424245:424242::/home:/bin/bash +myuser5:x:424246:424242::/home:/bin/bash +myuser6:x:424247:424242::/home:/bin/bash +myuser7:x:424248:424242::/home:/bin/bash diff --git a/tests/tests/chage/23_chage_myuser-I/config/etc/shadow b/tests/tests/chage/23_chage_myuser-I/config/etc/shadow new file mode 100644 index 00000000..da4c2bc4 --- /dev/null +++ b/tests/tests/chage/23_chage_myuser-I/config/etc/shadow @@ -0,0 +1,26 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser1:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: +myuser2:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12992:1:99996:5::: +myuser3:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::0: +myuser4:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::1: +myuser5:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:0:: +myuser6:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: +myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: diff --git a/tests/tests/chage/23_chage_myuser-I/data/usage.out b/tests/tests/chage/23_chage_myuser-I/data/usage.out new file mode 100644 index 00000000..dc0d6ca5 --- /dev/null +++ b/tests/tests/chage/23_chage_myuser-I/data/usage.out @@ -0,0 +1 @@ +chage: Permission denied. diff --git a/tests/tests/chage/24_chage_myuser-l_other/chage.test b/tests/tests/chage/24_chage_myuser-l_other/chage.test new file mode 100755 index 00000000..ef2f8e23 --- /dev/null +++ b/tests/tests/chage/24_chage_myuser-l_other/chage.test @@ -0,0 +1,54 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../common/config.sh +. ../../common/log.sh + +log_start "$0" "chage forbids to get other accounts aging info" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "myusers1 uses chage to get myuser2 aging info (chage -l myuser2)..." +su myuser1 -c "chage -l myuser2" 2>tmp/usage.out && exit 1 || { + status=$? +} +echo "OK" + +echo -n "Check returned status ($status)..." +test "$status" = "1" +echo "OK" + +echo "chage reported:" +echo "=======================================================================" +cat tmp/usage.out +echo "=======================================================================" +echo -n "Check the usage message..." +diff -au data/usage.out tmp/usage.out +echo "usage message OK." +rm -f tmp/usage.out + +echo -n "Check the passwd file..." +../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chage/24_chage_myuser-l_other/config.txt b/tests/tests/chage/24_chage_myuser-l_other/config.txt new file mode 100644 index 00000000..e69de29b diff --git a/tests/tests/chage/24_chage_myuser-l_other/config/etc/group b/tests/tests/chage/24_chage_myuser-l_other/config/etc/group new file mode 100644 index 00000000..245cc9cf --- /dev/null +++ b/tests/tests/chage/24_chage_myuser-l_other/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: diff --git a/tests/tests/chage/24_chage_myuser-l_other/config/etc/gshadow b/tests/tests/chage/24_chage_myuser-l_other/config/etc/gshadow new file mode 100644 index 00000000..25bd55bd --- /dev/null +++ b/tests/tests/chage/24_chage_myuser-l_other/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: diff --git a/tests/tests/chage/24_chage_myuser-l_other/config/etc/passwd b/tests/tests/chage/24_chage_myuser-l_other/config/etc/passwd new file mode 100644 index 00000000..5d27e129 --- /dev/null +++ b/tests/tests/chage/24_chage_myuser-l_other/config/etc/passwd @@ -0,0 +1,26 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser1:x:424242:424242::/home:/bin/bash +myuser2:x:424243:424242::/home:/bin/bash +myuser3:x:424244:424242::/home:/bin/bash +myuser4:x:424245:424242::/home:/bin/bash +myuser5:x:424246:424242::/home:/bin/bash +myuser6:x:424247:424242::/home:/bin/bash +myuser7:x:424248:424242::/home:/bin/bash diff --git a/tests/tests/chage/24_chage_myuser-l_other/config/etc/shadow b/tests/tests/chage/24_chage_myuser-l_other/config/etc/shadow new file mode 100644 index 00000000..da4c2bc4 --- /dev/null +++ b/tests/tests/chage/24_chage_myuser-l_other/config/etc/shadow @@ -0,0 +1,26 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser1:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: +myuser2:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12992:1:99996:5::: +myuser3:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::0: +myuser4:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::1: +myuser5:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:0:: +myuser6:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: +myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: diff --git a/tests/tests/chage/24_chage_myuser-l_other/data/usage.out b/tests/tests/chage/24_chage_myuser-l_other/data/usage.out new file mode 100644 index 00000000..dc0d6ca5 --- /dev/null +++ b/tests/tests/chage/24_chage_myuser-l_other/data/usage.out @@ -0,0 +1 @@ +chage: Permission denied. diff --git a/tests/tests/chage/25_chage_interactive/chage.test b/tests/tests/chage/25_chage_interactive/chage.test new file mode 100755 index 00000000..8d5f5bef --- /dev/null +++ b/tests/tests/chage/25_chage_interactive/chage.test @@ -0,0 +1,39 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../common/config.sh +. ../../common/log.sh + +log_start "$0" "chage creates a shadow entry if there were none" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "chage interactive session as myuser1..." +./run.exp +echo "OK" + +echo -n "Check the passwd file..." +../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../common/compare_file.pl data/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chage/25_chage_interactive/config.txt b/tests/tests/chage/25_chage_interactive/config.txt new file mode 100644 index 00000000..e9e4bbed --- /dev/null +++ b/tests/tests/chage/25_chage_interactive/config.txt @@ -0,0 +1 @@ +group foo, GID 1000 diff --git a/tests/tests/chage/25_chage_interactive/config/etc/group b/tests/tests/chage/25_chage_interactive/config/etc/group new file mode 100644 index 00000000..fecba0c4 --- /dev/null +++ b/tests/tests/chage/25_chage_interactive/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: diff --git a/tests/tests/chage/25_chage_interactive/config/etc/gshadow b/tests/tests/chage/25_chage_interactive/config/etc/gshadow new file mode 100644 index 00000000..5042e581 --- /dev/null +++ b/tests/tests/chage/25_chage_interactive/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/chage/25_chage_interactive/config/etc/login.defs b/tests/tests/chage/25_chage_interactive/config/etc/login.defs new file mode 100644 index 00000000..cf181ac0 --- /dev/null +++ b/tests/tests/chage/25_chage_interactive/config/etc/login.defs @@ -0,0 +1,314 @@ +# +# /etc/login.defs - Configuration control definitions for the login package. +# +# Three items must be defined: MAIL_DIR, ENV_SUPATH, and ENV_PATH. +# If unspecified, some arbitrary (and possibly incorrect) value will +# be assumed. All other items are optional - if not specified then +# the described action or option will be inhibited. +# +# Comment lines (lines beginning with "#") and blank lines are ignored. +# +# Modified for Linux. --marekm + +# REQUIRED for useradd/userdel/usermod +# Directory where mailboxes reside, _or_ name of file, relative to the +# home directory. If you _do_ define MAIL_DIR and MAIL_FILE, +# MAIL_DIR takes precedence. +# +# Essentially: +# - MAIL_DIR defines the location of users mail spool files +# (for mbox use) by appending the username to MAIL_DIR as defined +# below. +# - MAIL_FILE defines the location of the users mail spool files as the +# fully-qualified filename obtained by prepending the user home +# directory before $MAIL_FILE +# +# NOTE: This is no more used for setting up users MAIL environment variable +# which is, starting from shadow 4.0.12-1 in Debian, entirely the +# job of the pam_mail PAM modules +# See default PAM configuration files provided for +# login, su, etc. +# +# This is a temporary situation: setting these variables will soon +# move to /etc/default/useradd and the variables will then be +# no more supported +MAIL_DIR /var/mail +#MAIL_FILE .mail + +# +# Enable logging and display of /var/log/faillog login failure info. +# This option conflicts with the pam_tally PAM module. +# +FAILLOG_ENAB yes + +# +# Enable display of unknown usernames when login failures are recorded. +# +# WARNING: Unknown usernames may become world readable. +# See #290803 and #298773 for details about how this could become a security +# concern +LOG_UNKFAIL_ENAB no + +# +# Enable logging of successful logins +# +LOG_OK_LOGINS no + +# +# Enable "syslog" logging of su activity - in addition to sulog file logging. +# SYSLOG_SG_ENAB does the same for newgrp and sg. +# +SYSLOG_SU_ENAB yes +SYSLOG_SG_ENAB yes + +# +# If defined, all su activity is logged to this file. +# +#SULOG_FILE /var/log/sulog + +# +# If defined, file which maps tty line to TERM environment parameter. +# Each line of the file is in a format something like "vt100 tty01". +# +#TTYTYPE_FILE /etc/ttytype + +# +# If defined, login failures will be logged here in a utmp format +# last, when invoked as lastb, will read /var/log/btmp, so... +# +FTMP_FILE /var/log/btmp + +# +# If defined, the command name to display when running "su -". For +# example, if this is defined as "su" then a "ps" will display the +# command is "-su". If not defined, then "ps" would display the +# name of the shell actually being run, e.g. something like "-sh". +# +SU_NAME su + +# +# If defined, file which inhibits all the usual chatter during the login +# sequence. If a full pathname, then hushed mode will be enabled if the +# user's name or shell are found in the file. If not a full pathname, then +# hushed mode will be enabled if the file exists in the user's home directory. +# +HUSHLOGIN_FILE .hushlogin +#HUSHLOGIN_FILE /etc/hushlogins + +# +# *REQUIRED* The default PATH settings, for superuser and normal users. +# +# (they are minimal, add the rest in the shell startup files) +ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/games + +# +# Terminal permissions +# +# TTYGROUP Login tty will be assigned this group ownership. +# TTYPERM Login tty will be set to this permission. +# +# If you have a "write" program which is "setgid" to a special group +# which owns the terminals, define TTYGROUP to the group number and +# TTYPERM to 0620. Otherwise leave TTYGROUP commented out and assign +# TTYPERM to either 622 or 600. +# +# In Debian /usr/bin/bsd-write or similar programs are setgid tty +# However, the default and recommended value for TTYPERM is still 0600 +# to not allow anyone to write to anyone else console or terminal + +# Users can still allow other people to write them by issuing +# the "mesg y" command. + +TTYGROUP tty +TTYPERM 0600 + +# +# Login configuration initializations: +# +# ERASECHAR Terminal ERASE character ('\010' = backspace). +# KILLCHAR Terminal KILL character ('\025' = CTRL/U). +# UMASK Default "umask" value. +# +# The ERASECHAR and KILLCHAR are used only on System V machines. +# +# UMASK usage is discouraged because it catches only some classes of user +# entries to system, in fact only those made through login(1), while setting +# umask in shell rc file will catch also logins through su, cron, ssh etc. +# +# At the same time, using shell rc to set umask won't catch entries which use +# non-shell executables in place of login shell, like /usr/sbin/pppd for "ppp" +# user and alike. +# +# Therefore the use of pam_umask is recommended (Debian package libpam-umask) +# as the solution which catches all these cases on PAM-enabled systems. +# +# This avoids the confusion created by having the umask set +# in two different places -- in login.defs and shell rc files (i.e. +# /etc/profile). +# +# For discussion, see #314539 and #248150 as well as the thread starting at +# http://lists.debian.org/debian-devel/2005/06/msg01598.html +# +# Prefix these values with "0" to get octal, "0x" to get hexadecimal. +# +ERASECHAR 0177 +KILLCHAR 025 +# 022 is the "historical" value in Debian for UMASK when it was used +# 027, or even 077, could be considered better for privacy +# There is no One True Answer here : each sysadmin must make up their +# mind. +#UMASK 022 + +# +# Password aging controls: +# +# PASS_MAX_DAYS Maximum number of days a password may be used. +# PASS_MIN_DAYS Minimum number of days allowed between password changes. +# PASS_WARN_AGE Number of days warning given before a password expires. +# +PASS_MAX_DAYS 99999 +PASS_MIN_DAYS 0 +PASS_WARN_AGE 7 + +# +# Min/max values for automatic uid selection in useradd +# +UID_MIN 1000 +UID_MAX 60000 + +# +# Min/max values for automatic gid selection in groupadd +# +GID_MIN 100 +GID_MAX 60000 + +# +# Max number of login retries if password is bad. This will most likely be +# overridden by PAM, since the default pam_unix module has it's own built +# in of 3 retries. However, this is a safe fallback in case you are using +# an authentication module that does not enforce PAM_MAXTRIES. +# +LOGIN_RETRIES 5 + +# +# Max time in seconds for login +# +LOGIN_TIMEOUT 60 + +# +# Which fields may be changed by regular users using chfn - use +# any combination of letters "frwh" (full name, room number, work +# phone, home phone). If not defined, no changes are allowed. +# For backward compatibility, "yes" = "rwh" and "no" = "frwh". +# +CHFN_RESTRICT rwh + +# +# Should login be allowed if we can't cd to the home directory? +# Default is no. +# +DEFAULT_HOME yes + +# +# If defined, this command is run when removing a user. +# It should remove any at/cron/print jobs etc. owned by +# the user to be removed (passed as the first argument). +# +#USERDEL_CMD /usr/sbin/userdel_local + +# +# This enables userdel to remove user groups if no members exist. +# +# Other former uses of this variable such as setting the umask when +# user==primary group are not used in PAM environments, thus in Debian +# +USERGROUPS_ENAB yes + +# +# Instead of the real user shell, the program specified by this parameter +# will be launched, although its visible name (argv[0]) will be the shell's. +# The program may do whatever it wants (logging, additional authentification, +# banner, ...) before running the actual shell. +# +# FAKE_SHELL /bin/fakeshell + +# +# If defined, either full pathname of a file containing device names or +# a ":" delimited list of device names. Root logins will be allowed only +# upon these devices. +# +# This variable is used by login and su. +# +#CONSOLE /etc/consoles +#CONSOLE console:tty01:tty02:tty03:tty04 + +# +# List of groups to add to the user's supplementary group set +# when logging in on the console (as determined by the CONSOLE +# setting). Default is none. +# +# Use with caution - it is possible for users to gain permanent +# access to these groups, even when not logged in on the console. +# How to do it is left as an exercise for the reader... +# +# This variable is used by login and su. +# +#CONSOLE_GROUPS floppy:audio:cdrom + +# +# Only works if compiled with MD5_CRYPT defined: +# If set to "yes", new passwords will be encrypted using the MD5-based +# algorithm compatible with the one used by recent releases of FreeBSD. +# It supports passwords of unlimited length and longer salt strings. +# Set to "no" if you need to copy encrypted passwords to other systems +# which don't understand the new algorithm. Default is "no". +# +# This variable is used by chpasswd, gpasswd and newusers. +# +#MD5_CRYPT_ENAB no + +################# OBSOLETED BY PAM ############## +# # +# These options are now handled by PAM. Please # +# edit the appropriate file in /etc/pam.d/ to # +# enable the equivalents of them. +# +############### + +#MOTD_FILE +#DIALUPS_CHECK_ENAB +#LASTLOG_ENAB +#MAIL_CHECK_ENAB +#OBSCURE_CHECKS_ENAB +#PORTTIME_CHECKS_ENAB +#SU_WHEEL_ONLY +#PASS_CHANGE_TRIES +#PASS_ALWAYS_WARN +#ENVIRON_FILE +#NOLOGINS_FILE +#ISSUE_FILE +#PASS_MIN_LEN +#PASS_MAX_LEN +#ULIMIT +#ENV_HZ +#CHFN_AUTH +#CHSH_AUTH +#FAIL_DELAY + +################# OBSOLETED ####################### +# # +# These options are no more handled by shadow. # +# # +# Shadow utilities will display a warning if they # +# still appear. # +# # +################################################### + +# CLOSE_SESSIONS +# LOGIN_STRING +# NO_PASSWORD_CONSOLE +# QMAIL_DIR + + + diff --git a/tests/tests/chage/25_chage_interactive/config/etc/passwd b/tests/tests/chage/25_chage_interactive/config/etc/passwd new file mode 100644 index 00000000..5d27e129 --- /dev/null +++ b/tests/tests/chage/25_chage_interactive/config/etc/passwd @@ -0,0 +1,26 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser1:x:424242:424242::/home:/bin/bash +myuser2:x:424243:424242::/home:/bin/bash +myuser3:x:424244:424242::/home:/bin/bash +myuser4:x:424245:424242::/home:/bin/bash +myuser5:x:424246:424242::/home:/bin/bash +myuser6:x:424247:424242::/home:/bin/bash +myuser7:x:424248:424242::/home:/bin/bash diff --git a/tests/tests/chage/25_chage_interactive/config/etc/shadow b/tests/tests/chage/25_chage_interactive/config/etc/shadow new file mode 100644 index 00000000..da4c2bc4 --- /dev/null +++ b/tests/tests/chage/25_chage_interactive/config/etc/shadow @@ -0,0 +1,26 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser1:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: +myuser2:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12992:1:99996:5::: +myuser3:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::0: +myuser4:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::1: +myuser5:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:0:: +myuser6:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: +myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: diff --git a/tests/tests/chage/25_chage_interactive/data/shadow b/tests/tests/chage/25_chage_interactive/data/shadow new file mode 100644 index 00000000..334494ac --- /dev/null +++ b/tests/tests/chage/25_chage_interactive/data/shadow @@ -0,0 +1,26 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser1:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12990:13:14:9:35:15548: +myuser2:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12992:1:99996:5::: +myuser3:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::0: +myuser4:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::1: +myuser5:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:0:: +myuser6:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: +myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: diff --git a/tests/tests/chage/25_chage_interactive/run.exp b/tests/tests/chage/25_chage_interactive/run.exp new file mode 100755 index 00000000..5b4b1d0b --- /dev/null +++ b/tests/tests/chage/25_chage_interactive/run.exp @@ -0,0 +1,31 @@ +#!/usr/bin/expect + +set timeout 5 + +# I've not been able to put the opening bracket in the regular expressions +# If anyone knows... + +spawn /usr/bin/chage myuser1 +expect -re "Minimum Password Age .0\]: " +send "13\r" +expect -re "Maximum Password Age .99999\]: " +send "14\r" +expect -re "Last Password Change \[(]YYYY-MM-DD\[)] .2005-07-27\]: " +send "2005-07-26\r" +expect -re "Password Expiration Warning .7\]: " +send "9\r" +expect -re "Password Inactive .-1\]: " +send "35\r" +expect -re "Account Expiration Date \[(]YYYY-MM-DD\[)] .-1\]: " +send "2012-07-27\r" +expect { + eof { + } default { + puts "\nFAIL" + exit 1 + } +} + +puts "\nPASS" +exit 0 + diff --git a/tests/tests/chage/26_chage_interactive_date_0/chage.test b/tests/tests/chage/26_chage_interactive_date_0/chage.test new file mode 100755 index 00000000..8d5f5bef --- /dev/null +++ b/tests/tests/chage/26_chage_interactive_date_0/chage.test @@ -0,0 +1,39 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../common/config.sh +. ../../common/log.sh + +log_start "$0" "chage creates a shadow entry if there were none" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "chage interactive session as myuser1..." +./run.exp +echo "OK" + +echo -n "Check the passwd file..." +../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../common/compare_file.pl data/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chage/26_chage_interactive_date_0/config.txt b/tests/tests/chage/26_chage_interactive_date_0/config.txt new file mode 100644 index 00000000..e9e4bbed --- /dev/null +++ b/tests/tests/chage/26_chage_interactive_date_0/config.txt @@ -0,0 +1 @@ +group foo, GID 1000 diff --git a/tests/tests/chage/26_chage_interactive_date_0/config/etc/group b/tests/tests/chage/26_chage_interactive_date_0/config/etc/group new file mode 100644 index 00000000..fecba0c4 --- /dev/null +++ b/tests/tests/chage/26_chage_interactive_date_0/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: diff --git a/tests/tests/chage/26_chage_interactive_date_0/config/etc/gshadow b/tests/tests/chage/26_chage_interactive_date_0/config/etc/gshadow new file mode 100644 index 00000000..5042e581 --- /dev/null +++ b/tests/tests/chage/26_chage_interactive_date_0/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/chage/26_chage_interactive_date_0/config/etc/login.defs b/tests/tests/chage/26_chage_interactive_date_0/config/etc/login.defs new file mode 100644 index 00000000..cf181ac0 --- /dev/null +++ b/tests/tests/chage/26_chage_interactive_date_0/config/etc/login.defs @@ -0,0 +1,314 @@ +# +# /etc/login.defs - Configuration control definitions for the login package. +# +# Three items must be defined: MAIL_DIR, ENV_SUPATH, and ENV_PATH. +# If unspecified, some arbitrary (and possibly incorrect) value will +# be assumed. All other items are optional - if not specified then +# the described action or option will be inhibited. +# +# Comment lines (lines beginning with "#") and blank lines are ignored. +# +# Modified for Linux. --marekm + +# REQUIRED for useradd/userdel/usermod +# Directory where mailboxes reside, _or_ name of file, relative to the +# home directory. If you _do_ define MAIL_DIR and MAIL_FILE, +# MAIL_DIR takes precedence. +# +# Essentially: +# - MAIL_DIR defines the location of users mail spool files +# (for mbox use) by appending the username to MAIL_DIR as defined +# below. +# - MAIL_FILE defines the location of the users mail spool files as the +# fully-qualified filename obtained by prepending the user home +# directory before $MAIL_FILE +# +# NOTE: This is no more used for setting up users MAIL environment variable +# which is, starting from shadow 4.0.12-1 in Debian, entirely the +# job of the pam_mail PAM modules +# See default PAM configuration files provided for +# login, su, etc. +# +# This is a temporary situation: setting these variables will soon +# move to /etc/default/useradd and the variables will then be +# no more supported +MAIL_DIR /var/mail +#MAIL_FILE .mail + +# +# Enable logging and display of /var/log/faillog login failure info. +# This option conflicts with the pam_tally PAM module. +# +FAILLOG_ENAB yes + +# +# Enable display of unknown usernames when login failures are recorded. +# +# WARNING: Unknown usernames may become world readable. +# See #290803 and #298773 for details about how this could become a security +# concern +LOG_UNKFAIL_ENAB no + +# +# Enable logging of successful logins +# +LOG_OK_LOGINS no + +# +# Enable "syslog" logging of su activity - in addition to sulog file logging. +# SYSLOG_SG_ENAB does the same for newgrp and sg. +# +SYSLOG_SU_ENAB yes +SYSLOG_SG_ENAB yes + +# +# If defined, all su activity is logged to this file. +# +#SULOG_FILE /var/log/sulog + +# +# If defined, file which maps tty line to TERM environment parameter. +# Each line of the file is in a format something like "vt100 tty01". +# +#TTYTYPE_FILE /etc/ttytype + +# +# If defined, login failures will be logged here in a utmp format +# last, when invoked as lastb, will read /var/log/btmp, so... +# +FTMP_FILE /var/log/btmp + +# +# If defined, the command name to display when running "su -". For +# example, if this is defined as "su" then a "ps" will display the +# command is "-su". If not defined, then "ps" would display the +# name of the shell actually being run, e.g. something like "-sh". +# +SU_NAME su + +# +# If defined, file which inhibits all the usual chatter during the login +# sequence. If a full pathname, then hushed mode will be enabled if the +# user's name or shell are found in the file. If not a full pathname, then +# hushed mode will be enabled if the file exists in the user's home directory. +# +HUSHLOGIN_FILE .hushlogin +#HUSHLOGIN_FILE /etc/hushlogins + +# +# *REQUIRED* The default PATH settings, for superuser and normal users. +# +# (they are minimal, add the rest in the shell startup files) +ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/games + +# +# Terminal permissions +# +# TTYGROUP Login tty will be assigned this group ownership. +# TTYPERM Login tty will be set to this permission. +# +# If you have a "write" program which is "setgid" to a special group +# which owns the terminals, define TTYGROUP to the group number and +# TTYPERM to 0620. Otherwise leave TTYGROUP commented out and assign +# TTYPERM to either 622 or 600. +# +# In Debian /usr/bin/bsd-write or similar programs are setgid tty +# However, the default and recommended value for TTYPERM is still 0600 +# to not allow anyone to write to anyone else console or terminal + +# Users can still allow other people to write them by issuing +# the "mesg y" command. + +TTYGROUP tty +TTYPERM 0600 + +# +# Login configuration initializations: +# +# ERASECHAR Terminal ERASE character ('\010' = backspace). +# KILLCHAR Terminal KILL character ('\025' = CTRL/U). +# UMASK Default "umask" value. +# +# The ERASECHAR and KILLCHAR are used only on System V machines. +# +# UMASK usage is discouraged because it catches only some classes of user +# entries to system, in fact only those made through login(1), while setting +# umask in shell rc file will catch also logins through su, cron, ssh etc. +# +# At the same time, using shell rc to set umask won't catch entries which use +# non-shell executables in place of login shell, like /usr/sbin/pppd for "ppp" +# user and alike. +# +# Therefore the use of pam_umask is recommended (Debian package libpam-umask) +# as the solution which catches all these cases on PAM-enabled systems. +# +# This avoids the confusion created by having the umask set +# in two different places -- in login.defs and shell rc files (i.e. +# /etc/profile). +# +# For discussion, see #314539 and #248150 as well as the thread starting at +# http://lists.debian.org/debian-devel/2005/06/msg01598.html +# +# Prefix these values with "0" to get octal, "0x" to get hexadecimal. +# +ERASECHAR 0177 +KILLCHAR 025 +# 022 is the "historical" value in Debian for UMASK when it was used +# 027, or even 077, could be considered better for privacy +# There is no One True Answer here : each sysadmin must make up their +# mind. +#UMASK 022 + +# +# Password aging controls: +# +# PASS_MAX_DAYS Maximum number of days a password may be used. +# PASS_MIN_DAYS Minimum number of days allowed between password changes. +# PASS_WARN_AGE Number of days warning given before a password expires. +# +PASS_MAX_DAYS 99999 +PASS_MIN_DAYS 0 +PASS_WARN_AGE 7 + +# +# Min/max values for automatic uid selection in useradd +# +UID_MIN 1000 +UID_MAX 60000 + +# +# Min/max values for automatic gid selection in groupadd +# +GID_MIN 100 +GID_MAX 60000 + +# +# Max number of login retries if password is bad. This will most likely be +# overridden by PAM, since the default pam_unix module has it's own built +# in of 3 retries. However, this is a safe fallback in case you are using +# an authentication module that does not enforce PAM_MAXTRIES. +# +LOGIN_RETRIES 5 + +# +# Max time in seconds for login +# +LOGIN_TIMEOUT 60 + +# +# Which fields may be changed by regular users using chfn - use +# any combination of letters "frwh" (full name, room number, work +# phone, home phone). If not defined, no changes are allowed. +# For backward compatibility, "yes" = "rwh" and "no" = "frwh". +# +CHFN_RESTRICT rwh + +# +# Should login be allowed if we can't cd to the home directory? +# Default is no. +# +DEFAULT_HOME yes + +# +# If defined, this command is run when removing a user. +# It should remove any at/cron/print jobs etc. owned by +# the user to be removed (passed as the first argument). +# +#USERDEL_CMD /usr/sbin/userdel_local + +# +# This enables userdel to remove user groups if no members exist. +# +# Other former uses of this variable such as setting the umask when +# user==primary group are not used in PAM environments, thus in Debian +# +USERGROUPS_ENAB yes + +# +# Instead of the real user shell, the program specified by this parameter +# will be launched, although its visible name (argv[0]) will be the shell's. +# The program may do whatever it wants (logging, additional authentification, +# banner, ...) before running the actual shell. +# +# FAKE_SHELL /bin/fakeshell + +# +# If defined, either full pathname of a file containing device names or +# a ":" delimited list of device names. Root logins will be allowed only +# upon these devices. +# +# This variable is used by login and su. +# +#CONSOLE /etc/consoles +#CONSOLE console:tty01:tty02:tty03:tty04 + +# +# List of groups to add to the user's supplementary group set +# when logging in on the console (as determined by the CONSOLE +# setting). Default is none. +# +# Use with caution - it is possible for users to gain permanent +# access to these groups, even when not logged in on the console. +# How to do it is left as an exercise for the reader... +# +# This variable is used by login and su. +# +#CONSOLE_GROUPS floppy:audio:cdrom + +# +# Only works if compiled with MD5_CRYPT defined: +# If set to "yes", new passwords will be encrypted using the MD5-based +# algorithm compatible with the one used by recent releases of FreeBSD. +# It supports passwords of unlimited length and longer salt strings. +# Set to "no" if you need to copy encrypted passwords to other systems +# which don't understand the new algorithm. Default is "no". +# +# This variable is used by chpasswd, gpasswd and newusers. +# +#MD5_CRYPT_ENAB no + +################# OBSOLETED BY PAM ############## +# # +# These options are now handled by PAM. Please # +# edit the appropriate file in /etc/pam.d/ to # +# enable the equivalents of them. +# +############### + +#MOTD_FILE +#DIALUPS_CHECK_ENAB +#LASTLOG_ENAB +#MAIL_CHECK_ENAB +#OBSCURE_CHECKS_ENAB +#PORTTIME_CHECKS_ENAB +#SU_WHEEL_ONLY +#PASS_CHANGE_TRIES +#PASS_ALWAYS_WARN +#ENVIRON_FILE +#NOLOGINS_FILE +#ISSUE_FILE +#PASS_MIN_LEN +#PASS_MAX_LEN +#ULIMIT +#ENV_HZ +#CHFN_AUTH +#CHSH_AUTH +#FAIL_DELAY + +################# OBSOLETED ####################### +# # +# These options are no more handled by shadow. # +# # +# Shadow utilities will display a warning if they # +# still appear. # +# # +################################################### + +# CLOSE_SESSIONS +# LOGIN_STRING +# NO_PASSWORD_CONSOLE +# QMAIL_DIR + + + diff --git a/tests/tests/chage/26_chage_interactive_date_0/config/etc/passwd b/tests/tests/chage/26_chage_interactive_date_0/config/etc/passwd new file mode 100644 index 00000000..5d27e129 --- /dev/null +++ b/tests/tests/chage/26_chage_interactive_date_0/config/etc/passwd @@ -0,0 +1,26 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser1:x:424242:424242::/home:/bin/bash +myuser2:x:424243:424242::/home:/bin/bash +myuser3:x:424244:424242::/home:/bin/bash +myuser4:x:424245:424242::/home:/bin/bash +myuser5:x:424246:424242::/home:/bin/bash +myuser6:x:424247:424242::/home:/bin/bash +myuser7:x:424248:424242::/home:/bin/bash diff --git a/tests/tests/chage/26_chage_interactive_date_0/config/etc/shadow b/tests/tests/chage/26_chage_interactive_date_0/config/etc/shadow new file mode 100644 index 00000000..da4c2bc4 --- /dev/null +++ b/tests/tests/chage/26_chage_interactive_date_0/config/etc/shadow @@ -0,0 +1,26 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser1:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: +myuser2:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12992:1:99996:5::: +myuser3:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::0: +myuser4:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::1: +myuser5:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:0:: +myuser6:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: +myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: diff --git a/tests/tests/chage/26_chage_interactive_date_0/data/shadow b/tests/tests/chage/26_chage_interactive_date_0/data/shadow new file mode 100644 index 00000000..293987c1 --- /dev/null +++ b/tests/tests/chage/26_chage_interactive_date_0/data/shadow @@ -0,0 +1,26 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser1:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:0:13:14:9:35:0: +myuser2:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12992:1:99996:5::: +myuser3:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::0: +myuser4:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::1: +myuser5:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:0:: +myuser6:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: +myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: diff --git a/tests/tests/chage/26_chage_interactive_date_0/run.exp b/tests/tests/chage/26_chage_interactive_date_0/run.exp new file mode 100755 index 00000000..2f97abbd --- /dev/null +++ b/tests/tests/chage/26_chage_interactive_date_0/run.exp @@ -0,0 +1,31 @@ +#!/usr/bin/expect + +set timeout 5 + +# I've not been able to put the opening bracket in the regular expressions +# If anyone knows... + +spawn /usr/bin/chage myuser1 +expect -re "Minimum Password Age .0\]: " +send "13\r" +expect -re "Maximum Password Age .99999\]: " +send "14\r" +expect -re "Last Password Change \[(]YYYY-MM-DD\[)] .2005-07-27\]: " +send "0\r" +expect -re "Password Expiration Warning .7\]: " +send "9\r" +expect -re "Password Inactive .-1\]: " +send "35\r" +expect -re "Account Expiration Date \[(]YYYY-MM-DD\[)] .-1\]: " +send "0\r" +expect { + eof { + } default { + puts "\nFAIL" + exit 1 + } +} + +puts "\nPASS" +exit 0 + diff --git a/tests/tests/chage/27_chage_interactive_date_-1/chage.test b/tests/tests/chage/27_chage_interactive_date_-1/chage.test new file mode 100755 index 00000000..8d5f5bef --- /dev/null +++ b/tests/tests/chage/27_chage_interactive_date_-1/chage.test @@ -0,0 +1,39 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../common/config.sh +. ../../common/log.sh + +log_start "$0" "chage creates a shadow entry if there were none" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "chage interactive session as myuser1..." +./run.exp +echo "OK" + +echo -n "Check the passwd file..." +../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../common/compare_file.pl data/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chage/27_chage_interactive_date_-1/config.txt b/tests/tests/chage/27_chage_interactive_date_-1/config.txt new file mode 100644 index 00000000..e9e4bbed --- /dev/null +++ b/tests/tests/chage/27_chage_interactive_date_-1/config.txt @@ -0,0 +1 @@ +group foo, GID 1000 diff --git a/tests/tests/chage/27_chage_interactive_date_-1/config/etc/group b/tests/tests/chage/27_chage_interactive_date_-1/config/etc/group new file mode 100644 index 00000000..fecba0c4 --- /dev/null +++ b/tests/tests/chage/27_chage_interactive_date_-1/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: diff --git a/tests/tests/chage/27_chage_interactive_date_-1/config/etc/gshadow b/tests/tests/chage/27_chage_interactive_date_-1/config/etc/gshadow new file mode 100644 index 00000000..5042e581 --- /dev/null +++ b/tests/tests/chage/27_chage_interactive_date_-1/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/chage/27_chage_interactive_date_-1/config/etc/login.defs b/tests/tests/chage/27_chage_interactive_date_-1/config/etc/login.defs new file mode 100644 index 00000000..cf181ac0 --- /dev/null +++ b/tests/tests/chage/27_chage_interactive_date_-1/config/etc/login.defs @@ -0,0 +1,314 @@ +# +# /etc/login.defs - Configuration control definitions for the login package. +# +# Three items must be defined: MAIL_DIR, ENV_SUPATH, and ENV_PATH. +# If unspecified, some arbitrary (and possibly incorrect) value will +# be assumed. All other items are optional - if not specified then +# the described action or option will be inhibited. +# +# Comment lines (lines beginning with "#") and blank lines are ignored. +# +# Modified for Linux. --marekm + +# REQUIRED for useradd/userdel/usermod +# Directory where mailboxes reside, _or_ name of file, relative to the +# home directory. If you _do_ define MAIL_DIR and MAIL_FILE, +# MAIL_DIR takes precedence. +# +# Essentially: +# - MAIL_DIR defines the location of users mail spool files +# (for mbox use) by appending the username to MAIL_DIR as defined +# below. +# - MAIL_FILE defines the location of the users mail spool files as the +# fully-qualified filename obtained by prepending the user home +# directory before $MAIL_FILE +# +# NOTE: This is no more used for setting up users MAIL environment variable +# which is, starting from shadow 4.0.12-1 in Debian, entirely the +# job of the pam_mail PAM modules +# See default PAM configuration files provided for +# login, su, etc. +# +# This is a temporary situation: setting these variables will soon +# move to /etc/default/useradd and the variables will then be +# no more supported +MAIL_DIR /var/mail +#MAIL_FILE .mail + +# +# Enable logging and display of /var/log/faillog login failure info. +# This option conflicts with the pam_tally PAM module. +# +FAILLOG_ENAB yes + +# +# Enable display of unknown usernames when login failures are recorded. +# +# WARNING: Unknown usernames may become world readable. +# See #290803 and #298773 for details about how this could become a security +# concern +LOG_UNKFAIL_ENAB no + +# +# Enable logging of successful logins +# +LOG_OK_LOGINS no + +# +# Enable "syslog" logging of su activity - in addition to sulog file logging. +# SYSLOG_SG_ENAB does the same for newgrp and sg. +# +SYSLOG_SU_ENAB yes +SYSLOG_SG_ENAB yes + +# +# If defined, all su activity is logged to this file. +# +#SULOG_FILE /var/log/sulog + +# +# If defined, file which maps tty line to TERM environment parameter. +# Each line of the file is in a format something like "vt100 tty01". +# +#TTYTYPE_FILE /etc/ttytype + +# +# If defined, login failures will be logged here in a utmp format +# last, when invoked as lastb, will read /var/log/btmp, so... +# +FTMP_FILE /var/log/btmp + +# +# If defined, the command name to display when running "su -". For +# example, if this is defined as "su" then a "ps" will display the +# command is "-su". If not defined, then "ps" would display the +# name of the shell actually being run, e.g. something like "-sh". +# +SU_NAME su + +# +# If defined, file which inhibits all the usual chatter during the login +# sequence. If a full pathname, then hushed mode will be enabled if the +# user's name or shell are found in the file. If not a full pathname, then +# hushed mode will be enabled if the file exists in the user's home directory. +# +HUSHLOGIN_FILE .hushlogin +#HUSHLOGIN_FILE /etc/hushlogins + +# +# *REQUIRED* The default PATH settings, for superuser and normal users. +# +# (they are minimal, add the rest in the shell startup files) +ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/games + +# +# Terminal permissions +# +# TTYGROUP Login tty will be assigned this group ownership. +# TTYPERM Login tty will be set to this permission. +# +# If you have a "write" program which is "setgid" to a special group +# which owns the terminals, define TTYGROUP to the group number and +# TTYPERM to 0620. Otherwise leave TTYGROUP commented out and assign +# TTYPERM to either 622 or 600. +# +# In Debian /usr/bin/bsd-write or similar programs are setgid tty +# However, the default and recommended value for TTYPERM is still 0600 +# to not allow anyone to write to anyone else console or terminal + +# Users can still allow other people to write them by issuing +# the "mesg y" command. + +TTYGROUP tty +TTYPERM 0600 + +# +# Login configuration initializations: +# +# ERASECHAR Terminal ERASE character ('\010' = backspace). +# KILLCHAR Terminal KILL character ('\025' = CTRL/U). +# UMASK Default "umask" value. +# +# The ERASECHAR and KILLCHAR are used only on System V machines. +# +# UMASK usage is discouraged because it catches only some classes of user +# entries to system, in fact only those made through login(1), while setting +# umask in shell rc file will catch also logins through su, cron, ssh etc. +# +# At the same time, using shell rc to set umask won't catch entries which use +# non-shell executables in place of login shell, like /usr/sbin/pppd for "ppp" +# user and alike. +# +# Therefore the use of pam_umask is recommended (Debian package libpam-umask) +# as the solution which catches all these cases on PAM-enabled systems. +# +# This avoids the confusion created by having the umask set +# in two different places -- in login.defs and shell rc files (i.e. +# /etc/profile). +# +# For discussion, see #314539 and #248150 as well as the thread starting at +# http://lists.debian.org/debian-devel/2005/06/msg01598.html +# +# Prefix these values with "0" to get octal, "0x" to get hexadecimal. +# +ERASECHAR 0177 +KILLCHAR 025 +# 022 is the "historical" value in Debian for UMASK when it was used +# 027, or even 077, could be considered better for privacy +# There is no One True Answer here : each sysadmin must make up their +# mind. +#UMASK 022 + +# +# Password aging controls: +# +# PASS_MAX_DAYS Maximum number of days a password may be used. +# PASS_MIN_DAYS Minimum number of days allowed between password changes. +# PASS_WARN_AGE Number of days warning given before a password expires. +# +PASS_MAX_DAYS 99999 +PASS_MIN_DAYS 0 +PASS_WARN_AGE 7 + +# +# Min/max values for automatic uid selection in useradd +# +UID_MIN 1000 +UID_MAX 60000 + +# +# Min/max values for automatic gid selection in groupadd +# +GID_MIN 100 +GID_MAX 60000 + +# +# Max number of login retries if password is bad. This will most likely be +# overridden by PAM, since the default pam_unix module has it's own built +# in of 3 retries. However, this is a safe fallback in case you are using +# an authentication module that does not enforce PAM_MAXTRIES. +# +LOGIN_RETRIES 5 + +# +# Max time in seconds for login +# +LOGIN_TIMEOUT 60 + +# +# Which fields may be changed by regular users using chfn - use +# any combination of letters "frwh" (full name, room number, work +# phone, home phone). If not defined, no changes are allowed. +# For backward compatibility, "yes" = "rwh" and "no" = "frwh". +# +CHFN_RESTRICT rwh + +# +# Should login be allowed if we can't cd to the home directory? +# Default is no. +# +DEFAULT_HOME yes + +# +# If defined, this command is run when removing a user. +# It should remove any at/cron/print jobs etc. owned by +# the user to be removed (passed as the first argument). +# +#USERDEL_CMD /usr/sbin/userdel_local + +# +# This enables userdel to remove user groups if no members exist. +# +# Other former uses of this variable such as setting the umask when +# user==primary group are not used in PAM environments, thus in Debian +# +USERGROUPS_ENAB yes + +# +# Instead of the real user shell, the program specified by this parameter +# will be launched, although its visible name (argv[0]) will be the shell's. +# The program may do whatever it wants (logging, additional authentification, +# banner, ...) before running the actual shell. +# +# FAKE_SHELL /bin/fakeshell + +# +# If defined, either full pathname of a file containing device names or +# a ":" delimited list of device names. Root logins will be allowed only +# upon these devices. +# +# This variable is used by login and su. +# +#CONSOLE /etc/consoles +#CONSOLE console:tty01:tty02:tty03:tty04 + +# +# List of groups to add to the user's supplementary group set +# when logging in on the console (as determined by the CONSOLE +# setting). Default is none. +# +# Use with caution - it is possible for users to gain permanent +# access to these groups, even when not logged in on the console. +# How to do it is left as an exercise for the reader... +# +# This variable is used by login and su. +# +#CONSOLE_GROUPS floppy:audio:cdrom + +# +# Only works if compiled with MD5_CRYPT defined: +# If set to "yes", new passwords will be encrypted using the MD5-based +# algorithm compatible with the one used by recent releases of FreeBSD. +# It supports passwords of unlimited length and longer salt strings. +# Set to "no" if you need to copy encrypted passwords to other systems +# which don't understand the new algorithm. Default is "no". +# +# This variable is used by chpasswd, gpasswd and newusers. +# +#MD5_CRYPT_ENAB no + +################# OBSOLETED BY PAM ############## +# # +# These options are now handled by PAM. Please # +# edit the appropriate file in /etc/pam.d/ to # +# enable the equivalents of them. +# +############### + +#MOTD_FILE +#DIALUPS_CHECK_ENAB +#LASTLOG_ENAB +#MAIL_CHECK_ENAB +#OBSCURE_CHECKS_ENAB +#PORTTIME_CHECKS_ENAB +#SU_WHEEL_ONLY +#PASS_CHANGE_TRIES +#PASS_ALWAYS_WARN +#ENVIRON_FILE +#NOLOGINS_FILE +#ISSUE_FILE +#PASS_MIN_LEN +#PASS_MAX_LEN +#ULIMIT +#ENV_HZ +#CHFN_AUTH +#CHSH_AUTH +#FAIL_DELAY + +################# OBSOLETED ####################### +# # +# These options are no more handled by shadow. # +# # +# Shadow utilities will display a warning if they # +# still appear. # +# # +################################################### + +# CLOSE_SESSIONS +# LOGIN_STRING +# NO_PASSWORD_CONSOLE +# QMAIL_DIR + + + diff --git a/tests/tests/chage/27_chage_interactive_date_-1/config/etc/passwd b/tests/tests/chage/27_chage_interactive_date_-1/config/etc/passwd new file mode 100644 index 00000000..5d27e129 --- /dev/null +++ b/tests/tests/chage/27_chage_interactive_date_-1/config/etc/passwd @@ -0,0 +1,26 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser1:x:424242:424242::/home:/bin/bash +myuser2:x:424243:424242::/home:/bin/bash +myuser3:x:424244:424242::/home:/bin/bash +myuser4:x:424245:424242::/home:/bin/bash +myuser5:x:424246:424242::/home:/bin/bash +myuser6:x:424247:424242::/home:/bin/bash +myuser7:x:424248:424242::/home:/bin/bash diff --git a/tests/tests/chage/27_chage_interactive_date_-1/config/etc/shadow b/tests/tests/chage/27_chage_interactive_date_-1/config/etc/shadow new file mode 100644 index 00000000..da4c2bc4 --- /dev/null +++ b/tests/tests/chage/27_chage_interactive_date_-1/config/etc/shadow @@ -0,0 +1,26 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser1:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: +myuser2:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12992:1:99996:5::: +myuser3:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::0: +myuser4:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::1: +myuser5:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:0:: +myuser6:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: +myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: diff --git a/tests/tests/chage/27_chage_interactive_date_-1/data/shadow b/tests/tests/chage/27_chage_interactive_date_-1/data/shadow new file mode 100644 index 00000000..800f1a22 --- /dev/null +++ b/tests/tests/chage/27_chage_interactive_date_-1/data/shadow @@ -0,0 +1,26 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser1:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.::13:14:9:35:: +myuser2:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12992:1:99996:5::: +myuser3:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::0: +myuser4:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::1: +myuser5:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:0:: +myuser6:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: +myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: diff --git a/tests/tests/chage/27_chage_interactive_date_-1/run.exp b/tests/tests/chage/27_chage_interactive_date_-1/run.exp new file mode 100755 index 00000000..f4c20a1b --- /dev/null +++ b/tests/tests/chage/27_chage_interactive_date_-1/run.exp @@ -0,0 +1,31 @@ +#!/usr/bin/expect + +set timeout 5 + +# I've not been able to put the opening bracket in the regular expressions +# If anyone knows... + +spawn /usr/bin/chage myuser1 +expect -re "Minimum Password Age .0\]: " +send "13\r" +expect -re "Maximum Password Age .99999\]: " +send "14\r" +expect -re "Last Password Change \[(]YYYY-MM-DD\[)] .2005-07-27\]: " +send -- "-1\r" +expect -re "Password Expiration Warning .7\]: " +send "9\r" +expect -re "Password Inactive .-1\]: " +send "35\r" +expect -re "Account Expiration Date \[(]YYYY-MM-DD\[)] .-1\]: " +send -- "-1\r" +expect { + eof { + } default { + puts "\nFAIL" + exit 1 + } +} + +puts "\nPASS" +exit 0 + diff --git a/tests/tests/chage/28_chage_interactive_date_EPOCH/chage.test b/tests/tests/chage/28_chage_interactive_date_EPOCH/chage.test new file mode 100755 index 00000000..8d5f5bef --- /dev/null +++ b/tests/tests/chage/28_chage_interactive_date_EPOCH/chage.test @@ -0,0 +1,39 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../common/config.sh +. ../../common/log.sh + +log_start "$0" "chage creates a shadow entry if there were none" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "chage interactive session as myuser1..." +./run.exp +echo "OK" + +echo -n "Check the passwd file..." +../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../common/compare_file.pl data/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chage/28_chage_interactive_date_EPOCH/config.txt b/tests/tests/chage/28_chage_interactive_date_EPOCH/config.txt new file mode 100644 index 00000000..e9e4bbed --- /dev/null +++ b/tests/tests/chage/28_chage_interactive_date_EPOCH/config.txt @@ -0,0 +1 @@ +group foo, GID 1000 diff --git a/tests/tests/chage/28_chage_interactive_date_EPOCH/config/etc/group b/tests/tests/chage/28_chage_interactive_date_EPOCH/config/etc/group new file mode 100644 index 00000000..fecba0c4 --- /dev/null +++ b/tests/tests/chage/28_chage_interactive_date_EPOCH/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: diff --git a/tests/tests/chage/28_chage_interactive_date_EPOCH/config/etc/gshadow b/tests/tests/chage/28_chage_interactive_date_EPOCH/config/etc/gshadow new file mode 100644 index 00000000..5042e581 --- /dev/null +++ b/tests/tests/chage/28_chage_interactive_date_EPOCH/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/chage/28_chage_interactive_date_EPOCH/config/etc/login.defs b/tests/tests/chage/28_chage_interactive_date_EPOCH/config/etc/login.defs new file mode 100644 index 00000000..cf181ac0 --- /dev/null +++ b/tests/tests/chage/28_chage_interactive_date_EPOCH/config/etc/login.defs @@ -0,0 +1,314 @@ +# +# /etc/login.defs - Configuration control definitions for the login package. +# +# Three items must be defined: MAIL_DIR, ENV_SUPATH, and ENV_PATH. +# If unspecified, some arbitrary (and possibly incorrect) value will +# be assumed. All other items are optional - if not specified then +# the described action or option will be inhibited. +# +# Comment lines (lines beginning with "#") and blank lines are ignored. +# +# Modified for Linux. --marekm + +# REQUIRED for useradd/userdel/usermod +# Directory where mailboxes reside, _or_ name of file, relative to the +# home directory. If you _do_ define MAIL_DIR and MAIL_FILE, +# MAIL_DIR takes precedence. +# +# Essentially: +# - MAIL_DIR defines the location of users mail spool files +# (for mbox use) by appending the username to MAIL_DIR as defined +# below. +# - MAIL_FILE defines the location of the users mail spool files as the +# fully-qualified filename obtained by prepending the user home +# directory before $MAIL_FILE +# +# NOTE: This is no more used for setting up users MAIL environment variable +# which is, starting from shadow 4.0.12-1 in Debian, entirely the +# job of the pam_mail PAM modules +# See default PAM configuration files provided for +# login, su, etc. +# +# This is a temporary situation: setting these variables will soon +# move to /etc/default/useradd and the variables will then be +# no more supported +MAIL_DIR /var/mail +#MAIL_FILE .mail + +# +# Enable logging and display of /var/log/faillog login failure info. +# This option conflicts with the pam_tally PAM module. +# +FAILLOG_ENAB yes + +# +# Enable display of unknown usernames when login failures are recorded. +# +# WARNING: Unknown usernames may become world readable. +# See #290803 and #298773 for details about how this could become a security +# concern +LOG_UNKFAIL_ENAB no + +# +# Enable logging of successful logins +# +LOG_OK_LOGINS no + +# +# Enable "syslog" logging of su activity - in addition to sulog file logging. +# SYSLOG_SG_ENAB does the same for newgrp and sg. +# +SYSLOG_SU_ENAB yes +SYSLOG_SG_ENAB yes + +# +# If defined, all su activity is logged to this file. +# +#SULOG_FILE /var/log/sulog + +# +# If defined, file which maps tty line to TERM environment parameter. +# Each line of the file is in a format something like "vt100 tty01". +# +#TTYTYPE_FILE /etc/ttytype + +# +# If defined, login failures will be logged here in a utmp format +# last, when invoked as lastb, will read /var/log/btmp, so... +# +FTMP_FILE /var/log/btmp + +# +# If defined, the command name to display when running "su -". For +# example, if this is defined as "su" then a "ps" will display the +# command is "-su". If not defined, then "ps" would display the +# name of the shell actually being run, e.g. something like "-sh". +# +SU_NAME su + +# +# If defined, file which inhibits all the usual chatter during the login +# sequence. If a full pathname, then hushed mode will be enabled if the +# user's name or shell are found in the file. If not a full pathname, then +# hushed mode will be enabled if the file exists in the user's home directory. +# +HUSHLOGIN_FILE .hushlogin +#HUSHLOGIN_FILE /etc/hushlogins + +# +# *REQUIRED* The default PATH settings, for superuser and normal users. +# +# (they are minimal, add the rest in the shell startup files) +ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/games + +# +# Terminal permissions +# +# TTYGROUP Login tty will be assigned this group ownership. +# TTYPERM Login tty will be set to this permission. +# +# If you have a "write" program which is "setgid" to a special group +# which owns the terminals, define TTYGROUP to the group number and +# TTYPERM to 0620. Otherwise leave TTYGROUP commented out and assign +# TTYPERM to either 622 or 600. +# +# In Debian /usr/bin/bsd-write or similar programs are setgid tty +# However, the default and recommended value for TTYPERM is still 0600 +# to not allow anyone to write to anyone else console or terminal + +# Users can still allow other people to write them by issuing +# the "mesg y" command. + +TTYGROUP tty +TTYPERM 0600 + +# +# Login configuration initializations: +# +# ERASECHAR Terminal ERASE character ('\010' = backspace). +# KILLCHAR Terminal KILL character ('\025' = CTRL/U). +# UMASK Default "umask" value. +# +# The ERASECHAR and KILLCHAR are used only on System V machines. +# +# UMASK usage is discouraged because it catches only some classes of user +# entries to system, in fact only those made through login(1), while setting +# umask in shell rc file will catch also logins through su, cron, ssh etc. +# +# At the same time, using shell rc to set umask won't catch entries which use +# non-shell executables in place of login shell, like /usr/sbin/pppd for "ppp" +# user and alike. +# +# Therefore the use of pam_umask is recommended (Debian package libpam-umask) +# as the solution which catches all these cases on PAM-enabled systems. +# +# This avoids the confusion created by having the umask set +# in two different places -- in login.defs and shell rc files (i.e. +# /etc/profile). +# +# For discussion, see #314539 and #248150 as well as the thread starting at +# http://lists.debian.org/debian-devel/2005/06/msg01598.html +# +# Prefix these values with "0" to get octal, "0x" to get hexadecimal. +# +ERASECHAR 0177 +KILLCHAR 025 +# 022 is the "historical" value in Debian for UMASK when it was used +# 027, or even 077, could be considered better for privacy +# There is no One True Answer here : each sysadmin must make up their +# mind. +#UMASK 022 + +# +# Password aging controls: +# +# PASS_MAX_DAYS Maximum number of days a password may be used. +# PASS_MIN_DAYS Minimum number of days allowed between password changes. +# PASS_WARN_AGE Number of days warning given before a password expires. +# +PASS_MAX_DAYS 99999 +PASS_MIN_DAYS 0 +PASS_WARN_AGE 7 + +# +# Min/max values for automatic uid selection in useradd +# +UID_MIN 1000 +UID_MAX 60000 + +# +# Min/max values for automatic gid selection in groupadd +# +GID_MIN 100 +GID_MAX 60000 + +# +# Max number of login retries if password is bad. This will most likely be +# overridden by PAM, since the default pam_unix module has it's own built +# in of 3 retries. However, this is a safe fallback in case you are using +# an authentication module that does not enforce PAM_MAXTRIES. +# +LOGIN_RETRIES 5 + +# +# Max time in seconds for login +# +LOGIN_TIMEOUT 60 + +# +# Which fields may be changed by regular users using chfn - use +# any combination of letters "frwh" (full name, room number, work +# phone, home phone). If not defined, no changes are allowed. +# For backward compatibility, "yes" = "rwh" and "no" = "frwh". +# +CHFN_RESTRICT rwh + +# +# Should login be allowed if we can't cd to the home directory? +# Default is no. +# +DEFAULT_HOME yes + +# +# If defined, this command is run when removing a user. +# It should remove any at/cron/print jobs etc. owned by +# the user to be removed (passed as the first argument). +# +#USERDEL_CMD /usr/sbin/userdel_local + +# +# This enables userdel to remove user groups if no members exist. +# +# Other former uses of this variable such as setting the umask when +# user==primary group are not used in PAM environments, thus in Debian +# +USERGROUPS_ENAB yes + +# +# Instead of the real user shell, the program specified by this parameter +# will be launched, although its visible name (argv[0]) will be the shell's. +# The program may do whatever it wants (logging, additional authentification, +# banner, ...) before running the actual shell. +# +# FAKE_SHELL /bin/fakeshell + +# +# If defined, either full pathname of a file containing device names or +# a ":" delimited list of device names. Root logins will be allowed only +# upon these devices. +# +# This variable is used by login and su. +# +#CONSOLE /etc/consoles +#CONSOLE console:tty01:tty02:tty03:tty04 + +# +# List of groups to add to the user's supplementary group set +# when logging in on the console (as determined by the CONSOLE +# setting). Default is none. +# +# Use with caution - it is possible for users to gain permanent +# access to these groups, even when not logged in on the console. +# How to do it is left as an exercise for the reader... +# +# This variable is used by login and su. +# +#CONSOLE_GROUPS floppy:audio:cdrom + +# +# Only works if compiled with MD5_CRYPT defined: +# If set to "yes", new passwords will be encrypted using the MD5-based +# algorithm compatible with the one used by recent releases of FreeBSD. +# It supports passwords of unlimited length and longer salt strings. +# Set to "no" if you need to copy encrypted passwords to other systems +# which don't understand the new algorithm. Default is "no". +# +# This variable is used by chpasswd, gpasswd and newusers. +# +#MD5_CRYPT_ENAB no + +################# OBSOLETED BY PAM ############## +# # +# These options are now handled by PAM. Please # +# edit the appropriate file in /etc/pam.d/ to # +# enable the equivalents of them. +# +############### + +#MOTD_FILE +#DIALUPS_CHECK_ENAB +#LASTLOG_ENAB +#MAIL_CHECK_ENAB +#OBSCURE_CHECKS_ENAB +#PORTTIME_CHECKS_ENAB +#SU_WHEEL_ONLY +#PASS_CHANGE_TRIES +#PASS_ALWAYS_WARN +#ENVIRON_FILE +#NOLOGINS_FILE +#ISSUE_FILE +#PASS_MIN_LEN +#PASS_MAX_LEN +#ULIMIT +#ENV_HZ +#CHFN_AUTH +#CHSH_AUTH +#FAIL_DELAY + +################# OBSOLETED ####################### +# # +# These options are no more handled by shadow. # +# # +# Shadow utilities will display a warning if they # +# still appear. # +# # +################################################### + +# CLOSE_SESSIONS +# LOGIN_STRING +# NO_PASSWORD_CONSOLE +# QMAIL_DIR + + + diff --git a/tests/tests/chage/28_chage_interactive_date_EPOCH/config/etc/passwd b/tests/tests/chage/28_chage_interactive_date_EPOCH/config/etc/passwd new file mode 100644 index 00000000..5d27e129 --- /dev/null +++ b/tests/tests/chage/28_chage_interactive_date_EPOCH/config/etc/passwd @@ -0,0 +1,26 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser1:x:424242:424242::/home:/bin/bash +myuser2:x:424243:424242::/home:/bin/bash +myuser3:x:424244:424242::/home:/bin/bash +myuser4:x:424245:424242::/home:/bin/bash +myuser5:x:424246:424242::/home:/bin/bash +myuser6:x:424247:424242::/home:/bin/bash +myuser7:x:424248:424242::/home:/bin/bash diff --git a/tests/tests/chage/28_chage_interactive_date_EPOCH/config/etc/shadow b/tests/tests/chage/28_chage_interactive_date_EPOCH/config/etc/shadow new file mode 100644 index 00000000..da4c2bc4 --- /dev/null +++ b/tests/tests/chage/28_chage_interactive_date_EPOCH/config/etc/shadow @@ -0,0 +1,26 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser1:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: +myuser2:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12992:1:99996:5::: +myuser3:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::0: +myuser4:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::1: +myuser5:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:0:: +myuser6:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: +myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: diff --git a/tests/tests/chage/28_chage_interactive_date_EPOCH/data/shadow b/tests/tests/chage/28_chage_interactive_date_EPOCH/data/shadow new file mode 100644 index 00000000..293987c1 --- /dev/null +++ b/tests/tests/chage/28_chage_interactive_date_EPOCH/data/shadow @@ -0,0 +1,26 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser1:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:0:13:14:9:35:0: +myuser2:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12992:1:99996:5::: +myuser3:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::0: +myuser4:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::1: +myuser5:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:0:: +myuser6:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: +myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: diff --git a/tests/tests/chage/28_chage_interactive_date_EPOCH/run.exp b/tests/tests/chage/28_chage_interactive_date_EPOCH/run.exp new file mode 100755 index 00000000..a93e8cc9 --- /dev/null +++ b/tests/tests/chage/28_chage_interactive_date_EPOCH/run.exp @@ -0,0 +1,31 @@ +#!/usr/bin/expect + +set timeout 5 + +# I've not been able to put the opening bracket in the regular expressions +# If anyone knows... + +spawn /usr/bin/chage myuser1 +expect -re "Minimum Password Age .0\]: " +send "13\r" +expect -re "Maximum Password Age .99999\]: " +send "14\r" +expect -re "Last Password Change \[(]YYYY-MM-DD\[)] .2005-07-27\]: " +send "1970-01-01\r" +expect -re "Password Expiration Warning .7\]: " +send "9\r" +expect -re "Password Inactive .-1\]: " +send "35\r" +expect -re "Account Expiration Date \[(]YYYY-MM-DD\[)] .-1\]: " +send "1970-01-01\r" +expect { + eof { + } default { + puts "\nFAIL" + exit 1 + } +} + +puts "\nPASS" +exit 0 + diff --git a/tests/tests/chage/29_chage_interactive_date_pre-EPOCH/chage.test b/tests/tests/chage/29_chage_interactive_date_pre-EPOCH/chage.test new file mode 100755 index 00000000..83b4ba2c --- /dev/null +++ b/tests/tests/chage/29_chage_interactive_date_pre-EPOCH/chage.test @@ -0,0 +1,39 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../common/config.sh +. ../../common/log.sh + +log_start "$0" "chage creates a shadow entry if there were none" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "chage interactive session as myuser1..." +./run.exp +echo "OK" + +echo -n "Check the passwd file..." +../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chage/29_chage_interactive_date_pre-EPOCH/config.txt b/tests/tests/chage/29_chage_interactive_date_pre-EPOCH/config.txt new file mode 100644 index 00000000..e9e4bbed --- /dev/null +++ b/tests/tests/chage/29_chage_interactive_date_pre-EPOCH/config.txt @@ -0,0 +1 @@ +group foo, GID 1000 diff --git a/tests/tests/chage/29_chage_interactive_date_pre-EPOCH/config/etc/group b/tests/tests/chage/29_chage_interactive_date_pre-EPOCH/config/etc/group new file mode 100644 index 00000000..fecba0c4 --- /dev/null +++ b/tests/tests/chage/29_chage_interactive_date_pre-EPOCH/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: diff --git a/tests/tests/chage/29_chage_interactive_date_pre-EPOCH/config/etc/gshadow b/tests/tests/chage/29_chage_interactive_date_pre-EPOCH/config/etc/gshadow new file mode 100644 index 00000000..5042e581 --- /dev/null +++ b/tests/tests/chage/29_chage_interactive_date_pre-EPOCH/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/chage/29_chage_interactive_date_pre-EPOCH/config/etc/login.defs b/tests/tests/chage/29_chage_interactive_date_pre-EPOCH/config/etc/login.defs new file mode 100644 index 00000000..cf181ac0 --- /dev/null +++ b/tests/tests/chage/29_chage_interactive_date_pre-EPOCH/config/etc/login.defs @@ -0,0 +1,314 @@ +# +# /etc/login.defs - Configuration control definitions for the login package. +# +# Three items must be defined: MAIL_DIR, ENV_SUPATH, and ENV_PATH. +# If unspecified, some arbitrary (and possibly incorrect) value will +# be assumed. All other items are optional - if not specified then +# the described action or option will be inhibited. +# +# Comment lines (lines beginning with "#") and blank lines are ignored. +# +# Modified for Linux. --marekm + +# REQUIRED for useradd/userdel/usermod +# Directory where mailboxes reside, _or_ name of file, relative to the +# home directory. If you _do_ define MAIL_DIR and MAIL_FILE, +# MAIL_DIR takes precedence. +# +# Essentially: +# - MAIL_DIR defines the location of users mail spool files +# (for mbox use) by appending the username to MAIL_DIR as defined +# below. +# - MAIL_FILE defines the location of the users mail spool files as the +# fully-qualified filename obtained by prepending the user home +# directory before $MAIL_FILE +# +# NOTE: This is no more used for setting up users MAIL environment variable +# which is, starting from shadow 4.0.12-1 in Debian, entirely the +# job of the pam_mail PAM modules +# See default PAM configuration files provided for +# login, su, etc. +# +# This is a temporary situation: setting these variables will soon +# move to /etc/default/useradd and the variables will then be +# no more supported +MAIL_DIR /var/mail +#MAIL_FILE .mail + +# +# Enable logging and display of /var/log/faillog login failure info. +# This option conflicts with the pam_tally PAM module. +# +FAILLOG_ENAB yes + +# +# Enable display of unknown usernames when login failures are recorded. +# +# WARNING: Unknown usernames may become world readable. +# See #290803 and #298773 for details about how this could become a security +# concern +LOG_UNKFAIL_ENAB no + +# +# Enable logging of successful logins +# +LOG_OK_LOGINS no + +# +# Enable "syslog" logging of su activity - in addition to sulog file logging. +# SYSLOG_SG_ENAB does the same for newgrp and sg. +# +SYSLOG_SU_ENAB yes +SYSLOG_SG_ENAB yes + +# +# If defined, all su activity is logged to this file. +# +#SULOG_FILE /var/log/sulog + +# +# If defined, file which maps tty line to TERM environment parameter. +# Each line of the file is in a format something like "vt100 tty01". +# +#TTYTYPE_FILE /etc/ttytype + +# +# If defined, login failures will be logged here in a utmp format +# last, when invoked as lastb, will read /var/log/btmp, so... +# +FTMP_FILE /var/log/btmp + +# +# If defined, the command name to display when running "su -". For +# example, if this is defined as "su" then a "ps" will display the +# command is "-su". If not defined, then "ps" would display the +# name of the shell actually being run, e.g. something like "-sh". +# +SU_NAME su + +# +# If defined, file which inhibits all the usual chatter during the login +# sequence. If a full pathname, then hushed mode will be enabled if the +# user's name or shell are found in the file. If not a full pathname, then +# hushed mode will be enabled if the file exists in the user's home directory. +# +HUSHLOGIN_FILE .hushlogin +#HUSHLOGIN_FILE /etc/hushlogins + +# +# *REQUIRED* The default PATH settings, for superuser and normal users. +# +# (they are minimal, add the rest in the shell startup files) +ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/games + +# +# Terminal permissions +# +# TTYGROUP Login tty will be assigned this group ownership. +# TTYPERM Login tty will be set to this permission. +# +# If you have a "write" program which is "setgid" to a special group +# which owns the terminals, define TTYGROUP to the group number and +# TTYPERM to 0620. Otherwise leave TTYGROUP commented out and assign +# TTYPERM to either 622 or 600. +# +# In Debian /usr/bin/bsd-write or similar programs are setgid tty +# However, the default and recommended value for TTYPERM is still 0600 +# to not allow anyone to write to anyone else console or terminal + +# Users can still allow other people to write them by issuing +# the "mesg y" command. + +TTYGROUP tty +TTYPERM 0600 + +# +# Login configuration initializations: +# +# ERASECHAR Terminal ERASE character ('\010' = backspace). +# KILLCHAR Terminal KILL character ('\025' = CTRL/U). +# UMASK Default "umask" value. +# +# The ERASECHAR and KILLCHAR are used only on System V machines. +# +# UMASK usage is discouraged because it catches only some classes of user +# entries to system, in fact only those made through login(1), while setting +# umask in shell rc file will catch also logins through su, cron, ssh etc. +# +# At the same time, using shell rc to set umask won't catch entries which use +# non-shell executables in place of login shell, like /usr/sbin/pppd for "ppp" +# user and alike. +# +# Therefore the use of pam_umask is recommended (Debian package libpam-umask) +# as the solution which catches all these cases on PAM-enabled systems. +# +# This avoids the confusion created by having the umask set +# in two different places -- in login.defs and shell rc files (i.e. +# /etc/profile). +# +# For discussion, see #314539 and #248150 as well as the thread starting at +# http://lists.debian.org/debian-devel/2005/06/msg01598.html +# +# Prefix these values with "0" to get octal, "0x" to get hexadecimal. +# +ERASECHAR 0177 +KILLCHAR 025 +# 022 is the "historical" value in Debian for UMASK when it was used +# 027, or even 077, could be considered better for privacy +# There is no One True Answer here : each sysadmin must make up their +# mind. +#UMASK 022 + +# +# Password aging controls: +# +# PASS_MAX_DAYS Maximum number of days a password may be used. +# PASS_MIN_DAYS Minimum number of days allowed between password changes. +# PASS_WARN_AGE Number of days warning given before a password expires. +# +PASS_MAX_DAYS 99999 +PASS_MIN_DAYS 0 +PASS_WARN_AGE 7 + +# +# Min/max values for automatic uid selection in useradd +# +UID_MIN 1000 +UID_MAX 60000 + +# +# Min/max values for automatic gid selection in groupadd +# +GID_MIN 100 +GID_MAX 60000 + +# +# Max number of login retries if password is bad. This will most likely be +# overridden by PAM, since the default pam_unix module has it's own built +# in of 3 retries. However, this is a safe fallback in case you are using +# an authentication module that does not enforce PAM_MAXTRIES. +# +LOGIN_RETRIES 5 + +# +# Max time in seconds for login +# +LOGIN_TIMEOUT 60 + +# +# Which fields may be changed by regular users using chfn - use +# any combination of letters "frwh" (full name, room number, work +# phone, home phone). If not defined, no changes are allowed. +# For backward compatibility, "yes" = "rwh" and "no" = "frwh". +# +CHFN_RESTRICT rwh + +# +# Should login be allowed if we can't cd to the home directory? +# Default is no. +# +DEFAULT_HOME yes + +# +# If defined, this command is run when removing a user. +# It should remove any at/cron/print jobs etc. owned by +# the user to be removed (passed as the first argument). +# +#USERDEL_CMD /usr/sbin/userdel_local + +# +# This enables userdel to remove user groups if no members exist. +# +# Other former uses of this variable such as setting the umask when +# user==primary group are not used in PAM environments, thus in Debian +# +USERGROUPS_ENAB yes + +# +# Instead of the real user shell, the program specified by this parameter +# will be launched, although its visible name (argv[0]) will be the shell's. +# The program may do whatever it wants (logging, additional authentification, +# banner, ...) before running the actual shell. +# +# FAKE_SHELL /bin/fakeshell + +# +# If defined, either full pathname of a file containing device names or +# a ":" delimited list of device names. Root logins will be allowed only +# upon these devices. +# +# This variable is used by login and su. +# +#CONSOLE /etc/consoles +#CONSOLE console:tty01:tty02:tty03:tty04 + +# +# List of groups to add to the user's supplementary group set +# when logging in on the console (as determined by the CONSOLE +# setting). Default is none. +# +# Use with caution - it is possible for users to gain permanent +# access to these groups, even when not logged in on the console. +# How to do it is left as an exercise for the reader... +# +# This variable is used by login and su. +# +#CONSOLE_GROUPS floppy:audio:cdrom + +# +# Only works if compiled with MD5_CRYPT defined: +# If set to "yes", new passwords will be encrypted using the MD5-based +# algorithm compatible with the one used by recent releases of FreeBSD. +# It supports passwords of unlimited length and longer salt strings. +# Set to "no" if you need to copy encrypted passwords to other systems +# which don't understand the new algorithm. Default is "no". +# +# This variable is used by chpasswd, gpasswd and newusers. +# +#MD5_CRYPT_ENAB no + +################# OBSOLETED BY PAM ############## +# # +# These options are now handled by PAM. Please # +# edit the appropriate file in /etc/pam.d/ to # +# enable the equivalents of them. +# +############### + +#MOTD_FILE +#DIALUPS_CHECK_ENAB +#LASTLOG_ENAB +#MAIL_CHECK_ENAB +#OBSCURE_CHECKS_ENAB +#PORTTIME_CHECKS_ENAB +#SU_WHEEL_ONLY +#PASS_CHANGE_TRIES +#PASS_ALWAYS_WARN +#ENVIRON_FILE +#NOLOGINS_FILE +#ISSUE_FILE +#PASS_MIN_LEN +#PASS_MAX_LEN +#ULIMIT +#ENV_HZ +#CHFN_AUTH +#CHSH_AUTH +#FAIL_DELAY + +################# OBSOLETED ####################### +# # +# These options are no more handled by shadow. # +# # +# Shadow utilities will display a warning if they # +# still appear. # +# # +################################################### + +# CLOSE_SESSIONS +# LOGIN_STRING +# NO_PASSWORD_CONSOLE +# QMAIL_DIR + + + diff --git a/tests/tests/chage/29_chage_interactive_date_pre-EPOCH/config/etc/passwd b/tests/tests/chage/29_chage_interactive_date_pre-EPOCH/config/etc/passwd new file mode 100644 index 00000000..5d27e129 --- /dev/null +++ b/tests/tests/chage/29_chage_interactive_date_pre-EPOCH/config/etc/passwd @@ -0,0 +1,26 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser1:x:424242:424242::/home:/bin/bash +myuser2:x:424243:424242::/home:/bin/bash +myuser3:x:424244:424242::/home:/bin/bash +myuser4:x:424245:424242::/home:/bin/bash +myuser5:x:424246:424242::/home:/bin/bash +myuser6:x:424247:424242::/home:/bin/bash +myuser7:x:424248:424242::/home:/bin/bash diff --git a/tests/tests/chage/29_chage_interactive_date_pre-EPOCH/config/etc/shadow b/tests/tests/chage/29_chage_interactive_date_pre-EPOCH/config/etc/shadow new file mode 100644 index 00000000..da4c2bc4 --- /dev/null +++ b/tests/tests/chage/29_chage_interactive_date_pre-EPOCH/config/etc/shadow @@ -0,0 +1,26 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser1:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: +myuser2:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12992:1:99996:5::: +myuser3:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::0: +myuser4:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::1: +myuser5:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:0:: +myuser6:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: +myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: diff --git a/tests/tests/chage/29_chage_interactive_date_pre-EPOCH/run.exp b/tests/tests/chage/29_chage_interactive_date_pre-EPOCH/run.exp new file mode 100755 index 00000000..a43fd042 --- /dev/null +++ b/tests/tests/chage/29_chage_interactive_date_pre-EPOCH/run.exp @@ -0,0 +1,26 @@ +#!/usr/bin/expect + +set timeout 5 + +# I've not been able to put the opening bracket in the regular expressions +# If anyone knows... + +spawn /usr/bin/chage myuser1 +expect -re "Minimum Password Age .0\]: " +send "13\r" +expect -re "Maximum Password Age .99999\]: " +send "14\r" +expect -re "Last Password Change \[(]YYYY-MM-DD\[)] .2005-07-27\]: " +send "1900-01-01\r" +expect "chage: error changing fields\r\n" +expect { + eof { + } default { + puts "\nFAIL" + exit 1 + } +} + +puts "\nPASS" +exit 0 + diff --git a/tests/tests/chage/30_chage_interactive_date_pre-EPOCH2/chage.test b/tests/tests/chage/30_chage_interactive_date_pre-EPOCH2/chage.test new file mode 100755 index 00000000..83b4ba2c --- /dev/null +++ b/tests/tests/chage/30_chage_interactive_date_pre-EPOCH2/chage.test @@ -0,0 +1,39 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../common/config.sh +. ../../common/log.sh + +log_start "$0" "chage creates a shadow entry if there were none" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "chage interactive session as myuser1..." +./run.exp +echo "OK" + +echo -n "Check the passwd file..." +../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chage/30_chage_interactive_date_pre-EPOCH2/config.txt b/tests/tests/chage/30_chage_interactive_date_pre-EPOCH2/config.txt new file mode 100644 index 00000000..e9e4bbed --- /dev/null +++ b/tests/tests/chage/30_chage_interactive_date_pre-EPOCH2/config.txt @@ -0,0 +1 @@ +group foo, GID 1000 diff --git a/tests/tests/chage/30_chage_interactive_date_pre-EPOCH2/config/etc/group b/tests/tests/chage/30_chage_interactive_date_pre-EPOCH2/config/etc/group new file mode 100644 index 00000000..fecba0c4 --- /dev/null +++ b/tests/tests/chage/30_chage_interactive_date_pre-EPOCH2/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: diff --git a/tests/tests/chage/30_chage_interactive_date_pre-EPOCH2/config/etc/gshadow b/tests/tests/chage/30_chage_interactive_date_pre-EPOCH2/config/etc/gshadow new file mode 100644 index 00000000..5042e581 --- /dev/null +++ b/tests/tests/chage/30_chage_interactive_date_pre-EPOCH2/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/chage/30_chage_interactive_date_pre-EPOCH2/config/etc/login.defs b/tests/tests/chage/30_chage_interactive_date_pre-EPOCH2/config/etc/login.defs new file mode 100644 index 00000000..cf181ac0 --- /dev/null +++ b/tests/tests/chage/30_chage_interactive_date_pre-EPOCH2/config/etc/login.defs @@ -0,0 +1,314 @@ +# +# /etc/login.defs - Configuration control definitions for the login package. +# +# Three items must be defined: MAIL_DIR, ENV_SUPATH, and ENV_PATH. +# If unspecified, some arbitrary (and possibly incorrect) value will +# be assumed. All other items are optional - if not specified then +# the described action or option will be inhibited. +# +# Comment lines (lines beginning with "#") and blank lines are ignored. +# +# Modified for Linux. --marekm + +# REQUIRED for useradd/userdel/usermod +# Directory where mailboxes reside, _or_ name of file, relative to the +# home directory. If you _do_ define MAIL_DIR and MAIL_FILE, +# MAIL_DIR takes precedence. +# +# Essentially: +# - MAIL_DIR defines the location of users mail spool files +# (for mbox use) by appending the username to MAIL_DIR as defined +# below. +# - MAIL_FILE defines the location of the users mail spool files as the +# fully-qualified filename obtained by prepending the user home +# directory before $MAIL_FILE +# +# NOTE: This is no more used for setting up users MAIL environment variable +# which is, starting from shadow 4.0.12-1 in Debian, entirely the +# job of the pam_mail PAM modules +# See default PAM configuration files provided for +# login, su, etc. +# +# This is a temporary situation: setting these variables will soon +# move to /etc/default/useradd and the variables will then be +# no more supported +MAIL_DIR /var/mail +#MAIL_FILE .mail + +# +# Enable logging and display of /var/log/faillog login failure info. +# This option conflicts with the pam_tally PAM module. +# +FAILLOG_ENAB yes + +# +# Enable display of unknown usernames when login failures are recorded. +# +# WARNING: Unknown usernames may become world readable. +# See #290803 and #298773 for details about how this could become a security +# concern +LOG_UNKFAIL_ENAB no + +# +# Enable logging of successful logins +# +LOG_OK_LOGINS no + +# +# Enable "syslog" logging of su activity - in addition to sulog file logging. +# SYSLOG_SG_ENAB does the same for newgrp and sg. +# +SYSLOG_SU_ENAB yes +SYSLOG_SG_ENAB yes + +# +# If defined, all su activity is logged to this file. +# +#SULOG_FILE /var/log/sulog + +# +# If defined, file which maps tty line to TERM environment parameter. +# Each line of the file is in a format something like "vt100 tty01". +# +#TTYTYPE_FILE /etc/ttytype + +# +# If defined, login failures will be logged here in a utmp format +# last, when invoked as lastb, will read /var/log/btmp, so... +# +FTMP_FILE /var/log/btmp + +# +# If defined, the command name to display when running "su -". For +# example, if this is defined as "su" then a "ps" will display the +# command is "-su". If not defined, then "ps" would display the +# name of the shell actually being run, e.g. something like "-sh". +# +SU_NAME su + +# +# If defined, file which inhibits all the usual chatter during the login +# sequence. If a full pathname, then hushed mode will be enabled if the +# user's name or shell are found in the file. If not a full pathname, then +# hushed mode will be enabled if the file exists in the user's home directory. +# +HUSHLOGIN_FILE .hushlogin +#HUSHLOGIN_FILE /etc/hushlogins + +# +# *REQUIRED* The default PATH settings, for superuser and normal users. +# +# (they are minimal, add the rest in the shell startup files) +ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/games + +# +# Terminal permissions +# +# TTYGROUP Login tty will be assigned this group ownership. +# TTYPERM Login tty will be set to this permission. +# +# If you have a "write" program which is "setgid" to a special group +# which owns the terminals, define TTYGROUP to the group number and +# TTYPERM to 0620. Otherwise leave TTYGROUP commented out and assign +# TTYPERM to either 622 or 600. +# +# In Debian /usr/bin/bsd-write or similar programs are setgid tty +# However, the default and recommended value for TTYPERM is still 0600 +# to not allow anyone to write to anyone else console or terminal + +# Users can still allow other people to write them by issuing +# the "mesg y" command. + +TTYGROUP tty +TTYPERM 0600 + +# +# Login configuration initializations: +# +# ERASECHAR Terminal ERASE character ('\010' = backspace). +# KILLCHAR Terminal KILL character ('\025' = CTRL/U). +# UMASK Default "umask" value. +# +# The ERASECHAR and KILLCHAR are used only on System V machines. +# +# UMASK usage is discouraged because it catches only some classes of user +# entries to system, in fact only those made through login(1), while setting +# umask in shell rc file will catch also logins through su, cron, ssh etc. +# +# At the same time, using shell rc to set umask won't catch entries which use +# non-shell executables in place of login shell, like /usr/sbin/pppd for "ppp" +# user and alike. +# +# Therefore the use of pam_umask is recommended (Debian package libpam-umask) +# as the solution which catches all these cases on PAM-enabled systems. +# +# This avoids the confusion created by having the umask set +# in two different places -- in login.defs and shell rc files (i.e. +# /etc/profile). +# +# For discussion, see #314539 and #248150 as well as the thread starting at +# http://lists.debian.org/debian-devel/2005/06/msg01598.html +# +# Prefix these values with "0" to get octal, "0x" to get hexadecimal. +# +ERASECHAR 0177 +KILLCHAR 025 +# 022 is the "historical" value in Debian for UMASK when it was used +# 027, or even 077, could be considered better for privacy +# There is no One True Answer here : each sysadmin must make up their +# mind. +#UMASK 022 + +# +# Password aging controls: +# +# PASS_MAX_DAYS Maximum number of days a password may be used. +# PASS_MIN_DAYS Minimum number of days allowed between password changes. +# PASS_WARN_AGE Number of days warning given before a password expires. +# +PASS_MAX_DAYS 99999 +PASS_MIN_DAYS 0 +PASS_WARN_AGE 7 + +# +# Min/max values for automatic uid selection in useradd +# +UID_MIN 1000 +UID_MAX 60000 + +# +# Min/max values for automatic gid selection in groupadd +# +GID_MIN 100 +GID_MAX 60000 + +# +# Max number of login retries if password is bad. This will most likely be +# overridden by PAM, since the default pam_unix module has it's own built +# in of 3 retries. However, this is a safe fallback in case you are using +# an authentication module that does not enforce PAM_MAXTRIES. +# +LOGIN_RETRIES 5 + +# +# Max time in seconds for login +# +LOGIN_TIMEOUT 60 + +# +# Which fields may be changed by regular users using chfn - use +# any combination of letters "frwh" (full name, room number, work +# phone, home phone). If not defined, no changes are allowed. +# For backward compatibility, "yes" = "rwh" and "no" = "frwh". +# +CHFN_RESTRICT rwh + +# +# Should login be allowed if we can't cd to the home directory? +# Default is no. +# +DEFAULT_HOME yes + +# +# If defined, this command is run when removing a user. +# It should remove any at/cron/print jobs etc. owned by +# the user to be removed (passed as the first argument). +# +#USERDEL_CMD /usr/sbin/userdel_local + +# +# This enables userdel to remove user groups if no members exist. +# +# Other former uses of this variable such as setting the umask when +# user==primary group are not used in PAM environments, thus in Debian +# +USERGROUPS_ENAB yes + +# +# Instead of the real user shell, the program specified by this parameter +# will be launched, although its visible name (argv[0]) will be the shell's. +# The program may do whatever it wants (logging, additional authentification, +# banner, ...) before running the actual shell. +# +# FAKE_SHELL /bin/fakeshell + +# +# If defined, either full pathname of a file containing device names or +# a ":" delimited list of device names. Root logins will be allowed only +# upon these devices. +# +# This variable is used by login and su. +# +#CONSOLE /etc/consoles +#CONSOLE console:tty01:tty02:tty03:tty04 + +# +# List of groups to add to the user's supplementary group set +# when logging in on the console (as determined by the CONSOLE +# setting). Default is none. +# +# Use with caution - it is possible for users to gain permanent +# access to these groups, even when not logged in on the console. +# How to do it is left as an exercise for the reader... +# +# This variable is used by login and su. +# +#CONSOLE_GROUPS floppy:audio:cdrom + +# +# Only works if compiled with MD5_CRYPT defined: +# If set to "yes", new passwords will be encrypted using the MD5-based +# algorithm compatible with the one used by recent releases of FreeBSD. +# It supports passwords of unlimited length and longer salt strings. +# Set to "no" if you need to copy encrypted passwords to other systems +# which don't understand the new algorithm. Default is "no". +# +# This variable is used by chpasswd, gpasswd and newusers. +# +#MD5_CRYPT_ENAB no + +################# OBSOLETED BY PAM ############## +# # +# These options are now handled by PAM. Please # +# edit the appropriate file in /etc/pam.d/ to # +# enable the equivalents of them. +# +############### + +#MOTD_FILE +#DIALUPS_CHECK_ENAB +#LASTLOG_ENAB +#MAIL_CHECK_ENAB +#OBSCURE_CHECKS_ENAB +#PORTTIME_CHECKS_ENAB +#SU_WHEEL_ONLY +#PASS_CHANGE_TRIES +#PASS_ALWAYS_WARN +#ENVIRON_FILE +#NOLOGINS_FILE +#ISSUE_FILE +#PASS_MIN_LEN +#PASS_MAX_LEN +#ULIMIT +#ENV_HZ +#CHFN_AUTH +#CHSH_AUTH +#FAIL_DELAY + +################# OBSOLETED ####################### +# # +# These options are no more handled by shadow. # +# # +# Shadow utilities will display a warning if they # +# still appear. # +# # +################################################### + +# CLOSE_SESSIONS +# LOGIN_STRING +# NO_PASSWORD_CONSOLE +# QMAIL_DIR + + + diff --git a/tests/tests/chage/30_chage_interactive_date_pre-EPOCH2/config/etc/passwd b/tests/tests/chage/30_chage_interactive_date_pre-EPOCH2/config/etc/passwd new file mode 100644 index 00000000..5d27e129 --- /dev/null +++ b/tests/tests/chage/30_chage_interactive_date_pre-EPOCH2/config/etc/passwd @@ -0,0 +1,26 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser1:x:424242:424242::/home:/bin/bash +myuser2:x:424243:424242::/home:/bin/bash +myuser3:x:424244:424242::/home:/bin/bash +myuser4:x:424245:424242::/home:/bin/bash +myuser5:x:424246:424242::/home:/bin/bash +myuser6:x:424247:424242::/home:/bin/bash +myuser7:x:424248:424242::/home:/bin/bash diff --git a/tests/tests/chage/30_chage_interactive_date_pre-EPOCH2/config/etc/shadow b/tests/tests/chage/30_chage_interactive_date_pre-EPOCH2/config/etc/shadow new file mode 100644 index 00000000..da4c2bc4 --- /dev/null +++ b/tests/tests/chage/30_chage_interactive_date_pre-EPOCH2/config/etc/shadow @@ -0,0 +1,26 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser1:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: +myuser2:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12992:1:99996:5::: +myuser3:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::0: +myuser4:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::1: +myuser5:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:0:: +myuser6:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: +myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: diff --git a/tests/tests/chage/30_chage_interactive_date_pre-EPOCH2/run.exp b/tests/tests/chage/30_chage_interactive_date_pre-EPOCH2/run.exp new file mode 100755 index 00000000..9c3c5db0 --- /dev/null +++ b/tests/tests/chage/30_chage_interactive_date_pre-EPOCH2/run.exp @@ -0,0 +1,32 @@ +#!/usr/bin/expect + +set timeout 5 + +# I've not been able to put the opening bracket in the regular expressions +# If anyone knows... + +spawn /usr/bin/chage myuser1 +expect -re "Minimum Password Age .0\]: " +send "13\r" +expect -re "Maximum Password Age .99999\]: " +send "14\r" +expect -re "Last Password Change \[(]YYYY-MM-DD\[)] .2005-07-27\]: " +send "1970-01-01\r" +expect -re "Password Expiration Warning .7\]: " +send "9\r" +expect -re "Password Inactive .-1\]: " +send "35\r" +expect -re "Account Expiration Date \[(]YYYY-MM-DD\[)] .-1\]: " +send "1900-01-01\r" +expect "chage: error changing fields\r\n" +expect { + eof { + } default { + puts "\nFAIL" + exit 1 + } +} + +puts "\nPASS" +exit 0 + diff --git a/tests/tests/chage/31_chage_interactive_date_invalid/chage.test b/tests/tests/chage/31_chage_interactive_date_invalid/chage.test new file mode 100755 index 00000000..1a8606a6 --- /dev/null +++ b/tests/tests/chage/31_chage_interactive_date_invalid/chage.test @@ -0,0 +1,39 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../common/config.sh +. ../../common/log.sh + +log_start "$0" "chage creates a shadow entry if there were none" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config; rm -f /etc/passwd.lock /etc/shadow.lock' 0 + +change_config + +echo -n "chage interactive session as myuser1..." +./run.exp +echo "OK" + +echo -n "Check the passwd file..." +../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chage/31_chage_interactive_date_invalid/config.txt b/tests/tests/chage/31_chage_interactive_date_invalid/config.txt new file mode 100644 index 00000000..e9e4bbed --- /dev/null +++ b/tests/tests/chage/31_chage_interactive_date_invalid/config.txt @@ -0,0 +1 @@ +group foo, GID 1000 diff --git a/tests/tests/chage/31_chage_interactive_date_invalid/config/etc/group b/tests/tests/chage/31_chage_interactive_date_invalid/config/etc/group new file mode 100644 index 00000000..fecba0c4 --- /dev/null +++ b/tests/tests/chage/31_chage_interactive_date_invalid/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: diff --git a/tests/tests/chage/31_chage_interactive_date_invalid/config/etc/gshadow b/tests/tests/chage/31_chage_interactive_date_invalid/config/etc/gshadow new file mode 100644 index 00000000..5042e581 --- /dev/null +++ b/tests/tests/chage/31_chage_interactive_date_invalid/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/chage/31_chage_interactive_date_invalid/config/etc/login.defs b/tests/tests/chage/31_chage_interactive_date_invalid/config/etc/login.defs new file mode 100644 index 00000000..cf181ac0 --- /dev/null +++ b/tests/tests/chage/31_chage_interactive_date_invalid/config/etc/login.defs @@ -0,0 +1,314 @@ +# +# /etc/login.defs - Configuration control definitions for the login package. +# +# Three items must be defined: MAIL_DIR, ENV_SUPATH, and ENV_PATH. +# If unspecified, some arbitrary (and possibly incorrect) value will +# be assumed. All other items are optional - if not specified then +# the described action or option will be inhibited. +# +# Comment lines (lines beginning with "#") and blank lines are ignored. +# +# Modified for Linux. --marekm + +# REQUIRED for useradd/userdel/usermod +# Directory where mailboxes reside, _or_ name of file, relative to the +# home directory. If you _do_ define MAIL_DIR and MAIL_FILE, +# MAIL_DIR takes precedence. +# +# Essentially: +# - MAIL_DIR defines the location of users mail spool files +# (for mbox use) by appending the username to MAIL_DIR as defined +# below. +# - MAIL_FILE defines the location of the users mail spool files as the +# fully-qualified filename obtained by prepending the user home +# directory before $MAIL_FILE +# +# NOTE: This is no more used for setting up users MAIL environment variable +# which is, starting from shadow 4.0.12-1 in Debian, entirely the +# job of the pam_mail PAM modules +# See default PAM configuration files provided for +# login, su, etc. +# +# This is a temporary situation: setting these variables will soon +# move to /etc/default/useradd and the variables will then be +# no more supported +MAIL_DIR /var/mail +#MAIL_FILE .mail + +# +# Enable logging and display of /var/log/faillog login failure info. +# This option conflicts with the pam_tally PAM module. +# +FAILLOG_ENAB yes + +# +# Enable display of unknown usernames when login failures are recorded. +# +# WARNING: Unknown usernames may become world readable. +# See #290803 and #298773 for details about how this could become a security +# concern +LOG_UNKFAIL_ENAB no + +# +# Enable logging of successful logins +# +LOG_OK_LOGINS no + +# +# Enable "syslog" logging of su activity - in addition to sulog file logging. +# SYSLOG_SG_ENAB does the same for newgrp and sg. +# +SYSLOG_SU_ENAB yes +SYSLOG_SG_ENAB yes + +# +# If defined, all su activity is logged to this file. +# +#SULOG_FILE /var/log/sulog + +# +# If defined, file which maps tty line to TERM environment parameter. +# Each line of the file is in a format something like "vt100 tty01". +# +#TTYTYPE_FILE /etc/ttytype + +# +# If defined, login failures will be logged here in a utmp format +# last, when invoked as lastb, will read /var/log/btmp, so... +# +FTMP_FILE /var/log/btmp + +# +# If defined, the command name to display when running "su -". For +# example, if this is defined as "su" then a "ps" will display the +# command is "-su". If not defined, then "ps" would display the +# name of the shell actually being run, e.g. something like "-sh". +# +SU_NAME su + +# +# If defined, file which inhibits all the usual chatter during the login +# sequence. If a full pathname, then hushed mode will be enabled if the +# user's name or shell are found in the file. If not a full pathname, then +# hushed mode will be enabled if the file exists in the user's home directory. +# +HUSHLOGIN_FILE .hushlogin +#HUSHLOGIN_FILE /etc/hushlogins + +# +# *REQUIRED* The default PATH settings, for superuser and normal users. +# +# (they are minimal, add the rest in the shell startup files) +ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/games + +# +# Terminal permissions +# +# TTYGROUP Login tty will be assigned this group ownership. +# TTYPERM Login tty will be set to this permission. +# +# If you have a "write" program which is "setgid" to a special group +# which owns the terminals, define TTYGROUP to the group number and +# TTYPERM to 0620. Otherwise leave TTYGROUP commented out and assign +# TTYPERM to either 622 or 600. +# +# In Debian /usr/bin/bsd-write or similar programs are setgid tty +# However, the default and recommended value for TTYPERM is still 0600 +# to not allow anyone to write to anyone else console or terminal + +# Users can still allow other people to write them by issuing +# the "mesg y" command. + +TTYGROUP tty +TTYPERM 0600 + +# +# Login configuration initializations: +# +# ERASECHAR Terminal ERASE character ('\010' = backspace). +# KILLCHAR Terminal KILL character ('\025' = CTRL/U). +# UMASK Default "umask" value. +# +# The ERASECHAR and KILLCHAR are used only on System V machines. +# +# UMASK usage is discouraged because it catches only some classes of user +# entries to system, in fact only those made through login(1), while setting +# umask in shell rc file will catch also logins through su, cron, ssh etc. +# +# At the same time, using shell rc to set umask won't catch entries which use +# non-shell executables in place of login shell, like /usr/sbin/pppd for "ppp" +# user and alike. +# +# Therefore the use of pam_umask is recommended (Debian package libpam-umask) +# as the solution which catches all these cases on PAM-enabled systems. +# +# This avoids the confusion created by having the umask set +# in two different places -- in login.defs and shell rc files (i.e. +# /etc/profile). +# +# For discussion, see #314539 and #248150 as well as the thread starting at +# http://lists.debian.org/debian-devel/2005/06/msg01598.html +# +# Prefix these values with "0" to get octal, "0x" to get hexadecimal. +# +ERASECHAR 0177 +KILLCHAR 025 +# 022 is the "historical" value in Debian for UMASK when it was used +# 027, or even 077, could be considered better for privacy +# There is no One True Answer here : each sysadmin must make up their +# mind. +#UMASK 022 + +# +# Password aging controls: +# +# PASS_MAX_DAYS Maximum number of days a password may be used. +# PASS_MIN_DAYS Minimum number of days allowed between password changes. +# PASS_WARN_AGE Number of days warning given before a password expires. +# +PASS_MAX_DAYS 99999 +PASS_MIN_DAYS 0 +PASS_WARN_AGE 7 + +# +# Min/max values for automatic uid selection in useradd +# +UID_MIN 1000 +UID_MAX 60000 + +# +# Min/max values for automatic gid selection in groupadd +# +GID_MIN 100 +GID_MAX 60000 + +# +# Max number of login retries if password is bad. This will most likely be +# overridden by PAM, since the default pam_unix module has it's own built +# in of 3 retries. However, this is a safe fallback in case you are using +# an authentication module that does not enforce PAM_MAXTRIES. +# +LOGIN_RETRIES 5 + +# +# Max time in seconds for login +# +LOGIN_TIMEOUT 60 + +# +# Which fields may be changed by regular users using chfn - use +# any combination of letters "frwh" (full name, room number, work +# phone, home phone). If not defined, no changes are allowed. +# For backward compatibility, "yes" = "rwh" and "no" = "frwh". +# +CHFN_RESTRICT rwh + +# +# Should login be allowed if we can't cd to the home directory? +# Default is no. +# +DEFAULT_HOME yes + +# +# If defined, this command is run when removing a user. +# It should remove any at/cron/print jobs etc. owned by +# the user to be removed (passed as the first argument). +# +#USERDEL_CMD /usr/sbin/userdel_local + +# +# This enables userdel to remove user groups if no members exist. +# +# Other former uses of this variable such as setting the umask when +# user==primary group are not used in PAM environments, thus in Debian +# +USERGROUPS_ENAB yes + +# +# Instead of the real user shell, the program specified by this parameter +# will be launched, although its visible name (argv[0]) will be the shell's. +# The program may do whatever it wants (logging, additional authentification, +# banner, ...) before running the actual shell. +# +# FAKE_SHELL /bin/fakeshell + +# +# If defined, either full pathname of a file containing device names or +# a ":" delimited list of device names. Root logins will be allowed only +# upon these devices. +# +# This variable is used by login and su. +# +#CONSOLE /etc/consoles +#CONSOLE console:tty01:tty02:tty03:tty04 + +# +# List of groups to add to the user's supplementary group set +# when logging in on the console (as determined by the CONSOLE +# setting). Default is none. +# +# Use with caution - it is possible for users to gain permanent +# access to these groups, even when not logged in on the console. +# How to do it is left as an exercise for the reader... +# +# This variable is used by login and su. +# +#CONSOLE_GROUPS floppy:audio:cdrom + +# +# Only works if compiled with MD5_CRYPT defined: +# If set to "yes", new passwords will be encrypted using the MD5-based +# algorithm compatible with the one used by recent releases of FreeBSD. +# It supports passwords of unlimited length and longer salt strings. +# Set to "no" if you need to copy encrypted passwords to other systems +# which don't understand the new algorithm. Default is "no". +# +# This variable is used by chpasswd, gpasswd and newusers. +# +#MD5_CRYPT_ENAB no + +################# OBSOLETED BY PAM ############## +# # +# These options are now handled by PAM. Please # +# edit the appropriate file in /etc/pam.d/ to # +# enable the equivalents of them. +# +############### + +#MOTD_FILE +#DIALUPS_CHECK_ENAB +#LASTLOG_ENAB +#MAIL_CHECK_ENAB +#OBSCURE_CHECKS_ENAB +#PORTTIME_CHECKS_ENAB +#SU_WHEEL_ONLY +#PASS_CHANGE_TRIES +#PASS_ALWAYS_WARN +#ENVIRON_FILE +#NOLOGINS_FILE +#ISSUE_FILE +#PASS_MIN_LEN +#PASS_MAX_LEN +#ULIMIT +#ENV_HZ +#CHFN_AUTH +#CHSH_AUTH +#FAIL_DELAY + +################# OBSOLETED ####################### +# # +# These options are no more handled by shadow. # +# # +# Shadow utilities will display a warning if they # +# still appear. # +# # +################################################### + +# CLOSE_SESSIONS +# LOGIN_STRING +# NO_PASSWORD_CONSOLE +# QMAIL_DIR + + + diff --git a/tests/tests/chage/31_chage_interactive_date_invalid/config/etc/passwd b/tests/tests/chage/31_chage_interactive_date_invalid/config/etc/passwd new file mode 100644 index 00000000..5d27e129 --- /dev/null +++ b/tests/tests/chage/31_chage_interactive_date_invalid/config/etc/passwd @@ -0,0 +1,26 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser1:x:424242:424242::/home:/bin/bash +myuser2:x:424243:424242::/home:/bin/bash +myuser3:x:424244:424242::/home:/bin/bash +myuser4:x:424245:424242::/home:/bin/bash +myuser5:x:424246:424242::/home:/bin/bash +myuser6:x:424247:424242::/home:/bin/bash +myuser7:x:424248:424242::/home:/bin/bash diff --git a/tests/tests/chage/31_chage_interactive_date_invalid/config/etc/shadow b/tests/tests/chage/31_chage_interactive_date_invalid/config/etc/shadow new file mode 100644 index 00000000..da4c2bc4 --- /dev/null +++ b/tests/tests/chage/31_chage_interactive_date_invalid/config/etc/shadow @@ -0,0 +1,26 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser1:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: +myuser2:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12992:1:99996:5::: +myuser3:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::0: +myuser4:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::1: +myuser5:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:0:: +myuser6:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: +myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: diff --git a/tests/tests/chage/31_chage_interactive_date_invalid/run.exp b/tests/tests/chage/31_chage_interactive_date_invalid/run.exp new file mode 100755 index 00000000..91551d4a --- /dev/null +++ b/tests/tests/chage/31_chage_interactive_date_invalid/run.exp @@ -0,0 +1,26 @@ +#!/usr/bin/expect + +set timeout 5 + +# I've not been able to put the opening bracket in the regular expressions +# If anyone knows... + +spawn /usr/bin/chage myuser1 +expect -re "Minimum Password Age .0\]: " +send "13\r" +expect -re "Maximum Password Age .99999\]: " +send "14\r" +expect -re "Last Password Change \[(]YYYY-MM-DD\[)] .2005-07-27\]: " +send "2000-13-42\r" +expect "chage: error changing fields\r\n" +expect { + eof { + } default { + puts "\nFAIL" + exit 1 + } +} + +puts "\nPASS" +exit 0 + diff --git a/tests/tests/chage/32_chage_interactive_date_invalid2/chage.test b/tests/tests/chage/32_chage_interactive_date_invalid2/chage.test new file mode 100755 index 00000000..83b4ba2c --- /dev/null +++ b/tests/tests/chage/32_chage_interactive_date_invalid2/chage.test @@ -0,0 +1,39 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../common/config.sh +. ../../common/log.sh + +log_start "$0" "chage creates a shadow entry if there were none" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "chage interactive session as myuser1..." +./run.exp +echo "OK" + +echo -n "Check the passwd file..." +../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chage/32_chage_interactive_date_invalid2/config.txt b/tests/tests/chage/32_chage_interactive_date_invalid2/config.txt new file mode 100644 index 00000000..e9e4bbed --- /dev/null +++ b/tests/tests/chage/32_chage_interactive_date_invalid2/config.txt @@ -0,0 +1 @@ +group foo, GID 1000 diff --git a/tests/tests/chage/32_chage_interactive_date_invalid2/config/etc/group b/tests/tests/chage/32_chage_interactive_date_invalid2/config/etc/group new file mode 100644 index 00000000..fecba0c4 --- /dev/null +++ b/tests/tests/chage/32_chage_interactive_date_invalid2/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: diff --git a/tests/tests/chage/32_chage_interactive_date_invalid2/config/etc/gshadow b/tests/tests/chage/32_chage_interactive_date_invalid2/config/etc/gshadow new file mode 100644 index 00000000..5042e581 --- /dev/null +++ b/tests/tests/chage/32_chage_interactive_date_invalid2/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/chage/32_chage_interactive_date_invalid2/config/etc/login.defs b/tests/tests/chage/32_chage_interactive_date_invalid2/config/etc/login.defs new file mode 100644 index 00000000..cf181ac0 --- /dev/null +++ b/tests/tests/chage/32_chage_interactive_date_invalid2/config/etc/login.defs @@ -0,0 +1,314 @@ +# +# /etc/login.defs - Configuration control definitions for the login package. +# +# Three items must be defined: MAIL_DIR, ENV_SUPATH, and ENV_PATH. +# If unspecified, some arbitrary (and possibly incorrect) value will +# be assumed. All other items are optional - if not specified then +# the described action or option will be inhibited. +# +# Comment lines (lines beginning with "#") and blank lines are ignored. +# +# Modified for Linux. --marekm + +# REQUIRED for useradd/userdel/usermod +# Directory where mailboxes reside, _or_ name of file, relative to the +# home directory. If you _do_ define MAIL_DIR and MAIL_FILE, +# MAIL_DIR takes precedence. +# +# Essentially: +# - MAIL_DIR defines the location of users mail spool files +# (for mbox use) by appending the username to MAIL_DIR as defined +# below. +# - MAIL_FILE defines the location of the users mail spool files as the +# fully-qualified filename obtained by prepending the user home +# directory before $MAIL_FILE +# +# NOTE: This is no more used for setting up users MAIL environment variable +# which is, starting from shadow 4.0.12-1 in Debian, entirely the +# job of the pam_mail PAM modules +# See default PAM configuration files provided for +# login, su, etc. +# +# This is a temporary situation: setting these variables will soon +# move to /etc/default/useradd and the variables will then be +# no more supported +MAIL_DIR /var/mail +#MAIL_FILE .mail + +# +# Enable logging and display of /var/log/faillog login failure info. +# This option conflicts with the pam_tally PAM module. +# +FAILLOG_ENAB yes + +# +# Enable display of unknown usernames when login failures are recorded. +# +# WARNING: Unknown usernames may become world readable. +# See #290803 and #298773 for details about how this could become a security +# concern +LOG_UNKFAIL_ENAB no + +# +# Enable logging of successful logins +# +LOG_OK_LOGINS no + +# +# Enable "syslog" logging of su activity - in addition to sulog file logging. +# SYSLOG_SG_ENAB does the same for newgrp and sg. +# +SYSLOG_SU_ENAB yes +SYSLOG_SG_ENAB yes + +# +# If defined, all su activity is logged to this file. +# +#SULOG_FILE /var/log/sulog + +# +# If defined, file which maps tty line to TERM environment parameter. +# Each line of the file is in a format something like "vt100 tty01". +# +#TTYTYPE_FILE /etc/ttytype + +# +# If defined, login failures will be logged here in a utmp format +# last, when invoked as lastb, will read /var/log/btmp, so... +# +FTMP_FILE /var/log/btmp + +# +# If defined, the command name to display when running "su -". For +# example, if this is defined as "su" then a "ps" will display the +# command is "-su". If not defined, then "ps" would display the +# name of the shell actually being run, e.g. something like "-sh". +# +SU_NAME su + +# +# If defined, file which inhibits all the usual chatter during the login +# sequence. If a full pathname, then hushed mode will be enabled if the +# user's name or shell are found in the file. If not a full pathname, then +# hushed mode will be enabled if the file exists in the user's home directory. +# +HUSHLOGIN_FILE .hushlogin +#HUSHLOGIN_FILE /etc/hushlogins + +# +# *REQUIRED* The default PATH settings, for superuser and normal users. +# +# (they are minimal, add the rest in the shell startup files) +ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/games + +# +# Terminal permissions +# +# TTYGROUP Login tty will be assigned this group ownership. +# TTYPERM Login tty will be set to this permission. +# +# If you have a "write" program which is "setgid" to a special group +# which owns the terminals, define TTYGROUP to the group number and +# TTYPERM to 0620. Otherwise leave TTYGROUP commented out and assign +# TTYPERM to either 622 or 600. +# +# In Debian /usr/bin/bsd-write or similar programs are setgid tty +# However, the default and recommended value for TTYPERM is still 0600 +# to not allow anyone to write to anyone else console or terminal + +# Users can still allow other people to write them by issuing +# the "mesg y" command. + +TTYGROUP tty +TTYPERM 0600 + +# +# Login configuration initializations: +# +# ERASECHAR Terminal ERASE character ('\010' = backspace). +# KILLCHAR Terminal KILL character ('\025' = CTRL/U). +# UMASK Default "umask" value. +# +# The ERASECHAR and KILLCHAR are used only on System V machines. +# +# UMASK usage is discouraged because it catches only some classes of user +# entries to system, in fact only those made through login(1), while setting +# umask in shell rc file will catch also logins through su, cron, ssh etc. +# +# At the same time, using shell rc to set umask won't catch entries which use +# non-shell executables in place of login shell, like /usr/sbin/pppd for "ppp" +# user and alike. +# +# Therefore the use of pam_umask is recommended (Debian package libpam-umask) +# as the solution which catches all these cases on PAM-enabled systems. +# +# This avoids the confusion created by having the umask set +# in two different places -- in login.defs and shell rc files (i.e. +# /etc/profile). +# +# For discussion, see #314539 and #248150 as well as the thread starting at +# http://lists.debian.org/debian-devel/2005/06/msg01598.html +# +# Prefix these values with "0" to get octal, "0x" to get hexadecimal. +# +ERASECHAR 0177 +KILLCHAR 025 +# 022 is the "historical" value in Debian for UMASK when it was used +# 027, or even 077, could be considered better for privacy +# There is no One True Answer here : each sysadmin must make up their +# mind. +#UMASK 022 + +# +# Password aging controls: +# +# PASS_MAX_DAYS Maximum number of days a password may be used. +# PASS_MIN_DAYS Minimum number of days allowed between password changes. +# PASS_WARN_AGE Number of days warning given before a password expires. +# +PASS_MAX_DAYS 99999 +PASS_MIN_DAYS 0 +PASS_WARN_AGE 7 + +# +# Min/max values for automatic uid selection in useradd +# +UID_MIN 1000 +UID_MAX 60000 + +# +# Min/max values for automatic gid selection in groupadd +# +GID_MIN 100 +GID_MAX 60000 + +# +# Max number of login retries if password is bad. This will most likely be +# overridden by PAM, since the default pam_unix module has it's own built +# in of 3 retries. However, this is a safe fallback in case you are using +# an authentication module that does not enforce PAM_MAXTRIES. +# +LOGIN_RETRIES 5 + +# +# Max time in seconds for login +# +LOGIN_TIMEOUT 60 + +# +# Which fields may be changed by regular users using chfn - use +# any combination of letters "frwh" (full name, room number, work +# phone, home phone). If not defined, no changes are allowed. +# For backward compatibility, "yes" = "rwh" and "no" = "frwh". +# +CHFN_RESTRICT rwh + +# +# Should login be allowed if we can't cd to the home directory? +# Default is no. +# +DEFAULT_HOME yes + +# +# If defined, this command is run when removing a user. +# It should remove any at/cron/print jobs etc. owned by +# the user to be removed (passed as the first argument). +# +#USERDEL_CMD /usr/sbin/userdel_local + +# +# This enables userdel to remove user groups if no members exist. +# +# Other former uses of this variable such as setting the umask when +# user==primary group are not used in PAM environments, thus in Debian +# +USERGROUPS_ENAB yes + +# +# Instead of the real user shell, the program specified by this parameter +# will be launched, although its visible name (argv[0]) will be the shell's. +# The program may do whatever it wants (logging, additional authentification, +# banner, ...) before running the actual shell. +# +# FAKE_SHELL /bin/fakeshell + +# +# If defined, either full pathname of a file containing device names or +# a ":" delimited list of device names. Root logins will be allowed only +# upon these devices. +# +# This variable is used by login and su. +# +#CONSOLE /etc/consoles +#CONSOLE console:tty01:tty02:tty03:tty04 + +# +# List of groups to add to the user's supplementary group set +# when logging in on the console (as determined by the CONSOLE +# setting). Default is none. +# +# Use with caution - it is possible for users to gain permanent +# access to these groups, even when not logged in on the console. +# How to do it is left as an exercise for the reader... +# +# This variable is used by login and su. +# +#CONSOLE_GROUPS floppy:audio:cdrom + +# +# Only works if compiled with MD5_CRYPT defined: +# If set to "yes", new passwords will be encrypted using the MD5-based +# algorithm compatible with the one used by recent releases of FreeBSD. +# It supports passwords of unlimited length and longer salt strings. +# Set to "no" if you need to copy encrypted passwords to other systems +# which don't understand the new algorithm. Default is "no". +# +# This variable is used by chpasswd, gpasswd and newusers. +# +#MD5_CRYPT_ENAB no + +################# OBSOLETED BY PAM ############## +# # +# These options are now handled by PAM. Please # +# edit the appropriate file in /etc/pam.d/ to # +# enable the equivalents of them. +# +############### + +#MOTD_FILE +#DIALUPS_CHECK_ENAB +#LASTLOG_ENAB +#MAIL_CHECK_ENAB +#OBSCURE_CHECKS_ENAB +#PORTTIME_CHECKS_ENAB +#SU_WHEEL_ONLY +#PASS_CHANGE_TRIES +#PASS_ALWAYS_WARN +#ENVIRON_FILE +#NOLOGINS_FILE +#ISSUE_FILE +#PASS_MIN_LEN +#PASS_MAX_LEN +#ULIMIT +#ENV_HZ +#CHFN_AUTH +#CHSH_AUTH +#FAIL_DELAY + +################# OBSOLETED ####################### +# # +# These options are no more handled by shadow. # +# # +# Shadow utilities will display a warning if they # +# still appear. # +# # +################################################### + +# CLOSE_SESSIONS +# LOGIN_STRING +# NO_PASSWORD_CONSOLE +# QMAIL_DIR + + + diff --git a/tests/tests/chage/32_chage_interactive_date_invalid2/config/etc/passwd b/tests/tests/chage/32_chage_interactive_date_invalid2/config/etc/passwd new file mode 100644 index 00000000..5d27e129 --- /dev/null +++ b/tests/tests/chage/32_chage_interactive_date_invalid2/config/etc/passwd @@ -0,0 +1,26 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser1:x:424242:424242::/home:/bin/bash +myuser2:x:424243:424242::/home:/bin/bash +myuser3:x:424244:424242::/home:/bin/bash +myuser4:x:424245:424242::/home:/bin/bash +myuser5:x:424246:424242::/home:/bin/bash +myuser6:x:424247:424242::/home:/bin/bash +myuser7:x:424248:424242::/home:/bin/bash diff --git a/tests/tests/chage/32_chage_interactive_date_invalid2/config/etc/shadow b/tests/tests/chage/32_chage_interactive_date_invalid2/config/etc/shadow new file mode 100644 index 00000000..da4c2bc4 --- /dev/null +++ b/tests/tests/chage/32_chage_interactive_date_invalid2/config/etc/shadow @@ -0,0 +1,26 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser1:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: +myuser2:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12992:1:99996:5::: +myuser3:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::0: +myuser4:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::1: +myuser5:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:0:: +myuser6:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: +myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: diff --git a/tests/tests/chage/32_chage_interactive_date_invalid2/run.exp b/tests/tests/chage/32_chage_interactive_date_invalid2/run.exp new file mode 100755 index 00000000..edc3f78b --- /dev/null +++ b/tests/tests/chage/32_chage_interactive_date_invalid2/run.exp @@ -0,0 +1,26 @@ +#!/usr/bin/expect + +set timeout 5 + +# I've not been able to put the opening bracket in the regular expressions +# If anyone knows... + +spawn /usr/bin/chage myuser1 +expect -re "Minimum Password Age .0\]: " +send "13\r" +expect -re "Maximum Password Age .99999\]: " +send "14\r" +expect -re "Last Password Change \[(]YYYY-MM-DD\[)] .2005-07-27\]: " +send "2000-mm-42\r" +expect "chage: error changing fields\r\n" +expect { + eof { + } default { + puts "\nFAIL" + exit 1 + } +} + +puts "\nPASS" +exit 0 + diff --git a/tests/tests/chage/33_chage_interactive-W_invalid1/chage.test b/tests/tests/chage/33_chage_interactive-W_invalid1/chage.test new file mode 100755 index 00000000..b2d6d328 --- /dev/null +++ b/tests/tests/chage/33_chage_interactive-W_invalid1/chage.test @@ -0,0 +1,39 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../common/config.sh +. ../../common/log.sh + +log_start "$0" "chage interactive session checks field validity" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "chage interactive session as myuser1..." +./run.exp +echo "OK" + +echo -n "Check the passwd file..." +../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chage/33_chage_interactive-W_invalid1/config.txt b/tests/tests/chage/33_chage_interactive-W_invalid1/config.txt new file mode 100644 index 00000000..e9e4bbed --- /dev/null +++ b/tests/tests/chage/33_chage_interactive-W_invalid1/config.txt @@ -0,0 +1 @@ +group foo, GID 1000 diff --git a/tests/tests/chage/33_chage_interactive-W_invalid1/config/etc/group b/tests/tests/chage/33_chage_interactive-W_invalid1/config/etc/group new file mode 100644 index 00000000..fecba0c4 --- /dev/null +++ b/tests/tests/chage/33_chage_interactive-W_invalid1/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: diff --git a/tests/tests/chage/33_chage_interactive-W_invalid1/config/etc/gshadow b/tests/tests/chage/33_chage_interactive-W_invalid1/config/etc/gshadow new file mode 100644 index 00000000..5042e581 --- /dev/null +++ b/tests/tests/chage/33_chage_interactive-W_invalid1/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/chage/33_chage_interactive-W_invalid1/config/etc/login.defs b/tests/tests/chage/33_chage_interactive-W_invalid1/config/etc/login.defs new file mode 100644 index 00000000..cf181ac0 --- /dev/null +++ b/tests/tests/chage/33_chage_interactive-W_invalid1/config/etc/login.defs @@ -0,0 +1,314 @@ +# +# /etc/login.defs - Configuration control definitions for the login package. +# +# Three items must be defined: MAIL_DIR, ENV_SUPATH, and ENV_PATH. +# If unspecified, some arbitrary (and possibly incorrect) value will +# be assumed. All other items are optional - if not specified then +# the described action or option will be inhibited. +# +# Comment lines (lines beginning with "#") and blank lines are ignored. +# +# Modified for Linux. --marekm + +# REQUIRED for useradd/userdel/usermod +# Directory where mailboxes reside, _or_ name of file, relative to the +# home directory. If you _do_ define MAIL_DIR and MAIL_FILE, +# MAIL_DIR takes precedence. +# +# Essentially: +# - MAIL_DIR defines the location of users mail spool files +# (for mbox use) by appending the username to MAIL_DIR as defined +# below. +# - MAIL_FILE defines the location of the users mail spool files as the +# fully-qualified filename obtained by prepending the user home +# directory before $MAIL_FILE +# +# NOTE: This is no more used for setting up users MAIL environment variable +# which is, starting from shadow 4.0.12-1 in Debian, entirely the +# job of the pam_mail PAM modules +# See default PAM configuration files provided for +# login, su, etc. +# +# This is a temporary situation: setting these variables will soon +# move to /etc/default/useradd and the variables will then be +# no more supported +MAIL_DIR /var/mail +#MAIL_FILE .mail + +# +# Enable logging and display of /var/log/faillog login failure info. +# This option conflicts with the pam_tally PAM module. +# +FAILLOG_ENAB yes + +# +# Enable display of unknown usernames when login failures are recorded. +# +# WARNING: Unknown usernames may become world readable. +# See #290803 and #298773 for details about how this could become a security +# concern +LOG_UNKFAIL_ENAB no + +# +# Enable logging of successful logins +# +LOG_OK_LOGINS no + +# +# Enable "syslog" logging of su activity - in addition to sulog file logging. +# SYSLOG_SG_ENAB does the same for newgrp and sg. +# +SYSLOG_SU_ENAB yes +SYSLOG_SG_ENAB yes + +# +# If defined, all su activity is logged to this file. +# +#SULOG_FILE /var/log/sulog + +# +# If defined, file which maps tty line to TERM environment parameter. +# Each line of the file is in a format something like "vt100 tty01". +# +#TTYTYPE_FILE /etc/ttytype + +# +# If defined, login failures will be logged here in a utmp format +# last, when invoked as lastb, will read /var/log/btmp, so... +# +FTMP_FILE /var/log/btmp + +# +# If defined, the command name to display when running "su -". For +# example, if this is defined as "su" then a "ps" will display the +# command is "-su". If not defined, then "ps" would display the +# name of the shell actually being run, e.g. something like "-sh". +# +SU_NAME su + +# +# If defined, file which inhibits all the usual chatter during the login +# sequence. If a full pathname, then hushed mode will be enabled if the +# user's name or shell are found in the file. If not a full pathname, then +# hushed mode will be enabled if the file exists in the user's home directory. +# +HUSHLOGIN_FILE .hushlogin +#HUSHLOGIN_FILE /etc/hushlogins + +# +# *REQUIRED* The default PATH settings, for superuser and normal users. +# +# (they are minimal, add the rest in the shell startup files) +ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/games + +# +# Terminal permissions +# +# TTYGROUP Login tty will be assigned this group ownership. +# TTYPERM Login tty will be set to this permission. +# +# If you have a "write" program which is "setgid" to a special group +# which owns the terminals, define TTYGROUP to the group number and +# TTYPERM to 0620. Otherwise leave TTYGROUP commented out and assign +# TTYPERM to either 622 or 600. +# +# In Debian /usr/bin/bsd-write or similar programs are setgid tty +# However, the default and recommended value for TTYPERM is still 0600 +# to not allow anyone to write to anyone else console or terminal + +# Users can still allow other people to write them by issuing +# the "mesg y" command. + +TTYGROUP tty +TTYPERM 0600 + +# +# Login configuration initializations: +# +# ERASECHAR Terminal ERASE character ('\010' = backspace). +# KILLCHAR Terminal KILL character ('\025' = CTRL/U). +# UMASK Default "umask" value. +# +# The ERASECHAR and KILLCHAR are used only on System V machines. +# +# UMASK usage is discouraged because it catches only some classes of user +# entries to system, in fact only those made through login(1), while setting +# umask in shell rc file will catch also logins through su, cron, ssh etc. +# +# At the same time, using shell rc to set umask won't catch entries which use +# non-shell executables in place of login shell, like /usr/sbin/pppd for "ppp" +# user and alike. +# +# Therefore the use of pam_umask is recommended (Debian package libpam-umask) +# as the solution which catches all these cases on PAM-enabled systems. +# +# This avoids the confusion created by having the umask set +# in two different places -- in login.defs and shell rc files (i.e. +# /etc/profile). +# +# For discussion, see #314539 and #248150 as well as the thread starting at +# http://lists.debian.org/debian-devel/2005/06/msg01598.html +# +# Prefix these values with "0" to get octal, "0x" to get hexadecimal. +# +ERASECHAR 0177 +KILLCHAR 025 +# 022 is the "historical" value in Debian for UMASK when it was used +# 027, or even 077, could be considered better for privacy +# There is no One True Answer here : each sysadmin must make up their +# mind. +#UMASK 022 + +# +# Password aging controls: +# +# PASS_MAX_DAYS Maximum number of days a password may be used. +# PASS_MIN_DAYS Minimum number of days allowed between password changes. +# PASS_WARN_AGE Number of days warning given before a password expires. +# +PASS_MAX_DAYS 99999 +PASS_MIN_DAYS 0 +PASS_WARN_AGE 7 + +# +# Min/max values for automatic uid selection in useradd +# +UID_MIN 1000 +UID_MAX 60000 + +# +# Min/max values for automatic gid selection in groupadd +# +GID_MIN 100 +GID_MAX 60000 + +# +# Max number of login retries if password is bad. This will most likely be +# overridden by PAM, since the default pam_unix module has it's own built +# in of 3 retries. However, this is a safe fallback in case you are using +# an authentication module that does not enforce PAM_MAXTRIES. +# +LOGIN_RETRIES 5 + +# +# Max time in seconds for login +# +LOGIN_TIMEOUT 60 + +# +# Which fields may be changed by regular users using chfn - use +# any combination of letters "frwh" (full name, room number, work +# phone, home phone). If not defined, no changes are allowed. +# For backward compatibility, "yes" = "rwh" and "no" = "frwh". +# +CHFN_RESTRICT rwh + +# +# Should login be allowed if we can't cd to the home directory? +# Default is no. +# +DEFAULT_HOME yes + +# +# If defined, this command is run when removing a user. +# It should remove any at/cron/print jobs etc. owned by +# the user to be removed (passed as the first argument). +# +#USERDEL_CMD /usr/sbin/userdel_local + +# +# This enables userdel to remove user groups if no members exist. +# +# Other former uses of this variable such as setting the umask when +# user==primary group are not used in PAM environments, thus in Debian +# +USERGROUPS_ENAB yes + +# +# Instead of the real user shell, the program specified by this parameter +# will be launched, although its visible name (argv[0]) will be the shell's. +# The program may do whatever it wants (logging, additional authentification, +# banner, ...) before running the actual shell. +# +# FAKE_SHELL /bin/fakeshell + +# +# If defined, either full pathname of a file containing device names or +# a ":" delimited list of device names. Root logins will be allowed only +# upon these devices. +# +# This variable is used by login and su. +# +#CONSOLE /etc/consoles +#CONSOLE console:tty01:tty02:tty03:tty04 + +# +# List of groups to add to the user's supplementary group set +# when logging in on the console (as determined by the CONSOLE +# setting). Default is none. +# +# Use with caution - it is possible for users to gain permanent +# access to these groups, even when not logged in on the console. +# How to do it is left as an exercise for the reader... +# +# This variable is used by login and su. +# +#CONSOLE_GROUPS floppy:audio:cdrom + +# +# Only works if compiled with MD5_CRYPT defined: +# If set to "yes", new passwords will be encrypted using the MD5-based +# algorithm compatible with the one used by recent releases of FreeBSD. +# It supports passwords of unlimited length and longer salt strings. +# Set to "no" if you need to copy encrypted passwords to other systems +# which don't understand the new algorithm. Default is "no". +# +# This variable is used by chpasswd, gpasswd and newusers. +# +#MD5_CRYPT_ENAB no + +################# OBSOLETED BY PAM ############## +# # +# These options are now handled by PAM. Please # +# edit the appropriate file in /etc/pam.d/ to # +# enable the equivalents of them. +# +############### + +#MOTD_FILE +#DIALUPS_CHECK_ENAB +#LASTLOG_ENAB +#MAIL_CHECK_ENAB +#OBSCURE_CHECKS_ENAB +#PORTTIME_CHECKS_ENAB +#SU_WHEEL_ONLY +#PASS_CHANGE_TRIES +#PASS_ALWAYS_WARN +#ENVIRON_FILE +#NOLOGINS_FILE +#ISSUE_FILE +#PASS_MIN_LEN +#PASS_MAX_LEN +#ULIMIT +#ENV_HZ +#CHFN_AUTH +#CHSH_AUTH +#FAIL_DELAY + +################# OBSOLETED ####################### +# # +# These options are no more handled by shadow. # +# # +# Shadow utilities will display a warning if they # +# still appear. # +# # +################################################### + +# CLOSE_SESSIONS +# LOGIN_STRING +# NO_PASSWORD_CONSOLE +# QMAIL_DIR + + + diff --git a/tests/tests/chage/33_chage_interactive-W_invalid1/config/etc/passwd b/tests/tests/chage/33_chage_interactive-W_invalid1/config/etc/passwd new file mode 100644 index 00000000..5d27e129 --- /dev/null +++ b/tests/tests/chage/33_chage_interactive-W_invalid1/config/etc/passwd @@ -0,0 +1,26 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser1:x:424242:424242::/home:/bin/bash +myuser2:x:424243:424242::/home:/bin/bash +myuser3:x:424244:424242::/home:/bin/bash +myuser4:x:424245:424242::/home:/bin/bash +myuser5:x:424246:424242::/home:/bin/bash +myuser6:x:424247:424242::/home:/bin/bash +myuser7:x:424248:424242::/home:/bin/bash diff --git a/tests/tests/chage/33_chage_interactive-W_invalid1/config/etc/shadow b/tests/tests/chage/33_chage_interactive-W_invalid1/config/etc/shadow new file mode 100644 index 00000000..da4c2bc4 --- /dev/null +++ b/tests/tests/chage/33_chage_interactive-W_invalid1/config/etc/shadow @@ -0,0 +1,26 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser1:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: +myuser2:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12992:1:99996:5::: +myuser3:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::0: +myuser4:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::1: +myuser5:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:0:: +myuser6:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: +myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: diff --git a/tests/tests/chage/33_chage_interactive-W_invalid1/run.exp b/tests/tests/chage/33_chage_interactive-W_invalid1/run.exp new file mode 100755 index 00000000..ac50231b --- /dev/null +++ b/tests/tests/chage/33_chage_interactive-W_invalid1/run.exp @@ -0,0 +1,32 @@ +#!/usr/bin/expect + +set timeout 5 + +# I've not been able to put the opening bracket in the regular expressions +# If anyone knows... + +spawn /usr/bin/chage myuser1 +expect -re "Minimum Password Age .0\]: " +send "13\r" +expect -re "Maximum Password Age .99999\]: " +send "14\r" +expect -re "Last Password Change \[(]YYYY-MM-DD\[)] .2005-07-27\]: " +send "0\r" +expect -re "Password Expiration Warning .7\]: " +send "9a\r" +#expect -re "Password Inactive .-1\]: " +#send "35\r" +#expect -re "Account Expiration Date \[(]YYYY-MM-DD\[)] .-1\]: " +#send "0\r" +expect "chage: error changing fields\r\n" +expect { + eof { + } default { + puts "\nFAIL" + exit 1 + } +} + +puts "\nPASS" +exit 0 + diff --git a/tests/tests/chage/34_chage_interactive-W_invalid2/chage.test b/tests/tests/chage/34_chage_interactive-W_invalid2/chage.test new file mode 100755 index 00000000..b2d6d328 --- /dev/null +++ b/tests/tests/chage/34_chage_interactive-W_invalid2/chage.test @@ -0,0 +1,39 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../common/config.sh +. ../../common/log.sh + +log_start "$0" "chage interactive session checks field validity" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "chage interactive session as myuser1..." +./run.exp +echo "OK" + +echo -n "Check the passwd file..." +../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chage/34_chage_interactive-W_invalid2/config.txt b/tests/tests/chage/34_chage_interactive-W_invalid2/config.txt new file mode 100644 index 00000000..e9e4bbed --- /dev/null +++ b/tests/tests/chage/34_chage_interactive-W_invalid2/config.txt @@ -0,0 +1 @@ +group foo, GID 1000 diff --git a/tests/tests/chage/34_chage_interactive-W_invalid2/config/etc/group b/tests/tests/chage/34_chage_interactive-W_invalid2/config/etc/group new file mode 100644 index 00000000..fecba0c4 --- /dev/null +++ b/tests/tests/chage/34_chage_interactive-W_invalid2/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: diff --git a/tests/tests/chage/34_chage_interactive-W_invalid2/config/etc/gshadow b/tests/tests/chage/34_chage_interactive-W_invalid2/config/etc/gshadow new file mode 100644 index 00000000..5042e581 --- /dev/null +++ b/tests/tests/chage/34_chage_interactive-W_invalid2/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/chage/34_chage_interactive-W_invalid2/config/etc/login.defs b/tests/tests/chage/34_chage_interactive-W_invalid2/config/etc/login.defs new file mode 100644 index 00000000..cf181ac0 --- /dev/null +++ b/tests/tests/chage/34_chage_interactive-W_invalid2/config/etc/login.defs @@ -0,0 +1,314 @@ +# +# /etc/login.defs - Configuration control definitions for the login package. +# +# Three items must be defined: MAIL_DIR, ENV_SUPATH, and ENV_PATH. +# If unspecified, some arbitrary (and possibly incorrect) value will +# be assumed. All other items are optional - if not specified then +# the described action or option will be inhibited. +# +# Comment lines (lines beginning with "#") and blank lines are ignored. +# +# Modified for Linux. --marekm + +# REQUIRED for useradd/userdel/usermod +# Directory where mailboxes reside, _or_ name of file, relative to the +# home directory. If you _do_ define MAIL_DIR and MAIL_FILE, +# MAIL_DIR takes precedence. +# +# Essentially: +# - MAIL_DIR defines the location of users mail spool files +# (for mbox use) by appending the username to MAIL_DIR as defined +# below. +# - MAIL_FILE defines the location of the users mail spool files as the +# fully-qualified filename obtained by prepending the user home +# directory before $MAIL_FILE +# +# NOTE: This is no more used for setting up users MAIL environment variable +# which is, starting from shadow 4.0.12-1 in Debian, entirely the +# job of the pam_mail PAM modules +# See default PAM configuration files provided for +# login, su, etc. +# +# This is a temporary situation: setting these variables will soon +# move to /etc/default/useradd and the variables will then be +# no more supported +MAIL_DIR /var/mail +#MAIL_FILE .mail + +# +# Enable logging and display of /var/log/faillog login failure info. +# This option conflicts with the pam_tally PAM module. +# +FAILLOG_ENAB yes + +# +# Enable display of unknown usernames when login failures are recorded. +# +# WARNING: Unknown usernames may become world readable. +# See #290803 and #298773 for details about how this could become a security +# concern +LOG_UNKFAIL_ENAB no + +# +# Enable logging of successful logins +# +LOG_OK_LOGINS no + +# +# Enable "syslog" logging of su activity - in addition to sulog file logging. +# SYSLOG_SG_ENAB does the same for newgrp and sg. +# +SYSLOG_SU_ENAB yes +SYSLOG_SG_ENAB yes + +# +# If defined, all su activity is logged to this file. +# +#SULOG_FILE /var/log/sulog + +# +# If defined, file which maps tty line to TERM environment parameter. +# Each line of the file is in a format something like "vt100 tty01". +# +#TTYTYPE_FILE /etc/ttytype + +# +# If defined, login failures will be logged here in a utmp format +# last, when invoked as lastb, will read /var/log/btmp, so... +# +FTMP_FILE /var/log/btmp + +# +# If defined, the command name to display when running "su -". For +# example, if this is defined as "su" then a "ps" will display the +# command is "-su". If not defined, then "ps" would display the +# name of the shell actually being run, e.g. something like "-sh". +# +SU_NAME su + +# +# If defined, file which inhibits all the usual chatter during the login +# sequence. If a full pathname, then hushed mode will be enabled if the +# user's name or shell are found in the file. If not a full pathname, then +# hushed mode will be enabled if the file exists in the user's home directory. +# +HUSHLOGIN_FILE .hushlogin +#HUSHLOGIN_FILE /etc/hushlogins + +# +# *REQUIRED* The default PATH settings, for superuser and normal users. +# +# (they are minimal, add the rest in the shell startup files) +ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/games + +# +# Terminal permissions +# +# TTYGROUP Login tty will be assigned this group ownership. +# TTYPERM Login tty will be set to this permission. +# +# If you have a "write" program which is "setgid" to a special group +# which owns the terminals, define TTYGROUP to the group number and +# TTYPERM to 0620. Otherwise leave TTYGROUP commented out and assign +# TTYPERM to either 622 or 600. +# +# In Debian /usr/bin/bsd-write or similar programs are setgid tty +# However, the default and recommended value for TTYPERM is still 0600 +# to not allow anyone to write to anyone else console or terminal + +# Users can still allow other people to write them by issuing +# the "mesg y" command. + +TTYGROUP tty +TTYPERM 0600 + +# +# Login configuration initializations: +# +# ERASECHAR Terminal ERASE character ('\010' = backspace). +# KILLCHAR Terminal KILL character ('\025' = CTRL/U). +# UMASK Default "umask" value. +# +# The ERASECHAR and KILLCHAR are used only on System V machines. +# +# UMASK usage is discouraged because it catches only some classes of user +# entries to system, in fact only those made through login(1), while setting +# umask in shell rc file will catch also logins through su, cron, ssh etc. +# +# At the same time, using shell rc to set umask won't catch entries which use +# non-shell executables in place of login shell, like /usr/sbin/pppd for "ppp" +# user and alike. +# +# Therefore the use of pam_umask is recommended (Debian package libpam-umask) +# as the solution which catches all these cases on PAM-enabled systems. +# +# This avoids the confusion created by having the umask set +# in two different places -- in login.defs and shell rc files (i.e. +# /etc/profile). +# +# For discussion, see #314539 and #248150 as well as the thread starting at +# http://lists.debian.org/debian-devel/2005/06/msg01598.html +# +# Prefix these values with "0" to get octal, "0x" to get hexadecimal. +# +ERASECHAR 0177 +KILLCHAR 025 +# 022 is the "historical" value in Debian for UMASK when it was used +# 027, or even 077, could be considered better for privacy +# There is no One True Answer here : each sysadmin must make up their +# mind. +#UMASK 022 + +# +# Password aging controls: +# +# PASS_MAX_DAYS Maximum number of days a password may be used. +# PASS_MIN_DAYS Minimum number of days allowed between password changes. +# PASS_WARN_AGE Number of days warning given before a password expires. +# +PASS_MAX_DAYS 99999 +PASS_MIN_DAYS 0 +PASS_WARN_AGE 7 + +# +# Min/max values for automatic uid selection in useradd +# +UID_MIN 1000 +UID_MAX 60000 + +# +# Min/max values for automatic gid selection in groupadd +# +GID_MIN 100 +GID_MAX 60000 + +# +# Max number of login retries if password is bad. This will most likely be +# overridden by PAM, since the default pam_unix module has it's own built +# in of 3 retries. However, this is a safe fallback in case you are using +# an authentication module that does not enforce PAM_MAXTRIES. +# +LOGIN_RETRIES 5 + +# +# Max time in seconds for login +# +LOGIN_TIMEOUT 60 + +# +# Which fields may be changed by regular users using chfn - use +# any combination of letters "frwh" (full name, room number, work +# phone, home phone). If not defined, no changes are allowed. +# For backward compatibility, "yes" = "rwh" and "no" = "frwh". +# +CHFN_RESTRICT rwh + +# +# Should login be allowed if we can't cd to the home directory? +# Default is no. +# +DEFAULT_HOME yes + +# +# If defined, this command is run when removing a user. +# It should remove any at/cron/print jobs etc. owned by +# the user to be removed (passed as the first argument). +# +#USERDEL_CMD /usr/sbin/userdel_local + +# +# This enables userdel to remove user groups if no members exist. +# +# Other former uses of this variable such as setting the umask when +# user==primary group are not used in PAM environments, thus in Debian +# +USERGROUPS_ENAB yes + +# +# Instead of the real user shell, the program specified by this parameter +# will be launched, although its visible name (argv[0]) will be the shell's. +# The program may do whatever it wants (logging, additional authentification, +# banner, ...) before running the actual shell. +# +# FAKE_SHELL /bin/fakeshell + +# +# If defined, either full pathname of a file containing device names or +# a ":" delimited list of device names. Root logins will be allowed only +# upon these devices. +# +# This variable is used by login and su. +# +#CONSOLE /etc/consoles +#CONSOLE console:tty01:tty02:tty03:tty04 + +# +# List of groups to add to the user's supplementary group set +# when logging in on the console (as determined by the CONSOLE +# setting). Default is none. +# +# Use with caution - it is possible for users to gain permanent +# access to these groups, even when not logged in on the console. +# How to do it is left as an exercise for the reader... +# +# This variable is used by login and su. +# +#CONSOLE_GROUPS floppy:audio:cdrom + +# +# Only works if compiled with MD5_CRYPT defined: +# If set to "yes", new passwords will be encrypted using the MD5-based +# algorithm compatible with the one used by recent releases of FreeBSD. +# It supports passwords of unlimited length and longer salt strings. +# Set to "no" if you need to copy encrypted passwords to other systems +# which don't understand the new algorithm. Default is "no". +# +# This variable is used by chpasswd, gpasswd and newusers. +# +#MD5_CRYPT_ENAB no + +################# OBSOLETED BY PAM ############## +# # +# These options are now handled by PAM. Please # +# edit the appropriate file in /etc/pam.d/ to # +# enable the equivalents of them. +# +############### + +#MOTD_FILE +#DIALUPS_CHECK_ENAB +#LASTLOG_ENAB +#MAIL_CHECK_ENAB +#OBSCURE_CHECKS_ENAB +#PORTTIME_CHECKS_ENAB +#SU_WHEEL_ONLY +#PASS_CHANGE_TRIES +#PASS_ALWAYS_WARN +#ENVIRON_FILE +#NOLOGINS_FILE +#ISSUE_FILE +#PASS_MIN_LEN +#PASS_MAX_LEN +#ULIMIT +#ENV_HZ +#CHFN_AUTH +#CHSH_AUTH +#FAIL_DELAY + +################# OBSOLETED ####################### +# # +# These options are no more handled by shadow. # +# # +# Shadow utilities will display a warning if they # +# still appear. # +# # +################################################### + +# CLOSE_SESSIONS +# LOGIN_STRING +# NO_PASSWORD_CONSOLE +# QMAIL_DIR + + + diff --git a/tests/tests/chage/34_chage_interactive-W_invalid2/config/etc/passwd b/tests/tests/chage/34_chage_interactive-W_invalid2/config/etc/passwd new file mode 100644 index 00000000..5d27e129 --- /dev/null +++ b/tests/tests/chage/34_chage_interactive-W_invalid2/config/etc/passwd @@ -0,0 +1,26 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser1:x:424242:424242::/home:/bin/bash +myuser2:x:424243:424242::/home:/bin/bash +myuser3:x:424244:424242::/home:/bin/bash +myuser4:x:424245:424242::/home:/bin/bash +myuser5:x:424246:424242::/home:/bin/bash +myuser6:x:424247:424242::/home:/bin/bash +myuser7:x:424248:424242::/home:/bin/bash diff --git a/tests/tests/chage/34_chage_interactive-W_invalid2/config/etc/shadow b/tests/tests/chage/34_chage_interactive-W_invalid2/config/etc/shadow new file mode 100644 index 00000000..da4c2bc4 --- /dev/null +++ b/tests/tests/chage/34_chage_interactive-W_invalid2/config/etc/shadow @@ -0,0 +1,26 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser1:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: +myuser2:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12992:1:99996:5::: +myuser3:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::0: +myuser4:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::1: +myuser5:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:0:: +myuser6:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: +myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: diff --git a/tests/tests/chage/34_chage_interactive-W_invalid2/run.exp b/tests/tests/chage/34_chage_interactive-W_invalid2/run.exp new file mode 100755 index 00000000..04b6f57d --- /dev/null +++ b/tests/tests/chage/34_chage_interactive-W_invalid2/run.exp @@ -0,0 +1,32 @@ +#!/usr/bin/expect + +set timeout 5 + +# I've not been able to put the opening bracket in the regular expressions +# If anyone knows... + +spawn /usr/bin/chage myuser1 +expect -re "Minimum Password Age .0\]: " +send "13\r" +expect -re "Maximum Password Age .99999\]: " +send "14\r" +expect -re "Last Password Change \[(]YYYY-MM-DD\[)] .2005-07-27\]: " +send "0\r" +expect -re "Password Expiration Warning .7\]: " +send -- "-2\r" +#expect -re "Password Inactive .-1\]: " +#send "35\r" +#expect -re "Account Expiration Date \[(]YYYY-MM-DD\[)] .-1\]: " +#send "0\r" +expect "chage: error changing fields\r\n" +expect { + eof { + } default { + puts "\nFAIL" + exit 1 + } +} + +puts "\nPASS" +exit 0 + diff --git a/tests/tests/chage/35_chage_interactive-W-1/chage.test b/tests/tests/chage/35_chage_interactive-W-1/chage.test new file mode 100755 index 00000000..8d5f5bef --- /dev/null +++ b/tests/tests/chage/35_chage_interactive-W-1/chage.test @@ -0,0 +1,39 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../common/config.sh +. ../../common/log.sh + +log_start "$0" "chage creates a shadow entry if there were none" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "chage interactive session as myuser1..." +./run.exp +echo "OK" + +echo -n "Check the passwd file..." +../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../common/compare_file.pl data/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chage/35_chage_interactive-W-1/config.txt b/tests/tests/chage/35_chage_interactive-W-1/config.txt new file mode 100644 index 00000000..e9e4bbed --- /dev/null +++ b/tests/tests/chage/35_chage_interactive-W-1/config.txt @@ -0,0 +1 @@ +group foo, GID 1000 diff --git a/tests/tests/chage/35_chage_interactive-W-1/config/etc/group b/tests/tests/chage/35_chage_interactive-W-1/config/etc/group new file mode 100644 index 00000000..fecba0c4 --- /dev/null +++ b/tests/tests/chage/35_chage_interactive-W-1/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: diff --git a/tests/tests/chage/35_chage_interactive-W-1/config/etc/gshadow b/tests/tests/chage/35_chage_interactive-W-1/config/etc/gshadow new file mode 100644 index 00000000..5042e581 --- /dev/null +++ b/tests/tests/chage/35_chage_interactive-W-1/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/chage/35_chage_interactive-W-1/config/etc/login.defs b/tests/tests/chage/35_chage_interactive-W-1/config/etc/login.defs new file mode 100644 index 00000000..cf181ac0 --- /dev/null +++ b/tests/tests/chage/35_chage_interactive-W-1/config/etc/login.defs @@ -0,0 +1,314 @@ +# +# /etc/login.defs - Configuration control definitions for the login package. +# +# Three items must be defined: MAIL_DIR, ENV_SUPATH, and ENV_PATH. +# If unspecified, some arbitrary (and possibly incorrect) value will +# be assumed. All other items are optional - if not specified then +# the described action or option will be inhibited. +# +# Comment lines (lines beginning with "#") and blank lines are ignored. +# +# Modified for Linux. --marekm + +# REQUIRED for useradd/userdel/usermod +# Directory where mailboxes reside, _or_ name of file, relative to the +# home directory. If you _do_ define MAIL_DIR and MAIL_FILE, +# MAIL_DIR takes precedence. +# +# Essentially: +# - MAIL_DIR defines the location of users mail spool files +# (for mbox use) by appending the username to MAIL_DIR as defined +# below. +# - MAIL_FILE defines the location of the users mail spool files as the +# fully-qualified filename obtained by prepending the user home +# directory before $MAIL_FILE +# +# NOTE: This is no more used for setting up users MAIL environment variable +# which is, starting from shadow 4.0.12-1 in Debian, entirely the +# job of the pam_mail PAM modules +# See default PAM configuration files provided for +# login, su, etc. +# +# This is a temporary situation: setting these variables will soon +# move to /etc/default/useradd and the variables will then be +# no more supported +MAIL_DIR /var/mail +#MAIL_FILE .mail + +# +# Enable logging and display of /var/log/faillog login failure info. +# This option conflicts with the pam_tally PAM module. +# +FAILLOG_ENAB yes + +# +# Enable display of unknown usernames when login failures are recorded. +# +# WARNING: Unknown usernames may become world readable. +# See #290803 and #298773 for details about how this could become a security +# concern +LOG_UNKFAIL_ENAB no + +# +# Enable logging of successful logins +# +LOG_OK_LOGINS no + +# +# Enable "syslog" logging of su activity - in addition to sulog file logging. +# SYSLOG_SG_ENAB does the same for newgrp and sg. +# +SYSLOG_SU_ENAB yes +SYSLOG_SG_ENAB yes + +# +# If defined, all su activity is logged to this file. +# +#SULOG_FILE /var/log/sulog + +# +# If defined, file which maps tty line to TERM environment parameter. +# Each line of the file is in a format something like "vt100 tty01". +# +#TTYTYPE_FILE /etc/ttytype + +# +# If defined, login failures will be logged here in a utmp format +# last, when invoked as lastb, will read /var/log/btmp, so... +# +FTMP_FILE /var/log/btmp + +# +# If defined, the command name to display when running "su -". For +# example, if this is defined as "su" then a "ps" will display the +# command is "-su". If not defined, then "ps" would display the +# name of the shell actually being run, e.g. something like "-sh". +# +SU_NAME su + +# +# If defined, file which inhibits all the usual chatter during the login +# sequence. If a full pathname, then hushed mode will be enabled if the +# user's name or shell are found in the file. If not a full pathname, then +# hushed mode will be enabled if the file exists in the user's home directory. +# +HUSHLOGIN_FILE .hushlogin +#HUSHLOGIN_FILE /etc/hushlogins + +# +# *REQUIRED* The default PATH settings, for superuser and normal users. +# +# (they are minimal, add the rest in the shell startup files) +ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/games + +# +# Terminal permissions +# +# TTYGROUP Login tty will be assigned this group ownership. +# TTYPERM Login tty will be set to this permission. +# +# If you have a "write" program which is "setgid" to a special group +# which owns the terminals, define TTYGROUP to the group number and +# TTYPERM to 0620. Otherwise leave TTYGROUP commented out and assign +# TTYPERM to either 622 or 600. +# +# In Debian /usr/bin/bsd-write or similar programs are setgid tty +# However, the default and recommended value for TTYPERM is still 0600 +# to not allow anyone to write to anyone else console or terminal + +# Users can still allow other people to write them by issuing +# the "mesg y" command. + +TTYGROUP tty +TTYPERM 0600 + +# +# Login configuration initializations: +# +# ERASECHAR Terminal ERASE character ('\010' = backspace). +# KILLCHAR Terminal KILL character ('\025' = CTRL/U). +# UMASK Default "umask" value. +# +# The ERASECHAR and KILLCHAR are used only on System V machines. +# +# UMASK usage is discouraged because it catches only some classes of user +# entries to system, in fact only those made through login(1), while setting +# umask in shell rc file will catch also logins through su, cron, ssh etc. +# +# At the same time, using shell rc to set umask won't catch entries which use +# non-shell executables in place of login shell, like /usr/sbin/pppd for "ppp" +# user and alike. +# +# Therefore the use of pam_umask is recommended (Debian package libpam-umask) +# as the solution which catches all these cases on PAM-enabled systems. +# +# This avoids the confusion created by having the umask set +# in two different places -- in login.defs and shell rc files (i.e. +# /etc/profile). +# +# For discussion, see #314539 and #248150 as well as the thread starting at +# http://lists.debian.org/debian-devel/2005/06/msg01598.html +# +# Prefix these values with "0" to get octal, "0x" to get hexadecimal. +# +ERASECHAR 0177 +KILLCHAR 025 +# 022 is the "historical" value in Debian for UMASK when it was used +# 027, or even 077, could be considered better for privacy +# There is no One True Answer here : each sysadmin must make up their +# mind. +#UMASK 022 + +# +# Password aging controls: +# +# PASS_MAX_DAYS Maximum number of days a password may be used. +# PASS_MIN_DAYS Minimum number of days allowed between password changes. +# PASS_WARN_AGE Number of days warning given before a password expires. +# +PASS_MAX_DAYS 99999 +PASS_MIN_DAYS 0 +PASS_WARN_AGE 7 + +# +# Min/max values for automatic uid selection in useradd +# +UID_MIN 1000 +UID_MAX 60000 + +# +# Min/max values for automatic gid selection in groupadd +# +GID_MIN 100 +GID_MAX 60000 + +# +# Max number of login retries if password is bad. This will most likely be +# overridden by PAM, since the default pam_unix module has it's own built +# in of 3 retries. However, this is a safe fallback in case you are using +# an authentication module that does not enforce PAM_MAXTRIES. +# +LOGIN_RETRIES 5 + +# +# Max time in seconds for login +# +LOGIN_TIMEOUT 60 + +# +# Which fields may be changed by regular users using chfn - use +# any combination of letters "frwh" (full name, room number, work +# phone, home phone). If not defined, no changes are allowed. +# For backward compatibility, "yes" = "rwh" and "no" = "frwh". +# +CHFN_RESTRICT rwh + +# +# Should login be allowed if we can't cd to the home directory? +# Default is no. +# +DEFAULT_HOME yes + +# +# If defined, this command is run when removing a user. +# It should remove any at/cron/print jobs etc. owned by +# the user to be removed (passed as the first argument). +# +#USERDEL_CMD /usr/sbin/userdel_local + +# +# This enables userdel to remove user groups if no members exist. +# +# Other former uses of this variable such as setting the umask when +# user==primary group are not used in PAM environments, thus in Debian +# +USERGROUPS_ENAB yes + +# +# Instead of the real user shell, the program specified by this parameter +# will be launched, although its visible name (argv[0]) will be the shell's. +# The program may do whatever it wants (logging, additional authentification, +# banner, ...) before running the actual shell. +# +# FAKE_SHELL /bin/fakeshell + +# +# If defined, either full pathname of a file containing device names or +# a ":" delimited list of device names. Root logins will be allowed only +# upon these devices. +# +# This variable is used by login and su. +# +#CONSOLE /etc/consoles +#CONSOLE console:tty01:tty02:tty03:tty04 + +# +# List of groups to add to the user's supplementary group set +# when logging in on the console (as determined by the CONSOLE +# setting). Default is none. +# +# Use with caution - it is possible for users to gain permanent +# access to these groups, even when not logged in on the console. +# How to do it is left as an exercise for the reader... +# +# This variable is used by login and su. +# +#CONSOLE_GROUPS floppy:audio:cdrom + +# +# Only works if compiled with MD5_CRYPT defined: +# If set to "yes", new passwords will be encrypted using the MD5-based +# algorithm compatible with the one used by recent releases of FreeBSD. +# It supports passwords of unlimited length and longer salt strings. +# Set to "no" if you need to copy encrypted passwords to other systems +# which don't understand the new algorithm. Default is "no". +# +# This variable is used by chpasswd, gpasswd and newusers. +# +#MD5_CRYPT_ENAB no + +################# OBSOLETED BY PAM ############## +# # +# These options are now handled by PAM. Please # +# edit the appropriate file in /etc/pam.d/ to # +# enable the equivalents of them. +# +############### + +#MOTD_FILE +#DIALUPS_CHECK_ENAB +#LASTLOG_ENAB +#MAIL_CHECK_ENAB +#OBSCURE_CHECKS_ENAB +#PORTTIME_CHECKS_ENAB +#SU_WHEEL_ONLY +#PASS_CHANGE_TRIES +#PASS_ALWAYS_WARN +#ENVIRON_FILE +#NOLOGINS_FILE +#ISSUE_FILE +#PASS_MIN_LEN +#PASS_MAX_LEN +#ULIMIT +#ENV_HZ +#CHFN_AUTH +#CHSH_AUTH +#FAIL_DELAY + +################# OBSOLETED ####################### +# # +# These options are no more handled by shadow. # +# # +# Shadow utilities will display a warning if they # +# still appear. # +# # +################################################### + +# CLOSE_SESSIONS +# LOGIN_STRING +# NO_PASSWORD_CONSOLE +# QMAIL_DIR + + + diff --git a/tests/tests/chage/35_chage_interactive-W-1/config/etc/passwd b/tests/tests/chage/35_chage_interactive-W-1/config/etc/passwd new file mode 100644 index 00000000..5d27e129 --- /dev/null +++ b/tests/tests/chage/35_chage_interactive-W-1/config/etc/passwd @@ -0,0 +1,26 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser1:x:424242:424242::/home:/bin/bash +myuser2:x:424243:424242::/home:/bin/bash +myuser3:x:424244:424242::/home:/bin/bash +myuser4:x:424245:424242::/home:/bin/bash +myuser5:x:424246:424242::/home:/bin/bash +myuser6:x:424247:424242::/home:/bin/bash +myuser7:x:424248:424242::/home:/bin/bash diff --git a/tests/tests/chage/35_chage_interactive-W-1/config/etc/shadow b/tests/tests/chage/35_chage_interactive-W-1/config/etc/shadow new file mode 100644 index 00000000..da4c2bc4 --- /dev/null +++ b/tests/tests/chage/35_chage_interactive-W-1/config/etc/shadow @@ -0,0 +1,26 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser1:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: +myuser2:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12992:1:99996:5::: +myuser3:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::0: +myuser4:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::1: +myuser5:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:0:: +myuser6:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: +myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: diff --git a/tests/tests/chage/35_chage_interactive-W-1/data/shadow b/tests/tests/chage/35_chage_interactive-W-1/data/shadow new file mode 100644 index 00000000..4b74f15d --- /dev/null +++ b/tests/tests/chage/35_chage_interactive-W-1/data/shadow @@ -0,0 +1,26 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser1:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:::: +myuser2:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12992:1:99996:5::: +myuser3:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::0: +myuser4:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::1: +myuser5:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:0:: +myuser6:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: +myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: diff --git a/tests/tests/chage/35_chage_interactive-W-1/run.exp b/tests/tests/chage/35_chage_interactive-W-1/run.exp new file mode 100755 index 00000000..84fd749c --- /dev/null +++ b/tests/tests/chage/35_chage_interactive-W-1/run.exp @@ -0,0 +1,31 @@ +#!/usr/bin/expect + +set timeout 5 + +# I've not been able to put the opening bracket in the regular expressions +# If anyone knows... + +spawn /usr/bin/chage myuser1 +expect -re "Minimum Password Age .0\]: " +send "\r" +expect -re "Maximum Password Age .99999\]: " +send "\r" +expect -re "Last Password Change \[(]YYYY-MM-DD\[)] .2005-07-27\]: " +send "\r" +expect -re "Password Expiration Warning .7\]: " +send -- "-1\r" +expect -re "Password Inactive .-1\]: " +send "\r" +expect -re "Account Expiration Date \[(]YYYY-MM-DD\[)] .-1\]: " +send "\r" +expect { + eof { + } default { + puts "\nFAIL" + exit 1 + } +} + +puts "\nPASS" +exit 0 + diff --git a/tests/tests/chage/36_chage_interactive-I_invalid1/chage.test b/tests/tests/chage/36_chage_interactive-I_invalid1/chage.test new file mode 100755 index 00000000..b2d6d328 --- /dev/null +++ b/tests/tests/chage/36_chage_interactive-I_invalid1/chage.test @@ -0,0 +1,39 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../common/config.sh +. ../../common/log.sh + +log_start "$0" "chage interactive session checks field validity" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "chage interactive session as myuser1..." +./run.exp +echo "OK" + +echo -n "Check the passwd file..." +../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chage/36_chage_interactive-I_invalid1/config.txt b/tests/tests/chage/36_chage_interactive-I_invalid1/config.txt new file mode 100644 index 00000000..e9e4bbed --- /dev/null +++ b/tests/tests/chage/36_chage_interactive-I_invalid1/config.txt @@ -0,0 +1 @@ +group foo, GID 1000 diff --git a/tests/tests/chage/36_chage_interactive-I_invalid1/config/etc/group b/tests/tests/chage/36_chage_interactive-I_invalid1/config/etc/group new file mode 100644 index 00000000..fecba0c4 --- /dev/null +++ b/tests/tests/chage/36_chage_interactive-I_invalid1/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: diff --git a/tests/tests/chage/36_chage_interactive-I_invalid1/config/etc/gshadow b/tests/tests/chage/36_chage_interactive-I_invalid1/config/etc/gshadow new file mode 100644 index 00000000..5042e581 --- /dev/null +++ b/tests/tests/chage/36_chage_interactive-I_invalid1/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/chage/36_chage_interactive-I_invalid1/config/etc/login.defs b/tests/tests/chage/36_chage_interactive-I_invalid1/config/etc/login.defs new file mode 100644 index 00000000..cf181ac0 --- /dev/null +++ b/tests/tests/chage/36_chage_interactive-I_invalid1/config/etc/login.defs @@ -0,0 +1,314 @@ +# +# /etc/login.defs - Configuration control definitions for the login package. +# +# Three items must be defined: MAIL_DIR, ENV_SUPATH, and ENV_PATH. +# If unspecified, some arbitrary (and possibly incorrect) value will +# be assumed. All other items are optional - if not specified then +# the described action or option will be inhibited. +# +# Comment lines (lines beginning with "#") and blank lines are ignored. +# +# Modified for Linux. --marekm + +# REQUIRED for useradd/userdel/usermod +# Directory where mailboxes reside, _or_ name of file, relative to the +# home directory. If you _do_ define MAIL_DIR and MAIL_FILE, +# MAIL_DIR takes precedence. +# +# Essentially: +# - MAIL_DIR defines the location of users mail spool files +# (for mbox use) by appending the username to MAIL_DIR as defined +# below. +# - MAIL_FILE defines the location of the users mail spool files as the +# fully-qualified filename obtained by prepending the user home +# directory before $MAIL_FILE +# +# NOTE: This is no more used for setting up users MAIL environment variable +# which is, starting from shadow 4.0.12-1 in Debian, entirely the +# job of the pam_mail PAM modules +# See default PAM configuration files provided for +# login, su, etc. +# +# This is a temporary situation: setting these variables will soon +# move to /etc/default/useradd and the variables will then be +# no more supported +MAIL_DIR /var/mail +#MAIL_FILE .mail + +# +# Enable logging and display of /var/log/faillog login failure info. +# This option conflicts with the pam_tally PAM module. +# +FAILLOG_ENAB yes + +# +# Enable display of unknown usernames when login failures are recorded. +# +# WARNING: Unknown usernames may become world readable. +# See #290803 and #298773 for details about how this could become a security +# concern +LOG_UNKFAIL_ENAB no + +# +# Enable logging of successful logins +# +LOG_OK_LOGINS no + +# +# Enable "syslog" logging of su activity - in addition to sulog file logging. +# SYSLOG_SG_ENAB does the same for newgrp and sg. +# +SYSLOG_SU_ENAB yes +SYSLOG_SG_ENAB yes + +# +# If defined, all su activity is logged to this file. +# +#SULOG_FILE /var/log/sulog + +# +# If defined, file which maps tty line to TERM environment parameter. +# Each line of the file is in a format something like "vt100 tty01". +# +#TTYTYPE_FILE /etc/ttytype + +# +# If defined, login failures will be logged here in a utmp format +# last, when invoked as lastb, will read /var/log/btmp, so... +# +FTMP_FILE /var/log/btmp + +# +# If defined, the command name to display when running "su -". For +# example, if this is defined as "su" then a "ps" will display the +# command is "-su". If not defined, then "ps" would display the +# name of the shell actually being run, e.g. something like "-sh". +# +SU_NAME su + +# +# If defined, file which inhibits all the usual chatter during the login +# sequence. If a full pathname, then hushed mode will be enabled if the +# user's name or shell are found in the file. If not a full pathname, then +# hushed mode will be enabled if the file exists in the user's home directory. +# +HUSHLOGIN_FILE .hushlogin +#HUSHLOGIN_FILE /etc/hushlogins + +# +# *REQUIRED* The default PATH settings, for superuser and normal users. +# +# (they are minimal, add the rest in the shell startup files) +ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/games + +# +# Terminal permissions +# +# TTYGROUP Login tty will be assigned this group ownership. +# TTYPERM Login tty will be set to this permission. +# +# If you have a "write" program which is "setgid" to a special group +# which owns the terminals, define TTYGROUP to the group number and +# TTYPERM to 0620. Otherwise leave TTYGROUP commented out and assign +# TTYPERM to either 622 or 600. +# +# In Debian /usr/bin/bsd-write or similar programs are setgid tty +# However, the default and recommended value for TTYPERM is still 0600 +# to not allow anyone to write to anyone else console or terminal + +# Users can still allow other people to write them by issuing +# the "mesg y" command. + +TTYGROUP tty +TTYPERM 0600 + +# +# Login configuration initializations: +# +# ERASECHAR Terminal ERASE character ('\010' = backspace). +# KILLCHAR Terminal KILL character ('\025' = CTRL/U). +# UMASK Default "umask" value. +# +# The ERASECHAR and KILLCHAR are used only on System V machines. +# +# UMASK usage is discouraged because it catches only some classes of user +# entries to system, in fact only those made through login(1), while setting +# umask in shell rc file will catch also logins through su, cron, ssh etc. +# +# At the same time, using shell rc to set umask won't catch entries which use +# non-shell executables in place of login shell, like /usr/sbin/pppd for "ppp" +# user and alike. +# +# Therefore the use of pam_umask is recommended (Debian package libpam-umask) +# as the solution which catches all these cases on PAM-enabled systems. +# +# This avoids the confusion created by having the umask set +# in two different places -- in login.defs and shell rc files (i.e. +# /etc/profile). +# +# For discussion, see #314539 and #248150 as well as the thread starting at +# http://lists.debian.org/debian-devel/2005/06/msg01598.html +# +# Prefix these values with "0" to get octal, "0x" to get hexadecimal. +# +ERASECHAR 0177 +KILLCHAR 025 +# 022 is the "historical" value in Debian for UMASK when it was used +# 027, or even 077, could be considered better for privacy +# There is no One True Answer here : each sysadmin must make up their +# mind. +#UMASK 022 + +# +# Password aging controls: +# +# PASS_MAX_DAYS Maximum number of days a password may be used. +# PASS_MIN_DAYS Minimum number of days allowed between password changes. +# PASS_WARN_AGE Number of days warning given before a password expires. +# +PASS_MAX_DAYS 99999 +PASS_MIN_DAYS 0 +PASS_WARN_AGE 7 + +# +# Min/max values for automatic uid selection in useradd +# +UID_MIN 1000 +UID_MAX 60000 + +# +# Min/max values for automatic gid selection in groupadd +# +GID_MIN 100 +GID_MAX 60000 + +# +# Max number of login retries if password is bad. This will most likely be +# overridden by PAM, since the default pam_unix module has it's own built +# in of 3 retries. However, this is a safe fallback in case you are using +# an authentication module that does not enforce PAM_MAXTRIES. +# +LOGIN_RETRIES 5 + +# +# Max time in seconds for login +# +LOGIN_TIMEOUT 60 + +# +# Which fields may be changed by regular users using chfn - use +# any combination of letters "frwh" (full name, room number, work +# phone, home phone). If not defined, no changes are allowed. +# For backward compatibility, "yes" = "rwh" and "no" = "frwh". +# +CHFN_RESTRICT rwh + +# +# Should login be allowed if we can't cd to the home directory? +# Default is no. +# +DEFAULT_HOME yes + +# +# If defined, this command is run when removing a user. +# It should remove any at/cron/print jobs etc. owned by +# the user to be removed (passed as the first argument). +# +#USERDEL_CMD /usr/sbin/userdel_local + +# +# This enables userdel to remove user groups if no members exist. +# +# Other former uses of this variable such as setting the umask when +# user==primary group are not used in PAM environments, thus in Debian +# +USERGROUPS_ENAB yes + +# +# Instead of the real user shell, the program specified by this parameter +# will be launched, although its visible name (argv[0]) will be the shell's. +# The program may do whatever it wants (logging, additional authentification, +# banner, ...) before running the actual shell. +# +# FAKE_SHELL /bin/fakeshell + +# +# If defined, either full pathname of a file containing device names or +# a ":" delimited list of device names. Root logins will be allowed only +# upon these devices. +# +# This variable is used by login and su. +# +#CONSOLE /etc/consoles +#CONSOLE console:tty01:tty02:tty03:tty04 + +# +# List of groups to add to the user's supplementary group set +# when logging in on the console (as determined by the CONSOLE +# setting). Default is none. +# +# Use with caution - it is possible for users to gain permanent +# access to these groups, even when not logged in on the console. +# How to do it is left as an exercise for the reader... +# +# This variable is used by login and su. +# +#CONSOLE_GROUPS floppy:audio:cdrom + +# +# Only works if compiled with MD5_CRYPT defined: +# If set to "yes", new passwords will be encrypted using the MD5-based +# algorithm compatible with the one used by recent releases of FreeBSD. +# It supports passwords of unlimited length and longer salt strings. +# Set to "no" if you need to copy encrypted passwords to other systems +# which don't understand the new algorithm. Default is "no". +# +# This variable is used by chpasswd, gpasswd and newusers. +# +#MD5_CRYPT_ENAB no + +################# OBSOLETED BY PAM ############## +# # +# These options are now handled by PAM. Please # +# edit the appropriate file in /etc/pam.d/ to # +# enable the equivalents of them. +# +############### + +#MOTD_FILE +#DIALUPS_CHECK_ENAB +#LASTLOG_ENAB +#MAIL_CHECK_ENAB +#OBSCURE_CHECKS_ENAB +#PORTTIME_CHECKS_ENAB +#SU_WHEEL_ONLY +#PASS_CHANGE_TRIES +#PASS_ALWAYS_WARN +#ENVIRON_FILE +#NOLOGINS_FILE +#ISSUE_FILE +#PASS_MIN_LEN +#PASS_MAX_LEN +#ULIMIT +#ENV_HZ +#CHFN_AUTH +#CHSH_AUTH +#FAIL_DELAY + +################# OBSOLETED ####################### +# # +# These options are no more handled by shadow. # +# # +# Shadow utilities will display a warning if they # +# still appear. # +# # +################################################### + +# CLOSE_SESSIONS +# LOGIN_STRING +# NO_PASSWORD_CONSOLE +# QMAIL_DIR + + + diff --git a/tests/tests/chage/36_chage_interactive-I_invalid1/config/etc/passwd b/tests/tests/chage/36_chage_interactive-I_invalid1/config/etc/passwd new file mode 100644 index 00000000..5d27e129 --- /dev/null +++ b/tests/tests/chage/36_chage_interactive-I_invalid1/config/etc/passwd @@ -0,0 +1,26 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser1:x:424242:424242::/home:/bin/bash +myuser2:x:424243:424242::/home:/bin/bash +myuser3:x:424244:424242::/home:/bin/bash +myuser4:x:424245:424242::/home:/bin/bash +myuser5:x:424246:424242::/home:/bin/bash +myuser6:x:424247:424242::/home:/bin/bash +myuser7:x:424248:424242::/home:/bin/bash diff --git a/tests/tests/chage/36_chage_interactive-I_invalid1/config/etc/shadow b/tests/tests/chage/36_chage_interactive-I_invalid1/config/etc/shadow new file mode 100644 index 00000000..da4c2bc4 --- /dev/null +++ b/tests/tests/chage/36_chage_interactive-I_invalid1/config/etc/shadow @@ -0,0 +1,26 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser1:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: +myuser2:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12992:1:99996:5::: +myuser3:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::0: +myuser4:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::1: +myuser5:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:0:: +myuser6:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: +myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: diff --git a/tests/tests/chage/36_chage_interactive-I_invalid1/run.exp b/tests/tests/chage/36_chage_interactive-I_invalid1/run.exp new file mode 100755 index 00000000..1e3087b4 --- /dev/null +++ b/tests/tests/chage/36_chage_interactive-I_invalid1/run.exp @@ -0,0 +1,32 @@ +#!/usr/bin/expect + +set timeout 5 + +# I've not been able to put the opening bracket in the regular expressions +# If anyone knows... + +spawn /usr/bin/chage myuser1 +expect -re "Minimum Password Age .0\]: " +send "\r" +expect -re "Maximum Password Age .99999\]: " +send "\r" +expect -re "Last Password Change \[(]YYYY-MM-DD\[)] .2005-07-27\]: " +send "\r" +expect -re "Password Expiration Warning .7\]: " +send "\r" +expect -re "Password Inactive .-1\]: " +send "9a\r" +#expect -re "Account Expiration Date \[(]YYYY-MM-DD\[)] .-1\]: " +#send "0\r" +expect "chage: error changing fields\r\n" +expect { + eof { + } default { + puts "\nFAIL" + exit 1 + } +} + +puts "\nPASS" +exit 0 + diff --git a/tests/tests/chage/37_chage_interactive-I_invalid2/chage.test b/tests/tests/chage/37_chage_interactive-I_invalid2/chage.test new file mode 100755 index 00000000..b2d6d328 --- /dev/null +++ b/tests/tests/chage/37_chage_interactive-I_invalid2/chage.test @@ -0,0 +1,39 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../common/config.sh +. ../../common/log.sh + +log_start "$0" "chage interactive session checks field validity" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "chage interactive session as myuser1..." +./run.exp +echo "OK" + +echo -n "Check the passwd file..." +../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chage/37_chage_interactive-I_invalid2/config.txt b/tests/tests/chage/37_chage_interactive-I_invalid2/config.txt new file mode 100644 index 00000000..e9e4bbed --- /dev/null +++ b/tests/tests/chage/37_chage_interactive-I_invalid2/config.txt @@ -0,0 +1 @@ +group foo, GID 1000 diff --git a/tests/tests/chage/37_chage_interactive-I_invalid2/config/etc/group b/tests/tests/chage/37_chage_interactive-I_invalid2/config/etc/group new file mode 100644 index 00000000..fecba0c4 --- /dev/null +++ b/tests/tests/chage/37_chage_interactive-I_invalid2/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: diff --git a/tests/tests/chage/37_chage_interactive-I_invalid2/config/etc/gshadow b/tests/tests/chage/37_chage_interactive-I_invalid2/config/etc/gshadow new file mode 100644 index 00000000..5042e581 --- /dev/null +++ b/tests/tests/chage/37_chage_interactive-I_invalid2/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/chage/37_chage_interactive-I_invalid2/config/etc/login.defs b/tests/tests/chage/37_chage_interactive-I_invalid2/config/etc/login.defs new file mode 100644 index 00000000..cf181ac0 --- /dev/null +++ b/tests/tests/chage/37_chage_interactive-I_invalid2/config/etc/login.defs @@ -0,0 +1,314 @@ +# +# /etc/login.defs - Configuration control definitions for the login package. +# +# Three items must be defined: MAIL_DIR, ENV_SUPATH, and ENV_PATH. +# If unspecified, some arbitrary (and possibly incorrect) value will +# be assumed. All other items are optional - if not specified then +# the described action or option will be inhibited. +# +# Comment lines (lines beginning with "#") and blank lines are ignored. +# +# Modified for Linux. --marekm + +# REQUIRED for useradd/userdel/usermod +# Directory where mailboxes reside, _or_ name of file, relative to the +# home directory. If you _do_ define MAIL_DIR and MAIL_FILE, +# MAIL_DIR takes precedence. +# +# Essentially: +# - MAIL_DIR defines the location of users mail spool files +# (for mbox use) by appending the username to MAIL_DIR as defined +# below. +# - MAIL_FILE defines the location of the users mail spool files as the +# fully-qualified filename obtained by prepending the user home +# directory before $MAIL_FILE +# +# NOTE: This is no more used for setting up users MAIL environment variable +# which is, starting from shadow 4.0.12-1 in Debian, entirely the +# job of the pam_mail PAM modules +# See default PAM configuration files provided for +# login, su, etc. +# +# This is a temporary situation: setting these variables will soon +# move to /etc/default/useradd and the variables will then be +# no more supported +MAIL_DIR /var/mail +#MAIL_FILE .mail + +# +# Enable logging and display of /var/log/faillog login failure info. +# This option conflicts with the pam_tally PAM module. +# +FAILLOG_ENAB yes + +# +# Enable display of unknown usernames when login failures are recorded. +# +# WARNING: Unknown usernames may become world readable. +# See #290803 and #298773 for details about how this could become a security +# concern +LOG_UNKFAIL_ENAB no + +# +# Enable logging of successful logins +# +LOG_OK_LOGINS no + +# +# Enable "syslog" logging of su activity - in addition to sulog file logging. +# SYSLOG_SG_ENAB does the same for newgrp and sg. +# +SYSLOG_SU_ENAB yes +SYSLOG_SG_ENAB yes + +# +# If defined, all su activity is logged to this file. +# +#SULOG_FILE /var/log/sulog + +# +# If defined, file which maps tty line to TERM environment parameter. +# Each line of the file is in a format something like "vt100 tty01". +# +#TTYTYPE_FILE /etc/ttytype + +# +# If defined, login failures will be logged here in a utmp format +# last, when invoked as lastb, will read /var/log/btmp, so... +# +FTMP_FILE /var/log/btmp + +# +# If defined, the command name to display when running "su -". For +# example, if this is defined as "su" then a "ps" will display the +# command is "-su". If not defined, then "ps" would display the +# name of the shell actually being run, e.g. something like "-sh". +# +SU_NAME su + +# +# If defined, file which inhibits all the usual chatter during the login +# sequence. If a full pathname, then hushed mode will be enabled if the +# user's name or shell are found in the file. If not a full pathname, then +# hushed mode will be enabled if the file exists in the user's home directory. +# +HUSHLOGIN_FILE .hushlogin +#HUSHLOGIN_FILE /etc/hushlogins + +# +# *REQUIRED* The default PATH settings, for superuser and normal users. +# +# (they are minimal, add the rest in the shell startup files) +ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/games + +# +# Terminal permissions +# +# TTYGROUP Login tty will be assigned this group ownership. +# TTYPERM Login tty will be set to this permission. +# +# If you have a "write" program which is "setgid" to a special group +# which owns the terminals, define TTYGROUP to the group number and +# TTYPERM to 0620. Otherwise leave TTYGROUP commented out and assign +# TTYPERM to either 622 or 600. +# +# In Debian /usr/bin/bsd-write or similar programs are setgid tty +# However, the default and recommended value for TTYPERM is still 0600 +# to not allow anyone to write to anyone else console or terminal + +# Users can still allow other people to write them by issuing +# the "mesg y" command. + +TTYGROUP tty +TTYPERM 0600 + +# +# Login configuration initializations: +# +# ERASECHAR Terminal ERASE character ('\010' = backspace). +# KILLCHAR Terminal KILL character ('\025' = CTRL/U). +# UMASK Default "umask" value. +# +# The ERASECHAR and KILLCHAR are used only on System V machines. +# +# UMASK usage is discouraged because it catches only some classes of user +# entries to system, in fact only those made through login(1), while setting +# umask in shell rc file will catch also logins through su, cron, ssh etc. +# +# At the same time, using shell rc to set umask won't catch entries which use +# non-shell executables in place of login shell, like /usr/sbin/pppd for "ppp" +# user and alike. +# +# Therefore the use of pam_umask is recommended (Debian package libpam-umask) +# as the solution which catches all these cases on PAM-enabled systems. +# +# This avoids the confusion created by having the umask set +# in two different places -- in login.defs and shell rc files (i.e. +# /etc/profile). +# +# For discussion, see #314539 and #248150 as well as the thread starting at +# http://lists.debian.org/debian-devel/2005/06/msg01598.html +# +# Prefix these values with "0" to get octal, "0x" to get hexadecimal. +# +ERASECHAR 0177 +KILLCHAR 025 +# 022 is the "historical" value in Debian for UMASK when it was used +# 027, or even 077, could be considered better for privacy +# There is no One True Answer here : each sysadmin must make up their +# mind. +#UMASK 022 + +# +# Password aging controls: +# +# PASS_MAX_DAYS Maximum number of days a password may be used. +# PASS_MIN_DAYS Minimum number of days allowed between password changes. +# PASS_WARN_AGE Number of days warning given before a password expires. +# +PASS_MAX_DAYS 99999 +PASS_MIN_DAYS 0 +PASS_WARN_AGE 7 + +# +# Min/max values for automatic uid selection in useradd +# +UID_MIN 1000 +UID_MAX 60000 + +# +# Min/max values for automatic gid selection in groupadd +# +GID_MIN 100 +GID_MAX 60000 + +# +# Max number of login retries if password is bad. This will most likely be +# overridden by PAM, since the default pam_unix module has it's own built +# in of 3 retries. However, this is a safe fallback in case you are using +# an authentication module that does not enforce PAM_MAXTRIES. +# +LOGIN_RETRIES 5 + +# +# Max time in seconds for login +# +LOGIN_TIMEOUT 60 + +# +# Which fields may be changed by regular users using chfn - use +# any combination of letters "frwh" (full name, room number, work +# phone, home phone). If not defined, no changes are allowed. +# For backward compatibility, "yes" = "rwh" and "no" = "frwh". +# +CHFN_RESTRICT rwh + +# +# Should login be allowed if we can't cd to the home directory? +# Default is no. +# +DEFAULT_HOME yes + +# +# If defined, this command is run when removing a user. +# It should remove any at/cron/print jobs etc. owned by +# the user to be removed (passed as the first argument). +# +#USERDEL_CMD /usr/sbin/userdel_local + +# +# This enables userdel to remove user groups if no members exist. +# +# Other former uses of this variable such as setting the umask when +# user==primary group are not used in PAM environments, thus in Debian +# +USERGROUPS_ENAB yes + +# +# Instead of the real user shell, the program specified by this parameter +# will be launched, although its visible name (argv[0]) will be the shell's. +# The program may do whatever it wants (logging, additional authentification, +# banner, ...) before running the actual shell. +# +# FAKE_SHELL /bin/fakeshell + +# +# If defined, either full pathname of a file containing device names or +# a ":" delimited list of device names. Root logins will be allowed only +# upon these devices. +# +# This variable is used by login and su. +# +#CONSOLE /etc/consoles +#CONSOLE console:tty01:tty02:tty03:tty04 + +# +# List of groups to add to the user's supplementary group set +# when logging in on the console (as determined by the CONSOLE +# setting). Default is none. +# +# Use with caution - it is possible for users to gain permanent +# access to these groups, even when not logged in on the console. +# How to do it is left as an exercise for the reader... +# +# This variable is used by login and su. +# +#CONSOLE_GROUPS floppy:audio:cdrom + +# +# Only works if compiled with MD5_CRYPT defined: +# If set to "yes", new passwords will be encrypted using the MD5-based +# algorithm compatible with the one used by recent releases of FreeBSD. +# It supports passwords of unlimited length and longer salt strings. +# Set to "no" if you need to copy encrypted passwords to other systems +# which don't understand the new algorithm. Default is "no". +# +# This variable is used by chpasswd, gpasswd and newusers. +# +#MD5_CRYPT_ENAB no + +################# OBSOLETED BY PAM ############## +# # +# These options are now handled by PAM. Please # +# edit the appropriate file in /etc/pam.d/ to # +# enable the equivalents of them. +# +############### + +#MOTD_FILE +#DIALUPS_CHECK_ENAB +#LASTLOG_ENAB +#MAIL_CHECK_ENAB +#OBSCURE_CHECKS_ENAB +#PORTTIME_CHECKS_ENAB +#SU_WHEEL_ONLY +#PASS_CHANGE_TRIES +#PASS_ALWAYS_WARN +#ENVIRON_FILE +#NOLOGINS_FILE +#ISSUE_FILE +#PASS_MIN_LEN +#PASS_MAX_LEN +#ULIMIT +#ENV_HZ +#CHFN_AUTH +#CHSH_AUTH +#FAIL_DELAY + +################# OBSOLETED ####################### +# # +# These options are no more handled by shadow. # +# # +# Shadow utilities will display a warning if they # +# still appear. # +# # +################################################### + +# CLOSE_SESSIONS +# LOGIN_STRING +# NO_PASSWORD_CONSOLE +# QMAIL_DIR + + + diff --git a/tests/tests/chage/37_chage_interactive-I_invalid2/config/etc/passwd b/tests/tests/chage/37_chage_interactive-I_invalid2/config/etc/passwd new file mode 100644 index 00000000..5d27e129 --- /dev/null +++ b/tests/tests/chage/37_chage_interactive-I_invalid2/config/etc/passwd @@ -0,0 +1,26 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser1:x:424242:424242::/home:/bin/bash +myuser2:x:424243:424242::/home:/bin/bash +myuser3:x:424244:424242::/home:/bin/bash +myuser4:x:424245:424242::/home:/bin/bash +myuser5:x:424246:424242::/home:/bin/bash +myuser6:x:424247:424242::/home:/bin/bash +myuser7:x:424248:424242::/home:/bin/bash diff --git a/tests/tests/chage/37_chage_interactive-I_invalid2/config/etc/shadow b/tests/tests/chage/37_chage_interactive-I_invalid2/config/etc/shadow new file mode 100644 index 00000000..da4c2bc4 --- /dev/null +++ b/tests/tests/chage/37_chage_interactive-I_invalid2/config/etc/shadow @@ -0,0 +1,26 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser1:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: +myuser2:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12992:1:99996:5::: +myuser3:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::0: +myuser4:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::1: +myuser5:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:0:: +myuser6:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: +myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: diff --git a/tests/tests/chage/37_chage_interactive-I_invalid2/run.exp b/tests/tests/chage/37_chage_interactive-I_invalid2/run.exp new file mode 100755 index 00000000..b059117a --- /dev/null +++ b/tests/tests/chage/37_chage_interactive-I_invalid2/run.exp @@ -0,0 +1,32 @@ +#!/usr/bin/expect + +set timeout 5 + +# I've not been able to put the opening bracket in the regular expressions +# If anyone knows... + +spawn /usr/bin/chage myuser1 +expect -re "Minimum Password Age .0\]: " +send "\r" +expect -re "Maximum Password Age .99999\]: " +send "\r" +expect -re "Last Password Change \[(]YYYY-MM-DD\[)] .2005-07-27\]: " +send "\r" +expect -re "Password Expiration Warning .7\]: " +send "\r" +expect -re "Password Inactive .-1\]: " +send -- "-2\r" +#expect -re "Account Expiration Date \[(]YYYY-MM-DD\[)] .-1\]: " +#send "0\r" +expect "chage: error changing fields\r\n" +expect { + eof { + } default { + puts "\nFAIL" + exit 1 + } +} + +puts "\nPASS" +exit 0 + diff --git a/tests/tests/chage/38_chage_interactive-I-1/chage.test b/tests/tests/chage/38_chage_interactive-I-1/chage.test new file mode 100755 index 00000000..8d5f5bef --- /dev/null +++ b/tests/tests/chage/38_chage_interactive-I-1/chage.test @@ -0,0 +1,39 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../common/config.sh +. ../../common/log.sh + +log_start "$0" "chage creates a shadow entry if there were none" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "chage interactive session as myuser1..." +./run.exp +echo "OK" + +echo -n "Check the passwd file..." +../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../common/compare_file.pl data/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chage/38_chage_interactive-I-1/config.txt b/tests/tests/chage/38_chage_interactive-I-1/config.txt new file mode 100644 index 00000000..e9e4bbed --- /dev/null +++ b/tests/tests/chage/38_chage_interactive-I-1/config.txt @@ -0,0 +1 @@ +group foo, GID 1000 diff --git a/tests/tests/chage/38_chage_interactive-I-1/config/etc/group b/tests/tests/chage/38_chage_interactive-I-1/config/etc/group new file mode 100644 index 00000000..fecba0c4 --- /dev/null +++ b/tests/tests/chage/38_chage_interactive-I-1/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: diff --git a/tests/tests/chage/38_chage_interactive-I-1/config/etc/gshadow b/tests/tests/chage/38_chage_interactive-I-1/config/etc/gshadow new file mode 100644 index 00000000..5042e581 --- /dev/null +++ b/tests/tests/chage/38_chage_interactive-I-1/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/chage/38_chage_interactive-I-1/config/etc/login.defs b/tests/tests/chage/38_chage_interactive-I-1/config/etc/login.defs new file mode 100644 index 00000000..cf181ac0 --- /dev/null +++ b/tests/tests/chage/38_chage_interactive-I-1/config/etc/login.defs @@ -0,0 +1,314 @@ +# +# /etc/login.defs - Configuration control definitions for the login package. +# +# Three items must be defined: MAIL_DIR, ENV_SUPATH, and ENV_PATH. +# If unspecified, some arbitrary (and possibly incorrect) value will +# be assumed. All other items are optional - if not specified then +# the described action or option will be inhibited. +# +# Comment lines (lines beginning with "#") and blank lines are ignored. +# +# Modified for Linux. --marekm + +# REQUIRED for useradd/userdel/usermod +# Directory where mailboxes reside, _or_ name of file, relative to the +# home directory. If you _do_ define MAIL_DIR and MAIL_FILE, +# MAIL_DIR takes precedence. +# +# Essentially: +# - MAIL_DIR defines the location of users mail spool files +# (for mbox use) by appending the username to MAIL_DIR as defined +# below. +# - MAIL_FILE defines the location of the users mail spool files as the +# fully-qualified filename obtained by prepending the user home +# directory before $MAIL_FILE +# +# NOTE: This is no more used for setting up users MAIL environment variable +# which is, starting from shadow 4.0.12-1 in Debian, entirely the +# job of the pam_mail PAM modules +# See default PAM configuration files provided for +# login, su, etc. +# +# This is a temporary situation: setting these variables will soon +# move to /etc/default/useradd and the variables will then be +# no more supported +MAIL_DIR /var/mail +#MAIL_FILE .mail + +# +# Enable logging and display of /var/log/faillog login failure info. +# This option conflicts with the pam_tally PAM module. +# +FAILLOG_ENAB yes + +# +# Enable display of unknown usernames when login failures are recorded. +# +# WARNING: Unknown usernames may become world readable. +# See #290803 and #298773 for details about how this could become a security +# concern +LOG_UNKFAIL_ENAB no + +# +# Enable logging of successful logins +# +LOG_OK_LOGINS no + +# +# Enable "syslog" logging of su activity - in addition to sulog file logging. +# SYSLOG_SG_ENAB does the same for newgrp and sg. +# +SYSLOG_SU_ENAB yes +SYSLOG_SG_ENAB yes + +# +# If defined, all su activity is logged to this file. +# +#SULOG_FILE /var/log/sulog + +# +# If defined, file which maps tty line to TERM environment parameter. +# Each line of the file is in a format something like "vt100 tty01". +# +#TTYTYPE_FILE /etc/ttytype + +# +# If defined, login failures will be logged here in a utmp format +# last, when invoked as lastb, will read /var/log/btmp, so... +# +FTMP_FILE /var/log/btmp + +# +# If defined, the command name to display when running "su -". For +# example, if this is defined as "su" then a "ps" will display the +# command is "-su". If not defined, then "ps" would display the +# name of the shell actually being run, e.g. something like "-sh". +# +SU_NAME su + +# +# If defined, file which inhibits all the usual chatter during the login +# sequence. If a full pathname, then hushed mode will be enabled if the +# user's name or shell are found in the file. If not a full pathname, then +# hushed mode will be enabled if the file exists in the user's home directory. +# +HUSHLOGIN_FILE .hushlogin +#HUSHLOGIN_FILE /etc/hushlogins + +# +# *REQUIRED* The default PATH settings, for superuser and normal users. +# +# (they are minimal, add the rest in the shell startup files) +ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/games + +# +# Terminal permissions +# +# TTYGROUP Login tty will be assigned this group ownership. +# TTYPERM Login tty will be set to this permission. +# +# If you have a "write" program which is "setgid" to a special group +# which owns the terminals, define TTYGROUP to the group number and +# TTYPERM to 0620. Otherwise leave TTYGROUP commented out and assign +# TTYPERM to either 622 or 600. +# +# In Debian /usr/bin/bsd-write or similar programs are setgid tty +# However, the default and recommended value for TTYPERM is still 0600 +# to not allow anyone to write to anyone else console or terminal + +# Users can still allow other people to write them by issuing +# the "mesg y" command. + +TTYGROUP tty +TTYPERM 0600 + +# +# Login configuration initializations: +# +# ERASECHAR Terminal ERASE character ('\010' = backspace). +# KILLCHAR Terminal KILL character ('\025' = CTRL/U). +# UMASK Default "umask" value. +# +# The ERASECHAR and KILLCHAR are used only on System V machines. +# +# UMASK usage is discouraged because it catches only some classes of user +# entries to system, in fact only those made through login(1), while setting +# umask in shell rc file will catch also logins through su, cron, ssh etc. +# +# At the same time, using shell rc to set umask won't catch entries which use +# non-shell executables in place of login shell, like /usr/sbin/pppd for "ppp" +# user and alike. +# +# Therefore the use of pam_umask is recommended (Debian package libpam-umask) +# as the solution which catches all these cases on PAM-enabled systems. +# +# This avoids the confusion created by having the umask set +# in two different places -- in login.defs and shell rc files (i.e. +# /etc/profile). +# +# For discussion, see #314539 and #248150 as well as the thread starting at +# http://lists.debian.org/debian-devel/2005/06/msg01598.html +# +# Prefix these values with "0" to get octal, "0x" to get hexadecimal. +# +ERASECHAR 0177 +KILLCHAR 025 +# 022 is the "historical" value in Debian for UMASK when it was used +# 027, or even 077, could be considered better for privacy +# There is no One True Answer here : each sysadmin must make up their +# mind. +#UMASK 022 + +# +# Password aging controls: +# +# PASS_MAX_DAYS Maximum number of days a password may be used. +# PASS_MIN_DAYS Minimum number of days allowed between password changes. +# PASS_WARN_AGE Number of days warning given before a password expires. +# +PASS_MAX_DAYS 99999 +PASS_MIN_DAYS 0 +PASS_WARN_AGE 7 + +# +# Min/max values for automatic uid selection in useradd +# +UID_MIN 1000 +UID_MAX 60000 + +# +# Min/max values for automatic gid selection in groupadd +# +GID_MIN 100 +GID_MAX 60000 + +# +# Max number of login retries if password is bad. This will most likely be +# overridden by PAM, since the default pam_unix module has it's own built +# in of 3 retries. However, this is a safe fallback in case you are using +# an authentication module that does not enforce PAM_MAXTRIES. +# +LOGIN_RETRIES 5 + +# +# Max time in seconds for login +# +LOGIN_TIMEOUT 60 + +# +# Which fields may be changed by regular users using chfn - use +# any combination of letters "frwh" (full name, room number, work +# phone, home phone). If not defined, no changes are allowed. +# For backward compatibility, "yes" = "rwh" and "no" = "frwh". +# +CHFN_RESTRICT rwh + +# +# Should login be allowed if we can't cd to the home directory? +# Default is no. +# +DEFAULT_HOME yes + +# +# If defined, this command is run when removing a user. +# It should remove any at/cron/print jobs etc. owned by +# the user to be removed (passed as the first argument). +# +#USERDEL_CMD /usr/sbin/userdel_local + +# +# This enables userdel to remove user groups if no members exist. +# +# Other former uses of this variable such as setting the umask when +# user==primary group are not used in PAM environments, thus in Debian +# +USERGROUPS_ENAB yes + +# +# Instead of the real user shell, the program specified by this parameter +# will be launched, although its visible name (argv[0]) will be the shell's. +# The program may do whatever it wants (logging, additional authentification, +# banner, ...) before running the actual shell. +# +# FAKE_SHELL /bin/fakeshell + +# +# If defined, either full pathname of a file containing device names or +# a ":" delimited list of device names. Root logins will be allowed only +# upon these devices. +# +# This variable is used by login and su. +# +#CONSOLE /etc/consoles +#CONSOLE console:tty01:tty02:tty03:tty04 + +# +# List of groups to add to the user's supplementary group set +# when logging in on the console (as determined by the CONSOLE +# setting). Default is none. +# +# Use with caution - it is possible for users to gain permanent +# access to these groups, even when not logged in on the console. +# How to do it is left as an exercise for the reader... +# +# This variable is used by login and su. +# +#CONSOLE_GROUPS floppy:audio:cdrom + +# +# Only works if compiled with MD5_CRYPT defined: +# If set to "yes", new passwords will be encrypted using the MD5-based +# algorithm compatible with the one used by recent releases of FreeBSD. +# It supports passwords of unlimited length and longer salt strings. +# Set to "no" if you need to copy encrypted passwords to other systems +# which don't understand the new algorithm. Default is "no". +# +# This variable is used by chpasswd, gpasswd and newusers. +# +#MD5_CRYPT_ENAB no + +################# OBSOLETED BY PAM ############## +# # +# These options are now handled by PAM. Please # +# edit the appropriate file in /etc/pam.d/ to # +# enable the equivalents of them. +# +############### + +#MOTD_FILE +#DIALUPS_CHECK_ENAB +#LASTLOG_ENAB +#MAIL_CHECK_ENAB +#OBSCURE_CHECKS_ENAB +#PORTTIME_CHECKS_ENAB +#SU_WHEEL_ONLY +#PASS_CHANGE_TRIES +#PASS_ALWAYS_WARN +#ENVIRON_FILE +#NOLOGINS_FILE +#ISSUE_FILE +#PASS_MIN_LEN +#PASS_MAX_LEN +#ULIMIT +#ENV_HZ +#CHFN_AUTH +#CHSH_AUTH +#FAIL_DELAY + +################# OBSOLETED ####################### +# # +# These options are no more handled by shadow. # +# # +# Shadow utilities will display a warning if they # +# still appear. # +# # +################################################### + +# CLOSE_SESSIONS +# LOGIN_STRING +# NO_PASSWORD_CONSOLE +# QMAIL_DIR + + + diff --git a/tests/tests/chage/38_chage_interactive-I-1/config/etc/passwd b/tests/tests/chage/38_chage_interactive-I-1/config/etc/passwd new file mode 100644 index 00000000..5d27e129 --- /dev/null +++ b/tests/tests/chage/38_chage_interactive-I-1/config/etc/passwd @@ -0,0 +1,26 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser1:x:424242:424242::/home:/bin/bash +myuser2:x:424243:424242::/home:/bin/bash +myuser3:x:424244:424242::/home:/bin/bash +myuser4:x:424245:424242::/home:/bin/bash +myuser5:x:424246:424242::/home:/bin/bash +myuser6:x:424247:424242::/home:/bin/bash +myuser7:x:424248:424242::/home:/bin/bash diff --git a/tests/tests/chage/38_chage_interactive-I-1/config/etc/shadow b/tests/tests/chage/38_chage_interactive-I-1/config/etc/shadow new file mode 100644 index 00000000..922d9551 --- /dev/null +++ b/tests/tests/chage/38_chage_interactive-I-1/config/etc/shadow @@ -0,0 +1,26 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser1:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:3:: +myuser2:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12992:1:99996:5::: +myuser3:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::0: +myuser4:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::1: +myuser5:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:0:: +myuser6:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: +myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: diff --git a/tests/tests/chage/38_chage_interactive-I-1/data/shadow b/tests/tests/chage/38_chage_interactive-I-1/data/shadow new file mode 100644 index 00000000..da4c2bc4 --- /dev/null +++ b/tests/tests/chage/38_chage_interactive-I-1/data/shadow @@ -0,0 +1,26 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser1:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: +myuser2:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12992:1:99996:5::: +myuser3:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::0: +myuser4:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::1: +myuser5:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:0:: +myuser6:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: +myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: diff --git a/tests/tests/chage/38_chage_interactive-I-1/run.exp b/tests/tests/chage/38_chage_interactive-I-1/run.exp new file mode 100755 index 00000000..94eb4630 --- /dev/null +++ b/tests/tests/chage/38_chage_interactive-I-1/run.exp @@ -0,0 +1,31 @@ +#!/usr/bin/expect + +set timeout 5 + +# I've not been able to put the opening bracket in the regular expressions +# If anyone knows... + +spawn /usr/bin/chage myuser1 +expect -re "Minimum Password Age .0\]: " +send "\r" +expect -re "Maximum Password Age .99999\]: " +send "\r" +expect -re "Last Password Change \[(]YYYY-MM-DD\[)] .2005-07-27\]: " +send "\r" +expect -re "Password Expiration Warning .7\]: " +send "\r" +expect -re "Password Inactive .3\]: " +send -- "-1\r" +expect -re "Account Expiration Date \[(]YYYY-MM-DD\[)] .-1\]: " +send "\r" +expect { + eof { + } default { + puts "\nFAIL" + exit 1 + } +} + +puts "\nPASS" +exit 0 + diff --git a/tests/tests/chage/39_chage_interactive-d-1/chage.test b/tests/tests/chage/39_chage_interactive-d-1/chage.test new file mode 100755 index 00000000..8d5f5bef --- /dev/null +++ b/tests/tests/chage/39_chage_interactive-d-1/chage.test @@ -0,0 +1,39 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../common/config.sh +. ../../common/log.sh + +log_start "$0" "chage creates a shadow entry if there were none" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "chage interactive session as myuser1..." +./run.exp +echo "OK" + +echo -n "Check the passwd file..." +../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../common/compare_file.pl data/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chage/39_chage_interactive-d-1/config.txt b/tests/tests/chage/39_chage_interactive-d-1/config.txt new file mode 100644 index 00000000..e9e4bbed --- /dev/null +++ b/tests/tests/chage/39_chage_interactive-d-1/config.txt @@ -0,0 +1 @@ +group foo, GID 1000 diff --git a/tests/tests/chage/39_chage_interactive-d-1/config/etc/group b/tests/tests/chage/39_chage_interactive-d-1/config/etc/group new file mode 100644 index 00000000..fecba0c4 --- /dev/null +++ b/tests/tests/chage/39_chage_interactive-d-1/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: diff --git a/tests/tests/chage/39_chage_interactive-d-1/config/etc/gshadow b/tests/tests/chage/39_chage_interactive-d-1/config/etc/gshadow new file mode 100644 index 00000000..5042e581 --- /dev/null +++ b/tests/tests/chage/39_chage_interactive-d-1/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/chage/39_chage_interactive-d-1/config/etc/login.defs b/tests/tests/chage/39_chage_interactive-d-1/config/etc/login.defs new file mode 100644 index 00000000..cf181ac0 --- /dev/null +++ b/tests/tests/chage/39_chage_interactive-d-1/config/etc/login.defs @@ -0,0 +1,314 @@ +# +# /etc/login.defs - Configuration control definitions for the login package. +# +# Three items must be defined: MAIL_DIR, ENV_SUPATH, and ENV_PATH. +# If unspecified, some arbitrary (and possibly incorrect) value will +# be assumed. All other items are optional - if not specified then +# the described action or option will be inhibited. +# +# Comment lines (lines beginning with "#") and blank lines are ignored. +# +# Modified for Linux. --marekm + +# REQUIRED for useradd/userdel/usermod +# Directory where mailboxes reside, _or_ name of file, relative to the +# home directory. If you _do_ define MAIL_DIR and MAIL_FILE, +# MAIL_DIR takes precedence. +# +# Essentially: +# - MAIL_DIR defines the location of users mail spool files +# (for mbox use) by appending the username to MAIL_DIR as defined +# below. +# - MAIL_FILE defines the location of the users mail spool files as the +# fully-qualified filename obtained by prepending the user home +# directory before $MAIL_FILE +# +# NOTE: This is no more used for setting up users MAIL environment variable +# which is, starting from shadow 4.0.12-1 in Debian, entirely the +# job of the pam_mail PAM modules +# See default PAM configuration files provided for +# login, su, etc. +# +# This is a temporary situation: setting these variables will soon +# move to /etc/default/useradd and the variables will then be +# no more supported +MAIL_DIR /var/mail +#MAIL_FILE .mail + +# +# Enable logging and display of /var/log/faillog login failure info. +# This option conflicts with the pam_tally PAM module. +# +FAILLOG_ENAB yes + +# +# Enable display of unknown usernames when login failures are recorded. +# +# WARNING: Unknown usernames may become world readable. +# See #290803 and #298773 for details about how this could become a security +# concern +LOG_UNKFAIL_ENAB no + +# +# Enable logging of successful logins +# +LOG_OK_LOGINS no + +# +# Enable "syslog" logging of su activity - in addition to sulog file logging. +# SYSLOG_SG_ENAB does the same for newgrp and sg. +# +SYSLOG_SU_ENAB yes +SYSLOG_SG_ENAB yes + +# +# If defined, all su activity is logged to this file. +# +#SULOG_FILE /var/log/sulog + +# +# If defined, file which maps tty line to TERM environment parameter. +# Each line of the file is in a format something like "vt100 tty01". +# +#TTYTYPE_FILE /etc/ttytype + +# +# If defined, login failures will be logged here in a utmp format +# last, when invoked as lastb, will read /var/log/btmp, so... +# +FTMP_FILE /var/log/btmp + +# +# If defined, the command name to display when running "su -". For +# example, if this is defined as "su" then a "ps" will display the +# command is "-su". If not defined, then "ps" would display the +# name of the shell actually being run, e.g. something like "-sh". +# +SU_NAME su + +# +# If defined, file which inhibits all the usual chatter during the login +# sequence. If a full pathname, then hushed mode will be enabled if the +# user's name or shell are found in the file. If not a full pathname, then +# hushed mode will be enabled if the file exists in the user's home directory. +# +HUSHLOGIN_FILE .hushlogin +#HUSHLOGIN_FILE /etc/hushlogins + +# +# *REQUIRED* The default PATH settings, for superuser and normal users. +# +# (they are minimal, add the rest in the shell startup files) +ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/games + +# +# Terminal permissions +# +# TTYGROUP Login tty will be assigned this group ownership. +# TTYPERM Login tty will be set to this permission. +# +# If you have a "write" program which is "setgid" to a special group +# which owns the terminals, define TTYGROUP to the group number and +# TTYPERM to 0620. Otherwise leave TTYGROUP commented out and assign +# TTYPERM to either 622 or 600. +# +# In Debian /usr/bin/bsd-write or similar programs are setgid tty +# However, the default and recommended value for TTYPERM is still 0600 +# to not allow anyone to write to anyone else console or terminal + +# Users can still allow other people to write them by issuing +# the "mesg y" command. + +TTYGROUP tty +TTYPERM 0600 + +# +# Login configuration initializations: +# +# ERASECHAR Terminal ERASE character ('\010' = backspace). +# KILLCHAR Terminal KILL character ('\025' = CTRL/U). +# UMASK Default "umask" value. +# +# The ERASECHAR and KILLCHAR are used only on System V machines. +# +# UMASK usage is discouraged because it catches only some classes of user +# entries to system, in fact only those made through login(1), while setting +# umask in shell rc file will catch also logins through su, cron, ssh etc. +# +# At the same time, using shell rc to set umask won't catch entries which use +# non-shell executables in place of login shell, like /usr/sbin/pppd for "ppp" +# user and alike. +# +# Therefore the use of pam_umask is recommended (Debian package libpam-umask) +# as the solution which catches all these cases on PAM-enabled systems. +# +# This avoids the confusion created by having the umask set +# in two different places -- in login.defs and shell rc files (i.e. +# /etc/profile). +# +# For discussion, see #314539 and #248150 as well as the thread starting at +# http://lists.debian.org/debian-devel/2005/06/msg01598.html +# +# Prefix these values with "0" to get octal, "0x" to get hexadecimal. +# +ERASECHAR 0177 +KILLCHAR 025 +# 022 is the "historical" value in Debian for UMASK when it was used +# 027, or even 077, could be considered better for privacy +# There is no One True Answer here : each sysadmin must make up their +# mind. +#UMASK 022 + +# +# Password aging controls: +# +# PASS_MAX_DAYS Maximum number of days a password may be used. +# PASS_MIN_DAYS Minimum number of days allowed between password changes. +# PASS_WARN_AGE Number of days warning given before a password expires. +# +PASS_MAX_DAYS 99999 +PASS_MIN_DAYS 0 +PASS_WARN_AGE 7 + +# +# Min/max values for automatic uid selection in useradd +# +UID_MIN 1000 +UID_MAX 60000 + +# +# Min/max values for automatic gid selection in groupadd +# +GID_MIN 100 +GID_MAX 60000 + +# +# Max number of login retries if password is bad. This will most likely be +# overridden by PAM, since the default pam_unix module has it's own built +# in of 3 retries. However, this is a safe fallback in case you are using +# an authentication module that does not enforce PAM_MAXTRIES. +# +LOGIN_RETRIES 5 + +# +# Max time in seconds for login +# +LOGIN_TIMEOUT 60 + +# +# Which fields may be changed by regular users using chfn - use +# any combination of letters "frwh" (full name, room number, work +# phone, home phone). If not defined, no changes are allowed. +# For backward compatibility, "yes" = "rwh" and "no" = "frwh". +# +CHFN_RESTRICT rwh + +# +# Should login be allowed if we can't cd to the home directory? +# Default is no. +# +DEFAULT_HOME yes + +# +# If defined, this command is run when removing a user. +# It should remove any at/cron/print jobs etc. owned by +# the user to be removed (passed as the first argument). +# +#USERDEL_CMD /usr/sbin/userdel_local + +# +# This enables userdel to remove user groups if no members exist. +# +# Other former uses of this variable such as setting the umask when +# user==primary group are not used in PAM environments, thus in Debian +# +USERGROUPS_ENAB yes + +# +# Instead of the real user shell, the program specified by this parameter +# will be launched, although its visible name (argv[0]) will be the shell's. +# The program may do whatever it wants (logging, additional authentification, +# banner, ...) before running the actual shell. +# +# FAKE_SHELL /bin/fakeshell + +# +# If defined, either full pathname of a file containing device names or +# a ":" delimited list of device names. Root logins will be allowed only +# upon these devices. +# +# This variable is used by login and su. +# +#CONSOLE /etc/consoles +#CONSOLE console:tty01:tty02:tty03:tty04 + +# +# List of groups to add to the user's supplementary group set +# when logging in on the console (as determined by the CONSOLE +# setting). Default is none. +# +# Use with caution - it is possible for users to gain permanent +# access to these groups, even when not logged in on the console. +# How to do it is left as an exercise for the reader... +# +# This variable is used by login and su. +# +#CONSOLE_GROUPS floppy:audio:cdrom + +# +# Only works if compiled with MD5_CRYPT defined: +# If set to "yes", new passwords will be encrypted using the MD5-based +# algorithm compatible with the one used by recent releases of FreeBSD. +# It supports passwords of unlimited length and longer salt strings. +# Set to "no" if you need to copy encrypted passwords to other systems +# which don't understand the new algorithm. Default is "no". +# +# This variable is used by chpasswd, gpasswd and newusers. +# +#MD5_CRYPT_ENAB no + +################# OBSOLETED BY PAM ############## +# # +# These options are now handled by PAM. Please # +# edit the appropriate file in /etc/pam.d/ to # +# enable the equivalents of them. +# +############### + +#MOTD_FILE +#DIALUPS_CHECK_ENAB +#LASTLOG_ENAB +#MAIL_CHECK_ENAB +#OBSCURE_CHECKS_ENAB +#PORTTIME_CHECKS_ENAB +#SU_WHEEL_ONLY +#PASS_CHANGE_TRIES +#PASS_ALWAYS_WARN +#ENVIRON_FILE +#NOLOGINS_FILE +#ISSUE_FILE +#PASS_MIN_LEN +#PASS_MAX_LEN +#ULIMIT +#ENV_HZ +#CHFN_AUTH +#CHSH_AUTH +#FAIL_DELAY + +################# OBSOLETED ####################### +# # +# These options are no more handled by shadow. # +# # +# Shadow utilities will display a warning if they # +# still appear. # +# # +################################################### + +# CLOSE_SESSIONS +# LOGIN_STRING +# NO_PASSWORD_CONSOLE +# QMAIL_DIR + + + diff --git a/tests/tests/chage/39_chage_interactive-d-1/config/etc/passwd b/tests/tests/chage/39_chage_interactive-d-1/config/etc/passwd new file mode 100644 index 00000000..5d27e129 --- /dev/null +++ b/tests/tests/chage/39_chage_interactive-d-1/config/etc/passwd @@ -0,0 +1,26 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser1:x:424242:424242::/home:/bin/bash +myuser2:x:424243:424242::/home:/bin/bash +myuser3:x:424244:424242::/home:/bin/bash +myuser4:x:424245:424242::/home:/bin/bash +myuser5:x:424246:424242::/home:/bin/bash +myuser6:x:424247:424242::/home:/bin/bash +myuser7:x:424248:424242::/home:/bin/bash diff --git a/tests/tests/chage/39_chage_interactive-d-1/config/etc/shadow b/tests/tests/chage/39_chage_interactive-d-1/config/etc/shadow new file mode 100644 index 00000000..a1afc129 --- /dev/null +++ b/tests/tests/chage/39_chage_interactive-d-1/config/etc/shadow @@ -0,0 +1,26 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser1:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.::0:99999:7:3:: +myuser2:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12992:1:99996:5::: +myuser3:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::0: +myuser4:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::1: +myuser5:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:0:: +myuser6:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: +myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: diff --git a/tests/tests/chage/39_chage_interactive-d-1/data/shadow b/tests/tests/chage/39_chage_interactive-d-1/data/shadow new file mode 100644 index 00000000..a1afc129 --- /dev/null +++ b/tests/tests/chage/39_chage_interactive-d-1/data/shadow @@ -0,0 +1,26 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser1:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.::0:99999:7:3:: +myuser2:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12992:1:99996:5::: +myuser3:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::0: +myuser4:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::1: +myuser5:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:0:: +myuser6:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: +myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: diff --git a/tests/tests/chage/39_chage_interactive-d-1/run.exp b/tests/tests/chage/39_chage_interactive-d-1/run.exp new file mode 100755 index 00000000..362436b6 --- /dev/null +++ b/tests/tests/chage/39_chage_interactive-d-1/run.exp @@ -0,0 +1,31 @@ +#!/usr/bin/expect + +set timeout 5 + +# I've not been able to put the opening bracket in the regular expressions +# If anyone knows... + +spawn /usr/bin/chage myuser1 +expect -re "Minimum Password Age .0\]: " +send "\r" +expect -re "Maximum Password Age .99999\]: " +send "\r" +expect -re "Last Password Change \[(]YYYY-MM-DD\[)] .-1\]: " +send -- "-1\r" +expect -re "Password Expiration Warning .7\]: " +send "\r" +expect -re "Password Inactive .3\]: " +send "\r" +expect -re "Account Expiration Date \[(]YYYY-MM-DD\[)] .-1\]: " +send "\r" +expect { + eof { + } default { + puts "\nFAIL" + exit 1 + } +} + +puts "\nPASS" +exit 0 + diff --git a/tests/tests/chroot/chage/01_chage--root/chage.test b/tests/tests/chroot/chage/01_chage--root/chage.test new file mode 100755 index 00000000..df9aad55 --- /dev/null +++ b/tests/tests/chroot/chage/01_chage--root/chage.test @@ -0,0 +1,52 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "chage can change user's data in a chroot" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; clean_chroot; restore_config' 0 + +change_config + +prepare_chroot + +echo -n "Change root's last day in chroot (chage --root $PWD/tmp/root -d 2012-12-12 root)..." +chage --root $PWD/tmp/root -d 2012-12-12 root +echo "OK" + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +../../../common/compare_file.pl config_chroot/etc/passwd tmp/root/etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +../../../common/compare_file.pl config_chroot/etc/group tmp/root/etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +../../../common/compare_file.pl data/shadow tmp/root/etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +../../../common/compare_file.pl config_chroot/etc/gshadow tmp/root/etc/gshadow +echo "OK" + +rm -f tmp/root/etc/.pwd.lock +rm -f tmp/root/etc/passwd- +rm -f tmp/root/etc/group- +rm -f tmp/root/etc/shadow- +rm -f tmp/root/etc/gshadow- +clean_chroot + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chroot/chage/01_chage--root/config.txt b/tests/tests/chroot/chage/01_chage--root/config.txt new file mode 100644 index 00000000..31f56359 --- /dev/null +++ b/tests/tests/chroot/chage/01_chage--root/config.txt @@ -0,0 +1,10 @@ +# no testsuite password +# root password: rootF00barbaz +# myuser password: myuserF00barbaz + +user foo, in group users (only in /etc/group) +user foo, in group tty (only in /etc/gshadow) +user foo, in group floppy +user foo, admin of group disk +user foo, admin and member of group fax +user foo, admin and member of group cdrom (only in /etc/gshadow) diff --git a/tests/tests/chroot/chage/01_chage--root/config/etc/default/useradd b/tests/tests/chroot/chage/01_chage--root/config/etc/default/useradd new file mode 100644 index 00000000..31c44abe --- /dev/null +++ b/tests/tests/chroot/chage/01_chage--root/config/etc/default/useradd @@ -0,0 +1,36 @@ +# Default values for useradd(8) +# +# The SHELL variable specifies the default login shell on your +# system. +# Similar to DHSELL in adduser. However, we use "sh" here because +# useradd is a low level utility and should be as general +# as possible +SHELL=/bin/foobar +# +# The default group for users +# 100=users on Debian systems +# Same as USERS_GID in adduser +# This argument is used when the -n flag is specified. +# The default behavior (when -n and -g are not specified) is to create a +# primary user group with the same name as the user being added to the +# system. +GROUP=10 +# +# The default home directory. Same as DHOME for adduser +HOME=/tmp +# +# The number of days after a password expires until the account +# is permanently disabled +INACTIVE=12 +# +# The default expire date +EXPIRE=2007-12-02 +# +# The SKEL variable specifies the directory containing "skeletal" user +# files; in other words, files such as a sample .profile that will be +# copied to the new user's home directory when it is created. +# SKEL=/etc/skel +# +# Defines whether the mail spool should be created while +# creating the account +# CREATE_MAIL_SPOOL=yes diff --git a/tests/tests/chroot/chage/01_chage--root/config/etc/group b/tests/tests/chroot/chage/01_chage--root/config/etc/group new file mode 100644 index 00000000..10123908 --- /dev/null +++ b/tests/tests/chroot/chage/01_chage--root/config/etc/group @@ -0,0 +1,41 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: diff --git a/tests/tests/chroot/chage/01_chage--root/config/etc/gshadow b/tests/tests/chroot/chage/01_chage--root/config/etc/gshadow new file mode 100644 index 00000000..ae424865 --- /dev/null +++ b/tests/tests/chroot/chage/01_chage--root/config/etc/gshadow @@ -0,0 +1,41 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: diff --git a/tests/tests/chroot/chage/01_chage--root/config/etc/passwd b/tests/tests/chroot/chage/01_chage--root/config/etc/passwd new file mode 100644 index 00000000..43fc135a --- /dev/null +++ b/tests/tests/chroot/chage/01_chage--root/config/etc/passwd @@ -0,0 +1,19 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false diff --git a/tests/tests/chroot/chage/01_chage--root/config/etc/shadow b/tests/tests/chroot/chage/01_chage--root/config/etc/shadow new file mode 100644 index 00000000..5f50d187 --- /dev/null +++ b/tests/tests/chroot/chage/01_chage--root/config/etc/shadow @@ -0,0 +1,19 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: diff --git a/tests/tests/chroot/chage/01_chage--root/config_chroot/etc/group b/tests/tests/chroot/chage/01_chage--root/config_chroot/etc/group new file mode 100644 index 00000000..245cc9cf --- /dev/null +++ b/tests/tests/chroot/chage/01_chage--root/config_chroot/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: diff --git a/tests/tests/chroot/chage/01_chage--root/config_chroot/etc/gshadow b/tests/tests/chroot/chage/01_chage--root/config_chroot/etc/gshadow new file mode 100644 index 00000000..25bd55bd --- /dev/null +++ b/tests/tests/chroot/chage/01_chage--root/config_chroot/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: diff --git a/tests/tests/chroot/chage/01_chage--root/config_chroot/etc/login.defs b/tests/tests/chroot/chage/01_chage--root/config_chroot/etc/login.defs new file mode 100644 index 00000000..3b216aa1 --- /dev/null +++ b/tests/tests/chroot/chage/01_chage--root/config_chroot/etc/login.defs @@ -0,0 +1,334 @@ +# +# /etc/login.defs - Configuration control definitions for the login package. +# +# Three items must be defined: MAIL_DIR, ENV_SUPATH, and ENV_PATH. +# If unspecified, some arbitrary (and possibly incorrect) value will +# be assumed. All other items are optional - if not specified then +# the described action or option will be inhibited. +# +# Comment lines (lines beginning with "#") and blank lines are ignored. +# +# Modified for Linux. --marekm + +# REQUIRED for useradd/userdel/usermod +# Directory where mailboxes reside, _or_ name of file, relative to the +# home directory. If you _do_ define MAIL_DIR and MAIL_FILE, +# MAIL_DIR takes precedence. +# +# Essentially: +# - MAIL_DIR defines the location of users mail spool files +# (for mbox use) by appending the username to MAIL_DIR as defined +# below. +# - MAIL_FILE defines the location of the users mail spool files as the +# fully-qualified filename obtained by prepending the user home +# directory before $MAIL_FILE +# +# NOTE: This is no more used for setting up users MAIL environment variable +# which is, starting from shadow 4.0.12-1 in Debian, entirely the +# job of the pam_mail PAM modules +# See default PAM configuration files provided for +# login, su, etc. +# +# This is a temporary situation: setting these variables will soon +# move to /etc/default/useradd and the variables will then be +# no more supported +MAIL_DIR /var/mail +#MAIL_FILE .mail + +# +# Enable logging and display of /var/log/faillog login failure info. +# This option conflicts with the pam_tally PAM module. +# +FAILLOG_ENAB yes + +# +# Enable display of unknown usernames when login failures are recorded. +# +# WARNING: Unknown usernames may become world readable. +# See #290803 and #298773 for details about how this could become a security +# concern +LOG_UNKFAIL_ENAB no + +# +# Enable logging of successful logins +# +LOG_OK_LOGINS no + +# +# Enable "syslog" logging of su activity - in addition to sulog file logging. +# SYSLOG_SG_ENAB does the same for newgrp and sg. +# +SYSLOG_SU_ENAB yes +SYSLOG_SG_ENAB yes + +# +# If defined, all su activity is logged to this file. +# +#SULOG_FILE /var/log/sulog + +# +# If defined, file which maps tty line to TERM environment parameter. +# Each line of the file is in a format something like "vt100 tty01". +# +#TTYTYPE_FILE /etc/ttytype + +# +# If defined, login failures will be logged here in a utmp format +# last, when invoked as lastb, will read /var/log/btmp, so... +# +FTMP_FILE /var/log/btmp + +# +# If defined, the command name to display when running "su -". For +# example, if this is defined as "su" then a "ps" will display the +# command is "-su". If not defined, then "ps" would display the +# name of the shell actually being run, e.g. something like "-sh". +# +SU_NAME su + +# +# If defined, file which inhibits all the usual chatter during the login +# sequence. If a full pathname, then hushed mode will be enabled if the +# user's name or shell are found in the file. If not a full pathname, then +# hushed mode will be enabled if the file exists in the user's home directory. +# +HUSHLOGIN_FILE .hushlogin +#HUSHLOGIN_FILE /etc/hushlogins + +# +# *REQUIRED* The default PATH settings, for superuser and normal users. +# +# (they are minimal, add the rest in the shell startup files) +ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games + +# +# Terminal permissions +# +# TTYGROUP Login tty will be assigned this group ownership. +# TTYPERM Login tty will be set to this permission. +# +# If you have a "write" program which is "setgid" to a special group +# which owns the terminals, define TTYGROUP to the group number and +# TTYPERM to 0620. Otherwise leave TTYGROUP commented out and assign +# TTYPERM to either 622 or 600. +# +# In Debian /usr/bin/bsd-write or similar programs are setgid tty +# However, the default and recommended value for TTYPERM is still 0600 +# to not allow anyone to write to anyone else console or terminal + +# Users can still allow other people to write them by issuing +# the "mesg y" command. + +TTYGROUP tty +TTYPERM 0600 + +# +# Login configuration initializations: +# +# ERASECHAR Terminal ERASE character ('\010' = backspace). +# KILLCHAR Terminal KILL character ('\025' = CTRL/U). +# UMASK Default "umask" value. +# +# The ERASECHAR and KILLCHAR are used only on System V machines. +# +# UMASK is the default umask value for pam_umask and is used by +# useradd and newusers to set the mode of the new home directories. +# 022 is the "historical" value in Debian for UMASK +# 027, or even 077, could be considered better for privacy +# There is no One True Answer here : each sysadmin must make up their +# mind. +# +# Prefix these values with "0" to get octal, "0x" to get hexadecimal. +# +ERASECHAR 0177 +KILLCHAR 025 +UMASK 022 + +# +# Password aging controls: +# +# PASS_MAX_DAYS Maximum number of days a password may be used. +# PASS_MIN_DAYS Minimum number of days allowed between password changes. +# PASS_WARN_AGE Number of days warning given before a password expires. +# +PASS_MAX_DAYS 99999 +PASS_MIN_DAYS 0 +PASS_WARN_AGE 7 + +# +# Min/max values for automatic uid selection in useradd +# +UID_MIN 1000 +UID_MAX 60000 +# System accounts +#SYS_UID_MIN 100 +#SYS_UID_MAX 999 + +# +# Min/max values for automatic gid selection in groupadd +# +GID_MIN 1000 +GID_MAX 60000 +# System accounts +#SYS_GID_MIN 100 +#SYS_GID_MAX 999 + +# +# Max number of login retries if password is bad. This will most likely be +# overridden by PAM, since the default pam_unix module has it's own built +# in of 3 retries. However, this is a safe fallback in case you are using +# an authentication module that does not enforce PAM_MAXTRIES. +# +LOGIN_RETRIES 5 + +# +# Max time in seconds for login +# +LOGIN_TIMEOUT 60 + +# +# Which fields may be changed by regular users using chfn - use +# any combination of letters "frwh" (full name, room number, work +# phone, home phone). If not defined, no changes are allowed. +# For backward compatibility, "yes" = "rwh" and "no" = "frwh". +# +CHFN_RESTRICT rwh + +# +# Should login be allowed if we can't cd to the home directory? +# Default is no. +# +DEFAULT_HOME yes + +# +# If defined, this command is run when removing a user. +# It should remove any at/cron/print jobs etc. owned by +# the user to be removed (passed as the first argument). +# +#USERDEL_CMD /usr/sbin/userdel_local + +# +# If set to yes, userdel will remove the user's group if it contains no +# more members, and useradd will create by default a group with the name +# of the user. +# +# Other former uses of this variable such as setting the umask when +# user==primary group are not used in PAM environments, such as Debian +# +USERGROUPS_ENAB yes + +# +# Instead of the real user shell, the program specified by this parameter +# will be launched, although its visible name (argv[0]) will be the shell's. +# The program may do whatever it wants (logging, additional authentification, +# banner, ...) before running the actual shell. +# +# FAKE_SHELL /bin/fakeshell + +# +# If defined, either full pathname of a file containing device names or +# a ":" delimited list of device names. Root logins will be allowed only +# upon these devices. +# +# This variable is used by login and su. +# +#CONSOLE /etc/consoles +#CONSOLE console:tty01:tty02:tty03:tty04 + +# +# List of groups to add to the user's supplementary group set +# when logging in on the console (as determined by the CONSOLE +# setting). Default is none. +# +# Use with caution - it is possible for users to gain permanent +# access to these groups, even when not logged in on the console. +# How to do it is left as an exercise for the reader... +# +# This variable is used by login and su. +# +#CONSOLE_GROUPS floppy:audio:cdrom + +# +# If set to "yes", new passwords will be encrypted using the MD5-based +# algorithm compatible with the one used by recent releases of FreeBSD. +# It supports passwords of unlimited length and longer salt strings. +# Set to "no" if you need to copy encrypted passwords to other systems +# which don't understand the new algorithm. Default is "no". +# +# This variable is deprecated. You should use ENCRYPT_METHOD. +# +#MD5_CRYPT_ENAB no + +# +# If set to MD5 , MD5-based algorithm will be used for encrypting password +# If set to SHA256, SHA256-based algorithm will be used for encrypting password +# If set to SHA512, SHA512-based algorithm will be used for encrypting password +# If set to DES, DES-based algorithm will be used for encrypting password (default) +# Overrides the MD5_CRYPT_ENAB option +# +# Note: It is recommended to use a value consistent with +# the PAM modules configuration. +# +#ENCRYPT_METHOD DES + +# +# Only used if ENCRYPT_METHOD is set to SHA256 or SHA512. +# +# Define the number of SHA rounds. +# With a lot of rounds, it is more difficult to brute forcing the password. +# But note also that it more CPU resources will be needed to authenticate +# users. +# +# If not specified, the libc will choose the default number of rounds (5000). +# The values must be inside the 1000-999999999 range. +# If only one of the MIN or MAX values is set, then this value will be used. +# If MIN > MAX, the highest value will be used. +# +# SHA_CRYPT_MIN_ROUNDS 5000 +# SHA_CRYPT_MAX_ROUNDS 5000 + +################# OBSOLETED BY PAM ############## +# # +# These options are now handled by PAM. Please # +# edit the appropriate file in /etc/pam.d/ to # +# enable the equivalents of them. +# +############### + +#MOTD_FILE +#DIALUPS_CHECK_ENAB +#LASTLOG_ENAB +#MAIL_CHECK_ENAB +#OBSCURE_CHECKS_ENAB +#PORTTIME_CHECKS_ENAB +#SU_WHEEL_ONLY +#PASS_CHANGE_TRIES +#PASS_ALWAYS_WARN +#ENVIRON_FILE +#NOLOGINS_FILE +#ISSUE_FILE +#PASS_MIN_LEN +#PASS_MAX_LEN +#ULIMIT +#ENV_HZ +#CHFN_AUTH +#CHSH_AUTH +#FAIL_DELAY + +################# OBSOLETED ####################### +# # +# These options are no more handled by shadow. # +# # +# Shadow utilities will display a warning if they # +# still appear. # +# # +################################################### + +# CLOSE_SESSIONS +# LOGIN_STRING +# NO_PASSWORD_CONSOLE +# QMAIL_DIR + + + diff --git a/tests/tests/chroot/chage/01_chage--root/config_chroot/etc/passwd b/tests/tests/chroot/chage/01_chage--root/config_chroot/etc/passwd new file mode 100644 index 00000000..9bdeb8ce --- /dev/null +++ b/tests/tests/chroot/chage/01_chage--root/config_chroot/etc/passwd @@ -0,0 +1,21 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser:x:424242:424242::/home/:/bin/sh +testsuite::424243:424243::/home:/bin/bash diff --git a/tests/tests/chroot/chage/01_chage--root/config_chroot/etc/shadow b/tests/tests/chroot/chage/01_chage--root/config_chroot/etc/shadow new file mode 100644 index 00000000..038d5cf4 --- /dev/null +++ b/tests/tests/chroot/chage/01_chage--root/config_chroot/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: diff --git a/tests/tests/chroot/chage/01_chage--root/data/shadow b/tests/tests/chroot/chage/01_chage--root/data/shadow new file mode 100644 index 00000000..c9e698bc --- /dev/null +++ b/tests/tests/chroot/chage/01_chage--root/data/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:15686:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: diff --git a/tests/tests/chroot/chgpasswd/01_chgpasswd--root/chgpasswd.test b/tests/tests/chroot/chgpasswd/01_chgpasswd--root/chgpasswd.test new file mode 100755 index 00000000..afbdb4bb --- /dev/null +++ b/tests/tests/chroot/chgpasswd/01_chgpasswd--root/chgpasswd.test @@ -0,0 +1,50 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "chgpasswd can change a group in a chroot" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; clean_chroot; restore_config' 0 + +change_config + +prepare_chroot + +echo -n "Change nobody and lp's password in chroot..." +echo 'nogroup:test +lp:test2' | chgpasswd --root $PWD/tmp/root -c SHA256 +echo "OK" + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +../../../common/compare_file.pl config_chroot/etc/passwd tmp/root/etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +../../../common/compare_file.pl config_chroot/etc/group tmp/root/etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +../../../common/compare_file.pl config_chroot/etc/shadow tmp/root/etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +../../../common/compare_file.pl data/gshadow tmp/root/etc/gshadow +echo "OK" + +rm -f tmp/root/etc/.pwd.lock +rm -f tmp/root/etc/gshadow- +clean_chroot + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chroot/chgpasswd/01_chgpasswd--root/config.txt b/tests/tests/chroot/chgpasswd/01_chgpasswd--root/config.txt new file mode 100644 index 00000000..31f56359 --- /dev/null +++ b/tests/tests/chroot/chgpasswd/01_chgpasswd--root/config.txt @@ -0,0 +1,10 @@ +# no testsuite password +# root password: rootF00barbaz +# myuser password: myuserF00barbaz + +user foo, in group users (only in /etc/group) +user foo, in group tty (only in /etc/gshadow) +user foo, in group floppy +user foo, admin of group disk +user foo, admin and member of group fax +user foo, admin and member of group cdrom (only in /etc/gshadow) diff --git a/tests/tests/chroot/chgpasswd/01_chgpasswd--root/config/etc/default/useradd b/tests/tests/chroot/chgpasswd/01_chgpasswd--root/config/etc/default/useradd new file mode 100644 index 00000000..31c44abe --- /dev/null +++ b/tests/tests/chroot/chgpasswd/01_chgpasswd--root/config/etc/default/useradd @@ -0,0 +1,36 @@ +# Default values for useradd(8) +# +# The SHELL variable specifies the default login shell on your +# system. +# Similar to DHSELL in adduser. However, we use "sh" here because +# useradd is a low level utility and should be as general +# as possible +SHELL=/bin/foobar +# +# The default group for users +# 100=users on Debian systems +# Same as USERS_GID in adduser +# This argument is used when the -n flag is specified. +# The default behavior (when -n and -g are not specified) is to create a +# primary user group with the same name as the user being added to the +# system. +GROUP=10 +# +# The default home directory. Same as DHOME for adduser +HOME=/tmp +# +# The number of days after a password expires until the account +# is permanently disabled +INACTIVE=12 +# +# The default expire date +EXPIRE=2007-12-02 +# +# The SKEL variable specifies the directory containing "skeletal" user +# files; in other words, files such as a sample .profile that will be +# copied to the new user's home directory when it is created. +# SKEL=/etc/skel +# +# Defines whether the mail spool should be created while +# creating the account +# CREATE_MAIL_SPOOL=yes diff --git a/tests/tests/chroot/chgpasswd/01_chgpasswd--root/config/etc/group b/tests/tests/chroot/chgpasswd/01_chgpasswd--root/config/etc/group new file mode 100644 index 00000000..10123908 --- /dev/null +++ b/tests/tests/chroot/chgpasswd/01_chgpasswd--root/config/etc/group @@ -0,0 +1,41 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: diff --git a/tests/tests/chroot/chgpasswd/01_chgpasswd--root/config/etc/gshadow b/tests/tests/chroot/chgpasswd/01_chgpasswd--root/config/etc/gshadow new file mode 100644 index 00000000..ae424865 --- /dev/null +++ b/tests/tests/chroot/chgpasswd/01_chgpasswd--root/config/etc/gshadow @@ -0,0 +1,41 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: diff --git a/tests/tests/chroot/chgpasswd/01_chgpasswd--root/config/etc/passwd b/tests/tests/chroot/chgpasswd/01_chgpasswd--root/config/etc/passwd new file mode 100644 index 00000000..43fc135a --- /dev/null +++ b/tests/tests/chroot/chgpasswd/01_chgpasswd--root/config/etc/passwd @@ -0,0 +1,19 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false diff --git a/tests/tests/chroot/chgpasswd/01_chgpasswd--root/config/etc/shadow b/tests/tests/chroot/chgpasswd/01_chgpasswd--root/config/etc/shadow new file mode 100644 index 00000000..5f50d187 --- /dev/null +++ b/tests/tests/chroot/chgpasswd/01_chgpasswd--root/config/etc/shadow @@ -0,0 +1,19 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: diff --git a/tests/tests/chroot/chgpasswd/01_chgpasswd--root/config_chroot/etc/group b/tests/tests/chroot/chgpasswd/01_chgpasswd--root/config_chroot/etc/group new file mode 100644 index 00000000..d2a4b10a --- /dev/null +++ b/tests/tests/chroot/chgpasswd/01_chgpasswd--root/config_chroot/etc/group @@ -0,0 +1,42 @@ +staff:x:50: +root:x:0: +tty:x:5: +daemon:x:1: +bin:x:2: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +sys:x:3: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +adm:x:4: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: +disk:x:6: diff --git a/tests/tests/chroot/chgpasswd/01_chgpasswd--root/config_chroot/etc/gshadow b/tests/tests/chroot/chgpasswd/01_chgpasswd--root/config_chroot/etc/gshadow new file mode 100644 index 00000000..25bd55bd --- /dev/null +++ b/tests/tests/chroot/chgpasswd/01_chgpasswd--root/config_chroot/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: diff --git a/tests/tests/chroot/chgpasswd/01_chgpasswd--root/config_chroot/etc/login.defs b/tests/tests/chroot/chgpasswd/01_chgpasswd--root/config_chroot/etc/login.defs new file mode 100644 index 00000000..3b216aa1 --- /dev/null +++ b/tests/tests/chroot/chgpasswd/01_chgpasswd--root/config_chroot/etc/login.defs @@ -0,0 +1,334 @@ +# +# /etc/login.defs - Configuration control definitions for the login package. +# +# Three items must be defined: MAIL_DIR, ENV_SUPATH, and ENV_PATH. +# If unspecified, some arbitrary (and possibly incorrect) value will +# be assumed. All other items are optional - if not specified then +# the described action or option will be inhibited. +# +# Comment lines (lines beginning with "#") and blank lines are ignored. +# +# Modified for Linux. --marekm + +# REQUIRED for useradd/userdel/usermod +# Directory where mailboxes reside, _or_ name of file, relative to the +# home directory. If you _do_ define MAIL_DIR and MAIL_FILE, +# MAIL_DIR takes precedence. +# +# Essentially: +# - MAIL_DIR defines the location of users mail spool files +# (for mbox use) by appending the username to MAIL_DIR as defined +# below. +# - MAIL_FILE defines the location of the users mail spool files as the +# fully-qualified filename obtained by prepending the user home +# directory before $MAIL_FILE +# +# NOTE: This is no more used for setting up users MAIL environment variable +# which is, starting from shadow 4.0.12-1 in Debian, entirely the +# job of the pam_mail PAM modules +# See default PAM configuration files provided for +# login, su, etc. +# +# This is a temporary situation: setting these variables will soon +# move to /etc/default/useradd and the variables will then be +# no more supported +MAIL_DIR /var/mail +#MAIL_FILE .mail + +# +# Enable logging and display of /var/log/faillog login failure info. +# This option conflicts with the pam_tally PAM module. +# +FAILLOG_ENAB yes + +# +# Enable display of unknown usernames when login failures are recorded. +# +# WARNING: Unknown usernames may become world readable. +# See #290803 and #298773 for details about how this could become a security +# concern +LOG_UNKFAIL_ENAB no + +# +# Enable logging of successful logins +# +LOG_OK_LOGINS no + +# +# Enable "syslog" logging of su activity - in addition to sulog file logging. +# SYSLOG_SG_ENAB does the same for newgrp and sg. +# +SYSLOG_SU_ENAB yes +SYSLOG_SG_ENAB yes + +# +# If defined, all su activity is logged to this file. +# +#SULOG_FILE /var/log/sulog + +# +# If defined, file which maps tty line to TERM environment parameter. +# Each line of the file is in a format something like "vt100 tty01". +# +#TTYTYPE_FILE /etc/ttytype + +# +# If defined, login failures will be logged here in a utmp format +# last, when invoked as lastb, will read /var/log/btmp, so... +# +FTMP_FILE /var/log/btmp + +# +# If defined, the command name to display when running "su -". For +# example, if this is defined as "su" then a "ps" will display the +# command is "-su". If not defined, then "ps" would display the +# name of the shell actually being run, e.g. something like "-sh". +# +SU_NAME su + +# +# If defined, file which inhibits all the usual chatter during the login +# sequence. If a full pathname, then hushed mode will be enabled if the +# user's name or shell are found in the file. If not a full pathname, then +# hushed mode will be enabled if the file exists in the user's home directory. +# +HUSHLOGIN_FILE .hushlogin +#HUSHLOGIN_FILE /etc/hushlogins + +# +# *REQUIRED* The default PATH settings, for superuser and normal users. +# +# (they are minimal, add the rest in the shell startup files) +ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games + +# +# Terminal permissions +# +# TTYGROUP Login tty will be assigned this group ownership. +# TTYPERM Login tty will be set to this permission. +# +# If you have a "write" program which is "setgid" to a special group +# which owns the terminals, define TTYGROUP to the group number and +# TTYPERM to 0620. Otherwise leave TTYGROUP commented out and assign +# TTYPERM to either 622 or 600. +# +# In Debian /usr/bin/bsd-write or similar programs are setgid tty +# However, the default and recommended value for TTYPERM is still 0600 +# to not allow anyone to write to anyone else console or terminal + +# Users can still allow other people to write them by issuing +# the "mesg y" command. + +TTYGROUP tty +TTYPERM 0600 + +# +# Login configuration initializations: +# +# ERASECHAR Terminal ERASE character ('\010' = backspace). +# KILLCHAR Terminal KILL character ('\025' = CTRL/U). +# UMASK Default "umask" value. +# +# The ERASECHAR and KILLCHAR are used only on System V machines. +# +# UMASK is the default umask value for pam_umask and is used by +# useradd and newusers to set the mode of the new home directories. +# 022 is the "historical" value in Debian for UMASK +# 027, or even 077, could be considered better for privacy +# There is no One True Answer here : each sysadmin must make up their +# mind. +# +# Prefix these values with "0" to get octal, "0x" to get hexadecimal. +# +ERASECHAR 0177 +KILLCHAR 025 +UMASK 022 + +# +# Password aging controls: +# +# PASS_MAX_DAYS Maximum number of days a password may be used. +# PASS_MIN_DAYS Minimum number of days allowed between password changes. +# PASS_WARN_AGE Number of days warning given before a password expires. +# +PASS_MAX_DAYS 99999 +PASS_MIN_DAYS 0 +PASS_WARN_AGE 7 + +# +# Min/max values for automatic uid selection in useradd +# +UID_MIN 1000 +UID_MAX 60000 +# System accounts +#SYS_UID_MIN 100 +#SYS_UID_MAX 999 + +# +# Min/max values for automatic gid selection in groupadd +# +GID_MIN 1000 +GID_MAX 60000 +# System accounts +#SYS_GID_MIN 100 +#SYS_GID_MAX 999 + +# +# Max number of login retries if password is bad. This will most likely be +# overridden by PAM, since the default pam_unix module has it's own built +# in of 3 retries. However, this is a safe fallback in case you are using +# an authentication module that does not enforce PAM_MAXTRIES. +# +LOGIN_RETRIES 5 + +# +# Max time in seconds for login +# +LOGIN_TIMEOUT 60 + +# +# Which fields may be changed by regular users using chfn - use +# any combination of letters "frwh" (full name, room number, work +# phone, home phone). If not defined, no changes are allowed. +# For backward compatibility, "yes" = "rwh" and "no" = "frwh". +# +CHFN_RESTRICT rwh + +# +# Should login be allowed if we can't cd to the home directory? +# Default is no. +# +DEFAULT_HOME yes + +# +# If defined, this command is run when removing a user. +# It should remove any at/cron/print jobs etc. owned by +# the user to be removed (passed as the first argument). +# +#USERDEL_CMD /usr/sbin/userdel_local + +# +# If set to yes, userdel will remove the user's group if it contains no +# more members, and useradd will create by default a group with the name +# of the user. +# +# Other former uses of this variable such as setting the umask when +# user==primary group are not used in PAM environments, such as Debian +# +USERGROUPS_ENAB yes + +# +# Instead of the real user shell, the program specified by this parameter +# will be launched, although its visible name (argv[0]) will be the shell's. +# The program may do whatever it wants (logging, additional authentification, +# banner, ...) before running the actual shell. +# +# FAKE_SHELL /bin/fakeshell + +# +# If defined, either full pathname of a file containing device names or +# a ":" delimited list of device names. Root logins will be allowed only +# upon these devices. +# +# This variable is used by login and su. +# +#CONSOLE /etc/consoles +#CONSOLE console:tty01:tty02:tty03:tty04 + +# +# List of groups to add to the user's supplementary group set +# when logging in on the console (as determined by the CONSOLE +# setting). Default is none. +# +# Use with caution - it is possible for users to gain permanent +# access to these groups, even when not logged in on the console. +# How to do it is left as an exercise for the reader... +# +# This variable is used by login and su. +# +#CONSOLE_GROUPS floppy:audio:cdrom + +# +# If set to "yes", new passwords will be encrypted using the MD5-based +# algorithm compatible with the one used by recent releases of FreeBSD. +# It supports passwords of unlimited length and longer salt strings. +# Set to "no" if you need to copy encrypted passwords to other systems +# which don't understand the new algorithm. Default is "no". +# +# This variable is deprecated. You should use ENCRYPT_METHOD. +# +#MD5_CRYPT_ENAB no + +# +# If set to MD5 , MD5-based algorithm will be used for encrypting password +# If set to SHA256, SHA256-based algorithm will be used for encrypting password +# If set to SHA512, SHA512-based algorithm will be used for encrypting password +# If set to DES, DES-based algorithm will be used for encrypting password (default) +# Overrides the MD5_CRYPT_ENAB option +# +# Note: It is recommended to use a value consistent with +# the PAM modules configuration. +# +#ENCRYPT_METHOD DES + +# +# Only used if ENCRYPT_METHOD is set to SHA256 or SHA512. +# +# Define the number of SHA rounds. +# With a lot of rounds, it is more difficult to brute forcing the password. +# But note also that it more CPU resources will be needed to authenticate +# users. +# +# If not specified, the libc will choose the default number of rounds (5000). +# The values must be inside the 1000-999999999 range. +# If only one of the MIN or MAX values is set, then this value will be used. +# If MIN > MAX, the highest value will be used. +# +# SHA_CRYPT_MIN_ROUNDS 5000 +# SHA_CRYPT_MAX_ROUNDS 5000 + +################# OBSOLETED BY PAM ############## +# # +# These options are now handled by PAM. Please # +# edit the appropriate file in /etc/pam.d/ to # +# enable the equivalents of them. +# +############### + +#MOTD_FILE +#DIALUPS_CHECK_ENAB +#LASTLOG_ENAB +#MAIL_CHECK_ENAB +#OBSCURE_CHECKS_ENAB +#PORTTIME_CHECKS_ENAB +#SU_WHEEL_ONLY +#PASS_CHANGE_TRIES +#PASS_ALWAYS_WARN +#ENVIRON_FILE +#NOLOGINS_FILE +#ISSUE_FILE +#PASS_MIN_LEN +#PASS_MAX_LEN +#ULIMIT +#ENV_HZ +#CHFN_AUTH +#CHSH_AUTH +#FAIL_DELAY + +################# OBSOLETED ####################### +# # +# These options are no more handled by shadow. # +# # +# Shadow utilities will display a warning if they # +# still appear. # +# # +################################################### + +# CLOSE_SESSIONS +# LOGIN_STRING +# NO_PASSWORD_CONSOLE +# QMAIL_DIR + + + diff --git a/tests/tests/chroot/chgpasswd/01_chgpasswd--root/config_chroot/etc/passwd b/tests/tests/chroot/chgpasswd/01_chgpasswd--root/config_chroot/etc/passwd new file mode 100644 index 00000000..9bdeb8ce --- /dev/null +++ b/tests/tests/chroot/chgpasswd/01_chgpasswd--root/config_chroot/etc/passwd @@ -0,0 +1,21 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser:x:424242:424242::/home/:/bin/sh +testsuite::424243:424243::/home:/bin/bash diff --git a/tests/tests/chroot/chgpasswd/01_chgpasswd--root/config_chroot/etc/shadow b/tests/tests/chroot/chgpasswd/01_chgpasswd--root/config_chroot/etc/shadow new file mode 100644 index 00000000..038d5cf4 --- /dev/null +++ b/tests/tests/chroot/chgpasswd/01_chgpasswd--root/config_chroot/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: diff --git a/tests/tests/chroot/chgpasswd/01_chgpasswd--root/data/gshadow b/tests/tests/chroot/chgpasswd/01_chgpasswd--root/data/gshadow new file mode 100644 index 00000000..2ea5fcad --- /dev/null +++ b/tests/tests/chroot/chgpasswd/01_chgpasswd--root/data/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:@PASS_SHA256 test2@:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:@PASS_SHA256 test@:: +crontab:x:: +Debian-exim:x:: +myuser:x:: diff --git a/tests/tests/chroot/chpasswd/01_chpasswd--root_nopam/chpasswd.test b/tests/tests/chroot/chpasswd/01_chpasswd--root_nopam/chpasswd.test new file mode 100755 index 00000000..17282f90 --- /dev/null +++ b/tests/tests/chroot/chpasswd/01_chpasswd--root_nopam/chpasswd.test @@ -0,0 +1,50 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "chpasswd can change a group in a chroot" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; clean_chroot; restore_config' 0 + +change_config + +prepare_chroot + +echo -n "Change nobody and lp's password in chroot..." +echo 'nobody:test +lp:test2' | chpasswd --root $PWD/tmp/root -c SHA256 +echo "OK" + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +../../../common/compare_file.pl config_chroot/etc/passwd tmp/root/etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +../../../common/compare_file.pl config_chroot/etc/group tmp/root/etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +../../../common/compare_file.pl data/shadow tmp/root/etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +../../../common/compare_file.pl config_chroot/etc/gshadow tmp/root/etc/gshadow +echo "OK" + +rm -f tmp/root/etc/.pwd.lock +rm -f tmp/root/etc/shadow- +clean_chroot + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chroot/chpasswd/01_chpasswd--root_nopam/config.txt b/tests/tests/chroot/chpasswd/01_chpasswd--root_nopam/config.txt new file mode 100644 index 00000000..31f56359 --- /dev/null +++ b/tests/tests/chroot/chpasswd/01_chpasswd--root_nopam/config.txt @@ -0,0 +1,10 @@ +# no testsuite password +# root password: rootF00barbaz +# myuser password: myuserF00barbaz + +user foo, in group users (only in /etc/group) +user foo, in group tty (only in /etc/gshadow) +user foo, in group floppy +user foo, admin of group disk +user foo, admin and member of group fax +user foo, admin and member of group cdrom (only in /etc/gshadow) diff --git a/tests/tests/chroot/chpasswd/01_chpasswd--root_nopam/config/etc/default/useradd b/tests/tests/chroot/chpasswd/01_chpasswd--root_nopam/config/etc/default/useradd new file mode 100644 index 00000000..31c44abe --- /dev/null +++ b/tests/tests/chroot/chpasswd/01_chpasswd--root_nopam/config/etc/default/useradd @@ -0,0 +1,36 @@ +# Default values for useradd(8) +# +# The SHELL variable specifies the default login shell on your +# system. +# Similar to DHSELL in adduser. However, we use "sh" here because +# useradd is a low level utility and should be as general +# as possible +SHELL=/bin/foobar +# +# The default group for users +# 100=users on Debian systems +# Same as USERS_GID in adduser +# This argument is used when the -n flag is specified. +# The default behavior (when -n and -g are not specified) is to create a +# primary user group with the same name as the user being added to the +# system. +GROUP=10 +# +# The default home directory. Same as DHOME for adduser +HOME=/tmp +# +# The number of days after a password expires until the account +# is permanently disabled +INACTIVE=12 +# +# The default expire date +EXPIRE=2007-12-02 +# +# The SKEL variable specifies the directory containing "skeletal" user +# files; in other words, files such as a sample .profile that will be +# copied to the new user's home directory when it is created. +# SKEL=/etc/skel +# +# Defines whether the mail spool should be created while +# creating the account +# CREATE_MAIL_SPOOL=yes diff --git a/tests/tests/chroot/chpasswd/01_chpasswd--root_nopam/config/etc/group b/tests/tests/chroot/chpasswd/01_chpasswd--root_nopam/config/etc/group new file mode 100644 index 00000000..10123908 --- /dev/null +++ b/tests/tests/chroot/chpasswd/01_chpasswd--root_nopam/config/etc/group @@ -0,0 +1,41 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: diff --git a/tests/tests/chroot/chpasswd/01_chpasswd--root_nopam/config/etc/gshadow b/tests/tests/chroot/chpasswd/01_chpasswd--root_nopam/config/etc/gshadow new file mode 100644 index 00000000..ae424865 --- /dev/null +++ b/tests/tests/chroot/chpasswd/01_chpasswd--root_nopam/config/etc/gshadow @@ -0,0 +1,41 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: diff --git a/tests/tests/chroot/chpasswd/01_chpasswd--root_nopam/config/etc/passwd b/tests/tests/chroot/chpasswd/01_chpasswd--root_nopam/config/etc/passwd new file mode 100644 index 00000000..43fc135a --- /dev/null +++ b/tests/tests/chroot/chpasswd/01_chpasswd--root_nopam/config/etc/passwd @@ -0,0 +1,19 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false diff --git a/tests/tests/chroot/chpasswd/01_chpasswd--root_nopam/config/etc/shadow b/tests/tests/chroot/chpasswd/01_chpasswd--root_nopam/config/etc/shadow new file mode 100644 index 00000000..5f50d187 --- /dev/null +++ b/tests/tests/chroot/chpasswd/01_chpasswd--root_nopam/config/etc/shadow @@ -0,0 +1,19 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: diff --git a/tests/tests/chroot/chpasswd/01_chpasswd--root_nopam/config_chroot/etc/group b/tests/tests/chroot/chpasswd/01_chpasswd--root_nopam/config_chroot/etc/group new file mode 100644 index 00000000..d2a4b10a --- /dev/null +++ b/tests/tests/chroot/chpasswd/01_chpasswd--root_nopam/config_chroot/etc/group @@ -0,0 +1,42 @@ +staff:x:50: +root:x:0: +tty:x:5: +daemon:x:1: +bin:x:2: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +sys:x:3: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +adm:x:4: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: +disk:x:6: diff --git a/tests/tests/chroot/chpasswd/01_chpasswd--root_nopam/config_chroot/etc/gshadow b/tests/tests/chroot/chpasswd/01_chpasswd--root_nopam/config_chroot/etc/gshadow new file mode 100644 index 00000000..25bd55bd --- /dev/null +++ b/tests/tests/chroot/chpasswd/01_chpasswd--root_nopam/config_chroot/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: diff --git a/tests/tests/chroot/chpasswd/01_chpasswd--root_nopam/config_chroot/etc/login.defs b/tests/tests/chroot/chpasswd/01_chpasswd--root_nopam/config_chroot/etc/login.defs new file mode 100644 index 00000000..3b216aa1 --- /dev/null +++ b/tests/tests/chroot/chpasswd/01_chpasswd--root_nopam/config_chroot/etc/login.defs @@ -0,0 +1,334 @@ +# +# /etc/login.defs - Configuration control definitions for the login package. +# +# Three items must be defined: MAIL_DIR, ENV_SUPATH, and ENV_PATH. +# If unspecified, some arbitrary (and possibly incorrect) value will +# be assumed. All other items are optional - if not specified then +# the described action or option will be inhibited. +# +# Comment lines (lines beginning with "#") and blank lines are ignored. +# +# Modified for Linux. --marekm + +# REQUIRED for useradd/userdel/usermod +# Directory where mailboxes reside, _or_ name of file, relative to the +# home directory. If you _do_ define MAIL_DIR and MAIL_FILE, +# MAIL_DIR takes precedence. +# +# Essentially: +# - MAIL_DIR defines the location of users mail spool files +# (for mbox use) by appending the username to MAIL_DIR as defined +# below. +# - MAIL_FILE defines the location of the users mail spool files as the +# fully-qualified filename obtained by prepending the user home +# directory before $MAIL_FILE +# +# NOTE: This is no more used for setting up users MAIL environment variable +# which is, starting from shadow 4.0.12-1 in Debian, entirely the +# job of the pam_mail PAM modules +# See default PAM configuration files provided for +# login, su, etc. +# +# This is a temporary situation: setting these variables will soon +# move to /etc/default/useradd and the variables will then be +# no more supported +MAIL_DIR /var/mail +#MAIL_FILE .mail + +# +# Enable logging and display of /var/log/faillog login failure info. +# This option conflicts with the pam_tally PAM module. +# +FAILLOG_ENAB yes + +# +# Enable display of unknown usernames when login failures are recorded. +# +# WARNING: Unknown usernames may become world readable. +# See #290803 and #298773 for details about how this could become a security +# concern +LOG_UNKFAIL_ENAB no + +# +# Enable logging of successful logins +# +LOG_OK_LOGINS no + +# +# Enable "syslog" logging of su activity - in addition to sulog file logging. +# SYSLOG_SG_ENAB does the same for newgrp and sg. +# +SYSLOG_SU_ENAB yes +SYSLOG_SG_ENAB yes + +# +# If defined, all su activity is logged to this file. +# +#SULOG_FILE /var/log/sulog + +# +# If defined, file which maps tty line to TERM environment parameter. +# Each line of the file is in a format something like "vt100 tty01". +# +#TTYTYPE_FILE /etc/ttytype + +# +# If defined, login failures will be logged here in a utmp format +# last, when invoked as lastb, will read /var/log/btmp, so... +# +FTMP_FILE /var/log/btmp + +# +# If defined, the command name to display when running "su -". For +# example, if this is defined as "su" then a "ps" will display the +# command is "-su". If not defined, then "ps" would display the +# name of the shell actually being run, e.g. something like "-sh". +# +SU_NAME su + +# +# If defined, file which inhibits all the usual chatter during the login +# sequence. If a full pathname, then hushed mode will be enabled if the +# user's name or shell are found in the file. If not a full pathname, then +# hushed mode will be enabled if the file exists in the user's home directory. +# +HUSHLOGIN_FILE .hushlogin +#HUSHLOGIN_FILE /etc/hushlogins + +# +# *REQUIRED* The default PATH settings, for superuser and normal users. +# +# (they are minimal, add the rest in the shell startup files) +ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games + +# +# Terminal permissions +# +# TTYGROUP Login tty will be assigned this group ownership. +# TTYPERM Login tty will be set to this permission. +# +# If you have a "write" program which is "setgid" to a special group +# which owns the terminals, define TTYGROUP to the group number and +# TTYPERM to 0620. Otherwise leave TTYGROUP commented out and assign +# TTYPERM to either 622 or 600. +# +# In Debian /usr/bin/bsd-write or similar programs are setgid tty +# However, the default and recommended value for TTYPERM is still 0600 +# to not allow anyone to write to anyone else console or terminal + +# Users can still allow other people to write them by issuing +# the "mesg y" command. + +TTYGROUP tty +TTYPERM 0600 + +# +# Login configuration initializations: +# +# ERASECHAR Terminal ERASE character ('\010' = backspace). +# KILLCHAR Terminal KILL character ('\025' = CTRL/U). +# UMASK Default "umask" value. +# +# The ERASECHAR and KILLCHAR are used only on System V machines. +# +# UMASK is the default umask value for pam_umask and is used by +# useradd and newusers to set the mode of the new home directories. +# 022 is the "historical" value in Debian for UMASK +# 027, or even 077, could be considered better for privacy +# There is no One True Answer here : each sysadmin must make up their +# mind. +# +# Prefix these values with "0" to get octal, "0x" to get hexadecimal. +# +ERASECHAR 0177 +KILLCHAR 025 +UMASK 022 + +# +# Password aging controls: +# +# PASS_MAX_DAYS Maximum number of days a password may be used. +# PASS_MIN_DAYS Minimum number of days allowed between password changes. +# PASS_WARN_AGE Number of days warning given before a password expires. +# +PASS_MAX_DAYS 99999 +PASS_MIN_DAYS 0 +PASS_WARN_AGE 7 + +# +# Min/max values for automatic uid selection in useradd +# +UID_MIN 1000 +UID_MAX 60000 +# System accounts +#SYS_UID_MIN 100 +#SYS_UID_MAX 999 + +# +# Min/max values for automatic gid selection in groupadd +# +GID_MIN 1000 +GID_MAX 60000 +# System accounts +#SYS_GID_MIN 100 +#SYS_GID_MAX 999 + +# +# Max number of login retries if password is bad. This will most likely be +# overridden by PAM, since the default pam_unix module has it's own built +# in of 3 retries. However, this is a safe fallback in case you are using +# an authentication module that does not enforce PAM_MAXTRIES. +# +LOGIN_RETRIES 5 + +# +# Max time in seconds for login +# +LOGIN_TIMEOUT 60 + +# +# Which fields may be changed by regular users using chfn - use +# any combination of letters "frwh" (full name, room number, work +# phone, home phone). If not defined, no changes are allowed. +# For backward compatibility, "yes" = "rwh" and "no" = "frwh". +# +CHFN_RESTRICT rwh + +# +# Should login be allowed if we can't cd to the home directory? +# Default is no. +# +DEFAULT_HOME yes + +# +# If defined, this command is run when removing a user. +# It should remove any at/cron/print jobs etc. owned by +# the user to be removed (passed as the first argument). +# +#USERDEL_CMD /usr/sbin/userdel_local + +# +# If set to yes, userdel will remove the user's group if it contains no +# more members, and useradd will create by default a group with the name +# of the user. +# +# Other former uses of this variable such as setting the umask when +# user==primary group are not used in PAM environments, such as Debian +# +USERGROUPS_ENAB yes + +# +# Instead of the real user shell, the program specified by this parameter +# will be launched, although its visible name (argv[0]) will be the shell's. +# The program may do whatever it wants (logging, additional authentification, +# banner, ...) before running the actual shell. +# +# FAKE_SHELL /bin/fakeshell + +# +# If defined, either full pathname of a file containing device names or +# a ":" delimited list of device names. Root logins will be allowed only +# upon these devices. +# +# This variable is used by login and su. +# +#CONSOLE /etc/consoles +#CONSOLE console:tty01:tty02:tty03:tty04 + +# +# List of groups to add to the user's supplementary group set +# when logging in on the console (as determined by the CONSOLE +# setting). Default is none. +# +# Use with caution - it is possible for users to gain permanent +# access to these groups, even when not logged in on the console. +# How to do it is left as an exercise for the reader... +# +# This variable is used by login and su. +# +#CONSOLE_GROUPS floppy:audio:cdrom + +# +# If set to "yes", new passwords will be encrypted using the MD5-based +# algorithm compatible with the one used by recent releases of FreeBSD. +# It supports passwords of unlimited length and longer salt strings. +# Set to "no" if you need to copy encrypted passwords to other systems +# which don't understand the new algorithm. Default is "no". +# +# This variable is deprecated. You should use ENCRYPT_METHOD. +# +#MD5_CRYPT_ENAB no + +# +# If set to MD5 , MD5-based algorithm will be used for encrypting password +# If set to SHA256, SHA256-based algorithm will be used for encrypting password +# If set to SHA512, SHA512-based algorithm will be used for encrypting password +# If set to DES, DES-based algorithm will be used for encrypting password (default) +# Overrides the MD5_CRYPT_ENAB option +# +# Note: It is recommended to use a value consistent with +# the PAM modules configuration. +# +#ENCRYPT_METHOD DES + +# +# Only used if ENCRYPT_METHOD is set to SHA256 or SHA512. +# +# Define the number of SHA rounds. +# With a lot of rounds, it is more difficult to brute forcing the password. +# But note also that it more CPU resources will be needed to authenticate +# users. +# +# If not specified, the libc will choose the default number of rounds (5000). +# The values must be inside the 1000-999999999 range. +# If only one of the MIN or MAX values is set, then this value will be used. +# If MIN > MAX, the highest value will be used. +# +# SHA_CRYPT_MIN_ROUNDS 5000 +# SHA_CRYPT_MAX_ROUNDS 5000 + +################# OBSOLETED BY PAM ############## +# # +# These options are now handled by PAM. Please # +# edit the appropriate file in /etc/pam.d/ to # +# enable the equivalents of them. +# +############### + +#MOTD_FILE +#DIALUPS_CHECK_ENAB +#LASTLOG_ENAB +#MAIL_CHECK_ENAB +#OBSCURE_CHECKS_ENAB +#PORTTIME_CHECKS_ENAB +#SU_WHEEL_ONLY +#PASS_CHANGE_TRIES +#PASS_ALWAYS_WARN +#ENVIRON_FILE +#NOLOGINS_FILE +#ISSUE_FILE +#PASS_MIN_LEN +#PASS_MAX_LEN +#ULIMIT +#ENV_HZ +#CHFN_AUTH +#CHSH_AUTH +#FAIL_DELAY + +################# OBSOLETED ####################### +# # +# These options are no more handled by shadow. # +# # +# Shadow utilities will display a warning if they # +# still appear. # +# # +################################################### + +# CLOSE_SESSIONS +# LOGIN_STRING +# NO_PASSWORD_CONSOLE +# QMAIL_DIR + + + diff --git a/tests/tests/chroot/chpasswd/01_chpasswd--root_nopam/config_chroot/etc/passwd b/tests/tests/chroot/chpasswd/01_chpasswd--root_nopam/config_chroot/etc/passwd new file mode 100644 index 00000000..9bdeb8ce --- /dev/null +++ b/tests/tests/chroot/chpasswd/01_chpasswd--root_nopam/config_chroot/etc/passwd @@ -0,0 +1,21 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser:x:424242:424242::/home/:/bin/sh +testsuite::424243:424243::/home:/bin/bash diff --git a/tests/tests/chroot/chpasswd/01_chpasswd--root_nopam/config_chroot/etc/shadow b/tests/tests/chroot/chpasswd/01_chpasswd--root_nopam/config_chroot/etc/shadow new file mode 100644 index 00000000..038d5cf4 --- /dev/null +++ b/tests/tests/chroot/chpasswd/01_chpasswd--root_nopam/config_chroot/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: diff --git a/tests/tests/chroot/chpasswd/01_chpasswd--root_nopam/data/shadow b/tests/tests/chroot/chpasswd/01_chpasswd--root_nopam/data/shadow new file mode 100644 index 00000000..8a67bed3 --- /dev/null +++ b/tests/tests/chroot/chpasswd/01_chpasswd--root_nopam/data/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:@PASS_SHA256 test2@:@TODAY@:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:@PASS_SHA256 test@:@TODAY@:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: diff --git a/tests/tests/chroot/chpasswd/02_chpasswd--root_pam/chpasswd.test b/tests/tests/chroot/chpasswd/02_chpasswd--root_pam/chpasswd.test new file mode 100755 index 00000000..2e2f8952 --- /dev/null +++ b/tests/tests/chroot/chpasswd/02_chpasswd--root_pam/chpasswd.test @@ -0,0 +1,50 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "chpasswd can change a group in a chroot" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; clean_chroot; restore_config' 0 + +change_config + +prepare_chroot + +echo -n "Change nobody and lp's password in chroot..." +echo 'nobody:test +lp:test2' | chpasswd --root $PWD/tmp/root +echo "OK" + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +../../../common/compare_file.pl config_chroot/etc/passwd tmp/root/etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +../../../common/compare_file.pl config_chroot/etc/group tmp/root/etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +../../../common/compare_file.pl data/shadow tmp/root/etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +../../../common/compare_file.pl config_chroot/etc/gshadow tmp/root/etc/gshadow +echo "OK" + +rm -f tmp/root/etc/.pwd.lock +rm -f tmp/root/etc/shadow- +clean_chroot + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chroot/chpasswd/02_chpasswd--root_pam/config.txt b/tests/tests/chroot/chpasswd/02_chpasswd--root_pam/config.txt new file mode 100644 index 00000000..31f56359 --- /dev/null +++ b/tests/tests/chroot/chpasswd/02_chpasswd--root_pam/config.txt @@ -0,0 +1,10 @@ +# no testsuite password +# root password: rootF00barbaz +# myuser password: myuserF00barbaz + +user foo, in group users (only in /etc/group) +user foo, in group tty (only in /etc/gshadow) +user foo, in group floppy +user foo, admin of group disk +user foo, admin and member of group fax +user foo, admin and member of group cdrom (only in /etc/gshadow) diff --git a/tests/tests/chroot/chpasswd/02_chpasswd--root_pam/config/etc/default/useradd b/tests/tests/chroot/chpasswd/02_chpasswd--root_pam/config/etc/default/useradd new file mode 100644 index 00000000..31c44abe --- /dev/null +++ b/tests/tests/chroot/chpasswd/02_chpasswd--root_pam/config/etc/default/useradd @@ -0,0 +1,36 @@ +# Default values for useradd(8) +# +# The SHELL variable specifies the default login shell on your +# system. +# Similar to DHSELL in adduser. However, we use "sh" here because +# useradd is a low level utility and should be as general +# as possible +SHELL=/bin/foobar +# +# The default group for users +# 100=users on Debian systems +# Same as USERS_GID in adduser +# This argument is used when the -n flag is specified. +# The default behavior (when -n and -g are not specified) is to create a +# primary user group with the same name as the user being added to the +# system. +GROUP=10 +# +# The default home directory. Same as DHOME for adduser +HOME=/tmp +# +# The number of days after a password expires until the account +# is permanently disabled +INACTIVE=12 +# +# The default expire date +EXPIRE=2007-12-02 +# +# The SKEL variable specifies the directory containing "skeletal" user +# files; in other words, files such as a sample .profile that will be +# copied to the new user's home directory when it is created. +# SKEL=/etc/skel +# +# Defines whether the mail spool should be created while +# creating the account +# CREATE_MAIL_SPOOL=yes diff --git a/tests/tests/chroot/chpasswd/02_chpasswd--root_pam/config/etc/group b/tests/tests/chroot/chpasswd/02_chpasswd--root_pam/config/etc/group new file mode 100644 index 00000000..10123908 --- /dev/null +++ b/tests/tests/chroot/chpasswd/02_chpasswd--root_pam/config/etc/group @@ -0,0 +1,41 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: diff --git a/tests/tests/chroot/chpasswd/02_chpasswd--root_pam/config/etc/gshadow b/tests/tests/chroot/chpasswd/02_chpasswd--root_pam/config/etc/gshadow new file mode 100644 index 00000000..ae424865 --- /dev/null +++ b/tests/tests/chroot/chpasswd/02_chpasswd--root_pam/config/etc/gshadow @@ -0,0 +1,41 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: diff --git a/tests/tests/chroot/chpasswd/02_chpasswd--root_pam/config/etc/passwd b/tests/tests/chroot/chpasswd/02_chpasswd--root_pam/config/etc/passwd new file mode 100644 index 00000000..43fc135a --- /dev/null +++ b/tests/tests/chroot/chpasswd/02_chpasswd--root_pam/config/etc/passwd @@ -0,0 +1,19 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false diff --git a/tests/tests/chroot/chpasswd/02_chpasswd--root_pam/config/etc/shadow b/tests/tests/chroot/chpasswd/02_chpasswd--root_pam/config/etc/shadow new file mode 100644 index 00000000..5f50d187 --- /dev/null +++ b/tests/tests/chroot/chpasswd/02_chpasswd--root_pam/config/etc/shadow @@ -0,0 +1,19 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: diff --git a/tests/tests/chroot/chpasswd/02_chpasswd--root_pam/config_chroot/etc/group b/tests/tests/chroot/chpasswd/02_chpasswd--root_pam/config_chroot/etc/group new file mode 100644 index 00000000..d2a4b10a --- /dev/null +++ b/tests/tests/chroot/chpasswd/02_chpasswd--root_pam/config_chroot/etc/group @@ -0,0 +1,42 @@ +staff:x:50: +root:x:0: +tty:x:5: +daemon:x:1: +bin:x:2: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +sys:x:3: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +adm:x:4: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: +disk:x:6: diff --git a/tests/tests/chroot/chpasswd/02_chpasswd--root_pam/config_chroot/etc/gshadow b/tests/tests/chroot/chpasswd/02_chpasswd--root_pam/config_chroot/etc/gshadow new file mode 100644 index 00000000..25bd55bd --- /dev/null +++ b/tests/tests/chroot/chpasswd/02_chpasswd--root_pam/config_chroot/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: diff --git a/tests/tests/chroot/chpasswd/02_chpasswd--root_pam/config_chroot/etc/login.defs b/tests/tests/chroot/chpasswd/02_chpasswd--root_pam/config_chroot/etc/login.defs new file mode 100644 index 00000000..3b216aa1 --- /dev/null +++ b/tests/tests/chroot/chpasswd/02_chpasswd--root_pam/config_chroot/etc/login.defs @@ -0,0 +1,334 @@ +# +# /etc/login.defs - Configuration control definitions for the login package. +# +# Three items must be defined: MAIL_DIR, ENV_SUPATH, and ENV_PATH. +# If unspecified, some arbitrary (and possibly incorrect) value will +# be assumed. All other items are optional - if not specified then +# the described action or option will be inhibited. +# +# Comment lines (lines beginning with "#") and blank lines are ignored. +# +# Modified for Linux. --marekm + +# REQUIRED for useradd/userdel/usermod +# Directory where mailboxes reside, _or_ name of file, relative to the +# home directory. If you _do_ define MAIL_DIR and MAIL_FILE, +# MAIL_DIR takes precedence. +# +# Essentially: +# - MAIL_DIR defines the location of users mail spool files +# (for mbox use) by appending the username to MAIL_DIR as defined +# below. +# - MAIL_FILE defines the location of the users mail spool files as the +# fully-qualified filename obtained by prepending the user home +# directory before $MAIL_FILE +# +# NOTE: This is no more used for setting up users MAIL environment variable +# which is, starting from shadow 4.0.12-1 in Debian, entirely the +# job of the pam_mail PAM modules +# See default PAM configuration files provided for +# login, su, etc. +# +# This is a temporary situation: setting these variables will soon +# move to /etc/default/useradd and the variables will then be +# no more supported +MAIL_DIR /var/mail +#MAIL_FILE .mail + +# +# Enable logging and display of /var/log/faillog login failure info. +# This option conflicts with the pam_tally PAM module. +# +FAILLOG_ENAB yes + +# +# Enable display of unknown usernames when login failures are recorded. +# +# WARNING: Unknown usernames may become world readable. +# See #290803 and #298773 for details about how this could become a security +# concern +LOG_UNKFAIL_ENAB no + +# +# Enable logging of successful logins +# +LOG_OK_LOGINS no + +# +# Enable "syslog" logging of su activity - in addition to sulog file logging. +# SYSLOG_SG_ENAB does the same for newgrp and sg. +# +SYSLOG_SU_ENAB yes +SYSLOG_SG_ENAB yes + +# +# If defined, all su activity is logged to this file. +# +#SULOG_FILE /var/log/sulog + +# +# If defined, file which maps tty line to TERM environment parameter. +# Each line of the file is in a format something like "vt100 tty01". +# +#TTYTYPE_FILE /etc/ttytype + +# +# If defined, login failures will be logged here in a utmp format +# last, when invoked as lastb, will read /var/log/btmp, so... +# +FTMP_FILE /var/log/btmp + +# +# If defined, the command name to display when running "su -". For +# example, if this is defined as "su" then a "ps" will display the +# command is "-su". If not defined, then "ps" would display the +# name of the shell actually being run, e.g. something like "-sh". +# +SU_NAME su + +# +# If defined, file which inhibits all the usual chatter during the login +# sequence. If a full pathname, then hushed mode will be enabled if the +# user's name or shell are found in the file. If not a full pathname, then +# hushed mode will be enabled if the file exists in the user's home directory. +# +HUSHLOGIN_FILE .hushlogin +#HUSHLOGIN_FILE /etc/hushlogins + +# +# *REQUIRED* The default PATH settings, for superuser and normal users. +# +# (they are minimal, add the rest in the shell startup files) +ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games + +# +# Terminal permissions +# +# TTYGROUP Login tty will be assigned this group ownership. +# TTYPERM Login tty will be set to this permission. +# +# If you have a "write" program which is "setgid" to a special group +# which owns the terminals, define TTYGROUP to the group number and +# TTYPERM to 0620. Otherwise leave TTYGROUP commented out and assign +# TTYPERM to either 622 or 600. +# +# In Debian /usr/bin/bsd-write or similar programs are setgid tty +# However, the default and recommended value for TTYPERM is still 0600 +# to not allow anyone to write to anyone else console or terminal + +# Users can still allow other people to write them by issuing +# the "mesg y" command. + +TTYGROUP tty +TTYPERM 0600 + +# +# Login configuration initializations: +# +# ERASECHAR Terminal ERASE character ('\010' = backspace). +# KILLCHAR Terminal KILL character ('\025' = CTRL/U). +# UMASK Default "umask" value. +# +# The ERASECHAR and KILLCHAR are used only on System V machines. +# +# UMASK is the default umask value for pam_umask and is used by +# useradd and newusers to set the mode of the new home directories. +# 022 is the "historical" value in Debian for UMASK +# 027, or even 077, could be considered better for privacy +# There is no One True Answer here : each sysadmin must make up their +# mind. +# +# Prefix these values with "0" to get octal, "0x" to get hexadecimal. +# +ERASECHAR 0177 +KILLCHAR 025 +UMASK 022 + +# +# Password aging controls: +# +# PASS_MAX_DAYS Maximum number of days a password may be used. +# PASS_MIN_DAYS Minimum number of days allowed between password changes. +# PASS_WARN_AGE Number of days warning given before a password expires. +# +PASS_MAX_DAYS 99999 +PASS_MIN_DAYS 0 +PASS_WARN_AGE 7 + +# +# Min/max values for automatic uid selection in useradd +# +UID_MIN 1000 +UID_MAX 60000 +# System accounts +#SYS_UID_MIN 100 +#SYS_UID_MAX 999 + +# +# Min/max values for automatic gid selection in groupadd +# +GID_MIN 1000 +GID_MAX 60000 +# System accounts +#SYS_GID_MIN 100 +#SYS_GID_MAX 999 + +# +# Max number of login retries if password is bad. This will most likely be +# overridden by PAM, since the default pam_unix module has it's own built +# in of 3 retries. However, this is a safe fallback in case you are using +# an authentication module that does not enforce PAM_MAXTRIES. +# +LOGIN_RETRIES 5 + +# +# Max time in seconds for login +# +LOGIN_TIMEOUT 60 + +# +# Which fields may be changed by regular users using chfn - use +# any combination of letters "frwh" (full name, room number, work +# phone, home phone). If not defined, no changes are allowed. +# For backward compatibility, "yes" = "rwh" and "no" = "frwh". +# +CHFN_RESTRICT rwh + +# +# Should login be allowed if we can't cd to the home directory? +# Default is no. +# +DEFAULT_HOME yes + +# +# If defined, this command is run when removing a user. +# It should remove any at/cron/print jobs etc. owned by +# the user to be removed (passed as the first argument). +# +#USERDEL_CMD /usr/sbin/userdel_local + +# +# If set to yes, userdel will remove the user's group if it contains no +# more members, and useradd will create by default a group with the name +# of the user. +# +# Other former uses of this variable such as setting the umask when +# user==primary group are not used in PAM environments, such as Debian +# +USERGROUPS_ENAB yes + +# +# Instead of the real user shell, the program specified by this parameter +# will be launched, although its visible name (argv[0]) will be the shell's. +# The program may do whatever it wants (logging, additional authentification, +# banner, ...) before running the actual shell. +# +# FAKE_SHELL /bin/fakeshell + +# +# If defined, either full pathname of a file containing device names or +# a ":" delimited list of device names. Root logins will be allowed only +# upon these devices. +# +# This variable is used by login and su. +# +#CONSOLE /etc/consoles +#CONSOLE console:tty01:tty02:tty03:tty04 + +# +# List of groups to add to the user's supplementary group set +# when logging in on the console (as determined by the CONSOLE +# setting). Default is none. +# +# Use with caution - it is possible for users to gain permanent +# access to these groups, even when not logged in on the console. +# How to do it is left as an exercise for the reader... +# +# This variable is used by login and su. +# +#CONSOLE_GROUPS floppy:audio:cdrom + +# +# If set to "yes", new passwords will be encrypted using the MD5-based +# algorithm compatible with the one used by recent releases of FreeBSD. +# It supports passwords of unlimited length and longer salt strings. +# Set to "no" if you need to copy encrypted passwords to other systems +# which don't understand the new algorithm. Default is "no". +# +# This variable is deprecated. You should use ENCRYPT_METHOD. +# +#MD5_CRYPT_ENAB no + +# +# If set to MD5 , MD5-based algorithm will be used for encrypting password +# If set to SHA256, SHA256-based algorithm will be used for encrypting password +# If set to SHA512, SHA512-based algorithm will be used for encrypting password +# If set to DES, DES-based algorithm will be used for encrypting password (default) +# Overrides the MD5_CRYPT_ENAB option +# +# Note: It is recommended to use a value consistent with +# the PAM modules configuration. +# +#ENCRYPT_METHOD DES + +# +# Only used if ENCRYPT_METHOD is set to SHA256 or SHA512. +# +# Define the number of SHA rounds. +# With a lot of rounds, it is more difficult to brute forcing the password. +# But note also that it more CPU resources will be needed to authenticate +# users. +# +# If not specified, the libc will choose the default number of rounds (5000). +# The values must be inside the 1000-999999999 range. +# If only one of the MIN or MAX values is set, then this value will be used. +# If MIN > MAX, the highest value will be used. +# +# SHA_CRYPT_MIN_ROUNDS 5000 +# SHA_CRYPT_MAX_ROUNDS 5000 + +################# OBSOLETED BY PAM ############## +# # +# These options are now handled by PAM. Please # +# edit the appropriate file in /etc/pam.d/ to # +# enable the equivalents of them. +# +############### + +#MOTD_FILE +#DIALUPS_CHECK_ENAB +#LASTLOG_ENAB +#MAIL_CHECK_ENAB +#OBSCURE_CHECKS_ENAB +#PORTTIME_CHECKS_ENAB +#SU_WHEEL_ONLY +#PASS_CHANGE_TRIES +#PASS_ALWAYS_WARN +#ENVIRON_FILE +#NOLOGINS_FILE +#ISSUE_FILE +#PASS_MIN_LEN +#PASS_MAX_LEN +#ULIMIT +#ENV_HZ +#CHFN_AUTH +#CHSH_AUTH +#FAIL_DELAY + +################# OBSOLETED ####################### +# # +# These options are no more handled by shadow. # +# # +# Shadow utilities will display a warning if they # +# still appear. # +# # +################################################### + +# CLOSE_SESSIONS +# LOGIN_STRING +# NO_PASSWORD_CONSOLE +# QMAIL_DIR + + + diff --git a/tests/tests/chroot/chpasswd/02_chpasswd--root_pam/config_chroot/etc/pam.d/chpasswd b/tests/tests/chroot/chpasswd/02_chpasswd--root_pam/config_chroot/etc/pam.d/chpasswd new file mode 100644 index 00000000..da2adcc9 --- /dev/null +++ b/tests/tests/chroot/chpasswd/02_chpasswd--root_pam/config_chroot/etc/pam.d/chpasswd @@ -0,0 +1,5 @@ +# The PAM configuration file for the Shadow 'chpasswd' service +# + +@include common-password + diff --git a/tests/tests/chroot/chpasswd/02_chpasswd--root_pam/config_chroot/etc/pam.d/common-password b/tests/tests/chroot/chpasswd/02_chpasswd--root_pam/config_chroot/etc/pam.d/common-password new file mode 100644 index 00000000..cb8c7b71 --- /dev/null +++ b/tests/tests/chroot/chpasswd/02_chpasswd--root_pam/config_chroot/etc/pam.d/common-password @@ -0,0 +1,33 @@ +# +# /etc/pam.d/common-password - password-related modules common to all services +# +# This file is included from other service-specific PAM config files, +# and should contain a list of modules that define the services to be +# used to change user passwords. The default is pam_unix. + +# Explanation of pam_unix options: +# +# The "sha512" option enables salted SHA512 passwords. Without this option, +# the default is Unix crypt. Prior releases used the option "md5". +# +# The "obscure" option replaces the old `OBSCURE_CHECKS_ENAB' option in +# login.defs. +# +# See the pam_unix manpage for other options. + +# As of pam 1.0.1-6, this file is managed by pam-auth-update by default. +# To take advantage of this, it is recommended that you configure any +# local modules either before or after the default block, and use +# pam-auth-update to manage selection of other modules. See +# pam-auth-update(8) for details. + +# here are the per-package modules (the "Primary" block) +password [success=1 default=ignore] pam_unix.so obscure sha512 +# here's the fallback if no module succeeds +password requisite pam_deny.so +# prime the stack with a positive return value if there isn't one already; +# this avoids us returning an error just because nothing sets a success code +# since the modules above will each just jump around +password required pam_permit.so +# and here are more per-package modules (the "Additional" block) +# end of pam-auth-update config diff --git a/tests/tests/chroot/chpasswd/02_chpasswd--root_pam/config_chroot/etc/passwd b/tests/tests/chroot/chpasswd/02_chpasswd--root_pam/config_chroot/etc/passwd new file mode 100644 index 00000000..9bdeb8ce --- /dev/null +++ b/tests/tests/chroot/chpasswd/02_chpasswd--root_pam/config_chroot/etc/passwd @@ -0,0 +1,21 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser:x:424242:424242::/home/:/bin/sh +testsuite::424243:424243::/home:/bin/bash diff --git a/tests/tests/chroot/chpasswd/02_chpasswd--root_pam/config_chroot/etc/shadow b/tests/tests/chroot/chpasswd/02_chpasswd--root_pam/config_chroot/etc/shadow new file mode 100644 index 00000000..038d5cf4 --- /dev/null +++ b/tests/tests/chroot/chpasswd/02_chpasswd--root_pam/config_chroot/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: diff --git a/tests/tests/chroot/chpasswd/02_chpasswd--root_pam/data/shadow b/tests/tests/chroot/chpasswd/02_chpasswd--root_pam/data/shadow new file mode 100644 index 00000000..5839a29d --- /dev/null +++ b/tests/tests/chroot/chpasswd/02_chpasswd--root_pam/data/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:@PASS_SHA512 test2@:@TODAY@:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:@PASS_SHA512 test@:@TODAY@:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: diff --git a/tests/tests/chroot/chsh/01_chsh--root/chsh.test b/tests/tests/chroot/chsh/01_chsh--root/chsh.test new file mode 100755 index 00000000..b99cbb46 --- /dev/null +++ b/tests/tests/chroot/chsh/01_chsh--root/chsh.test @@ -0,0 +1,52 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "chsh can change a user in a chroot" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; clean_chroot; restore_config' 0 + +change_config + +prepare_chroot + +echo -n "Change user in chroot (chsh --root $PWD/tmp/root -s /bin/dash root)..." +chsh --root $PWD/tmp/root -s /bin/dash root +echo "OK" + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +../../../common/compare_file.pl data/passwd tmp/root/etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +../../../common/compare_file.pl config_chroot/etc/group tmp/root/etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +../../../common/compare_file.pl config_chroot/etc/shadow tmp/root/etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +../../../common/compare_file.pl config_chroot/etc/gshadow tmp/root/etc/gshadow +echo "OK" + +rm -f tmp/root/etc/.pwd.lock +rm -f tmp/root/etc/passwd- +rm -f tmp/root/etc/group- +rm -f tmp/root/etc/shadow- +rm -f tmp/root/etc/gshadow- +clean_chroot + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chroot/chsh/01_chsh--root/config.txt b/tests/tests/chroot/chsh/01_chsh--root/config.txt new file mode 100644 index 00000000..31f56359 --- /dev/null +++ b/tests/tests/chroot/chsh/01_chsh--root/config.txt @@ -0,0 +1,10 @@ +# no testsuite password +# root password: rootF00barbaz +# myuser password: myuserF00barbaz + +user foo, in group users (only in /etc/group) +user foo, in group tty (only in /etc/gshadow) +user foo, in group floppy +user foo, admin of group disk +user foo, admin and member of group fax +user foo, admin and member of group cdrom (only in /etc/gshadow) diff --git a/tests/tests/chroot/chsh/01_chsh--root/config/etc/default/useradd b/tests/tests/chroot/chsh/01_chsh--root/config/etc/default/useradd new file mode 100644 index 00000000..31c44abe --- /dev/null +++ b/tests/tests/chroot/chsh/01_chsh--root/config/etc/default/useradd @@ -0,0 +1,36 @@ +# Default values for useradd(8) +# +# The SHELL variable specifies the default login shell on your +# system. +# Similar to DHSELL in adduser. However, we use "sh" here because +# useradd is a low level utility and should be as general +# as possible +SHELL=/bin/foobar +# +# The default group for users +# 100=users on Debian systems +# Same as USERS_GID in adduser +# This argument is used when the -n flag is specified. +# The default behavior (when -n and -g are not specified) is to create a +# primary user group with the same name as the user being added to the +# system. +GROUP=10 +# +# The default home directory. Same as DHOME for adduser +HOME=/tmp +# +# The number of days after a password expires until the account +# is permanently disabled +INACTIVE=12 +# +# The default expire date +EXPIRE=2007-12-02 +# +# The SKEL variable specifies the directory containing "skeletal" user +# files; in other words, files such as a sample .profile that will be +# copied to the new user's home directory when it is created. +# SKEL=/etc/skel +# +# Defines whether the mail spool should be created while +# creating the account +# CREATE_MAIL_SPOOL=yes diff --git a/tests/tests/chroot/chsh/01_chsh--root/config/etc/group b/tests/tests/chroot/chsh/01_chsh--root/config/etc/group new file mode 100644 index 00000000..10123908 --- /dev/null +++ b/tests/tests/chroot/chsh/01_chsh--root/config/etc/group @@ -0,0 +1,41 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: diff --git a/tests/tests/chroot/chsh/01_chsh--root/config/etc/gshadow b/tests/tests/chroot/chsh/01_chsh--root/config/etc/gshadow new file mode 100644 index 00000000..ae424865 --- /dev/null +++ b/tests/tests/chroot/chsh/01_chsh--root/config/etc/gshadow @@ -0,0 +1,41 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: diff --git a/tests/tests/chroot/chsh/01_chsh--root/config/etc/passwd b/tests/tests/chroot/chsh/01_chsh--root/config/etc/passwd new file mode 100644 index 00000000..43fc135a --- /dev/null +++ b/tests/tests/chroot/chsh/01_chsh--root/config/etc/passwd @@ -0,0 +1,19 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false diff --git a/tests/tests/chroot/chsh/01_chsh--root/config/etc/shadow b/tests/tests/chroot/chsh/01_chsh--root/config/etc/shadow new file mode 100644 index 00000000..5f50d187 --- /dev/null +++ b/tests/tests/chroot/chsh/01_chsh--root/config/etc/shadow @@ -0,0 +1,19 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: diff --git a/tests/tests/chroot/chsh/01_chsh--root/config_chroot.list b/tests/tests/chroot/chsh/01_chsh--root/config_chroot.list new file mode 100644 index 00000000..166e5212 --- /dev/null +++ b/tests/tests/chroot/chsh/01_chsh--root/config_chroot.list @@ -0,0 +1 @@ +/bin/dash diff --git a/tests/tests/chroot/chsh/01_chsh--root/config_chroot/etc/group b/tests/tests/chroot/chsh/01_chsh--root/config_chroot/etc/group new file mode 100644 index 00000000..245cc9cf --- /dev/null +++ b/tests/tests/chroot/chsh/01_chsh--root/config_chroot/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: diff --git a/tests/tests/chroot/chsh/01_chsh--root/config_chroot/etc/gshadow b/tests/tests/chroot/chsh/01_chsh--root/config_chroot/etc/gshadow new file mode 100644 index 00000000..25bd55bd --- /dev/null +++ b/tests/tests/chroot/chsh/01_chsh--root/config_chroot/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: diff --git a/tests/tests/chroot/chsh/01_chsh--root/config_chroot/etc/login.defs b/tests/tests/chroot/chsh/01_chsh--root/config_chroot/etc/login.defs new file mode 100644 index 00000000..3b216aa1 --- /dev/null +++ b/tests/tests/chroot/chsh/01_chsh--root/config_chroot/etc/login.defs @@ -0,0 +1,334 @@ +# +# /etc/login.defs - Configuration control definitions for the login package. +# +# Three items must be defined: MAIL_DIR, ENV_SUPATH, and ENV_PATH. +# If unspecified, some arbitrary (and possibly incorrect) value will +# be assumed. All other items are optional - if not specified then +# the described action or option will be inhibited. +# +# Comment lines (lines beginning with "#") and blank lines are ignored. +# +# Modified for Linux. --marekm + +# REQUIRED for useradd/userdel/usermod +# Directory where mailboxes reside, _or_ name of file, relative to the +# home directory. If you _do_ define MAIL_DIR and MAIL_FILE, +# MAIL_DIR takes precedence. +# +# Essentially: +# - MAIL_DIR defines the location of users mail spool files +# (for mbox use) by appending the username to MAIL_DIR as defined +# below. +# - MAIL_FILE defines the location of the users mail spool files as the +# fully-qualified filename obtained by prepending the user home +# directory before $MAIL_FILE +# +# NOTE: This is no more used for setting up users MAIL environment variable +# which is, starting from shadow 4.0.12-1 in Debian, entirely the +# job of the pam_mail PAM modules +# See default PAM configuration files provided for +# login, su, etc. +# +# This is a temporary situation: setting these variables will soon +# move to /etc/default/useradd and the variables will then be +# no more supported +MAIL_DIR /var/mail +#MAIL_FILE .mail + +# +# Enable logging and display of /var/log/faillog login failure info. +# This option conflicts with the pam_tally PAM module. +# +FAILLOG_ENAB yes + +# +# Enable display of unknown usernames when login failures are recorded. +# +# WARNING: Unknown usernames may become world readable. +# See #290803 and #298773 for details about how this could become a security +# concern +LOG_UNKFAIL_ENAB no + +# +# Enable logging of successful logins +# +LOG_OK_LOGINS no + +# +# Enable "syslog" logging of su activity - in addition to sulog file logging. +# SYSLOG_SG_ENAB does the same for newgrp and sg. +# +SYSLOG_SU_ENAB yes +SYSLOG_SG_ENAB yes + +# +# If defined, all su activity is logged to this file. +# +#SULOG_FILE /var/log/sulog + +# +# If defined, file which maps tty line to TERM environment parameter. +# Each line of the file is in a format something like "vt100 tty01". +# +#TTYTYPE_FILE /etc/ttytype + +# +# If defined, login failures will be logged here in a utmp format +# last, when invoked as lastb, will read /var/log/btmp, so... +# +FTMP_FILE /var/log/btmp + +# +# If defined, the command name to display when running "su -". For +# example, if this is defined as "su" then a "ps" will display the +# command is "-su". If not defined, then "ps" would display the +# name of the shell actually being run, e.g. something like "-sh". +# +SU_NAME su + +# +# If defined, file which inhibits all the usual chatter during the login +# sequence. If a full pathname, then hushed mode will be enabled if the +# user's name or shell are found in the file. If not a full pathname, then +# hushed mode will be enabled if the file exists in the user's home directory. +# +HUSHLOGIN_FILE .hushlogin +#HUSHLOGIN_FILE /etc/hushlogins + +# +# *REQUIRED* The default PATH settings, for superuser and normal users. +# +# (they are minimal, add the rest in the shell startup files) +ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games + +# +# Terminal permissions +# +# TTYGROUP Login tty will be assigned this group ownership. +# TTYPERM Login tty will be set to this permission. +# +# If you have a "write" program which is "setgid" to a special group +# which owns the terminals, define TTYGROUP to the group number and +# TTYPERM to 0620. Otherwise leave TTYGROUP commented out and assign +# TTYPERM to either 622 or 600. +# +# In Debian /usr/bin/bsd-write or similar programs are setgid tty +# However, the default and recommended value for TTYPERM is still 0600 +# to not allow anyone to write to anyone else console or terminal + +# Users can still allow other people to write them by issuing +# the "mesg y" command. + +TTYGROUP tty +TTYPERM 0600 + +# +# Login configuration initializations: +# +# ERASECHAR Terminal ERASE character ('\010' = backspace). +# KILLCHAR Terminal KILL character ('\025' = CTRL/U). +# UMASK Default "umask" value. +# +# The ERASECHAR and KILLCHAR are used only on System V machines. +# +# UMASK is the default umask value for pam_umask and is used by +# useradd and newusers to set the mode of the new home directories. +# 022 is the "historical" value in Debian for UMASK +# 027, or even 077, could be considered better for privacy +# There is no One True Answer here : each sysadmin must make up their +# mind. +# +# Prefix these values with "0" to get octal, "0x" to get hexadecimal. +# +ERASECHAR 0177 +KILLCHAR 025 +UMASK 022 + +# +# Password aging controls: +# +# PASS_MAX_DAYS Maximum number of days a password may be used. +# PASS_MIN_DAYS Minimum number of days allowed between password changes. +# PASS_WARN_AGE Number of days warning given before a password expires. +# +PASS_MAX_DAYS 99999 +PASS_MIN_DAYS 0 +PASS_WARN_AGE 7 + +# +# Min/max values for automatic uid selection in useradd +# +UID_MIN 1000 +UID_MAX 60000 +# System accounts +#SYS_UID_MIN 100 +#SYS_UID_MAX 999 + +# +# Min/max values for automatic gid selection in groupadd +# +GID_MIN 1000 +GID_MAX 60000 +# System accounts +#SYS_GID_MIN 100 +#SYS_GID_MAX 999 + +# +# Max number of login retries if password is bad. This will most likely be +# overridden by PAM, since the default pam_unix module has it's own built +# in of 3 retries. However, this is a safe fallback in case you are using +# an authentication module that does not enforce PAM_MAXTRIES. +# +LOGIN_RETRIES 5 + +# +# Max time in seconds for login +# +LOGIN_TIMEOUT 60 + +# +# Which fields may be changed by regular users using chfn - use +# any combination of letters "frwh" (full name, room number, work +# phone, home phone). If not defined, no changes are allowed. +# For backward compatibility, "yes" = "rwh" and "no" = "frwh". +# +CHFN_RESTRICT rwh + +# +# Should login be allowed if we can't cd to the home directory? +# Default is no. +# +DEFAULT_HOME yes + +# +# If defined, this command is run when removing a user. +# It should remove any at/cron/print jobs etc. owned by +# the user to be removed (passed as the first argument). +# +#USERDEL_CMD /usr/sbin/userdel_local + +# +# If set to yes, userdel will remove the user's group if it contains no +# more members, and useradd will create by default a group with the name +# of the user. +# +# Other former uses of this variable such as setting the umask when +# user==primary group are not used in PAM environments, such as Debian +# +USERGROUPS_ENAB yes + +# +# Instead of the real user shell, the program specified by this parameter +# will be launched, although its visible name (argv[0]) will be the shell's. +# The program may do whatever it wants (logging, additional authentification, +# banner, ...) before running the actual shell. +# +# FAKE_SHELL /bin/fakeshell + +# +# If defined, either full pathname of a file containing device names or +# a ":" delimited list of device names. Root logins will be allowed only +# upon these devices. +# +# This variable is used by login and su. +# +#CONSOLE /etc/consoles +#CONSOLE console:tty01:tty02:tty03:tty04 + +# +# List of groups to add to the user's supplementary group set +# when logging in on the console (as determined by the CONSOLE +# setting). Default is none. +# +# Use with caution - it is possible for users to gain permanent +# access to these groups, even when not logged in on the console. +# How to do it is left as an exercise for the reader... +# +# This variable is used by login and su. +# +#CONSOLE_GROUPS floppy:audio:cdrom + +# +# If set to "yes", new passwords will be encrypted using the MD5-based +# algorithm compatible with the one used by recent releases of FreeBSD. +# It supports passwords of unlimited length and longer salt strings. +# Set to "no" if you need to copy encrypted passwords to other systems +# which don't understand the new algorithm. Default is "no". +# +# This variable is deprecated. You should use ENCRYPT_METHOD. +# +#MD5_CRYPT_ENAB no + +# +# If set to MD5 , MD5-based algorithm will be used for encrypting password +# If set to SHA256, SHA256-based algorithm will be used for encrypting password +# If set to SHA512, SHA512-based algorithm will be used for encrypting password +# If set to DES, DES-based algorithm will be used for encrypting password (default) +# Overrides the MD5_CRYPT_ENAB option +# +# Note: It is recommended to use a value consistent with +# the PAM modules configuration. +# +#ENCRYPT_METHOD DES + +# +# Only used if ENCRYPT_METHOD is set to SHA256 or SHA512. +# +# Define the number of SHA rounds. +# With a lot of rounds, it is more difficult to brute forcing the password. +# But note also that it more CPU resources will be needed to authenticate +# users. +# +# If not specified, the libc will choose the default number of rounds (5000). +# The values must be inside the 1000-999999999 range. +# If only one of the MIN or MAX values is set, then this value will be used. +# If MIN > MAX, the highest value will be used. +# +# SHA_CRYPT_MIN_ROUNDS 5000 +# SHA_CRYPT_MAX_ROUNDS 5000 + +################# OBSOLETED BY PAM ############## +# # +# These options are now handled by PAM. Please # +# edit the appropriate file in /etc/pam.d/ to # +# enable the equivalents of them. +# +############### + +#MOTD_FILE +#DIALUPS_CHECK_ENAB +#LASTLOG_ENAB +#MAIL_CHECK_ENAB +#OBSCURE_CHECKS_ENAB +#PORTTIME_CHECKS_ENAB +#SU_WHEEL_ONLY +#PASS_CHANGE_TRIES +#PASS_ALWAYS_WARN +#ENVIRON_FILE +#NOLOGINS_FILE +#ISSUE_FILE +#PASS_MIN_LEN +#PASS_MAX_LEN +#ULIMIT +#ENV_HZ +#CHFN_AUTH +#CHSH_AUTH +#FAIL_DELAY + +################# OBSOLETED ####################### +# # +# These options are no more handled by shadow. # +# # +# Shadow utilities will display a warning if they # +# still appear. # +# # +################################################### + +# CLOSE_SESSIONS +# LOGIN_STRING +# NO_PASSWORD_CONSOLE +# QMAIL_DIR + + + diff --git a/tests/tests/chroot/chsh/01_chsh--root/config_chroot/etc/pam.d/chsh b/tests/tests/chroot/chsh/01_chsh--root/config_chroot/etc/pam.d/chsh new file mode 100644 index 00000000..7eb604d7 --- /dev/null +++ b/tests/tests/chroot/chsh/01_chsh--root/config_chroot/etc/pam.d/chsh @@ -0,0 +1,20 @@ +# +# The PAM configuration file for the Shadow `chsh' service +# + +# This will not allow a user to change their shell unless +# their current one is listed in /etc/shells. This keeps +# accounts with special shells from changing them. +auth required pam_shells.so + +# This allows root to change user shell without being +# prompted for a password +auth sufficient pam_rootok.so + +# The standard Unix authentication modules, used with +# NIS (man nsswitch) as well as normal /etc/passwd and +# /etc/shadow entries. +@include common-auth +@include common-account +@include common-session + diff --git a/tests/tests/chroot/chsh/01_chsh--root/config_chroot/etc/pam.d/common-account b/tests/tests/chroot/chsh/01_chsh--root/config_chroot/etc/pam.d/common-account new file mode 100644 index 00000000..316b1733 --- /dev/null +++ b/tests/tests/chroot/chsh/01_chsh--root/config_chroot/etc/pam.d/common-account @@ -0,0 +1,25 @@ +# +# /etc/pam.d/common-account - authorization settings common to all services +# +# This file is included from other service-specific PAM config files, +# and should contain a list of the authorization modules that define +# the central access policy for use on the system. The default is to +# only deny service to users whose accounts are expired in /etc/shadow. +# +# As of pam 1.0.1-6, this file is managed by pam-auth-update by default. +# To take advantage of this, it is recommended that you configure any +# local modules either before or after the default block, and use +# pam-auth-update to manage selection of other modules. See +# pam-auth-update(8) for details. +# + +# here are the per-package modules (the "Primary" block) +account [success=1 new_authtok_reqd=done default=ignore] pam_unix.so +# here's the fallback if no module succeeds +account requisite pam_deny.so +# prime the stack with a positive return value if there isn't one already; +# this avoids us returning an error just because nothing sets a success code +# since the modules above will each just jump around +account required pam_permit.so +# and here are more per-package modules (the "Additional" block) +# end of pam-auth-update config diff --git a/tests/tests/chroot/chsh/01_chsh--root/config_chroot/etc/pam.d/common-auth b/tests/tests/chroot/chsh/01_chsh--root/config_chroot/etc/pam.d/common-auth new file mode 100644 index 00000000..5facfa29 --- /dev/null +++ b/tests/tests/chroot/chsh/01_chsh--root/config_chroot/etc/pam.d/common-auth @@ -0,0 +1,25 @@ +# +# /etc/pam.d/common-auth - authentication settings common to all services +# +# This file is included from other service-specific PAM config files, +# and should contain a list of the authentication modules that define +# the central authentication scheme for use on the system +# (e.g., /etc/shadow, LDAP, Kerberos, etc.). The default is to use the +# traditional Unix authentication mechanisms. +# +# As of pam 1.0.1-6, this file is managed by pam-auth-update by default. +# To take advantage of this, it is recommended that you configure any +# local modules either before or after the default block, and use +# pam-auth-update to manage selection of other modules. See +# pam-auth-update(8) for details. + +# here are the per-package modules (the "Primary" block) +auth [success=1 default=ignore] pam_unix.so nullok_secure +# here's the fallback if no module succeeds +auth requisite pam_deny.so +# prime the stack with a positive return value if there isn't one already; +# this avoids us returning an error just because nothing sets a success code +# since the modules above will each just jump around +auth required pam_permit.so +# and here are more per-package modules (the "Additional" block) +# end of pam-auth-update config diff --git a/tests/tests/chroot/chsh/01_chsh--root/config_chroot/etc/pam.d/common-session b/tests/tests/chroot/chsh/01_chsh--root/config_chroot/etc/pam.d/common-session new file mode 100644 index 00000000..4ad17292 --- /dev/null +++ b/tests/tests/chroot/chsh/01_chsh--root/config_chroot/etc/pam.d/common-session @@ -0,0 +1,25 @@ +# +# /etc/pam.d/common-session - session-related modules common to all services +# +# This file is included from other service-specific PAM config files, +# and should contain a list of modules that define tasks to be performed +# at the start and end of sessions of *any* kind (both interactive and +# non-interactive). +# +# As of pam 1.0.1-6, this file is managed by pam-auth-update by default. +# To take advantage of this, it is recommended that you configure any +# local modules either before or after the default block, and use +# pam-auth-update to manage selection of other modules. See +# pam-auth-update(8) for details. + +# here are the per-package modules (the "Primary" block) +session [default=1] pam_permit.so +# here's the fallback if no module succeeds +session requisite pam_deny.so +# prime the stack with a positive return value if there isn't one already; +# this avoids us returning an error just because nothing sets a success code +# since the modules above will each just jump around +session required pam_permit.so +# and here are more per-package modules (the "Additional" block) +session required pam_unix.so +# end of pam-auth-update config diff --git a/tests/tests/chroot/chsh/01_chsh--root/config_chroot/etc/passwd b/tests/tests/chroot/chsh/01_chsh--root/config_chroot/etc/passwd new file mode 100644 index 00000000..9bdeb8ce --- /dev/null +++ b/tests/tests/chroot/chsh/01_chsh--root/config_chroot/etc/passwd @@ -0,0 +1,21 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser:x:424242:424242::/home/:/bin/sh +testsuite::424243:424243::/home:/bin/bash diff --git a/tests/tests/chroot/chsh/01_chsh--root/config_chroot/etc/shadow b/tests/tests/chroot/chsh/01_chsh--root/config_chroot/etc/shadow new file mode 100644 index 00000000..038d5cf4 --- /dev/null +++ b/tests/tests/chroot/chsh/01_chsh--root/config_chroot/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: diff --git a/tests/tests/chroot/chsh/01_chsh--root/config_chroot/etc/shells b/tests/tests/chroot/chsh/01_chsh--root/config_chroot/etc/shells new file mode 100644 index 00000000..3cf5cc4f --- /dev/null +++ b/tests/tests/chroot/chsh/01_chsh--root/config_chroot/etc/shells @@ -0,0 +1,3 @@ +# /etc/shells: valid login shells +/bin/bash +/bin/dash diff --git a/tests/tests/chroot/chsh/01_chsh--root/data/passwd b/tests/tests/chroot/chsh/01_chsh--root/data/passwd new file mode 100644 index 00000000..72c8a866 --- /dev/null +++ b/tests/tests/chroot/chsh/01_chsh--root/data/passwd @@ -0,0 +1,21 @@ +root:x:0:0:root:/root:/bin/dash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser:x:424242:424242::/home/:/bin/sh +testsuite::424243:424243::/home:/bin/bash diff --git a/tests/tests/chroot/gpasswd/01_gpasswd--root/config.txt b/tests/tests/chroot/gpasswd/01_gpasswd--root/config.txt new file mode 100644 index 00000000..31f56359 --- /dev/null +++ b/tests/tests/chroot/gpasswd/01_gpasswd--root/config.txt @@ -0,0 +1,10 @@ +# no testsuite password +# root password: rootF00barbaz +# myuser password: myuserF00barbaz + +user foo, in group users (only in /etc/group) +user foo, in group tty (only in /etc/gshadow) +user foo, in group floppy +user foo, admin of group disk +user foo, admin and member of group fax +user foo, admin and member of group cdrom (only in /etc/gshadow) diff --git a/tests/tests/chroot/gpasswd/01_gpasswd--root/config/etc/default/useradd b/tests/tests/chroot/gpasswd/01_gpasswd--root/config/etc/default/useradd new file mode 100644 index 00000000..31c44abe --- /dev/null +++ b/tests/tests/chroot/gpasswd/01_gpasswd--root/config/etc/default/useradd @@ -0,0 +1,36 @@ +# Default values for useradd(8) +# +# The SHELL variable specifies the default login shell on your +# system. +# Similar to DHSELL in adduser. However, we use "sh" here because +# useradd is a low level utility and should be as general +# as possible +SHELL=/bin/foobar +# +# The default group for users +# 100=users on Debian systems +# Same as USERS_GID in adduser +# This argument is used when the -n flag is specified. +# The default behavior (when -n and -g are not specified) is to create a +# primary user group with the same name as the user being added to the +# system. +GROUP=10 +# +# The default home directory. Same as DHOME for adduser +HOME=/tmp +# +# The number of days after a password expires until the account +# is permanently disabled +INACTIVE=12 +# +# The default expire date +EXPIRE=2007-12-02 +# +# The SKEL variable specifies the directory containing "skeletal" user +# files; in other words, files such as a sample .profile that will be +# copied to the new user's home directory when it is created. +# SKEL=/etc/skel +# +# Defines whether the mail spool should be created while +# creating the account +# CREATE_MAIL_SPOOL=yes diff --git a/tests/tests/chroot/gpasswd/01_gpasswd--root/config/etc/group b/tests/tests/chroot/gpasswd/01_gpasswd--root/config/etc/group new file mode 100644 index 00000000..10123908 --- /dev/null +++ b/tests/tests/chroot/gpasswd/01_gpasswd--root/config/etc/group @@ -0,0 +1,41 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: diff --git a/tests/tests/chroot/gpasswd/01_gpasswd--root/config/etc/gshadow b/tests/tests/chroot/gpasswd/01_gpasswd--root/config/etc/gshadow new file mode 100644 index 00000000..ae424865 --- /dev/null +++ b/tests/tests/chroot/gpasswd/01_gpasswd--root/config/etc/gshadow @@ -0,0 +1,41 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: diff --git a/tests/tests/chroot/gpasswd/01_gpasswd--root/config/etc/passwd b/tests/tests/chroot/gpasswd/01_gpasswd--root/config/etc/passwd new file mode 100644 index 00000000..43fc135a --- /dev/null +++ b/tests/tests/chroot/gpasswd/01_gpasswd--root/config/etc/passwd @@ -0,0 +1,19 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false diff --git a/tests/tests/chroot/gpasswd/01_gpasswd--root/config/etc/shadow b/tests/tests/chroot/gpasswd/01_gpasswd--root/config/etc/shadow new file mode 100644 index 00000000..5f50d187 --- /dev/null +++ b/tests/tests/chroot/gpasswd/01_gpasswd--root/config/etc/shadow @@ -0,0 +1,19 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: diff --git a/tests/tests/chroot/gpasswd/01_gpasswd--root/config_chroot/etc/group b/tests/tests/chroot/gpasswd/01_gpasswd--root/config_chroot/etc/group new file mode 100644 index 00000000..d2a4b10a --- /dev/null +++ b/tests/tests/chroot/gpasswd/01_gpasswd--root/config_chroot/etc/group @@ -0,0 +1,42 @@ +staff:x:50: +root:x:0: +tty:x:5: +daemon:x:1: +bin:x:2: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +sys:x:3: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +adm:x:4: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: +disk:x:6: diff --git a/tests/tests/chroot/gpasswd/01_gpasswd--root/config_chroot/etc/gshadow b/tests/tests/chroot/gpasswd/01_gpasswd--root/config_chroot/etc/gshadow new file mode 100644 index 00000000..25bd55bd --- /dev/null +++ b/tests/tests/chroot/gpasswd/01_gpasswd--root/config_chroot/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: diff --git a/tests/tests/chroot/gpasswd/01_gpasswd--root/config_chroot/etc/login.defs b/tests/tests/chroot/gpasswd/01_gpasswd--root/config_chroot/etc/login.defs new file mode 100644 index 00000000..3b216aa1 --- /dev/null +++ b/tests/tests/chroot/gpasswd/01_gpasswd--root/config_chroot/etc/login.defs @@ -0,0 +1,334 @@ +# +# /etc/login.defs - Configuration control definitions for the login package. +# +# Three items must be defined: MAIL_DIR, ENV_SUPATH, and ENV_PATH. +# If unspecified, some arbitrary (and possibly incorrect) value will +# be assumed. All other items are optional - if not specified then +# the described action or option will be inhibited. +# +# Comment lines (lines beginning with "#") and blank lines are ignored. +# +# Modified for Linux. --marekm + +# REQUIRED for useradd/userdel/usermod +# Directory where mailboxes reside, _or_ name of file, relative to the +# home directory. If you _do_ define MAIL_DIR and MAIL_FILE, +# MAIL_DIR takes precedence. +# +# Essentially: +# - MAIL_DIR defines the location of users mail spool files +# (for mbox use) by appending the username to MAIL_DIR as defined +# below. +# - MAIL_FILE defines the location of the users mail spool files as the +# fully-qualified filename obtained by prepending the user home +# directory before $MAIL_FILE +# +# NOTE: This is no more used for setting up users MAIL environment variable +# which is, starting from shadow 4.0.12-1 in Debian, entirely the +# job of the pam_mail PAM modules +# See default PAM configuration files provided for +# login, su, etc. +# +# This is a temporary situation: setting these variables will soon +# move to /etc/default/useradd and the variables will then be +# no more supported +MAIL_DIR /var/mail +#MAIL_FILE .mail + +# +# Enable logging and display of /var/log/faillog login failure info. +# This option conflicts with the pam_tally PAM module. +# +FAILLOG_ENAB yes + +# +# Enable display of unknown usernames when login failures are recorded. +# +# WARNING: Unknown usernames may become world readable. +# See #290803 and #298773 for details about how this could become a security +# concern +LOG_UNKFAIL_ENAB no + +# +# Enable logging of successful logins +# +LOG_OK_LOGINS no + +# +# Enable "syslog" logging of su activity - in addition to sulog file logging. +# SYSLOG_SG_ENAB does the same for newgrp and sg. +# +SYSLOG_SU_ENAB yes +SYSLOG_SG_ENAB yes + +# +# If defined, all su activity is logged to this file. +# +#SULOG_FILE /var/log/sulog + +# +# If defined, file which maps tty line to TERM environment parameter. +# Each line of the file is in a format something like "vt100 tty01". +# +#TTYTYPE_FILE /etc/ttytype + +# +# If defined, login failures will be logged here in a utmp format +# last, when invoked as lastb, will read /var/log/btmp, so... +# +FTMP_FILE /var/log/btmp + +# +# If defined, the command name to display when running "su -". For +# example, if this is defined as "su" then a "ps" will display the +# command is "-su". If not defined, then "ps" would display the +# name of the shell actually being run, e.g. something like "-sh". +# +SU_NAME su + +# +# If defined, file which inhibits all the usual chatter during the login +# sequence. If a full pathname, then hushed mode will be enabled if the +# user's name or shell are found in the file. If not a full pathname, then +# hushed mode will be enabled if the file exists in the user's home directory. +# +HUSHLOGIN_FILE .hushlogin +#HUSHLOGIN_FILE /etc/hushlogins + +# +# *REQUIRED* The default PATH settings, for superuser and normal users. +# +# (they are minimal, add the rest in the shell startup files) +ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games + +# +# Terminal permissions +# +# TTYGROUP Login tty will be assigned this group ownership. +# TTYPERM Login tty will be set to this permission. +# +# If you have a "write" program which is "setgid" to a special group +# which owns the terminals, define TTYGROUP to the group number and +# TTYPERM to 0620. Otherwise leave TTYGROUP commented out and assign +# TTYPERM to either 622 or 600. +# +# In Debian /usr/bin/bsd-write or similar programs are setgid tty +# However, the default and recommended value for TTYPERM is still 0600 +# to not allow anyone to write to anyone else console or terminal + +# Users can still allow other people to write them by issuing +# the "mesg y" command. + +TTYGROUP tty +TTYPERM 0600 + +# +# Login configuration initializations: +# +# ERASECHAR Terminal ERASE character ('\010' = backspace). +# KILLCHAR Terminal KILL character ('\025' = CTRL/U). +# UMASK Default "umask" value. +# +# The ERASECHAR and KILLCHAR are used only on System V machines. +# +# UMASK is the default umask value for pam_umask and is used by +# useradd and newusers to set the mode of the new home directories. +# 022 is the "historical" value in Debian for UMASK +# 027, or even 077, could be considered better for privacy +# There is no One True Answer here : each sysadmin must make up their +# mind. +# +# Prefix these values with "0" to get octal, "0x" to get hexadecimal. +# +ERASECHAR 0177 +KILLCHAR 025 +UMASK 022 + +# +# Password aging controls: +# +# PASS_MAX_DAYS Maximum number of days a password may be used. +# PASS_MIN_DAYS Minimum number of days allowed between password changes. +# PASS_WARN_AGE Number of days warning given before a password expires. +# +PASS_MAX_DAYS 99999 +PASS_MIN_DAYS 0 +PASS_WARN_AGE 7 + +# +# Min/max values for automatic uid selection in useradd +# +UID_MIN 1000 +UID_MAX 60000 +# System accounts +#SYS_UID_MIN 100 +#SYS_UID_MAX 999 + +# +# Min/max values for automatic gid selection in groupadd +# +GID_MIN 1000 +GID_MAX 60000 +# System accounts +#SYS_GID_MIN 100 +#SYS_GID_MAX 999 + +# +# Max number of login retries if password is bad. This will most likely be +# overridden by PAM, since the default pam_unix module has it's own built +# in of 3 retries. However, this is a safe fallback in case you are using +# an authentication module that does not enforce PAM_MAXTRIES. +# +LOGIN_RETRIES 5 + +# +# Max time in seconds for login +# +LOGIN_TIMEOUT 60 + +# +# Which fields may be changed by regular users using chfn - use +# any combination of letters "frwh" (full name, room number, work +# phone, home phone). If not defined, no changes are allowed. +# For backward compatibility, "yes" = "rwh" and "no" = "frwh". +# +CHFN_RESTRICT rwh + +# +# Should login be allowed if we can't cd to the home directory? +# Default is no. +# +DEFAULT_HOME yes + +# +# If defined, this command is run when removing a user. +# It should remove any at/cron/print jobs etc. owned by +# the user to be removed (passed as the first argument). +# +#USERDEL_CMD /usr/sbin/userdel_local + +# +# If set to yes, userdel will remove the user's group if it contains no +# more members, and useradd will create by default a group with the name +# of the user. +# +# Other former uses of this variable such as setting the umask when +# user==primary group are not used in PAM environments, such as Debian +# +USERGROUPS_ENAB yes + +# +# Instead of the real user shell, the program specified by this parameter +# will be launched, although its visible name (argv[0]) will be the shell's. +# The program may do whatever it wants (logging, additional authentification, +# banner, ...) before running the actual shell. +# +# FAKE_SHELL /bin/fakeshell + +# +# If defined, either full pathname of a file containing device names or +# a ":" delimited list of device names. Root logins will be allowed only +# upon these devices. +# +# This variable is used by login and su. +# +#CONSOLE /etc/consoles +#CONSOLE console:tty01:tty02:tty03:tty04 + +# +# List of groups to add to the user's supplementary group set +# when logging in on the console (as determined by the CONSOLE +# setting). Default is none. +# +# Use with caution - it is possible for users to gain permanent +# access to these groups, even when not logged in on the console. +# How to do it is left as an exercise for the reader... +# +# This variable is used by login and su. +# +#CONSOLE_GROUPS floppy:audio:cdrom + +# +# If set to "yes", new passwords will be encrypted using the MD5-based +# algorithm compatible with the one used by recent releases of FreeBSD. +# It supports passwords of unlimited length and longer salt strings. +# Set to "no" if you need to copy encrypted passwords to other systems +# which don't understand the new algorithm. Default is "no". +# +# This variable is deprecated. You should use ENCRYPT_METHOD. +# +#MD5_CRYPT_ENAB no + +# +# If set to MD5 , MD5-based algorithm will be used for encrypting password +# If set to SHA256, SHA256-based algorithm will be used for encrypting password +# If set to SHA512, SHA512-based algorithm will be used for encrypting password +# If set to DES, DES-based algorithm will be used for encrypting password (default) +# Overrides the MD5_CRYPT_ENAB option +# +# Note: It is recommended to use a value consistent with +# the PAM modules configuration. +# +#ENCRYPT_METHOD DES + +# +# Only used if ENCRYPT_METHOD is set to SHA256 or SHA512. +# +# Define the number of SHA rounds. +# With a lot of rounds, it is more difficult to brute forcing the password. +# But note also that it more CPU resources will be needed to authenticate +# users. +# +# If not specified, the libc will choose the default number of rounds (5000). +# The values must be inside the 1000-999999999 range. +# If only one of the MIN or MAX values is set, then this value will be used. +# If MIN > MAX, the highest value will be used. +# +# SHA_CRYPT_MIN_ROUNDS 5000 +# SHA_CRYPT_MAX_ROUNDS 5000 + +################# OBSOLETED BY PAM ############## +# # +# These options are now handled by PAM. Please # +# edit the appropriate file in /etc/pam.d/ to # +# enable the equivalents of them. +# +############### + +#MOTD_FILE +#DIALUPS_CHECK_ENAB +#LASTLOG_ENAB +#MAIL_CHECK_ENAB +#OBSCURE_CHECKS_ENAB +#PORTTIME_CHECKS_ENAB +#SU_WHEEL_ONLY +#PASS_CHANGE_TRIES +#PASS_ALWAYS_WARN +#ENVIRON_FILE +#NOLOGINS_FILE +#ISSUE_FILE +#PASS_MIN_LEN +#PASS_MAX_LEN +#ULIMIT +#ENV_HZ +#CHFN_AUTH +#CHSH_AUTH +#FAIL_DELAY + +################# OBSOLETED ####################### +# # +# These options are no more handled by shadow. # +# # +# Shadow utilities will display a warning if they # +# still appear. # +# # +################################################### + +# CLOSE_SESSIONS +# LOGIN_STRING +# NO_PASSWORD_CONSOLE +# QMAIL_DIR + + + diff --git a/tests/tests/chroot/gpasswd/01_gpasswd--root/config_chroot/etc/passwd b/tests/tests/chroot/gpasswd/01_gpasswd--root/config_chroot/etc/passwd new file mode 100644 index 00000000..9bdeb8ce --- /dev/null +++ b/tests/tests/chroot/gpasswd/01_gpasswd--root/config_chroot/etc/passwd @@ -0,0 +1,21 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser:x:424242:424242::/home/:/bin/sh +testsuite::424243:424243::/home:/bin/bash diff --git a/tests/tests/chroot/gpasswd/01_gpasswd--root/config_chroot/etc/shadow b/tests/tests/chroot/gpasswd/01_gpasswd--root/config_chroot/etc/shadow new file mode 100644 index 00000000..038d5cf4 --- /dev/null +++ b/tests/tests/chroot/gpasswd/01_gpasswd--root/config_chroot/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: diff --git a/tests/tests/chroot/gpasswd/01_gpasswd--root/data/group b/tests/tests/chroot/gpasswd/01_gpasswd--root/data/group new file mode 100644 index 00000000..5c28b637 --- /dev/null +++ b/tests/tests/chroot/gpasswd/01_gpasswd--root/data/group @@ -0,0 +1,42 @@ +staff:x:50: +root:x:0: +tty:x:5: +daemon:x:1: +bin:x:2: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +sys:x:3: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +adm:x:4: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +games:x:60: +users:x:100:root +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: +disk:x:6: diff --git a/tests/tests/chroot/gpasswd/01_gpasswd--root/data/gshadow b/tests/tests/chroot/gpasswd/01_gpasswd--root/data/gshadow new file mode 100644 index 00000000..7b869c21 --- /dev/null +++ b/tests/tests/chroot/gpasswd/01_gpasswd--root/data/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*::root +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: diff --git a/tests/tests/chroot/gpasswd/01_gpasswd--root/gpasswd.test b/tests/tests/chroot/gpasswd/01_gpasswd--root/gpasswd.test new file mode 100755 index 00000000..8e861aac --- /dev/null +++ b/tests/tests/chroot/gpasswd/01_gpasswd--root/gpasswd.test @@ -0,0 +1,52 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "gpasswd can change a group in a chroot" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; clean_chroot; restore_config' 0 + +change_config + +prepare_chroot + +ls tmp/root/lib + +echo -n "Chang group in chroot (gpasswd -a root users -Q $PWD/tmp/root)..." +gpasswd -a root users -Q $PWD/tmp/root +echo "OK" + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +../../../common/compare_file.pl config_chroot/etc/passwd tmp/root/etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +../../../common/compare_file.pl data/group tmp/root/etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +../../../common/compare_file.pl config_chroot/etc/shadow tmp/root/etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +../../../common/compare_file.pl data/gshadow tmp/root/etc/gshadow +echo "OK" + +rm -f tmp/root/etc/.pwd.lock +rm -f tmp/root/etc/group- +rm -f tmp/root/etc/gshadow- +clean_chroot + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chroot/groupadd/01_groupadd--root/config.txt b/tests/tests/chroot/groupadd/01_groupadd--root/config.txt new file mode 100644 index 00000000..31f56359 --- /dev/null +++ b/tests/tests/chroot/groupadd/01_groupadd--root/config.txt @@ -0,0 +1,10 @@ +# no testsuite password +# root password: rootF00barbaz +# myuser password: myuserF00barbaz + +user foo, in group users (only in /etc/group) +user foo, in group tty (only in /etc/gshadow) +user foo, in group floppy +user foo, admin of group disk +user foo, admin and member of group fax +user foo, admin and member of group cdrom (only in /etc/gshadow) diff --git a/tests/tests/chroot/groupadd/01_groupadd--root/config/etc/default/useradd b/tests/tests/chroot/groupadd/01_groupadd--root/config/etc/default/useradd new file mode 100644 index 00000000..31c44abe --- /dev/null +++ b/tests/tests/chroot/groupadd/01_groupadd--root/config/etc/default/useradd @@ -0,0 +1,36 @@ +# Default values for useradd(8) +# +# The SHELL variable specifies the default login shell on your +# system. +# Similar to DHSELL in adduser. However, we use "sh" here because +# useradd is a low level utility and should be as general +# as possible +SHELL=/bin/foobar +# +# The default group for users +# 100=users on Debian systems +# Same as USERS_GID in adduser +# This argument is used when the -n flag is specified. +# The default behavior (when -n and -g are not specified) is to create a +# primary user group with the same name as the user being added to the +# system. +GROUP=10 +# +# The default home directory. Same as DHOME for adduser +HOME=/tmp +# +# The number of days after a password expires until the account +# is permanently disabled +INACTIVE=12 +# +# The default expire date +EXPIRE=2007-12-02 +# +# The SKEL variable specifies the directory containing "skeletal" user +# files; in other words, files such as a sample .profile that will be +# copied to the new user's home directory when it is created. +# SKEL=/etc/skel +# +# Defines whether the mail spool should be created while +# creating the account +# CREATE_MAIL_SPOOL=yes diff --git a/tests/tests/chroot/groupadd/01_groupadd--root/config/etc/group b/tests/tests/chroot/groupadd/01_groupadd--root/config/etc/group new file mode 100644 index 00000000..10123908 --- /dev/null +++ b/tests/tests/chroot/groupadd/01_groupadd--root/config/etc/group @@ -0,0 +1,41 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: diff --git a/tests/tests/chroot/groupadd/01_groupadd--root/config/etc/gshadow b/tests/tests/chroot/groupadd/01_groupadd--root/config/etc/gshadow new file mode 100644 index 00000000..ae424865 --- /dev/null +++ b/tests/tests/chroot/groupadd/01_groupadd--root/config/etc/gshadow @@ -0,0 +1,41 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: diff --git a/tests/tests/chroot/groupadd/01_groupadd--root/config/etc/passwd b/tests/tests/chroot/groupadd/01_groupadd--root/config/etc/passwd new file mode 100644 index 00000000..43fc135a --- /dev/null +++ b/tests/tests/chroot/groupadd/01_groupadd--root/config/etc/passwd @@ -0,0 +1,19 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false diff --git a/tests/tests/chroot/groupadd/01_groupadd--root/config/etc/shadow b/tests/tests/chroot/groupadd/01_groupadd--root/config/etc/shadow new file mode 100644 index 00000000..5f50d187 --- /dev/null +++ b/tests/tests/chroot/groupadd/01_groupadd--root/config/etc/shadow @@ -0,0 +1,19 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: diff --git a/tests/tests/chroot/groupadd/01_groupadd--root/config_chroot/etc/group b/tests/tests/chroot/groupadd/01_groupadd--root/config_chroot/etc/group new file mode 100644 index 00000000..245cc9cf --- /dev/null +++ b/tests/tests/chroot/groupadd/01_groupadd--root/config_chroot/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: diff --git a/tests/tests/chroot/groupadd/01_groupadd--root/config_chroot/etc/gshadow b/tests/tests/chroot/groupadd/01_groupadd--root/config_chroot/etc/gshadow new file mode 100644 index 00000000..25bd55bd --- /dev/null +++ b/tests/tests/chroot/groupadd/01_groupadd--root/config_chroot/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: diff --git a/tests/tests/chroot/groupadd/01_groupadd--root/config_chroot/etc/login.defs b/tests/tests/chroot/groupadd/01_groupadd--root/config_chroot/etc/login.defs new file mode 100644 index 00000000..3b216aa1 --- /dev/null +++ b/tests/tests/chroot/groupadd/01_groupadd--root/config_chroot/etc/login.defs @@ -0,0 +1,334 @@ +# +# /etc/login.defs - Configuration control definitions for the login package. +# +# Three items must be defined: MAIL_DIR, ENV_SUPATH, and ENV_PATH. +# If unspecified, some arbitrary (and possibly incorrect) value will +# be assumed. All other items are optional - if not specified then +# the described action or option will be inhibited. +# +# Comment lines (lines beginning with "#") and blank lines are ignored. +# +# Modified for Linux. --marekm + +# REQUIRED for useradd/userdel/usermod +# Directory where mailboxes reside, _or_ name of file, relative to the +# home directory. If you _do_ define MAIL_DIR and MAIL_FILE, +# MAIL_DIR takes precedence. +# +# Essentially: +# - MAIL_DIR defines the location of users mail spool files +# (for mbox use) by appending the username to MAIL_DIR as defined +# below. +# - MAIL_FILE defines the location of the users mail spool files as the +# fully-qualified filename obtained by prepending the user home +# directory before $MAIL_FILE +# +# NOTE: This is no more used for setting up users MAIL environment variable +# which is, starting from shadow 4.0.12-1 in Debian, entirely the +# job of the pam_mail PAM modules +# See default PAM configuration files provided for +# login, su, etc. +# +# This is a temporary situation: setting these variables will soon +# move to /etc/default/useradd and the variables will then be +# no more supported +MAIL_DIR /var/mail +#MAIL_FILE .mail + +# +# Enable logging and display of /var/log/faillog login failure info. +# This option conflicts with the pam_tally PAM module. +# +FAILLOG_ENAB yes + +# +# Enable display of unknown usernames when login failures are recorded. +# +# WARNING: Unknown usernames may become world readable. +# See #290803 and #298773 for details about how this could become a security +# concern +LOG_UNKFAIL_ENAB no + +# +# Enable logging of successful logins +# +LOG_OK_LOGINS no + +# +# Enable "syslog" logging of su activity - in addition to sulog file logging. +# SYSLOG_SG_ENAB does the same for newgrp and sg. +# +SYSLOG_SU_ENAB yes +SYSLOG_SG_ENAB yes + +# +# If defined, all su activity is logged to this file. +# +#SULOG_FILE /var/log/sulog + +# +# If defined, file which maps tty line to TERM environment parameter. +# Each line of the file is in a format something like "vt100 tty01". +# +#TTYTYPE_FILE /etc/ttytype + +# +# If defined, login failures will be logged here in a utmp format +# last, when invoked as lastb, will read /var/log/btmp, so... +# +FTMP_FILE /var/log/btmp + +# +# If defined, the command name to display when running "su -". For +# example, if this is defined as "su" then a "ps" will display the +# command is "-su". If not defined, then "ps" would display the +# name of the shell actually being run, e.g. something like "-sh". +# +SU_NAME su + +# +# If defined, file which inhibits all the usual chatter during the login +# sequence. If a full pathname, then hushed mode will be enabled if the +# user's name or shell are found in the file. If not a full pathname, then +# hushed mode will be enabled if the file exists in the user's home directory. +# +HUSHLOGIN_FILE .hushlogin +#HUSHLOGIN_FILE /etc/hushlogins + +# +# *REQUIRED* The default PATH settings, for superuser and normal users. +# +# (they are minimal, add the rest in the shell startup files) +ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games + +# +# Terminal permissions +# +# TTYGROUP Login tty will be assigned this group ownership. +# TTYPERM Login tty will be set to this permission. +# +# If you have a "write" program which is "setgid" to a special group +# which owns the terminals, define TTYGROUP to the group number and +# TTYPERM to 0620. Otherwise leave TTYGROUP commented out and assign +# TTYPERM to either 622 or 600. +# +# In Debian /usr/bin/bsd-write or similar programs are setgid tty +# However, the default and recommended value for TTYPERM is still 0600 +# to not allow anyone to write to anyone else console or terminal + +# Users can still allow other people to write them by issuing +# the "mesg y" command. + +TTYGROUP tty +TTYPERM 0600 + +# +# Login configuration initializations: +# +# ERASECHAR Terminal ERASE character ('\010' = backspace). +# KILLCHAR Terminal KILL character ('\025' = CTRL/U). +# UMASK Default "umask" value. +# +# The ERASECHAR and KILLCHAR are used only on System V machines. +# +# UMASK is the default umask value for pam_umask and is used by +# useradd and newusers to set the mode of the new home directories. +# 022 is the "historical" value in Debian for UMASK +# 027, or even 077, could be considered better for privacy +# There is no One True Answer here : each sysadmin must make up their +# mind. +# +# Prefix these values with "0" to get octal, "0x" to get hexadecimal. +# +ERASECHAR 0177 +KILLCHAR 025 +UMASK 022 + +# +# Password aging controls: +# +# PASS_MAX_DAYS Maximum number of days a password may be used. +# PASS_MIN_DAYS Minimum number of days allowed between password changes. +# PASS_WARN_AGE Number of days warning given before a password expires. +# +PASS_MAX_DAYS 99999 +PASS_MIN_DAYS 0 +PASS_WARN_AGE 7 + +# +# Min/max values for automatic uid selection in useradd +# +UID_MIN 1000 +UID_MAX 60000 +# System accounts +#SYS_UID_MIN 100 +#SYS_UID_MAX 999 + +# +# Min/max values for automatic gid selection in groupadd +# +GID_MIN 1000 +GID_MAX 60000 +# System accounts +#SYS_GID_MIN 100 +#SYS_GID_MAX 999 + +# +# Max number of login retries if password is bad. This will most likely be +# overridden by PAM, since the default pam_unix module has it's own built +# in of 3 retries. However, this is a safe fallback in case you are using +# an authentication module that does not enforce PAM_MAXTRIES. +# +LOGIN_RETRIES 5 + +# +# Max time in seconds for login +# +LOGIN_TIMEOUT 60 + +# +# Which fields may be changed by regular users using chfn - use +# any combination of letters "frwh" (full name, room number, work +# phone, home phone). If not defined, no changes are allowed. +# For backward compatibility, "yes" = "rwh" and "no" = "frwh". +# +CHFN_RESTRICT rwh + +# +# Should login be allowed if we can't cd to the home directory? +# Default is no. +# +DEFAULT_HOME yes + +# +# If defined, this command is run when removing a user. +# It should remove any at/cron/print jobs etc. owned by +# the user to be removed (passed as the first argument). +# +#USERDEL_CMD /usr/sbin/userdel_local + +# +# If set to yes, userdel will remove the user's group if it contains no +# more members, and useradd will create by default a group with the name +# of the user. +# +# Other former uses of this variable such as setting the umask when +# user==primary group are not used in PAM environments, such as Debian +# +USERGROUPS_ENAB yes + +# +# Instead of the real user shell, the program specified by this parameter +# will be launched, although its visible name (argv[0]) will be the shell's. +# The program may do whatever it wants (logging, additional authentification, +# banner, ...) before running the actual shell. +# +# FAKE_SHELL /bin/fakeshell + +# +# If defined, either full pathname of a file containing device names or +# a ":" delimited list of device names. Root logins will be allowed only +# upon these devices. +# +# This variable is used by login and su. +# +#CONSOLE /etc/consoles +#CONSOLE console:tty01:tty02:tty03:tty04 + +# +# List of groups to add to the user's supplementary group set +# when logging in on the console (as determined by the CONSOLE +# setting). Default is none. +# +# Use with caution - it is possible for users to gain permanent +# access to these groups, even when not logged in on the console. +# How to do it is left as an exercise for the reader... +# +# This variable is used by login and su. +# +#CONSOLE_GROUPS floppy:audio:cdrom + +# +# If set to "yes", new passwords will be encrypted using the MD5-based +# algorithm compatible with the one used by recent releases of FreeBSD. +# It supports passwords of unlimited length and longer salt strings. +# Set to "no" if you need to copy encrypted passwords to other systems +# which don't understand the new algorithm. Default is "no". +# +# This variable is deprecated. You should use ENCRYPT_METHOD. +# +#MD5_CRYPT_ENAB no + +# +# If set to MD5 , MD5-based algorithm will be used for encrypting password +# If set to SHA256, SHA256-based algorithm will be used for encrypting password +# If set to SHA512, SHA512-based algorithm will be used for encrypting password +# If set to DES, DES-based algorithm will be used for encrypting password (default) +# Overrides the MD5_CRYPT_ENAB option +# +# Note: It is recommended to use a value consistent with +# the PAM modules configuration. +# +#ENCRYPT_METHOD DES + +# +# Only used if ENCRYPT_METHOD is set to SHA256 or SHA512. +# +# Define the number of SHA rounds. +# With a lot of rounds, it is more difficult to brute forcing the password. +# But note also that it more CPU resources will be needed to authenticate +# users. +# +# If not specified, the libc will choose the default number of rounds (5000). +# The values must be inside the 1000-999999999 range. +# If only one of the MIN or MAX values is set, then this value will be used. +# If MIN > MAX, the highest value will be used. +# +# SHA_CRYPT_MIN_ROUNDS 5000 +# SHA_CRYPT_MAX_ROUNDS 5000 + +################# OBSOLETED BY PAM ############## +# # +# These options are now handled by PAM. Please # +# edit the appropriate file in /etc/pam.d/ to # +# enable the equivalents of them. +# +############### + +#MOTD_FILE +#DIALUPS_CHECK_ENAB +#LASTLOG_ENAB +#MAIL_CHECK_ENAB +#OBSCURE_CHECKS_ENAB +#PORTTIME_CHECKS_ENAB +#SU_WHEEL_ONLY +#PASS_CHANGE_TRIES +#PASS_ALWAYS_WARN +#ENVIRON_FILE +#NOLOGINS_FILE +#ISSUE_FILE +#PASS_MIN_LEN +#PASS_MAX_LEN +#ULIMIT +#ENV_HZ +#CHFN_AUTH +#CHSH_AUTH +#FAIL_DELAY + +################# OBSOLETED ####################### +# # +# These options are no more handled by shadow. # +# # +# Shadow utilities will display a warning if they # +# still appear. # +# # +################################################### + +# CLOSE_SESSIONS +# LOGIN_STRING +# NO_PASSWORD_CONSOLE +# QMAIL_DIR + + + diff --git a/tests/tests/chroot/groupadd/01_groupadd--root/config_chroot/etc/passwd b/tests/tests/chroot/groupadd/01_groupadd--root/config_chroot/etc/passwd new file mode 100644 index 00000000..9bdeb8ce --- /dev/null +++ b/tests/tests/chroot/groupadd/01_groupadd--root/config_chroot/etc/passwd @@ -0,0 +1,21 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser:x:424242:424242::/home/:/bin/sh +testsuite::424243:424243::/home:/bin/bash diff --git a/tests/tests/chroot/groupadd/01_groupadd--root/config_chroot/etc/shadow b/tests/tests/chroot/groupadd/01_groupadd--root/config_chroot/etc/shadow new file mode 100644 index 00000000..038d5cf4 --- /dev/null +++ b/tests/tests/chroot/groupadd/01_groupadd--root/config_chroot/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: diff --git a/tests/tests/chroot/groupadd/01_groupadd--root/data/group b/tests/tests/chroot/groupadd/01_groupadd--root/data/group new file mode 100644 index 00000000..ffc452fd --- /dev/null +++ b/tests/tests/chroot/groupadd/01_groupadd--root/data/group @@ -0,0 +1,43 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: +foo:x:1000: diff --git a/tests/tests/chroot/groupadd/01_groupadd--root/data/gshadow b/tests/tests/chroot/groupadd/01_groupadd--root/data/gshadow new file mode 100644 index 00000000..e4b350df --- /dev/null +++ b/tests/tests/chroot/groupadd/01_groupadd--root/data/gshadow @@ -0,0 +1,43 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: +foo:!:: diff --git a/tests/tests/chroot/groupadd/01_groupadd--root/groupadd.test b/tests/tests/chroot/groupadd/01_groupadd--root/groupadd.test new file mode 100755 index 00000000..26f4c9b7 --- /dev/null +++ b/tests/tests/chroot/groupadd/01_groupadd--root/groupadd.test @@ -0,0 +1,52 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "groupadd can add a group in a chroot" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; clean_chroot; restore_config' 0 + +change_config + +prepare_chroot + +echo -n "Add group foo in chroot (groupadd --root $PWD/tmp/root foo)..." +groupadd --root $PWD/tmp/root foo +echo "OK" + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +../../../common/compare_file.pl config_chroot/etc/passwd tmp/root/etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +../../../common/compare_file.pl data/group tmp/root/etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +../../../common/compare_file.pl config_chroot/etc/shadow tmp/root/etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +../../../common/compare_file.pl data/gshadow tmp/root/etc/gshadow +echo "OK" + +rm -f tmp/root/etc/.pwd.lock +rm -f tmp/root/etc/passwd- +rm -f tmp/root/etc/group- +rm -f tmp/root/etc/shadow- +rm -f tmp/root/etc/gshadow- +clean_chroot + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chroot/groupdel/01_groupdel--root/config.txt b/tests/tests/chroot/groupdel/01_groupdel--root/config.txt new file mode 100644 index 00000000..31f56359 --- /dev/null +++ b/tests/tests/chroot/groupdel/01_groupdel--root/config.txt @@ -0,0 +1,10 @@ +# no testsuite password +# root password: rootF00barbaz +# myuser password: myuserF00barbaz + +user foo, in group users (only in /etc/group) +user foo, in group tty (only in /etc/gshadow) +user foo, in group floppy +user foo, admin of group disk +user foo, admin and member of group fax +user foo, admin and member of group cdrom (only in /etc/gshadow) diff --git a/tests/tests/chroot/groupdel/01_groupdel--root/config/etc/default/useradd b/tests/tests/chroot/groupdel/01_groupdel--root/config/etc/default/useradd new file mode 100644 index 00000000..31c44abe --- /dev/null +++ b/tests/tests/chroot/groupdel/01_groupdel--root/config/etc/default/useradd @@ -0,0 +1,36 @@ +# Default values for useradd(8) +# +# The SHELL variable specifies the default login shell on your +# system. +# Similar to DHSELL in adduser. However, we use "sh" here because +# useradd is a low level utility and should be as general +# as possible +SHELL=/bin/foobar +# +# The default group for users +# 100=users on Debian systems +# Same as USERS_GID in adduser +# This argument is used when the -n flag is specified. +# The default behavior (when -n and -g are not specified) is to create a +# primary user group with the same name as the user being added to the +# system. +GROUP=10 +# +# The default home directory. Same as DHOME for adduser +HOME=/tmp +# +# The number of days after a password expires until the account +# is permanently disabled +INACTIVE=12 +# +# The default expire date +EXPIRE=2007-12-02 +# +# The SKEL variable specifies the directory containing "skeletal" user +# files; in other words, files such as a sample .profile that will be +# copied to the new user's home directory when it is created. +# SKEL=/etc/skel +# +# Defines whether the mail spool should be created while +# creating the account +# CREATE_MAIL_SPOOL=yes diff --git a/tests/tests/chroot/groupdel/01_groupdel--root/config/etc/group b/tests/tests/chroot/groupdel/01_groupdel--root/config/etc/group new file mode 100644 index 00000000..10123908 --- /dev/null +++ b/tests/tests/chroot/groupdel/01_groupdel--root/config/etc/group @@ -0,0 +1,41 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: diff --git a/tests/tests/chroot/groupdel/01_groupdel--root/config/etc/gshadow b/tests/tests/chroot/groupdel/01_groupdel--root/config/etc/gshadow new file mode 100644 index 00000000..ae424865 --- /dev/null +++ b/tests/tests/chroot/groupdel/01_groupdel--root/config/etc/gshadow @@ -0,0 +1,41 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: diff --git a/tests/tests/chroot/groupdel/01_groupdel--root/config/etc/passwd b/tests/tests/chroot/groupdel/01_groupdel--root/config/etc/passwd new file mode 100644 index 00000000..43fc135a --- /dev/null +++ b/tests/tests/chroot/groupdel/01_groupdel--root/config/etc/passwd @@ -0,0 +1,19 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false diff --git a/tests/tests/chroot/groupdel/01_groupdel--root/config/etc/shadow b/tests/tests/chroot/groupdel/01_groupdel--root/config/etc/shadow new file mode 100644 index 00000000..5f50d187 --- /dev/null +++ b/tests/tests/chroot/groupdel/01_groupdel--root/config/etc/shadow @@ -0,0 +1,19 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: diff --git a/tests/tests/chroot/groupdel/01_groupdel--root/config_chroot/etc/group b/tests/tests/chroot/groupdel/01_groupdel--root/config_chroot/etc/group new file mode 100644 index 00000000..245cc9cf --- /dev/null +++ b/tests/tests/chroot/groupdel/01_groupdel--root/config_chroot/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: diff --git a/tests/tests/chroot/groupdel/01_groupdel--root/config_chroot/etc/gshadow b/tests/tests/chroot/groupdel/01_groupdel--root/config_chroot/etc/gshadow new file mode 100644 index 00000000..25bd55bd --- /dev/null +++ b/tests/tests/chroot/groupdel/01_groupdel--root/config_chroot/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: diff --git a/tests/tests/chroot/groupdel/01_groupdel--root/config_chroot/etc/login.defs b/tests/tests/chroot/groupdel/01_groupdel--root/config_chroot/etc/login.defs new file mode 100644 index 00000000..3b216aa1 --- /dev/null +++ b/tests/tests/chroot/groupdel/01_groupdel--root/config_chroot/etc/login.defs @@ -0,0 +1,334 @@ +# +# /etc/login.defs - Configuration control definitions for the login package. +# +# Three items must be defined: MAIL_DIR, ENV_SUPATH, and ENV_PATH. +# If unspecified, some arbitrary (and possibly incorrect) value will +# be assumed. All other items are optional - if not specified then +# the described action or option will be inhibited. +# +# Comment lines (lines beginning with "#") and blank lines are ignored. +# +# Modified for Linux. --marekm + +# REQUIRED for useradd/userdel/usermod +# Directory where mailboxes reside, _or_ name of file, relative to the +# home directory. If you _do_ define MAIL_DIR and MAIL_FILE, +# MAIL_DIR takes precedence. +# +# Essentially: +# - MAIL_DIR defines the location of users mail spool files +# (for mbox use) by appending the username to MAIL_DIR as defined +# below. +# - MAIL_FILE defines the location of the users mail spool files as the +# fully-qualified filename obtained by prepending the user home +# directory before $MAIL_FILE +# +# NOTE: This is no more used for setting up users MAIL environment variable +# which is, starting from shadow 4.0.12-1 in Debian, entirely the +# job of the pam_mail PAM modules +# See default PAM configuration files provided for +# login, su, etc. +# +# This is a temporary situation: setting these variables will soon +# move to /etc/default/useradd and the variables will then be +# no more supported +MAIL_DIR /var/mail +#MAIL_FILE .mail + +# +# Enable logging and display of /var/log/faillog login failure info. +# This option conflicts with the pam_tally PAM module. +# +FAILLOG_ENAB yes + +# +# Enable display of unknown usernames when login failures are recorded. +# +# WARNING: Unknown usernames may become world readable. +# See #290803 and #298773 for details about how this could become a security +# concern +LOG_UNKFAIL_ENAB no + +# +# Enable logging of successful logins +# +LOG_OK_LOGINS no + +# +# Enable "syslog" logging of su activity - in addition to sulog file logging. +# SYSLOG_SG_ENAB does the same for newgrp and sg. +# +SYSLOG_SU_ENAB yes +SYSLOG_SG_ENAB yes + +# +# If defined, all su activity is logged to this file. +# +#SULOG_FILE /var/log/sulog + +# +# If defined, file which maps tty line to TERM environment parameter. +# Each line of the file is in a format something like "vt100 tty01". +# +#TTYTYPE_FILE /etc/ttytype + +# +# If defined, login failures will be logged here in a utmp format +# last, when invoked as lastb, will read /var/log/btmp, so... +# +FTMP_FILE /var/log/btmp + +# +# If defined, the command name to display when running "su -". For +# example, if this is defined as "su" then a "ps" will display the +# command is "-su". If not defined, then "ps" would display the +# name of the shell actually being run, e.g. something like "-sh". +# +SU_NAME su + +# +# If defined, file which inhibits all the usual chatter during the login +# sequence. If a full pathname, then hushed mode will be enabled if the +# user's name or shell are found in the file. If not a full pathname, then +# hushed mode will be enabled if the file exists in the user's home directory. +# +HUSHLOGIN_FILE .hushlogin +#HUSHLOGIN_FILE /etc/hushlogins + +# +# *REQUIRED* The default PATH settings, for superuser and normal users. +# +# (they are minimal, add the rest in the shell startup files) +ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games + +# +# Terminal permissions +# +# TTYGROUP Login tty will be assigned this group ownership. +# TTYPERM Login tty will be set to this permission. +# +# If you have a "write" program which is "setgid" to a special group +# which owns the terminals, define TTYGROUP to the group number and +# TTYPERM to 0620. Otherwise leave TTYGROUP commented out and assign +# TTYPERM to either 622 or 600. +# +# In Debian /usr/bin/bsd-write or similar programs are setgid tty +# However, the default and recommended value for TTYPERM is still 0600 +# to not allow anyone to write to anyone else console or terminal + +# Users can still allow other people to write them by issuing +# the "mesg y" command. + +TTYGROUP tty +TTYPERM 0600 + +# +# Login configuration initializations: +# +# ERASECHAR Terminal ERASE character ('\010' = backspace). +# KILLCHAR Terminal KILL character ('\025' = CTRL/U). +# UMASK Default "umask" value. +# +# The ERASECHAR and KILLCHAR are used only on System V machines. +# +# UMASK is the default umask value for pam_umask and is used by +# useradd and newusers to set the mode of the new home directories. +# 022 is the "historical" value in Debian for UMASK +# 027, or even 077, could be considered better for privacy +# There is no One True Answer here : each sysadmin must make up their +# mind. +# +# Prefix these values with "0" to get octal, "0x" to get hexadecimal. +# +ERASECHAR 0177 +KILLCHAR 025 +UMASK 022 + +# +# Password aging controls: +# +# PASS_MAX_DAYS Maximum number of days a password may be used. +# PASS_MIN_DAYS Minimum number of days allowed between password changes. +# PASS_WARN_AGE Number of days warning given before a password expires. +# +PASS_MAX_DAYS 99999 +PASS_MIN_DAYS 0 +PASS_WARN_AGE 7 + +# +# Min/max values for automatic uid selection in useradd +# +UID_MIN 1000 +UID_MAX 60000 +# System accounts +#SYS_UID_MIN 100 +#SYS_UID_MAX 999 + +# +# Min/max values for automatic gid selection in groupadd +# +GID_MIN 1000 +GID_MAX 60000 +# System accounts +#SYS_GID_MIN 100 +#SYS_GID_MAX 999 + +# +# Max number of login retries if password is bad. This will most likely be +# overridden by PAM, since the default pam_unix module has it's own built +# in of 3 retries. However, this is a safe fallback in case you are using +# an authentication module that does not enforce PAM_MAXTRIES. +# +LOGIN_RETRIES 5 + +# +# Max time in seconds for login +# +LOGIN_TIMEOUT 60 + +# +# Which fields may be changed by regular users using chfn - use +# any combination of letters "frwh" (full name, room number, work +# phone, home phone). If not defined, no changes are allowed. +# For backward compatibility, "yes" = "rwh" and "no" = "frwh". +# +CHFN_RESTRICT rwh + +# +# Should login be allowed if we can't cd to the home directory? +# Default is no. +# +DEFAULT_HOME yes + +# +# If defined, this command is run when removing a user. +# It should remove any at/cron/print jobs etc. owned by +# the user to be removed (passed as the first argument). +# +#USERDEL_CMD /usr/sbin/userdel_local + +# +# If set to yes, userdel will remove the user's group if it contains no +# more members, and useradd will create by default a group with the name +# of the user. +# +# Other former uses of this variable such as setting the umask when +# user==primary group are not used in PAM environments, such as Debian +# +USERGROUPS_ENAB yes + +# +# Instead of the real user shell, the program specified by this parameter +# will be launched, although its visible name (argv[0]) will be the shell's. +# The program may do whatever it wants (logging, additional authentification, +# banner, ...) before running the actual shell. +# +# FAKE_SHELL /bin/fakeshell + +# +# If defined, either full pathname of a file containing device names or +# a ":" delimited list of device names. Root logins will be allowed only +# upon these devices. +# +# This variable is used by login and su. +# +#CONSOLE /etc/consoles +#CONSOLE console:tty01:tty02:tty03:tty04 + +# +# List of groups to add to the user's supplementary group set +# when logging in on the console (as determined by the CONSOLE +# setting). Default is none. +# +# Use with caution - it is possible for users to gain permanent +# access to these groups, even when not logged in on the console. +# How to do it is left as an exercise for the reader... +# +# This variable is used by login and su. +# +#CONSOLE_GROUPS floppy:audio:cdrom + +# +# If set to "yes", new passwords will be encrypted using the MD5-based +# algorithm compatible with the one used by recent releases of FreeBSD. +# It supports passwords of unlimited length and longer salt strings. +# Set to "no" if you need to copy encrypted passwords to other systems +# which don't understand the new algorithm. Default is "no". +# +# This variable is deprecated. You should use ENCRYPT_METHOD. +# +#MD5_CRYPT_ENAB no + +# +# If set to MD5 , MD5-based algorithm will be used for encrypting password +# If set to SHA256, SHA256-based algorithm will be used for encrypting password +# If set to SHA512, SHA512-based algorithm will be used for encrypting password +# If set to DES, DES-based algorithm will be used for encrypting password (default) +# Overrides the MD5_CRYPT_ENAB option +# +# Note: It is recommended to use a value consistent with +# the PAM modules configuration. +# +#ENCRYPT_METHOD DES + +# +# Only used if ENCRYPT_METHOD is set to SHA256 or SHA512. +# +# Define the number of SHA rounds. +# With a lot of rounds, it is more difficult to brute forcing the password. +# But note also that it more CPU resources will be needed to authenticate +# users. +# +# If not specified, the libc will choose the default number of rounds (5000). +# The values must be inside the 1000-999999999 range. +# If only one of the MIN or MAX values is set, then this value will be used. +# If MIN > MAX, the highest value will be used. +# +# SHA_CRYPT_MIN_ROUNDS 5000 +# SHA_CRYPT_MAX_ROUNDS 5000 + +################# OBSOLETED BY PAM ############## +# # +# These options are now handled by PAM. Please # +# edit the appropriate file in /etc/pam.d/ to # +# enable the equivalents of them. +# +############### + +#MOTD_FILE +#DIALUPS_CHECK_ENAB +#LASTLOG_ENAB +#MAIL_CHECK_ENAB +#OBSCURE_CHECKS_ENAB +#PORTTIME_CHECKS_ENAB +#SU_WHEEL_ONLY +#PASS_CHANGE_TRIES +#PASS_ALWAYS_WARN +#ENVIRON_FILE +#NOLOGINS_FILE +#ISSUE_FILE +#PASS_MIN_LEN +#PASS_MAX_LEN +#ULIMIT +#ENV_HZ +#CHFN_AUTH +#CHSH_AUTH +#FAIL_DELAY + +################# OBSOLETED ####################### +# # +# These options are no more handled by shadow. # +# # +# Shadow utilities will display a warning if they # +# still appear. # +# # +################################################### + +# CLOSE_SESSIONS +# LOGIN_STRING +# NO_PASSWORD_CONSOLE +# QMAIL_DIR + + + diff --git a/tests/tests/chroot/groupdel/01_groupdel--root/config_chroot/etc/passwd b/tests/tests/chroot/groupdel/01_groupdel--root/config_chroot/etc/passwd new file mode 100644 index 00000000..9bdeb8ce --- /dev/null +++ b/tests/tests/chroot/groupdel/01_groupdel--root/config_chroot/etc/passwd @@ -0,0 +1,21 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser:x:424242:424242::/home/:/bin/sh +testsuite::424243:424243::/home:/bin/bash diff --git a/tests/tests/chroot/groupdel/01_groupdel--root/config_chroot/etc/shadow b/tests/tests/chroot/groupdel/01_groupdel--root/config_chroot/etc/shadow new file mode 100644 index 00000000..038d5cf4 --- /dev/null +++ b/tests/tests/chroot/groupdel/01_groupdel--root/config_chroot/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: diff --git a/tests/tests/chroot/groupdel/01_groupdel--root/data/group b/tests/tests/chroot/groupdel/01_groupdel--root/data/group new file mode 100644 index 00000000..9ee4d568 --- /dev/null +++ b/tests/tests/chroot/groupdel/01_groupdel--root/data/group @@ -0,0 +1,41 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: diff --git a/tests/tests/chroot/groupdel/01_groupdel--root/data/gshadow b/tests/tests/chroot/groupdel/01_groupdel--root/data/gshadow new file mode 100644 index 00000000..b969cf25 --- /dev/null +++ b/tests/tests/chroot/groupdel/01_groupdel--root/data/gshadow @@ -0,0 +1,41 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: diff --git a/tests/tests/chroot/groupdel/01_groupdel--root/groupdel.test b/tests/tests/chroot/groupdel/01_groupdel--root/groupdel.test new file mode 100755 index 00000000..6361a120 --- /dev/null +++ b/tests/tests/chroot/groupdel/01_groupdel--root/groupdel.test @@ -0,0 +1,52 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "groupmod can delete a group in a chroot" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; clean_chroot; restore_config' 0 + +change_config + +prepare_chroot + +echo -n "Delete group users in chroot (groupdel --root $PWD/tmp/root users)..." +groupdel --root $PWD/tmp/root users +echo "OK" + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +../../../common/compare_file.pl config_chroot/etc/passwd tmp/root/etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +../../../common/compare_file.pl data/group tmp/root/etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +../../../common/compare_file.pl config_chroot/etc/shadow tmp/root/etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +../../../common/compare_file.pl data/gshadow tmp/root/etc/gshadow +echo "OK" + +rm -f tmp/root/etc/.pwd.lock +rm -f tmp/root/etc/passwd- +rm -f tmp/root/etc/group- +rm -f tmp/root/etc/shadow- +rm -f tmp/root/etc/gshadow- +clean_chroot + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chroot/groupmod/01_groupmod--root/config.txt b/tests/tests/chroot/groupmod/01_groupmod--root/config.txt new file mode 100644 index 00000000..31f56359 --- /dev/null +++ b/tests/tests/chroot/groupmod/01_groupmod--root/config.txt @@ -0,0 +1,10 @@ +# no testsuite password +# root password: rootF00barbaz +# myuser password: myuserF00barbaz + +user foo, in group users (only in /etc/group) +user foo, in group tty (only in /etc/gshadow) +user foo, in group floppy +user foo, admin of group disk +user foo, admin and member of group fax +user foo, admin and member of group cdrom (only in /etc/gshadow) diff --git a/tests/tests/chroot/groupmod/01_groupmod--root/config/etc/default/useradd b/tests/tests/chroot/groupmod/01_groupmod--root/config/etc/default/useradd new file mode 100644 index 00000000..31c44abe --- /dev/null +++ b/tests/tests/chroot/groupmod/01_groupmod--root/config/etc/default/useradd @@ -0,0 +1,36 @@ +# Default values for useradd(8) +# +# The SHELL variable specifies the default login shell on your +# system. +# Similar to DHSELL in adduser. However, we use "sh" here because +# useradd is a low level utility and should be as general +# as possible +SHELL=/bin/foobar +# +# The default group for users +# 100=users on Debian systems +# Same as USERS_GID in adduser +# This argument is used when the -n flag is specified. +# The default behavior (when -n and -g are not specified) is to create a +# primary user group with the same name as the user being added to the +# system. +GROUP=10 +# +# The default home directory. Same as DHOME for adduser +HOME=/tmp +# +# The number of days after a password expires until the account +# is permanently disabled +INACTIVE=12 +# +# The default expire date +EXPIRE=2007-12-02 +# +# The SKEL variable specifies the directory containing "skeletal" user +# files; in other words, files such as a sample .profile that will be +# copied to the new user's home directory when it is created. +# SKEL=/etc/skel +# +# Defines whether the mail spool should be created while +# creating the account +# CREATE_MAIL_SPOOL=yes diff --git a/tests/tests/chroot/groupmod/01_groupmod--root/config/etc/group b/tests/tests/chroot/groupmod/01_groupmod--root/config/etc/group new file mode 100644 index 00000000..10123908 --- /dev/null +++ b/tests/tests/chroot/groupmod/01_groupmod--root/config/etc/group @@ -0,0 +1,41 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: diff --git a/tests/tests/chroot/groupmod/01_groupmod--root/config/etc/gshadow b/tests/tests/chroot/groupmod/01_groupmod--root/config/etc/gshadow new file mode 100644 index 00000000..ae424865 --- /dev/null +++ b/tests/tests/chroot/groupmod/01_groupmod--root/config/etc/gshadow @@ -0,0 +1,41 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: diff --git a/tests/tests/chroot/groupmod/01_groupmod--root/config/etc/passwd b/tests/tests/chroot/groupmod/01_groupmod--root/config/etc/passwd new file mode 100644 index 00000000..43fc135a --- /dev/null +++ b/tests/tests/chroot/groupmod/01_groupmod--root/config/etc/passwd @@ -0,0 +1,19 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false diff --git a/tests/tests/chroot/groupmod/01_groupmod--root/config/etc/shadow b/tests/tests/chroot/groupmod/01_groupmod--root/config/etc/shadow new file mode 100644 index 00000000..5f50d187 --- /dev/null +++ b/tests/tests/chroot/groupmod/01_groupmod--root/config/etc/shadow @@ -0,0 +1,19 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: diff --git a/tests/tests/chroot/groupmod/01_groupmod--root/config_chroot/etc/group b/tests/tests/chroot/groupmod/01_groupmod--root/config_chroot/etc/group new file mode 100644 index 00000000..245cc9cf --- /dev/null +++ b/tests/tests/chroot/groupmod/01_groupmod--root/config_chroot/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: diff --git a/tests/tests/chroot/groupmod/01_groupmod--root/config_chroot/etc/gshadow b/tests/tests/chroot/groupmod/01_groupmod--root/config_chroot/etc/gshadow new file mode 100644 index 00000000..25bd55bd --- /dev/null +++ b/tests/tests/chroot/groupmod/01_groupmod--root/config_chroot/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: diff --git a/tests/tests/chroot/groupmod/01_groupmod--root/config_chroot/etc/login.defs b/tests/tests/chroot/groupmod/01_groupmod--root/config_chroot/etc/login.defs new file mode 100644 index 00000000..3b216aa1 --- /dev/null +++ b/tests/tests/chroot/groupmod/01_groupmod--root/config_chroot/etc/login.defs @@ -0,0 +1,334 @@ +# +# /etc/login.defs - Configuration control definitions for the login package. +# +# Three items must be defined: MAIL_DIR, ENV_SUPATH, and ENV_PATH. +# If unspecified, some arbitrary (and possibly incorrect) value will +# be assumed. All other items are optional - if not specified then +# the described action or option will be inhibited. +# +# Comment lines (lines beginning with "#") and blank lines are ignored. +# +# Modified for Linux. --marekm + +# REQUIRED for useradd/userdel/usermod +# Directory where mailboxes reside, _or_ name of file, relative to the +# home directory. If you _do_ define MAIL_DIR and MAIL_FILE, +# MAIL_DIR takes precedence. +# +# Essentially: +# - MAIL_DIR defines the location of users mail spool files +# (for mbox use) by appending the username to MAIL_DIR as defined +# below. +# - MAIL_FILE defines the location of the users mail spool files as the +# fully-qualified filename obtained by prepending the user home +# directory before $MAIL_FILE +# +# NOTE: This is no more used for setting up users MAIL environment variable +# which is, starting from shadow 4.0.12-1 in Debian, entirely the +# job of the pam_mail PAM modules +# See default PAM configuration files provided for +# login, su, etc. +# +# This is a temporary situation: setting these variables will soon +# move to /etc/default/useradd and the variables will then be +# no more supported +MAIL_DIR /var/mail +#MAIL_FILE .mail + +# +# Enable logging and display of /var/log/faillog login failure info. +# This option conflicts with the pam_tally PAM module. +# +FAILLOG_ENAB yes + +# +# Enable display of unknown usernames when login failures are recorded. +# +# WARNING: Unknown usernames may become world readable. +# See #290803 and #298773 for details about how this could become a security +# concern +LOG_UNKFAIL_ENAB no + +# +# Enable logging of successful logins +# +LOG_OK_LOGINS no + +# +# Enable "syslog" logging of su activity - in addition to sulog file logging. +# SYSLOG_SG_ENAB does the same for newgrp and sg. +# +SYSLOG_SU_ENAB yes +SYSLOG_SG_ENAB yes + +# +# If defined, all su activity is logged to this file. +# +#SULOG_FILE /var/log/sulog + +# +# If defined, file which maps tty line to TERM environment parameter. +# Each line of the file is in a format something like "vt100 tty01". +# +#TTYTYPE_FILE /etc/ttytype + +# +# If defined, login failures will be logged here in a utmp format +# last, when invoked as lastb, will read /var/log/btmp, so... +# +FTMP_FILE /var/log/btmp + +# +# If defined, the command name to display when running "su -". For +# example, if this is defined as "su" then a "ps" will display the +# command is "-su". If not defined, then "ps" would display the +# name of the shell actually being run, e.g. something like "-sh". +# +SU_NAME su + +# +# If defined, file which inhibits all the usual chatter during the login +# sequence. If a full pathname, then hushed mode will be enabled if the +# user's name or shell are found in the file. If not a full pathname, then +# hushed mode will be enabled if the file exists in the user's home directory. +# +HUSHLOGIN_FILE .hushlogin +#HUSHLOGIN_FILE /etc/hushlogins + +# +# *REQUIRED* The default PATH settings, for superuser and normal users. +# +# (they are minimal, add the rest in the shell startup files) +ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games + +# +# Terminal permissions +# +# TTYGROUP Login tty will be assigned this group ownership. +# TTYPERM Login tty will be set to this permission. +# +# If you have a "write" program which is "setgid" to a special group +# which owns the terminals, define TTYGROUP to the group number and +# TTYPERM to 0620. Otherwise leave TTYGROUP commented out and assign +# TTYPERM to either 622 or 600. +# +# In Debian /usr/bin/bsd-write or similar programs are setgid tty +# However, the default and recommended value for TTYPERM is still 0600 +# to not allow anyone to write to anyone else console or terminal + +# Users can still allow other people to write them by issuing +# the "mesg y" command. + +TTYGROUP tty +TTYPERM 0600 + +# +# Login configuration initializations: +# +# ERASECHAR Terminal ERASE character ('\010' = backspace). +# KILLCHAR Terminal KILL character ('\025' = CTRL/U). +# UMASK Default "umask" value. +# +# The ERASECHAR and KILLCHAR are used only on System V machines. +# +# UMASK is the default umask value for pam_umask and is used by +# useradd and newusers to set the mode of the new home directories. +# 022 is the "historical" value in Debian for UMASK +# 027, or even 077, could be considered better for privacy +# There is no One True Answer here : each sysadmin must make up their +# mind. +# +# Prefix these values with "0" to get octal, "0x" to get hexadecimal. +# +ERASECHAR 0177 +KILLCHAR 025 +UMASK 022 + +# +# Password aging controls: +# +# PASS_MAX_DAYS Maximum number of days a password may be used. +# PASS_MIN_DAYS Minimum number of days allowed between password changes. +# PASS_WARN_AGE Number of days warning given before a password expires. +# +PASS_MAX_DAYS 99999 +PASS_MIN_DAYS 0 +PASS_WARN_AGE 7 + +# +# Min/max values for automatic uid selection in useradd +# +UID_MIN 1000 +UID_MAX 60000 +# System accounts +#SYS_UID_MIN 100 +#SYS_UID_MAX 999 + +# +# Min/max values for automatic gid selection in groupadd +# +GID_MIN 1000 +GID_MAX 60000 +# System accounts +#SYS_GID_MIN 100 +#SYS_GID_MAX 999 + +# +# Max number of login retries if password is bad. This will most likely be +# overridden by PAM, since the default pam_unix module has it's own built +# in of 3 retries. However, this is a safe fallback in case you are using +# an authentication module that does not enforce PAM_MAXTRIES. +# +LOGIN_RETRIES 5 + +# +# Max time in seconds for login +# +LOGIN_TIMEOUT 60 + +# +# Which fields may be changed by regular users using chfn - use +# any combination of letters "frwh" (full name, room number, work +# phone, home phone). If not defined, no changes are allowed. +# For backward compatibility, "yes" = "rwh" and "no" = "frwh". +# +CHFN_RESTRICT rwh + +# +# Should login be allowed if we can't cd to the home directory? +# Default is no. +# +DEFAULT_HOME yes + +# +# If defined, this command is run when removing a user. +# It should remove any at/cron/print jobs etc. owned by +# the user to be removed (passed as the first argument). +# +#USERDEL_CMD /usr/sbin/userdel_local + +# +# If set to yes, userdel will remove the user's group if it contains no +# more members, and useradd will create by default a group with the name +# of the user. +# +# Other former uses of this variable such as setting the umask when +# user==primary group are not used in PAM environments, such as Debian +# +USERGROUPS_ENAB yes + +# +# Instead of the real user shell, the program specified by this parameter +# will be launched, although its visible name (argv[0]) will be the shell's. +# The program may do whatever it wants (logging, additional authentification, +# banner, ...) before running the actual shell. +# +# FAKE_SHELL /bin/fakeshell + +# +# If defined, either full pathname of a file containing device names or +# a ":" delimited list of device names. Root logins will be allowed only +# upon these devices. +# +# This variable is used by login and su. +# +#CONSOLE /etc/consoles +#CONSOLE console:tty01:tty02:tty03:tty04 + +# +# List of groups to add to the user's supplementary group set +# when logging in on the console (as determined by the CONSOLE +# setting). Default is none. +# +# Use with caution - it is possible for users to gain permanent +# access to these groups, even when not logged in on the console. +# How to do it is left as an exercise for the reader... +# +# This variable is used by login and su. +# +#CONSOLE_GROUPS floppy:audio:cdrom + +# +# If set to "yes", new passwords will be encrypted using the MD5-based +# algorithm compatible with the one used by recent releases of FreeBSD. +# It supports passwords of unlimited length and longer salt strings. +# Set to "no" if you need to copy encrypted passwords to other systems +# which don't understand the new algorithm. Default is "no". +# +# This variable is deprecated. You should use ENCRYPT_METHOD. +# +#MD5_CRYPT_ENAB no + +# +# If set to MD5 , MD5-based algorithm will be used for encrypting password +# If set to SHA256, SHA256-based algorithm will be used for encrypting password +# If set to SHA512, SHA512-based algorithm will be used for encrypting password +# If set to DES, DES-based algorithm will be used for encrypting password (default) +# Overrides the MD5_CRYPT_ENAB option +# +# Note: It is recommended to use a value consistent with +# the PAM modules configuration. +# +#ENCRYPT_METHOD DES + +# +# Only used if ENCRYPT_METHOD is set to SHA256 or SHA512. +# +# Define the number of SHA rounds. +# With a lot of rounds, it is more difficult to brute forcing the password. +# But note also that it more CPU resources will be needed to authenticate +# users. +# +# If not specified, the libc will choose the default number of rounds (5000). +# The values must be inside the 1000-999999999 range. +# If only one of the MIN or MAX values is set, then this value will be used. +# If MIN > MAX, the highest value will be used. +# +# SHA_CRYPT_MIN_ROUNDS 5000 +# SHA_CRYPT_MAX_ROUNDS 5000 + +################# OBSOLETED BY PAM ############## +# # +# These options are now handled by PAM. Please # +# edit the appropriate file in /etc/pam.d/ to # +# enable the equivalents of them. +# +############### + +#MOTD_FILE +#DIALUPS_CHECK_ENAB +#LASTLOG_ENAB +#MAIL_CHECK_ENAB +#OBSCURE_CHECKS_ENAB +#PORTTIME_CHECKS_ENAB +#SU_WHEEL_ONLY +#PASS_CHANGE_TRIES +#PASS_ALWAYS_WARN +#ENVIRON_FILE +#NOLOGINS_FILE +#ISSUE_FILE +#PASS_MIN_LEN +#PASS_MAX_LEN +#ULIMIT +#ENV_HZ +#CHFN_AUTH +#CHSH_AUTH +#FAIL_DELAY + +################# OBSOLETED ####################### +# # +# These options are no more handled by shadow. # +# # +# Shadow utilities will display a warning if they # +# still appear. # +# # +################################################### + +# CLOSE_SESSIONS +# LOGIN_STRING +# NO_PASSWORD_CONSOLE +# QMAIL_DIR + + + diff --git a/tests/tests/chroot/groupmod/01_groupmod--root/config_chroot/etc/passwd b/tests/tests/chroot/groupmod/01_groupmod--root/config_chroot/etc/passwd new file mode 100644 index 00000000..9bdeb8ce --- /dev/null +++ b/tests/tests/chroot/groupmod/01_groupmod--root/config_chroot/etc/passwd @@ -0,0 +1,21 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser:x:424242:424242::/home/:/bin/sh +testsuite::424243:424243::/home:/bin/bash diff --git a/tests/tests/chroot/groupmod/01_groupmod--root/config_chroot/etc/shadow b/tests/tests/chroot/groupmod/01_groupmod--root/config_chroot/etc/shadow new file mode 100644 index 00000000..038d5cf4 --- /dev/null +++ b/tests/tests/chroot/groupmod/01_groupmod--root/config_chroot/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: diff --git a/tests/tests/chroot/groupmod/01_groupmod--root/data/group b/tests/tests/chroot/groupmod/01_groupmod--root/data/group new file mode 100644 index 00000000..068bdf57 --- /dev/null +++ b/tests/tests/chroot/groupmod/01_groupmod--root/data/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: +utilisateurs:x:100: diff --git a/tests/tests/chroot/groupmod/01_groupmod--root/data/gshadow b/tests/tests/chroot/groupmod/01_groupmod--root/data/gshadow new file mode 100644 index 00000000..249ec498 --- /dev/null +++ b/tests/tests/chroot/groupmod/01_groupmod--root/data/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: +utilisateurs:*:: diff --git a/tests/tests/chroot/groupmod/01_groupmod--root/groupmod.test b/tests/tests/chroot/groupmod/01_groupmod--root/groupmod.test new file mode 100755 index 00000000..853df8f5 --- /dev/null +++ b/tests/tests/chroot/groupmod/01_groupmod--root/groupmod.test @@ -0,0 +1,52 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "groupmod can change a group in a chroot" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; clean_chroot; restore_config' 0 + +change_config + +prepare_chroot + +echo -n "Change group in chroot (groupmod --root $PWD/tmp/root -n utilisateurs users)..." +groupmod --root $PWD/tmp/root -n utilisateurs users +echo "OK" + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +../../../common/compare_file.pl config_chroot/etc/passwd tmp/root/etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +../../../common/compare_file.pl data/group tmp/root/etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +../../../common/compare_file.pl config_chroot/etc/shadow tmp/root/etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +../../../common/compare_file.pl data/gshadow tmp/root/etc/gshadow +echo "OK" + +rm -f tmp/root/etc/.pwd.lock +rm -f tmp/root/etc/passwd- +rm -f tmp/root/etc/group- +rm -f tmp/root/etc/shadow- +rm -f tmp/root/etc/gshadow- +clean_chroot + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chroot/grpck/01_grpck--root/config.txt b/tests/tests/chroot/grpck/01_grpck--root/config.txt new file mode 100644 index 00000000..31f56359 --- /dev/null +++ b/tests/tests/chroot/grpck/01_grpck--root/config.txt @@ -0,0 +1,10 @@ +# no testsuite password +# root password: rootF00barbaz +# myuser password: myuserF00barbaz + +user foo, in group users (only in /etc/group) +user foo, in group tty (only in /etc/gshadow) +user foo, in group floppy +user foo, admin of group disk +user foo, admin and member of group fax +user foo, admin and member of group cdrom (only in /etc/gshadow) diff --git a/tests/tests/chroot/grpck/01_grpck--root/config/etc/default/useradd b/tests/tests/chroot/grpck/01_grpck--root/config/etc/default/useradd new file mode 100644 index 00000000..31c44abe --- /dev/null +++ b/tests/tests/chroot/grpck/01_grpck--root/config/etc/default/useradd @@ -0,0 +1,36 @@ +# Default values for useradd(8) +# +# The SHELL variable specifies the default login shell on your +# system. +# Similar to DHSELL in adduser. However, we use "sh" here because +# useradd is a low level utility and should be as general +# as possible +SHELL=/bin/foobar +# +# The default group for users +# 100=users on Debian systems +# Same as USERS_GID in adduser +# This argument is used when the -n flag is specified. +# The default behavior (when -n and -g are not specified) is to create a +# primary user group with the same name as the user being added to the +# system. +GROUP=10 +# +# The default home directory. Same as DHOME for adduser +HOME=/tmp +# +# The number of days after a password expires until the account +# is permanently disabled +INACTIVE=12 +# +# The default expire date +EXPIRE=2007-12-02 +# +# The SKEL variable specifies the directory containing "skeletal" user +# files; in other words, files such as a sample .profile that will be +# copied to the new user's home directory when it is created. +# SKEL=/etc/skel +# +# Defines whether the mail spool should be created while +# creating the account +# CREATE_MAIL_SPOOL=yes diff --git a/tests/tests/chroot/grpck/01_grpck--root/config/etc/group b/tests/tests/chroot/grpck/01_grpck--root/config/etc/group new file mode 100644 index 00000000..10123908 --- /dev/null +++ b/tests/tests/chroot/grpck/01_grpck--root/config/etc/group @@ -0,0 +1,41 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: diff --git a/tests/tests/chroot/grpck/01_grpck--root/config/etc/gshadow b/tests/tests/chroot/grpck/01_grpck--root/config/etc/gshadow new file mode 100644 index 00000000..ae424865 --- /dev/null +++ b/tests/tests/chroot/grpck/01_grpck--root/config/etc/gshadow @@ -0,0 +1,41 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: diff --git a/tests/tests/chroot/grpck/01_grpck--root/config/etc/passwd b/tests/tests/chroot/grpck/01_grpck--root/config/etc/passwd new file mode 100644 index 00000000..43fc135a --- /dev/null +++ b/tests/tests/chroot/grpck/01_grpck--root/config/etc/passwd @@ -0,0 +1,19 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false diff --git a/tests/tests/chroot/grpck/01_grpck--root/config/etc/shadow b/tests/tests/chroot/grpck/01_grpck--root/config/etc/shadow new file mode 100644 index 00000000..5f50d187 --- /dev/null +++ b/tests/tests/chroot/grpck/01_grpck--root/config/etc/shadow @@ -0,0 +1,19 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: diff --git a/tests/tests/chroot/grpck/01_grpck--root/config_chroot/etc/group b/tests/tests/chroot/grpck/01_grpck--root/config_chroot/etc/group new file mode 100644 index 00000000..d2a4b10a --- /dev/null +++ b/tests/tests/chroot/grpck/01_grpck--root/config_chroot/etc/group @@ -0,0 +1,42 @@ +staff:x:50: +root:x:0: +tty:x:5: +daemon:x:1: +bin:x:2: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +sys:x:3: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +adm:x:4: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: +disk:x:6: diff --git a/tests/tests/chroot/grpck/01_grpck--root/config_chroot/etc/gshadow b/tests/tests/chroot/grpck/01_grpck--root/config_chroot/etc/gshadow new file mode 100644 index 00000000..25bd55bd --- /dev/null +++ b/tests/tests/chroot/grpck/01_grpck--root/config_chroot/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: diff --git a/tests/tests/chroot/grpck/01_grpck--root/config_chroot/etc/login.defs b/tests/tests/chroot/grpck/01_grpck--root/config_chroot/etc/login.defs new file mode 100644 index 00000000..3b216aa1 --- /dev/null +++ b/tests/tests/chroot/grpck/01_grpck--root/config_chroot/etc/login.defs @@ -0,0 +1,334 @@ +# +# /etc/login.defs - Configuration control definitions for the login package. +# +# Three items must be defined: MAIL_DIR, ENV_SUPATH, and ENV_PATH. +# If unspecified, some arbitrary (and possibly incorrect) value will +# be assumed. All other items are optional - if not specified then +# the described action or option will be inhibited. +# +# Comment lines (lines beginning with "#") and blank lines are ignored. +# +# Modified for Linux. --marekm + +# REQUIRED for useradd/userdel/usermod +# Directory where mailboxes reside, _or_ name of file, relative to the +# home directory. If you _do_ define MAIL_DIR and MAIL_FILE, +# MAIL_DIR takes precedence. +# +# Essentially: +# - MAIL_DIR defines the location of users mail spool files +# (for mbox use) by appending the username to MAIL_DIR as defined +# below. +# - MAIL_FILE defines the location of the users mail spool files as the +# fully-qualified filename obtained by prepending the user home +# directory before $MAIL_FILE +# +# NOTE: This is no more used for setting up users MAIL environment variable +# which is, starting from shadow 4.0.12-1 in Debian, entirely the +# job of the pam_mail PAM modules +# See default PAM configuration files provided for +# login, su, etc. +# +# This is a temporary situation: setting these variables will soon +# move to /etc/default/useradd and the variables will then be +# no more supported +MAIL_DIR /var/mail +#MAIL_FILE .mail + +# +# Enable logging and display of /var/log/faillog login failure info. +# This option conflicts with the pam_tally PAM module. +# +FAILLOG_ENAB yes + +# +# Enable display of unknown usernames when login failures are recorded. +# +# WARNING: Unknown usernames may become world readable. +# See #290803 and #298773 for details about how this could become a security +# concern +LOG_UNKFAIL_ENAB no + +# +# Enable logging of successful logins +# +LOG_OK_LOGINS no + +# +# Enable "syslog" logging of su activity - in addition to sulog file logging. +# SYSLOG_SG_ENAB does the same for newgrp and sg. +# +SYSLOG_SU_ENAB yes +SYSLOG_SG_ENAB yes + +# +# If defined, all su activity is logged to this file. +# +#SULOG_FILE /var/log/sulog + +# +# If defined, file which maps tty line to TERM environment parameter. +# Each line of the file is in a format something like "vt100 tty01". +# +#TTYTYPE_FILE /etc/ttytype + +# +# If defined, login failures will be logged here in a utmp format +# last, when invoked as lastb, will read /var/log/btmp, so... +# +FTMP_FILE /var/log/btmp + +# +# If defined, the command name to display when running "su -". For +# example, if this is defined as "su" then a "ps" will display the +# command is "-su". If not defined, then "ps" would display the +# name of the shell actually being run, e.g. something like "-sh". +# +SU_NAME su + +# +# If defined, file which inhibits all the usual chatter during the login +# sequence. If a full pathname, then hushed mode will be enabled if the +# user's name or shell are found in the file. If not a full pathname, then +# hushed mode will be enabled if the file exists in the user's home directory. +# +HUSHLOGIN_FILE .hushlogin +#HUSHLOGIN_FILE /etc/hushlogins + +# +# *REQUIRED* The default PATH settings, for superuser and normal users. +# +# (they are minimal, add the rest in the shell startup files) +ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games + +# +# Terminal permissions +# +# TTYGROUP Login tty will be assigned this group ownership. +# TTYPERM Login tty will be set to this permission. +# +# If you have a "write" program which is "setgid" to a special group +# which owns the terminals, define TTYGROUP to the group number and +# TTYPERM to 0620. Otherwise leave TTYGROUP commented out and assign +# TTYPERM to either 622 or 600. +# +# In Debian /usr/bin/bsd-write or similar programs are setgid tty +# However, the default and recommended value for TTYPERM is still 0600 +# to not allow anyone to write to anyone else console or terminal + +# Users can still allow other people to write them by issuing +# the "mesg y" command. + +TTYGROUP tty +TTYPERM 0600 + +# +# Login configuration initializations: +# +# ERASECHAR Terminal ERASE character ('\010' = backspace). +# KILLCHAR Terminal KILL character ('\025' = CTRL/U). +# UMASK Default "umask" value. +# +# The ERASECHAR and KILLCHAR are used only on System V machines. +# +# UMASK is the default umask value for pam_umask and is used by +# useradd and newusers to set the mode of the new home directories. +# 022 is the "historical" value in Debian for UMASK +# 027, or even 077, could be considered better for privacy +# There is no One True Answer here : each sysadmin must make up their +# mind. +# +# Prefix these values with "0" to get octal, "0x" to get hexadecimal. +# +ERASECHAR 0177 +KILLCHAR 025 +UMASK 022 + +# +# Password aging controls: +# +# PASS_MAX_DAYS Maximum number of days a password may be used. +# PASS_MIN_DAYS Minimum number of days allowed between password changes. +# PASS_WARN_AGE Number of days warning given before a password expires. +# +PASS_MAX_DAYS 99999 +PASS_MIN_DAYS 0 +PASS_WARN_AGE 7 + +# +# Min/max values for automatic uid selection in useradd +# +UID_MIN 1000 +UID_MAX 60000 +# System accounts +#SYS_UID_MIN 100 +#SYS_UID_MAX 999 + +# +# Min/max values for automatic gid selection in groupadd +# +GID_MIN 1000 +GID_MAX 60000 +# System accounts +#SYS_GID_MIN 100 +#SYS_GID_MAX 999 + +# +# Max number of login retries if password is bad. This will most likely be +# overridden by PAM, since the default pam_unix module has it's own built +# in of 3 retries. However, this is a safe fallback in case you are using +# an authentication module that does not enforce PAM_MAXTRIES. +# +LOGIN_RETRIES 5 + +# +# Max time in seconds for login +# +LOGIN_TIMEOUT 60 + +# +# Which fields may be changed by regular users using chfn - use +# any combination of letters "frwh" (full name, room number, work +# phone, home phone). If not defined, no changes are allowed. +# For backward compatibility, "yes" = "rwh" and "no" = "frwh". +# +CHFN_RESTRICT rwh + +# +# Should login be allowed if we can't cd to the home directory? +# Default is no. +# +DEFAULT_HOME yes + +# +# If defined, this command is run when removing a user. +# It should remove any at/cron/print jobs etc. owned by +# the user to be removed (passed as the first argument). +# +#USERDEL_CMD /usr/sbin/userdel_local + +# +# If set to yes, userdel will remove the user's group if it contains no +# more members, and useradd will create by default a group with the name +# of the user. +# +# Other former uses of this variable such as setting the umask when +# user==primary group are not used in PAM environments, such as Debian +# +USERGROUPS_ENAB yes + +# +# Instead of the real user shell, the program specified by this parameter +# will be launched, although its visible name (argv[0]) will be the shell's. +# The program may do whatever it wants (logging, additional authentification, +# banner, ...) before running the actual shell. +# +# FAKE_SHELL /bin/fakeshell + +# +# If defined, either full pathname of a file containing device names or +# a ":" delimited list of device names. Root logins will be allowed only +# upon these devices. +# +# This variable is used by login and su. +# +#CONSOLE /etc/consoles +#CONSOLE console:tty01:tty02:tty03:tty04 + +# +# List of groups to add to the user's supplementary group set +# when logging in on the console (as determined by the CONSOLE +# setting). Default is none. +# +# Use with caution - it is possible for users to gain permanent +# access to these groups, even when not logged in on the console. +# How to do it is left as an exercise for the reader... +# +# This variable is used by login and su. +# +#CONSOLE_GROUPS floppy:audio:cdrom + +# +# If set to "yes", new passwords will be encrypted using the MD5-based +# algorithm compatible with the one used by recent releases of FreeBSD. +# It supports passwords of unlimited length and longer salt strings. +# Set to "no" if you need to copy encrypted passwords to other systems +# which don't understand the new algorithm. Default is "no". +# +# This variable is deprecated. You should use ENCRYPT_METHOD. +# +#MD5_CRYPT_ENAB no + +# +# If set to MD5 , MD5-based algorithm will be used for encrypting password +# If set to SHA256, SHA256-based algorithm will be used for encrypting password +# If set to SHA512, SHA512-based algorithm will be used for encrypting password +# If set to DES, DES-based algorithm will be used for encrypting password (default) +# Overrides the MD5_CRYPT_ENAB option +# +# Note: It is recommended to use a value consistent with +# the PAM modules configuration. +# +#ENCRYPT_METHOD DES + +# +# Only used if ENCRYPT_METHOD is set to SHA256 or SHA512. +# +# Define the number of SHA rounds. +# With a lot of rounds, it is more difficult to brute forcing the password. +# But note also that it more CPU resources will be needed to authenticate +# users. +# +# If not specified, the libc will choose the default number of rounds (5000). +# The values must be inside the 1000-999999999 range. +# If only one of the MIN or MAX values is set, then this value will be used. +# If MIN > MAX, the highest value will be used. +# +# SHA_CRYPT_MIN_ROUNDS 5000 +# SHA_CRYPT_MAX_ROUNDS 5000 + +################# OBSOLETED BY PAM ############## +# # +# These options are now handled by PAM. Please # +# edit the appropriate file in /etc/pam.d/ to # +# enable the equivalents of them. +# +############### + +#MOTD_FILE +#DIALUPS_CHECK_ENAB +#LASTLOG_ENAB +#MAIL_CHECK_ENAB +#OBSCURE_CHECKS_ENAB +#PORTTIME_CHECKS_ENAB +#SU_WHEEL_ONLY +#PASS_CHANGE_TRIES +#PASS_ALWAYS_WARN +#ENVIRON_FILE +#NOLOGINS_FILE +#ISSUE_FILE +#PASS_MIN_LEN +#PASS_MAX_LEN +#ULIMIT +#ENV_HZ +#CHFN_AUTH +#CHSH_AUTH +#FAIL_DELAY + +################# OBSOLETED ####################### +# # +# These options are no more handled by shadow. # +# # +# Shadow utilities will display a warning if they # +# still appear. # +# # +################################################### + +# CLOSE_SESSIONS +# LOGIN_STRING +# NO_PASSWORD_CONSOLE +# QMAIL_DIR + + + diff --git a/tests/tests/chroot/grpck/01_grpck--root/config_chroot/etc/passwd b/tests/tests/chroot/grpck/01_grpck--root/config_chroot/etc/passwd new file mode 100644 index 00000000..9bdeb8ce --- /dev/null +++ b/tests/tests/chroot/grpck/01_grpck--root/config_chroot/etc/passwd @@ -0,0 +1,21 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser:x:424242:424242::/home/:/bin/sh +testsuite::424243:424243::/home:/bin/bash diff --git a/tests/tests/chroot/grpck/01_grpck--root/config_chroot/etc/shadow b/tests/tests/chroot/grpck/01_grpck--root/config_chroot/etc/shadow new file mode 100644 index 00000000..038d5cf4 --- /dev/null +++ b/tests/tests/chroot/grpck/01_grpck--root/config_chroot/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: diff --git a/tests/tests/chroot/grpck/01_grpck--root/data/group b/tests/tests/chroot/grpck/01_grpck--root/data/group new file mode 100644 index 00000000..dd74ea83 --- /dev/null +++ b/tests/tests/chroot/grpck/01_grpck--root/data/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +crontab:x:101: +Debian-exim:x:102: +nogroup:x:65534: +myuser:x:424242: diff --git a/tests/tests/chroot/grpck/01_grpck--root/data/gshadow b/tests/tests/chroot/grpck/01_grpck--root/data/gshadow new file mode 100644 index 00000000..5b9b1d49 --- /dev/null +++ b/tests/tests/chroot/grpck/01_grpck--root/data/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +crontab:x:: +Debian-exim:x:: +nogroup:*:: +myuser:x:: diff --git a/tests/tests/chroot/grpck/01_grpck--root/grpck.test b/tests/tests/chroot/grpck/01_grpck--root/grpck.test new file mode 100755 index 00000000..93867d02 --- /dev/null +++ b/tests/tests/chroot/grpck/01_grpck--root/grpck.test @@ -0,0 +1,50 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "grpck can sort groups in a chroot" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; clean_chroot; restore_config' 0 + +change_config + +prepare_chroot + +echo -n "Sort groups in chroot (grpck --sort --root $PWD/tmp/root)..." +grpck --sort --root $PWD/tmp/root +echo "OK" + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +../../../common/compare_file.pl config_chroot/etc/passwd tmp/root/etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +../../../common/compare_file.pl data/group tmp/root/etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +../../../common/compare_file.pl config_chroot/etc/shadow tmp/root/etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +../../../common/compare_file.pl data/gshadow tmp/root/etc/gshadow +echo "OK" + +rm -f tmp/root/etc/.pwd.lock +rm -f tmp/root/etc/group- +rm -f tmp/root/etc/gshadow- +clean_chroot + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chroot/grpconv/01_grpconv--root/config.txt b/tests/tests/chroot/grpconv/01_grpconv--root/config.txt new file mode 100644 index 00000000..31f56359 --- /dev/null +++ b/tests/tests/chroot/grpconv/01_grpconv--root/config.txt @@ -0,0 +1,10 @@ +# no testsuite password +# root password: rootF00barbaz +# myuser password: myuserF00barbaz + +user foo, in group users (only in /etc/group) +user foo, in group tty (only in /etc/gshadow) +user foo, in group floppy +user foo, admin of group disk +user foo, admin and member of group fax +user foo, admin and member of group cdrom (only in /etc/gshadow) diff --git a/tests/tests/chroot/grpconv/01_grpconv--root/config/etc/default/useradd b/tests/tests/chroot/grpconv/01_grpconv--root/config/etc/default/useradd new file mode 100644 index 00000000..31c44abe --- /dev/null +++ b/tests/tests/chroot/grpconv/01_grpconv--root/config/etc/default/useradd @@ -0,0 +1,36 @@ +# Default values for useradd(8) +# +# The SHELL variable specifies the default login shell on your +# system. +# Similar to DHSELL in adduser. However, we use "sh" here because +# useradd is a low level utility and should be as general +# as possible +SHELL=/bin/foobar +# +# The default group for users +# 100=users on Debian systems +# Same as USERS_GID in adduser +# This argument is used when the -n flag is specified. +# The default behavior (when -n and -g are not specified) is to create a +# primary user group with the same name as the user being added to the +# system. +GROUP=10 +# +# The default home directory. Same as DHOME for adduser +HOME=/tmp +# +# The number of days after a password expires until the account +# is permanently disabled +INACTIVE=12 +# +# The default expire date +EXPIRE=2007-12-02 +# +# The SKEL variable specifies the directory containing "skeletal" user +# files; in other words, files such as a sample .profile that will be +# copied to the new user's home directory when it is created. +# SKEL=/etc/skel +# +# Defines whether the mail spool should be created while +# creating the account +# CREATE_MAIL_SPOOL=yes diff --git a/tests/tests/chroot/grpconv/01_grpconv--root/config/etc/group b/tests/tests/chroot/grpconv/01_grpconv--root/config/etc/group new file mode 100644 index 00000000..10123908 --- /dev/null +++ b/tests/tests/chroot/grpconv/01_grpconv--root/config/etc/group @@ -0,0 +1,41 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: diff --git a/tests/tests/chroot/grpconv/01_grpconv--root/config/etc/gshadow b/tests/tests/chroot/grpconv/01_grpconv--root/config/etc/gshadow new file mode 100644 index 00000000..ae424865 --- /dev/null +++ b/tests/tests/chroot/grpconv/01_grpconv--root/config/etc/gshadow @@ -0,0 +1,41 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: diff --git a/tests/tests/chroot/grpconv/01_grpconv--root/config/etc/passwd b/tests/tests/chroot/grpconv/01_grpconv--root/config/etc/passwd new file mode 100644 index 00000000..43fc135a --- /dev/null +++ b/tests/tests/chroot/grpconv/01_grpconv--root/config/etc/passwd @@ -0,0 +1,19 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false diff --git a/tests/tests/chroot/grpconv/01_grpconv--root/config/etc/shadow b/tests/tests/chroot/grpconv/01_grpconv--root/config/etc/shadow new file mode 100644 index 00000000..5f50d187 --- /dev/null +++ b/tests/tests/chroot/grpconv/01_grpconv--root/config/etc/shadow @@ -0,0 +1,19 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: diff --git a/tests/tests/chroot/grpconv/01_grpconv--root/config_chroot/etc/group b/tests/tests/chroot/grpconv/01_grpconv--root/config_chroot/etc/group new file mode 100644 index 00000000..27f1e9a2 --- /dev/null +++ b/tests/tests/chroot/grpconv/01_grpconv--root/config_chroot/etc/group @@ -0,0 +1,42 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:0: +daemon:*:1: +bin:*:2: +sys:*:3: +adm:*:4: +tty:*:5: +disk:*:6: +lp:*:7: +mail:*:8: +news:*:9: +uucp:*:10: +man:*:12: +proxy:*:13: +kmem:*:15: +dialout:*:20: +fax:*:21: +voice:*:22: +cdrom:*:24: +floppy:*:25: +tape:*:26: +sudo:*:27: +audio:*:29: +dip:*:30: +www-data:*:33: +backup:*:34: +operator:*:37: +list:*:38: +irc:*:39: +src:*:40: +gnats:*:41: +shadow:*:42: +utmp:*:43: +video:*:44: +sasl:*:45: +plugdev:*:46: +staff:*:50: +games:*:60: +users:foo:100: +nogroup::65534: +crontab:*:101: +Debian-exim:!:102: +myuser:*:424242: diff --git a/tests/tests/chroot/grpconv/01_grpconv--root/config_chroot/etc/login.defs b/tests/tests/chroot/grpconv/01_grpconv--root/config_chroot/etc/login.defs new file mode 100644 index 00000000..3b216aa1 --- /dev/null +++ b/tests/tests/chroot/grpconv/01_grpconv--root/config_chroot/etc/login.defs @@ -0,0 +1,334 @@ +# +# /etc/login.defs - Configuration control definitions for the login package. +# +# Three items must be defined: MAIL_DIR, ENV_SUPATH, and ENV_PATH. +# If unspecified, some arbitrary (and possibly incorrect) value will +# be assumed. All other items are optional - if not specified then +# the described action or option will be inhibited. +# +# Comment lines (lines beginning with "#") and blank lines are ignored. +# +# Modified for Linux. --marekm + +# REQUIRED for useradd/userdel/usermod +# Directory where mailboxes reside, _or_ name of file, relative to the +# home directory. If you _do_ define MAIL_DIR and MAIL_FILE, +# MAIL_DIR takes precedence. +# +# Essentially: +# - MAIL_DIR defines the location of users mail spool files +# (for mbox use) by appending the username to MAIL_DIR as defined +# below. +# - MAIL_FILE defines the location of the users mail spool files as the +# fully-qualified filename obtained by prepending the user home +# directory before $MAIL_FILE +# +# NOTE: This is no more used for setting up users MAIL environment variable +# which is, starting from shadow 4.0.12-1 in Debian, entirely the +# job of the pam_mail PAM modules +# See default PAM configuration files provided for +# login, su, etc. +# +# This is a temporary situation: setting these variables will soon +# move to /etc/default/useradd and the variables will then be +# no more supported +MAIL_DIR /var/mail +#MAIL_FILE .mail + +# +# Enable logging and display of /var/log/faillog login failure info. +# This option conflicts with the pam_tally PAM module. +# +FAILLOG_ENAB yes + +# +# Enable display of unknown usernames when login failures are recorded. +# +# WARNING: Unknown usernames may become world readable. +# See #290803 and #298773 for details about how this could become a security +# concern +LOG_UNKFAIL_ENAB no + +# +# Enable logging of successful logins +# +LOG_OK_LOGINS no + +# +# Enable "syslog" logging of su activity - in addition to sulog file logging. +# SYSLOG_SG_ENAB does the same for newgrp and sg. +# +SYSLOG_SU_ENAB yes +SYSLOG_SG_ENAB yes + +# +# If defined, all su activity is logged to this file. +# +#SULOG_FILE /var/log/sulog + +# +# If defined, file which maps tty line to TERM environment parameter. +# Each line of the file is in a format something like "vt100 tty01". +# +#TTYTYPE_FILE /etc/ttytype + +# +# If defined, login failures will be logged here in a utmp format +# last, when invoked as lastb, will read /var/log/btmp, so... +# +FTMP_FILE /var/log/btmp + +# +# If defined, the command name to display when running "su -". For +# example, if this is defined as "su" then a "ps" will display the +# command is "-su". If not defined, then "ps" would display the +# name of the shell actually being run, e.g. something like "-sh". +# +SU_NAME su + +# +# If defined, file which inhibits all the usual chatter during the login +# sequence. If a full pathname, then hushed mode will be enabled if the +# user's name or shell are found in the file. If not a full pathname, then +# hushed mode will be enabled if the file exists in the user's home directory. +# +HUSHLOGIN_FILE .hushlogin +#HUSHLOGIN_FILE /etc/hushlogins + +# +# *REQUIRED* The default PATH settings, for superuser and normal users. +# +# (they are minimal, add the rest in the shell startup files) +ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games + +# +# Terminal permissions +# +# TTYGROUP Login tty will be assigned this group ownership. +# TTYPERM Login tty will be set to this permission. +# +# If you have a "write" program which is "setgid" to a special group +# which owns the terminals, define TTYGROUP to the group number and +# TTYPERM to 0620. Otherwise leave TTYGROUP commented out and assign +# TTYPERM to either 622 or 600. +# +# In Debian /usr/bin/bsd-write or similar programs are setgid tty +# However, the default and recommended value for TTYPERM is still 0600 +# to not allow anyone to write to anyone else console or terminal + +# Users can still allow other people to write them by issuing +# the "mesg y" command. + +TTYGROUP tty +TTYPERM 0600 + +# +# Login configuration initializations: +# +# ERASECHAR Terminal ERASE character ('\010' = backspace). +# KILLCHAR Terminal KILL character ('\025' = CTRL/U). +# UMASK Default "umask" value. +# +# The ERASECHAR and KILLCHAR are used only on System V machines. +# +# UMASK is the default umask value for pam_umask and is used by +# useradd and newusers to set the mode of the new home directories. +# 022 is the "historical" value in Debian for UMASK +# 027, or even 077, could be considered better for privacy +# There is no One True Answer here : each sysadmin must make up their +# mind. +# +# Prefix these values with "0" to get octal, "0x" to get hexadecimal. +# +ERASECHAR 0177 +KILLCHAR 025 +UMASK 022 + +# +# Password aging controls: +# +# PASS_MAX_DAYS Maximum number of days a password may be used. +# PASS_MIN_DAYS Minimum number of days allowed between password changes. +# PASS_WARN_AGE Number of days warning given before a password expires. +# +PASS_MAX_DAYS 99999 +PASS_MIN_DAYS 0 +PASS_WARN_AGE 7 + +# +# Min/max values for automatic uid selection in useradd +# +UID_MIN 1000 +UID_MAX 60000 +# System accounts +#SYS_UID_MIN 100 +#SYS_UID_MAX 999 + +# +# Min/max values for automatic gid selection in groupadd +# +GID_MIN 1000 +GID_MAX 60000 +# System accounts +#SYS_GID_MIN 100 +#SYS_GID_MAX 999 + +# +# Max number of login retries if password is bad. This will most likely be +# overridden by PAM, since the default pam_unix module has it's own built +# in of 3 retries. However, this is a safe fallback in case you are using +# an authentication module that does not enforce PAM_MAXTRIES. +# +LOGIN_RETRIES 5 + +# +# Max time in seconds for login +# +LOGIN_TIMEOUT 60 + +# +# Which fields may be changed by regular users using chfn - use +# any combination of letters "frwh" (full name, room number, work +# phone, home phone). If not defined, no changes are allowed. +# For backward compatibility, "yes" = "rwh" and "no" = "frwh". +# +CHFN_RESTRICT rwh + +# +# Should login be allowed if we can't cd to the home directory? +# Default is no. +# +DEFAULT_HOME yes + +# +# If defined, this command is run when removing a user. +# It should remove any at/cron/print jobs etc. owned by +# the user to be removed (passed as the first argument). +# +#USERDEL_CMD /usr/sbin/userdel_local + +# +# If set to yes, userdel will remove the user's group if it contains no +# more members, and useradd will create by default a group with the name +# of the user. +# +# Other former uses of this variable such as setting the umask when +# user==primary group are not used in PAM environments, such as Debian +# +USERGROUPS_ENAB yes + +# +# Instead of the real user shell, the program specified by this parameter +# will be launched, although its visible name (argv[0]) will be the shell's. +# The program may do whatever it wants (logging, additional authentification, +# banner, ...) before running the actual shell. +# +# FAKE_SHELL /bin/fakeshell + +# +# If defined, either full pathname of a file containing device names or +# a ":" delimited list of device names. Root logins will be allowed only +# upon these devices. +# +# This variable is used by login and su. +# +#CONSOLE /etc/consoles +#CONSOLE console:tty01:tty02:tty03:tty04 + +# +# List of groups to add to the user's supplementary group set +# when logging in on the console (as determined by the CONSOLE +# setting). Default is none. +# +# Use with caution - it is possible for users to gain permanent +# access to these groups, even when not logged in on the console. +# How to do it is left as an exercise for the reader... +# +# This variable is used by login and su. +# +#CONSOLE_GROUPS floppy:audio:cdrom + +# +# If set to "yes", new passwords will be encrypted using the MD5-based +# algorithm compatible with the one used by recent releases of FreeBSD. +# It supports passwords of unlimited length and longer salt strings. +# Set to "no" if you need to copy encrypted passwords to other systems +# which don't understand the new algorithm. Default is "no". +# +# This variable is deprecated. You should use ENCRYPT_METHOD. +# +#MD5_CRYPT_ENAB no + +# +# If set to MD5 , MD5-based algorithm will be used for encrypting password +# If set to SHA256, SHA256-based algorithm will be used for encrypting password +# If set to SHA512, SHA512-based algorithm will be used for encrypting password +# If set to DES, DES-based algorithm will be used for encrypting password (default) +# Overrides the MD5_CRYPT_ENAB option +# +# Note: It is recommended to use a value consistent with +# the PAM modules configuration. +# +#ENCRYPT_METHOD DES + +# +# Only used if ENCRYPT_METHOD is set to SHA256 or SHA512. +# +# Define the number of SHA rounds. +# With a lot of rounds, it is more difficult to brute forcing the password. +# But note also that it more CPU resources will be needed to authenticate +# users. +# +# If not specified, the libc will choose the default number of rounds (5000). +# The values must be inside the 1000-999999999 range. +# If only one of the MIN or MAX values is set, then this value will be used. +# If MIN > MAX, the highest value will be used. +# +# SHA_CRYPT_MIN_ROUNDS 5000 +# SHA_CRYPT_MAX_ROUNDS 5000 + +################# OBSOLETED BY PAM ############## +# # +# These options are now handled by PAM. Please # +# edit the appropriate file in /etc/pam.d/ to # +# enable the equivalents of them. +# +############### + +#MOTD_FILE +#DIALUPS_CHECK_ENAB +#LASTLOG_ENAB +#MAIL_CHECK_ENAB +#OBSCURE_CHECKS_ENAB +#PORTTIME_CHECKS_ENAB +#SU_WHEEL_ONLY +#PASS_CHANGE_TRIES +#PASS_ALWAYS_WARN +#ENVIRON_FILE +#NOLOGINS_FILE +#ISSUE_FILE +#PASS_MIN_LEN +#PASS_MAX_LEN +#ULIMIT +#ENV_HZ +#CHFN_AUTH +#CHSH_AUTH +#FAIL_DELAY + +################# OBSOLETED ####################### +# # +# These options are no more handled by shadow. # +# # +# Shadow utilities will display a warning if they # +# still appear. # +# # +################################################### + +# CLOSE_SESSIONS +# LOGIN_STRING +# NO_PASSWORD_CONSOLE +# QMAIL_DIR + + + diff --git a/tests/tests/chroot/grpconv/01_grpconv--root/config_chroot/etc/passwd b/tests/tests/chroot/grpconv/01_grpconv--root/config_chroot/etc/passwd new file mode 100644 index 00000000..9bdeb8ce --- /dev/null +++ b/tests/tests/chroot/grpconv/01_grpconv--root/config_chroot/etc/passwd @@ -0,0 +1,21 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser:x:424242:424242::/home/:/bin/sh +testsuite::424243:424243::/home:/bin/bash diff --git a/tests/tests/chroot/grpconv/01_grpconv--root/config_chroot/etc/shadow b/tests/tests/chroot/grpconv/01_grpconv--root/config_chroot/etc/shadow new file mode 100644 index 00000000..038d5cf4 --- /dev/null +++ b/tests/tests/chroot/grpconv/01_grpconv--root/config_chroot/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: diff --git a/tests/tests/chroot/grpconv/01_grpconv--root/data/group b/tests/tests/chroot/grpconv/01_grpconv--root/data/group new file mode 100644 index 00000000..245cc9cf --- /dev/null +++ b/tests/tests/chroot/grpconv/01_grpconv--root/data/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: diff --git a/tests/tests/chroot/grpconv/01_grpconv--root/data/gshadow b/tests/tests/chroot/grpconv/01_grpconv--root/data/gshadow new file mode 100644 index 00000000..5f81b8f9 --- /dev/null +++ b/tests/tests/chroot/grpconv/01_grpconv--root/data/gshadow @@ -0,0 +1,42 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:foo:: +nogroup::: +crontab:*:: +Debian-exim:!:: +myuser:*:: diff --git a/tests/tests/chroot/grpconv/01_grpconv--root/grpconv.test b/tests/tests/chroot/grpconv/01_grpconv--root/grpconv.test new file mode 100755 index 00000000..92e1bf06 --- /dev/null +++ b/tests/tests/chroot/grpconv/01_grpconv--root/grpconv.test @@ -0,0 +1,50 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "grpconv can change a chroot" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; clean_chroot; restore_config' 0 + +change_config + +prepare_chroot + +echo -n "grpconv in a chroot (grpconv --root $PWD/tmp/root)..." +grpconv --root $PWD/tmp/root +echo "OK" + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +../../../common/compare_file.pl config_chroot/etc/passwd tmp/root/etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +../../../common/compare_file.pl data/group tmp/root/etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +../../../common/compare_file.pl config_chroot/etc/shadow tmp/root/etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +../../../common/compare_file.pl data/gshadow tmp/root/etc/gshadow +echo "OK" + +rm -f tmp/root/etc/.pwd.lock +rm -f tmp/root/etc/group- +rm -f tmp/root/etc/gshadow +clean_chroot + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chroot/grpunconv/01_grpunconv--root/config.txt b/tests/tests/chroot/grpunconv/01_grpunconv--root/config.txt new file mode 100644 index 00000000..31f56359 --- /dev/null +++ b/tests/tests/chroot/grpunconv/01_grpunconv--root/config.txt @@ -0,0 +1,10 @@ +# no testsuite password +# root password: rootF00barbaz +# myuser password: myuserF00barbaz + +user foo, in group users (only in /etc/group) +user foo, in group tty (only in /etc/gshadow) +user foo, in group floppy +user foo, admin of group disk +user foo, admin and member of group fax +user foo, admin and member of group cdrom (only in /etc/gshadow) diff --git a/tests/tests/chroot/grpunconv/01_grpunconv--root/config/etc/default/useradd b/tests/tests/chroot/grpunconv/01_grpunconv--root/config/etc/default/useradd new file mode 100644 index 00000000..31c44abe --- /dev/null +++ b/tests/tests/chroot/grpunconv/01_grpunconv--root/config/etc/default/useradd @@ -0,0 +1,36 @@ +# Default values for useradd(8) +# +# The SHELL variable specifies the default login shell on your +# system. +# Similar to DHSELL in adduser. However, we use "sh" here because +# useradd is a low level utility and should be as general +# as possible +SHELL=/bin/foobar +# +# The default group for users +# 100=users on Debian systems +# Same as USERS_GID in adduser +# This argument is used when the -n flag is specified. +# The default behavior (when -n and -g are not specified) is to create a +# primary user group with the same name as the user being added to the +# system. +GROUP=10 +# +# The default home directory. Same as DHOME for adduser +HOME=/tmp +# +# The number of days after a password expires until the account +# is permanently disabled +INACTIVE=12 +# +# The default expire date +EXPIRE=2007-12-02 +# +# The SKEL variable specifies the directory containing "skeletal" user +# files; in other words, files such as a sample .profile that will be +# copied to the new user's home directory when it is created. +# SKEL=/etc/skel +# +# Defines whether the mail spool should be created while +# creating the account +# CREATE_MAIL_SPOOL=yes diff --git a/tests/tests/chroot/grpunconv/01_grpunconv--root/config/etc/group b/tests/tests/chroot/grpunconv/01_grpunconv--root/config/etc/group new file mode 100644 index 00000000..10123908 --- /dev/null +++ b/tests/tests/chroot/grpunconv/01_grpunconv--root/config/etc/group @@ -0,0 +1,41 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: diff --git a/tests/tests/chroot/grpunconv/01_grpunconv--root/config/etc/gshadow b/tests/tests/chroot/grpunconv/01_grpunconv--root/config/etc/gshadow new file mode 100644 index 00000000..b21489b2 --- /dev/null +++ b/tests/tests/chroot/grpunconv/01_grpunconv--root/config/etc/gshadow @@ -0,0 +1,41 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: diff --git a/tests/tests/chroot/grpunconv/01_grpunconv--root/config/etc/passwd b/tests/tests/chroot/grpunconv/01_grpunconv--root/config/etc/passwd new file mode 100644 index 00000000..43fc135a --- /dev/null +++ b/tests/tests/chroot/grpunconv/01_grpunconv--root/config/etc/passwd @@ -0,0 +1,19 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false diff --git a/tests/tests/chroot/grpunconv/01_grpunconv--root/config/etc/shadow b/tests/tests/chroot/grpunconv/01_grpunconv--root/config/etc/shadow new file mode 100644 index 00000000..5f50d187 --- /dev/null +++ b/tests/tests/chroot/grpunconv/01_grpunconv--root/config/etc/shadow @@ -0,0 +1,19 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: diff --git a/tests/tests/chroot/grpunconv/01_grpunconv--root/config_chroot/etc/group b/tests/tests/chroot/grpunconv/01_grpunconv--root/config_chroot/etc/group new file mode 100644 index 00000000..245cc9cf --- /dev/null +++ b/tests/tests/chroot/grpunconv/01_grpunconv--root/config_chroot/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: diff --git a/tests/tests/chroot/grpunconv/01_grpunconv--root/config_chroot/etc/gshadow b/tests/tests/chroot/grpunconv/01_grpunconv--root/config_chroot/etc/gshadow new file mode 100644 index 00000000..86f5654a --- /dev/null +++ b/tests/tests/chroot/grpunconv/01_grpunconv--root/config_chroot/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:: diff --git a/tests/tests/chroot/grpunconv/01_grpunconv--root/config_chroot/etc/login.defs b/tests/tests/chroot/grpunconv/01_grpunconv--root/config_chroot/etc/login.defs new file mode 100644 index 00000000..3b216aa1 --- /dev/null +++ b/tests/tests/chroot/grpunconv/01_grpunconv--root/config_chroot/etc/login.defs @@ -0,0 +1,334 @@ +# +# /etc/login.defs - Configuration control definitions for the login package. +# +# Three items must be defined: MAIL_DIR, ENV_SUPATH, and ENV_PATH. +# If unspecified, some arbitrary (and possibly incorrect) value will +# be assumed. All other items are optional - if not specified then +# the described action or option will be inhibited. +# +# Comment lines (lines beginning with "#") and blank lines are ignored. +# +# Modified for Linux. --marekm + +# REQUIRED for useradd/userdel/usermod +# Directory where mailboxes reside, _or_ name of file, relative to the +# home directory. If you _do_ define MAIL_DIR and MAIL_FILE, +# MAIL_DIR takes precedence. +# +# Essentially: +# - MAIL_DIR defines the location of users mail spool files +# (for mbox use) by appending the username to MAIL_DIR as defined +# below. +# - MAIL_FILE defines the location of the users mail spool files as the +# fully-qualified filename obtained by prepending the user home +# directory before $MAIL_FILE +# +# NOTE: This is no more used for setting up users MAIL environment variable +# which is, starting from shadow 4.0.12-1 in Debian, entirely the +# job of the pam_mail PAM modules +# See default PAM configuration files provided for +# login, su, etc. +# +# This is a temporary situation: setting these variables will soon +# move to /etc/default/useradd and the variables will then be +# no more supported +MAIL_DIR /var/mail +#MAIL_FILE .mail + +# +# Enable logging and display of /var/log/faillog login failure info. +# This option conflicts with the pam_tally PAM module. +# +FAILLOG_ENAB yes + +# +# Enable display of unknown usernames when login failures are recorded. +# +# WARNING: Unknown usernames may become world readable. +# See #290803 and #298773 for details about how this could become a security +# concern +LOG_UNKFAIL_ENAB no + +# +# Enable logging of successful logins +# +LOG_OK_LOGINS no + +# +# Enable "syslog" logging of su activity - in addition to sulog file logging. +# SYSLOG_SG_ENAB does the same for newgrp and sg. +# +SYSLOG_SU_ENAB yes +SYSLOG_SG_ENAB yes + +# +# If defined, all su activity is logged to this file. +# +#SULOG_FILE /var/log/sulog + +# +# If defined, file which maps tty line to TERM environment parameter. +# Each line of the file is in a format something like "vt100 tty01". +# +#TTYTYPE_FILE /etc/ttytype + +# +# If defined, login failures will be logged here in a utmp format +# last, when invoked as lastb, will read /var/log/btmp, so... +# +FTMP_FILE /var/log/btmp + +# +# If defined, the command name to display when running "su -". For +# example, if this is defined as "su" then a "ps" will display the +# command is "-su". If not defined, then "ps" would display the +# name of the shell actually being run, e.g. something like "-sh". +# +SU_NAME su + +# +# If defined, file which inhibits all the usual chatter during the login +# sequence. If a full pathname, then hushed mode will be enabled if the +# user's name or shell are found in the file. If not a full pathname, then +# hushed mode will be enabled if the file exists in the user's home directory. +# +HUSHLOGIN_FILE .hushlogin +#HUSHLOGIN_FILE /etc/hushlogins + +# +# *REQUIRED* The default PATH settings, for superuser and normal users. +# +# (they are minimal, add the rest in the shell startup files) +ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games + +# +# Terminal permissions +# +# TTYGROUP Login tty will be assigned this group ownership. +# TTYPERM Login tty will be set to this permission. +# +# If you have a "write" program which is "setgid" to a special group +# which owns the terminals, define TTYGROUP to the group number and +# TTYPERM to 0620. Otherwise leave TTYGROUP commented out and assign +# TTYPERM to either 622 or 600. +# +# In Debian /usr/bin/bsd-write or similar programs are setgid tty +# However, the default and recommended value for TTYPERM is still 0600 +# to not allow anyone to write to anyone else console or terminal + +# Users can still allow other people to write them by issuing +# the "mesg y" command. + +TTYGROUP tty +TTYPERM 0600 + +# +# Login configuration initializations: +# +# ERASECHAR Terminal ERASE character ('\010' = backspace). +# KILLCHAR Terminal KILL character ('\025' = CTRL/U). +# UMASK Default "umask" value. +# +# The ERASECHAR and KILLCHAR are used only on System V machines. +# +# UMASK is the default umask value for pam_umask and is used by +# useradd and newusers to set the mode of the new home directories. +# 022 is the "historical" value in Debian for UMASK +# 027, or even 077, could be considered better for privacy +# There is no One True Answer here : each sysadmin must make up their +# mind. +# +# Prefix these values with "0" to get octal, "0x" to get hexadecimal. +# +ERASECHAR 0177 +KILLCHAR 025 +UMASK 022 + +# +# Password aging controls: +# +# PASS_MAX_DAYS Maximum number of days a password may be used. +# PASS_MIN_DAYS Minimum number of days allowed between password changes. +# PASS_WARN_AGE Number of days warning given before a password expires. +# +PASS_MAX_DAYS 99999 +PASS_MIN_DAYS 0 +PASS_WARN_AGE 7 + +# +# Min/max values for automatic uid selection in useradd +# +UID_MIN 1000 +UID_MAX 60000 +# System accounts +#SYS_UID_MIN 100 +#SYS_UID_MAX 999 + +# +# Min/max values for automatic gid selection in groupadd +# +GID_MIN 1000 +GID_MAX 60000 +# System accounts +#SYS_GID_MIN 100 +#SYS_GID_MAX 999 + +# +# Max number of login retries if password is bad. This will most likely be +# overridden by PAM, since the default pam_unix module has it's own built +# in of 3 retries. However, this is a safe fallback in case you are using +# an authentication module that does not enforce PAM_MAXTRIES. +# +LOGIN_RETRIES 5 + +# +# Max time in seconds for login +# +LOGIN_TIMEOUT 60 + +# +# Which fields may be changed by regular users using chfn - use +# any combination of letters "frwh" (full name, room number, work +# phone, home phone). If not defined, no changes are allowed. +# For backward compatibility, "yes" = "rwh" and "no" = "frwh". +# +CHFN_RESTRICT rwh + +# +# Should login be allowed if we can't cd to the home directory? +# Default is no. +# +DEFAULT_HOME yes + +# +# If defined, this command is run when removing a user. +# It should remove any at/cron/print jobs etc. owned by +# the user to be removed (passed as the first argument). +# +#USERDEL_CMD /usr/sbin/userdel_local + +# +# If set to yes, userdel will remove the user's group if it contains no +# more members, and useradd will create by default a group with the name +# of the user. +# +# Other former uses of this variable such as setting the umask when +# user==primary group are not used in PAM environments, such as Debian +# +USERGROUPS_ENAB yes + +# +# Instead of the real user shell, the program specified by this parameter +# will be launched, although its visible name (argv[0]) will be the shell's. +# The program may do whatever it wants (logging, additional authentification, +# banner, ...) before running the actual shell. +# +# FAKE_SHELL /bin/fakeshell + +# +# If defined, either full pathname of a file containing device names or +# a ":" delimited list of device names. Root logins will be allowed only +# upon these devices. +# +# This variable is used by login and su. +# +#CONSOLE /etc/consoles +#CONSOLE console:tty01:tty02:tty03:tty04 + +# +# List of groups to add to the user's supplementary group set +# when logging in on the console (as determined by the CONSOLE +# setting). Default is none. +# +# Use with caution - it is possible for users to gain permanent +# access to these groups, even when not logged in on the console. +# How to do it is left as an exercise for the reader... +# +# This variable is used by login and su. +# +#CONSOLE_GROUPS floppy:audio:cdrom + +# +# If set to "yes", new passwords will be encrypted using the MD5-based +# algorithm compatible with the one used by recent releases of FreeBSD. +# It supports passwords of unlimited length and longer salt strings. +# Set to "no" if you need to copy encrypted passwords to other systems +# which don't understand the new algorithm. Default is "no". +# +# This variable is deprecated. You should use ENCRYPT_METHOD. +# +#MD5_CRYPT_ENAB no + +# +# If set to MD5 , MD5-based algorithm will be used for encrypting password +# If set to SHA256, SHA256-based algorithm will be used for encrypting password +# If set to SHA512, SHA512-based algorithm will be used for encrypting password +# If set to DES, DES-based algorithm will be used for encrypting password (default) +# Overrides the MD5_CRYPT_ENAB option +# +# Note: It is recommended to use a value consistent with +# the PAM modules configuration. +# +#ENCRYPT_METHOD DES + +# +# Only used if ENCRYPT_METHOD is set to SHA256 or SHA512. +# +# Define the number of SHA rounds. +# With a lot of rounds, it is more difficult to brute forcing the password. +# But note also that it more CPU resources will be needed to authenticate +# users. +# +# If not specified, the libc will choose the default number of rounds (5000). +# The values must be inside the 1000-999999999 range. +# If only one of the MIN or MAX values is set, then this value will be used. +# If MIN > MAX, the highest value will be used. +# +# SHA_CRYPT_MIN_ROUNDS 5000 +# SHA_CRYPT_MAX_ROUNDS 5000 + +################# OBSOLETED BY PAM ############## +# # +# These options are now handled by PAM. Please # +# edit the appropriate file in /etc/pam.d/ to # +# enable the equivalents of them. +# +############### + +#MOTD_FILE +#DIALUPS_CHECK_ENAB +#LASTLOG_ENAB +#MAIL_CHECK_ENAB +#OBSCURE_CHECKS_ENAB +#PORTTIME_CHECKS_ENAB +#SU_WHEEL_ONLY +#PASS_CHANGE_TRIES +#PASS_ALWAYS_WARN +#ENVIRON_FILE +#NOLOGINS_FILE +#ISSUE_FILE +#PASS_MIN_LEN +#PASS_MAX_LEN +#ULIMIT +#ENV_HZ +#CHFN_AUTH +#CHSH_AUTH +#FAIL_DELAY + +################# OBSOLETED ####################### +# # +# These options are no more handled by shadow. # +# # +# Shadow utilities will display a warning if they # +# still appear. # +# # +################################################### + +# CLOSE_SESSIONS +# LOGIN_STRING +# NO_PASSWORD_CONSOLE +# QMAIL_DIR + + + diff --git a/tests/tests/chroot/grpunconv/01_grpunconv--root/config_chroot/etc/passwd b/tests/tests/chroot/grpunconv/01_grpunconv--root/config_chroot/etc/passwd new file mode 100644 index 00000000..9bdeb8ce --- /dev/null +++ b/tests/tests/chroot/grpunconv/01_grpunconv--root/config_chroot/etc/passwd @@ -0,0 +1,21 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser:x:424242:424242::/home/:/bin/sh +testsuite::424243:424243::/home:/bin/bash diff --git a/tests/tests/chroot/grpunconv/01_grpunconv--root/config_chroot/etc/shadow b/tests/tests/chroot/grpunconv/01_grpunconv--root/config_chroot/etc/shadow new file mode 100644 index 00000000..038d5cf4 --- /dev/null +++ b/tests/tests/chroot/grpunconv/01_grpunconv--root/config_chroot/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: diff --git a/tests/tests/chroot/grpunconv/01_grpunconv--root/data/group b/tests/tests/chroot/grpunconv/01_grpunconv--root/data/group new file mode 100644 index 00000000..9a037038 --- /dev/null +++ b/tests/tests/chroot/grpunconv/01_grpunconv--root/data/group @@ -0,0 +1,42 @@ +root:*:0: +daemon:*:1: +bin:*:2: +sys:*:3: +adm:*:4: +tty:*:5: +disk:*:6: +lp:*:7: +mail:*:8: +news:*:9: +uucp:*:10: +man:*:12: +proxy:*:13: +kmem:*:15: +dialout:*:20: +fax:*:21: +voice:*:22: +cdrom:*:24: +floppy:*:25: +tape:*:26: +sudo:*:27: +audio:*:29: +dip:*:30: +www-data:*:33: +backup:*:34: +operator:*:37: +list:*:38: +irc:*:39: +src:*:40: +gnats:*:41: +shadow:*:42: +utmp:*:43: +video:*:44: +sasl:*:45: +plugdev:*:46: +staff:*:50: +games:*:60: +users:*:100: +nogroup:*:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:424242: diff --git a/tests/tests/chroot/grpunconv/01_grpunconv--root/grpunconv.test b/tests/tests/chroot/grpunconv/01_grpunconv--root/grpunconv.test new file mode 100755 index 00000000..5d6edd58 --- /dev/null +++ b/tests/tests/chroot/grpunconv/01_grpunconv--root/grpunconv.test @@ -0,0 +1,52 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "grpunconv can change a chroot" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; clean_chroot; restore_config' 0 + +change_config + +prepare_chroot + +echo -n "grpunconv in a chroot (grpunconv --root $PWD/tmp/root)..." +grpunconv --root $PWD/tmp/root +echo "OK" + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +../../../common/compare_file.pl config_chroot/etc/passwd tmp/root/etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +../../../common/compare_file.pl data/group tmp/root/etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +../../../common/compare_file.pl config_chroot/etc/shadow tmp/root/etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +test ! -f tmp/root/etc/gshadow +echo "OK" + +rm -f tmp/root/etc/.pwd.lock +rm -f tmp/root/etc/passwd- +rm -f tmp/root/etc/group- +rm -f tmp/root/etc/shadow- +rm -f tmp/root/etc/gshadow- +clean_chroot + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chroot/lastlog/01_lastlog--root/config.txt b/tests/tests/chroot/lastlog/01_lastlog--root/config.txt new file mode 100644 index 00000000..31f56359 --- /dev/null +++ b/tests/tests/chroot/lastlog/01_lastlog--root/config.txt @@ -0,0 +1,10 @@ +# no testsuite password +# root password: rootF00barbaz +# myuser password: myuserF00barbaz + +user foo, in group users (only in /etc/group) +user foo, in group tty (only in /etc/gshadow) +user foo, in group floppy +user foo, admin of group disk +user foo, admin and member of group fax +user foo, admin and member of group cdrom (only in /etc/gshadow) diff --git a/tests/tests/chroot/lastlog/01_lastlog--root/config/etc/default/useradd b/tests/tests/chroot/lastlog/01_lastlog--root/config/etc/default/useradd new file mode 100644 index 00000000..31c44abe --- /dev/null +++ b/tests/tests/chroot/lastlog/01_lastlog--root/config/etc/default/useradd @@ -0,0 +1,36 @@ +# Default values for useradd(8) +# +# The SHELL variable specifies the default login shell on your +# system. +# Similar to DHSELL in adduser. However, we use "sh" here because +# useradd is a low level utility and should be as general +# as possible +SHELL=/bin/foobar +# +# The default group for users +# 100=users on Debian systems +# Same as USERS_GID in adduser +# This argument is used when the -n flag is specified. +# The default behavior (when -n and -g are not specified) is to create a +# primary user group with the same name as the user being added to the +# system. +GROUP=10 +# +# The default home directory. Same as DHOME for adduser +HOME=/tmp +# +# The number of days after a password expires until the account +# is permanently disabled +INACTIVE=12 +# +# The default expire date +EXPIRE=2007-12-02 +# +# The SKEL variable specifies the directory containing "skeletal" user +# files; in other words, files such as a sample .profile that will be +# copied to the new user's home directory when it is created. +# SKEL=/etc/skel +# +# Defines whether the mail spool should be created while +# creating the account +# CREATE_MAIL_SPOOL=yes diff --git a/tests/tests/chroot/lastlog/01_lastlog--root/config/etc/group b/tests/tests/chroot/lastlog/01_lastlog--root/config/etc/group new file mode 100644 index 00000000..10123908 --- /dev/null +++ b/tests/tests/chroot/lastlog/01_lastlog--root/config/etc/group @@ -0,0 +1,41 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: diff --git a/tests/tests/chroot/lastlog/01_lastlog--root/config/etc/gshadow b/tests/tests/chroot/lastlog/01_lastlog--root/config/etc/gshadow new file mode 100644 index 00000000..ae424865 --- /dev/null +++ b/tests/tests/chroot/lastlog/01_lastlog--root/config/etc/gshadow @@ -0,0 +1,41 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: diff --git a/tests/tests/chroot/lastlog/01_lastlog--root/config/etc/passwd b/tests/tests/chroot/lastlog/01_lastlog--root/config/etc/passwd new file mode 100644 index 00000000..43fc135a --- /dev/null +++ b/tests/tests/chroot/lastlog/01_lastlog--root/config/etc/passwd @@ -0,0 +1,19 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false diff --git a/tests/tests/chroot/lastlog/01_lastlog--root/config/etc/shadow b/tests/tests/chroot/lastlog/01_lastlog--root/config/etc/shadow new file mode 100644 index 00000000..5f50d187 --- /dev/null +++ b/tests/tests/chroot/lastlog/01_lastlog--root/config/etc/shadow @@ -0,0 +1,19 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: diff --git a/tests/tests/chroot/lastlog/01_lastlog--root/config_chroot/etc/group b/tests/tests/chroot/lastlog/01_lastlog--root/config_chroot/etc/group new file mode 100644 index 00000000..d2a4b10a --- /dev/null +++ b/tests/tests/chroot/lastlog/01_lastlog--root/config_chroot/etc/group @@ -0,0 +1,42 @@ +staff:x:50: +root:x:0: +tty:x:5: +daemon:x:1: +bin:x:2: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +sys:x:3: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +adm:x:4: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: +disk:x:6: diff --git a/tests/tests/chroot/lastlog/01_lastlog--root/config_chroot/etc/gshadow b/tests/tests/chroot/lastlog/01_lastlog--root/config_chroot/etc/gshadow new file mode 100644 index 00000000..25bd55bd --- /dev/null +++ b/tests/tests/chroot/lastlog/01_lastlog--root/config_chroot/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: diff --git a/tests/tests/chroot/lastlog/01_lastlog--root/config_chroot/etc/login.defs b/tests/tests/chroot/lastlog/01_lastlog--root/config_chroot/etc/login.defs new file mode 100644 index 00000000..3b216aa1 --- /dev/null +++ b/tests/tests/chroot/lastlog/01_lastlog--root/config_chroot/etc/login.defs @@ -0,0 +1,334 @@ +# +# /etc/login.defs - Configuration control definitions for the login package. +# +# Three items must be defined: MAIL_DIR, ENV_SUPATH, and ENV_PATH. +# If unspecified, some arbitrary (and possibly incorrect) value will +# be assumed. All other items are optional - if not specified then +# the described action or option will be inhibited. +# +# Comment lines (lines beginning with "#") and blank lines are ignored. +# +# Modified for Linux. --marekm + +# REQUIRED for useradd/userdel/usermod +# Directory where mailboxes reside, _or_ name of file, relative to the +# home directory. If you _do_ define MAIL_DIR and MAIL_FILE, +# MAIL_DIR takes precedence. +# +# Essentially: +# - MAIL_DIR defines the location of users mail spool files +# (for mbox use) by appending the username to MAIL_DIR as defined +# below. +# - MAIL_FILE defines the location of the users mail spool files as the +# fully-qualified filename obtained by prepending the user home +# directory before $MAIL_FILE +# +# NOTE: This is no more used for setting up users MAIL environment variable +# which is, starting from shadow 4.0.12-1 in Debian, entirely the +# job of the pam_mail PAM modules +# See default PAM configuration files provided for +# login, su, etc. +# +# This is a temporary situation: setting these variables will soon +# move to /etc/default/useradd and the variables will then be +# no more supported +MAIL_DIR /var/mail +#MAIL_FILE .mail + +# +# Enable logging and display of /var/log/faillog login failure info. +# This option conflicts with the pam_tally PAM module. +# +FAILLOG_ENAB yes + +# +# Enable display of unknown usernames when login failures are recorded. +# +# WARNING: Unknown usernames may become world readable. +# See #290803 and #298773 for details about how this could become a security +# concern +LOG_UNKFAIL_ENAB no + +# +# Enable logging of successful logins +# +LOG_OK_LOGINS no + +# +# Enable "syslog" logging of su activity - in addition to sulog file logging. +# SYSLOG_SG_ENAB does the same for newgrp and sg. +# +SYSLOG_SU_ENAB yes +SYSLOG_SG_ENAB yes + +# +# If defined, all su activity is logged to this file. +# +#SULOG_FILE /var/log/sulog + +# +# If defined, file which maps tty line to TERM environment parameter. +# Each line of the file is in a format something like "vt100 tty01". +# +#TTYTYPE_FILE /etc/ttytype + +# +# If defined, login failures will be logged here in a utmp format +# last, when invoked as lastb, will read /var/log/btmp, so... +# +FTMP_FILE /var/log/btmp + +# +# If defined, the command name to display when running "su -". For +# example, if this is defined as "su" then a "ps" will display the +# command is "-su". If not defined, then "ps" would display the +# name of the shell actually being run, e.g. something like "-sh". +# +SU_NAME su + +# +# If defined, file which inhibits all the usual chatter during the login +# sequence. If a full pathname, then hushed mode will be enabled if the +# user's name or shell are found in the file. If not a full pathname, then +# hushed mode will be enabled if the file exists in the user's home directory. +# +HUSHLOGIN_FILE .hushlogin +#HUSHLOGIN_FILE /etc/hushlogins + +# +# *REQUIRED* The default PATH settings, for superuser and normal users. +# +# (they are minimal, add the rest in the shell startup files) +ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games + +# +# Terminal permissions +# +# TTYGROUP Login tty will be assigned this group ownership. +# TTYPERM Login tty will be set to this permission. +# +# If you have a "write" program which is "setgid" to a special group +# which owns the terminals, define TTYGROUP to the group number and +# TTYPERM to 0620. Otherwise leave TTYGROUP commented out and assign +# TTYPERM to either 622 or 600. +# +# In Debian /usr/bin/bsd-write or similar programs are setgid tty +# However, the default and recommended value for TTYPERM is still 0600 +# to not allow anyone to write to anyone else console or terminal + +# Users can still allow other people to write them by issuing +# the "mesg y" command. + +TTYGROUP tty +TTYPERM 0600 + +# +# Login configuration initializations: +# +# ERASECHAR Terminal ERASE character ('\010' = backspace). +# KILLCHAR Terminal KILL character ('\025' = CTRL/U). +# UMASK Default "umask" value. +# +# The ERASECHAR and KILLCHAR are used only on System V machines. +# +# UMASK is the default umask value for pam_umask and is used by +# useradd and newusers to set the mode of the new home directories. +# 022 is the "historical" value in Debian for UMASK +# 027, or even 077, could be considered better for privacy +# There is no One True Answer here : each sysadmin must make up their +# mind. +# +# Prefix these values with "0" to get octal, "0x" to get hexadecimal. +# +ERASECHAR 0177 +KILLCHAR 025 +UMASK 022 + +# +# Password aging controls: +# +# PASS_MAX_DAYS Maximum number of days a password may be used. +# PASS_MIN_DAYS Minimum number of days allowed between password changes. +# PASS_WARN_AGE Number of days warning given before a password expires. +# +PASS_MAX_DAYS 99999 +PASS_MIN_DAYS 0 +PASS_WARN_AGE 7 + +# +# Min/max values for automatic uid selection in useradd +# +UID_MIN 1000 +UID_MAX 60000 +# System accounts +#SYS_UID_MIN 100 +#SYS_UID_MAX 999 + +# +# Min/max values for automatic gid selection in groupadd +# +GID_MIN 1000 +GID_MAX 60000 +# System accounts +#SYS_GID_MIN 100 +#SYS_GID_MAX 999 + +# +# Max number of login retries if password is bad. This will most likely be +# overridden by PAM, since the default pam_unix module has it's own built +# in of 3 retries. However, this is a safe fallback in case you are using +# an authentication module that does not enforce PAM_MAXTRIES. +# +LOGIN_RETRIES 5 + +# +# Max time in seconds for login +# +LOGIN_TIMEOUT 60 + +# +# Which fields may be changed by regular users using chfn - use +# any combination of letters "frwh" (full name, room number, work +# phone, home phone). If not defined, no changes are allowed. +# For backward compatibility, "yes" = "rwh" and "no" = "frwh". +# +CHFN_RESTRICT rwh + +# +# Should login be allowed if we can't cd to the home directory? +# Default is no. +# +DEFAULT_HOME yes + +# +# If defined, this command is run when removing a user. +# It should remove any at/cron/print jobs etc. owned by +# the user to be removed (passed as the first argument). +# +#USERDEL_CMD /usr/sbin/userdel_local + +# +# If set to yes, userdel will remove the user's group if it contains no +# more members, and useradd will create by default a group with the name +# of the user. +# +# Other former uses of this variable such as setting the umask when +# user==primary group are not used in PAM environments, such as Debian +# +USERGROUPS_ENAB yes + +# +# Instead of the real user shell, the program specified by this parameter +# will be launched, although its visible name (argv[0]) will be the shell's. +# The program may do whatever it wants (logging, additional authentification, +# banner, ...) before running the actual shell. +# +# FAKE_SHELL /bin/fakeshell + +# +# If defined, either full pathname of a file containing device names or +# a ":" delimited list of device names. Root logins will be allowed only +# upon these devices. +# +# This variable is used by login and su. +# +#CONSOLE /etc/consoles +#CONSOLE console:tty01:tty02:tty03:tty04 + +# +# List of groups to add to the user's supplementary group set +# when logging in on the console (as determined by the CONSOLE +# setting). Default is none. +# +# Use with caution - it is possible for users to gain permanent +# access to these groups, even when not logged in on the console. +# How to do it is left as an exercise for the reader... +# +# This variable is used by login and su. +# +#CONSOLE_GROUPS floppy:audio:cdrom + +# +# If set to "yes", new passwords will be encrypted using the MD5-based +# algorithm compatible with the one used by recent releases of FreeBSD. +# It supports passwords of unlimited length and longer salt strings. +# Set to "no" if you need to copy encrypted passwords to other systems +# which don't understand the new algorithm. Default is "no". +# +# This variable is deprecated. You should use ENCRYPT_METHOD. +# +#MD5_CRYPT_ENAB no + +# +# If set to MD5 , MD5-based algorithm will be used for encrypting password +# If set to SHA256, SHA256-based algorithm will be used for encrypting password +# If set to SHA512, SHA512-based algorithm will be used for encrypting password +# If set to DES, DES-based algorithm will be used for encrypting password (default) +# Overrides the MD5_CRYPT_ENAB option +# +# Note: It is recommended to use a value consistent with +# the PAM modules configuration. +# +#ENCRYPT_METHOD DES + +# +# Only used if ENCRYPT_METHOD is set to SHA256 or SHA512. +# +# Define the number of SHA rounds. +# With a lot of rounds, it is more difficult to brute forcing the password. +# But note also that it more CPU resources will be needed to authenticate +# users. +# +# If not specified, the libc will choose the default number of rounds (5000). +# The values must be inside the 1000-999999999 range. +# If only one of the MIN or MAX values is set, then this value will be used. +# If MIN > MAX, the highest value will be used. +# +# SHA_CRYPT_MIN_ROUNDS 5000 +# SHA_CRYPT_MAX_ROUNDS 5000 + +################# OBSOLETED BY PAM ############## +# # +# These options are now handled by PAM. Please # +# edit the appropriate file in /etc/pam.d/ to # +# enable the equivalents of them. +# +############### + +#MOTD_FILE +#DIALUPS_CHECK_ENAB +#LASTLOG_ENAB +#MAIL_CHECK_ENAB +#OBSCURE_CHECKS_ENAB +#PORTTIME_CHECKS_ENAB +#SU_WHEEL_ONLY +#PASS_CHANGE_TRIES +#PASS_ALWAYS_WARN +#ENVIRON_FILE +#NOLOGINS_FILE +#ISSUE_FILE +#PASS_MIN_LEN +#PASS_MAX_LEN +#ULIMIT +#ENV_HZ +#CHFN_AUTH +#CHSH_AUTH +#FAIL_DELAY + +################# OBSOLETED ####################### +# # +# These options are no more handled by shadow. # +# # +# Shadow utilities will display a warning if they # +# still appear. # +# # +################################################### + +# CLOSE_SESSIONS +# LOGIN_STRING +# NO_PASSWORD_CONSOLE +# QMAIL_DIR + + + diff --git a/tests/tests/chroot/lastlog/01_lastlog--root/config_chroot/etc/passwd b/tests/tests/chroot/lastlog/01_lastlog--root/config_chroot/etc/passwd new file mode 100644 index 00000000..9bdeb8ce --- /dev/null +++ b/tests/tests/chroot/lastlog/01_lastlog--root/config_chroot/etc/passwd @@ -0,0 +1,21 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser:x:424242:424242::/home/:/bin/sh +testsuite::424243:424243::/home:/bin/bash diff --git a/tests/tests/chroot/lastlog/01_lastlog--root/config_chroot/etc/shadow b/tests/tests/chroot/lastlog/01_lastlog--root/config_chroot/etc/shadow new file mode 100644 index 00000000..038d5cf4 --- /dev/null +++ b/tests/tests/chroot/lastlog/01_lastlog--root/config_chroot/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: diff --git a/tests/tests/chroot/lastlog/01_lastlog--root/data/group b/tests/tests/chroot/lastlog/01_lastlog--root/data/group new file mode 100644 index 00000000..5c28b637 --- /dev/null +++ b/tests/tests/chroot/lastlog/01_lastlog--root/data/group @@ -0,0 +1,42 @@ +staff:x:50: +root:x:0: +tty:x:5: +daemon:x:1: +bin:x:2: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +sys:x:3: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +adm:x:4: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +games:x:60: +users:x:100:root +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: +disk:x:6: diff --git a/tests/tests/chroot/lastlog/01_lastlog--root/data/gshadow b/tests/tests/chroot/lastlog/01_lastlog--root/data/gshadow new file mode 100644 index 00000000..7b869c21 --- /dev/null +++ b/tests/tests/chroot/lastlog/01_lastlog--root/data/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*::root +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: diff --git a/tests/tests/chroot/lastlog/01_lastlog--root/data/lastlog.list b/tests/tests/chroot/lastlog/01_lastlog--root/data/lastlog.list new file mode 100644 index 00000000..e95b2053 --- /dev/null +++ b/tests/tests/chroot/lastlog/01_lastlog--root/data/lastlog.list @@ -0,0 +1,2 @@ +Username +myuser diff --git a/tests/tests/chroot/lastlog/01_lastlog--root/lastlog.test b/tests/tests/chroot/lastlog/01_lastlog--root/lastlog.test new file mode 100755 index 00000000..d61d9a70 --- /dev/null +++ b/tests/tests/chroot/lastlog/01_lastlog--root/lastlog.test @@ -0,0 +1,47 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "gpasswd can change a group in a chroot" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; rm -f tmp/root/var/log/lastlog; clean_chroot; restore_config' 0 + +change_config + +prepare_chroot + +echo -n "Create an empty /var/log/lastlog in the chroot..." +> tmp/root/var/log/lastlog +echo "OK" + +echo -n "lastlog --root $PWD/tmp/root -u 424242..." +lastlog --root $PWD/tmp/root -u 424242> tmp/lastlog.out +echo "OK." + +echo "lastlog :" +echo "=======================================================================" +cat tmp/lastlog.out +echo "=======================================================================" + +echo -n "Check the list of logged in users..." +cat tmp/lastlog.out | cut -d" " -f1 > tmp/lastlog.list +diff -au data/lastlog.list tmp/lastlog.list +echo "OK." + +rm -f tmp/lastlog.out tmp/lastlog.list +rm -f tmp/root/var/log/lastlog + +clean_chroot + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chroot/login/01_login_sublogin/config.txt b/tests/tests/chroot/login/01_login_sublogin/config.txt new file mode 100644 index 00000000..aecff4a9 --- /dev/null +++ b/tests/tests/chroot/login/01_login_sublogin/config.txt @@ -0,0 +1,3 @@ +# no testsuite password +# root password: rootF00barbaz +# myuser password: myuserF00barbaz diff --git a/tests/tests/chroot/login/01_login_sublogin/config/etc/group b/tests/tests/chroot/login/01_login_sublogin/config/etc/group new file mode 100644 index 00000000..245cc9cf --- /dev/null +++ b/tests/tests/chroot/login/01_login_sublogin/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: diff --git a/tests/tests/chroot/login/01_login_sublogin/config/etc/gshadow b/tests/tests/chroot/login/01_login_sublogin/config/etc/gshadow new file mode 100644 index 00000000..25bd55bd --- /dev/null +++ b/tests/tests/chroot/login/01_login_sublogin/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: diff --git a/tests/tests/chroot/login/01_login_sublogin/config/etc/login.defs b/tests/tests/chroot/login/01_login_sublogin/config/etc/login.defs new file mode 100644 index 00000000..acf5f93b --- /dev/null +++ b/tests/tests/chroot/login/01_login_sublogin/config/etc/login.defs @@ -0,0 +1,314 @@ +# +# /etc/login.defs - Configuration control definitions for the login package. +# +# Three items must be defined: MAIL_DIR, ENV_SUPATH, and ENV_PATH. +# If unspecified, some arbitrary (and possibly incorrect) value will +# be assumed. All other items are optional - if not specified then +# the described action or option will be inhibited. +# +# Comment lines (lines beginning with "#") and blank lines are ignored. +# +# Modified for Linux. --marekm + +# REQUIRED for useradd/userdel/usermod +# Directory where mailboxes reside, _or_ name of file, relative to the +# home directory. If you _do_ define MAIL_DIR and MAIL_FILE, +# MAIL_DIR takes precedence. +# +# Essentially: +# - MAIL_DIR defines the location of users mail spool files +# (for mbox use) by appending the username to MAIL_DIR as defined +# below. +# - MAIL_FILE defines the location of the users mail spool files as the +# fully-qualified filename obtained by prepending the user home +# directory before $MAIL_FILE +# +# NOTE: This is no more used for setting up users MAIL environment variable +# which is, starting from shadow 4.0.12-1 in Debian, entirely the +# job of the pam_mail PAM modules +# See default PAM configuration files provided for +# login, su, etc. +# +# This is a temporary situation: setting these variables will soon +# move to /etc/default/useradd and the variables will then be +# no more supported +MAIL_DIR /var/mail +#MAIL_FILE .mail + +# +# Enable logging and display of /var/log/faillog login failure info. +# This option conflicts with the pam_tally PAM module. +# +FAILLOG_ENAB yes + +# +# Enable display of unknown usernames when login failures are recorded. +# +# WARNING: Unknown usernames may become world readable. +# See #290803 and #298773 for details about how this could become a security +# concern +LOG_UNKFAIL_ENAB no + +# +# Enable logging of successful logins +# +LOG_OK_LOGINS no + +# +# Enable "syslog" logging of su activity - in addition to sulog file logging. +# SYSLOG_SG_ENAB does the same for newgrp and sg. +# +SYSLOG_SU_ENAB yes +SYSLOG_SG_ENAB yes + +# +# If defined, all su activity is logged to this file. +# +#SULOG_FILE /var/log/sulog + +# +# If defined, file which maps tty line to TERM environment parameter. +# Each line of the file is in a format something like "vt100 tty01". +# +#TTYTYPE_FILE /etc/ttytype + +# +# If defined, login failures will be logged here in a utmp format +# last, when invoked as lastb, will read /var/log/btmp, so... +# +FTMP_FILE /var/log/btmp + +# +# If defined, the command name to display when running "su -". For +# example, if this is defined as "su" then a "ps" will display the +# command is "-su". If not defined, then "ps" would display the +# name of the shell actually being run, e.g. something like "-sh". +# +SU_NAME su + +# +# If defined, file which inhibits all the usual chatter during the login +# sequence. If a full pathname, then hushed mode will be enabled if the +# user's name or shell are found in the file. If not a full pathname, then +# hushed mode will be enabled if the file exists in the user's home directory. +# +HUSHLOGIN_FILE .hushlogin +#HUSHLOGIN_FILE /etc/hushlogins + +# +# *REQUIRED* The default PATH settings, for superuser and normal users. +# +# (they are minimal, add the rest in the shell startup files) +#ENV_SUPATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +#ENV_PATH /usr/local/bin:/usr/bin:/bin:/usr/games + +# +# Terminal permissions +# +# TTYGROUP Login tty will be assigned this group ownership. +# TTYPERM Login tty will be set to this permission. +# +# If you have a "write" program which is "setgid" to a special group +# which owns the terminals, define TTYGROUP to the group number and +# TTYPERM to 0620. Otherwise leave TTYGROUP commented out and assign +# TTYPERM to either 622 or 600. +# +# In Debian /usr/bin/bsd-write or similar programs are setgid tty +# However, the default and recommended value for TTYPERM is still 0600 +# to not allow anyone to write to anyone else console or terminal + +# Users can still allow other people to write them by issuing +# the "mesg y" command. + +TTYGROUP tty +TTYPERM 0600 + +# +# Login configuration initializations: +# +# ERASECHAR Terminal ERASE character ('\010' = backspace). +# KILLCHAR Terminal KILL character ('\025' = CTRL/U). +# UMASK Default "umask" value. +# +# The ERASECHAR and KILLCHAR are used only on System V machines. +# +# UMASK usage is discouraged because it catches only some classes of user +# entries to system, in fact only those made through login(1), while setting +# umask in shell rc file will catch also logins through su, cron, ssh etc. +# +# At the same time, using shell rc to set umask won't catch entries which use +# non-shell executables in place of login shell, like /usr/sbin/pppd for "ppp" +# user and alike. +# +# Therefore the use of pam_umask is recommended (Debian package libpam-umask) +# as the solution which catches all these cases on PAM-enabled systems. +# +# This avoids the confusion created by having the umask set +# in two different places -- in login.defs and shell rc files (i.e. +# /etc/profile). +# +# For discussion, see #314539 and #248150 as well as the thread starting at +# http://lists.debian.org/debian-devel/2005/06/msg01598.html +# +# Prefix these values with "0" to get octal, "0x" to get hexadecimal. +# +ERASECHAR 0177 +KILLCHAR 025 +# 022 is the "historical" value in Debian for UMASK when it was used +# 027, or even 077, could be considered better for privacy +# There is no One True Answer here : each sysadmin must make up their +# mind. +#UMASK 022 + +# +# Password aging controls: +# +# PASS_MAX_DAYS Maximum number of days a password may be used. +# PASS_MIN_DAYS Minimum number of days allowed between password changes. +# PASS_WARN_AGE Number of days warning given before a password expires. +# +PASS_MAX_DAYS 99999 +PASS_MIN_DAYS 0 +PASS_WARN_AGE 7 + +# +# Min/max values for automatic uid selection in useradd +# +UID_MIN 1000 +UID_MAX 60000 + +# +# Min/max values for automatic gid selection in groupadd +# +GID_MIN 100 +GID_MAX 60000 + +# +# Max number of login retries if password is bad. This will most likely be +# overridden by PAM, since the default pam_unix module has it's own built +# in of 3 retries. However, this is a safe fallback in case you are using +# an authentication module that does not enforce PAM_MAXTRIES. +# +LOGIN_RETRIES 5 + +# +# Max time in seconds for login +# +LOGIN_TIMEOUT 60 + +# +# Which fields may be changed by regular users using chfn - use +# any combination of letters "frwh" (full name, room number, work +# phone, home phone). If not defined, no changes are allowed. +# For backward compatibility, "yes" = "rwh" and "no" = "frwh". +# +CHFN_RESTRICT rwh + +# +# Should login be allowed if we can't cd to the home directory? +# Default is no. +# +DEFAULT_HOME yes + +# +# If defined, this command is run when removing a user. +# It should remove any at/cron/print jobs etc. owned by +# the user to be removed (passed as the first argument). +# +#USERDEL_CMD /usr/sbin/userdel_local + +# +# This enables userdel to remove user groups if no members exist. +# +# Other former uses of this variable such as setting the umask when +# user==primary group are not used in PAM environments, thus in Debian +# +USERGROUPS_ENAB yes + +# +# Instead of the real user shell, the program specified by this parameter +# will be launched, although its visible name (argv[0]) will be the shell's. +# The program may do whatever it wants (logging, additional authentification, +# banner, ...) before running the actual shell. +# +# FAKE_SHELL /bin/fakeshell + +# +# If defined, either full pathname of a file containing device names or +# a ":" delimited list of device names. Root logins will be allowed only +# upon these devices. +# +# This variable is used by login and su. +# +#CONSOLE /etc/consoles +#CONSOLE console:tty01:tty02:tty03:tty04 + +# +# List of groups to add to the user's supplementary group set +# when logging in on the console (as determined by the CONSOLE +# setting). Default is none. +# +# Use with caution - it is possible for users to gain permanent +# access to these groups, even when not logged in on the console. +# How to do it is left as an exercise for the reader... +# +# This variable is used by login and su. +# +#CONSOLE_GROUPS floppy:audio:cdrom + +# +# Only works if compiled with MD5_CRYPT defined: +# If set to "yes", new passwords will be encrypted using the MD5-based +# algorithm compatible with the one used by recent releases of FreeBSD. +# It supports passwords of unlimited length and longer salt strings. +# Set to "no" if you need to copy encrypted passwords to other systems +# which don't understand the new algorithm. Default is "no". +# +# This variable is used by chpasswd, gpasswd and newusers. +# +#MD5_CRYPT_ENAB no + +################# OBSOLETED BY PAM ############## +# # +# These options are now handled by PAM. Please # +# edit the appropriate file in /etc/pam.d/ to # +# enable the equivalents of them. +# +############### + +#MOTD_FILE +#DIALUPS_CHECK_ENAB +#LASTLOG_ENAB +#MAIL_CHECK_ENAB +#OBSCURE_CHECKS_ENAB +#PORTTIME_CHECKS_ENAB +#SU_WHEEL_ONLY +#PASS_CHANGE_TRIES +#PASS_ALWAYS_WARN +#ENVIRON_FILE +#NOLOGINS_FILE +#ISSUE_FILE +#PASS_MIN_LEN +#PASS_MAX_LEN +#ULIMIT +#ENV_HZ +#CHFN_AUTH +#CHSH_AUTH +#FAIL_DELAY + +################# OBSOLETED ####################### +# # +# These options are no more handled by shadow. # +# # +# Shadow utilities will display a warning if they # +# still appear. # +# # +################################################### + +# CLOSE_SESSIONS +# LOGIN_STRING +# NO_PASSWORD_CONSOLE +# QMAIL_DIR + + + diff --git a/tests/tests/chroot/login/01_login_sublogin/config/etc/passwd b/tests/tests/chroot/login/01_login_sublogin/config/etc/passwd new file mode 100644 index 00000000..7b82b884 --- /dev/null +++ b/tests/tests/chroot/login/01_login_sublogin/config/etc/passwd @@ -0,0 +1,21 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser:x:424242:424242::/nonexistent:*/bin/sh +testsuite::424243:424243::/home:/bin/bash diff --git a/tests/tests/chroot/login/01_login_sublogin/config/etc/shadow b/tests/tests/chroot/login/01_login_sublogin/config/etc/shadow new file mode 100644 index 00000000..038d5cf4 --- /dev/null +++ b/tests/tests/chroot/login/01_login_sublogin/config/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: diff --git a/tests/tests/chroot/login/01_login_sublogin/config_chroot.list b/tests/tests/chroot/login/01_login_sublogin/config_chroot.list new file mode 100644 index 00000000..e22e8e82 --- /dev/null +++ b/tests/tests/chroot/login/01_login_sublogin/config_chroot.list @@ -0,0 +1,3 @@ +/bin/dash +/bin/sh +/usr/bin/id diff --git a/tests/tests/chroot/login/01_login_sublogin/config_chroot/etc/group b/tests/tests/chroot/login/01_login_sublogin/config_chroot/etc/group new file mode 100644 index 00000000..245cc9cf --- /dev/null +++ b/tests/tests/chroot/login/01_login_sublogin/config_chroot/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: diff --git a/tests/tests/chroot/login/01_login_sublogin/config_chroot/etc/gshadow b/tests/tests/chroot/login/01_login_sublogin/config_chroot/etc/gshadow new file mode 100644 index 00000000..25bd55bd --- /dev/null +++ b/tests/tests/chroot/login/01_login_sublogin/config_chroot/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: diff --git a/tests/tests/chroot/login/01_login_sublogin/config_chroot/etc/login.defs b/tests/tests/chroot/login/01_login_sublogin/config_chroot/etc/login.defs new file mode 100644 index 00000000..acf5f93b --- /dev/null +++ b/tests/tests/chroot/login/01_login_sublogin/config_chroot/etc/login.defs @@ -0,0 +1,314 @@ +# +# /etc/login.defs - Configuration control definitions for the login package. +# +# Three items must be defined: MAIL_DIR, ENV_SUPATH, and ENV_PATH. +# If unspecified, some arbitrary (and possibly incorrect) value will +# be assumed. All other items are optional - if not specified then +# the described action or option will be inhibited. +# +# Comment lines (lines beginning with "#") and blank lines are ignored. +# +# Modified for Linux. --marekm + +# REQUIRED for useradd/userdel/usermod +# Directory where mailboxes reside, _or_ name of file, relative to the +# home directory. If you _do_ define MAIL_DIR and MAIL_FILE, +# MAIL_DIR takes precedence. +# +# Essentially: +# - MAIL_DIR defines the location of users mail spool files +# (for mbox use) by appending the username to MAIL_DIR as defined +# below. +# - MAIL_FILE defines the location of the users mail spool files as the +# fully-qualified filename obtained by prepending the user home +# directory before $MAIL_FILE +# +# NOTE: This is no more used for setting up users MAIL environment variable +# which is, starting from shadow 4.0.12-1 in Debian, entirely the +# job of the pam_mail PAM modules +# See default PAM configuration files provided for +# login, su, etc. +# +# This is a temporary situation: setting these variables will soon +# move to /etc/default/useradd and the variables will then be +# no more supported +MAIL_DIR /var/mail +#MAIL_FILE .mail + +# +# Enable logging and display of /var/log/faillog login failure info. +# This option conflicts with the pam_tally PAM module. +# +FAILLOG_ENAB yes + +# +# Enable display of unknown usernames when login failures are recorded. +# +# WARNING: Unknown usernames may become world readable. +# See #290803 and #298773 for details about how this could become a security +# concern +LOG_UNKFAIL_ENAB no + +# +# Enable logging of successful logins +# +LOG_OK_LOGINS no + +# +# Enable "syslog" logging of su activity - in addition to sulog file logging. +# SYSLOG_SG_ENAB does the same for newgrp and sg. +# +SYSLOG_SU_ENAB yes +SYSLOG_SG_ENAB yes + +# +# If defined, all su activity is logged to this file. +# +#SULOG_FILE /var/log/sulog + +# +# If defined, file which maps tty line to TERM environment parameter. +# Each line of the file is in a format something like "vt100 tty01". +# +#TTYTYPE_FILE /etc/ttytype + +# +# If defined, login failures will be logged here in a utmp format +# last, when invoked as lastb, will read /var/log/btmp, so... +# +FTMP_FILE /var/log/btmp + +# +# If defined, the command name to display when running "su -". For +# example, if this is defined as "su" then a "ps" will display the +# command is "-su". If not defined, then "ps" would display the +# name of the shell actually being run, e.g. something like "-sh". +# +SU_NAME su + +# +# If defined, file which inhibits all the usual chatter during the login +# sequence. If a full pathname, then hushed mode will be enabled if the +# user's name or shell are found in the file. If not a full pathname, then +# hushed mode will be enabled if the file exists in the user's home directory. +# +HUSHLOGIN_FILE .hushlogin +#HUSHLOGIN_FILE /etc/hushlogins + +# +# *REQUIRED* The default PATH settings, for superuser and normal users. +# +# (they are minimal, add the rest in the shell startup files) +#ENV_SUPATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +#ENV_PATH /usr/local/bin:/usr/bin:/bin:/usr/games + +# +# Terminal permissions +# +# TTYGROUP Login tty will be assigned this group ownership. +# TTYPERM Login tty will be set to this permission. +# +# If you have a "write" program which is "setgid" to a special group +# which owns the terminals, define TTYGROUP to the group number and +# TTYPERM to 0620. Otherwise leave TTYGROUP commented out and assign +# TTYPERM to either 622 or 600. +# +# In Debian /usr/bin/bsd-write or similar programs are setgid tty +# However, the default and recommended value for TTYPERM is still 0600 +# to not allow anyone to write to anyone else console or terminal + +# Users can still allow other people to write them by issuing +# the "mesg y" command. + +TTYGROUP tty +TTYPERM 0600 + +# +# Login configuration initializations: +# +# ERASECHAR Terminal ERASE character ('\010' = backspace). +# KILLCHAR Terminal KILL character ('\025' = CTRL/U). +# UMASK Default "umask" value. +# +# The ERASECHAR and KILLCHAR are used only on System V machines. +# +# UMASK usage is discouraged because it catches only some classes of user +# entries to system, in fact only those made through login(1), while setting +# umask in shell rc file will catch also logins through su, cron, ssh etc. +# +# At the same time, using shell rc to set umask won't catch entries which use +# non-shell executables in place of login shell, like /usr/sbin/pppd for "ppp" +# user and alike. +# +# Therefore the use of pam_umask is recommended (Debian package libpam-umask) +# as the solution which catches all these cases on PAM-enabled systems. +# +# This avoids the confusion created by having the umask set +# in two different places -- in login.defs and shell rc files (i.e. +# /etc/profile). +# +# For discussion, see #314539 and #248150 as well as the thread starting at +# http://lists.debian.org/debian-devel/2005/06/msg01598.html +# +# Prefix these values with "0" to get octal, "0x" to get hexadecimal. +# +ERASECHAR 0177 +KILLCHAR 025 +# 022 is the "historical" value in Debian for UMASK when it was used +# 027, or even 077, could be considered better for privacy +# There is no One True Answer here : each sysadmin must make up their +# mind. +#UMASK 022 + +# +# Password aging controls: +# +# PASS_MAX_DAYS Maximum number of days a password may be used. +# PASS_MIN_DAYS Minimum number of days allowed between password changes. +# PASS_WARN_AGE Number of days warning given before a password expires. +# +PASS_MAX_DAYS 99999 +PASS_MIN_DAYS 0 +PASS_WARN_AGE 7 + +# +# Min/max values for automatic uid selection in useradd +# +UID_MIN 1000 +UID_MAX 60000 + +# +# Min/max values for automatic gid selection in groupadd +# +GID_MIN 100 +GID_MAX 60000 + +# +# Max number of login retries if password is bad. This will most likely be +# overridden by PAM, since the default pam_unix module has it's own built +# in of 3 retries. However, this is a safe fallback in case you are using +# an authentication module that does not enforce PAM_MAXTRIES. +# +LOGIN_RETRIES 5 + +# +# Max time in seconds for login +# +LOGIN_TIMEOUT 60 + +# +# Which fields may be changed by regular users using chfn - use +# any combination of letters "frwh" (full name, room number, work +# phone, home phone). If not defined, no changes are allowed. +# For backward compatibility, "yes" = "rwh" and "no" = "frwh". +# +CHFN_RESTRICT rwh + +# +# Should login be allowed if we can't cd to the home directory? +# Default is no. +# +DEFAULT_HOME yes + +# +# If defined, this command is run when removing a user. +# It should remove any at/cron/print jobs etc. owned by +# the user to be removed (passed as the first argument). +# +#USERDEL_CMD /usr/sbin/userdel_local + +# +# This enables userdel to remove user groups if no members exist. +# +# Other former uses of this variable such as setting the umask when +# user==primary group are not used in PAM environments, thus in Debian +# +USERGROUPS_ENAB yes + +# +# Instead of the real user shell, the program specified by this parameter +# will be launched, although its visible name (argv[0]) will be the shell's. +# The program may do whatever it wants (logging, additional authentification, +# banner, ...) before running the actual shell. +# +# FAKE_SHELL /bin/fakeshell + +# +# If defined, either full pathname of a file containing device names or +# a ":" delimited list of device names. Root logins will be allowed only +# upon these devices. +# +# This variable is used by login and su. +# +#CONSOLE /etc/consoles +#CONSOLE console:tty01:tty02:tty03:tty04 + +# +# List of groups to add to the user's supplementary group set +# when logging in on the console (as determined by the CONSOLE +# setting). Default is none. +# +# Use with caution - it is possible for users to gain permanent +# access to these groups, even when not logged in on the console. +# How to do it is left as an exercise for the reader... +# +# This variable is used by login and su. +# +#CONSOLE_GROUPS floppy:audio:cdrom + +# +# Only works if compiled with MD5_CRYPT defined: +# If set to "yes", new passwords will be encrypted using the MD5-based +# algorithm compatible with the one used by recent releases of FreeBSD. +# It supports passwords of unlimited length and longer salt strings. +# Set to "no" if you need to copy encrypted passwords to other systems +# which don't understand the new algorithm. Default is "no". +# +# This variable is used by chpasswd, gpasswd and newusers. +# +#MD5_CRYPT_ENAB no + +################# OBSOLETED BY PAM ############## +# # +# These options are now handled by PAM. Please # +# edit the appropriate file in /etc/pam.d/ to # +# enable the equivalents of them. +# +############### + +#MOTD_FILE +#DIALUPS_CHECK_ENAB +#LASTLOG_ENAB +#MAIL_CHECK_ENAB +#OBSCURE_CHECKS_ENAB +#PORTTIME_CHECKS_ENAB +#SU_WHEEL_ONLY +#PASS_CHANGE_TRIES +#PASS_ALWAYS_WARN +#ENVIRON_FILE +#NOLOGINS_FILE +#ISSUE_FILE +#PASS_MIN_LEN +#PASS_MAX_LEN +#ULIMIT +#ENV_HZ +#CHFN_AUTH +#CHSH_AUTH +#FAIL_DELAY + +################# OBSOLETED ####################### +# # +# These options are no more handled by shadow. # +# # +# Shadow utilities will display a warning if they # +# still appear. # +# # +################################################### + +# CLOSE_SESSIONS +# LOGIN_STRING +# NO_PASSWORD_CONSOLE +# QMAIL_DIR + + + diff --git a/tests/tests/chroot/login/01_login_sublogin/config_chroot/etc/pam.d/common-account b/tests/tests/chroot/login/01_login_sublogin/config_chroot/etc/pam.d/common-account new file mode 100644 index 00000000..316b1733 --- /dev/null +++ b/tests/tests/chroot/login/01_login_sublogin/config_chroot/etc/pam.d/common-account @@ -0,0 +1,25 @@ +# +# /etc/pam.d/common-account - authorization settings common to all services +# +# This file is included from other service-specific PAM config files, +# and should contain a list of the authorization modules that define +# the central access policy for use on the system. The default is to +# only deny service to users whose accounts are expired in /etc/shadow. +# +# As of pam 1.0.1-6, this file is managed by pam-auth-update by default. +# To take advantage of this, it is recommended that you configure any +# local modules either before or after the default block, and use +# pam-auth-update to manage selection of other modules. See +# pam-auth-update(8) for details. +# + +# here are the per-package modules (the "Primary" block) +account [success=1 new_authtok_reqd=done default=ignore] pam_unix.so +# here's the fallback if no module succeeds +account requisite pam_deny.so +# prime the stack with a positive return value if there isn't one already; +# this avoids us returning an error just because nothing sets a success code +# since the modules above will each just jump around +account required pam_permit.so +# and here are more per-package modules (the "Additional" block) +# end of pam-auth-update config diff --git a/tests/tests/chroot/login/01_login_sublogin/config_chroot/etc/pam.d/common-auth b/tests/tests/chroot/login/01_login_sublogin/config_chroot/etc/pam.d/common-auth new file mode 100644 index 00000000..5facfa29 --- /dev/null +++ b/tests/tests/chroot/login/01_login_sublogin/config_chroot/etc/pam.d/common-auth @@ -0,0 +1,25 @@ +# +# /etc/pam.d/common-auth - authentication settings common to all services +# +# This file is included from other service-specific PAM config files, +# and should contain a list of the authentication modules that define +# the central authentication scheme for use on the system +# (e.g., /etc/shadow, LDAP, Kerberos, etc.). The default is to use the +# traditional Unix authentication mechanisms. +# +# As of pam 1.0.1-6, this file is managed by pam-auth-update by default. +# To take advantage of this, it is recommended that you configure any +# local modules either before or after the default block, and use +# pam-auth-update to manage selection of other modules. See +# pam-auth-update(8) for details. + +# here are the per-package modules (the "Primary" block) +auth [success=1 default=ignore] pam_unix.so nullok_secure +# here's the fallback if no module succeeds +auth requisite pam_deny.so +# prime the stack with a positive return value if there isn't one already; +# this avoids us returning an error just because nothing sets a success code +# since the modules above will each just jump around +auth required pam_permit.so +# and here are more per-package modules (the "Additional" block) +# end of pam-auth-update config diff --git a/tests/tests/chroot/login/01_login_sublogin/config_chroot/etc/pam.d/common-password b/tests/tests/chroot/login/01_login_sublogin/config_chroot/etc/pam.d/common-password new file mode 100644 index 00000000..cb8c7b71 --- /dev/null +++ b/tests/tests/chroot/login/01_login_sublogin/config_chroot/etc/pam.d/common-password @@ -0,0 +1,33 @@ +# +# /etc/pam.d/common-password - password-related modules common to all services +# +# This file is included from other service-specific PAM config files, +# and should contain a list of modules that define the services to be +# used to change user passwords. The default is pam_unix. + +# Explanation of pam_unix options: +# +# The "sha512" option enables salted SHA512 passwords. Without this option, +# the default is Unix crypt. Prior releases used the option "md5". +# +# The "obscure" option replaces the old `OBSCURE_CHECKS_ENAB' option in +# login.defs. +# +# See the pam_unix manpage for other options. + +# As of pam 1.0.1-6, this file is managed by pam-auth-update by default. +# To take advantage of this, it is recommended that you configure any +# local modules either before or after the default block, and use +# pam-auth-update to manage selection of other modules. See +# pam-auth-update(8) for details. + +# here are the per-package modules (the "Primary" block) +password [success=1 default=ignore] pam_unix.so obscure sha512 +# here's the fallback if no module succeeds +password requisite pam_deny.so +# prime the stack with a positive return value if there isn't one already; +# this avoids us returning an error just because nothing sets a success code +# since the modules above will each just jump around +password required pam_permit.so +# and here are more per-package modules (the "Additional" block) +# end of pam-auth-update config diff --git a/tests/tests/chroot/login/01_login_sublogin/config_chroot/etc/pam.d/common-session b/tests/tests/chroot/login/01_login_sublogin/config_chroot/etc/pam.d/common-session new file mode 100644 index 00000000..4ad17292 --- /dev/null +++ b/tests/tests/chroot/login/01_login_sublogin/config_chroot/etc/pam.d/common-session @@ -0,0 +1,25 @@ +# +# /etc/pam.d/common-session - session-related modules common to all services +# +# This file is included from other service-specific PAM config files, +# and should contain a list of modules that define tasks to be performed +# at the start and end of sessions of *any* kind (both interactive and +# non-interactive). +# +# As of pam 1.0.1-6, this file is managed by pam-auth-update by default. +# To take advantage of this, it is recommended that you configure any +# local modules either before or after the default block, and use +# pam-auth-update to manage selection of other modules. See +# pam-auth-update(8) for details. + +# here are the per-package modules (the "Primary" block) +session [default=1] pam_permit.so +# here's the fallback if no module succeeds +session requisite pam_deny.so +# prime the stack with a positive return value if there isn't one already; +# this avoids us returning an error just because nothing sets a success code +# since the modules above will each just jump around +session required pam_permit.so +# and here are more per-package modules (the "Additional" block) +session required pam_unix.so +# end of pam-auth-update config diff --git a/tests/tests/chroot/login/01_login_sublogin/config_chroot/etc/pam.d/common-session-noninteractive b/tests/tests/chroot/login/01_login_sublogin/config_chroot/etc/pam.d/common-session-noninteractive new file mode 100644 index 00000000..c9144d54 --- /dev/null +++ b/tests/tests/chroot/login/01_login_sublogin/config_chroot/etc/pam.d/common-session-noninteractive @@ -0,0 +1,25 @@ +# +# /etc/pam.d/common-session-noninteractive - session-related modules +# common to all non-interactive services +# +# This file is included from other service-specific PAM config files, +# and should contain a list of modules that define tasks to be performed +# at the start and end of all non-interactive sessions. +# +# As of pam 1.0.1-6, this file is managed by pam-auth-update by default. +# To take advantage of this, it is recommended that you configure any +# local modules either before or after the default block, and use +# pam-auth-update to manage selection of other modules. See +# pam-auth-update(8) for details. + +# here are the per-package modules (the "Primary" block) +session [default=1] pam_permit.so +# here's the fallback if no module succeeds +session requisite pam_deny.so +# prime the stack with a positive return value if there isn't one already; +# this avoids us returning an error just because nothing sets a success code +# since the modules above will each just jump around +session required pam_permit.so +# and here are more per-package modules (the "Additional" block) +session required pam_unix.so +# end of pam-auth-update config diff --git a/tests/tests/chroot/login/01_login_sublogin/config_chroot/etc/pam.d/login b/tests/tests/chroot/login/01_login_sublogin/config_chroot/etc/pam.d/login new file mode 100644 index 00000000..8acd5330 --- /dev/null +++ b/tests/tests/chroot/login/01_login_sublogin/config_chroot/etc/pam.d/login @@ -0,0 +1,107 @@ +# +# The PAM configuration file for the Shadow `login' service +# + +# Enforce a minimal delay in case of failure (in microseconds). +# (Replaces the `FAIL_DELAY' setting from login.defs) +# Note that other modules may require another minimal delay. (for example, +# to disable any delay, you should add the nodelay option to pam_unix) +auth optional pam_faildelay.so delay=3000000 + +# Outputs an issue file prior to each login prompt (Replaces the +# ISSUE_FILE option from login.defs). Uncomment for use +# auth required pam_issue.so issue=/etc/issue + +# Disallows root logins except on tty's listed in /etc/securetty +# (Replaces the `CONSOLE' setting from login.defs) +# +# With the default control of this module: +# [success=ok new_authtok_reqd=ok ignore=ignore user_unknown=bad default=die] +# root will not be prompted for a password on insecure lines. +# if an invalid username is entered, a password is prompted (but login +# will eventually be rejected) +# +# You can change it to a "requisite" module if you think root may mis-type +# her login and should not be prompted for a password in that case. But +# this will leave the system as vulnerable to user enumeration attacks. +# +# You can change it to a "required" module if you think it permits to +# guess valid user names of your system (invalid user names are considered +# as possibly being root on insecure lines), but root passwords may be +# communicated over insecure lines. +auth [success=ok new_authtok_reqd=ok ignore=ignore user_unknown=bad default=die] pam_securetty.so + +# Disallows other than root logins when /etc/nologin exists +# (Replaces the `NOLOGINS_FILE' option from login.defs) +auth requisite pam_nologin.so + +# SELinux needs to be the first session rule. This ensures that any +# lingering context has been cleared. Without out this it is possible +# that a module could execute code in the wrong domain. +# When the module is present, "required" would be sufficient (When SELinux +# is disabled, this returns success.) +session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so close + +# This module parses environment configuration file(s) +# and also allows you to use an extended config +# file /etc/security/pam_env.conf. +# +# parsing /etc/environment needs "readenv=1" +session required pam_env.so readenv=1 +# locale variables are also kept into /etc/default/locale in etch +# reading this file *in addition to /etc/environment* does not hurt +session required pam_env.so readenv=1 envfile=/etc/default/locale + +# Standard Un*x authentication. +@include common-auth + +# This allows certain extra groups to be granted to a user +# based on things like time of day, tty, service, and user. +# Please edit /etc/security/group.conf to fit your needs +# (Replaces the `CONSOLE_GROUPS' option in login.defs) +auth optional pam_group.so + +# Uncomment and edit /etc/security/time.conf if you need to set +# time constraints on logins. +# (Replaces the `PORTTIME_CHECKS_ENAB' option from login.defs +# as well as /etc/porttime) +# account requisite pam_time.so + +# Uncomment and edit /etc/security/access.conf if you need to +# set access limits. +# (Replaces /etc/login.access file) +# account required pam_access.so + +# Sets up user limits according to /etc/security/limits.conf +# (Replaces the use of /etc/limits in old login) +session required pam_limits.so + +# Prints the last login info upon successful login +# (Replaces the `LASTLOG_ENAB' option from login.defs) +session optional pam_lastlog.so + +# Prints the motd upon successful login +# (Replaces the `MOTD_FILE' option in login.defs) +session optional pam_motd.so + +# Prints the status of the user's mailbox upon successful login +# (Replaces the `MAIL_CHECK_ENAB' option from login.defs). +# +# This also defines the MAIL environment variable +# However, userdel also needs MAIL_DIR and MAIL_FILE variables +# in /etc/login.defs to make sure that removing a user +# also removes the user's mail spool file. +# See comments in /etc/login.defs +session optional pam_mail.so standard + +# Standard Un*x account and session +@include common-account +@include common-session +@include common-password + +# SELinux needs to intervene at login time to ensure that the process +# starts in the proper default security context. Only sessions which are +# intended to run in the user's context should be run after this. +session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so open +# When the module is present, "required" would be sufficient (When SELinux +# is disabled, this returns success.) diff --git a/tests/tests/chroot/login/01_login_sublogin/config_chroot/etc/pam.d/other b/tests/tests/chroot/login/01_login_sublogin/config_chroot/etc/pam.d/other new file mode 100644 index 00000000..59d776c9 --- /dev/null +++ b/tests/tests/chroot/login/01_login_sublogin/config_chroot/etc/pam.d/other @@ -0,0 +1,16 @@ +# +# /etc/pam.d/other - specify the PAM fallback behaviour +# +# Note that this file is used for any unspecified service; for example +#if /etc/pam.d/cron specifies no session modules but cron calls +#pam_open_session, the session module out of /etc/pam.d/other is +#used. If you really want nothing to happen then use pam_permit.so or +#pam_deny.so as appropriate. + +# We fall back to the system default in /etc/pam.d/common-* +# + +@include common-auth +@include common-account +@include common-password +@include common-session diff --git a/tests/tests/chroot/login/01_login_sublogin/config_chroot/etc/passwd b/tests/tests/chroot/login/01_login_sublogin/config_chroot/etc/passwd new file mode 100644 index 00000000..9bdeb8ce --- /dev/null +++ b/tests/tests/chroot/login/01_login_sublogin/config_chroot/etc/passwd @@ -0,0 +1,21 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser:x:424242:424242::/home/:/bin/sh +testsuite::424243:424243::/home:/bin/bash diff --git a/tests/tests/chroot/login/01_login_sublogin/config_chroot/etc/securetty b/tests/tests/chroot/login/01_login_sublogin/config_chroot/etc/securetty new file mode 100644 index 00000000..f65650f4 --- /dev/null +++ b/tests/tests/chroot/login/01_login_sublogin/config_chroot/etc/securetty @@ -0,0 +1,390 @@ +# /etc/securetty: list of terminals on which root is allowed to login. +# See securetty(5) and login(1). + +console + +# Local X displays (allows empty passwords with pam_unix's nullok_secure) +:0 +:0.0 +:0.1 +:1 +:1.0 +:1.1 +:2 +:2.0 +:2.1 +:3 +:3.0 +:3.1 +#... + + +# ========================================================== +# +# TTYs sorted by major number according to Documentation/devices.txt +# +# ========================================================== + +# Virtual consoles +tty1 +tty2 +tty3 +tty4 +tty5 +tty6 +tty7 +tty8 +tty9 +tty10 +tty11 +tty12 +tty13 +tty14 +tty15 +tty16 +tty17 +tty18 +tty19 +tty20 +tty21 +tty22 +tty23 +tty24 +tty25 +tty26 +tty27 +tty28 +tty29 +tty30 +tty31 +tty32 +tty33 +tty34 +tty35 +tty36 +tty37 +tty38 +tty39 +tty40 +tty41 +tty42 +tty43 +tty44 +tty45 +tty46 +tty47 +tty48 +tty49 +tty50 +tty51 +tty52 +tty53 +tty54 +tty55 +tty56 +tty57 +tty58 +tty59 +tty60 +tty61 +tty62 +tty63 + +# UART serial ports +ttyS0 +ttyS1 +ttyS2 +ttyS3 +ttyS4 +ttyS5 +#...ttyS191 + +# Serial Mux devices (Linux/PA-RISC only) +ttyB0 +ttyB1 +#... + +# Chase serial card +ttyH0 +ttyH1 +#... + +# Cyclades serial cards +ttyC0 +ttyC1 +#...ttyC31 + +# Digiboard serial cards +ttyD0 +ttyD1 +#... + +# Stallion serial cards +ttyE0 +ttyE1 +#...ttyE255 + +# Specialix serial cards +ttyX0 +ttyX1 +#... + +# Comtrol Rocketport serial cards +ttyR0 +ttyR1 +#... + +# SDL RISCom serial cards +ttyL0 +ttyL1 +#... + +# Hayes ESP serial card +ttyP0 +ttyP1 +#... + +# Computone IntelliPort II serial card +ttyF0 +ttyF1 +#...ttyF255 + +# Specialix IO8+ serial card +ttyW0 +ttyW1 +#... + +# Comtrol VS-1000 serial controller +ttyV0 +ttyV1 +#... + +# ISI serial card +ttyM0 +ttyM1 +#... + +# Technology Concepts serial card +ttyT0 +ttyT1 +#... + +# Specialix RIO serial card +ttySR0 +ttySR1 +#...ttySR511 + +# Chase Research AT/PCI-Fast serial card +ttyCH0 +ttyCH1 +#...ttyCH63 + +# Moxa Intellio serial card +ttyMX0 +ttyMX1 +#...ttyMX127 + +# SmartIO serial card +ttySI0 +ttySI1 +#... + +# USB dongles +ttyUSB0 +ttyUSB1 +ttyUSB2 +#... + +# LinkUp Systems L72xx UARTs +ttyLU0 +ttyLU1 +ttyLU2 +ttyLU3 + +# StrongARM builtin serial ports +ttySA0 +ttySA1 +ttySA2 + +# SCI serial port (SuperH) ports and SC26xx serial ports +ttySC0 +ttySC1 +ttySC2 +ttySC3 + +# ARM "AMBA" serial ports +ttyAM0 +ttyAM1 +ttyAM2 +ttyAM3 +ttyAM4 +ttyAM5 +ttyAM6 +ttyAM7 +ttyAM8 +ttyAM9 +ttyAM10 +ttyAM11 +ttyAM12 +ttyAM13 +ttyAM14 +ttyAM15 + +# Embedded ARM AMBA PL011 ports (e.g. emulated by QEMU) +ttyAMA0 +ttyAMA1 +ttyAMA2 +ttyAMA3 + +# DataBooster serial ports +ttyDB0 +ttyDB1 +ttyDB2 +ttyDB3 +ttyDB4 +ttyDB5 +ttyDB6 +ttyDB7 + +# SGI Altix console ports +ttySG0 + +# Motorola i.MX ports +ttySMX0 +ttySMX1 +ttySMX2 + +# Marvell MPSC ports +ttyMM0 +ttyMM1 + +# PPC CPM (SCC or SMC) ports +ttyCPM0 +ttyCPM1 +ttyCPM2 +ttyCPM3 +ttyCPM4 +ttyCPM5 + +# Altix serial cards +ttyIOC0 +ttyIOC1 +#...ttyIOC31 + +# NEC VR4100 series SIU +ttyVR0 + +# NEC VR4100 series SSIU +ttyVR1 + +# Altix ioc4 serial cards +ttyIOC84 +ttyIOC85 +#...ttyIOC115 + +# Altix ioc3 serial cards +ttySIOC0 +ttySIOC1 +#...ttySIOC31 + +# PPC PSC ports +ttyPSC0 +ttyPSC1 +ttyPSC2 +ttyPSC3 +ttyPSC4 +ttyPSC5 + +# ATMEL serial ports +ttyAT0 +ttyAT1 +#...ttyAT15 + +# Hilscher netX serial port +ttyNX0 +ttyNX1 +#...ttyNX15 + +# Xilinx uartlite - port +ttyUL0 +ttyUL1 +ttyUL2 +ttyUL3 + +# Xen virtual console - port 0 +xvc0 + +# pmac_zilog - port +ttyPZ0 +ttyPZ1 +ttyPZ2 +ttyPZ3 + +# TX39/49 serial port +ttyTX0 +ttyTX1 +ttyTX2 +ttyTX3 +ttyTX4 +ttyTX5 +ttyTX6 +ttyTX7 + +# SC26xx serial ports (see SCI serial ports (SuperH)) + +# MAX3100 serial ports +ttyMAX0 +ttyMAX1 +ttyMAX2 +ttyMAX3 + +# OMAP serial ports +ttyO0 +ttyO1 +ttyO2 +ttyO3 + +# User space serial ports +ttyU0 +ttyU1 + +# A2232 serial card +ttyY0 +ttyY1 + +# IBM 3270 terminal Unix tty access +3270/tty1 +3270/tty2 +#... + +# IBM iSeries/pSeries virtual console +hvc0 +hvc1 +#... +#IBM pSeries console ports +hvsi0 +hvsi1 +hvsi2 + +# Equinox SST multi-port serial boards +ttyEQ0 +ttyEQ1 +#...ttyEQ1027 + +# ========================================================== +# +# Not in Documentation/Devices.txt +# +# ========================================================== + +# Embedded Freescale i.MX ports +ttymxc0 +ttymxc1 +ttymxc2 +ttymxc3 +ttymxc4 +ttymxc5 + +# Serial Console for MIPS Swarm +duart0 +duart1 diff --git a/tests/tests/chroot/login/01_login_sublogin/config_chroot/etc/security/limits.conf b/tests/tests/chroot/login/01_login_sublogin/config_chroot/etc/security/limits.conf new file mode 100644 index 00000000..e69de29b diff --git a/tests/tests/chroot/login/01_login_sublogin/config_chroot/etc/shadow b/tests/tests/chroot/login/01_login_sublogin/config_chroot/etc/shadow new file mode 100644 index 00000000..038d5cf4 --- /dev/null +++ b/tests/tests/chroot/login/01_login_sublogin/config_chroot/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: diff --git a/tests/tests/chroot/login/01_login_sublogin/login.exp b/tests/tests/chroot/login/01_login_sublogin/login.exp new file mode 100755 index 00000000..45239358 --- /dev/null +++ b/tests/tests/chroot/login/01_login_sublogin/login.exp @@ -0,0 +1,25 @@ +#!/usr/bin/expect + +set timeout 10 +expect_after default {puts stderr "\nFAIL"; exit 1} + +spawn /bin/bash +expect "# " + +send "strace -s 1000 -o /tmp/login.strace login\r" +expect " login: " +send "myuser\r" +expect "Password: " +send "myuserF00barbaz\r" +expect "Password: " +send "myuserF00barbaz\r" +expect "$ " + +send "# expect uid=424242(myuser) gid=424242(myuser) groups=424242(myuser)\r" +expect "$ " +send "id\r" +expect "uid=424242(myuser) gid=424242(myuser) groups=424242(myuser)\r" +expect "$ " +send "exit\r" + +exit 0 diff --git a/tests/tests/chroot/login/01_login_sublogin/login.test b/tests/tests/chroot/login/01_login_sublogin/login.test new file mode 100755 index 00000000..f5d271ba --- /dev/null +++ b/tests/tests/chroot/login/01_login_sublogin/login.test @@ -0,0 +1,33 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +testname=$(basename $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "try regular login with user prompt" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +usermod -d $PWD/tmp/root myuser + +prepare_chroot + +./login.exp +echo + +clean_chroot + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chroot/pwck/01_pwck--root/config.txt b/tests/tests/chroot/pwck/01_pwck--root/config.txt new file mode 100644 index 00000000..31f56359 --- /dev/null +++ b/tests/tests/chroot/pwck/01_pwck--root/config.txt @@ -0,0 +1,10 @@ +# no testsuite password +# root password: rootF00barbaz +# myuser password: myuserF00barbaz + +user foo, in group users (only in /etc/group) +user foo, in group tty (only in /etc/gshadow) +user foo, in group floppy +user foo, admin of group disk +user foo, admin and member of group fax +user foo, admin and member of group cdrom (only in /etc/gshadow) diff --git a/tests/tests/chroot/pwck/01_pwck--root/config/etc/default/useradd b/tests/tests/chroot/pwck/01_pwck--root/config/etc/default/useradd new file mode 100644 index 00000000..31c44abe --- /dev/null +++ b/tests/tests/chroot/pwck/01_pwck--root/config/etc/default/useradd @@ -0,0 +1,36 @@ +# Default values for useradd(8) +# +# The SHELL variable specifies the default login shell on your +# system. +# Similar to DHSELL in adduser. However, we use "sh" here because +# useradd is a low level utility and should be as general +# as possible +SHELL=/bin/foobar +# +# The default group for users +# 100=users on Debian systems +# Same as USERS_GID in adduser +# This argument is used when the -n flag is specified. +# The default behavior (when -n and -g are not specified) is to create a +# primary user group with the same name as the user being added to the +# system. +GROUP=10 +# +# The default home directory. Same as DHOME for adduser +HOME=/tmp +# +# The number of days after a password expires until the account +# is permanently disabled +INACTIVE=12 +# +# The default expire date +EXPIRE=2007-12-02 +# +# The SKEL variable specifies the directory containing "skeletal" user +# files; in other words, files such as a sample .profile that will be +# copied to the new user's home directory when it is created. +# SKEL=/etc/skel +# +# Defines whether the mail spool should be created while +# creating the account +# CREATE_MAIL_SPOOL=yes diff --git a/tests/tests/chroot/pwck/01_pwck--root/config/etc/group b/tests/tests/chroot/pwck/01_pwck--root/config/etc/group new file mode 100644 index 00000000..10123908 --- /dev/null +++ b/tests/tests/chroot/pwck/01_pwck--root/config/etc/group @@ -0,0 +1,41 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: diff --git a/tests/tests/chroot/pwck/01_pwck--root/config/etc/gshadow b/tests/tests/chroot/pwck/01_pwck--root/config/etc/gshadow new file mode 100644 index 00000000..ae424865 --- /dev/null +++ b/tests/tests/chroot/pwck/01_pwck--root/config/etc/gshadow @@ -0,0 +1,41 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: diff --git a/tests/tests/chroot/pwck/01_pwck--root/config/etc/passwd b/tests/tests/chroot/pwck/01_pwck--root/config/etc/passwd new file mode 100644 index 00000000..43fc135a --- /dev/null +++ b/tests/tests/chroot/pwck/01_pwck--root/config/etc/passwd @@ -0,0 +1,19 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false diff --git a/tests/tests/chroot/pwck/01_pwck--root/config/etc/shadow b/tests/tests/chroot/pwck/01_pwck--root/config/etc/shadow new file mode 100644 index 00000000..5f50d187 --- /dev/null +++ b/tests/tests/chroot/pwck/01_pwck--root/config/etc/shadow @@ -0,0 +1,19 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: diff --git a/tests/tests/chroot/pwck/01_pwck--root/config_chroot/etc/group b/tests/tests/chroot/pwck/01_pwck--root/config_chroot/etc/group new file mode 100644 index 00000000..245cc9cf --- /dev/null +++ b/tests/tests/chroot/pwck/01_pwck--root/config_chroot/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: diff --git a/tests/tests/chroot/pwck/01_pwck--root/config_chroot/etc/gshadow b/tests/tests/chroot/pwck/01_pwck--root/config_chroot/etc/gshadow new file mode 100644 index 00000000..25bd55bd --- /dev/null +++ b/tests/tests/chroot/pwck/01_pwck--root/config_chroot/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: diff --git a/tests/tests/chroot/pwck/01_pwck--root/config_chroot/etc/login.defs b/tests/tests/chroot/pwck/01_pwck--root/config_chroot/etc/login.defs new file mode 100644 index 00000000..3b216aa1 --- /dev/null +++ b/tests/tests/chroot/pwck/01_pwck--root/config_chroot/etc/login.defs @@ -0,0 +1,334 @@ +# +# /etc/login.defs - Configuration control definitions for the login package. +# +# Three items must be defined: MAIL_DIR, ENV_SUPATH, and ENV_PATH. +# If unspecified, some arbitrary (and possibly incorrect) value will +# be assumed. All other items are optional - if not specified then +# the described action or option will be inhibited. +# +# Comment lines (lines beginning with "#") and blank lines are ignored. +# +# Modified for Linux. --marekm + +# REQUIRED for useradd/userdel/usermod +# Directory where mailboxes reside, _or_ name of file, relative to the +# home directory. If you _do_ define MAIL_DIR and MAIL_FILE, +# MAIL_DIR takes precedence. +# +# Essentially: +# - MAIL_DIR defines the location of users mail spool files +# (for mbox use) by appending the username to MAIL_DIR as defined +# below. +# - MAIL_FILE defines the location of the users mail spool files as the +# fully-qualified filename obtained by prepending the user home +# directory before $MAIL_FILE +# +# NOTE: This is no more used for setting up users MAIL environment variable +# which is, starting from shadow 4.0.12-1 in Debian, entirely the +# job of the pam_mail PAM modules +# See default PAM configuration files provided for +# login, su, etc. +# +# This is a temporary situation: setting these variables will soon +# move to /etc/default/useradd and the variables will then be +# no more supported +MAIL_DIR /var/mail +#MAIL_FILE .mail + +# +# Enable logging and display of /var/log/faillog login failure info. +# This option conflicts with the pam_tally PAM module. +# +FAILLOG_ENAB yes + +# +# Enable display of unknown usernames when login failures are recorded. +# +# WARNING: Unknown usernames may become world readable. +# See #290803 and #298773 for details about how this could become a security +# concern +LOG_UNKFAIL_ENAB no + +# +# Enable logging of successful logins +# +LOG_OK_LOGINS no + +# +# Enable "syslog" logging of su activity - in addition to sulog file logging. +# SYSLOG_SG_ENAB does the same for newgrp and sg. +# +SYSLOG_SU_ENAB yes +SYSLOG_SG_ENAB yes + +# +# If defined, all su activity is logged to this file. +# +#SULOG_FILE /var/log/sulog + +# +# If defined, file which maps tty line to TERM environment parameter. +# Each line of the file is in a format something like "vt100 tty01". +# +#TTYTYPE_FILE /etc/ttytype + +# +# If defined, login failures will be logged here in a utmp format +# last, when invoked as lastb, will read /var/log/btmp, so... +# +FTMP_FILE /var/log/btmp + +# +# If defined, the command name to display when running "su -". For +# example, if this is defined as "su" then a "ps" will display the +# command is "-su". If not defined, then "ps" would display the +# name of the shell actually being run, e.g. something like "-sh". +# +SU_NAME su + +# +# If defined, file which inhibits all the usual chatter during the login +# sequence. If a full pathname, then hushed mode will be enabled if the +# user's name or shell are found in the file. If not a full pathname, then +# hushed mode will be enabled if the file exists in the user's home directory. +# +HUSHLOGIN_FILE .hushlogin +#HUSHLOGIN_FILE /etc/hushlogins + +# +# *REQUIRED* The default PATH settings, for superuser and normal users. +# +# (they are minimal, add the rest in the shell startup files) +ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games + +# +# Terminal permissions +# +# TTYGROUP Login tty will be assigned this group ownership. +# TTYPERM Login tty will be set to this permission. +# +# If you have a "write" program which is "setgid" to a special group +# which owns the terminals, define TTYGROUP to the group number and +# TTYPERM to 0620. Otherwise leave TTYGROUP commented out and assign +# TTYPERM to either 622 or 600. +# +# In Debian /usr/bin/bsd-write or similar programs are setgid tty +# However, the default and recommended value for TTYPERM is still 0600 +# to not allow anyone to write to anyone else console or terminal + +# Users can still allow other people to write them by issuing +# the "mesg y" command. + +TTYGROUP tty +TTYPERM 0600 + +# +# Login configuration initializations: +# +# ERASECHAR Terminal ERASE character ('\010' = backspace). +# KILLCHAR Terminal KILL character ('\025' = CTRL/U). +# UMASK Default "umask" value. +# +# The ERASECHAR and KILLCHAR are used only on System V machines. +# +# UMASK is the default umask value for pam_umask and is used by +# useradd and newusers to set the mode of the new home directories. +# 022 is the "historical" value in Debian for UMASK +# 027, or even 077, could be considered better for privacy +# There is no One True Answer here : each sysadmin must make up their +# mind. +# +# Prefix these values with "0" to get octal, "0x" to get hexadecimal. +# +ERASECHAR 0177 +KILLCHAR 025 +UMASK 022 + +# +# Password aging controls: +# +# PASS_MAX_DAYS Maximum number of days a password may be used. +# PASS_MIN_DAYS Minimum number of days allowed between password changes. +# PASS_WARN_AGE Number of days warning given before a password expires. +# +PASS_MAX_DAYS 99999 +PASS_MIN_DAYS 0 +PASS_WARN_AGE 7 + +# +# Min/max values for automatic uid selection in useradd +# +UID_MIN 1000 +UID_MAX 60000 +# System accounts +#SYS_UID_MIN 100 +#SYS_UID_MAX 999 + +# +# Min/max values for automatic gid selection in groupadd +# +GID_MIN 1000 +GID_MAX 60000 +# System accounts +#SYS_GID_MIN 100 +#SYS_GID_MAX 999 + +# +# Max number of login retries if password is bad. This will most likely be +# overridden by PAM, since the default pam_unix module has it's own built +# in of 3 retries. However, this is a safe fallback in case you are using +# an authentication module that does not enforce PAM_MAXTRIES. +# +LOGIN_RETRIES 5 + +# +# Max time in seconds for login +# +LOGIN_TIMEOUT 60 + +# +# Which fields may be changed by regular users using chfn - use +# any combination of letters "frwh" (full name, room number, work +# phone, home phone). If not defined, no changes are allowed. +# For backward compatibility, "yes" = "rwh" and "no" = "frwh". +# +CHFN_RESTRICT rwh + +# +# Should login be allowed if we can't cd to the home directory? +# Default is no. +# +DEFAULT_HOME yes + +# +# If defined, this command is run when removing a user. +# It should remove any at/cron/print jobs etc. owned by +# the user to be removed (passed as the first argument). +# +#USERDEL_CMD /usr/sbin/userdel_local + +# +# If set to yes, userdel will remove the user's group if it contains no +# more members, and useradd will create by default a group with the name +# of the user. +# +# Other former uses of this variable such as setting the umask when +# user==primary group are not used in PAM environments, such as Debian +# +USERGROUPS_ENAB yes + +# +# Instead of the real user shell, the program specified by this parameter +# will be launched, although its visible name (argv[0]) will be the shell's. +# The program may do whatever it wants (logging, additional authentification, +# banner, ...) before running the actual shell. +# +# FAKE_SHELL /bin/fakeshell + +# +# If defined, either full pathname of a file containing device names or +# a ":" delimited list of device names. Root logins will be allowed only +# upon these devices. +# +# This variable is used by login and su. +# +#CONSOLE /etc/consoles +#CONSOLE console:tty01:tty02:tty03:tty04 + +# +# List of groups to add to the user's supplementary group set +# when logging in on the console (as determined by the CONSOLE +# setting). Default is none. +# +# Use with caution - it is possible for users to gain permanent +# access to these groups, even when not logged in on the console. +# How to do it is left as an exercise for the reader... +# +# This variable is used by login and su. +# +#CONSOLE_GROUPS floppy:audio:cdrom + +# +# If set to "yes", new passwords will be encrypted using the MD5-based +# algorithm compatible with the one used by recent releases of FreeBSD. +# It supports passwords of unlimited length and longer salt strings. +# Set to "no" if you need to copy encrypted passwords to other systems +# which don't understand the new algorithm. Default is "no". +# +# This variable is deprecated. You should use ENCRYPT_METHOD. +# +#MD5_CRYPT_ENAB no + +# +# If set to MD5 , MD5-based algorithm will be used for encrypting password +# If set to SHA256, SHA256-based algorithm will be used for encrypting password +# If set to SHA512, SHA512-based algorithm will be used for encrypting password +# If set to DES, DES-based algorithm will be used for encrypting password (default) +# Overrides the MD5_CRYPT_ENAB option +# +# Note: It is recommended to use a value consistent with +# the PAM modules configuration. +# +#ENCRYPT_METHOD DES + +# +# Only used if ENCRYPT_METHOD is set to SHA256 or SHA512. +# +# Define the number of SHA rounds. +# With a lot of rounds, it is more difficult to brute forcing the password. +# But note also that it more CPU resources will be needed to authenticate +# users. +# +# If not specified, the libc will choose the default number of rounds (5000). +# The values must be inside the 1000-999999999 range. +# If only one of the MIN or MAX values is set, then this value will be used. +# If MIN > MAX, the highest value will be used. +# +# SHA_CRYPT_MIN_ROUNDS 5000 +# SHA_CRYPT_MAX_ROUNDS 5000 + +################# OBSOLETED BY PAM ############## +# # +# These options are now handled by PAM. Please # +# edit the appropriate file in /etc/pam.d/ to # +# enable the equivalents of them. +# +############### + +#MOTD_FILE +#DIALUPS_CHECK_ENAB +#LASTLOG_ENAB +#MAIL_CHECK_ENAB +#OBSCURE_CHECKS_ENAB +#PORTTIME_CHECKS_ENAB +#SU_WHEEL_ONLY +#PASS_CHANGE_TRIES +#PASS_ALWAYS_WARN +#ENVIRON_FILE +#NOLOGINS_FILE +#ISSUE_FILE +#PASS_MIN_LEN +#PASS_MAX_LEN +#ULIMIT +#ENV_HZ +#CHFN_AUTH +#CHSH_AUTH +#FAIL_DELAY + +################# OBSOLETED ####################### +# # +# These options are no more handled by shadow. # +# # +# Shadow utilities will display a warning if they # +# still appear. # +# # +################################################### + +# CLOSE_SESSIONS +# LOGIN_STRING +# NO_PASSWORD_CONSOLE +# QMAIL_DIR + + + diff --git a/tests/tests/chroot/pwck/01_pwck--root/config_chroot/etc/passwd b/tests/tests/chroot/pwck/01_pwck--root/config_chroot/etc/passwd new file mode 100644 index 00000000..76c6fc38 --- /dev/null +++ b/tests/tests/chroot/pwck/01_pwck--root/config_chroot/etc/passwd @@ -0,0 +1,23 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser:x:424242:424242::/home/:/bin/sh +testsuite::424243:424243::/home:/bin/bash +testsuite::424244:424244::/home:/bin/bash +testsuite1::424243:424243::/home:/bin/bash diff --git a/tests/tests/chroot/pwck/01_pwck--root/config_chroot/etc/shadow b/tests/tests/chroot/pwck/01_pwck--root/config_chroot/etc/shadow new file mode 100644 index 00000000..038d5cf4 --- /dev/null +++ b/tests/tests/chroot/pwck/01_pwck--root/config_chroot/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: diff --git a/tests/tests/chroot/pwck/01_pwck--root/data/pwck.out b/tests/tests/chroot/pwck/01_pwck--root/data/pwck.out new file mode 100644 index 00000000..92a56706 --- /dev/null +++ b/tests/tests/chroot/pwck/01_pwck--root/data/pwck.out @@ -0,0 +1,59 @@ +user 'root': program '/bin/bash' does not exist +user 'daemon': directory '/usr/sbin' does not exist +user 'daemon': program '/bin/sh' does not exist +user 'bin': directory '/bin' does not exist +user 'bin': program '/bin/sh' does not exist +user 'sys': directory '/dev' does not exist +user 'sys': program '/bin/sh' does not exist +user 'sync': directory '/bin' does not exist +user 'sync': program '/bin/sync' does not exist +user 'games': directory '/usr/games' does not exist +user 'games': program '/bin/sh' does not exist +user 'man': directory '/var/cache/man' does not exist +user 'man': program '/bin/sh' does not exist +user 'lp': directory '/var/spool/lpd' does not exist +user 'lp': program '/bin/sh' does not exist +user 'mail': directory '/var/mail' does not exist +user 'mail': program '/bin/sh' does not exist +user 'news': directory '/var/spool/news' does not exist +user 'news': program '/bin/sh' does not exist +user 'uucp': directory '/var/spool/uucp' does not exist +user 'uucp': program '/bin/sh' does not exist +user 'proxy': directory '/bin' does not exist +user 'proxy': program '/bin/sh' does not exist +user 'www-data': directory '/var/www' does not exist +user 'www-data': program '/bin/sh' does not exist +user 'backup': directory '/var/backups' does not exist +user 'backup': program '/bin/sh' does not exist +user 'list': directory '/var/list' does not exist +user 'list': program '/bin/sh' does not exist +user 'irc': directory '/var/run/ircd' does not exist +user 'irc': program '/bin/sh' does not exist +user 'gnats': directory '/var/lib/gnats' does not exist +user 'gnats': program '/bin/sh' does not exist +user 'nobody': directory '/nonexistent' does not exist +user 'nobody': program '/bin/sh' does not exist +user 'Debian-exim': directory '/var/spool/exim4' does not exist +user 'Debian-exim': program '/bin/false' does not exist +user 'myuser': directory '/home/' does not exist +user 'myuser': program '/bin/sh' does not exist +duplicate password entry +delete line 'testsuite::424243:424243::/home:/bin/bash'? No +user 'testsuite': no group 424243 +user 'testsuite': directory '/home' does not exist +user 'testsuite': program '/bin/bash' does not exist +no matching password file entry in /etc/shadow +add user 'testsuite' in /etc/shadow? No +duplicate password entry +delete line 'testsuite::424244:424244::/home:/bin/bash'? No +user 'testsuite': no group 424244 +user 'testsuite': directory '/home' does not exist +user 'testsuite': program '/bin/bash' does not exist +no matching password file entry in /etc/shadow +add user 'testsuite' in /etc/shadow? No +user 'testsuite1': no group 424243 +user 'testsuite1': directory '/home' does not exist +user 'testsuite1': program '/bin/bash' does not exist +no matching password file entry in /etc/shadow +add user 'testsuite1' in /etc/shadow? No +pwck: no changes diff --git a/tests/tests/chroot/pwck/01_pwck--root/pwck.test b/tests/tests/chroot/pwck/01_pwck--root/pwck.test new file mode 100755 index 00000000..25cba9f0 --- /dev/null +++ b/tests/tests/chroot/pwck/01_pwck--root/pwck.test @@ -0,0 +1,67 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "pwck can change a chroot" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; clean_chroot; restore_config' 0 + +change_config + +prepare_chroot + +echo -n "pwck in a chroot (pwck --read-only --root $PWD/tmp/root)..." +pwck --read-only --root $PWD/tmp/root >tmp/pwck.out && exit 1 || { + status=$? +} +echo "OK" + +echo -n "Check returned status ($status)..." +test "$status" = "2" +echo "OK" + +echo "pwck reported:" +echo "=======================================================================" +cat tmp/pwck.out +echo "=======================================================================" +echo -n "Check that there were a failure message..." +diff -au data/pwck.out tmp/pwck.out +echo "error message OK." +rm -f tmp/pwck.out + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +../../../common/compare_file.pl config_chroot/etc/passwd tmp/root/etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +../../../common/compare_file.pl config_chroot/etc/group tmp/root/etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +../../../common/compare_file.pl config_chroot/etc/shadow tmp/root/etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +../../../common/compare_file.pl config_chroot/etc/gshadow tmp/root/etc/gshadow +echo "OK" + +rm -f tmp/root/etc/.pwd.lock +rm -f tmp/root/etc/passwd- +rm -f tmp/root/etc/group- +rm -f tmp/root/etc/shadow- +rm -f tmp/root/etc/gshadow- +clean_chroot + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chroot/pwconv/01_pwconv--root/config.txt b/tests/tests/chroot/pwconv/01_pwconv--root/config.txt new file mode 100644 index 00000000..31f56359 --- /dev/null +++ b/tests/tests/chroot/pwconv/01_pwconv--root/config.txt @@ -0,0 +1,10 @@ +# no testsuite password +# root password: rootF00barbaz +# myuser password: myuserF00barbaz + +user foo, in group users (only in /etc/group) +user foo, in group tty (only in /etc/gshadow) +user foo, in group floppy +user foo, admin of group disk +user foo, admin and member of group fax +user foo, admin and member of group cdrom (only in /etc/gshadow) diff --git a/tests/tests/chroot/pwconv/01_pwconv--root/config/etc/default/useradd b/tests/tests/chroot/pwconv/01_pwconv--root/config/etc/default/useradd new file mode 100644 index 00000000..31c44abe --- /dev/null +++ b/tests/tests/chroot/pwconv/01_pwconv--root/config/etc/default/useradd @@ -0,0 +1,36 @@ +# Default values for useradd(8) +# +# The SHELL variable specifies the default login shell on your +# system. +# Similar to DHSELL in adduser. However, we use "sh" here because +# useradd is a low level utility and should be as general +# as possible +SHELL=/bin/foobar +# +# The default group for users +# 100=users on Debian systems +# Same as USERS_GID in adduser +# This argument is used when the -n flag is specified. +# The default behavior (when -n and -g are not specified) is to create a +# primary user group with the same name as the user being added to the +# system. +GROUP=10 +# +# The default home directory. Same as DHOME for adduser +HOME=/tmp +# +# The number of days after a password expires until the account +# is permanently disabled +INACTIVE=12 +# +# The default expire date +EXPIRE=2007-12-02 +# +# The SKEL variable specifies the directory containing "skeletal" user +# files; in other words, files such as a sample .profile that will be +# copied to the new user's home directory when it is created. +# SKEL=/etc/skel +# +# Defines whether the mail spool should be created while +# creating the account +# CREATE_MAIL_SPOOL=yes diff --git a/tests/tests/chroot/pwconv/01_pwconv--root/config/etc/group b/tests/tests/chroot/pwconv/01_pwconv--root/config/etc/group new file mode 100644 index 00000000..10123908 --- /dev/null +++ b/tests/tests/chroot/pwconv/01_pwconv--root/config/etc/group @@ -0,0 +1,41 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: diff --git a/tests/tests/chroot/pwconv/01_pwconv--root/config/etc/gshadow b/tests/tests/chroot/pwconv/01_pwconv--root/config/etc/gshadow new file mode 100644 index 00000000..ae424865 --- /dev/null +++ b/tests/tests/chroot/pwconv/01_pwconv--root/config/etc/gshadow @@ -0,0 +1,41 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: diff --git a/tests/tests/chroot/pwconv/01_pwconv--root/config/etc/passwd b/tests/tests/chroot/pwconv/01_pwconv--root/config/etc/passwd new file mode 100644 index 00000000..43fc135a --- /dev/null +++ b/tests/tests/chroot/pwconv/01_pwconv--root/config/etc/passwd @@ -0,0 +1,19 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false diff --git a/tests/tests/chroot/pwconv/01_pwconv--root/config/etc/shadow b/tests/tests/chroot/pwconv/01_pwconv--root/config/etc/shadow new file mode 100644 index 00000000..5f50d187 --- /dev/null +++ b/tests/tests/chroot/pwconv/01_pwconv--root/config/etc/shadow @@ -0,0 +1,19 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: diff --git a/tests/tests/chroot/pwconv/01_pwconv--root/config_chroot/etc/group b/tests/tests/chroot/pwconv/01_pwconv--root/config_chroot/etc/group new file mode 100644 index 00000000..245cc9cf --- /dev/null +++ b/tests/tests/chroot/pwconv/01_pwconv--root/config_chroot/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: diff --git a/tests/tests/chroot/pwconv/01_pwconv--root/config_chroot/etc/gshadow b/tests/tests/chroot/pwconv/01_pwconv--root/config_chroot/etc/gshadow new file mode 100644 index 00000000..25bd55bd --- /dev/null +++ b/tests/tests/chroot/pwconv/01_pwconv--root/config_chroot/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: diff --git a/tests/tests/chroot/pwconv/01_pwconv--root/config_chroot/etc/login.defs b/tests/tests/chroot/pwconv/01_pwconv--root/config_chroot/etc/login.defs new file mode 100644 index 00000000..3b216aa1 --- /dev/null +++ b/tests/tests/chroot/pwconv/01_pwconv--root/config_chroot/etc/login.defs @@ -0,0 +1,334 @@ +# +# /etc/login.defs - Configuration control definitions for the login package. +# +# Three items must be defined: MAIL_DIR, ENV_SUPATH, and ENV_PATH. +# If unspecified, some arbitrary (and possibly incorrect) value will +# be assumed. All other items are optional - if not specified then +# the described action or option will be inhibited. +# +# Comment lines (lines beginning with "#") and blank lines are ignored. +# +# Modified for Linux. --marekm + +# REQUIRED for useradd/userdel/usermod +# Directory where mailboxes reside, _or_ name of file, relative to the +# home directory. If you _do_ define MAIL_DIR and MAIL_FILE, +# MAIL_DIR takes precedence. +# +# Essentially: +# - MAIL_DIR defines the location of users mail spool files +# (for mbox use) by appending the username to MAIL_DIR as defined +# below. +# - MAIL_FILE defines the location of the users mail spool files as the +# fully-qualified filename obtained by prepending the user home +# directory before $MAIL_FILE +# +# NOTE: This is no more used for setting up users MAIL environment variable +# which is, starting from shadow 4.0.12-1 in Debian, entirely the +# job of the pam_mail PAM modules +# See default PAM configuration files provided for +# login, su, etc. +# +# This is a temporary situation: setting these variables will soon +# move to /etc/default/useradd and the variables will then be +# no more supported +MAIL_DIR /var/mail +#MAIL_FILE .mail + +# +# Enable logging and display of /var/log/faillog login failure info. +# This option conflicts with the pam_tally PAM module. +# +FAILLOG_ENAB yes + +# +# Enable display of unknown usernames when login failures are recorded. +# +# WARNING: Unknown usernames may become world readable. +# See #290803 and #298773 for details about how this could become a security +# concern +LOG_UNKFAIL_ENAB no + +# +# Enable logging of successful logins +# +LOG_OK_LOGINS no + +# +# Enable "syslog" logging of su activity - in addition to sulog file logging. +# SYSLOG_SG_ENAB does the same for newgrp and sg. +# +SYSLOG_SU_ENAB yes +SYSLOG_SG_ENAB yes + +# +# If defined, all su activity is logged to this file. +# +#SULOG_FILE /var/log/sulog + +# +# If defined, file which maps tty line to TERM environment parameter. +# Each line of the file is in a format something like "vt100 tty01". +# +#TTYTYPE_FILE /etc/ttytype + +# +# If defined, login failures will be logged here in a utmp format +# last, when invoked as lastb, will read /var/log/btmp, so... +# +FTMP_FILE /var/log/btmp + +# +# If defined, the command name to display when running "su -". For +# example, if this is defined as "su" then a "ps" will display the +# command is "-su". If not defined, then "ps" would display the +# name of the shell actually being run, e.g. something like "-sh". +# +SU_NAME su + +# +# If defined, file which inhibits all the usual chatter during the login +# sequence. If a full pathname, then hushed mode will be enabled if the +# user's name or shell are found in the file. If not a full pathname, then +# hushed mode will be enabled if the file exists in the user's home directory. +# +HUSHLOGIN_FILE .hushlogin +#HUSHLOGIN_FILE /etc/hushlogins + +# +# *REQUIRED* The default PATH settings, for superuser and normal users. +# +# (they are minimal, add the rest in the shell startup files) +ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games + +# +# Terminal permissions +# +# TTYGROUP Login tty will be assigned this group ownership. +# TTYPERM Login tty will be set to this permission. +# +# If you have a "write" program which is "setgid" to a special group +# which owns the terminals, define TTYGROUP to the group number and +# TTYPERM to 0620. Otherwise leave TTYGROUP commented out and assign +# TTYPERM to either 622 or 600. +# +# In Debian /usr/bin/bsd-write or similar programs are setgid tty +# However, the default and recommended value for TTYPERM is still 0600 +# to not allow anyone to write to anyone else console or terminal + +# Users can still allow other people to write them by issuing +# the "mesg y" command. + +TTYGROUP tty +TTYPERM 0600 + +# +# Login configuration initializations: +# +# ERASECHAR Terminal ERASE character ('\010' = backspace). +# KILLCHAR Terminal KILL character ('\025' = CTRL/U). +# UMASK Default "umask" value. +# +# The ERASECHAR and KILLCHAR are used only on System V machines. +# +# UMASK is the default umask value for pam_umask and is used by +# useradd and newusers to set the mode of the new home directories. +# 022 is the "historical" value in Debian for UMASK +# 027, or even 077, could be considered better for privacy +# There is no One True Answer here : each sysadmin must make up their +# mind. +# +# Prefix these values with "0" to get octal, "0x" to get hexadecimal. +# +ERASECHAR 0177 +KILLCHAR 025 +UMASK 022 + +# +# Password aging controls: +# +# PASS_MAX_DAYS Maximum number of days a password may be used. +# PASS_MIN_DAYS Minimum number of days allowed between password changes. +# PASS_WARN_AGE Number of days warning given before a password expires. +# +PASS_MAX_DAYS 99999 +PASS_MIN_DAYS 0 +PASS_WARN_AGE 7 + +# +# Min/max values for automatic uid selection in useradd +# +UID_MIN 1000 +UID_MAX 60000 +# System accounts +#SYS_UID_MIN 100 +#SYS_UID_MAX 999 + +# +# Min/max values for automatic gid selection in groupadd +# +GID_MIN 1000 +GID_MAX 60000 +# System accounts +#SYS_GID_MIN 100 +#SYS_GID_MAX 999 + +# +# Max number of login retries if password is bad. This will most likely be +# overridden by PAM, since the default pam_unix module has it's own built +# in of 3 retries. However, this is a safe fallback in case you are using +# an authentication module that does not enforce PAM_MAXTRIES. +# +LOGIN_RETRIES 5 + +# +# Max time in seconds for login +# +LOGIN_TIMEOUT 60 + +# +# Which fields may be changed by regular users using chfn - use +# any combination of letters "frwh" (full name, room number, work +# phone, home phone). If not defined, no changes are allowed. +# For backward compatibility, "yes" = "rwh" and "no" = "frwh". +# +CHFN_RESTRICT rwh + +# +# Should login be allowed if we can't cd to the home directory? +# Default is no. +# +DEFAULT_HOME yes + +# +# If defined, this command is run when removing a user. +# It should remove any at/cron/print jobs etc. owned by +# the user to be removed (passed as the first argument). +# +#USERDEL_CMD /usr/sbin/userdel_local + +# +# If set to yes, userdel will remove the user's group if it contains no +# more members, and useradd will create by default a group with the name +# of the user. +# +# Other former uses of this variable such as setting the umask when +# user==primary group are not used in PAM environments, such as Debian +# +USERGROUPS_ENAB yes + +# +# Instead of the real user shell, the program specified by this parameter +# will be launched, although its visible name (argv[0]) will be the shell's. +# The program may do whatever it wants (logging, additional authentification, +# banner, ...) before running the actual shell. +# +# FAKE_SHELL /bin/fakeshell + +# +# If defined, either full pathname of a file containing device names or +# a ":" delimited list of device names. Root logins will be allowed only +# upon these devices. +# +# This variable is used by login and su. +# +#CONSOLE /etc/consoles +#CONSOLE console:tty01:tty02:tty03:tty04 + +# +# List of groups to add to the user's supplementary group set +# when logging in on the console (as determined by the CONSOLE +# setting). Default is none. +# +# Use with caution - it is possible for users to gain permanent +# access to these groups, even when not logged in on the console. +# How to do it is left as an exercise for the reader... +# +# This variable is used by login and su. +# +#CONSOLE_GROUPS floppy:audio:cdrom + +# +# If set to "yes", new passwords will be encrypted using the MD5-based +# algorithm compatible with the one used by recent releases of FreeBSD. +# It supports passwords of unlimited length and longer salt strings. +# Set to "no" if you need to copy encrypted passwords to other systems +# which don't understand the new algorithm. Default is "no". +# +# This variable is deprecated. You should use ENCRYPT_METHOD. +# +#MD5_CRYPT_ENAB no + +# +# If set to MD5 , MD5-based algorithm will be used for encrypting password +# If set to SHA256, SHA256-based algorithm will be used for encrypting password +# If set to SHA512, SHA512-based algorithm will be used for encrypting password +# If set to DES, DES-based algorithm will be used for encrypting password (default) +# Overrides the MD5_CRYPT_ENAB option +# +# Note: It is recommended to use a value consistent with +# the PAM modules configuration. +# +#ENCRYPT_METHOD DES + +# +# Only used if ENCRYPT_METHOD is set to SHA256 or SHA512. +# +# Define the number of SHA rounds. +# With a lot of rounds, it is more difficult to brute forcing the password. +# But note also that it more CPU resources will be needed to authenticate +# users. +# +# If not specified, the libc will choose the default number of rounds (5000). +# The values must be inside the 1000-999999999 range. +# If only one of the MIN or MAX values is set, then this value will be used. +# If MIN > MAX, the highest value will be used. +# +# SHA_CRYPT_MIN_ROUNDS 5000 +# SHA_CRYPT_MAX_ROUNDS 5000 + +################# OBSOLETED BY PAM ############## +# # +# These options are now handled by PAM. Please # +# edit the appropriate file in /etc/pam.d/ to # +# enable the equivalents of them. +# +############### + +#MOTD_FILE +#DIALUPS_CHECK_ENAB +#LASTLOG_ENAB +#MAIL_CHECK_ENAB +#OBSCURE_CHECKS_ENAB +#PORTTIME_CHECKS_ENAB +#SU_WHEEL_ONLY +#PASS_CHANGE_TRIES +#PASS_ALWAYS_WARN +#ENVIRON_FILE +#NOLOGINS_FILE +#ISSUE_FILE +#PASS_MIN_LEN +#PASS_MAX_LEN +#ULIMIT +#ENV_HZ +#CHFN_AUTH +#CHSH_AUTH +#FAIL_DELAY + +################# OBSOLETED ####################### +# # +# These options are no more handled by shadow. # +# # +# Shadow utilities will display a warning if they # +# still appear. # +# # +################################################### + +# CLOSE_SESSIONS +# LOGIN_STRING +# NO_PASSWORD_CONSOLE +# QMAIL_DIR + + + diff --git a/tests/tests/chroot/pwconv/01_pwconv--root/config_chroot/etc/passwd b/tests/tests/chroot/pwconv/01_pwconv--root/config_chroot/etc/passwd new file mode 100644 index 00000000..1a85284e --- /dev/null +++ b/tests/tests/chroot/pwconv/01_pwconv--root/config_chroot/etc/passwd @@ -0,0 +1,21 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:0:0:root:/root:/bin/bash +daemon:*:1:1:daemon:/usr/sbin:/bin/sh +bin:*:2:2:bin:/bin:/bin/sh +sys:*:3:3:sys:/dev:/bin/sh +sync:*:4:65534:sync:/bin:/bin/sync +games:*:5:60:games:/usr/games:/bin/sh +man:*:6:12:man:/var/cache/man:/bin/sh +lp:*:7:7:lp:/var/spool/lpd:/bin/sh +mail:*:8:8:mail:/var/mail:/bin/sh +news:*:9:9:news:/var/spool/news:/bin/sh +uucp:*:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:*:13:13:proxy:/bin:/bin/sh +www-data:*:33:33:www-data:/var/www:/bin/sh +backup:*:34:34:backup:/var/backups:/bin/sh +list:*:38:38:Mailing List Manager:/var/list:/bin/sh +irc:*:39:39:ircd:/var/run/ircd:/bin/sh +gnats:*:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:*:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:!:102:102::/var/spool/exim4:/bin/false +myuser:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:424242:424242::/home/:/bin/sh +testsuite::424243:424243::/home:/bin/bash diff --git a/tests/tests/chroot/pwconv/01_pwconv--root/data/passwd b/tests/tests/chroot/pwconv/01_pwconv--root/data/passwd new file mode 100644 index 00000000..89b69625 --- /dev/null +++ b/tests/tests/chroot/pwconv/01_pwconv--root/data/passwd @@ -0,0 +1,21 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser:x:424242:424242::/home/:/bin/sh +testsuite:x:424243:424243::/home:/bin/bash diff --git a/tests/tests/chroot/pwconv/01_pwconv--root/data/shadow b/tests/tests/chroot/pwconv/01_pwconv--root/data/shadow new file mode 100644 index 00000000..38bf30c5 --- /dev/null +++ b/tests/tests/chroot/pwconv/01_pwconv--root/data/shadow @@ -0,0 +1,21 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:@TODAY@:0:99999:7::: +daemon:*:@TODAY@:0:99999:7::: +bin:*:@TODAY@:0:99999:7::: +sys:*:@TODAY@:0:99999:7::: +sync:*:@TODAY@:0:99999:7::: +games:*:@TODAY@:0:99999:7::: +man:*:@TODAY@:0:99999:7::: +lp:*:@TODAY@:0:99999:7::: +mail:*:@TODAY@:0:99999:7::: +news:*:@TODAY@:0:99999:7::: +uucp:*:@TODAY@:0:99999:7::: +proxy:*:@TODAY@:0:99999:7::: +www-data:*:@TODAY@:0:99999:7::: +backup:*:@TODAY@:0:99999:7::: +list:*:@TODAY@:0:99999:7::: +irc:*:@TODAY@:0:99999:7::: +gnats:*:@TODAY@:0:99999:7::: +nobody:*:@TODAY@:0:99999:7::: +Debian-exim:!:@TODAY@:0:99999:7::: +myuser:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:@TODAY@:0:99999:7::: +testsuite::@TODAY@:0:99999:7::: diff --git a/tests/tests/chroot/pwconv/01_pwconv--root/pwconv.test b/tests/tests/chroot/pwconv/01_pwconv--root/pwconv.test new file mode 100755 index 00000000..3b92ab4b --- /dev/null +++ b/tests/tests/chroot/pwconv/01_pwconv--root/pwconv.test @@ -0,0 +1,50 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "pwconv can change a chroot" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; clean_chroot; restore_config' 0 + +change_config + +prepare_chroot + +echo -n "pwconv in a chroot (pwconv --root $PWD/tmp/root)..." +pwconv --root $PWD/tmp/root +echo "OK" + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +../../../common/compare_file.pl data/passwd tmp/root/etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +../../../common/compare_file.pl config_chroot/etc/group tmp/root/etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +../../../common/compare_file.pl data/shadow tmp/root/etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +../../../common/compare_file.pl config_chroot/etc/gshadow tmp/root/etc/gshadow +echo "OK" + +rm -f tmp/root/etc/.pwd.lock +rm -f tmp/root/etc/passwd- +rm -f tmp/root/etc/shadow +clean_chroot + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chroot/pwunconv/01_pwunconv--root/config.txt b/tests/tests/chroot/pwunconv/01_pwunconv--root/config.txt new file mode 100644 index 00000000..31f56359 --- /dev/null +++ b/tests/tests/chroot/pwunconv/01_pwunconv--root/config.txt @@ -0,0 +1,10 @@ +# no testsuite password +# root password: rootF00barbaz +# myuser password: myuserF00barbaz + +user foo, in group users (only in /etc/group) +user foo, in group tty (only in /etc/gshadow) +user foo, in group floppy +user foo, admin of group disk +user foo, admin and member of group fax +user foo, admin and member of group cdrom (only in /etc/gshadow) diff --git a/tests/tests/chroot/pwunconv/01_pwunconv--root/config/etc/default/useradd b/tests/tests/chroot/pwunconv/01_pwunconv--root/config/etc/default/useradd new file mode 100644 index 00000000..31c44abe --- /dev/null +++ b/tests/tests/chroot/pwunconv/01_pwunconv--root/config/etc/default/useradd @@ -0,0 +1,36 @@ +# Default values for useradd(8) +# +# The SHELL variable specifies the default login shell on your +# system. +# Similar to DHSELL in adduser. However, we use "sh" here because +# useradd is a low level utility and should be as general +# as possible +SHELL=/bin/foobar +# +# The default group for users +# 100=users on Debian systems +# Same as USERS_GID in adduser +# This argument is used when the -n flag is specified. +# The default behavior (when -n and -g are not specified) is to create a +# primary user group with the same name as the user being added to the +# system. +GROUP=10 +# +# The default home directory. Same as DHOME for adduser +HOME=/tmp +# +# The number of days after a password expires until the account +# is permanently disabled +INACTIVE=12 +# +# The default expire date +EXPIRE=2007-12-02 +# +# The SKEL variable specifies the directory containing "skeletal" user +# files; in other words, files such as a sample .profile that will be +# copied to the new user's home directory when it is created. +# SKEL=/etc/skel +# +# Defines whether the mail spool should be created while +# creating the account +# CREATE_MAIL_SPOOL=yes diff --git a/tests/tests/chroot/pwunconv/01_pwunconv--root/config/etc/group b/tests/tests/chroot/pwunconv/01_pwunconv--root/config/etc/group new file mode 100644 index 00000000..10123908 --- /dev/null +++ b/tests/tests/chroot/pwunconv/01_pwunconv--root/config/etc/group @@ -0,0 +1,41 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: diff --git a/tests/tests/chroot/pwunconv/01_pwunconv--root/config/etc/gshadow b/tests/tests/chroot/pwunconv/01_pwunconv--root/config/etc/gshadow new file mode 100644 index 00000000..ae424865 --- /dev/null +++ b/tests/tests/chroot/pwunconv/01_pwunconv--root/config/etc/gshadow @@ -0,0 +1,41 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: diff --git a/tests/tests/chroot/pwunconv/01_pwunconv--root/config/etc/passwd b/tests/tests/chroot/pwunconv/01_pwunconv--root/config/etc/passwd new file mode 100644 index 00000000..43fc135a --- /dev/null +++ b/tests/tests/chroot/pwunconv/01_pwunconv--root/config/etc/passwd @@ -0,0 +1,19 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false diff --git a/tests/tests/chroot/pwunconv/01_pwunconv--root/config/etc/shadow b/tests/tests/chroot/pwunconv/01_pwunconv--root/config/etc/shadow new file mode 100644 index 00000000..5f50d187 --- /dev/null +++ b/tests/tests/chroot/pwunconv/01_pwunconv--root/config/etc/shadow @@ -0,0 +1,19 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: diff --git a/tests/tests/chroot/pwunconv/01_pwunconv--root/config_chroot/etc/group b/tests/tests/chroot/pwunconv/01_pwunconv--root/config_chroot/etc/group new file mode 100644 index 00000000..245cc9cf --- /dev/null +++ b/tests/tests/chroot/pwunconv/01_pwunconv--root/config_chroot/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: diff --git a/tests/tests/chroot/pwunconv/01_pwunconv--root/config_chroot/etc/gshadow b/tests/tests/chroot/pwunconv/01_pwunconv--root/config_chroot/etc/gshadow new file mode 100644 index 00000000..25bd55bd --- /dev/null +++ b/tests/tests/chroot/pwunconv/01_pwunconv--root/config_chroot/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: diff --git a/tests/tests/chroot/pwunconv/01_pwunconv--root/config_chroot/etc/login.defs b/tests/tests/chroot/pwunconv/01_pwunconv--root/config_chroot/etc/login.defs new file mode 100644 index 00000000..3b216aa1 --- /dev/null +++ b/tests/tests/chroot/pwunconv/01_pwunconv--root/config_chroot/etc/login.defs @@ -0,0 +1,334 @@ +# +# /etc/login.defs - Configuration control definitions for the login package. +# +# Three items must be defined: MAIL_DIR, ENV_SUPATH, and ENV_PATH. +# If unspecified, some arbitrary (and possibly incorrect) value will +# be assumed. All other items are optional - if not specified then +# the described action or option will be inhibited. +# +# Comment lines (lines beginning with "#") and blank lines are ignored. +# +# Modified for Linux. --marekm + +# REQUIRED for useradd/userdel/usermod +# Directory where mailboxes reside, _or_ name of file, relative to the +# home directory. If you _do_ define MAIL_DIR and MAIL_FILE, +# MAIL_DIR takes precedence. +# +# Essentially: +# - MAIL_DIR defines the location of users mail spool files +# (for mbox use) by appending the username to MAIL_DIR as defined +# below. +# - MAIL_FILE defines the location of the users mail spool files as the +# fully-qualified filename obtained by prepending the user home +# directory before $MAIL_FILE +# +# NOTE: This is no more used for setting up users MAIL environment variable +# which is, starting from shadow 4.0.12-1 in Debian, entirely the +# job of the pam_mail PAM modules +# See default PAM configuration files provided for +# login, su, etc. +# +# This is a temporary situation: setting these variables will soon +# move to /etc/default/useradd and the variables will then be +# no more supported +MAIL_DIR /var/mail +#MAIL_FILE .mail + +# +# Enable logging and display of /var/log/faillog login failure info. +# This option conflicts with the pam_tally PAM module. +# +FAILLOG_ENAB yes + +# +# Enable display of unknown usernames when login failures are recorded. +# +# WARNING: Unknown usernames may become world readable. +# See #290803 and #298773 for details about how this could become a security +# concern +LOG_UNKFAIL_ENAB no + +# +# Enable logging of successful logins +# +LOG_OK_LOGINS no + +# +# Enable "syslog" logging of su activity - in addition to sulog file logging. +# SYSLOG_SG_ENAB does the same for newgrp and sg. +# +SYSLOG_SU_ENAB yes +SYSLOG_SG_ENAB yes + +# +# If defined, all su activity is logged to this file. +# +#SULOG_FILE /var/log/sulog + +# +# If defined, file which maps tty line to TERM environment parameter. +# Each line of the file is in a format something like "vt100 tty01". +# +#TTYTYPE_FILE /etc/ttytype + +# +# If defined, login failures will be logged here in a utmp format +# last, when invoked as lastb, will read /var/log/btmp, so... +# +FTMP_FILE /var/log/btmp + +# +# If defined, the command name to display when running "su -". For +# example, if this is defined as "su" then a "ps" will display the +# command is "-su". If not defined, then "ps" would display the +# name of the shell actually being run, e.g. something like "-sh". +# +SU_NAME su + +# +# If defined, file which inhibits all the usual chatter during the login +# sequence. If a full pathname, then hushed mode will be enabled if the +# user's name or shell are found in the file. If not a full pathname, then +# hushed mode will be enabled if the file exists in the user's home directory. +# +HUSHLOGIN_FILE .hushlogin +#HUSHLOGIN_FILE /etc/hushlogins + +# +# *REQUIRED* The default PATH settings, for superuser and normal users. +# +# (they are minimal, add the rest in the shell startup files) +ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games + +# +# Terminal permissions +# +# TTYGROUP Login tty will be assigned this group ownership. +# TTYPERM Login tty will be set to this permission. +# +# If you have a "write" program which is "setgid" to a special group +# which owns the terminals, define TTYGROUP to the group number and +# TTYPERM to 0620. Otherwise leave TTYGROUP commented out and assign +# TTYPERM to either 622 or 600. +# +# In Debian /usr/bin/bsd-write or similar programs are setgid tty +# However, the default and recommended value for TTYPERM is still 0600 +# to not allow anyone to write to anyone else console or terminal + +# Users can still allow other people to write them by issuing +# the "mesg y" command. + +TTYGROUP tty +TTYPERM 0600 + +# +# Login configuration initializations: +# +# ERASECHAR Terminal ERASE character ('\010' = backspace). +# KILLCHAR Terminal KILL character ('\025' = CTRL/U). +# UMASK Default "umask" value. +# +# The ERASECHAR and KILLCHAR are used only on System V machines. +# +# UMASK is the default umask value for pam_umask and is used by +# useradd and newusers to set the mode of the new home directories. +# 022 is the "historical" value in Debian for UMASK +# 027, or even 077, could be considered better for privacy +# There is no One True Answer here : each sysadmin must make up their +# mind. +# +# Prefix these values with "0" to get octal, "0x" to get hexadecimal. +# +ERASECHAR 0177 +KILLCHAR 025 +UMASK 022 + +# +# Password aging controls: +# +# PASS_MAX_DAYS Maximum number of days a password may be used. +# PASS_MIN_DAYS Minimum number of days allowed between password changes. +# PASS_WARN_AGE Number of days warning given before a password expires. +# +PASS_MAX_DAYS 99999 +PASS_MIN_DAYS 0 +PASS_WARN_AGE 7 + +# +# Min/max values for automatic uid selection in useradd +# +UID_MIN 1000 +UID_MAX 60000 +# System accounts +#SYS_UID_MIN 100 +#SYS_UID_MAX 999 + +# +# Min/max values for automatic gid selection in groupadd +# +GID_MIN 1000 +GID_MAX 60000 +# System accounts +#SYS_GID_MIN 100 +#SYS_GID_MAX 999 + +# +# Max number of login retries if password is bad. This will most likely be +# overridden by PAM, since the default pam_unix module has it's own built +# in of 3 retries. However, this is a safe fallback in case you are using +# an authentication module that does not enforce PAM_MAXTRIES. +# +LOGIN_RETRIES 5 + +# +# Max time in seconds for login +# +LOGIN_TIMEOUT 60 + +# +# Which fields may be changed by regular users using chfn - use +# any combination of letters "frwh" (full name, room number, work +# phone, home phone). If not defined, no changes are allowed. +# For backward compatibility, "yes" = "rwh" and "no" = "frwh". +# +CHFN_RESTRICT rwh + +# +# Should login be allowed if we can't cd to the home directory? +# Default is no. +# +DEFAULT_HOME yes + +# +# If defined, this command is run when removing a user. +# It should remove any at/cron/print jobs etc. owned by +# the user to be removed (passed as the first argument). +# +#USERDEL_CMD /usr/sbin/userdel_local + +# +# If set to yes, userdel will remove the user's group if it contains no +# more members, and useradd will create by default a group with the name +# of the user. +# +# Other former uses of this variable such as setting the umask when +# user==primary group are not used in PAM environments, such as Debian +# +USERGROUPS_ENAB yes + +# +# Instead of the real user shell, the program specified by this parameter +# will be launched, although its visible name (argv[0]) will be the shell's. +# The program may do whatever it wants (logging, additional authentification, +# banner, ...) before running the actual shell. +# +# FAKE_SHELL /bin/fakeshell + +# +# If defined, either full pathname of a file containing device names or +# a ":" delimited list of device names. Root logins will be allowed only +# upon these devices. +# +# This variable is used by login and su. +# +#CONSOLE /etc/consoles +#CONSOLE console:tty01:tty02:tty03:tty04 + +# +# List of groups to add to the user's supplementary group set +# when logging in on the console (as determined by the CONSOLE +# setting). Default is none. +# +# Use with caution - it is possible for users to gain permanent +# access to these groups, even when not logged in on the console. +# How to do it is left as an exercise for the reader... +# +# This variable is used by login and su. +# +#CONSOLE_GROUPS floppy:audio:cdrom + +# +# If set to "yes", new passwords will be encrypted using the MD5-based +# algorithm compatible with the one used by recent releases of FreeBSD. +# It supports passwords of unlimited length and longer salt strings. +# Set to "no" if you need to copy encrypted passwords to other systems +# which don't understand the new algorithm. Default is "no". +# +# This variable is deprecated. You should use ENCRYPT_METHOD. +# +#MD5_CRYPT_ENAB no + +# +# If set to MD5 , MD5-based algorithm will be used for encrypting password +# If set to SHA256, SHA256-based algorithm will be used for encrypting password +# If set to SHA512, SHA512-based algorithm will be used for encrypting password +# If set to DES, DES-based algorithm will be used for encrypting password (default) +# Overrides the MD5_CRYPT_ENAB option +# +# Note: It is recommended to use a value consistent with +# the PAM modules configuration. +# +#ENCRYPT_METHOD DES + +# +# Only used if ENCRYPT_METHOD is set to SHA256 or SHA512. +# +# Define the number of SHA rounds. +# With a lot of rounds, it is more difficult to brute forcing the password. +# But note also that it more CPU resources will be needed to authenticate +# users. +# +# If not specified, the libc will choose the default number of rounds (5000). +# The values must be inside the 1000-999999999 range. +# If only one of the MIN or MAX values is set, then this value will be used. +# If MIN > MAX, the highest value will be used. +# +# SHA_CRYPT_MIN_ROUNDS 5000 +# SHA_CRYPT_MAX_ROUNDS 5000 + +################# OBSOLETED BY PAM ############## +# # +# These options are now handled by PAM. Please # +# edit the appropriate file in /etc/pam.d/ to # +# enable the equivalents of them. +# +############### + +#MOTD_FILE +#DIALUPS_CHECK_ENAB +#LASTLOG_ENAB +#MAIL_CHECK_ENAB +#OBSCURE_CHECKS_ENAB +#PORTTIME_CHECKS_ENAB +#SU_WHEEL_ONLY +#PASS_CHANGE_TRIES +#PASS_ALWAYS_WARN +#ENVIRON_FILE +#NOLOGINS_FILE +#ISSUE_FILE +#PASS_MIN_LEN +#PASS_MAX_LEN +#ULIMIT +#ENV_HZ +#CHFN_AUTH +#CHSH_AUTH +#FAIL_DELAY + +################# OBSOLETED ####################### +# # +# These options are no more handled by shadow. # +# # +# Shadow utilities will display a warning if they # +# still appear. # +# # +################################################### + +# CLOSE_SESSIONS +# LOGIN_STRING +# NO_PASSWORD_CONSOLE +# QMAIL_DIR + + + diff --git a/tests/tests/chroot/pwunconv/01_pwunconv--root/config_chroot/etc/passwd b/tests/tests/chroot/pwunconv/01_pwunconv--root/config_chroot/etc/passwd new file mode 100644 index 00000000..9bdeb8ce --- /dev/null +++ b/tests/tests/chroot/pwunconv/01_pwunconv--root/config_chroot/etc/passwd @@ -0,0 +1,21 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser:x:424242:424242::/home/:/bin/sh +testsuite::424243:424243::/home:/bin/bash diff --git a/tests/tests/chroot/pwunconv/01_pwunconv--root/config_chroot/etc/shadow b/tests/tests/chroot/pwunconv/01_pwunconv--root/config_chroot/etc/shadow new file mode 100644 index 00000000..038d5cf4 --- /dev/null +++ b/tests/tests/chroot/pwunconv/01_pwunconv--root/config_chroot/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: diff --git a/tests/tests/chroot/pwunconv/01_pwunconv--root/data/passwd b/tests/tests/chroot/pwunconv/01_pwunconv--root/data/passwd new file mode 100644 index 00000000..1a85284e --- /dev/null +++ b/tests/tests/chroot/pwunconv/01_pwunconv--root/data/passwd @@ -0,0 +1,21 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:0:0:root:/root:/bin/bash +daemon:*:1:1:daemon:/usr/sbin:/bin/sh +bin:*:2:2:bin:/bin:/bin/sh +sys:*:3:3:sys:/dev:/bin/sh +sync:*:4:65534:sync:/bin:/bin/sync +games:*:5:60:games:/usr/games:/bin/sh +man:*:6:12:man:/var/cache/man:/bin/sh +lp:*:7:7:lp:/var/spool/lpd:/bin/sh +mail:*:8:8:mail:/var/mail:/bin/sh +news:*:9:9:news:/var/spool/news:/bin/sh +uucp:*:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:*:13:13:proxy:/bin:/bin/sh +www-data:*:33:33:www-data:/var/www:/bin/sh +backup:*:34:34:backup:/var/backups:/bin/sh +list:*:38:38:Mailing List Manager:/var/list:/bin/sh +irc:*:39:39:ircd:/var/run/ircd:/bin/sh +gnats:*:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:*:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:!:102:102::/var/spool/exim4:/bin/false +myuser:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:424242:424242::/home/:/bin/sh +testsuite::424243:424243::/home:/bin/bash diff --git a/tests/tests/chroot/pwunconv/01_pwunconv--root/pwunconv.test b/tests/tests/chroot/pwunconv/01_pwunconv--root/pwunconv.test new file mode 100755 index 00000000..60c25529 --- /dev/null +++ b/tests/tests/chroot/pwunconv/01_pwunconv--root/pwunconv.test @@ -0,0 +1,52 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "pwunconv can change a chroot" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; clean_chroot; restore_config' 0 + +change_config + +prepare_chroot + +echo -n "pwunconv in a chroot (pwunconv --root $PWD/tmp/root)..." +pwunconv --root $PWD/tmp/root +echo "OK" + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +../../../common/compare_file.pl data/passwd tmp/root/etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +../../../common/compare_file.pl config_chroot/etc/group tmp/root/etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +test ! -f tmp/root/etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +../../../common/compare_file.pl config_chroot/etc/gshadow tmp/root/etc/gshadow +echo "OK" + +rm -f tmp/root/etc/.pwd.lock +rm -f tmp/root/etc/passwd- +rm -f tmp/root/etc/group- +rm -f tmp/root/etc/shadow- +rm -f tmp/root/etc/gshadow- +clean_chroot + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chroot/useradd/01_useradd--root/config.txt b/tests/tests/chroot/useradd/01_useradd--root/config.txt new file mode 100644 index 00000000..31f56359 --- /dev/null +++ b/tests/tests/chroot/useradd/01_useradd--root/config.txt @@ -0,0 +1,10 @@ +# no testsuite password +# root password: rootF00barbaz +# myuser password: myuserF00barbaz + +user foo, in group users (only in /etc/group) +user foo, in group tty (only in /etc/gshadow) +user foo, in group floppy +user foo, admin of group disk +user foo, admin and member of group fax +user foo, admin and member of group cdrom (only in /etc/gshadow) diff --git a/tests/tests/chroot/useradd/01_useradd--root/config/etc/default/useradd b/tests/tests/chroot/useradd/01_useradd--root/config/etc/default/useradd new file mode 100644 index 00000000..31c44abe --- /dev/null +++ b/tests/tests/chroot/useradd/01_useradd--root/config/etc/default/useradd @@ -0,0 +1,36 @@ +# Default values for useradd(8) +# +# The SHELL variable specifies the default login shell on your +# system. +# Similar to DHSELL in adduser. However, we use "sh" here because +# useradd is a low level utility and should be as general +# as possible +SHELL=/bin/foobar +# +# The default group for users +# 100=users on Debian systems +# Same as USERS_GID in adduser +# This argument is used when the -n flag is specified. +# The default behavior (when -n and -g are not specified) is to create a +# primary user group with the same name as the user being added to the +# system. +GROUP=10 +# +# The default home directory. Same as DHOME for adduser +HOME=/tmp +# +# The number of days after a password expires until the account +# is permanently disabled +INACTIVE=12 +# +# The default expire date +EXPIRE=2007-12-02 +# +# The SKEL variable specifies the directory containing "skeletal" user +# files; in other words, files such as a sample .profile that will be +# copied to the new user's home directory when it is created. +# SKEL=/etc/skel +# +# Defines whether the mail spool should be created while +# creating the account +# CREATE_MAIL_SPOOL=yes diff --git a/tests/tests/chroot/useradd/01_useradd--root/config/etc/group b/tests/tests/chroot/useradd/01_useradd--root/config/etc/group new file mode 100644 index 00000000..10123908 --- /dev/null +++ b/tests/tests/chroot/useradd/01_useradd--root/config/etc/group @@ -0,0 +1,41 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: diff --git a/tests/tests/chroot/useradd/01_useradd--root/config/etc/gshadow b/tests/tests/chroot/useradd/01_useradd--root/config/etc/gshadow new file mode 100644 index 00000000..ae424865 --- /dev/null +++ b/tests/tests/chroot/useradd/01_useradd--root/config/etc/gshadow @@ -0,0 +1,41 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: diff --git a/tests/tests/chroot/useradd/01_useradd--root/config/etc/passwd b/tests/tests/chroot/useradd/01_useradd--root/config/etc/passwd new file mode 100644 index 00000000..43fc135a --- /dev/null +++ b/tests/tests/chroot/useradd/01_useradd--root/config/etc/passwd @@ -0,0 +1,19 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false diff --git a/tests/tests/chroot/useradd/01_useradd--root/config/etc/shadow b/tests/tests/chroot/useradd/01_useradd--root/config/etc/shadow new file mode 100644 index 00000000..5f50d187 --- /dev/null +++ b/tests/tests/chroot/useradd/01_useradd--root/config/etc/shadow @@ -0,0 +1,19 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: diff --git a/tests/tests/chroot/useradd/01_useradd--root/config_chroot/etc/group b/tests/tests/chroot/useradd/01_useradd--root/config_chroot/etc/group new file mode 100644 index 00000000..245cc9cf --- /dev/null +++ b/tests/tests/chroot/useradd/01_useradd--root/config_chroot/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: diff --git a/tests/tests/chroot/useradd/01_useradd--root/config_chroot/etc/gshadow b/tests/tests/chroot/useradd/01_useradd--root/config_chroot/etc/gshadow new file mode 100644 index 00000000..25bd55bd --- /dev/null +++ b/tests/tests/chroot/useradd/01_useradd--root/config_chroot/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: diff --git a/tests/tests/chroot/useradd/01_useradd--root/config_chroot/etc/login.defs b/tests/tests/chroot/useradd/01_useradd--root/config_chroot/etc/login.defs new file mode 100644 index 00000000..3b216aa1 --- /dev/null +++ b/tests/tests/chroot/useradd/01_useradd--root/config_chroot/etc/login.defs @@ -0,0 +1,334 @@ +# +# /etc/login.defs - Configuration control definitions for the login package. +# +# Three items must be defined: MAIL_DIR, ENV_SUPATH, and ENV_PATH. +# If unspecified, some arbitrary (and possibly incorrect) value will +# be assumed. All other items are optional - if not specified then +# the described action or option will be inhibited. +# +# Comment lines (lines beginning with "#") and blank lines are ignored. +# +# Modified for Linux. --marekm + +# REQUIRED for useradd/userdel/usermod +# Directory where mailboxes reside, _or_ name of file, relative to the +# home directory. If you _do_ define MAIL_DIR and MAIL_FILE, +# MAIL_DIR takes precedence. +# +# Essentially: +# - MAIL_DIR defines the location of users mail spool files +# (for mbox use) by appending the username to MAIL_DIR as defined +# below. +# - MAIL_FILE defines the location of the users mail spool files as the +# fully-qualified filename obtained by prepending the user home +# directory before $MAIL_FILE +# +# NOTE: This is no more used for setting up users MAIL environment variable +# which is, starting from shadow 4.0.12-1 in Debian, entirely the +# job of the pam_mail PAM modules +# See default PAM configuration files provided for +# login, su, etc. +# +# This is a temporary situation: setting these variables will soon +# move to /etc/default/useradd and the variables will then be +# no more supported +MAIL_DIR /var/mail +#MAIL_FILE .mail + +# +# Enable logging and display of /var/log/faillog login failure info. +# This option conflicts with the pam_tally PAM module. +# +FAILLOG_ENAB yes + +# +# Enable display of unknown usernames when login failures are recorded. +# +# WARNING: Unknown usernames may become world readable. +# See #290803 and #298773 for details about how this could become a security +# concern +LOG_UNKFAIL_ENAB no + +# +# Enable logging of successful logins +# +LOG_OK_LOGINS no + +# +# Enable "syslog" logging of su activity - in addition to sulog file logging. +# SYSLOG_SG_ENAB does the same for newgrp and sg. +# +SYSLOG_SU_ENAB yes +SYSLOG_SG_ENAB yes + +# +# If defined, all su activity is logged to this file. +# +#SULOG_FILE /var/log/sulog + +# +# If defined, file which maps tty line to TERM environment parameter. +# Each line of the file is in a format something like "vt100 tty01". +# +#TTYTYPE_FILE /etc/ttytype + +# +# If defined, login failures will be logged here in a utmp format +# last, when invoked as lastb, will read /var/log/btmp, so... +# +FTMP_FILE /var/log/btmp + +# +# If defined, the command name to display when running "su -". For +# example, if this is defined as "su" then a "ps" will display the +# command is "-su". If not defined, then "ps" would display the +# name of the shell actually being run, e.g. something like "-sh". +# +SU_NAME su + +# +# If defined, file which inhibits all the usual chatter during the login +# sequence. If a full pathname, then hushed mode will be enabled if the +# user's name or shell are found in the file. If not a full pathname, then +# hushed mode will be enabled if the file exists in the user's home directory. +# +HUSHLOGIN_FILE .hushlogin +#HUSHLOGIN_FILE /etc/hushlogins + +# +# *REQUIRED* The default PATH settings, for superuser and normal users. +# +# (they are minimal, add the rest in the shell startup files) +ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games + +# +# Terminal permissions +# +# TTYGROUP Login tty will be assigned this group ownership. +# TTYPERM Login tty will be set to this permission. +# +# If you have a "write" program which is "setgid" to a special group +# which owns the terminals, define TTYGROUP to the group number and +# TTYPERM to 0620. Otherwise leave TTYGROUP commented out and assign +# TTYPERM to either 622 or 600. +# +# In Debian /usr/bin/bsd-write or similar programs are setgid tty +# However, the default and recommended value for TTYPERM is still 0600 +# to not allow anyone to write to anyone else console or terminal + +# Users can still allow other people to write them by issuing +# the "mesg y" command. + +TTYGROUP tty +TTYPERM 0600 + +# +# Login configuration initializations: +# +# ERASECHAR Terminal ERASE character ('\010' = backspace). +# KILLCHAR Terminal KILL character ('\025' = CTRL/U). +# UMASK Default "umask" value. +# +# The ERASECHAR and KILLCHAR are used only on System V machines. +# +# UMASK is the default umask value for pam_umask and is used by +# useradd and newusers to set the mode of the new home directories. +# 022 is the "historical" value in Debian for UMASK +# 027, or even 077, could be considered better for privacy +# There is no One True Answer here : each sysadmin must make up their +# mind. +# +# Prefix these values with "0" to get octal, "0x" to get hexadecimal. +# +ERASECHAR 0177 +KILLCHAR 025 +UMASK 022 + +# +# Password aging controls: +# +# PASS_MAX_DAYS Maximum number of days a password may be used. +# PASS_MIN_DAYS Minimum number of days allowed between password changes. +# PASS_WARN_AGE Number of days warning given before a password expires. +# +PASS_MAX_DAYS 99999 +PASS_MIN_DAYS 0 +PASS_WARN_AGE 7 + +# +# Min/max values for automatic uid selection in useradd +# +UID_MIN 1000 +UID_MAX 60000 +# System accounts +#SYS_UID_MIN 100 +#SYS_UID_MAX 999 + +# +# Min/max values for automatic gid selection in groupadd +# +GID_MIN 1000 +GID_MAX 60000 +# System accounts +#SYS_GID_MIN 100 +#SYS_GID_MAX 999 + +# +# Max number of login retries if password is bad. This will most likely be +# overridden by PAM, since the default pam_unix module has it's own built +# in of 3 retries. However, this is a safe fallback in case you are using +# an authentication module that does not enforce PAM_MAXTRIES. +# +LOGIN_RETRIES 5 + +# +# Max time in seconds for login +# +LOGIN_TIMEOUT 60 + +# +# Which fields may be changed by regular users using chfn - use +# any combination of letters "frwh" (full name, room number, work +# phone, home phone). If not defined, no changes are allowed. +# For backward compatibility, "yes" = "rwh" and "no" = "frwh". +# +CHFN_RESTRICT rwh + +# +# Should login be allowed if we can't cd to the home directory? +# Default is no. +# +DEFAULT_HOME yes + +# +# If defined, this command is run when removing a user. +# It should remove any at/cron/print jobs etc. owned by +# the user to be removed (passed as the first argument). +# +#USERDEL_CMD /usr/sbin/userdel_local + +# +# If set to yes, userdel will remove the user's group if it contains no +# more members, and useradd will create by default a group with the name +# of the user. +# +# Other former uses of this variable such as setting the umask when +# user==primary group are not used in PAM environments, such as Debian +# +USERGROUPS_ENAB yes + +# +# Instead of the real user shell, the program specified by this parameter +# will be launched, although its visible name (argv[0]) will be the shell's. +# The program may do whatever it wants (logging, additional authentification, +# banner, ...) before running the actual shell. +# +# FAKE_SHELL /bin/fakeshell + +# +# If defined, either full pathname of a file containing device names or +# a ":" delimited list of device names. Root logins will be allowed only +# upon these devices. +# +# This variable is used by login and su. +# +#CONSOLE /etc/consoles +#CONSOLE console:tty01:tty02:tty03:tty04 + +# +# List of groups to add to the user's supplementary group set +# when logging in on the console (as determined by the CONSOLE +# setting). Default is none. +# +# Use with caution - it is possible for users to gain permanent +# access to these groups, even when not logged in on the console. +# How to do it is left as an exercise for the reader... +# +# This variable is used by login and su. +# +#CONSOLE_GROUPS floppy:audio:cdrom + +# +# If set to "yes", new passwords will be encrypted using the MD5-based +# algorithm compatible with the one used by recent releases of FreeBSD. +# It supports passwords of unlimited length and longer salt strings. +# Set to "no" if you need to copy encrypted passwords to other systems +# which don't understand the new algorithm. Default is "no". +# +# This variable is deprecated. You should use ENCRYPT_METHOD. +# +#MD5_CRYPT_ENAB no + +# +# If set to MD5 , MD5-based algorithm will be used for encrypting password +# If set to SHA256, SHA256-based algorithm will be used for encrypting password +# If set to SHA512, SHA512-based algorithm will be used for encrypting password +# If set to DES, DES-based algorithm will be used for encrypting password (default) +# Overrides the MD5_CRYPT_ENAB option +# +# Note: It is recommended to use a value consistent with +# the PAM modules configuration. +# +#ENCRYPT_METHOD DES + +# +# Only used if ENCRYPT_METHOD is set to SHA256 or SHA512. +# +# Define the number of SHA rounds. +# With a lot of rounds, it is more difficult to brute forcing the password. +# But note also that it more CPU resources will be needed to authenticate +# users. +# +# If not specified, the libc will choose the default number of rounds (5000). +# The values must be inside the 1000-999999999 range. +# If only one of the MIN or MAX values is set, then this value will be used. +# If MIN > MAX, the highest value will be used. +# +# SHA_CRYPT_MIN_ROUNDS 5000 +# SHA_CRYPT_MAX_ROUNDS 5000 + +################# OBSOLETED BY PAM ############## +# # +# These options are now handled by PAM. Please # +# edit the appropriate file in /etc/pam.d/ to # +# enable the equivalents of them. +# +############### + +#MOTD_FILE +#DIALUPS_CHECK_ENAB +#LASTLOG_ENAB +#MAIL_CHECK_ENAB +#OBSCURE_CHECKS_ENAB +#PORTTIME_CHECKS_ENAB +#SU_WHEEL_ONLY +#PASS_CHANGE_TRIES +#PASS_ALWAYS_WARN +#ENVIRON_FILE +#NOLOGINS_FILE +#ISSUE_FILE +#PASS_MIN_LEN +#PASS_MAX_LEN +#ULIMIT +#ENV_HZ +#CHFN_AUTH +#CHSH_AUTH +#FAIL_DELAY + +################# OBSOLETED ####################### +# # +# These options are no more handled by shadow. # +# # +# Shadow utilities will display a warning if they # +# still appear. # +# # +################################################### + +# CLOSE_SESSIONS +# LOGIN_STRING +# NO_PASSWORD_CONSOLE +# QMAIL_DIR + + + diff --git a/tests/tests/chroot/useradd/01_useradd--root/config_chroot/etc/passwd b/tests/tests/chroot/useradd/01_useradd--root/config_chroot/etc/passwd new file mode 100644 index 00000000..9bdeb8ce --- /dev/null +++ b/tests/tests/chroot/useradd/01_useradd--root/config_chroot/etc/passwd @@ -0,0 +1,21 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser:x:424242:424242::/home/:/bin/sh +testsuite::424243:424243::/home:/bin/bash diff --git a/tests/tests/chroot/useradd/01_useradd--root/config_chroot/etc/shadow b/tests/tests/chroot/useradd/01_useradd--root/config_chroot/etc/shadow new file mode 100644 index 00000000..038d5cf4 --- /dev/null +++ b/tests/tests/chroot/useradd/01_useradd--root/config_chroot/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: diff --git a/tests/tests/chroot/useradd/01_useradd--root/data/group b/tests/tests/chroot/useradd/01_useradd--root/data/group new file mode 100644 index 00000000..ffc452fd --- /dev/null +++ b/tests/tests/chroot/useradd/01_useradd--root/data/group @@ -0,0 +1,43 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: +foo:x:1000: diff --git a/tests/tests/chroot/useradd/01_useradd--root/data/gshadow b/tests/tests/chroot/useradd/01_useradd--root/data/gshadow new file mode 100644 index 00000000..e4b350df --- /dev/null +++ b/tests/tests/chroot/useradd/01_useradd--root/data/gshadow @@ -0,0 +1,43 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: +foo:!:: diff --git a/tests/tests/chroot/useradd/01_useradd--root/data/passwd b/tests/tests/chroot/useradd/01_useradd--root/data/passwd new file mode 100644 index 00000000..102186a6 --- /dev/null +++ b/tests/tests/chroot/useradd/01_useradd--root/data/passwd @@ -0,0 +1,22 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser:x:424242:424242::/home/:/bin/sh +testsuite::424243:424243::/home:/bin/bash +foo:x:1000:1000::/home/foo: diff --git a/tests/tests/chroot/useradd/01_useradd--root/data/shadow b/tests/tests/chroot/useradd/01_useradd--root/data/shadow new file mode 100644 index 00000000..258cf2b9 --- /dev/null +++ b/tests/tests/chroot/useradd/01_useradd--root/data/shadow @@ -0,0 +1,21 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: +foo:!:@TODAY@:0:99999:7::: diff --git a/tests/tests/chroot/useradd/01_useradd--root/useradd.test b/tests/tests/chroot/useradd/01_useradd--root/useradd.test new file mode 100755 index 00000000..aa9dd35a --- /dev/null +++ b/tests/tests/chroot/useradd/01_useradd--root/useradd.test @@ -0,0 +1,52 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "useradd can add an user in a chroot" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; clean_chroot; restore_config' 0 + +change_config + +prepare_chroot + +echo -n "Add user foo in chroot (useradd --root $PWD/tmp/root foo)..." +useradd --root $PWD/tmp/root foo +echo "OK" + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +../../../common/compare_file.pl data/passwd tmp/root/etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +../../../common/compare_file.pl data/group tmp/root/etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +../../../common/compare_file.pl data/shadow tmp/root/etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +../../../common/compare_file.pl data/gshadow tmp/root/etc/gshadow +echo "OK" + +rm -f tmp/root/etc/.pwd.lock +rm -f tmp/root/etc/passwd- +rm -f tmp/root/etc/group- +rm -f tmp/root/etc/shadow- +rm -f tmp/root/etc/gshadow- +clean_chroot + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chroot/useradd/02_useradd--root_login.defs/config.txt b/tests/tests/chroot/useradd/02_useradd--root_login.defs/config.txt new file mode 100644 index 00000000..31f56359 --- /dev/null +++ b/tests/tests/chroot/useradd/02_useradd--root_login.defs/config.txt @@ -0,0 +1,10 @@ +# no testsuite password +# root password: rootF00barbaz +# myuser password: myuserF00barbaz + +user foo, in group users (only in /etc/group) +user foo, in group tty (only in /etc/gshadow) +user foo, in group floppy +user foo, admin of group disk +user foo, admin and member of group fax +user foo, admin and member of group cdrom (only in /etc/gshadow) diff --git a/tests/tests/chroot/useradd/02_useradd--root_login.defs/config/etc/default/useradd b/tests/tests/chroot/useradd/02_useradd--root_login.defs/config/etc/default/useradd new file mode 100644 index 00000000..31c44abe --- /dev/null +++ b/tests/tests/chroot/useradd/02_useradd--root_login.defs/config/etc/default/useradd @@ -0,0 +1,36 @@ +# Default values for useradd(8) +# +# The SHELL variable specifies the default login shell on your +# system. +# Similar to DHSELL in adduser. However, we use "sh" here because +# useradd is a low level utility and should be as general +# as possible +SHELL=/bin/foobar +# +# The default group for users +# 100=users on Debian systems +# Same as USERS_GID in adduser +# This argument is used when the -n flag is specified. +# The default behavior (when -n and -g are not specified) is to create a +# primary user group with the same name as the user being added to the +# system. +GROUP=10 +# +# The default home directory. Same as DHOME for adduser +HOME=/tmp +# +# The number of days after a password expires until the account +# is permanently disabled +INACTIVE=12 +# +# The default expire date +EXPIRE=2007-12-02 +# +# The SKEL variable specifies the directory containing "skeletal" user +# files; in other words, files such as a sample .profile that will be +# copied to the new user's home directory when it is created. +# SKEL=/etc/skel +# +# Defines whether the mail spool should be created while +# creating the account +# CREATE_MAIL_SPOOL=yes diff --git a/tests/tests/chroot/useradd/02_useradd--root_login.defs/config/etc/group b/tests/tests/chroot/useradd/02_useradd--root_login.defs/config/etc/group new file mode 100644 index 00000000..10123908 --- /dev/null +++ b/tests/tests/chroot/useradd/02_useradd--root_login.defs/config/etc/group @@ -0,0 +1,41 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: diff --git a/tests/tests/chroot/useradd/02_useradd--root_login.defs/config/etc/gshadow b/tests/tests/chroot/useradd/02_useradd--root_login.defs/config/etc/gshadow new file mode 100644 index 00000000..ae424865 --- /dev/null +++ b/tests/tests/chroot/useradd/02_useradd--root_login.defs/config/etc/gshadow @@ -0,0 +1,41 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: diff --git a/tests/tests/chroot/useradd/02_useradd--root_login.defs/config/etc/passwd b/tests/tests/chroot/useradd/02_useradd--root_login.defs/config/etc/passwd new file mode 100644 index 00000000..43fc135a --- /dev/null +++ b/tests/tests/chroot/useradd/02_useradd--root_login.defs/config/etc/passwd @@ -0,0 +1,19 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false diff --git a/tests/tests/chroot/useradd/02_useradd--root_login.defs/config/etc/shadow b/tests/tests/chroot/useradd/02_useradd--root_login.defs/config/etc/shadow new file mode 100644 index 00000000..5f50d187 --- /dev/null +++ b/tests/tests/chroot/useradd/02_useradd--root_login.defs/config/etc/shadow @@ -0,0 +1,19 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: diff --git a/tests/tests/chroot/useradd/02_useradd--root_login.defs/config_chroot/etc/group b/tests/tests/chroot/useradd/02_useradd--root_login.defs/config_chroot/etc/group new file mode 100644 index 00000000..245cc9cf --- /dev/null +++ b/tests/tests/chroot/useradd/02_useradd--root_login.defs/config_chroot/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: diff --git a/tests/tests/chroot/useradd/02_useradd--root_login.defs/config_chroot/etc/gshadow b/tests/tests/chroot/useradd/02_useradd--root_login.defs/config_chroot/etc/gshadow new file mode 100644 index 00000000..25bd55bd --- /dev/null +++ b/tests/tests/chroot/useradd/02_useradd--root_login.defs/config_chroot/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: diff --git a/tests/tests/chroot/useradd/02_useradd--root_login.defs/config_chroot/etc/login.defs b/tests/tests/chroot/useradd/02_useradd--root_login.defs/config_chroot/etc/login.defs new file mode 100644 index 00000000..825aae38 --- /dev/null +++ b/tests/tests/chroot/useradd/02_useradd--root_login.defs/config_chroot/etc/login.defs @@ -0,0 +1,334 @@ +# +# /etc/login.defs - Configuration control definitions for the login package. +# +# Three items must be defined: MAIL_DIR, ENV_SUPATH, and ENV_PATH. +# If unspecified, some arbitrary (and possibly incorrect) value will +# be assumed. All other items are optional - if not specified then +# the described action or option will be inhibited. +# +# Comment lines (lines beginning with "#") and blank lines are ignored. +# +# Modified for Linux. --marekm + +# REQUIRED for useradd/userdel/usermod +# Directory where mailboxes reside, _or_ name of file, relative to the +# home directory. If you _do_ define MAIL_DIR and MAIL_FILE, +# MAIL_DIR takes precedence. +# +# Essentially: +# - MAIL_DIR defines the location of users mail spool files +# (for mbox use) by appending the username to MAIL_DIR as defined +# below. +# - MAIL_FILE defines the location of the users mail spool files as the +# fully-qualified filename obtained by prepending the user home +# directory before $MAIL_FILE +# +# NOTE: This is no more used for setting up users MAIL environment variable +# which is, starting from shadow 4.0.12-1 in Debian, entirely the +# job of the pam_mail PAM modules +# See default PAM configuration files provided for +# login, su, etc. +# +# This is a temporary situation: setting these variables will soon +# move to /etc/default/useradd and the variables will then be +# no more supported +MAIL_DIR /var/mail +#MAIL_FILE .mail + +# +# Enable logging and display of /var/log/faillog login failure info. +# This option conflicts with the pam_tally PAM module. +# +FAILLOG_ENAB yes + +# +# Enable display of unknown usernames when login failures are recorded. +# +# WARNING: Unknown usernames may become world readable. +# See #290803 and #298773 for details about how this could become a security +# concern +LOG_UNKFAIL_ENAB no + +# +# Enable logging of successful logins +# +LOG_OK_LOGINS no + +# +# Enable "syslog" logging of su activity - in addition to sulog file logging. +# SYSLOG_SG_ENAB does the same for newgrp and sg. +# +SYSLOG_SU_ENAB yes +SYSLOG_SG_ENAB yes + +# +# If defined, all su activity is logged to this file. +# +#SULOG_FILE /var/log/sulog + +# +# If defined, file which maps tty line to TERM environment parameter. +# Each line of the file is in a format something like "vt100 tty01". +# +#TTYTYPE_FILE /etc/ttytype + +# +# If defined, login failures will be logged here in a utmp format +# last, when invoked as lastb, will read /var/log/btmp, so... +# +FTMP_FILE /var/log/btmp + +# +# If defined, the command name to display when running "su -". For +# example, if this is defined as "su" then a "ps" will display the +# command is "-su". If not defined, then "ps" would display the +# name of the shell actually being run, e.g. something like "-sh". +# +SU_NAME su + +# +# If defined, file which inhibits all the usual chatter during the login +# sequence. If a full pathname, then hushed mode will be enabled if the +# user's name or shell are found in the file. If not a full pathname, then +# hushed mode will be enabled if the file exists in the user's home directory. +# +HUSHLOGIN_FILE .hushlogin +#HUSHLOGIN_FILE /etc/hushlogins + +# +# *REQUIRED* The default PATH settings, for superuser and normal users. +# +# (they are minimal, add the rest in the shell startup files) +ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games + +# +# Terminal permissions +# +# TTYGROUP Login tty will be assigned this group ownership. +# TTYPERM Login tty will be set to this permission. +# +# If you have a "write" program which is "setgid" to a special group +# which owns the terminals, define TTYGROUP to the group number and +# TTYPERM to 0620. Otherwise leave TTYGROUP commented out and assign +# TTYPERM to either 622 or 600. +# +# In Debian /usr/bin/bsd-write or similar programs are setgid tty +# However, the default and recommended value for TTYPERM is still 0600 +# to not allow anyone to write to anyone else console or terminal + +# Users can still allow other people to write them by issuing +# the "mesg y" command. + +TTYGROUP tty +TTYPERM 0600 + +# +# Login configuration initializations: +# +# ERASECHAR Terminal ERASE character ('\010' = backspace). +# KILLCHAR Terminal KILL character ('\025' = CTRL/U). +# UMASK Default "umask" value. +# +# The ERASECHAR and KILLCHAR are used only on System V machines. +# +# UMASK is the default umask value for pam_umask and is used by +# useradd and newusers to set the mode of the new home directories. +# 022 is the "historical" value in Debian for UMASK +# 027, or even 077, could be considered better for privacy +# There is no One True Answer here : each sysadmin must make up their +# mind. +# +# Prefix these values with "0" to get octal, "0x" to get hexadecimal. +# +ERASECHAR 0177 +KILLCHAR 025 +UMASK 022 + +# +# Password aging controls: +# +# PASS_MAX_DAYS Maximum number of days a password may be used. +# PASS_MIN_DAYS Minimum number of days allowed between password changes. +# PASS_WARN_AGE Number of days warning given before a password expires. +# +PASS_MAX_DAYS 99999 +PASS_MIN_DAYS 0 +PASS_WARN_AGE 7 + +# +# Min/max values for automatic uid selection in useradd +# +UID_MIN 2000 +UID_MAX 60000 +# System accounts +#SYS_UID_MIN 100 +#SYS_UID_MAX 999 + +# +# Min/max values for automatic gid selection in groupadd +# +GID_MIN 1500 +GID_MAX 60000 +# System accounts +#SYS_GID_MIN 100 +#SYS_GID_MAX 999 + +# +# Max number of login retries if password is bad. This will most likely be +# overridden by PAM, since the default pam_unix module has it's own built +# in of 3 retries. However, this is a safe fallback in case you are using +# an authentication module that does not enforce PAM_MAXTRIES. +# +LOGIN_RETRIES 5 + +# +# Max time in seconds for login +# +LOGIN_TIMEOUT 60 + +# +# Which fields may be changed by regular users using chfn - use +# any combination of letters "frwh" (full name, room number, work +# phone, home phone). If not defined, no changes are allowed. +# For backward compatibility, "yes" = "rwh" and "no" = "frwh". +# +CHFN_RESTRICT rwh + +# +# Should login be allowed if we can't cd to the home directory? +# Default is no. +# +DEFAULT_HOME yes + +# +# If defined, this command is run when removing a user. +# It should remove any at/cron/print jobs etc. owned by +# the user to be removed (passed as the first argument). +# +#USERDEL_CMD /usr/sbin/userdel_local + +# +# If set to yes, userdel will remove the user's group if it contains no +# more members, and useradd will create by default a group with the name +# of the user. +# +# Other former uses of this variable such as setting the umask when +# user==primary group are not used in PAM environments, such as Debian +# +USERGROUPS_ENAB yes + +# +# Instead of the real user shell, the program specified by this parameter +# will be launched, although its visible name (argv[0]) will be the shell's. +# The program may do whatever it wants (logging, additional authentification, +# banner, ...) before running the actual shell. +# +# FAKE_SHELL /bin/fakeshell + +# +# If defined, either full pathname of a file containing device names or +# a ":" delimited list of device names. Root logins will be allowed only +# upon these devices. +# +# This variable is used by login and su. +# +#CONSOLE /etc/consoles +#CONSOLE console:tty01:tty02:tty03:tty04 + +# +# List of groups to add to the user's supplementary group set +# when logging in on the console (as determined by the CONSOLE +# setting). Default is none. +# +# Use with caution - it is possible for users to gain permanent +# access to these groups, even when not logged in on the console. +# How to do it is left as an exercise for the reader... +# +# This variable is used by login and su. +# +#CONSOLE_GROUPS floppy:audio:cdrom + +# +# If set to "yes", new passwords will be encrypted using the MD5-based +# algorithm compatible with the one used by recent releases of FreeBSD. +# It supports passwords of unlimited length and longer salt strings. +# Set to "no" if you need to copy encrypted passwords to other systems +# which don't understand the new algorithm. Default is "no". +# +# This variable is deprecated. You should use ENCRYPT_METHOD. +# +#MD5_CRYPT_ENAB no + +# +# If set to MD5 , MD5-based algorithm will be used for encrypting password +# If set to SHA256, SHA256-based algorithm will be used for encrypting password +# If set to SHA512, SHA512-based algorithm will be used for encrypting password +# If set to DES, DES-based algorithm will be used for encrypting password (default) +# Overrides the MD5_CRYPT_ENAB option +# +# Note: It is recommended to use a value consistent with +# the PAM modules configuration. +# +#ENCRYPT_METHOD DES + +# +# Only used if ENCRYPT_METHOD is set to SHA256 or SHA512. +# +# Define the number of SHA rounds. +# With a lot of rounds, it is more difficult to brute forcing the password. +# But note also that it more CPU resources will be needed to authenticate +# users. +# +# If not specified, the libc will choose the default number of rounds (5000). +# The values must be inside the 1000-999999999 range. +# If only one of the MIN or MAX values is set, then this value will be used. +# If MIN > MAX, the highest value will be used. +# +# SHA_CRYPT_MIN_ROUNDS 5000 +# SHA_CRYPT_MAX_ROUNDS 5000 + +################# OBSOLETED BY PAM ############## +# # +# These options are now handled by PAM. Please # +# edit the appropriate file in /etc/pam.d/ to # +# enable the equivalents of them. +# +############### + +#MOTD_FILE +#DIALUPS_CHECK_ENAB +#LASTLOG_ENAB +#MAIL_CHECK_ENAB +#OBSCURE_CHECKS_ENAB +#PORTTIME_CHECKS_ENAB +#SU_WHEEL_ONLY +#PASS_CHANGE_TRIES +#PASS_ALWAYS_WARN +#ENVIRON_FILE +#NOLOGINS_FILE +#ISSUE_FILE +#PASS_MIN_LEN +#PASS_MAX_LEN +#ULIMIT +#ENV_HZ +#CHFN_AUTH +#CHSH_AUTH +#FAIL_DELAY + +################# OBSOLETED ####################### +# # +# These options are no more handled by shadow. # +# # +# Shadow utilities will display a warning if they # +# still appear. # +# # +################################################### + +# CLOSE_SESSIONS +# LOGIN_STRING +# NO_PASSWORD_CONSOLE +# QMAIL_DIR + + + diff --git a/tests/tests/chroot/useradd/02_useradd--root_login.defs/config_chroot/etc/passwd b/tests/tests/chroot/useradd/02_useradd--root_login.defs/config_chroot/etc/passwd new file mode 100644 index 00000000..9bdeb8ce --- /dev/null +++ b/tests/tests/chroot/useradd/02_useradd--root_login.defs/config_chroot/etc/passwd @@ -0,0 +1,21 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser:x:424242:424242::/home/:/bin/sh +testsuite::424243:424243::/home:/bin/bash diff --git a/tests/tests/chroot/useradd/02_useradd--root_login.defs/config_chroot/etc/shadow b/tests/tests/chroot/useradd/02_useradd--root_login.defs/config_chroot/etc/shadow new file mode 100644 index 00000000..038d5cf4 --- /dev/null +++ b/tests/tests/chroot/useradd/02_useradd--root_login.defs/config_chroot/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: diff --git a/tests/tests/chroot/useradd/02_useradd--root_login.defs/data/group b/tests/tests/chroot/useradd/02_useradd--root_login.defs/data/group new file mode 100644 index 00000000..eb04ceda --- /dev/null +++ b/tests/tests/chroot/useradd/02_useradd--root_login.defs/data/group @@ -0,0 +1,43 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: +foo:x:2000: diff --git a/tests/tests/chroot/useradd/02_useradd--root_login.defs/data/gshadow b/tests/tests/chroot/useradd/02_useradd--root_login.defs/data/gshadow new file mode 100644 index 00000000..e4b350df --- /dev/null +++ b/tests/tests/chroot/useradd/02_useradd--root_login.defs/data/gshadow @@ -0,0 +1,43 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: +foo:!:: diff --git a/tests/tests/chroot/useradd/02_useradd--root_login.defs/data/passwd b/tests/tests/chroot/useradd/02_useradd--root_login.defs/data/passwd new file mode 100644 index 00000000..25d10d6a --- /dev/null +++ b/tests/tests/chroot/useradd/02_useradd--root_login.defs/data/passwd @@ -0,0 +1,22 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser:x:424242:424242::/home/:/bin/sh +testsuite::424243:424243::/home:/bin/bash +foo:x:2000:2000::/home/foo: diff --git a/tests/tests/chroot/useradd/02_useradd--root_login.defs/data/shadow b/tests/tests/chroot/useradd/02_useradd--root_login.defs/data/shadow new file mode 100644 index 00000000..258cf2b9 --- /dev/null +++ b/tests/tests/chroot/useradd/02_useradd--root_login.defs/data/shadow @@ -0,0 +1,21 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: +foo:!:@TODAY@:0:99999:7::: diff --git a/tests/tests/chroot/useradd/02_useradd--root_login.defs/useradd.test b/tests/tests/chroot/useradd/02_useradd--root_login.defs/useradd.test new file mode 100755 index 00000000..aa9dd35a --- /dev/null +++ b/tests/tests/chroot/useradd/02_useradd--root_login.defs/useradd.test @@ -0,0 +1,52 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "useradd can add an user in a chroot" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; clean_chroot; restore_config' 0 + +change_config + +prepare_chroot + +echo -n "Add user foo in chroot (useradd --root $PWD/tmp/root foo)..." +useradd --root $PWD/tmp/root foo +echo "OK" + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +../../../common/compare_file.pl data/passwd tmp/root/etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +../../../common/compare_file.pl data/group tmp/root/etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +../../../common/compare_file.pl data/shadow tmp/root/etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +../../../common/compare_file.pl data/gshadow tmp/root/etc/gshadow +echo "OK" + +rm -f tmp/root/etc/.pwd.lock +rm -f tmp/root/etc/passwd- +rm -f tmp/root/etc/group- +rm -f tmp/root/etc/shadow- +rm -f tmp/root/etc/gshadow- +clean_chroot + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chroot/useradd/03_useradd--root_useradd.default/config.txt b/tests/tests/chroot/useradd/03_useradd--root_useradd.default/config.txt new file mode 100644 index 00000000..31f56359 --- /dev/null +++ b/tests/tests/chroot/useradd/03_useradd--root_useradd.default/config.txt @@ -0,0 +1,10 @@ +# no testsuite password +# root password: rootF00barbaz +# myuser password: myuserF00barbaz + +user foo, in group users (only in /etc/group) +user foo, in group tty (only in /etc/gshadow) +user foo, in group floppy +user foo, admin of group disk +user foo, admin and member of group fax +user foo, admin and member of group cdrom (only in /etc/gshadow) diff --git a/tests/tests/chroot/useradd/03_useradd--root_useradd.default/config/etc/default/useradd b/tests/tests/chroot/useradd/03_useradd--root_useradd.default/config/etc/default/useradd new file mode 100644 index 00000000..31c44abe --- /dev/null +++ b/tests/tests/chroot/useradd/03_useradd--root_useradd.default/config/etc/default/useradd @@ -0,0 +1,36 @@ +# Default values for useradd(8) +# +# The SHELL variable specifies the default login shell on your +# system. +# Similar to DHSELL in adduser. However, we use "sh" here because +# useradd is a low level utility and should be as general +# as possible +SHELL=/bin/foobar +# +# The default group for users +# 100=users on Debian systems +# Same as USERS_GID in adduser +# This argument is used when the -n flag is specified. +# The default behavior (when -n and -g are not specified) is to create a +# primary user group with the same name as the user being added to the +# system. +GROUP=10 +# +# The default home directory. Same as DHOME for adduser +HOME=/tmp +# +# The number of days after a password expires until the account +# is permanently disabled +INACTIVE=12 +# +# The default expire date +EXPIRE=2007-12-02 +# +# The SKEL variable specifies the directory containing "skeletal" user +# files; in other words, files such as a sample .profile that will be +# copied to the new user's home directory when it is created. +# SKEL=/etc/skel +# +# Defines whether the mail spool should be created while +# creating the account +# CREATE_MAIL_SPOOL=yes diff --git a/tests/tests/chroot/useradd/03_useradd--root_useradd.default/config/etc/group b/tests/tests/chroot/useradd/03_useradd--root_useradd.default/config/etc/group new file mode 100644 index 00000000..10123908 --- /dev/null +++ b/tests/tests/chroot/useradd/03_useradd--root_useradd.default/config/etc/group @@ -0,0 +1,41 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: diff --git a/tests/tests/chroot/useradd/03_useradd--root_useradd.default/config/etc/gshadow b/tests/tests/chroot/useradd/03_useradd--root_useradd.default/config/etc/gshadow new file mode 100644 index 00000000..ae424865 --- /dev/null +++ b/tests/tests/chroot/useradd/03_useradd--root_useradd.default/config/etc/gshadow @@ -0,0 +1,41 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: diff --git a/tests/tests/chroot/useradd/03_useradd--root_useradd.default/config/etc/passwd b/tests/tests/chroot/useradd/03_useradd--root_useradd.default/config/etc/passwd new file mode 100644 index 00000000..43fc135a --- /dev/null +++ b/tests/tests/chroot/useradd/03_useradd--root_useradd.default/config/etc/passwd @@ -0,0 +1,19 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false diff --git a/tests/tests/chroot/useradd/03_useradd--root_useradd.default/config/etc/shadow b/tests/tests/chroot/useradd/03_useradd--root_useradd.default/config/etc/shadow new file mode 100644 index 00000000..5f50d187 --- /dev/null +++ b/tests/tests/chroot/useradd/03_useradd--root_useradd.default/config/etc/shadow @@ -0,0 +1,19 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: diff --git a/tests/tests/chroot/useradd/03_useradd--root_useradd.default/config_chroot/etc/default/useradd b/tests/tests/chroot/useradd/03_useradd--root_useradd.default/config_chroot/etc/default/useradd new file mode 100644 index 00000000..5051e1d9 --- /dev/null +++ b/tests/tests/chroot/useradd/03_useradd--root_useradd.default/config_chroot/etc/default/useradd @@ -0,0 +1,36 @@ +# Default values for useradd(8) +# +# The SHELL variable specifies the default login shell on your +# system. +# Similar to DHSELL in adduser. However, we use "sh" here because +# useradd is a low level utility and should be as general +# as possible +SHELL=/bin/sh +# +# The default group for users +# 100=users on Debian systems +# Same as USERS_GID in adduser +# This argument is used when the -n flag is specified. +# The default behavior (when -n and -g are not specified) is to create a +# primary user group with the same name as the user being added to the +# system. +GROUP=10 +# +# The default home directory. Same as DHOME for adduser +HOME=/tmp +# +# The number of days after a password expires until the account +# is permanently disabled +INACTIVE=12 +# +# The default expire date +EXPIRE=2007-12-02 +# +# The SKEL variable specifies the directory containing "skeletal" user +# files; in other words, files such as a sample .profile that will be +# copied to the new user's home directory when it is created. +# SKEL=/etc/skel +# +# Defines whether the mail spool should be created while +# creating the account +# CREATE_MAIL_SPOOL=yes diff --git a/tests/tests/chroot/useradd/03_useradd--root_useradd.default/config_chroot/etc/group b/tests/tests/chroot/useradd/03_useradd--root_useradd.default/config_chroot/etc/group new file mode 100644 index 00000000..245cc9cf --- /dev/null +++ b/tests/tests/chroot/useradd/03_useradd--root_useradd.default/config_chroot/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: diff --git a/tests/tests/chroot/useradd/03_useradd--root_useradd.default/config_chroot/etc/gshadow b/tests/tests/chroot/useradd/03_useradd--root_useradd.default/config_chroot/etc/gshadow new file mode 100644 index 00000000..25bd55bd --- /dev/null +++ b/tests/tests/chroot/useradd/03_useradd--root_useradd.default/config_chroot/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: diff --git a/tests/tests/chroot/useradd/03_useradd--root_useradd.default/config_chroot/etc/login.defs b/tests/tests/chroot/useradd/03_useradd--root_useradd.default/config_chroot/etc/login.defs new file mode 100644 index 00000000..3b216aa1 --- /dev/null +++ b/tests/tests/chroot/useradd/03_useradd--root_useradd.default/config_chroot/etc/login.defs @@ -0,0 +1,334 @@ +# +# /etc/login.defs - Configuration control definitions for the login package. +# +# Three items must be defined: MAIL_DIR, ENV_SUPATH, and ENV_PATH. +# If unspecified, some arbitrary (and possibly incorrect) value will +# be assumed. All other items are optional - if not specified then +# the described action or option will be inhibited. +# +# Comment lines (lines beginning with "#") and blank lines are ignored. +# +# Modified for Linux. --marekm + +# REQUIRED for useradd/userdel/usermod +# Directory where mailboxes reside, _or_ name of file, relative to the +# home directory. If you _do_ define MAIL_DIR and MAIL_FILE, +# MAIL_DIR takes precedence. +# +# Essentially: +# - MAIL_DIR defines the location of users mail spool files +# (for mbox use) by appending the username to MAIL_DIR as defined +# below. +# - MAIL_FILE defines the location of the users mail spool files as the +# fully-qualified filename obtained by prepending the user home +# directory before $MAIL_FILE +# +# NOTE: This is no more used for setting up users MAIL environment variable +# which is, starting from shadow 4.0.12-1 in Debian, entirely the +# job of the pam_mail PAM modules +# See default PAM configuration files provided for +# login, su, etc. +# +# This is a temporary situation: setting these variables will soon +# move to /etc/default/useradd and the variables will then be +# no more supported +MAIL_DIR /var/mail +#MAIL_FILE .mail + +# +# Enable logging and display of /var/log/faillog login failure info. +# This option conflicts with the pam_tally PAM module. +# +FAILLOG_ENAB yes + +# +# Enable display of unknown usernames when login failures are recorded. +# +# WARNING: Unknown usernames may become world readable. +# See #290803 and #298773 for details about how this could become a security +# concern +LOG_UNKFAIL_ENAB no + +# +# Enable logging of successful logins +# +LOG_OK_LOGINS no + +# +# Enable "syslog" logging of su activity - in addition to sulog file logging. +# SYSLOG_SG_ENAB does the same for newgrp and sg. +# +SYSLOG_SU_ENAB yes +SYSLOG_SG_ENAB yes + +# +# If defined, all su activity is logged to this file. +# +#SULOG_FILE /var/log/sulog + +# +# If defined, file which maps tty line to TERM environment parameter. +# Each line of the file is in a format something like "vt100 tty01". +# +#TTYTYPE_FILE /etc/ttytype + +# +# If defined, login failures will be logged here in a utmp format +# last, when invoked as lastb, will read /var/log/btmp, so... +# +FTMP_FILE /var/log/btmp + +# +# If defined, the command name to display when running "su -". For +# example, if this is defined as "su" then a "ps" will display the +# command is "-su". If not defined, then "ps" would display the +# name of the shell actually being run, e.g. something like "-sh". +# +SU_NAME su + +# +# If defined, file which inhibits all the usual chatter during the login +# sequence. If a full pathname, then hushed mode will be enabled if the +# user's name or shell are found in the file. If not a full pathname, then +# hushed mode will be enabled if the file exists in the user's home directory. +# +HUSHLOGIN_FILE .hushlogin +#HUSHLOGIN_FILE /etc/hushlogins + +# +# *REQUIRED* The default PATH settings, for superuser and normal users. +# +# (they are minimal, add the rest in the shell startup files) +ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games + +# +# Terminal permissions +# +# TTYGROUP Login tty will be assigned this group ownership. +# TTYPERM Login tty will be set to this permission. +# +# If you have a "write" program which is "setgid" to a special group +# which owns the terminals, define TTYGROUP to the group number and +# TTYPERM to 0620. Otherwise leave TTYGROUP commented out and assign +# TTYPERM to either 622 or 600. +# +# In Debian /usr/bin/bsd-write or similar programs are setgid tty +# However, the default and recommended value for TTYPERM is still 0600 +# to not allow anyone to write to anyone else console or terminal + +# Users can still allow other people to write them by issuing +# the "mesg y" command. + +TTYGROUP tty +TTYPERM 0600 + +# +# Login configuration initializations: +# +# ERASECHAR Terminal ERASE character ('\010' = backspace). +# KILLCHAR Terminal KILL character ('\025' = CTRL/U). +# UMASK Default "umask" value. +# +# The ERASECHAR and KILLCHAR are used only on System V machines. +# +# UMASK is the default umask value for pam_umask and is used by +# useradd and newusers to set the mode of the new home directories. +# 022 is the "historical" value in Debian for UMASK +# 027, or even 077, could be considered better for privacy +# There is no One True Answer here : each sysadmin must make up their +# mind. +# +# Prefix these values with "0" to get octal, "0x" to get hexadecimal. +# +ERASECHAR 0177 +KILLCHAR 025 +UMASK 022 + +# +# Password aging controls: +# +# PASS_MAX_DAYS Maximum number of days a password may be used. +# PASS_MIN_DAYS Minimum number of days allowed between password changes. +# PASS_WARN_AGE Number of days warning given before a password expires. +# +PASS_MAX_DAYS 99999 +PASS_MIN_DAYS 0 +PASS_WARN_AGE 7 + +# +# Min/max values for automatic uid selection in useradd +# +UID_MIN 1000 +UID_MAX 60000 +# System accounts +#SYS_UID_MIN 100 +#SYS_UID_MAX 999 + +# +# Min/max values for automatic gid selection in groupadd +# +GID_MIN 1000 +GID_MAX 60000 +# System accounts +#SYS_GID_MIN 100 +#SYS_GID_MAX 999 + +# +# Max number of login retries if password is bad. This will most likely be +# overridden by PAM, since the default pam_unix module has it's own built +# in of 3 retries. However, this is a safe fallback in case you are using +# an authentication module that does not enforce PAM_MAXTRIES. +# +LOGIN_RETRIES 5 + +# +# Max time in seconds for login +# +LOGIN_TIMEOUT 60 + +# +# Which fields may be changed by regular users using chfn - use +# any combination of letters "frwh" (full name, room number, work +# phone, home phone). If not defined, no changes are allowed. +# For backward compatibility, "yes" = "rwh" and "no" = "frwh". +# +CHFN_RESTRICT rwh + +# +# Should login be allowed if we can't cd to the home directory? +# Default is no. +# +DEFAULT_HOME yes + +# +# If defined, this command is run when removing a user. +# It should remove any at/cron/print jobs etc. owned by +# the user to be removed (passed as the first argument). +# +#USERDEL_CMD /usr/sbin/userdel_local + +# +# If set to yes, userdel will remove the user's group if it contains no +# more members, and useradd will create by default a group with the name +# of the user. +# +# Other former uses of this variable such as setting the umask when +# user==primary group are not used in PAM environments, such as Debian +# +USERGROUPS_ENAB yes + +# +# Instead of the real user shell, the program specified by this parameter +# will be launched, although its visible name (argv[0]) will be the shell's. +# The program may do whatever it wants (logging, additional authentification, +# banner, ...) before running the actual shell. +# +# FAKE_SHELL /bin/fakeshell + +# +# If defined, either full pathname of a file containing device names or +# a ":" delimited list of device names. Root logins will be allowed only +# upon these devices. +# +# This variable is used by login and su. +# +#CONSOLE /etc/consoles +#CONSOLE console:tty01:tty02:tty03:tty04 + +# +# List of groups to add to the user's supplementary group set +# when logging in on the console (as determined by the CONSOLE +# setting). Default is none. +# +# Use with caution - it is possible for users to gain permanent +# access to these groups, even when not logged in on the console. +# How to do it is left as an exercise for the reader... +# +# This variable is used by login and su. +# +#CONSOLE_GROUPS floppy:audio:cdrom + +# +# If set to "yes", new passwords will be encrypted using the MD5-based +# algorithm compatible with the one used by recent releases of FreeBSD. +# It supports passwords of unlimited length and longer salt strings. +# Set to "no" if you need to copy encrypted passwords to other systems +# which don't understand the new algorithm. Default is "no". +# +# This variable is deprecated. You should use ENCRYPT_METHOD. +# +#MD5_CRYPT_ENAB no + +# +# If set to MD5 , MD5-based algorithm will be used for encrypting password +# If set to SHA256, SHA256-based algorithm will be used for encrypting password +# If set to SHA512, SHA512-based algorithm will be used for encrypting password +# If set to DES, DES-based algorithm will be used for encrypting password (default) +# Overrides the MD5_CRYPT_ENAB option +# +# Note: It is recommended to use a value consistent with +# the PAM modules configuration. +# +#ENCRYPT_METHOD DES + +# +# Only used if ENCRYPT_METHOD is set to SHA256 or SHA512. +# +# Define the number of SHA rounds. +# With a lot of rounds, it is more difficult to brute forcing the password. +# But note also that it more CPU resources will be needed to authenticate +# users. +# +# If not specified, the libc will choose the default number of rounds (5000). +# The values must be inside the 1000-999999999 range. +# If only one of the MIN or MAX values is set, then this value will be used. +# If MIN > MAX, the highest value will be used. +# +# SHA_CRYPT_MIN_ROUNDS 5000 +# SHA_CRYPT_MAX_ROUNDS 5000 + +################# OBSOLETED BY PAM ############## +# # +# These options are now handled by PAM. Please # +# edit the appropriate file in /etc/pam.d/ to # +# enable the equivalents of them. +# +############### + +#MOTD_FILE +#DIALUPS_CHECK_ENAB +#LASTLOG_ENAB +#MAIL_CHECK_ENAB +#OBSCURE_CHECKS_ENAB +#PORTTIME_CHECKS_ENAB +#SU_WHEEL_ONLY +#PASS_CHANGE_TRIES +#PASS_ALWAYS_WARN +#ENVIRON_FILE +#NOLOGINS_FILE +#ISSUE_FILE +#PASS_MIN_LEN +#PASS_MAX_LEN +#ULIMIT +#ENV_HZ +#CHFN_AUTH +#CHSH_AUTH +#FAIL_DELAY + +################# OBSOLETED ####################### +# # +# These options are no more handled by shadow. # +# # +# Shadow utilities will display a warning if they # +# still appear. # +# # +################################################### + +# CLOSE_SESSIONS +# LOGIN_STRING +# NO_PASSWORD_CONSOLE +# QMAIL_DIR + + + diff --git a/tests/tests/chroot/useradd/03_useradd--root_useradd.default/config_chroot/etc/passwd b/tests/tests/chroot/useradd/03_useradd--root_useradd.default/config_chroot/etc/passwd new file mode 100644 index 00000000..9bdeb8ce --- /dev/null +++ b/tests/tests/chroot/useradd/03_useradd--root_useradd.default/config_chroot/etc/passwd @@ -0,0 +1,21 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser:x:424242:424242::/home/:/bin/sh +testsuite::424243:424243::/home:/bin/bash diff --git a/tests/tests/chroot/useradd/03_useradd--root_useradd.default/config_chroot/etc/shadow b/tests/tests/chroot/useradd/03_useradd--root_useradd.default/config_chroot/etc/shadow new file mode 100644 index 00000000..038d5cf4 --- /dev/null +++ b/tests/tests/chroot/useradd/03_useradd--root_useradd.default/config_chroot/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: diff --git a/tests/tests/chroot/useradd/03_useradd--root_useradd.default/data/group b/tests/tests/chroot/useradd/03_useradd--root_useradd.default/data/group new file mode 100644 index 00000000..ffc452fd --- /dev/null +++ b/tests/tests/chroot/useradd/03_useradd--root_useradd.default/data/group @@ -0,0 +1,43 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: +foo:x:1000: diff --git a/tests/tests/chroot/useradd/03_useradd--root_useradd.default/data/gshadow b/tests/tests/chroot/useradd/03_useradd--root_useradd.default/data/gshadow new file mode 100644 index 00000000..e4b350df --- /dev/null +++ b/tests/tests/chroot/useradd/03_useradd--root_useradd.default/data/gshadow @@ -0,0 +1,43 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: +foo:!:: diff --git a/tests/tests/chroot/useradd/03_useradd--root_useradd.default/data/passwd b/tests/tests/chroot/useradd/03_useradd--root_useradd.default/data/passwd new file mode 100644 index 00000000..22fa7447 --- /dev/null +++ b/tests/tests/chroot/useradd/03_useradd--root_useradd.default/data/passwd @@ -0,0 +1,22 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser:x:424242:424242::/home/:/bin/sh +testsuite::424243:424243::/home:/bin/bash +foo:x:1000:1000::/tmp/foo:/bin/sh diff --git a/tests/tests/chroot/useradd/03_useradd--root_useradd.default/data/shadow b/tests/tests/chroot/useradd/03_useradd--root_useradd.default/data/shadow new file mode 100644 index 00000000..f4c9dfbd --- /dev/null +++ b/tests/tests/chroot/useradd/03_useradd--root_useradd.default/data/shadow @@ -0,0 +1,21 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: +foo:!:@TODAY@:0:99999:7:12:13849: diff --git a/tests/tests/chroot/useradd/03_useradd--root_useradd.default/useradd.test b/tests/tests/chroot/useradd/03_useradd--root_useradd.default/useradd.test new file mode 100755 index 00000000..aa9dd35a --- /dev/null +++ b/tests/tests/chroot/useradd/03_useradd--root_useradd.default/useradd.test @@ -0,0 +1,52 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "useradd can add an user in a chroot" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; clean_chroot; restore_config' 0 + +change_config + +prepare_chroot + +echo -n "Add user foo in chroot (useradd --root $PWD/tmp/root foo)..." +useradd --root $PWD/tmp/root foo +echo "OK" + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +../../../common/compare_file.pl data/passwd tmp/root/etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +../../../common/compare_file.pl data/group tmp/root/etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +../../../common/compare_file.pl data/shadow tmp/root/etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +../../../common/compare_file.pl data/gshadow tmp/root/etc/gshadow +echo "OK" + +rm -f tmp/root/etc/.pwd.lock +rm -f tmp/root/etc/passwd- +rm -f tmp/root/etc/group- +rm -f tmp/root/etc/shadow- +rm -f tmp/root/etc/gshadow- +clean_chroot + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chroot/useradd/04_useradd--root_useradd-D/config.txt b/tests/tests/chroot/useradd/04_useradd--root_useradd-D/config.txt new file mode 100644 index 00000000..31f56359 --- /dev/null +++ b/tests/tests/chroot/useradd/04_useradd--root_useradd-D/config.txt @@ -0,0 +1,10 @@ +# no testsuite password +# root password: rootF00barbaz +# myuser password: myuserF00barbaz + +user foo, in group users (only in /etc/group) +user foo, in group tty (only in /etc/gshadow) +user foo, in group floppy +user foo, admin of group disk +user foo, admin and member of group fax +user foo, admin and member of group cdrom (only in /etc/gshadow) diff --git a/tests/tests/chroot/useradd/04_useradd--root_useradd-D/config/etc/default/useradd b/tests/tests/chroot/useradd/04_useradd--root_useradd-D/config/etc/default/useradd new file mode 100644 index 00000000..31c44abe --- /dev/null +++ b/tests/tests/chroot/useradd/04_useradd--root_useradd-D/config/etc/default/useradd @@ -0,0 +1,36 @@ +# Default values for useradd(8) +# +# The SHELL variable specifies the default login shell on your +# system. +# Similar to DHSELL in adduser. However, we use "sh" here because +# useradd is a low level utility and should be as general +# as possible +SHELL=/bin/foobar +# +# The default group for users +# 100=users on Debian systems +# Same as USERS_GID in adduser +# This argument is used when the -n flag is specified. +# The default behavior (when -n and -g are not specified) is to create a +# primary user group with the same name as the user being added to the +# system. +GROUP=10 +# +# The default home directory. Same as DHOME for adduser +HOME=/tmp +# +# The number of days after a password expires until the account +# is permanently disabled +INACTIVE=12 +# +# The default expire date +EXPIRE=2007-12-02 +# +# The SKEL variable specifies the directory containing "skeletal" user +# files; in other words, files such as a sample .profile that will be +# copied to the new user's home directory when it is created. +# SKEL=/etc/skel +# +# Defines whether the mail spool should be created while +# creating the account +# CREATE_MAIL_SPOOL=yes diff --git a/tests/tests/chroot/useradd/04_useradd--root_useradd-D/config/etc/group b/tests/tests/chroot/useradd/04_useradd--root_useradd-D/config/etc/group new file mode 100644 index 00000000..10123908 --- /dev/null +++ b/tests/tests/chroot/useradd/04_useradd--root_useradd-D/config/etc/group @@ -0,0 +1,41 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: diff --git a/tests/tests/chroot/useradd/04_useradd--root_useradd-D/config/etc/gshadow b/tests/tests/chroot/useradd/04_useradd--root_useradd-D/config/etc/gshadow new file mode 100644 index 00000000..ae424865 --- /dev/null +++ b/tests/tests/chroot/useradd/04_useradd--root_useradd-D/config/etc/gshadow @@ -0,0 +1,41 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: diff --git a/tests/tests/chroot/useradd/04_useradd--root_useradd-D/config/etc/passwd b/tests/tests/chroot/useradd/04_useradd--root_useradd-D/config/etc/passwd new file mode 100644 index 00000000..43fc135a --- /dev/null +++ b/tests/tests/chroot/useradd/04_useradd--root_useradd-D/config/etc/passwd @@ -0,0 +1,19 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false diff --git a/tests/tests/chroot/useradd/04_useradd--root_useradd-D/config/etc/shadow b/tests/tests/chroot/useradd/04_useradd--root_useradd-D/config/etc/shadow new file mode 100644 index 00000000..5f50d187 --- /dev/null +++ b/tests/tests/chroot/useradd/04_useradd--root_useradd-D/config/etc/shadow @@ -0,0 +1,19 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: diff --git a/tests/tests/chroot/useradd/04_useradd--root_useradd-D/config_chroot/etc/default/useradd b/tests/tests/chroot/useradd/04_useradd--root_useradd-D/config_chroot/etc/default/useradd new file mode 100644 index 00000000..5051e1d9 --- /dev/null +++ b/tests/tests/chroot/useradd/04_useradd--root_useradd-D/config_chroot/etc/default/useradd @@ -0,0 +1,36 @@ +# Default values for useradd(8) +# +# The SHELL variable specifies the default login shell on your +# system. +# Similar to DHSELL in adduser. However, we use "sh" here because +# useradd is a low level utility and should be as general +# as possible +SHELL=/bin/sh +# +# The default group for users +# 100=users on Debian systems +# Same as USERS_GID in adduser +# This argument is used when the -n flag is specified. +# The default behavior (when -n and -g are not specified) is to create a +# primary user group with the same name as the user being added to the +# system. +GROUP=10 +# +# The default home directory. Same as DHOME for adduser +HOME=/tmp +# +# The number of days after a password expires until the account +# is permanently disabled +INACTIVE=12 +# +# The default expire date +EXPIRE=2007-12-02 +# +# The SKEL variable specifies the directory containing "skeletal" user +# files; in other words, files such as a sample .profile that will be +# copied to the new user's home directory when it is created. +# SKEL=/etc/skel +# +# Defines whether the mail spool should be created while +# creating the account +# CREATE_MAIL_SPOOL=yes diff --git a/tests/tests/chroot/useradd/04_useradd--root_useradd-D/config_chroot/etc/group b/tests/tests/chroot/useradd/04_useradd--root_useradd-D/config_chroot/etc/group new file mode 100644 index 00000000..245cc9cf --- /dev/null +++ b/tests/tests/chroot/useradd/04_useradd--root_useradd-D/config_chroot/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: diff --git a/tests/tests/chroot/useradd/04_useradd--root_useradd-D/config_chroot/etc/gshadow b/tests/tests/chroot/useradd/04_useradd--root_useradd-D/config_chroot/etc/gshadow new file mode 100644 index 00000000..25bd55bd --- /dev/null +++ b/tests/tests/chroot/useradd/04_useradd--root_useradd-D/config_chroot/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: diff --git a/tests/tests/chroot/useradd/04_useradd--root_useradd-D/config_chroot/etc/login.defs b/tests/tests/chroot/useradd/04_useradd--root_useradd-D/config_chroot/etc/login.defs new file mode 100644 index 00000000..3b216aa1 --- /dev/null +++ b/tests/tests/chroot/useradd/04_useradd--root_useradd-D/config_chroot/etc/login.defs @@ -0,0 +1,334 @@ +# +# /etc/login.defs - Configuration control definitions for the login package. +# +# Three items must be defined: MAIL_DIR, ENV_SUPATH, and ENV_PATH. +# If unspecified, some arbitrary (and possibly incorrect) value will +# be assumed. All other items are optional - if not specified then +# the described action or option will be inhibited. +# +# Comment lines (lines beginning with "#") and blank lines are ignored. +# +# Modified for Linux. --marekm + +# REQUIRED for useradd/userdel/usermod +# Directory where mailboxes reside, _or_ name of file, relative to the +# home directory. If you _do_ define MAIL_DIR and MAIL_FILE, +# MAIL_DIR takes precedence. +# +# Essentially: +# - MAIL_DIR defines the location of users mail spool files +# (for mbox use) by appending the username to MAIL_DIR as defined +# below. +# - MAIL_FILE defines the location of the users mail spool files as the +# fully-qualified filename obtained by prepending the user home +# directory before $MAIL_FILE +# +# NOTE: This is no more used for setting up users MAIL environment variable +# which is, starting from shadow 4.0.12-1 in Debian, entirely the +# job of the pam_mail PAM modules +# See default PAM configuration files provided for +# login, su, etc. +# +# This is a temporary situation: setting these variables will soon +# move to /etc/default/useradd and the variables will then be +# no more supported +MAIL_DIR /var/mail +#MAIL_FILE .mail + +# +# Enable logging and display of /var/log/faillog login failure info. +# This option conflicts with the pam_tally PAM module. +# +FAILLOG_ENAB yes + +# +# Enable display of unknown usernames when login failures are recorded. +# +# WARNING: Unknown usernames may become world readable. +# See #290803 and #298773 for details about how this could become a security +# concern +LOG_UNKFAIL_ENAB no + +# +# Enable logging of successful logins +# +LOG_OK_LOGINS no + +# +# Enable "syslog" logging of su activity - in addition to sulog file logging. +# SYSLOG_SG_ENAB does the same for newgrp and sg. +# +SYSLOG_SU_ENAB yes +SYSLOG_SG_ENAB yes + +# +# If defined, all su activity is logged to this file. +# +#SULOG_FILE /var/log/sulog + +# +# If defined, file which maps tty line to TERM environment parameter. +# Each line of the file is in a format something like "vt100 tty01". +# +#TTYTYPE_FILE /etc/ttytype + +# +# If defined, login failures will be logged here in a utmp format +# last, when invoked as lastb, will read /var/log/btmp, so... +# +FTMP_FILE /var/log/btmp + +# +# If defined, the command name to display when running "su -". For +# example, if this is defined as "su" then a "ps" will display the +# command is "-su". If not defined, then "ps" would display the +# name of the shell actually being run, e.g. something like "-sh". +# +SU_NAME su + +# +# If defined, file which inhibits all the usual chatter during the login +# sequence. If a full pathname, then hushed mode will be enabled if the +# user's name or shell are found in the file. If not a full pathname, then +# hushed mode will be enabled if the file exists in the user's home directory. +# +HUSHLOGIN_FILE .hushlogin +#HUSHLOGIN_FILE /etc/hushlogins + +# +# *REQUIRED* The default PATH settings, for superuser and normal users. +# +# (they are minimal, add the rest in the shell startup files) +ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games + +# +# Terminal permissions +# +# TTYGROUP Login tty will be assigned this group ownership. +# TTYPERM Login tty will be set to this permission. +# +# If you have a "write" program which is "setgid" to a special group +# which owns the terminals, define TTYGROUP to the group number and +# TTYPERM to 0620. Otherwise leave TTYGROUP commented out and assign +# TTYPERM to either 622 or 600. +# +# In Debian /usr/bin/bsd-write or similar programs are setgid tty +# However, the default and recommended value for TTYPERM is still 0600 +# to not allow anyone to write to anyone else console or terminal + +# Users can still allow other people to write them by issuing +# the "mesg y" command. + +TTYGROUP tty +TTYPERM 0600 + +# +# Login configuration initializations: +# +# ERASECHAR Terminal ERASE character ('\010' = backspace). +# KILLCHAR Terminal KILL character ('\025' = CTRL/U). +# UMASK Default "umask" value. +# +# The ERASECHAR and KILLCHAR are used only on System V machines. +# +# UMASK is the default umask value for pam_umask and is used by +# useradd and newusers to set the mode of the new home directories. +# 022 is the "historical" value in Debian for UMASK +# 027, or even 077, could be considered better for privacy +# There is no One True Answer here : each sysadmin must make up their +# mind. +# +# Prefix these values with "0" to get octal, "0x" to get hexadecimal. +# +ERASECHAR 0177 +KILLCHAR 025 +UMASK 022 + +# +# Password aging controls: +# +# PASS_MAX_DAYS Maximum number of days a password may be used. +# PASS_MIN_DAYS Minimum number of days allowed between password changes. +# PASS_WARN_AGE Number of days warning given before a password expires. +# +PASS_MAX_DAYS 99999 +PASS_MIN_DAYS 0 +PASS_WARN_AGE 7 + +# +# Min/max values for automatic uid selection in useradd +# +UID_MIN 1000 +UID_MAX 60000 +# System accounts +#SYS_UID_MIN 100 +#SYS_UID_MAX 999 + +# +# Min/max values for automatic gid selection in groupadd +# +GID_MIN 1000 +GID_MAX 60000 +# System accounts +#SYS_GID_MIN 100 +#SYS_GID_MAX 999 + +# +# Max number of login retries if password is bad. This will most likely be +# overridden by PAM, since the default pam_unix module has it's own built +# in of 3 retries. However, this is a safe fallback in case you are using +# an authentication module that does not enforce PAM_MAXTRIES. +# +LOGIN_RETRIES 5 + +# +# Max time in seconds for login +# +LOGIN_TIMEOUT 60 + +# +# Which fields may be changed by regular users using chfn - use +# any combination of letters "frwh" (full name, room number, work +# phone, home phone). If not defined, no changes are allowed. +# For backward compatibility, "yes" = "rwh" and "no" = "frwh". +# +CHFN_RESTRICT rwh + +# +# Should login be allowed if we can't cd to the home directory? +# Default is no. +# +DEFAULT_HOME yes + +# +# If defined, this command is run when removing a user. +# It should remove any at/cron/print jobs etc. owned by +# the user to be removed (passed as the first argument). +# +#USERDEL_CMD /usr/sbin/userdel_local + +# +# If set to yes, userdel will remove the user's group if it contains no +# more members, and useradd will create by default a group with the name +# of the user. +# +# Other former uses of this variable such as setting the umask when +# user==primary group are not used in PAM environments, such as Debian +# +USERGROUPS_ENAB yes + +# +# Instead of the real user shell, the program specified by this parameter +# will be launched, although its visible name (argv[0]) will be the shell's. +# The program may do whatever it wants (logging, additional authentification, +# banner, ...) before running the actual shell. +# +# FAKE_SHELL /bin/fakeshell + +# +# If defined, either full pathname of a file containing device names or +# a ":" delimited list of device names. Root logins will be allowed only +# upon these devices. +# +# This variable is used by login and su. +# +#CONSOLE /etc/consoles +#CONSOLE console:tty01:tty02:tty03:tty04 + +# +# List of groups to add to the user's supplementary group set +# when logging in on the console (as determined by the CONSOLE +# setting). Default is none. +# +# Use with caution - it is possible for users to gain permanent +# access to these groups, even when not logged in on the console. +# How to do it is left as an exercise for the reader... +# +# This variable is used by login and su. +# +#CONSOLE_GROUPS floppy:audio:cdrom + +# +# If set to "yes", new passwords will be encrypted using the MD5-based +# algorithm compatible with the one used by recent releases of FreeBSD. +# It supports passwords of unlimited length and longer salt strings. +# Set to "no" if you need to copy encrypted passwords to other systems +# which don't understand the new algorithm. Default is "no". +# +# This variable is deprecated. You should use ENCRYPT_METHOD. +# +#MD5_CRYPT_ENAB no + +# +# If set to MD5 , MD5-based algorithm will be used for encrypting password +# If set to SHA256, SHA256-based algorithm will be used for encrypting password +# If set to SHA512, SHA512-based algorithm will be used for encrypting password +# If set to DES, DES-based algorithm will be used for encrypting password (default) +# Overrides the MD5_CRYPT_ENAB option +# +# Note: It is recommended to use a value consistent with +# the PAM modules configuration. +# +#ENCRYPT_METHOD DES + +# +# Only used if ENCRYPT_METHOD is set to SHA256 or SHA512. +# +# Define the number of SHA rounds. +# With a lot of rounds, it is more difficult to brute forcing the password. +# But note also that it more CPU resources will be needed to authenticate +# users. +# +# If not specified, the libc will choose the default number of rounds (5000). +# The values must be inside the 1000-999999999 range. +# If only one of the MIN or MAX values is set, then this value will be used. +# If MIN > MAX, the highest value will be used. +# +# SHA_CRYPT_MIN_ROUNDS 5000 +# SHA_CRYPT_MAX_ROUNDS 5000 + +################# OBSOLETED BY PAM ############## +# # +# These options are now handled by PAM. Please # +# edit the appropriate file in /etc/pam.d/ to # +# enable the equivalents of them. +# +############### + +#MOTD_FILE +#DIALUPS_CHECK_ENAB +#LASTLOG_ENAB +#MAIL_CHECK_ENAB +#OBSCURE_CHECKS_ENAB +#PORTTIME_CHECKS_ENAB +#SU_WHEEL_ONLY +#PASS_CHANGE_TRIES +#PASS_ALWAYS_WARN +#ENVIRON_FILE +#NOLOGINS_FILE +#ISSUE_FILE +#PASS_MIN_LEN +#PASS_MAX_LEN +#ULIMIT +#ENV_HZ +#CHFN_AUTH +#CHSH_AUTH +#FAIL_DELAY + +################# OBSOLETED ####################### +# # +# These options are no more handled by shadow. # +# # +# Shadow utilities will display a warning if they # +# still appear. # +# # +################################################### + +# CLOSE_SESSIONS +# LOGIN_STRING +# NO_PASSWORD_CONSOLE +# QMAIL_DIR + + + diff --git a/tests/tests/chroot/useradd/04_useradd--root_useradd-D/config_chroot/etc/passwd b/tests/tests/chroot/useradd/04_useradd--root_useradd-D/config_chroot/etc/passwd new file mode 100644 index 00000000..9bdeb8ce --- /dev/null +++ b/tests/tests/chroot/useradd/04_useradd--root_useradd-D/config_chroot/etc/passwd @@ -0,0 +1,21 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser:x:424242:424242::/home/:/bin/sh +testsuite::424243:424243::/home:/bin/bash diff --git a/tests/tests/chroot/useradd/04_useradd--root_useradd-D/config_chroot/etc/shadow b/tests/tests/chroot/useradd/04_useradd--root_useradd-D/config_chroot/etc/shadow new file mode 100644 index 00000000..038d5cf4 --- /dev/null +++ b/tests/tests/chroot/useradd/04_useradd--root_useradd-D/config_chroot/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: diff --git a/tests/tests/chroot/useradd/04_useradd--root_useradd-D/data/useradd.out b/tests/tests/chroot/useradd/04_useradd--root_useradd-D/data/useradd.out new file mode 100644 index 00000000..581c0555 --- /dev/null +++ b/tests/tests/chroot/useradd/04_useradd--root_useradd-D/data/useradd.out @@ -0,0 +1,7 @@ +GROUP=10 +HOME=/tmp +INACTIVE=12 +EXPIRE=2007-12-02 +SHELL=/bin/sh +SKEL=/etc/skel +CREATE_MAIL_SPOOL=no diff --git a/tests/tests/chroot/useradd/04_useradd--root_useradd-D/useradd.test b/tests/tests/chroot/useradd/04_useradd--root_useradd-D/useradd.test new file mode 100755 index 00000000..069e7042 --- /dev/null +++ b/tests/tests/chroot/useradd/04_useradd--root_useradd-D/useradd.test @@ -0,0 +1,61 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "useradd can list defaults from a chroot" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; clean_chroot; restore_config' 0 + +change_config + +prepare_chroot + +echo -n "List defaults in chroot (useradd --root $PWD/tmp/root foo)..." +useradd -D --root $PWD/tmp/root > tmp/useradd.out +echo "OK" + +echo "useradd reported:" +echo "=======================================================================" +cat tmp/useradd.out +echo "=======================================================================" +echo -n "Check the usage message..." +diff -au data/useradd.out tmp/useradd.out +echo "OK." +rm -f tmp/useradd.out + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +../../../common/compare_file.pl config_chroot/etc/passwd tmp/root/etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +../../../common/compare_file.pl config_chroot/etc//group tmp/root/etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +../../../common/compare_file.pl config_chroot/etc/shadow tmp/root/etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +../../../common/compare_file.pl config_chroot/etc/gshadow tmp/root/etc/gshadow +echo "OK" + +rm -f tmp/root/etc/.pwd.lock +rm -f tmp/root/etc/passwd- +rm -f tmp/root/etc/group- +rm -f tmp/root/etc/shadow- +rm -f tmp/root/etc/gshadow- +clean_chroot + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chroot/useradd/05_useradd--root_useradd-D-e-g/config.txt b/tests/tests/chroot/useradd/05_useradd--root_useradd-D-e-g/config.txt new file mode 100644 index 00000000..31f56359 --- /dev/null +++ b/tests/tests/chroot/useradd/05_useradd--root_useradd-D-e-g/config.txt @@ -0,0 +1,10 @@ +# no testsuite password +# root password: rootF00barbaz +# myuser password: myuserF00barbaz + +user foo, in group users (only in /etc/group) +user foo, in group tty (only in /etc/gshadow) +user foo, in group floppy +user foo, admin of group disk +user foo, admin and member of group fax +user foo, admin and member of group cdrom (only in /etc/gshadow) diff --git a/tests/tests/chroot/useradd/05_useradd--root_useradd-D-e-g/config/etc/default/useradd b/tests/tests/chroot/useradd/05_useradd--root_useradd-D-e-g/config/etc/default/useradd new file mode 100644 index 00000000..31c44abe --- /dev/null +++ b/tests/tests/chroot/useradd/05_useradd--root_useradd-D-e-g/config/etc/default/useradd @@ -0,0 +1,36 @@ +# Default values for useradd(8) +# +# The SHELL variable specifies the default login shell on your +# system. +# Similar to DHSELL in adduser. However, we use "sh" here because +# useradd is a low level utility and should be as general +# as possible +SHELL=/bin/foobar +# +# The default group for users +# 100=users on Debian systems +# Same as USERS_GID in adduser +# This argument is used when the -n flag is specified. +# The default behavior (when -n and -g are not specified) is to create a +# primary user group with the same name as the user being added to the +# system. +GROUP=10 +# +# The default home directory. Same as DHOME for adduser +HOME=/tmp +# +# The number of days after a password expires until the account +# is permanently disabled +INACTIVE=12 +# +# The default expire date +EXPIRE=2007-12-02 +# +# The SKEL variable specifies the directory containing "skeletal" user +# files; in other words, files such as a sample .profile that will be +# copied to the new user's home directory when it is created. +# SKEL=/etc/skel +# +# Defines whether the mail spool should be created while +# creating the account +# CREATE_MAIL_SPOOL=yes diff --git a/tests/tests/chroot/useradd/05_useradd--root_useradd-D-e-g/config/etc/group b/tests/tests/chroot/useradd/05_useradd--root_useradd-D-e-g/config/etc/group new file mode 100644 index 00000000..10123908 --- /dev/null +++ b/tests/tests/chroot/useradd/05_useradd--root_useradd-D-e-g/config/etc/group @@ -0,0 +1,41 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: diff --git a/tests/tests/chroot/useradd/05_useradd--root_useradd-D-e-g/config/etc/gshadow b/tests/tests/chroot/useradd/05_useradd--root_useradd-D-e-g/config/etc/gshadow new file mode 100644 index 00000000..ae424865 --- /dev/null +++ b/tests/tests/chroot/useradd/05_useradd--root_useradd-D-e-g/config/etc/gshadow @@ -0,0 +1,41 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: diff --git a/tests/tests/chroot/useradd/05_useradd--root_useradd-D-e-g/config/etc/passwd b/tests/tests/chroot/useradd/05_useradd--root_useradd-D-e-g/config/etc/passwd new file mode 100644 index 00000000..43fc135a --- /dev/null +++ b/tests/tests/chroot/useradd/05_useradd--root_useradd-D-e-g/config/etc/passwd @@ -0,0 +1,19 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false diff --git a/tests/tests/chroot/useradd/05_useradd--root_useradd-D-e-g/config/etc/shadow b/tests/tests/chroot/useradd/05_useradd--root_useradd-D-e-g/config/etc/shadow new file mode 100644 index 00000000..5f50d187 --- /dev/null +++ b/tests/tests/chroot/useradd/05_useradd--root_useradd-D-e-g/config/etc/shadow @@ -0,0 +1,19 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: diff --git a/tests/tests/chroot/useradd/05_useradd--root_useradd-D-e-g/config_chroot/etc/default/useradd b/tests/tests/chroot/useradd/05_useradd--root_useradd-D-e-g/config_chroot/etc/default/useradd new file mode 100644 index 00000000..d1406e44 --- /dev/null +++ b/tests/tests/chroot/useradd/05_useradd--root_useradd-D-e-g/config_chroot/etc/default/useradd @@ -0,0 +1,36 @@ +# Default values for useradd(8) +# +# The SHELL variable specifies the default login shell on your +# system. +# Similar to DHSELL in adduser. However, we use "sh" here because +# useradd is a low level utility and should be as general +# as possible +SHELL=/bin/sh +# +# The default group for users +# 100=users on Debian systems +# Same as USERS_GID in adduser +# This argument is used when the -n flag is specified. +# The default behavior (when -n and -g are not specified) is to create a +# primary user group with the same name as the user being added to the +# system. +GROUP=100 +# +# The default home directory. Same as DHOME for adduser +HOME=/tmp +# +# The number of days after a password expires until the account +# is permanently disabled +INACTIVE=12 +# +# The default expire date +EXPIRE=2007-12-02 +# +# The SKEL variable specifies the directory containing "skeletal" user +# files; in other words, files such as a sample .profile that will be +# copied to the new user's home directory when it is created. +# SKEL=/etc/skel +# +# Defines whether the mail spool should be created while +# creating the account +# CREATE_MAIL_SPOOL=yes diff --git a/tests/tests/chroot/useradd/05_useradd--root_useradd-D-e-g/config_chroot/etc/group b/tests/tests/chroot/useradd/05_useradd--root_useradd-D-e-g/config_chroot/etc/group new file mode 100644 index 00000000..245cc9cf --- /dev/null +++ b/tests/tests/chroot/useradd/05_useradd--root_useradd-D-e-g/config_chroot/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: diff --git a/tests/tests/chroot/useradd/05_useradd--root_useradd-D-e-g/config_chroot/etc/gshadow b/tests/tests/chroot/useradd/05_useradd--root_useradd-D-e-g/config_chroot/etc/gshadow new file mode 100644 index 00000000..25bd55bd --- /dev/null +++ b/tests/tests/chroot/useradd/05_useradd--root_useradd-D-e-g/config_chroot/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: diff --git a/tests/tests/chroot/useradd/05_useradd--root_useradd-D-e-g/config_chroot/etc/login.defs b/tests/tests/chroot/useradd/05_useradd--root_useradd-D-e-g/config_chroot/etc/login.defs new file mode 100644 index 00000000..3b216aa1 --- /dev/null +++ b/tests/tests/chroot/useradd/05_useradd--root_useradd-D-e-g/config_chroot/etc/login.defs @@ -0,0 +1,334 @@ +# +# /etc/login.defs - Configuration control definitions for the login package. +# +# Three items must be defined: MAIL_DIR, ENV_SUPATH, and ENV_PATH. +# If unspecified, some arbitrary (and possibly incorrect) value will +# be assumed. All other items are optional - if not specified then +# the described action or option will be inhibited. +# +# Comment lines (lines beginning with "#") and blank lines are ignored. +# +# Modified for Linux. --marekm + +# REQUIRED for useradd/userdel/usermod +# Directory where mailboxes reside, _or_ name of file, relative to the +# home directory. If you _do_ define MAIL_DIR and MAIL_FILE, +# MAIL_DIR takes precedence. +# +# Essentially: +# - MAIL_DIR defines the location of users mail spool files +# (for mbox use) by appending the username to MAIL_DIR as defined +# below. +# - MAIL_FILE defines the location of the users mail spool files as the +# fully-qualified filename obtained by prepending the user home +# directory before $MAIL_FILE +# +# NOTE: This is no more used for setting up users MAIL environment variable +# which is, starting from shadow 4.0.12-1 in Debian, entirely the +# job of the pam_mail PAM modules +# See default PAM configuration files provided for +# login, su, etc. +# +# This is a temporary situation: setting these variables will soon +# move to /etc/default/useradd and the variables will then be +# no more supported +MAIL_DIR /var/mail +#MAIL_FILE .mail + +# +# Enable logging and display of /var/log/faillog login failure info. +# This option conflicts with the pam_tally PAM module. +# +FAILLOG_ENAB yes + +# +# Enable display of unknown usernames when login failures are recorded. +# +# WARNING: Unknown usernames may become world readable. +# See #290803 and #298773 for details about how this could become a security +# concern +LOG_UNKFAIL_ENAB no + +# +# Enable logging of successful logins +# +LOG_OK_LOGINS no + +# +# Enable "syslog" logging of su activity - in addition to sulog file logging. +# SYSLOG_SG_ENAB does the same for newgrp and sg. +# +SYSLOG_SU_ENAB yes +SYSLOG_SG_ENAB yes + +# +# If defined, all su activity is logged to this file. +# +#SULOG_FILE /var/log/sulog + +# +# If defined, file which maps tty line to TERM environment parameter. +# Each line of the file is in a format something like "vt100 tty01". +# +#TTYTYPE_FILE /etc/ttytype + +# +# If defined, login failures will be logged here in a utmp format +# last, when invoked as lastb, will read /var/log/btmp, so... +# +FTMP_FILE /var/log/btmp + +# +# If defined, the command name to display when running "su -". For +# example, if this is defined as "su" then a "ps" will display the +# command is "-su". If not defined, then "ps" would display the +# name of the shell actually being run, e.g. something like "-sh". +# +SU_NAME su + +# +# If defined, file which inhibits all the usual chatter during the login +# sequence. If a full pathname, then hushed mode will be enabled if the +# user's name or shell are found in the file. If not a full pathname, then +# hushed mode will be enabled if the file exists in the user's home directory. +# +HUSHLOGIN_FILE .hushlogin +#HUSHLOGIN_FILE /etc/hushlogins + +# +# *REQUIRED* The default PATH settings, for superuser and normal users. +# +# (they are minimal, add the rest in the shell startup files) +ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games + +# +# Terminal permissions +# +# TTYGROUP Login tty will be assigned this group ownership. +# TTYPERM Login tty will be set to this permission. +# +# If you have a "write" program which is "setgid" to a special group +# which owns the terminals, define TTYGROUP to the group number and +# TTYPERM to 0620. Otherwise leave TTYGROUP commented out and assign +# TTYPERM to either 622 or 600. +# +# In Debian /usr/bin/bsd-write or similar programs are setgid tty +# However, the default and recommended value for TTYPERM is still 0600 +# to not allow anyone to write to anyone else console or terminal + +# Users can still allow other people to write them by issuing +# the "mesg y" command. + +TTYGROUP tty +TTYPERM 0600 + +# +# Login configuration initializations: +# +# ERASECHAR Terminal ERASE character ('\010' = backspace). +# KILLCHAR Terminal KILL character ('\025' = CTRL/U). +# UMASK Default "umask" value. +# +# The ERASECHAR and KILLCHAR are used only on System V machines. +# +# UMASK is the default umask value for pam_umask and is used by +# useradd and newusers to set the mode of the new home directories. +# 022 is the "historical" value in Debian for UMASK +# 027, or even 077, could be considered better for privacy +# There is no One True Answer here : each sysadmin must make up their +# mind. +# +# Prefix these values with "0" to get octal, "0x" to get hexadecimal. +# +ERASECHAR 0177 +KILLCHAR 025 +UMASK 022 + +# +# Password aging controls: +# +# PASS_MAX_DAYS Maximum number of days a password may be used. +# PASS_MIN_DAYS Minimum number of days allowed between password changes. +# PASS_WARN_AGE Number of days warning given before a password expires. +# +PASS_MAX_DAYS 99999 +PASS_MIN_DAYS 0 +PASS_WARN_AGE 7 + +# +# Min/max values for automatic uid selection in useradd +# +UID_MIN 1000 +UID_MAX 60000 +# System accounts +#SYS_UID_MIN 100 +#SYS_UID_MAX 999 + +# +# Min/max values for automatic gid selection in groupadd +# +GID_MIN 1000 +GID_MAX 60000 +# System accounts +#SYS_GID_MIN 100 +#SYS_GID_MAX 999 + +# +# Max number of login retries if password is bad. This will most likely be +# overridden by PAM, since the default pam_unix module has it's own built +# in of 3 retries. However, this is a safe fallback in case you are using +# an authentication module that does not enforce PAM_MAXTRIES. +# +LOGIN_RETRIES 5 + +# +# Max time in seconds for login +# +LOGIN_TIMEOUT 60 + +# +# Which fields may be changed by regular users using chfn - use +# any combination of letters "frwh" (full name, room number, work +# phone, home phone). If not defined, no changes are allowed. +# For backward compatibility, "yes" = "rwh" and "no" = "frwh". +# +CHFN_RESTRICT rwh + +# +# Should login be allowed if we can't cd to the home directory? +# Default is no. +# +DEFAULT_HOME yes + +# +# If defined, this command is run when removing a user. +# It should remove any at/cron/print jobs etc. owned by +# the user to be removed (passed as the first argument). +# +#USERDEL_CMD /usr/sbin/userdel_local + +# +# If set to yes, userdel will remove the user's group if it contains no +# more members, and useradd will create by default a group with the name +# of the user. +# +# Other former uses of this variable such as setting the umask when +# user==primary group are not used in PAM environments, such as Debian +# +USERGROUPS_ENAB yes + +# +# Instead of the real user shell, the program specified by this parameter +# will be launched, although its visible name (argv[0]) will be the shell's. +# The program may do whatever it wants (logging, additional authentification, +# banner, ...) before running the actual shell. +# +# FAKE_SHELL /bin/fakeshell + +# +# If defined, either full pathname of a file containing device names or +# a ":" delimited list of device names. Root logins will be allowed only +# upon these devices. +# +# This variable is used by login and su. +# +#CONSOLE /etc/consoles +#CONSOLE console:tty01:tty02:tty03:tty04 + +# +# List of groups to add to the user's supplementary group set +# when logging in on the console (as determined by the CONSOLE +# setting). Default is none. +# +# Use with caution - it is possible for users to gain permanent +# access to these groups, even when not logged in on the console. +# How to do it is left as an exercise for the reader... +# +# This variable is used by login and su. +# +#CONSOLE_GROUPS floppy:audio:cdrom + +# +# If set to "yes", new passwords will be encrypted using the MD5-based +# algorithm compatible with the one used by recent releases of FreeBSD. +# It supports passwords of unlimited length and longer salt strings. +# Set to "no" if you need to copy encrypted passwords to other systems +# which don't understand the new algorithm. Default is "no". +# +# This variable is deprecated. You should use ENCRYPT_METHOD. +# +#MD5_CRYPT_ENAB no + +# +# If set to MD5 , MD5-based algorithm will be used for encrypting password +# If set to SHA256, SHA256-based algorithm will be used for encrypting password +# If set to SHA512, SHA512-based algorithm will be used for encrypting password +# If set to DES, DES-based algorithm will be used for encrypting password (default) +# Overrides the MD5_CRYPT_ENAB option +# +# Note: It is recommended to use a value consistent with +# the PAM modules configuration. +# +#ENCRYPT_METHOD DES + +# +# Only used if ENCRYPT_METHOD is set to SHA256 or SHA512. +# +# Define the number of SHA rounds. +# With a lot of rounds, it is more difficult to brute forcing the password. +# But note also that it more CPU resources will be needed to authenticate +# users. +# +# If not specified, the libc will choose the default number of rounds (5000). +# The values must be inside the 1000-999999999 range. +# If only one of the MIN or MAX values is set, then this value will be used. +# If MIN > MAX, the highest value will be used. +# +# SHA_CRYPT_MIN_ROUNDS 5000 +# SHA_CRYPT_MAX_ROUNDS 5000 + +################# OBSOLETED BY PAM ############## +# # +# These options are now handled by PAM. Please # +# edit the appropriate file in /etc/pam.d/ to # +# enable the equivalents of them. +# +############### + +#MOTD_FILE +#DIALUPS_CHECK_ENAB +#LASTLOG_ENAB +#MAIL_CHECK_ENAB +#OBSCURE_CHECKS_ENAB +#PORTTIME_CHECKS_ENAB +#SU_WHEEL_ONLY +#PASS_CHANGE_TRIES +#PASS_ALWAYS_WARN +#ENVIRON_FILE +#NOLOGINS_FILE +#ISSUE_FILE +#PASS_MIN_LEN +#PASS_MAX_LEN +#ULIMIT +#ENV_HZ +#CHFN_AUTH +#CHSH_AUTH +#FAIL_DELAY + +################# OBSOLETED ####################### +# # +# These options are no more handled by shadow. # +# # +# Shadow utilities will display a warning if they # +# still appear. # +# # +################################################### + +# CLOSE_SESSIONS +# LOGIN_STRING +# NO_PASSWORD_CONSOLE +# QMAIL_DIR + + + diff --git a/tests/tests/chroot/useradd/05_useradd--root_useradd-D-e-g/config_chroot/etc/passwd b/tests/tests/chroot/useradd/05_useradd--root_useradd-D-e-g/config_chroot/etc/passwd new file mode 100644 index 00000000..9bdeb8ce --- /dev/null +++ b/tests/tests/chroot/useradd/05_useradd--root_useradd-D-e-g/config_chroot/etc/passwd @@ -0,0 +1,21 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser:x:424242:424242::/home/:/bin/sh +testsuite::424243:424243::/home:/bin/bash diff --git a/tests/tests/chroot/useradd/05_useradd--root_useradd-D-e-g/config_chroot/etc/shadow b/tests/tests/chroot/useradd/05_useradd--root_useradd-D-e-g/config_chroot/etc/shadow new file mode 100644 index 00000000..038d5cf4 --- /dev/null +++ b/tests/tests/chroot/useradd/05_useradd--root_useradd-D-e-g/config_chroot/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: diff --git a/tests/tests/chroot/useradd/05_useradd--root_useradd-D-e-g/data/useradd.default b/tests/tests/chroot/useradd/05_useradd--root_useradd-D-e-g/data/useradd.default new file mode 100644 index 00000000..aaca91a5 --- /dev/null +++ b/tests/tests/chroot/useradd/05_useradd--root_useradd-D-e-g/data/useradd.default @@ -0,0 +1,38 @@ +# Default values for useradd(8) +# +# The SHELL variable specifies the default login shell on your +# system. +# Similar to DHSELL in adduser. However, we use "sh" here because +# useradd is a low level utility and should be as general +# as possible +SHELL=/bin/sh +# +# The default group for users +# 100=users on Debian systems +# Same as USERS_GID in adduser +# This argument is used when the -n flag is specified. +# The default behavior (when -n and -g are not specified) is to create a +# primary user group with the same name as the user being added to the +# system. +GROUP=424242 +# +# The default home directory. Same as DHOME for adduser +HOME=/tmp +# +# The number of days after a password expires until the account +# is permanently disabled +INACTIVE=12 +# +# The default expire date +EXPIRE=2012-12-12 +# +# The SKEL variable specifies the directory containing "skeletal" user +# files; in other words, files such as a sample .profile that will be +# copied to the new user's home directory when it is created. +# SKEL=/etc/skel +# +# Defines whether the mail spool should be created while +# creating the account +# CREATE_MAIL_SPOOL=yes +SKEL=/etc/skel +CREATE_MAIL_SPOOL=no diff --git a/tests/tests/chroot/useradd/05_useradd--root_useradd-D-e-g/useradd.test b/tests/tests/chroot/useradd/05_useradd--root_useradd-D-e-g/useradd.test new file mode 100755 index 00000000..97059dad --- /dev/null +++ b/tests/tests/chroot/useradd/05_useradd--root_useradd-D-e-g/useradd.test @@ -0,0 +1,56 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "useradd can list defaults from a chroot" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; clean_chroot; restore_config' 0 + +change_config + +prepare_chroot + +echo -n "List defaults in chroot (useradd -D --root $PWD/tmp/root -e 2012-12-12 -g 424242)..." +useradd -D --root $PWD/tmp/root -e 2012-12-12 -g 424242 +echo "OK" + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +../../../common/compare_file.pl config_chroot/etc/passwd tmp/root/etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +../../../common/compare_file.pl config_chroot/etc//group tmp/root/etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +../../../common/compare_file.pl config_chroot/etc/shadow tmp/root/etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +../../../common/compare_file.pl config_chroot/etc/gshadow tmp/root/etc/gshadow +echo "OK" +echo -n "Check the useradd's default file..." +diff -au data/useradd.default tmp/root/etc/default/useradd +echo "OK" + +rm -f tmp/root/etc/.pwd.lock +rm -f tmp/root/etc/passwd- +rm -f tmp/root/etc/group- +rm -f tmp/root/etc/shadow- +rm -f tmp/root/etc/gshadow- +rm -f tmp/root/etc/default/useradd- +clean_chroot + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chroot/userdel/01_userdel--root/config.txt b/tests/tests/chroot/userdel/01_userdel--root/config.txt new file mode 100644 index 00000000..31f56359 --- /dev/null +++ b/tests/tests/chroot/userdel/01_userdel--root/config.txt @@ -0,0 +1,10 @@ +# no testsuite password +# root password: rootF00barbaz +# myuser password: myuserF00barbaz + +user foo, in group users (only in /etc/group) +user foo, in group tty (only in /etc/gshadow) +user foo, in group floppy +user foo, admin of group disk +user foo, admin and member of group fax +user foo, admin and member of group cdrom (only in /etc/gshadow) diff --git a/tests/tests/chroot/userdel/01_userdel--root/config/etc/default/useradd b/tests/tests/chroot/userdel/01_userdel--root/config/etc/default/useradd new file mode 100644 index 00000000..31c44abe --- /dev/null +++ b/tests/tests/chroot/userdel/01_userdel--root/config/etc/default/useradd @@ -0,0 +1,36 @@ +# Default values for useradd(8) +# +# The SHELL variable specifies the default login shell on your +# system. +# Similar to DHSELL in adduser. However, we use "sh" here because +# useradd is a low level utility and should be as general +# as possible +SHELL=/bin/foobar +# +# The default group for users +# 100=users on Debian systems +# Same as USERS_GID in adduser +# This argument is used when the -n flag is specified. +# The default behavior (when -n and -g are not specified) is to create a +# primary user group with the same name as the user being added to the +# system. +GROUP=10 +# +# The default home directory. Same as DHOME for adduser +HOME=/tmp +# +# The number of days after a password expires until the account +# is permanently disabled +INACTIVE=12 +# +# The default expire date +EXPIRE=2007-12-02 +# +# The SKEL variable specifies the directory containing "skeletal" user +# files; in other words, files such as a sample .profile that will be +# copied to the new user's home directory when it is created. +# SKEL=/etc/skel +# +# Defines whether the mail spool should be created while +# creating the account +# CREATE_MAIL_SPOOL=yes diff --git a/tests/tests/chroot/userdel/01_userdel--root/config/etc/group b/tests/tests/chroot/userdel/01_userdel--root/config/etc/group new file mode 100644 index 00000000..10123908 --- /dev/null +++ b/tests/tests/chroot/userdel/01_userdel--root/config/etc/group @@ -0,0 +1,41 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: diff --git a/tests/tests/chroot/userdel/01_userdel--root/config/etc/gshadow b/tests/tests/chroot/userdel/01_userdel--root/config/etc/gshadow new file mode 100644 index 00000000..ae424865 --- /dev/null +++ b/tests/tests/chroot/userdel/01_userdel--root/config/etc/gshadow @@ -0,0 +1,41 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: diff --git a/tests/tests/chroot/userdel/01_userdel--root/config/etc/passwd b/tests/tests/chroot/userdel/01_userdel--root/config/etc/passwd new file mode 100644 index 00000000..43fc135a --- /dev/null +++ b/tests/tests/chroot/userdel/01_userdel--root/config/etc/passwd @@ -0,0 +1,19 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false diff --git a/tests/tests/chroot/userdel/01_userdel--root/config/etc/shadow b/tests/tests/chroot/userdel/01_userdel--root/config/etc/shadow new file mode 100644 index 00000000..5f50d187 --- /dev/null +++ b/tests/tests/chroot/userdel/01_userdel--root/config/etc/shadow @@ -0,0 +1,19 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: diff --git a/tests/tests/chroot/userdel/01_userdel--root/config_chroot/etc/group b/tests/tests/chroot/userdel/01_userdel--root/config_chroot/etc/group new file mode 100644 index 00000000..245cc9cf --- /dev/null +++ b/tests/tests/chroot/userdel/01_userdel--root/config_chroot/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: diff --git a/tests/tests/chroot/userdel/01_userdel--root/config_chroot/etc/gshadow b/tests/tests/chroot/userdel/01_userdel--root/config_chroot/etc/gshadow new file mode 100644 index 00000000..25bd55bd --- /dev/null +++ b/tests/tests/chroot/userdel/01_userdel--root/config_chroot/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: diff --git a/tests/tests/chroot/userdel/01_userdel--root/config_chroot/etc/login.defs b/tests/tests/chroot/userdel/01_userdel--root/config_chroot/etc/login.defs new file mode 100644 index 00000000..3b216aa1 --- /dev/null +++ b/tests/tests/chroot/userdel/01_userdel--root/config_chroot/etc/login.defs @@ -0,0 +1,334 @@ +# +# /etc/login.defs - Configuration control definitions for the login package. +# +# Three items must be defined: MAIL_DIR, ENV_SUPATH, and ENV_PATH. +# If unspecified, some arbitrary (and possibly incorrect) value will +# be assumed. All other items are optional - if not specified then +# the described action or option will be inhibited. +# +# Comment lines (lines beginning with "#") and blank lines are ignored. +# +# Modified for Linux. --marekm + +# REQUIRED for useradd/userdel/usermod +# Directory where mailboxes reside, _or_ name of file, relative to the +# home directory. If you _do_ define MAIL_DIR and MAIL_FILE, +# MAIL_DIR takes precedence. +# +# Essentially: +# - MAIL_DIR defines the location of users mail spool files +# (for mbox use) by appending the username to MAIL_DIR as defined +# below. +# - MAIL_FILE defines the location of the users mail spool files as the +# fully-qualified filename obtained by prepending the user home +# directory before $MAIL_FILE +# +# NOTE: This is no more used for setting up users MAIL environment variable +# which is, starting from shadow 4.0.12-1 in Debian, entirely the +# job of the pam_mail PAM modules +# See default PAM configuration files provided for +# login, su, etc. +# +# This is a temporary situation: setting these variables will soon +# move to /etc/default/useradd and the variables will then be +# no more supported +MAIL_DIR /var/mail +#MAIL_FILE .mail + +# +# Enable logging and display of /var/log/faillog login failure info. +# This option conflicts with the pam_tally PAM module. +# +FAILLOG_ENAB yes + +# +# Enable display of unknown usernames when login failures are recorded. +# +# WARNING: Unknown usernames may become world readable. +# See #290803 and #298773 for details about how this could become a security +# concern +LOG_UNKFAIL_ENAB no + +# +# Enable logging of successful logins +# +LOG_OK_LOGINS no + +# +# Enable "syslog" logging of su activity - in addition to sulog file logging. +# SYSLOG_SG_ENAB does the same for newgrp and sg. +# +SYSLOG_SU_ENAB yes +SYSLOG_SG_ENAB yes + +# +# If defined, all su activity is logged to this file. +# +#SULOG_FILE /var/log/sulog + +# +# If defined, file which maps tty line to TERM environment parameter. +# Each line of the file is in a format something like "vt100 tty01". +# +#TTYTYPE_FILE /etc/ttytype + +# +# If defined, login failures will be logged here in a utmp format +# last, when invoked as lastb, will read /var/log/btmp, so... +# +FTMP_FILE /var/log/btmp + +# +# If defined, the command name to display when running "su -". For +# example, if this is defined as "su" then a "ps" will display the +# command is "-su". If not defined, then "ps" would display the +# name of the shell actually being run, e.g. something like "-sh". +# +SU_NAME su + +# +# If defined, file which inhibits all the usual chatter during the login +# sequence. If a full pathname, then hushed mode will be enabled if the +# user's name or shell are found in the file. If not a full pathname, then +# hushed mode will be enabled if the file exists in the user's home directory. +# +HUSHLOGIN_FILE .hushlogin +#HUSHLOGIN_FILE /etc/hushlogins + +# +# *REQUIRED* The default PATH settings, for superuser and normal users. +# +# (they are minimal, add the rest in the shell startup files) +ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games + +# +# Terminal permissions +# +# TTYGROUP Login tty will be assigned this group ownership. +# TTYPERM Login tty will be set to this permission. +# +# If you have a "write" program which is "setgid" to a special group +# which owns the terminals, define TTYGROUP to the group number and +# TTYPERM to 0620. Otherwise leave TTYGROUP commented out and assign +# TTYPERM to either 622 or 600. +# +# In Debian /usr/bin/bsd-write or similar programs are setgid tty +# However, the default and recommended value for TTYPERM is still 0600 +# to not allow anyone to write to anyone else console or terminal + +# Users can still allow other people to write them by issuing +# the "mesg y" command. + +TTYGROUP tty +TTYPERM 0600 + +# +# Login configuration initializations: +# +# ERASECHAR Terminal ERASE character ('\010' = backspace). +# KILLCHAR Terminal KILL character ('\025' = CTRL/U). +# UMASK Default "umask" value. +# +# The ERASECHAR and KILLCHAR are used only on System V machines. +# +# UMASK is the default umask value for pam_umask and is used by +# useradd and newusers to set the mode of the new home directories. +# 022 is the "historical" value in Debian for UMASK +# 027, or even 077, could be considered better for privacy +# There is no One True Answer here : each sysadmin must make up their +# mind. +# +# Prefix these values with "0" to get octal, "0x" to get hexadecimal. +# +ERASECHAR 0177 +KILLCHAR 025 +UMASK 022 + +# +# Password aging controls: +# +# PASS_MAX_DAYS Maximum number of days a password may be used. +# PASS_MIN_DAYS Minimum number of days allowed between password changes. +# PASS_WARN_AGE Number of days warning given before a password expires. +# +PASS_MAX_DAYS 99999 +PASS_MIN_DAYS 0 +PASS_WARN_AGE 7 + +# +# Min/max values for automatic uid selection in useradd +# +UID_MIN 1000 +UID_MAX 60000 +# System accounts +#SYS_UID_MIN 100 +#SYS_UID_MAX 999 + +# +# Min/max values for automatic gid selection in groupadd +# +GID_MIN 1000 +GID_MAX 60000 +# System accounts +#SYS_GID_MIN 100 +#SYS_GID_MAX 999 + +# +# Max number of login retries if password is bad. This will most likely be +# overridden by PAM, since the default pam_unix module has it's own built +# in of 3 retries. However, this is a safe fallback in case you are using +# an authentication module that does not enforce PAM_MAXTRIES. +# +LOGIN_RETRIES 5 + +# +# Max time in seconds for login +# +LOGIN_TIMEOUT 60 + +# +# Which fields may be changed by regular users using chfn - use +# any combination of letters "frwh" (full name, room number, work +# phone, home phone). If not defined, no changes are allowed. +# For backward compatibility, "yes" = "rwh" and "no" = "frwh". +# +CHFN_RESTRICT rwh + +# +# Should login be allowed if we can't cd to the home directory? +# Default is no. +# +DEFAULT_HOME yes + +# +# If defined, this command is run when removing a user. +# It should remove any at/cron/print jobs etc. owned by +# the user to be removed (passed as the first argument). +# +#USERDEL_CMD /usr/sbin/userdel_local + +# +# If set to yes, userdel will remove the user's group if it contains no +# more members, and useradd will create by default a group with the name +# of the user. +# +# Other former uses of this variable such as setting the umask when +# user==primary group are not used in PAM environments, such as Debian +# +USERGROUPS_ENAB yes + +# +# Instead of the real user shell, the program specified by this parameter +# will be launched, although its visible name (argv[0]) will be the shell's. +# The program may do whatever it wants (logging, additional authentification, +# banner, ...) before running the actual shell. +# +# FAKE_SHELL /bin/fakeshell + +# +# If defined, either full pathname of a file containing device names or +# a ":" delimited list of device names. Root logins will be allowed only +# upon these devices. +# +# This variable is used by login and su. +# +#CONSOLE /etc/consoles +#CONSOLE console:tty01:tty02:tty03:tty04 + +# +# List of groups to add to the user's supplementary group set +# when logging in on the console (as determined by the CONSOLE +# setting). Default is none. +# +# Use with caution - it is possible for users to gain permanent +# access to these groups, even when not logged in on the console. +# How to do it is left as an exercise for the reader... +# +# This variable is used by login and su. +# +#CONSOLE_GROUPS floppy:audio:cdrom + +# +# If set to "yes", new passwords will be encrypted using the MD5-based +# algorithm compatible with the one used by recent releases of FreeBSD. +# It supports passwords of unlimited length and longer salt strings. +# Set to "no" if you need to copy encrypted passwords to other systems +# which don't understand the new algorithm. Default is "no". +# +# This variable is deprecated. You should use ENCRYPT_METHOD. +# +#MD5_CRYPT_ENAB no + +# +# If set to MD5 , MD5-based algorithm will be used for encrypting password +# If set to SHA256, SHA256-based algorithm will be used for encrypting password +# If set to SHA512, SHA512-based algorithm will be used for encrypting password +# If set to DES, DES-based algorithm will be used for encrypting password (default) +# Overrides the MD5_CRYPT_ENAB option +# +# Note: It is recommended to use a value consistent with +# the PAM modules configuration. +# +#ENCRYPT_METHOD DES + +# +# Only used if ENCRYPT_METHOD is set to SHA256 or SHA512. +# +# Define the number of SHA rounds. +# With a lot of rounds, it is more difficult to brute forcing the password. +# But note also that it more CPU resources will be needed to authenticate +# users. +# +# If not specified, the libc will choose the default number of rounds (5000). +# The values must be inside the 1000-999999999 range. +# If only one of the MIN or MAX values is set, then this value will be used. +# If MIN > MAX, the highest value will be used. +# +# SHA_CRYPT_MIN_ROUNDS 5000 +# SHA_CRYPT_MAX_ROUNDS 5000 + +################# OBSOLETED BY PAM ############## +# # +# These options are now handled by PAM. Please # +# edit the appropriate file in /etc/pam.d/ to # +# enable the equivalents of them. +# +############### + +#MOTD_FILE +#DIALUPS_CHECK_ENAB +#LASTLOG_ENAB +#MAIL_CHECK_ENAB +#OBSCURE_CHECKS_ENAB +#PORTTIME_CHECKS_ENAB +#SU_WHEEL_ONLY +#PASS_CHANGE_TRIES +#PASS_ALWAYS_WARN +#ENVIRON_FILE +#NOLOGINS_FILE +#ISSUE_FILE +#PASS_MIN_LEN +#PASS_MAX_LEN +#ULIMIT +#ENV_HZ +#CHFN_AUTH +#CHSH_AUTH +#FAIL_DELAY + +################# OBSOLETED ####################### +# # +# These options are no more handled by shadow. # +# # +# Shadow utilities will display a warning if they # +# still appear. # +# # +################################################### + +# CLOSE_SESSIONS +# LOGIN_STRING +# NO_PASSWORD_CONSOLE +# QMAIL_DIR + + + diff --git a/tests/tests/chroot/userdel/01_userdel--root/config_chroot/etc/passwd b/tests/tests/chroot/userdel/01_userdel--root/config_chroot/etc/passwd new file mode 100644 index 00000000..9bdeb8ce --- /dev/null +++ b/tests/tests/chroot/userdel/01_userdel--root/config_chroot/etc/passwd @@ -0,0 +1,21 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser:x:424242:424242::/home/:/bin/sh +testsuite::424243:424243::/home:/bin/bash diff --git a/tests/tests/chroot/userdel/01_userdel--root/config_chroot/etc/shadow b/tests/tests/chroot/userdel/01_userdel--root/config_chroot/etc/shadow new file mode 100644 index 00000000..038d5cf4 --- /dev/null +++ b/tests/tests/chroot/userdel/01_userdel--root/config_chroot/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: diff --git a/tests/tests/chroot/userdel/01_userdel--root/data/group b/tests/tests/chroot/userdel/01_userdel--root/data/group new file mode 100644 index 00000000..10123908 --- /dev/null +++ b/tests/tests/chroot/userdel/01_userdel--root/data/group @@ -0,0 +1,41 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: diff --git a/tests/tests/chroot/userdel/01_userdel--root/data/gshadow b/tests/tests/chroot/userdel/01_userdel--root/data/gshadow new file mode 100644 index 00000000..ae424865 --- /dev/null +++ b/tests/tests/chroot/userdel/01_userdel--root/data/gshadow @@ -0,0 +1,41 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: diff --git a/tests/tests/chroot/userdel/01_userdel--root/data/passwd b/tests/tests/chroot/userdel/01_userdel--root/data/passwd new file mode 100644 index 00000000..4736f1c9 --- /dev/null +++ b/tests/tests/chroot/userdel/01_userdel--root/data/passwd @@ -0,0 +1,20 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +testsuite::424243:424243::/home:/bin/bash diff --git a/tests/tests/chroot/userdel/01_userdel--root/data/shadow b/tests/tests/chroot/userdel/01_userdel--root/data/shadow new file mode 100644 index 00000000..5f50d187 --- /dev/null +++ b/tests/tests/chroot/userdel/01_userdel--root/data/shadow @@ -0,0 +1,19 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: diff --git a/tests/tests/chroot/userdel/01_userdel--root/userdel.test b/tests/tests/chroot/userdel/01_userdel--root/userdel.test new file mode 100755 index 00000000..4ee203e2 --- /dev/null +++ b/tests/tests/chroot/userdel/01_userdel--root/userdel.test @@ -0,0 +1,52 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "userdel can change a user in a chroot" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; clean_chroot; restore_config' 0 + +change_config + +prepare_chroot + +echo -n "Delete a user in chroot (userdel --root $PWD/tmp/root myuser)..." +userdel --root $PWD/tmp/root myuser +echo "OK" + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +../../../common/compare_file.pl data/passwd tmp/root/etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +../../../common/compare_file.pl data/group tmp/root/etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +../../../common/compare_file.pl data/shadow tmp/root/etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +../../../common/compare_file.pl data/gshadow tmp/root/etc/gshadow +echo "OK" + +rm -f tmp/root/etc/.pwd.lock +rm -f tmp/root/etc/passwd- +rm -f tmp/root/etc/group- +rm -f tmp/root/etc/shadow- +rm -f tmp/root/etc/gshadow- +clean_chroot + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chroot/usermod/01_usermod--root/config.txt b/tests/tests/chroot/usermod/01_usermod--root/config.txt new file mode 100644 index 00000000..31f56359 --- /dev/null +++ b/tests/tests/chroot/usermod/01_usermod--root/config.txt @@ -0,0 +1,10 @@ +# no testsuite password +# root password: rootF00barbaz +# myuser password: myuserF00barbaz + +user foo, in group users (only in /etc/group) +user foo, in group tty (only in /etc/gshadow) +user foo, in group floppy +user foo, admin of group disk +user foo, admin and member of group fax +user foo, admin and member of group cdrom (only in /etc/gshadow) diff --git a/tests/tests/chroot/usermod/01_usermod--root/config/etc/default/useradd b/tests/tests/chroot/usermod/01_usermod--root/config/etc/default/useradd new file mode 100644 index 00000000..31c44abe --- /dev/null +++ b/tests/tests/chroot/usermod/01_usermod--root/config/etc/default/useradd @@ -0,0 +1,36 @@ +# Default values for useradd(8) +# +# The SHELL variable specifies the default login shell on your +# system. +# Similar to DHSELL in adduser. However, we use "sh" here because +# useradd is a low level utility and should be as general +# as possible +SHELL=/bin/foobar +# +# The default group for users +# 100=users on Debian systems +# Same as USERS_GID in adduser +# This argument is used when the -n flag is specified. +# The default behavior (when -n and -g are not specified) is to create a +# primary user group with the same name as the user being added to the +# system. +GROUP=10 +# +# The default home directory. Same as DHOME for adduser +HOME=/tmp +# +# The number of days after a password expires until the account +# is permanently disabled +INACTIVE=12 +# +# The default expire date +EXPIRE=2007-12-02 +# +# The SKEL variable specifies the directory containing "skeletal" user +# files; in other words, files such as a sample .profile that will be +# copied to the new user's home directory when it is created. +# SKEL=/etc/skel +# +# Defines whether the mail spool should be created while +# creating the account +# CREATE_MAIL_SPOOL=yes diff --git a/tests/tests/chroot/usermod/01_usermod--root/config/etc/group b/tests/tests/chroot/usermod/01_usermod--root/config/etc/group new file mode 100644 index 00000000..10123908 --- /dev/null +++ b/tests/tests/chroot/usermod/01_usermod--root/config/etc/group @@ -0,0 +1,41 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: diff --git a/tests/tests/chroot/usermod/01_usermod--root/config/etc/gshadow b/tests/tests/chroot/usermod/01_usermod--root/config/etc/gshadow new file mode 100644 index 00000000..ae424865 --- /dev/null +++ b/tests/tests/chroot/usermod/01_usermod--root/config/etc/gshadow @@ -0,0 +1,41 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: diff --git a/tests/tests/chroot/usermod/01_usermod--root/config/etc/passwd b/tests/tests/chroot/usermod/01_usermod--root/config/etc/passwd new file mode 100644 index 00000000..43fc135a --- /dev/null +++ b/tests/tests/chroot/usermod/01_usermod--root/config/etc/passwd @@ -0,0 +1,19 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false diff --git a/tests/tests/chroot/usermod/01_usermod--root/config/etc/shadow b/tests/tests/chroot/usermod/01_usermod--root/config/etc/shadow new file mode 100644 index 00000000..5f50d187 --- /dev/null +++ b/tests/tests/chroot/usermod/01_usermod--root/config/etc/shadow @@ -0,0 +1,19 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: diff --git a/tests/tests/chroot/usermod/01_usermod--root/config_chroot/etc/group b/tests/tests/chroot/usermod/01_usermod--root/config_chroot/etc/group new file mode 100644 index 00000000..245cc9cf --- /dev/null +++ b/tests/tests/chroot/usermod/01_usermod--root/config_chroot/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: diff --git a/tests/tests/chroot/usermod/01_usermod--root/config_chroot/etc/gshadow b/tests/tests/chroot/usermod/01_usermod--root/config_chroot/etc/gshadow new file mode 100644 index 00000000..25bd55bd --- /dev/null +++ b/tests/tests/chroot/usermod/01_usermod--root/config_chroot/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: diff --git a/tests/tests/chroot/usermod/01_usermod--root/config_chroot/etc/login.defs b/tests/tests/chroot/usermod/01_usermod--root/config_chroot/etc/login.defs new file mode 100644 index 00000000..3b216aa1 --- /dev/null +++ b/tests/tests/chroot/usermod/01_usermod--root/config_chroot/etc/login.defs @@ -0,0 +1,334 @@ +# +# /etc/login.defs - Configuration control definitions for the login package. +# +# Three items must be defined: MAIL_DIR, ENV_SUPATH, and ENV_PATH. +# If unspecified, some arbitrary (and possibly incorrect) value will +# be assumed. All other items are optional - if not specified then +# the described action or option will be inhibited. +# +# Comment lines (lines beginning with "#") and blank lines are ignored. +# +# Modified for Linux. --marekm + +# REQUIRED for useradd/userdel/usermod +# Directory where mailboxes reside, _or_ name of file, relative to the +# home directory. If you _do_ define MAIL_DIR and MAIL_FILE, +# MAIL_DIR takes precedence. +# +# Essentially: +# - MAIL_DIR defines the location of users mail spool files +# (for mbox use) by appending the username to MAIL_DIR as defined +# below. +# - MAIL_FILE defines the location of the users mail spool files as the +# fully-qualified filename obtained by prepending the user home +# directory before $MAIL_FILE +# +# NOTE: This is no more used for setting up users MAIL environment variable +# which is, starting from shadow 4.0.12-1 in Debian, entirely the +# job of the pam_mail PAM modules +# See default PAM configuration files provided for +# login, su, etc. +# +# This is a temporary situation: setting these variables will soon +# move to /etc/default/useradd and the variables will then be +# no more supported +MAIL_DIR /var/mail +#MAIL_FILE .mail + +# +# Enable logging and display of /var/log/faillog login failure info. +# This option conflicts with the pam_tally PAM module. +# +FAILLOG_ENAB yes + +# +# Enable display of unknown usernames when login failures are recorded. +# +# WARNING: Unknown usernames may become world readable. +# See #290803 and #298773 for details about how this could become a security +# concern +LOG_UNKFAIL_ENAB no + +# +# Enable logging of successful logins +# +LOG_OK_LOGINS no + +# +# Enable "syslog" logging of su activity - in addition to sulog file logging. +# SYSLOG_SG_ENAB does the same for newgrp and sg. +# +SYSLOG_SU_ENAB yes +SYSLOG_SG_ENAB yes + +# +# If defined, all su activity is logged to this file. +# +#SULOG_FILE /var/log/sulog + +# +# If defined, file which maps tty line to TERM environment parameter. +# Each line of the file is in a format something like "vt100 tty01". +# +#TTYTYPE_FILE /etc/ttytype + +# +# If defined, login failures will be logged here in a utmp format +# last, when invoked as lastb, will read /var/log/btmp, so... +# +FTMP_FILE /var/log/btmp + +# +# If defined, the command name to display when running "su -". For +# example, if this is defined as "su" then a "ps" will display the +# command is "-su". If not defined, then "ps" would display the +# name of the shell actually being run, e.g. something like "-sh". +# +SU_NAME su + +# +# If defined, file which inhibits all the usual chatter during the login +# sequence. If a full pathname, then hushed mode will be enabled if the +# user's name or shell are found in the file. If not a full pathname, then +# hushed mode will be enabled if the file exists in the user's home directory. +# +HUSHLOGIN_FILE .hushlogin +#HUSHLOGIN_FILE /etc/hushlogins + +# +# *REQUIRED* The default PATH settings, for superuser and normal users. +# +# (they are minimal, add the rest in the shell startup files) +ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV_PATH PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games + +# +# Terminal permissions +# +# TTYGROUP Login tty will be assigned this group ownership. +# TTYPERM Login tty will be set to this permission. +# +# If you have a "write" program which is "setgid" to a special group +# which owns the terminals, define TTYGROUP to the group number and +# TTYPERM to 0620. Otherwise leave TTYGROUP commented out and assign +# TTYPERM to either 622 or 600. +# +# In Debian /usr/bin/bsd-write or similar programs are setgid tty +# However, the default and recommended value for TTYPERM is still 0600 +# to not allow anyone to write to anyone else console or terminal + +# Users can still allow other people to write them by issuing +# the "mesg y" command. + +TTYGROUP tty +TTYPERM 0600 + +# +# Login configuration initializations: +# +# ERASECHAR Terminal ERASE character ('\010' = backspace). +# KILLCHAR Terminal KILL character ('\025' = CTRL/U). +# UMASK Default "umask" value. +# +# The ERASECHAR and KILLCHAR are used only on System V machines. +# +# UMASK is the default umask value for pam_umask and is used by +# useradd and newusers to set the mode of the new home directories. +# 022 is the "historical" value in Debian for UMASK +# 027, or even 077, could be considered better for privacy +# There is no One True Answer here : each sysadmin must make up their +# mind. +# +# Prefix these values with "0" to get octal, "0x" to get hexadecimal. +# +ERASECHAR 0177 +KILLCHAR 025 +UMASK 022 + +# +# Password aging controls: +# +# PASS_MAX_DAYS Maximum number of days a password may be used. +# PASS_MIN_DAYS Minimum number of days allowed between password changes. +# PASS_WARN_AGE Number of days warning given before a password expires. +# +PASS_MAX_DAYS 99999 +PASS_MIN_DAYS 0 +PASS_WARN_AGE 7 + +# +# Min/max values for automatic uid selection in useradd +# +UID_MIN 1000 +UID_MAX 60000 +# System accounts +#SYS_UID_MIN 100 +#SYS_UID_MAX 999 + +# +# Min/max values for automatic gid selection in groupadd +# +GID_MIN 1000 +GID_MAX 60000 +# System accounts +#SYS_GID_MIN 100 +#SYS_GID_MAX 999 + +# +# Max number of login retries if password is bad. This will most likely be +# overridden by PAM, since the default pam_unix module has it's own built +# in of 3 retries. However, this is a safe fallback in case you are using +# an authentication module that does not enforce PAM_MAXTRIES. +# +LOGIN_RETRIES 5 + +# +# Max time in seconds for login +# +LOGIN_TIMEOUT 60 + +# +# Which fields may be changed by regular users using chfn - use +# any combination of letters "frwh" (full name, room number, work +# phone, home phone). If not defined, no changes are allowed. +# For backward compatibility, "yes" = "rwh" and "no" = "frwh". +# +CHFN_RESTRICT rwh + +# +# Should login be allowed if we can't cd to the home directory? +# Default is no. +# +DEFAULT_HOME yes + +# +# If defined, this command is run when removing a user. +# It should remove any at/cron/print jobs etc. owned by +# the user to be removed (passed as the first argument). +# +#USERDEL_CMD /usr/sbin/userdel_local + +# +# If set to yes, userdel will remove the user's group if it contains no +# more members, and useradd will create by default a group with the name +# of the user. +# +# Other former uses of this variable such as setting the umask when +# user==primary group are not used in PAM environments, such as Debian +# +USERGROUPS_ENAB yes + +# +# Instead of the real user shell, the program specified by this parameter +# will be launched, although its visible name (argv[0]) will be the shell's. +# The program may do whatever it wants (logging, additional authentification, +# banner, ...) before running the actual shell. +# +# FAKE_SHELL /bin/fakeshell + +# +# If defined, either full pathname of a file containing device names or +# a ":" delimited list of device names. Root logins will be allowed only +# upon these devices. +# +# This variable is used by login and su. +# +#CONSOLE /etc/consoles +#CONSOLE console:tty01:tty02:tty03:tty04 + +# +# List of groups to add to the user's supplementary group set +# when logging in on the console (as determined by the CONSOLE +# setting). Default is none. +# +# Use with caution - it is possible for users to gain permanent +# access to these groups, even when not logged in on the console. +# How to do it is left as an exercise for the reader... +# +# This variable is used by login and su. +# +#CONSOLE_GROUPS floppy:audio:cdrom + +# +# If set to "yes", new passwords will be encrypted using the MD5-based +# algorithm compatible with the one used by recent releases of FreeBSD. +# It supports passwords of unlimited length and longer salt strings. +# Set to "no" if you need to copy encrypted passwords to other systems +# which don't understand the new algorithm. Default is "no". +# +# This variable is deprecated. You should use ENCRYPT_METHOD. +# +#MD5_CRYPT_ENAB no + +# +# If set to MD5 , MD5-based algorithm will be used for encrypting password +# If set to SHA256, SHA256-based algorithm will be used for encrypting password +# If set to SHA512, SHA512-based algorithm will be used for encrypting password +# If set to DES, DES-based algorithm will be used for encrypting password (default) +# Overrides the MD5_CRYPT_ENAB option +# +# Note: It is recommended to use a value consistent with +# the PAM modules configuration. +# +#ENCRYPT_METHOD DES + +# +# Only used if ENCRYPT_METHOD is set to SHA256 or SHA512. +# +# Define the number of SHA rounds. +# With a lot of rounds, it is more difficult to brute forcing the password. +# But note also that it more CPU resources will be needed to authenticate +# users. +# +# If not specified, the libc will choose the default number of rounds (5000). +# The values must be inside the 1000-999999999 range. +# If only one of the MIN or MAX values is set, then this value will be used. +# If MIN > MAX, the highest value will be used. +# +# SHA_CRYPT_MIN_ROUNDS 5000 +# SHA_CRYPT_MAX_ROUNDS 5000 + +################# OBSOLETED BY PAM ############## +# # +# These options are now handled by PAM. Please # +# edit the appropriate file in /etc/pam.d/ to # +# enable the equivalents of them. +# +############### + +#MOTD_FILE +#DIALUPS_CHECK_ENAB +#LASTLOG_ENAB +#MAIL_CHECK_ENAB +#OBSCURE_CHECKS_ENAB +#PORTTIME_CHECKS_ENAB +#SU_WHEEL_ONLY +#PASS_CHANGE_TRIES +#PASS_ALWAYS_WARN +#ENVIRON_FILE +#NOLOGINS_FILE +#ISSUE_FILE +#PASS_MIN_LEN +#PASS_MAX_LEN +#ULIMIT +#ENV_HZ +#CHFN_AUTH +#CHSH_AUTH +#FAIL_DELAY + +################# OBSOLETED ####################### +# # +# These options are no more handled by shadow. # +# # +# Shadow utilities will display a warning if they # +# still appear. # +# # +################################################### + +# CLOSE_SESSIONS +# LOGIN_STRING +# NO_PASSWORD_CONSOLE +# QMAIL_DIR + + + diff --git a/tests/tests/chroot/usermod/01_usermod--root/config_chroot/etc/passwd b/tests/tests/chroot/usermod/01_usermod--root/config_chroot/etc/passwd new file mode 100644 index 00000000..9bdeb8ce --- /dev/null +++ b/tests/tests/chroot/usermod/01_usermod--root/config_chroot/etc/passwd @@ -0,0 +1,21 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser:x:424242:424242::/home/:/bin/sh +testsuite::424243:424243::/home:/bin/bash diff --git a/tests/tests/chroot/usermod/01_usermod--root/config_chroot/etc/shadow b/tests/tests/chroot/usermod/01_usermod--root/config_chroot/etc/shadow new file mode 100644 index 00000000..038d5cf4 --- /dev/null +++ b/tests/tests/chroot/usermod/01_usermod--root/config_chroot/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: diff --git a/tests/tests/chroot/usermod/01_usermod--root/data/passwd b/tests/tests/chroot/usermod/01_usermod--root/data/passwd new file mode 100644 index 00000000..1f47aafa --- /dev/null +++ b/tests/tests/chroot/usermod/01_usermod--root/data/passwd @@ -0,0 +1,21 @@ +root:x:0:100:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser:x:424242:424242::/home/:/bin/sh +testsuite::424243:424243::/home:/bin/bash diff --git a/tests/tests/chroot/usermod/01_usermod--root/usermod.test b/tests/tests/chroot/usermod/01_usermod--root/usermod.test new file mode 100755 index 00000000..14f7a08b --- /dev/null +++ b/tests/tests/chroot/usermod/01_usermod--root/usermod.test @@ -0,0 +1,52 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "usermod can change a user in a chroot" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; clean_chroot; restore_config' 0 + +change_config + +prepare_chroot + +echo -n "Change user in chroot (usermod --root $PWD/tmp/root -g users root)..." +usermod --root $PWD/tmp/root -g users root +echo "OK" + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +../../../common/compare_file.pl data/passwd tmp/root/etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +../../../common/compare_file.pl config_chroot/etc/group tmp/root/etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +../../../common/compare_file.pl config_chroot/etc/shadow tmp/root/etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +../../../common/compare_file.pl config_chroot/etc/gshadow tmp/root/etc/gshadow +echo "OK" + +rm -f tmp/root/etc/.pwd.lock +rm -f tmp/root/etc/passwd- +rm -f tmp/root/etc/group- +rm -f tmp/root/etc/shadow- +rm -f tmp/root/etc/gshadow- +clean_chroot + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chsh/01/data/chsh1 b/tests/tests/chsh/01/data/chsh1 new file mode 100644 index 00000000..01b3d539 --- /dev/null +++ b/tests/tests/chsh/01/data/chsh1 @@ -0,0 +1 @@ +You may not change the shell for 'myuser'. diff --git a/tests/tests/chsh/01/data/chsh2 b/tests/tests/chsh/01/data/chsh2 new file mode 100644 index 00000000..b017d6dd --- /dev/null +++ b/tests/tests/chsh/01/data/chsh2 @@ -0,0 +1 @@ +You may not change the shell for 'myuser2'. diff --git a/tests/tests/chsh/01/data/group b/tests/tests/chsh/01/data/group new file mode 100644 index 00000000..245cc9cf --- /dev/null +++ b/tests/tests/chsh/01/data/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: diff --git a/tests/tests/chsh/01/data/gshadow b/tests/tests/chsh/01/data/gshadow new file mode 100644 index 00000000..25bd55bd --- /dev/null +++ b/tests/tests/chsh/01/data/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: diff --git a/tests/tests/chsh/01/data/passwd b/tests/tests/chsh/01/data/passwd new file mode 100644 index 00000000..37b04674 --- /dev/null +++ b/tests/tests/chsh/01/data/passwd @@ -0,0 +1,21 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser:x:424242:424242::/home:/bin/bash +myuser2:x:424243:424242::/home:/bin/sh diff --git a/tests/tests/chsh/01/data/shadow b/tests/tests/chsh/01/data/shadow new file mode 100644 index 00000000..f004fa26 --- /dev/null +++ b/tests/tests/chsh/01/data/shadow @@ -0,0 +1,21 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: +myuser2:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: diff --git a/tests/tests/chsh/01/data/shells b/tests/tests/chsh/01/data/shells new file mode 100644 index 00000000..4fd4378e --- /dev/null +++ b/tests/tests/chsh/01/data/shells @@ -0,0 +1,16 @@ +# /etc/shells: valid login shells +/bin/ash +/bin/csh +/bin/sh +/usr/bin/es +/usr/bin/ksh +/bin/ksh +/usr/bin/rc +/usr/bin/tcsh +/bin/tcsh +/usr/bin/zsh +/bin/sash +/bin/zsh +/usr/bin/esh +/bin/bash +/bin/rbash diff --git a/tests/tests/chsh/01/run b/tests/tests/chsh/01/run new file mode 100755 index 00000000..4d72eea3 --- /dev/null +++ b/tests/tests/chsh/01/run @@ -0,0 +1,143 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +# Rational: +# Test chage options + +# no testsuite password +# root password: rootF00barbaz +# myuser password: myuserF00barbaz + +save() +{ + [ ! -d tmp ] && mkdir tmp + for i in passwd group shadow gshadow shells + do + [ -f /etc/$i ] && cp /etc/$i tmp/$i + [ -f /etc/$i- ] && cp /etc/$i- tmp/$i- + done + + true +} + +restore() +{ + for i in passwd group shadow gshadow shells + do + [ -f tmp/$i ] && cp tmp/$i /etc/$i && rm tmp/$i + [ -f tmp/$i- ] && cp tmp/$i- /etc/$i- && rm tmp/$i- + done + rm -f tmp/out + rm -f tmp/shell tmp/sh:ell + rmdir tmp +} + +save + +# restore the files on exit +trap 'if [ "$?" != "0" ]; then echo "FAIL"; fi; restore' 0 + +for i in passwd group shadow gshadow shells +do + cp data/$i /etc +done + +echo -n "changing to a restricted shell, by root..." +cp /bin/bash tmp/shell +chsh -s $(pwd)/tmp/shell myuser +ent=$(getent passwd myuser) +[ "$ent" = "myuser:x:424242:424242::/home:"$(pwd)"/tmp/shell" ] || exit 1 +echo "OK" + +echo -n "changing from a restricted shell, by myuser..." +su myuser -c "chsh -s /bin/bash" 2> tmp/out && exit 1 +ent=$(getent passwd myuser) +[ "$ent" = "myuser:x:424242:424242::/home:"$(pwd)"/tmp/shell" ] || exit 1 +diff -au data/chsh1 tmp/out +echo "OK" + +echo -n "changing from a restricted shell, by root..." +chsh -s /bin/bash myuser +ent=$(getent passwd myuser) +[ "$ent" = "myuser:x:424242:424242::/home:/bin/bash" ] || exit 1 +echo "OK" + +# Need to be done by expect now (chage asks for a passwd if not root) +#echo -n "changing to a restricted shell, by myuser..." +#su myuser -c "chsh -s $(pwd)/tmp/shell" 2> tmp/out && exit 1 +#ent=$(getent passwd myuser) +#[ "$ent" = "myuser:x:424242:424242::/home:/bin/bash" ] || exit 1 +#grep "/tmp/shell is an invalid shell." tmp/out > /dev/null +#[ $(wc -l tmp/out| cut -d" " -f1) = "1" ] || exit 1 +#echo "OK" + +#echo -n "changing to a new valid shell, by myuser..." +#echo $(pwd)/tmp/shell >> /tmp/shells +#su myuser -c "chsh -s $(pwd)/tmp/shell" 2> tmp/out && exit 1 +#ent=$(getent passwd myuser) +#[ "$ent" = "myuser:x:424242:424242::/home:/bin/bash" ] || exit 1 +#grep "/tmp/shell is an invalid shell." tmp/out > /dev/null +#[ $(wc -l tmp/out| cut -d" " -f1) = "1" ] || exit 1 +#echo "OK" + +echo -n "changing another user's shell..." +su myuser -c "chsh -s /bin/sh myuser2" 2> tmp/out && exit 1 +ent=$(getent passwd myuser2) +[ "$ent" = "myuser2:x:424243:424242::/home:/bin/sh" ] || exit 1 +diff -au data/chsh2 tmp/out +echo "OK" + +#echo -n "changing to a non-executable shell..." +#chmod a-x tmp/shell +#su myuser -c "chsh -s $(pwd)/tmp/shell myuser" 2> tmp/out && exit 1 +#ent=$(getent passwd myuser) +#[ "$ent" = "myuser:x:424242:424242::/home:/bin/bash" ] || exit 1 +#grep "/tmp/shell is an invalid shell." tmp/out > /dev/null +#[ $(wc -l tmp/out| cut -d" " -f1) = "1" ] || exit 1 +#echo "OK" + +echo -n "changing to an invalid shell name..." +cp /bin/bash tmp/sh:ell +echo $(pwd)/tmp/sh:ell >> /etc/shells +chsh -s $(pwd)/tmp/sh:ell myuser 2> tmp/out && exit 1 +ent=$(getent passwd myuser) +[ "$ent" = "myuser:x:424242:424242::/home:/bin/bash" ] || exit 1 +grep -E "chsh: Invalid entry: .*/tmp/sh:ell" tmp/out > /dev/null +[ $(wc -l tmp/out| cut -d" " -f1) = "1" ] || exit 1 +echo "OK" + +echo "testing the interactive mode (1)..." +rm -f tmp/out +./run.exp /bin/bash myuser +[ -f tmp/out ] && exit 1 +ent=$(getent passwd myuser) +[ "$ent" = "myuser:x:424242:424242::/home:/bin/bash" ] || exit 1 +echo "OK" + +#echo "testing the interactive mode (2)..." +#rm -f tmp/out +#su myuser -c "./run.exp /bin/bash" +#[ -f tmp/out ] && exit 1 +#ent=$(getent passwd myuser) +#[ "$ent" = "myuser:x:424242:424242::/home:/bin/bash" ] || exit 1 +#echo "OK" + +echo "testing the interactive mode (3)..." +rm -f tmp/out +./run.exp /bin/sh myuser +[ -f tmp/out ] && exit 1 +ent=$(getent passwd myuser) +[ "$ent" = "myuser:x:424242:424242::/home:/bin/sh" ] || exit 1 +echo "OK" + +echo "testing the interactive mode (4)..." +rm -f tmp/out +./run.exp $(pwd)/tmp/sh:ell myuser && exit 1 +grep -E "chsh: Invalid entry: .*/tmp/sh:ell" tmp/out > /dev/null +ent=$(getent passwd myuser) +[ "$ent" = "myuser:x:424242:424242::/home:/bin/sh" ] || exit 1 +echo "OK" + diff --git a/tests/tests/chsh/01/run.exp b/tests/tests/chsh/01/run.exp new file mode 100755 index 00000000..4890193f --- /dev/null +++ b/tests/tests/chsh/01/run.exp @@ -0,0 +1,38 @@ +#!/usr/bin/expect + +set timeout 5 + +if {$argc < 1} { + puts "usage: run.exp \[shell] \[user]" + exit 1 +} +set shell [lindex $argv 0] + +if {$argc == 2} { + spawn /usr/bin/chsh [lindex $argv 1] +} else { + spawn /usr/bin/chsh +} + +expect "Changing the login shell for myuser" +expect "Enter the new value, or press ENTER for the default" +expect -re "Login Shell .*\]: " +send "$shell\r" +expect "$shell\r\n" +expect { + eof { + if ([string compare $expect_out(buffer) ""]) { + set fp [open "tmp/out" w] + puts $fp "$expect_out(buffer)" + puts "\nFAIL" + exit 1 + } + } default { + puts "\nFAIL" + exit 1 + } +} + +puts "\nPASS" +exit 0 + diff --git a/tests/tests/chsh/02_chsh_usage/chsh.test b/tests/tests/chsh/02_chsh_usage/chsh.test new file mode 100755 index 00000000..3a6e656a --- /dev/null +++ b/tests/tests/chsh/02_chsh_usage/chsh.test @@ -0,0 +1,48 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../common/config.sh +. ../../common/log.sh + +log_start "$0" "chsh can display its usage message" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "Get chsh usage (chsh -h)..." +chsh -h >tmp/usage.out +echo "OK" + +echo "chsh reported:" +echo "=======================================================================" +cat tmp/usage.out +echo "=======================================================================" +echo -n "Check the usage message..." +diff -au data/usage.out tmp/usage.out +echo "usage message OK." +rm -f tmp/usage.out + +echo -n "Check the passwd file..." +../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chsh/02_chsh_usage/config.txt b/tests/tests/chsh/02_chsh_usage/config.txt new file mode 100644 index 00000000..e69de29b diff --git a/tests/tests/chsh/02_chsh_usage/config/etc/group b/tests/tests/chsh/02_chsh_usage/config/etc/group new file mode 100644 index 00000000..e69de29b diff --git a/tests/tests/chsh/02_chsh_usage/config/etc/gshadow b/tests/tests/chsh/02_chsh_usage/config/etc/gshadow new file mode 100644 index 00000000..e69de29b diff --git a/tests/tests/chsh/02_chsh_usage/config/etc/passwd b/tests/tests/chsh/02_chsh_usage/config/etc/passwd new file mode 100644 index 00000000..e69de29b diff --git a/tests/tests/chsh/02_chsh_usage/config/etc/shadow b/tests/tests/chsh/02_chsh_usage/config/etc/shadow new file mode 100644 index 00000000..e69de29b diff --git a/tests/tests/chsh/02_chsh_usage/data/usage.out b/tests/tests/chsh/02_chsh_usage/data/usage.out new file mode 100644 index 00000000..ef576ec4 --- /dev/null +++ b/tests/tests/chsh/02_chsh_usage/data/usage.out @@ -0,0 +1,7 @@ +Usage: chsh [options] [LOGIN] + +Options: + -h, --help display this help message and exit + -R, --root CHROOT_DIR directory to chroot into + -s, --shell SHELL new login shell for the user account + diff --git a/tests/tests/chsh/03_chsh_usage_invalid_option/chsh.test b/tests/tests/chsh/03_chsh_usage_invalid_option/chsh.test new file mode 100755 index 00000000..4552cc32 --- /dev/null +++ b/tests/tests/chsh/03_chsh_usage_invalid_option/chsh.test @@ -0,0 +1,54 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../common/config.sh +. ../../common/log.sh + +log_start "$0" "chsh displays its usage message is case of invalid option" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "Use wrong chsh option (chsh -Z)..." +chsh -Z 2>tmp/usage.out && exit 1 || { + status=$? +} +echo "OK" + +echo -n "Check returned status ($status)..." +test "$status" = "2" +echo "OK" + +echo "chsh reported:" +echo "=======================================================================" +cat tmp/usage.out +echo "=======================================================================" +echo -n "Check the usage message..." +diff -au data/usage.out tmp/usage.out +echo "usage message OK." +rm -f tmp/usage.out + +echo -n "Check the passwd file..." +../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chsh/03_chsh_usage_invalid_option/config.txt b/tests/tests/chsh/03_chsh_usage_invalid_option/config.txt new file mode 100644 index 00000000..e69de29b diff --git a/tests/tests/chsh/03_chsh_usage_invalid_option/config/etc/group b/tests/tests/chsh/03_chsh_usage_invalid_option/config/etc/group new file mode 100644 index 00000000..e69de29b diff --git a/tests/tests/chsh/03_chsh_usage_invalid_option/config/etc/gshadow b/tests/tests/chsh/03_chsh_usage_invalid_option/config/etc/gshadow new file mode 100644 index 00000000..e69de29b diff --git a/tests/tests/chsh/03_chsh_usage_invalid_option/config/etc/passwd b/tests/tests/chsh/03_chsh_usage_invalid_option/config/etc/passwd new file mode 100644 index 00000000..e69de29b diff --git a/tests/tests/chsh/03_chsh_usage_invalid_option/config/etc/shadow b/tests/tests/chsh/03_chsh_usage_invalid_option/config/etc/shadow new file mode 100644 index 00000000..e69de29b diff --git a/tests/tests/chsh/03_chsh_usage_invalid_option/data/usage.out b/tests/tests/chsh/03_chsh_usage_invalid_option/data/usage.out new file mode 100644 index 00000000..e930bab5 --- /dev/null +++ b/tests/tests/chsh/03_chsh_usage_invalid_option/data/usage.out @@ -0,0 +1,8 @@ +chsh: invalid option -- 'Z' +Usage: chsh [options] [LOGIN] + +Options: + -h, --help display this help message and exit + -R, --root CHROOT_DIR directory to chroot into + -s, --shell SHELL new login shell for the user account + diff --git a/tests/tests/chsh/04_chsh_usage_2_users/chsh.test b/tests/tests/chsh/04_chsh_usage_2_users/chsh.test new file mode 100755 index 00000000..ef1c1818 --- /dev/null +++ b/tests/tests/chsh/04_chsh_usage_2_users/chsh.test @@ -0,0 +1,54 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../common/config.sh +. ../../common/log.sh + +log_start "$0" "chsh displays its usage message is case multiple users are provided" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "Use chsh with 2 users (chsh -s /bin/sh root bin)..." +chsh -s /bin/sh root bin 2>tmp/usage.out && exit 1 || { + status=$? +} +echo "OK" + +echo -n "Check returned status ($status)..." +test "$status" = "2" +echo "OK" + +echo "chsh reported:" +echo "=======================================================================" +cat tmp/usage.out +echo "=======================================================================" +echo -n "Check the usage message..." +diff -au data/usage.out tmp/usage.out +echo "usage message OK." +rm -f tmp/usage.out + +echo -n "Check the passwd file..." +../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chsh/04_chsh_usage_2_users/config.txt b/tests/tests/chsh/04_chsh_usage_2_users/config.txt new file mode 100644 index 00000000..e69de29b diff --git a/tests/tests/chsh/04_chsh_usage_2_users/config/etc/group b/tests/tests/chsh/04_chsh_usage_2_users/config/etc/group new file mode 100644 index 00000000..e69de29b diff --git a/tests/tests/chsh/04_chsh_usage_2_users/config/etc/gshadow b/tests/tests/chsh/04_chsh_usage_2_users/config/etc/gshadow new file mode 100644 index 00000000..e69de29b diff --git a/tests/tests/chsh/04_chsh_usage_2_users/config/etc/passwd b/tests/tests/chsh/04_chsh_usage_2_users/config/etc/passwd new file mode 100644 index 00000000..e69de29b diff --git a/tests/tests/chsh/04_chsh_usage_2_users/config/etc/shadow b/tests/tests/chsh/04_chsh_usage_2_users/config/etc/shadow new file mode 100644 index 00000000..e69de29b diff --git a/tests/tests/chsh/04_chsh_usage_2_users/data/usage.out b/tests/tests/chsh/04_chsh_usage_2_users/data/usage.out new file mode 100644 index 00000000..ef576ec4 --- /dev/null +++ b/tests/tests/chsh/04_chsh_usage_2_users/data/usage.out @@ -0,0 +1,7 @@ +Usage: chsh [options] [LOGIN] + +Options: + -h, --help display this help message and exit + -R, --root CHROOT_DIR directory to chroot into + -s, --shell SHELL new login shell for the user account + diff --git a/tests/tests/chsh/05_chsh_myuser_restricted_shell/chsh.test b/tests/tests/chsh/05_chsh_myuser_restricted_shell/chsh.test new file mode 100755 index 00000000..48442668 --- /dev/null +++ b/tests/tests/chsh/05_chsh_myuser_restricted_shell/chsh.test @@ -0,0 +1,41 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../common/config.sh +. ../../common/log.sh + +log_start "$0" "chsh can displays its usage message" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +chmod a+w tmp + +echo -n "execute chsh..." +su myuser -c "./run.exp /bin/sh" +echo "OK" + +echo -n "Check the passwd file..." +../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chsh/05_chsh_myuser_restricted_shell/config.txt b/tests/tests/chsh/05_chsh_myuser_restricted_shell/config.txt new file mode 100644 index 00000000..e69de29b diff --git a/tests/tests/chsh/05_chsh_myuser_restricted_shell/config/etc/group b/tests/tests/chsh/05_chsh_myuser_restricted_shell/config/etc/group new file mode 100644 index 00000000..245cc9cf --- /dev/null +++ b/tests/tests/chsh/05_chsh_myuser_restricted_shell/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: diff --git a/tests/tests/chsh/05_chsh_myuser_restricted_shell/config/etc/gshadow b/tests/tests/chsh/05_chsh_myuser_restricted_shell/config/etc/gshadow new file mode 100644 index 00000000..25bd55bd --- /dev/null +++ b/tests/tests/chsh/05_chsh_myuser_restricted_shell/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: diff --git a/tests/tests/chsh/05_chsh_myuser_restricted_shell/config/etc/passwd b/tests/tests/chsh/05_chsh_myuser_restricted_shell/config/etc/passwd new file mode 100644 index 00000000..37b04674 --- /dev/null +++ b/tests/tests/chsh/05_chsh_myuser_restricted_shell/config/etc/passwd @@ -0,0 +1,21 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser:x:424242:424242::/home:/bin/bash +myuser2:x:424243:424242::/home:/bin/sh diff --git a/tests/tests/chsh/05_chsh_myuser_restricted_shell/config/etc/shadow b/tests/tests/chsh/05_chsh_myuser_restricted_shell/config/etc/shadow new file mode 100644 index 00000000..f004fa26 --- /dev/null +++ b/tests/tests/chsh/05_chsh_myuser_restricted_shell/config/etc/shadow @@ -0,0 +1,21 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: +myuser2:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: diff --git a/tests/tests/chsh/05_chsh_myuser_restricted_shell/config/etc/shells b/tests/tests/chsh/05_chsh_myuser_restricted_shell/config/etc/shells new file mode 100644 index 00000000..16e922a1 --- /dev/null +++ b/tests/tests/chsh/05_chsh_myuser_restricted_shell/config/etc/shells @@ -0,0 +1,15 @@ +# /etc/shells: valid login shells +/bin/ash +/bin/csh +/bin/sh +/usr/bin/es +/usr/bin/ksh +/bin/ksh +/usr/bin/rc +/usr/bin/tcsh +/bin/tcsh +/usr/bin/zsh +/bin/sash +#/bin/zsh +/usr/bin/esh +/bin/rbash diff --git a/tests/tests/chsh/05_chsh_myuser_restricted_shell/run.exp b/tests/tests/chsh/05_chsh_myuser_restricted_shell/run.exp new file mode 100755 index 00000000..1abf0858 --- /dev/null +++ b/tests/tests/chsh/05_chsh_myuser_restricted_shell/run.exp @@ -0,0 +1,34 @@ +#!/usr/bin/expect + +set timeout 5 + +if {$argc < 1} { + puts "usage: run.exp \[shell] \[user]" + exit 1 +} +set shell [lindex $argv 0] + +if {$argc == 2} { + spawn /usr/bin/chsh [lindex $argv 1] +} else { + spawn /usr/bin/chsh +} + +expect "You may not change the shell for 'myuser'.\r\n" +expect { + eof { + if ([string compare $expect_out(buffer) ""]) { + set fp [open "tmp/out" w] + puts $fp "$expect_out(buffer)" + puts "\nFAIL" + exit 1 + } + } default { + puts "\nFAIL" + exit 1 + } +} + +puts "\nPASS" +exit 0 + diff --git a/tests/tests/chsh/06_chsh_myuser_non_restricted_shell/chsh.test b/tests/tests/chsh/06_chsh_myuser_non_restricted_shell/chsh.test new file mode 100755 index 00000000..d8d88ac1 --- /dev/null +++ b/tests/tests/chsh/06_chsh_myuser_non_restricted_shell/chsh.test @@ -0,0 +1,41 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../common/config.sh +. ../../common/log.sh + +log_start "$0" "chsh can displays its usage message" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +chmod a+w tmp + +echo -n "execute chsh..." +su myuser -c "./run.exp /bin/sh" +echo "OK" + +echo -n "Check the passwd file..." +../../common/compare_file.pl data/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chsh/06_chsh_myuser_non_restricted_shell/config.txt b/tests/tests/chsh/06_chsh_myuser_non_restricted_shell/config.txt new file mode 100644 index 00000000..e69de29b diff --git a/tests/tests/chsh/06_chsh_myuser_non_restricted_shell/config/etc/group b/tests/tests/chsh/06_chsh_myuser_non_restricted_shell/config/etc/group new file mode 100644 index 00000000..245cc9cf --- /dev/null +++ b/tests/tests/chsh/06_chsh_myuser_non_restricted_shell/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: diff --git a/tests/tests/chsh/06_chsh_myuser_non_restricted_shell/config/etc/gshadow b/tests/tests/chsh/06_chsh_myuser_non_restricted_shell/config/etc/gshadow new file mode 100644 index 00000000..25bd55bd --- /dev/null +++ b/tests/tests/chsh/06_chsh_myuser_non_restricted_shell/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: diff --git a/tests/tests/chsh/06_chsh_myuser_non_restricted_shell/config/etc/passwd b/tests/tests/chsh/06_chsh_myuser_non_restricted_shell/config/etc/passwd new file mode 100644 index 00000000..37b04674 --- /dev/null +++ b/tests/tests/chsh/06_chsh_myuser_non_restricted_shell/config/etc/passwd @@ -0,0 +1,21 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser:x:424242:424242::/home:/bin/bash +myuser2:x:424243:424242::/home:/bin/sh diff --git a/tests/tests/chsh/06_chsh_myuser_non_restricted_shell/config/etc/shadow b/tests/tests/chsh/06_chsh_myuser_non_restricted_shell/config/etc/shadow new file mode 100644 index 00000000..f004fa26 --- /dev/null +++ b/tests/tests/chsh/06_chsh_myuser_non_restricted_shell/config/etc/shadow @@ -0,0 +1,21 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: +myuser2:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: diff --git a/tests/tests/chsh/06_chsh_myuser_non_restricted_shell/config/etc/shells b/tests/tests/chsh/06_chsh_myuser_non_restricted_shell/config/etc/shells new file mode 100644 index 00000000..d52a3bf0 --- /dev/null +++ b/tests/tests/chsh/06_chsh_myuser_non_restricted_shell/config/etc/shells @@ -0,0 +1,16 @@ +# /etc/shells: valid login shells +/bin/ash +/bin/csh +/bin/sh +/usr/bin/es +/usr/bin/ksh +/bin/ksh +/usr/bin/rc +/usr/bin/tcsh +/bin/tcsh +/usr/bin/zsh +/bin/sash +#/bin/zsh +/usr/bin/esh +/bin/bash +/bin/rbash diff --git a/tests/tests/chsh/06_chsh_myuser_non_restricted_shell/data/passwd b/tests/tests/chsh/06_chsh_myuser_non_restricted_shell/data/passwd new file mode 100644 index 00000000..ae3eda3f --- /dev/null +++ b/tests/tests/chsh/06_chsh_myuser_non_restricted_shell/data/passwd @@ -0,0 +1,21 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser:x:424242:424242::/home:/bin/sh +myuser2:x:424243:424242::/home:/bin/sh diff --git a/tests/tests/chsh/06_chsh_myuser_non_restricted_shell/run.exp b/tests/tests/chsh/06_chsh_myuser_non_restricted_shell/run.exp new file mode 100755 index 00000000..0c0e023b --- /dev/null +++ b/tests/tests/chsh/06_chsh_myuser_non_restricted_shell/run.exp @@ -0,0 +1,40 @@ +#!/usr/bin/expect + +set timeout 5 + +if {$argc < 1} { + puts "usage: run.exp \[shell] \[user]" + exit 1 +} +set shell [lindex $argv 0] + +if {$argc == 2} { + spawn /usr/bin/chsh [lindex $argv 1] +} else { + spawn /usr/bin/chsh +} + +expect "Password: " +send "myuserF00barbaz\r" +expect "Changing the login shell for myuser" +expect "Enter the new value, or press ENTER for the default" +expect -re "Login Shell .*\]: " +send "$shell\r" +expect "$shell\r\n" +expect { + eof { + if ([string compare $expect_out(buffer) ""]) { + set fp [open "tmp/out" w] + puts $fp "$expect_out(buffer)" + puts "\nFAIL" + exit 1 + } + } default { + puts "\nFAIL" + exit 1 + } +} + +puts "\nPASS" +exit 0 + diff --git a/tests/tests/chsh/07_chsh_usage_invalid_user/chsh.test b/tests/tests/chsh/07_chsh_usage_invalid_user/chsh.test new file mode 100755 index 00000000..5d76de21 --- /dev/null +++ b/tests/tests/chsh/07_chsh_usage_invalid_user/chsh.test @@ -0,0 +1,54 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../common/config.sh +. ../../common/log.sh + +log_start "$0" "chsh checks that the user exist" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "Use chsh for an invalid user (chsh wronguser)..." +chsh wronguser 2>tmp/usage.out && exit 1 || { + status=$? +} +echo "OK" + +echo -n "Check returned status ($status)..." +test "$status" = "1" +echo "OK" + +echo "chsh reported:" +echo "=======================================================================" +cat tmp/usage.out +echo "=======================================================================" +echo -n "Check the usage message..." +diff -au data/usage.out tmp/usage.out +echo "usage message OK." +rm -f tmp/usage.out + +echo -n "Check the passwd file..." +../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chsh/07_chsh_usage_invalid_user/config.txt b/tests/tests/chsh/07_chsh_usage_invalid_user/config.txt new file mode 100644 index 00000000..e69de29b diff --git a/tests/tests/chsh/07_chsh_usage_invalid_user/config/etc/group b/tests/tests/chsh/07_chsh_usage_invalid_user/config/etc/group new file mode 100644 index 00000000..e69de29b diff --git a/tests/tests/chsh/07_chsh_usage_invalid_user/config/etc/gshadow b/tests/tests/chsh/07_chsh_usage_invalid_user/config/etc/gshadow new file mode 100644 index 00000000..e69de29b diff --git a/tests/tests/chsh/07_chsh_usage_invalid_user/config/etc/passwd b/tests/tests/chsh/07_chsh_usage_invalid_user/config/etc/passwd new file mode 100644 index 00000000..e69de29b diff --git a/tests/tests/chsh/07_chsh_usage_invalid_user/config/etc/shadow b/tests/tests/chsh/07_chsh_usage_invalid_user/config/etc/shadow new file mode 100644 index 00000000..e69de29b diff --git a/tests/tests/chsh/07_chsh_usage_invalid_user/data/usage.out b/tests/tests/chsh/07_chsh_usage_invalid_user/data/usage.out new file mode 100644 index 00000000..f57326c7 --- /dev/null +++ b/tests/tests/chsh/07_chsh_usage_invalid_user/data/usage.out @@ -0,0 +1 @@ +chsh: user 'wronguser' does not exist diff --git a/tests/tests/chsh/08_chsh_myuser_to_restricted_shell/chsh.test b/tests/tests/chsh/08_chsh_myuser_to_restricted_shell/chsh.test new file mode 100755 index 00000000..611d1a6b --- /dev/null +++ b/tests/tests/chsh/08_chsh_myuser_to_restricted_shell/chsh.test @@ -0,0 +1,41 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../common/config.sh +. ../../common/log.sh + +log_start "$0" "chsh can displays its usage message" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +chmod a+w tmp + +echo -n "execute chsh..." +su myuser -c "./run.exp /bin/bash" +echo "OK" + +echo -n "Check the passwd file..." +../../common/compare_file.pl data/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chsh/08_chsh_myuser_to_restricted_shell/config.txt b/tests/tests/chsh/08_chsh_myuser_to_restricted_shell/config.txt new file mode 100644 index 00000000..e69de29b diff --git a/tests/tests/chsh/08_chsh_myuser_to_restricted_shell/config/etc/group b/tests/tests/chsh/08_chsh_myuser_to_restricted_shell/config/etc/group new file mode 100644 index 00000000..245cc9cf --- /dev/null +++ b/tests/tests/chsh/08_chsh_myuser_to_restricted_shell/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: diff --git a/tests/tests/chsh/08_chsh_myuser_to_restricted_shell/config/etc/gshadow b/tests/tests/chsh/08_chsh_myuser_to_restricted_shell/config/etc/gshadow new file mode 100644 index 00000000..25bd55bd --- /dev/null +++ b/tests/tests/chsh/08_chsh_myuser_to_restricted_shell/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: diff --git a/tests/tests/chsh/08_chsh_myuser_to_restricted_shell/config/etc/passwd b/tests/tests/chsh/08_chsh_myuser_to_restricted_shell/config/etc/passwd new file mode 100644 index 00000000..ae3eda3f --- /dev/null +++ b/tests/tests/chsh/08_chsh_myuser_to_restricted_shell/config/etc/passwd @@ -0,0 +1,21 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser:x:424242:424242::/home:/bin/sh +myuser2:x:424243:424242::/home:/bin/sh diff --git a/tests/tests/chsh/08_chsh_myuser_to_restricted_shell/config/etc/shadow b/tests/tests/chsh/08_chsh_myuser_to_restricted_shell/config/etc/shadow new file mode 100644 index 00000000..f004fa26 --- /dev/null +++ b/tests/tests/chsh/08_chsh_myuser_to_restricted_shell/config/etc/shadow @@ -0,0 +1,21 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: +myuser2:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: diff --git a/tests/tests/chsh/08_chsh_myuser_to_restricted_shell/config/etc/shells b/tests/tests/chsh/08_chsh_myuser_to_restricted_shell/config/etc/shells new file mode 100644 index 00000000..16e922a1 --- /dev/null +++ b/tests/tests/chsh/08_chsh_myuser_to_restricted_shell/config/etc/shells @@ -0,0 +1,15 @@ +# /etc/shells: valid login shells +/bin/ash +/bin/csh +/bin/sh +/usr/bin/es +/usr/bin/ksh +/bin/ksh +/usr/bin/rc +/usr/bin/tcsh +/bin/tcsh +/usr/bin/zsh +/bin/sash +#/bin/zsh +/usr/bin/esh +/bin/rbash diff --git a/tests/tests/chsh/08_chsh_myuser_to_restricted_shell/data/passwd b/tests/tests/chsh/08_chsh_myuser_to_restricted_shell/data/passwd new file mode 100644 index 00000000..ae3eda3f --- /dev/null +++ b/tests/tests/chsh/08_chsh_myuser_to_restricted_shell/data/passwd @@ -0,0 +1,21 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser:x:424242:424242::/home:/bin/sh +myuser2:x:424243:424242::/home:/bin/sh diff --git a/tests/tests/chsh/08_chsh_myuser_to_restricted_shell/run.exp b/tests/tests/chsh/08_chsh_myuser_to_restricted_shell/run.exp new file mode 100755 index 00000000..b1bd8d66 --- /dev/null +++ b/tests/tests/chsh/08_chsh_myuser_to_restricted_shell/run.exp @@ -0,0 +1,41 @@ +#!/usr/bin/expect + +set timeout 5 + +if {$argc < 1} { + puts "usage: run.exp \[shell] \[user]" + exit 1 +} +set shell [lindex $argv 0] + +if {$argc == 2} { + spawn /usr/bin/chsh [lindex $argv 1] +} else { + spawn /usr/bin/chsh +} + +expect "Password: " +send "myuserF00barbaz\r" +expect "Changing the login shell for myuser" +expect "Enter the new value, or press ENTER for the default" +expect -re "Login Shell .*\]: " +send "$shell\r" +expect "$shell\r\n" +expect "chsh: $shell is an invalid shell\r\n" +expect { + eof { + if ([string compare $expect_out(buffer) ""]) { + set fp [open "tmp/out" w] + puts $fp "$expect_out(buffer)" + puts "\nFAIL" + exit 1 + } + } default { + puts "\nFAIL" + exit 1 + } +} + +puts "\nPASS" +exit 0 + diff --git a/tests/tests/chsh/09_chsh_myuser_to_missing_shell/chsh.test b/tests/tests/chsh/09_chsh_myuser_to_missing_shell/chsh.test new file mode 100755 index 00000000..6248780b --- /dev/null +++ b/tests/tests/chsh/09_chsh_myuser_to_missing_shell/chsh.test @@ -0,0 +1,42 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../common/config.sh +. ../../common/log.sh + +log_start "$0" "chsh can displays its usage message" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +chmod a+w tmp + +echo /tmp/bash >> /etc/shells +echo -n "execute chsh..." +su myuser -c "./run.exp /tmp/bash" +echo "OK" + +echo -n "Check the passwd file..." +../../common/compare_file.pl data/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chsh/09_chsh_myuser_to_missing_shell/config.txt b/tests/tests/chsh/09_chsh_myuser_to_missing_shell/config.txt new file mode 100644 index 00000000..e69de29b diff --git a/tests/tests/chsh/09_chsh_myuser_to_missing_shell/config/etc/group b/tests/tests/chsh/09_chsh_myuser_to_missing_shell/config/etc/group new file mode 100644 index 00000000..245cc9cf --- /dev/null +++ b/tests/tests/chsh/09_chsh_myuser_to_missing_shell/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: diff --git a/tests/tests/chsh/09_chsh_myuser_to_missing_shell/config/etc/gshadow b/tests/tests/chsh/09_chsh_myuser_to_missing_shell/config/etc/gshadow new file mode 100644 index 00000000..25bd55bd --- /dev/null +++ b/tests/tests/chsh/09_chsh_myuser_to_missing_shell/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: diff --git a/tests/tests/chsh/09_chsh_myuser_to_missing_shell/config/etc/passwd b/tests/tests/chsh/09_chsh_myuser_to_missing_shell/config/etc/passwd new file mode 100644 index 00000000..ae3eda3f --- /dev/null +++ b/tests/tests/chsh/09_chsh_myuser_to_missing_shell/config/etc/passwd @@ -0,0 +1,21 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser:x:424242:424242::/home:/bin/sh +myuser2:x:424243:424242::/home:/bin/sh diff --git a/tests/tests/chsh/09_chsh_myuser_to_missing_shell/config/etc/shadow b/tests/tests/chsh/09_chsh_myuser_to_missing_shell/config/etc/shadow new file mode 100644 index 00000000..f004fa26 --- /dev/null +++ b/tests/tests/chsh/09_chsh_myuser_to_missing_shell/config/etc/shadow @@ -0,0 +1,21 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: +myuser2:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: diff --git a/tests/tests/chsh/09_chsh_myuser_to_missing_shell/config/etc/shells b/tests/tests/chsh/09_chsh_myuser_to_missing_shell/config/etc/shells new file mode 100644 index 00000000..16e922a1 --- /dev/null +++ b/tests/tests/chsh/09_chsh_myuser_to_missing_shell/config/etc/shells @@ -0,0 +1,15 @@ +# /etc/shells: valid login shells +/bin/ash +/bin/csh +/bin/sh +/usr/bin/es +/usr/bin/ksh +/bin/ksh +/usr/bin/rc +/usr/bin/tcsh +/bin/tcsh +/usr/bin/zsh +/bin/sash +#/bin/zsh +/usr/bin/esh +/bin/rbash diff --git a/tests/tests/chsh/09_chsh_myuser_to_missing_shell/data/passwd b/tests/tests/chsh/09_chsh_myuser_to_missing_shell/data/passwd new file mode 100644 index 00000000..ae3eda3f --- /dev/null +++ b/tests/tests/chsh/09_chsh_myuser_to_missing_shell/data/passwd @@ -0,0 +1,21 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser:x:424242:424242::/home:/bin/sh +myuser2:x:424243:424242::/home:/bin/sh diff --git a/tests/tests/chsh/09_chsh_myuser_to_missing_shell/run.exp b/tests/tests/chsh/09_chsh_myuser_to_missing_shell/run.exp new file mode 100755 index 00000000..b1bd8d66 --- /dev/null +++ b/tests/tests/chsh/09_chsh_myuser_to_missing_shell/run.exp @@ -0,0 +1,41 @@ +#!/usr/bin/expect + +set timeout 5 + +if {$argc < 1} { + puts "usage: run.exp \[shell] \[user]" + exit 1 +} +set shell [lindex $argv 0] + +if {$argc == 2} { + spawn /usr/bin/chsh [lindex $argv 1] +} else { + spawn /usr/bin/chsh +} + +expect "Password: " +send "myuserF00barbaz\r" +expect "Changing the login shell for myuser" +expect "Enter the new value, or press ENTER for the default" +expect -re "Login Shell .*\]: " +send "$shell\r" +expect "$shell\r\n" +expect "chsh: $shell is an invalid shell\r\n" +expect { + eof { + if ([string compare $expect_out(buffer) ""]) { + set fp [open "tmp/out" w] + puts $fp "$expect_out(buffer)" + puts "\nFAIL" + exit 1 + } + } default { + puts "\nFAIL" + exit 1 + } +} + +puts "\nPASS" +exit 0 + diff --git a/tests/tests/chsh/10_chsh_myuser_to_non_executable_shell/chsh.test b/tests/tests/chsh/10_chsh_myuser_to_non_executable_shell/chsh.test new file mode 100755 index 00000000..7dd4642d --- /dev/null +++ b/tests/tests/chsh/10_chsh_myuser_to_non_executable_shell/chsh.test @@ -0,0 +1,46 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../common/config.sh +. ../../common/log.sh + +log_start "$0" "chsh can displays its usage message" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config; rm -f /tmp/bash' 0 + +change_config + +chmod a+w tmp + +echo /tmp/bash >> /etc/shells +cp /bin/bash /tmp/bash +chmod a-x /tmp/bash + +echo -n "execute chsh..." +su myuser -c "./run.exp /tmp/bash" +echo "OK" +rm -f /tmp/bash + +echo -n "Check the passwd file..." +../../common/compare_file.pl data/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chsh/10_chsh_myuser_to_non_executable_shell/config.txt b/tests/tests/chsh/10_chsh_myuser_to_non_executable_shell/config.txt new file mode 100644 index 00000000..e69de29b diff --git a/tests/tests/chsh/10_chsh_myuser_to_non_executable_shell/config/etc/group b/tests/tests/chsh/10_chsh_myuser_to_non_executable_shell/config/etc/group new file mode 100644 index 00000000..245cc9cf --- /dev/null +++ b/tests/tests/chsh/10_chsh_myuser_to_non_executable_shell/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: diff --git a/tests/tests/chsh/10_chsh_myuser_to_non_executable_shell/config/etc/gshadow b/tests/tests/chsh/10_chsh_myuser_to_non_executable_shell/config/etc/gshadow new file mode 100644 index 00000000..25bd55bd --- /dev/null +++ b/tests/tests/chsh/10_chsh_myuser_to_non_executable_shell/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: diff --git a/tests/tests/chsh/10_chsh_myuser_to_non_executable_shell/config/etc/passwd b/tests/tests/chsh/10_chsh_myuser_to_non_executable_shell/config/etc/passwd new file mode 100644 index 00000000..ae3eda3f --- /dev/null +++ b/tests/tests/chsh/10_chsh_myuser_to_non_executable_shell/config/etc/passwd @@ -0,0 +1,21 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser:x:424242:424242::/home:/bin/sh +myuser2:x:424243:424242::/home:/bin/sh diff --git a/tests/tests/chsh/10_chsh_myuser_to_non_executable_shell/config/etc/shadow b/tests/tests/chsh/10_chsh_myuser_to_non_executable_shell/config/etc/shadow new file mode 100644 index 00000000..f004fa26 --- /dev/null +++ b/tests/tests/chsh/10_chsh_myuser_to_non_executable_shell/config/etc/shadow @@ -0,0 +1,21 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: +myuser2:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: diff --git a/tests/tests/chsh/10_chsh_myuser_to_non_executable_shell/config/etc/shells b/tests/tests/chsh/10_chsh_myuser_to_non_executable_shell/config/etc/shells new file mode 100644 index 00000000..16e922a1 --- /dev/null +++ b/tests/tests/chsh/10_chsh_myuser_to_non_executable_shell/config/etc/shells @@ -0,0 +1,15 @@ +# /etc/shells: valid login shells +/bin/ash +/bin/csh +/bin/sh +/usr/bin/es +/usr/bin/ksh +/bin/ksh +/usr/bin/rc +/usr/bin/tcsh +/bin/tcsh +/usr/bin/zsh +/bin/sash +#/bin/zsh +/usr/bin/esh +/bin/rbash diff --git a/tests/tests/chsh/10_chsh_myuser_to_non_executable_shell/data/passwd b/tests/tests/chsh/10_chsh_myuser_to_non_executable_shell/data/passwd new file mode 100644 index 00000000..ae3eda3f --- /dev/null +++ b/tests/tests/chsh/10_chsh_myuser_to_non_executable_shell/data/passwd @@ -0,0 +1,21 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser:x:424242:424242::/home:/bin/sh +myuser2:x:424243:424242::/home:/bin/sh diff --git a/tests/tests/chsh/10_chsh_myuser_to_non_executable_shell/run.exp b/tests/tests/chsh/10_chsh_myuser_to_non_executable_shell/run.exp new file mode 100755 index 00000000..b1bd8d66 --- /dev/null +++ b/tests/tests/chsh/10_chsh_myuser_to_non_executable_shell/run.exp @@ -0,0 +1,41 @@ +#!/usr/bin/expect + +set timeout 5 + +if {$argc < 1} { + puts "usage: run.exp \[shell] \[user]" + exit 1 +} +set shell [lindex $argv 0] + +if {$argc == 2} { + spawn /usr/bin/chsh [lindex $argv 1] +} else { + spawn /usr/bin/chsh +} + +expect "Password: " +send "myuserF00barbaz\r" +expect "Changing the login shell for myuser" +expect "Enter the new value, or press ENTER for the default" +expect -re "Login Shell .*\]: " +send "$shell\r" +expect "$shell\r\n" +expect "chsh: $shell is an invalid shell\r\n" +expect { + eof { + if ([string compare $expect_out(buffer) ""]) { + set fp [open "tmp/out" w] + puts $fp "$expect_out(buffer)" + puts "\nFAIL" + exit 1 + } + } default { + puts "\nFAIL" + exit 1 + } +} + +puts "\nPASS" +exit 0 + diff --git a/tests/tests/chsh/11_chsh_auth_failure/chsh.test b/tests/tests/chsh/11_chsh_auth_failure/chsh.test new file mode 100755 index 00000000..dda9bc6e --- /dev/null +++ b/tests/tests/chsh/11_chsh_auth_failure/chsh.test @@ -0,0 +1,41 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../common/config.sh +. ../../common/log.sh + +log_start "$0" "chsh checks password for non root" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +chmod a+w tmp + +echo -n "execute chsh..." +su myuser -c "./run.exp /bin/bash" +echo "OK" + +echo -n "Check the passwd file..." +../../common/compare_file.pl data/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chsh/11_chsh_auth_failure/config.txt b/tests/tests/chsh/11_chsh_auth_failure/config.txt new file mode 100644 index 00000000..e69de29b diff --git a/tests/tests/chsh/11_chsh_auth_failure/config/etc/group b/tests/tests/chsh/11_chsh_auth_failure/config/etc/group new file mode 100644 index 00000000..245cc9cf --- /dev/null +++ b/tests/tests/chsh/11_chsh_auth_failure/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: diff --git a/tests/tests/chsh/11_chsh_auth_failure/config/etc/gshadow b/tests/tests/chsh/11_chsh_auth_failure/config/etc/gshadow new file mode 100644 index 00000000..25bd55bd --- /dev/null +++ b/tests/tests/chsh/11_chsh_auth_failure/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: diff --git a/tests/tests/chsh/11_chsh_auth_failure/config/etc/passwd b/tests/tests/chsh/11_chsh_auth_failure/config/etc/passwd new file mode 100644 index 00000000..ae3eda3f --- /dev/null +++ b/tests/tests/chsh/11_chsh_auth_failure/config/etc/passwd @@ -0,0 +1,21 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser:x:424242:424242::/home:/bin/sh +myuser2:x:424243:424242::/home:/bin/sh diff --git a/tests/tests/chsh/11_chsh_auth_failure/config/etc/shadow b/tests/tests/chsh/11_chsh_auth_failure/config/etc/shadow new file mode 100644 index 00000000..f004fa26 --- /dev/null +++ b/tests/tests/chsh/11_chsh_auth_failure/config/etc/shadow @@ -0,0 +1,21 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: +myuser2:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: diff --git a/tests/tests/chsh/11_chsh_auth_failure/config/etc/shells b/tests/tests/chsh/11_chsh_auth_failure/config/etc/shells new file mode 100644 index 00000000..16e922a1 --- /dev/null +++ b/tests/tests/chsh/11_chsh_auth_failure/config/etc/shells @@ -0,0 +1,15 @@ +# /etc/shells: valid login shells +/bin/ash +/bin/csh +/bin/sh +/usr/bin/es +/usr/bin/ksh +/bin/ksh +/usr/bin/rc +/usr/bin/tcsh +/bin/tcsh +/usr/bin/zsh +/bin/sash +#/bin/zsh +/usr/bin/esh +/bin/rbash diff --git a/tests/tests/chsh/11_chsh_auth_failure/data/passwd b/tests/tests/chsh/11_chsh_auth_failure/data/passwd new file mode 100644 index 00000000..ae3eda3f --- /dev/null +++ b/tests/tests/chsh/11_chsh_auth_failure/data/passwd @@ -0,0 +1,21 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser:x:424242:424242::/home:/bin/sh +myuser2:x:424243:424242::/home:/bin/sh diff --git a/tests/tests/chsh/11_chsh_auth_failure/run.exp b/tests/tests/chsh/11_chsh_auth_failure/run.exp new file mode 100755 index 00000000..67e34552 --- /dev/null +++ b/tests/tests/chsh/11_chsh_auth_failure/run.exp @@ -0,0 +1,36 @@ +#!/usr/bin/expect + +set timeout 5 + +if {$argc < 1} { + puts "usage: run.exp \[shell] \[user]" + exit 1 +} +set shell [lindex $argv 0] + +if {$argc == 2} { + spawn /usr/bin/chsh [lindex $argv 1] +} else { + spawn /usr/bin/chsh +} + +expect "Password: " +send "wrong pass\r" +expect "chsh: PAM: Authentication failure\r\n" +expect { + eof { + if ([string compare $expect_out(buffer) ""]) { + set fp [open "tmp/out" w] + puts $fp "$expect_out(buffer)" + puts "\nFAIL" + exit 1 + } + } default { + puts "\nFAIL" + exit 1 + } +} + +puts "\nPASS" +exit 0 + diff --git a/tests/tests/chsh/12_chsh_warning_missing_shell/chsh.test b/tests/tests/chsh/12_chsh_warning_missing_shell/chsh.test new file mode 100755 index 00000000..de12b13e --- /dev/null +++ b/tests/tests/chsh/12_chsh_warning_missing_shell/chsh.test @@ -0,0 +1,48 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../common/config.sh +. ../../common/log.sh + +log_start "$0" "chsh can displays its usage message" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "Change shell to a missing shell (chsh -s /tmp/bash bin)..." +chsh -s /tmp/bash bin 2>tmp/chsh.err +echo "OK" + +echo "chsh reported:" +echo "=======================================================================" +cat tmp/chsh.err +echo "=======================================================================" +echo -n "Check the usage message..." +diff -au data/chsh.err tmp/chsh.err +echo "usage message OK." +rm -f tmp/chsh.err + +echo -n "Check the passwd file..." +../../common/compare_file.pl data/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chsh/12_chsh_warning_missing_shell/config.txt b/tests/tests/chsh/12_chsh_warning_missing_shell/config.txt new file mode 100644 index 00000000..e69de29b diff --git a/tests/tests/chsh/12_chsh_warning_missing_shell/config/etc/group b/tests/tests/chsh/12_chsh_warning_missing_shell/config/etc/group new file mode 100644 index 00000000..245cc9cf --- /dev/null +++ b/tests/tests/chsh/12_chsh_warning_missing_shell/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: diff --git a/tests/tests/chsh/12_chsh_warning_missing_shell/config/etc/gshadow b/tests/tests/chsh/12_chsh_warning_missing_shell/config/etc/gshadow new file mode 100644 index 00000000..25bd55bd --- /dev/null +++ b/tests/tests/chsh/12_chsh_warning_missing_shell/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: diff --git a/tests/tests/chsh/12_chsh_warning_missing_shell/config/etc/pam.d/chsh b/tests/tests/chsh/12_chsh_warning_missing_shell/config/etc/pam.d/chsh new file mode 100644 index 00000000..7eb604d7 --- /dev/null +++ b/tests/tests/chsh/12_chsh_warning_missing_shell/config/etc/pam.d/chsh @@ -0,0 +1,20 @@ +# +# The PAM configuration file for the Shadow `chsh' service +# + +# This will not allow a user to change their shell unless +# their current one is listed in /etc/shells. This keeps +# accounts with special shells from changing them. +auth required pam_shells.so + +# This allows root to change user shell without being +# prompted for a password +auth sufficient pam_rootok.so + +# The standard Unix authentication modules, used with +# NIS (man nsswitch) as well as normal /etc/passwd and +# /etc/shadow entries. +@include common-auth +@include common-account +@include common-session + diff --git a/tests/tests/chsh/12_chsh_warning_missing_shell/config/etc/passwd b/tests/tests/chsh/12_chsh_warning_missing_shell/config/etc/passwd new file mode 100644 index 00000000..ae3eda3f --- /dev/null +++ b/tests/tests/chsh/12_chsh_warning_missing_shell/config/etc/passwd @@ -0,0 +1,21 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser:x:424242:424242::/home:/bin/sh +myuser2:x:424243:424242::/home:/bin/sh diff --git a/tests/tests/chsh/12_chsh_warning_missing_shell/config/etc/shadow b/tests/tests/chsh/12_chsh_warning_missing_shell/config/etc/shadow new file mode 100644 index 00000000..f004fa26 --- /dev/null +++ b/tests/tests/chsh/12_chsh_warning_missing_shell/config/etc/shadow @@ -0,0 +1,21 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: +myuser2:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: diff --git a/tests/tests/chsh/12_chsh_warning_missing_shell/config/etc/shells b/tests/tests/chsh/12_chsh_warning_missing_shell/config/etc/shells new file mode 100644 index 00000000..4fd4378e --- /dev/null +++ b/tests/tests/chsh/12_chsh_warning_missing_shell/config/etc/shells @@ -0,0 +1,16 @@ +# /etc/shells: valid login shells +/bin/ash +/bin/csh +/bin/sh +/usr/bin/es +/usr/bin/ksh +/bin/ksh +/usr/bin/rc +/usr/bin/tcsh +/bin/tcsh +/usr/bin/zsh +/bin/sash +/bin/zsh +/usr/bin/esh +/bin/bash +/bin/rbash diff --git a/tests/tests/chsh/12_chsh_warning_missing_shell/data/chsh.err b/tests/tests/chsh/12_chsh_warning_missing_shell/data/chsh.err new file mode 100644 index 00000000..7801a163 --- /dev/null +++ b/tests/tests/chsh/12_chsh_warning_missing_shell/data/chsh.err @@ -0,0 +1 @@ +chsh: Warning: /tmp/bash does not exist diff --git a/tests/tests/chsh/12_chsh_warning_missing_shell/data/passwd b/tests/tests/chsh/12_chsh_warning_missing_shell/data/passwd new file mode 100644 index 00000000..7e745d96 --- /dev/null +++ b/tests/tests/chsh/12_chsh_warning_missing_shell/data/passwd @@ -0,0 +1,21 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/tmp/bash +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser:x:424242:424242::/home:/bin/sh +myuser2:x:424243:424242::/home:/bin/sh diff --git a/tests/tests/chsh/13_chsh_warning_non_executable/chsh.test b/tests/tests/chsh/13_chsh_warning_non_executable/chsh.test new file mode 100755 index 00000000..c98bad72 --- /dev/null +++ b/tests/tests/chsh/13_chsh_warning_non_executable/chsh.test @@ -0,0 +1,52 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../common/config.sh +. ../../common/log.sh + +log_start "$0" "chsh can displays its usage message" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config; rm -f /tmp/bash' 0 + +change_config + +cp /bin/bash /tmp/bash +chmod a-x /tmp/bash + +echo -n "Change shell to a missing shell (chsh -s /tmp/bash bin)..." +chsh -s /tmp/bash bin 2>tmp/chsh.err +echo "OK" +rm -f /tmp/bash + +echo "chsh reported:" +echo "=======================================================================" +cat tmp/chsh.err +echo "=======================================================================" +echo -n "Check the usage message..." +diff -au data/chsh.err tmp/chsh.err +echo "usage message OK." +rm -f tmp/chsh.err + +echo -n "Check the passwd file..." +../../common/compare_file.pl data/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chsh/13_chsh_warning_non_executable/config.txt b/tests/tests/chsh/13_chsh_warning_non_executable/config.txt new file mode 100644 index 00000000..e69de29b diff --git a/tests/tests/chsh/13_chsh_warning_non_executable/config/etc/group b/tests/tests/chsh/13_chsh_warning_non_executable/config/etc/group new file mode 100644 index 00000000..245cc9cf --- /dev/null +++ b/tests/tests/chsh/13_chsh_warning_non_executable/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: diff --git a/tests/tests/chsh/13_chsh_warning_non_executable/config/etc/gshadow b/tests/tests/chsh/13_chsh_warning_non_executable/config/etc/gshadow new file mode 100644 index 00000000..25bd55bd --- /dev/null +++ b/tests/tests/chsh/13_chsh_warning_non_executable/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: diff --git a/tests/tests/chsh/13_chsh_warning_non_executable/config/etc/pam.d/chsh b/tests/tests/chsh/13_chsh_warning_non_executable/config/etc/pam.d/chsh new file mode 100644 index 00000000..7eb604d7 --- /dev/null +++ b/tests/tests/chsh/13_chsh_warning_non_executable/config/etc/pam.d/chsh @@ -0,0 +1,20 @@ +# +# The PAM configuration file for the Shadow `chsh' service +# + +# This will not allow a user to change their shell unless +# their current one is listed in /etc/shells. This keeps +# accounts with special shells from changing them. +auth required pam_shells.so + +# This allows root to change user shell without being +# prompted for a password +auth sufficient pam_rootok.so + +# The standard Unix authentication modules, used with +# NIS (man nsswitch) as well as normal /etc/passwd and +# /etc/shadow entries. +@include common-auth +@include common-account +@include common-session + diff --git a/tests/tests/chsh/13_chsh_warning_non_executable/config/etc/passwd b/tests/tests/chsh/13_chsh_warning_non_executable/config/etc/passwd new file mode 100644 index 00000000..ae3eda3f --- /dev/null +++ b/tests/tests/chsh/13_chsh_warning_non_executable/config/etc/passwd @@ -0,0 +1,21 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser:x:424242:424242::/home:/bin/sh +myuser2:x:424243:424242::/home:/bin/sh diff --git a/tests/tests/chsh/13_chsh_warning_non_executable/config/etc/shadow b/tests/tests/chsh/13_chsh_warning_non_executable/config/etc/shadow new file mode 100644 index 00000000..f004fa26 --- /dev/null +++ b/tests/tests/chsh/13_chsh_warning_non_executable/config/etc/shadow @@ -0,0 +1,21 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: +myuser2:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: diff --git a/tests/tests/chsh/13_chsh_warning_non_executable/config/etc/shells b/tests/tests/chsh/13_chsh_warning_non_executable/config/etc/shells new file mode 100644 index 00000000..4fd4378e --- /dev/null +++ b/tests/tests/chsh/13_chsh_warning_non_executable/config/etc/shells @@ -0,0 +1,16 @@ +# /etc/shells: valid login shells +/bin/ash +/bin/csh +/bin/sh +/usr/bin/es +/usr/bin/ksh +/bin/ksh +/usr/bin/rc +/usr/bin/tcsh +/bin/tcsh +/usr/bin/zsh +/bin/sash +/bin/zsh +/usr/bin/esh +/bin/bash +/bin/rbash diff --git a/tests/tests/chsh/13_chsh_warning_non_executable/data/chsh.err b/tests/tests/chsh/13_chsh_warning_non_executable/data/chsh.err new file mode 100644 index 00000000..4a87ec2e --- /dev/null +++ b/tests/tests/chsh/13_chsh_warning_non_executable/data/chsh.err @@ -0,0 +1 @@ +chsh: Warning: /tmp/bash is not executable diff --git a/tests/tests/chsh/13_chsh_warning_non_executable/data/passwd b/tests/tests/chsh/13_chsh_warning_non_executable/data/passwd new file mode 100644 index 00000000..7e745d96 --- /dev/null +++ b/tests/tests/chsh/13_chsh_warning_non_executable/data/passwd @@ -0,0 +1,21 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/tmp/bash +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser:x:424242:424242::/home:/bin/sh +myuser2:x:424243:424242::/home:/bin/sh diff --git a/tests/tests/chsh/14_chsh_locked_passwd/chsh.test b/tests/tests/chsh/14_chsh_locked_passwd/chsh.test new file mode 100755 index 00000000..c41e1ebb --- /dev/null +++ b/tests/tests/chsh/14_chsh_locked_passwd/chsh.test @@ -0,0 +1,59 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../common/config.sh +. ../../common/log.sh + +log_start "$0" "chsh warns when passwd is already locked" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config; rm -f /etc/passwd.lock' 0 + +change_config + +echo -n "Create lock file for /etc/passwd..." +touch /etc/passwd.lock +echo "done" + +echo -n "Change shell (chsh -s /bin/bash bin)..." +chsh -s /bin/bash bin 2>tmp/chsh.err && exit 1 || { + status=$? +} +echo "OK" +rm -f /etc/passwd.lock + +echo -n "Check returned status ($status)..." +test "$status" = "1" +echo "OK" + +echo "chsh reported:" +echo "=======================================================================" +cat tmp/chsh.err +echo "=======================================================================" +echo -n "Check the error message..." +diff -au data/chsh.err tmp/chsh.err +echo "error message OK." +rm -f tmp/chsh.err + +echo -n "Check the passwd file..." +../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chsh/14_chsh_locked_passwd/config.txt b/tests/tests/chsh/14_chsh_locked_passwd/config.txt new file mode 100644 index 00000000..e69de29b diff --git a/tests/tests/chsh/14_chsh_locked_passwd/config/etc/group b/tests/tests/chsh/14_chsh_locked_passwd/config/etc/group new file mode 100644 index 00000000..245cc9cf --- /dev/null +++ b/tests/tests/chsh/14_chsh_locked_passwd/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: diff --git a/tests/tests/chsh/14_chsh_locked_passwd/config/etc/gshadow b/tests/tests/chsh/14_chsh_locked_passwd/config/etc/gshadow new file mode 100644 index 00000000..25bd55bd --- /dev/null +++ b/tests/tests/chsh/14_chsh_locked_passwd/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: diff --git a/tests/tests/chsh/14_chsh_locked_passwd/config/etc/passwd b/tests/tests/chsh/14_chsh_locked_passwd/config/etc/passwd new file mode 100644 index 00000000..5d27e129 --- /dev/null +++ b/tests/tests/chsh/14_chsh_locked_passwd/config/etc/passwd @@ -0,0 +1,26 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser1:x:424242:424242::/home:/bin/bash +myuser2:x:424243:424242::/home:/bin/bash +myuser3:x:424244:424242::/home:/bin/bash +myuser4:x:424245:424242::/home:/bin/bash +myuser5:x:424246:424242::/home:/bin/bash +myuser6:x:424247:424242::/home:/bin/bash +myuser7:x:424248:424242::/home:/bin/bash diff --git a/tests/tests/chsh/14_chsh_locked_passwd/config/etc/shadow b/tests/tests/chsh/14_chsh_locked_passwd/config/etc/shadow new file mode 100644 index 00000000..da4c2bc4 --- /dev/null +++ b/tests/tests/chsh/14_chsh_locked_passwd/config/etc/shadow @@ -0,0 +1,26 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser1:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: +myuser2:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12992:1:99996:5::: +myuser3:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::0: +myuser4:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::1: +myuser5:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:0:: +myuser6:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: +myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: diff --git a/tests/tests/chsh/14_chsh_locked_passwd/data/chsh.err b/tests/tests/chsh/14_chsh_locked_passwd/data/chsh.err new file mode 100644 index 00000000..c5ebce9e --- /dev/null +++ b/tests/tests/chsh/14_chsh_locked_passwd/data/chsh.err @@ -0,0 +1,2 @@ +chsh: existing lock file /etc/passwd.lock without a PID +chsh: cannot lock /etc/passwd; try again later. diff --git a/tests/tests/chsh/15_chsh_PAM_error/chsh.test b/tests/tests/chsh/15_chsh_PAM_error/chsh.test new file mode 100755 index 00000000..c900e0c3 --- /dev/null +++ b/tests/tests/chsh/15_chsh_PAM_error/chsh.test @@ -0,0 +1,58 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../common/config.sh +. ../../common/log.sh + +log_start "$0" "chsh warns when the chsh PAM configuration is invalid" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "Remove the PAM configuration (/etc/pam.d/chsh /etc/pam.d/other)..." +rm -f /etc/pam.d/chsh /etc/pam.d/other +echo OK + +echo -n "Change shell (chsh -s /bin/bash bin)..." +chsh -s /bin/bash bin 2>tmp/chsh.err && exit 1 || { + status=$? +} +echo "OK" + +echo -n "Check returned status ($status)..." +test "$status" = "1" +echo "OK" + +echo "chsh reported:" +echo "=======================================================================" +cat tmp/chsh.err +echo "=======================================================================" +echo -n "Check the error message..." +diff -au data/chsh.err tmp/chsh.err +echo "error message OK." +rm -f tmp/chsh.err + +echo -n "Check the passwd file..." +../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/chsh/15_chsh_PAM_error/config.txt b/tests/tests/chsh/15_chsh_PAM_error/config.txt new file mode 100644 index 00000000..e69de29b diff --git a/tests/tests/chsh/15_chsh_PAM_error/config/etc/group b/tests/tests/chsh/15_chsh_PAM_error/config/etc/group new file mode 100644 index 00000000..245cc9cf --- /dev/null +++ b/tests/tests/chsh/15_chsh_PAM_error/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +myuser:x:424242: diff --git a/tests/tests/chsh/15_chsh_PAM_error/config/etc/gshadow b/tests/tests/chsh/15_chsh_PAM_error/config/etc/gshadow new file mode 100644 index 00000000..25bd55bd --- /dev/null +++ b/tests/tests/chsh/15_chsh_PAM_error/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +myuser:x:: diff --git a/tests/tests/chsh/15_chsh_PAM_error/config/etc/pam.d/chsh b/tests/tests/chsh/15_chsh_PAM_error/config/etc/pam.d/chsh new file mode 100644 index 00000000..91529699 --- /dev/null +++ b/tests/tests/chsh/15_chsh_PAM_error/config/etc/pam.d/chsh @@ -0,0 +1 @@ +This file will be removed diff --git a/tests/tests/chsh/15_chsh_PAM_error/config/etc/pam.d/other b/tests/tests/chsh/15_chsh_PAM_error/config/etc/pam.d/other new file mode 100644 index 00000000..91529699 --- /dev/null +++ b/tests/tests/chsh/15_chsh_PAM_error/config/etc/pam.d/other @@ -0,0 +1 @@ +This file will be removed diff --git a/tests/tests/chsh/15_chsh_PAM_error/config/etc/passwd b/tests/tests/chsh/15_chsh_PAM_error/config/etc/passwd new file mode 100644 index 00000000..5d27e129 --- /dev/null +++ b/tests/tests/chsh/15_chsh_PAM_error/config/etc/passwd @@ -0,0 +1,26 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +myuser1:x:424242:424242::/home:/bin/bash +myuser2:x:424243:424242::/home:/bin/bash +myuser3:x:424244:424242::/home:/bin/bash +myuser4:x:424245:424242::/home:/bin/bash +myuser5:x:424246:424242::/home:/bin/bash +myuser6:x:424247:424242::/home:/bin/bash +myuser7:x:424248:424242::/home:/bin/bash diff --git a/tests/tests/chsh/15_chsh_PAM_error/config/etc/shadow b/tests/tests/chsh/15_chsh_PAM_error/config/etc/shadow new file mode 100644 index 00000000..da4c2bc4 --- /dev/null +++ b/tests/tests/chsh/15_chsh_PAM_error/config/etc/shadow @@ -0,0 +1,26 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +myuser1:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::: +myuser2:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12992:1:99996:5::: +myuser3:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::0: +myuser4:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7::1: +myuser5:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:0:: +myuser6:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: +myuser7:$1$yQnIAZWV$gDAMB2IkqaONgrQiRdo4y.:12991:0:99999:7:1:: diff --git a/tests/tests/chsh/15_chsh_PAM_error/data/chsh.err b/tests/tests/chsh/15_chsh_PAM_error/data/chsh.err new file mode 100644 index 00000000..5c039d55 --- /dev/null +++ b/tests/tests/chsh/15_chsh_PAM_error/data/chsh.err @@ -0,0 +1 @@ +chsh: PAM: Critical error - immediate abort diff --git a/tests/tests/cktools/01/data/group b/tests/tests/cktools/01/data/group new file mode 100644 index 00000000..10123908 --- /dev/null +++ b/tests/tests/cktools/01/data/group @@ -0,0 +1,41 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: diff --git a/tests/tests/cktools/01/data/gshadow b/tests/tests/cktools/01/data/gshadow new file mode 100644 index 00000000..ae424865 --- /dev/null +++ b/tests/tests/cktools/01/data/gshadow @@ -0,0 +1,41 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: diff --git a/tests/tests/cktools/01/data/passwd b/tests/tests/cktools/01/data/passwd new file mode 100644 index 00000000..43fc135a --- /dev/null +++ b/tests/tests/cktools/01/data/passwd @@ -0,0 +1,19 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false diff --git a/tests/tests/cktools/01/data/run2.err b/tests/tests/cktools/01/data/run2.err new file mode 100644 index 00000000..e69de29b diff --git a/tests/tests/cktools/01/data/run2.out b/tests/tests/cktools/01/data/run2.out new file mode 100644 index 00000000..00df3125 --- /dev/null +++ b/tests/tests/cktools/01/data/run2.out @@ -0,0 +1,13 @@ +user 'lp': directory '/var/spool/lpd' does not exist +user 'news': directory '/var/spool/news' does not exist +user 'uucp': directory '/var/spool/uucp' does not exist +user 'www-data': directory '/var/www' does not exist +user 'list': directory '/var/list' does not exist +user 'irc': directory '/var/run/ircd' does not exist +user 'gnats': directory '/var/lib/gnats' does not exist +user 'nobody': directory '/nonexistent' does not exist +user 'Debian-exim': directory '/var/spool/exim4' does not exist +user 'test': no group 10002 +no matching password file entry in /etc/shadow +add user 'test' in /etc/shadow? No +pwck: no changes diff --git a/tests/tests/cktools/01/data/shadow b/tests/tests/cktools/01/data/shadow new file mode 100644 index 00000000..5f50d187 --- /dev/null +++ b/tests/tests/cktools/01/data/shadow @@ -0,0 +1,19 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/01/run1 b/tests/tests/cktools/01/run1 new file mode 100755 index 00000000..04aa793b --- /dev/null +++ b/tests/tests/cktools/01/run1 @@ -0,0 +1,54 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +# Rational: +# Test that useradd can add an user and userdel removes it. + +save() +{ + [ ! -d tmp ] && mkdir tmp + for i in passwd group shadow gshadow + do + [ -f /etc/$i ] && cp /etc/$i tmp/$i + done + + true +} + +restore() +{ + for i in passwd group shadow gshadow + do + [ -f tmp/$i ] && cp tmp/$i /etc/$i && rm tmp/$i + done + rmdir tmp +} + +save + +# restore the files on exit +trap 'restore' 0 + +for i in passwd group shadow gshadow +do + cp data/$i /etc +done + +lines_passwd=$(wc -l /etc/passwd | cut -f1 -d" ") +lines_shadow=$(wc -l /etc/shadow | cut -f1 -d" ") +lines_group=$(wc -l /etc/group | cut -f1 -d" ") +lines_gshadow=$(wc -l /etc/gshadow | cut -f1 -d" ") + +echo "pwck accepts valid password file " +msg=$(pwck -r | grep -v "^user .*: directory .* does not exist$") +echo msg: $msg +test "$msg" = "pwck: no changes" +echo " OK" +echo "grpck accepts valid password file " +msg=$(grpck -r) +test "$msg" = "" +echo " OK" + diff --git a/tests/tests/cktools/01/run2 b/tests/tests/cktools/01/run2 new file mode 100755 index 00000000..df1e2777 --- /dev/null +++ b/tests/tests/cktools/01/run2 @@ -0,0 +1,62 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +# Rational: +# Test that useradd can add an user and userdel removes it. + +save() +{ + [ ! -d tmp ] && mkdir tmp + for i in passwd group shadow gshadow + do + [ -f /etc/$i ] && cp /etc/$i tmp/$i + done + + true +} + +restore() +{ + rm -f tmp/err tmp/out + for i in passwd group shadow gshadow + do + [ -f tmp/$i ] && cp tmp/$i /etc/$i && rm tmp/$i + done + rmdir tmp +} + +save + +# restore the files on exit +trap 'restore' 0 + +for i in passwd group shadow gshadow +do + cp data/$i /etc +done + +lines_passwd=$(wc -l /etc/passwd | cut -f1 -d" ") +lines_shadow=$(wc -l /etc/shadow | cut -f1 -d" ") +lines_group=$(wc -l /etc/group | cut -f1 -d" ") +lines_gshadow=$(wc -l /etc/gshadow | cut -f1 -d" ") + +echo -n "Add an user without an entry in shadow " +echo "test:x:10002:10002::/tmp:/bin/false" >> /etc/passwd +echo "OK" + +echo "Check that pwck detects it " +pwck -r > tmp/out 2> tmp/err || true +diff -au data/run2.out tmp/out +diff -au data/run2.err tmp/err +echo " OK" +echo "grpck accepts valid password file " +msg=$(grpck -r) +test "$msg" = "" +echo " OK" + +#echo -n "Make sure pwck can fix it " +#pwcd +#echo "OK" diff --git a/tests/tests/cktools/02_pwck_sort/config.txt b/tests/tests/cktools/02_pwck_sort/config.txt new file mode 100644 index 00000000..3d43135c --- /dev/null +++ b/tests/tests/cktools/02_pwck_sort/config.txt @@ -0,0 +1,5 @@ +# no testsuite password +# root password: rootF00barbaz +# myuser password: myuserF00barbaz + +user foo, in group users diff --git a/tests/tests/cktools/02_pwck_sort/config/etc/group b/tests/tests/cktools/02_pwck_sort/config/etc/group new file mode 100644 index 00000000..50518255 --- /dev/null +++ b/tests/tests/cktools/02_pwck_sort/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100:foo +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: diff --git a/tests/tests/cktools/02_pwck_sort/config/etc/gshadow b/tests/tests/cktools/02_pwck_sort/config/etc/gshadow new file mode 100644 index 00000000..5042e581 --- /dev/null +++ b/tests/tests/cktools/02_pwck_sort/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/cktools/02_pwck_sort/config/etc/passwd b/tests/tests/cktools/02_pwck_sort/config/etc/passwd new file mode 100644 index 00000000..e69a810c --- /dev/null +++ b/tests/tests/cktools/02_pwck_sort/config/etc/passwd @@ -0,0 +1,20 @@ +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +root:x:0:0:root:/root:/bin/bash +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +games:x:5:60:games:/usr/games:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +foo:x:1000:1000:::/bin/false diff --git a/tests/tests/cktools/02_pwck_sort/config/etc/shadow b/tests/tests/cktools/02_pwck_sort/config/etc/shadow new file mode 100644 index 00000000..42cf133f --- /dev/null +++ b/tests/tests/cktools/02_pwck_sort/config/etc/shadow @@ -0,0 +1,20 @@ +daemon:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/02_pwck_sort/data/passwd b/tests/tests/cktools/02_pwck_sort/data/passwd new file mode 100644 index 00000000..5b45b52c --- /dev/null +++ b/tests/tests/cktools/02_pwck_sort/data/passwd @@ -0,0 +1,20 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +foo:x:1000:1000:::/bin/false +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh diff --git a/tests/tests/cktools/02_pwck_sort/data/shadow b/tests/tests/cktools/02_pwck_sort/data/shadow new file mode 100644 index 00000000..8033f272 --- /dev/null +++ b/tests/tests/cktools/02_pwck_sort/data/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: diff --git a/tests/tests/cktools/02_pwck_sort/pwck.test b/tests/tests/cktools/02_pwck_sort/pwck.test new file mode 100755 index 00000000..9d6afb1b --- /dev/null +++ b/tests/tests/cktools/02_pwck_sort/pwck.test @@ -0,0 +1,39 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../common/config.sh +. ../../common/log.sh + +log_start "$0" "pwck can sort the passwd entries" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "Sort the passwd entries (pwck -s)..." +pwck -s +echo "OK" + +echo -n "Check the passwd file..." +../../common/compare_file.pl data/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../common/compare_file.pl data/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/03_grpck_sort/config.txt b/tests/tests/cktools/03_grpck_sort/config.txt new file mode 100644 index 00000000..3d43135c --- /dev/null +++ b/tests/tests/cktools/03_grpck_sort/config.txt @@ -0,0 +1,5 @@ +# no testsuite password +# root password: rootF00barbaz +# myuser password: myuserF00barbaz + +user foo, in group users diff --git a/tests/tests/cktools/03_grpck_sort/config/etc/group b/tests/tests/cktools/03_grpck_sort/config/etc/group new file mode 100644 index 00000000..afbb01e0 --- /dev/null +++ b/tests/tests/cktools/03_grpck_sort/config/etc/group @@ -0,0 +1,42 @@ +daemon:x:1: +bin:x:2: +kmem:x:15: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +root:x:0: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +shadow:x:42: +gnats:x:41: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100:foo +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: diff --git a/tests/tests/cktools/03_grpck_sort/config/etc/gshadow b/tests/tests/cktools/03_grpck_sort/config/etc/gshadow new file mode 100644 index 00000000..8182ad79 --- /dev/null +++ b/tests/tests/cktools/03_grpck_sort/config/etc/gshadow @@ -0,0 +1,42 @@ +daemon:*:: +bin:*:: +kmem:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +root:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +shadow:*:: +gnats:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/cktools/03_grpck_sort/config/etc/passwd b/tests/tests/cktools/03_grpck_sort/config/etc/passwd new file mode 100644 index 00000000..dc7bf840 --- /dev/null +++ b/tests/tests/cktools/03_grpck_sort/config/etc/passwd @@ -0,0 +1,20 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +foo:x:1000:1000:::/bin/false diff --git a/tests/tests/cktools/03_grpck_sort/config/etc/shadow b/tests/tests/cktools/03_grpck_sort/config/etc/shadow new file mode 100644 index 00000000..2baad3b4 --- /dev/null +++ b/tests/tests/cktools/03_grpck_sort/config/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/03_grpck_sort/data/group b/tests/tests/cktools/03_grpck_sort/data/group new file mode 100644 index 00000000..12659535 --- /dev/null +++ b/tests/tests/cktools/03_grpck_sort/data/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100:foo +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: +nogroup:x:65534: diff --git a/tests/tests/cktools/03_grpck_sort/data/gshadow b/tests/tests/cktools/03_grpck_sort/data/gshadow new file mode 100644 index 00000000..f2209e3b --- /dev/null +++ b/tests/tests/cktools/03_grpck_sort/data/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: +nogroup:*:: diff --git a/tests/tests/cktools/03_grpck_sort/grpck.test b/tests/tests/cktools/03_grpck_sort/grpck.test new file mode 100755 index 00000000..75e62cf6 --- /dev/null +++ b/tests/tests/cktools/03_grpck_sort/grpck.test @@ -0,0 +1,39 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../common/config.sh +. ../../common/log.sh + +log_start "$0" "grpck can sort the group entries" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "Sort the group entries (grpck -s)..." +grpck -s +echo "OK" + +echo -n "Check the passwd file..." +../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../common/compare_file.pl data/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../common/compare_file.pl data/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/04_pwck_sort_missing_shadow_user/config.txt b/tests/tests/cktools/04_pwck_sort_missing_shadow_user/config.txt new file mode 100644 index 00000000..3d43135c --- /dev/null +++ b/tests/tests/cktools/04_pwck_sort_missing_shadow_user/config.txt @@ -0,0 +1,5 @@ +# no testsuite password +# root password: rootF00barbaz +# myuser password: myuserF00barbaz + +user foo, in group users diff --git a/tests/tests/cktools/04_pwck_sort_missing_shadow_user/config/etc/group b/tests/tests/cktools/04_pwck_sort_missing_shadow_user/config/etc/group new file mode 100644 index 00000000..50518255 --- /dev/null +++ b/tests/tests/cktools/04_pwck_sort_missing_shadow_user/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100:foo +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: diff --git a/tests/tests/cktools/04_pwck_sort_missing_shadow_user/config/etc/gshadow b/tests/tests/cktools/04_pwck_sort_missing_shadow_user/config/etc/gshadow new file mode 100644 index 00000000..5042e581 --- /dev/null +++ b/tests/tests/cktools/04_pwck_sort_missing_shadow_user/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/cktools/04_pwck_sort_missing_shadow_user/config/etc/passwd b/tests/tests/cktools/04_pwck_sort_missing_shadow_user/config/etc/passwd new file mode 100644 index 00000000..e69a810c --- /dev/null +++ b/tests/tests/cktools/04_pwck_sort_missing_shadow_user/config/etc/passwd @@ -0,0 +1,20 @@ +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +root:x:0:0:root:/root:/bin/bash +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +games:x:5:60:games:/usr/games:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +foo:x:1000:1000:::/bin/false diff --git a/tests/tests/cktools/04_pwck_sort_missing_shadow_user/config/etc/shadow b/tests/tests/cktools/04_pwck_sort_missing_shadow_user/config/etc/shadow new file mode 100644 index 00000000..64573fab --- /dev/null +++ b/tests/tests/cktools/04_pwck_sort_missing_shadow_user/config/etc/shadow @@ -0,0 +1,19 @@ +daemon:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/04_pwck_sort_missing_shadow_user/data/passwd b/tests/tests/cktools/04_pwck_sort_missing_shadow_user/data/passwd new file mode 100644 index 00000000..5b45b52c --- /dev/null +++ b/tests/tests/cktools/04_pwck_sort_missing_shadow_user/data/passwd @@ -0,0 +1,20 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +foo:x:1000:1000:::/bin/false +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh diff --git a/tests/tests/cktools/04_pwck_sort_missing_shadow_user/data/shadow b/tests/tests/cktools/04_pwck_sort_missing_shadow_user/data/shadow new file mode 100644 index 00000000..f1e4d806 --- /dev/null +++ b/tests/tests/cktools/04_pwck_sort_missing_shadow_user/data/shadow @@ -0,0 +1,19 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +foo:!:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: diff --git a/tests/tests/cktools/04_pwck_sort_missing_shadow_user/pwck.test b/tests/tests/cktools/04_pwck_sort_missing_shadow_user/pwck.test new file mode 100755 index 00000000..9d6afb1b --- /dev/null +++ b/tests/tests/cktools/04_pwck_sort_missing_shadow_user/pwck.test @@ -0,0 +1,39 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../common/config.sh +. ../../common/log.sh + +log_start "$0" "pwck can sort the passwd entries" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "Sort the passwd entries (pwck -s)..." +pwck -s +echo "OK" + +echo -n "Check the passwd file..." +../../common/compare_file.pl data/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../common/compare_file.pl data/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/05_grpck_sort_missing_shadow_group/config.txt b/tests/tests/cktools/05_grpck_sort_missing_shadow_group/config.txt new file mode 100644 index 00000000..3d43135c --- /dev/null +++ b/tests/tests/cktools/05_grpck_sort_missing_shadow_group/config.txt @@ -0,0 +1,5 @@ +# no testsuite password +# root password: rootF00barbaz +# myuser password: myuserF00barbaz + +user foo, in group users diff --git a/tests/tests/cktools/05_grpck_sort_missing_shadow_group/config/etc/group b/tests/tests/cktools/05_grpck_sort_missing_shadow_group/config/etc/group new file mode 100644 index 00000000..afbb01e0 --- /dev/null +++ b/tests/tests/cktools/05_grpck_sort_missing_shadow_group/config/etc/group @@ -0,0 +1,42 @@ +daemon:x:1: +bin:x:2: +kmem:x:15: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +root:x:0: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +shadow:x:42: +gnats:x:41: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100:foo +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: diff --git a/tests/tests/cktools/05_grpck_sort_missing_shadow_group/config/etc/gshadow b/tests/tests/cktools/05_grpck_sort_missing_shadow_group/config/etc/gshadow new file mode 100644 index 00000000..695bf8f5 --- /dev/null +++ b/tests/tests/cktools/05_grpck_sort_missing_shadow_group/config/etc/gshadow @@ -0,0 +1,41 @@ +daemon:*:: +bin:*:: +kmem:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +root:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +shadow:*:: +gnats:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +foo:*:: diff --git a/tests/tests/cktools/05_grpck_sort_missing_shadow_group/config/etc/passwd b/tests/tests/cktools/05_grpck_sort_missing_shadow_group/config/etc/passwd new file mode 100644 index 00000000..dc7bf840 --- /dev/null +++ b/tests/tests/cktools/05_grpck_sort_missing_shadow_group/config/etc/passwd @@ -0,0 +1,20 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +foo:x:1000:1000:::/bin/false diff --git a/tests/tests/cktools/05_grpck_sort_missing_shadow_group/config/etc/shadow b/tests/tests/cktools/05_grpck_sort_missing_shadow_group/config/etc/shadow new file mode 100644 index 00000000..2baad3b4 --- /dev/null +++ b/tests/tests/cktools/05_grpck_sort_missing_shadow_group/config/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/05_grpck_sort_missing_shadow_group/data/group b/tests/tests/cktools/05_grpck_sort_missing_shadow_group/data/group new file mode 100644 index 00000000..12659535 --- /dev/null +++ b/tests/tests/cktools/05_grpck_sort_missing_shadow_group/data/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100:foo +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: +nogroup:x:65534: diff --git a/tests/tests/cktools/05_grpck_sort_missing_shadow_group/data/gshadow b/tests/tests/cktools/05_grpck_sort_missing_shadow_group/data/gshadow new file mode 100644 index 00000000..7dcb3e59 --- /dev/null +++ b/tests/tests/cktools/05_grpck_sort_missing_shadow_group/data/gshadow @@ -0,0 +1,41 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +crontab:x:: +foo:*:: +nogroup:*:: diff --git a/tests/tests/cktools/05_grpck_sort_missing_shadow_group/grpck.test b/tests/tests/cktools/05_grpck_sort_missing_shadow_group/grpck.test new file mode 100755 index 00000000..75e62cf6 --- /dev/null +++ b/tests/tests/cktools/05_grpck_sort_missing_shadow_group/grpck.test @@ -0,0 +1,39 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../common/config.sh +. ../../common/log.sh + +log_start "$0" "grpck can sort the group entries" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "Sort the group entries (grpck -s)..." +grpck -s +echo "OK" + +echo -n "Check the passwd file..." +../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../common/compare_file.pl data/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../common/compare_file.pl data/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/06_pwck_sort_NIS_server/config.txt b/tests/tests/cktools/06_pwck_sort_NIS_server/config.txt new file mode 100644 index 00000000..3d43135c --- /dev/null +++ b/tests/tests/cktools/06_pwck_sort_NIS_server/config.txt @@ -0,0 +1,5 @@ +# no testsuite password +# root password: rootF00barbaz +# myuser password: myuserF00barbaz + +user foo, in group users diff --git a/tests/tests/cktools/06_pwck_sort_NIS_server/config/etc/group b/tests/tests/cktools/06_pwck_sort_NIS_server/config/etc/group new file mode 100644 index 00000000..18eb6c27 --- /dev/null +++ b/tests/tests/cktools/06_pwck_sort_NIS_server/config/etc/group @@ -0,0 +1,43 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100:foo +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: ++::: diff --git a/tests/tests/cktools/06_pwck_sort_NIS_server/config/etc/gshadow b/tests/tests/cktools/06_pwck_sort_NIS_server/config/etc/gshadow new file mode 100644 index 00000000..7a7ef3a4 --- /dev/null +++ b/tests/tests/cktools/06_pwck_sort_NIS_server/config/etc/gshadow @@ -0,0 +1,43 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: ++::: diff --git a/tests/tests/cktools/06_pwck_sort_NIS_server/config/etc/passwd b/tests/tests/cktools/06_pwck_sort_NIS_server/config/etc/passwd new file mode 100644 index 00000000..365af623 --- /dev/null +++ b/tests/tests/cktools/06_pwck_sort_NIS_server/config/etc/passwd @@ -0,0 +1,24 @@ +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +root:x:0:0:root:/root:/bin/bash +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +games:x:5:60:games:/usr/games:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +foo:x:1000:1000:::/bin/false ++miquels:::::: ++:*:::::/etc/NoShell +tester:*:299:10:Just a test account:/tmp: +miquels:1234567890123:101:10:Miquel van Smoorenburg:/home/miquels:/bin/zsh diff --git a/tests/tests/cktools/06_pwck_sort_NIS_server/config/etc/shadow b/tests/tests/cktools/06_pwck_sort_NIS_server/config/etc/shadow new file mode 100644 index 00000000..5a24e788 --- /dev/null +++ b/tests/tests/cktools/06_pwck_sort_NIS_server/config/etc/shadow @@ -0,0 +1,21 @@ +daemon:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: ++:::::::: diff --git a/tests/tests/cktools/06_pwck_sort_NIS_server/data/passwd b/tests/tests/cktools/06_pwck_sort_NIS_server/data/passwd new file mode 100644 index 00000000..c12f8a96 --- /dev/null +++ b/tests/tests/cktools/06_pwck_sort_NIS_server/data/passwd @@ -0,0 +1,24 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +foo:x:1000:1000:::/bin/false +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh ++miquels:::::: ++:*:::::/etc/NoShell +tester:*:299:10:Just a test account:/tmp: +miquels:1234567890123:101:10:Miquel van Smoorenburg:/home/miquels:/bin/zsh diff --git a/tests/tests/cktools/06_pwck_sort_NIS_server/data/shadow b/tests/tests/cktools/06_pwck_sort_NIS_server/data/shadow new file mode 100644 index 00000000..6a626dfd --- /dev/null +++ b/tests/tests/cktools/06_pwck_sort_NIS_server/data/shadow @@ -0,0 +1,21 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: ++:::::::: diff --git a/tests/tests/cktools/06_pwck_sort_NIS_server/pwck.test b/tests/tests/cktools/06_pwck_sort_NIS_server/pwck.test new file mode 100755 index 00000000..9d6afb1b --- /dev/null +++ b/tests/tests/cktools/06_pwck_sort_NIS_server/pwck.test @@ -0,0 +1,39 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../common/config.sh +. ../../common/log.sh + +log_start "$0" "pwck can sort the passwd entries" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "Sort the passwd entries (pwck -s)..." +pwck -s +echo "OK" + +echo -n "Check the passwd file..." +../../common/compare_file.pl data/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../common/compare_file.pl data/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/07_pwck_sort_NIS_client/config.txt b/tests/tests/cktools/07_pwck_sort_NIS_client/config.txt new file mode 100644 index 00000000..3d43135c --- /dev/null +++ b/tests/tests/cktools/07_pwck_sort_NIS_client/config.txt @@ -0,0 +1,5 @@ +# no testsuite password +# root password: rootF00barbaz +# myuser password: myuserF00barbaz + +user foo, in group users diff --git a/tests/tests/cktools/07_pwck_sort_NIS_client/config/etc/group b/tests/tests/cktools/07_pwck_sort_NIS_client/config/etc/group new file mode 100644 index 00000000..f914b38e --- /dev/null +++ b/tests/tests/cktools/07_pwck_sort_NIS_client/config/etc/group @@ -0,0 +1,45 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100:foo +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: ++::: ++miquels::: ++foo::: diff --git a/tests/tests/cktools/07_pwck_sort_NIS_client/config/etc/gshadow b/tests/tests/cktools/07_pwck_sort_NIS_client/config/etc/gshadow new file mode 100644 index 00000000..7a7ef3a4 --- /dev/null +++ b/tests/tests/cktools/07_pwck_sort_NIS_client/config/etc/gshadow @@ -0,0 +1,43 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: ++::: diff --git a/tests/tests/cktools/07_pwck_sort_NIS_client/config/etc/passwd b/tests/tests/cktools/07_pwck_sort_NIS_client/config/etc/passwd new file mode 100644 index 00000000..913d7fc9 --- /dev/null +++ b/tests/tests/cktools/07_pwck_sort_NIS_client/config/etc/passwd @@ -0,0 +1,22 @@ +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +root:x:0:0:root:/root:/bin/bash +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +games:x:5:60:games:/usr/games:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +foo:x:1000:1000:::/bin/false ++miquels:::::: ++:*:::::/etc/NoShell diff --git a/tests/tests/cktools/07_pwck_sort_NIS_client/config/etc/shadow b/tests/tests/cktools/07_pwck_sort_NIS_client/config/etc/shadow new file mode 100644 index 00000000..8f31dfbb --- /dev/null +++ b/tests/tests/cktools/07_pwck_sort_NIS_client/config/etc/shadow @@ -0,0 +1,22 @@ +daemon:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: ++:::::::: ++foo2:!::::::: diff --git a/tests/tests/cktools/07_pwck_sort_NIS_client/data/passwd b/tests/tests/cktools/07_pwck_sort_NIS_client/data/passwd new file mode 100644 index 00000000..032bdd26 --- /dev/null +++ b/tests/tests/cktools/07_pwck_sort_NIS_client/data/passwd @@ -0,0 +1,22 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +foo:x:1000:1000:::/bin/false +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh ++miquels:::::: ++:*:::::/etc/NoShell diff --git a/tests/tests/cktools/07_pwck_sort_NIS_client/data/shadow b/tests/tests/cktools/07_pwck_sort_NIS_client/data/shadow new file mode 100644 index 00000000..5350e77b --- /dev/null +++ b/tests/tests/cktools/07_pwck_sort_NIS_client/data/shadow @@ -0,0 +1,22 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: ++:::::::: ++foo2:!::::::: diff --git a/tests/tests/cktools/07_pwck_sort_NIS_client/pwck.test b/tests/tests/cktools/07_pwck_sort_NIS_client/pwck.test new file mode 100755 index 00000000..9d6afb1b --- /dev/null +++ b/tests/tests/cktools/07_pwck_sort_NIS_client/pwck.test @@ -0,0 +1,39 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../common/config.sh +. ../../common/log.sh + +log_start "$0" "pwck can sort the passwd entries" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "Sort the passwd entries (pwck -s)..." +pwck -s +echo "OK" + +echo -n "Check the passwd file..." +../../common/compare_file.pl data/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../common/compare_file.pl data/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/grpck/04_grpck_missing_field_group_delete/config.txt b/tests/tests/cktools/grpck/04_grpck_missing_field_group_delete/config.txt new file mode 100644 index 00000000..01189bd6 --- /dev/null +++ b/tests/tests/cktools/grpck/04_grpck_missing_field_group_delete/config.txt @@ -0,0 +1,2 @@ +user foo +group foo with typo in group diff --git a/tests/tests/cktools/grpck/04_grpck_missing_field_group_delete/config/etc/group b/tests/tests/cktools/grpck/04_grpck_missing_field_group_delete/config/etc/group new file mode 100644 index 00000000..d1e687c3 --- /dev/null +++ b/tests/tests/cktools/grpck/04_grpck_missing_field_group_delete/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x diff --git a/tests/tests/cktools/grpck/04_grpck_missing_field_group_delete/config/etc/gshadow b/tests/tests/cktools/grpck/04_grpck_missing_field_group_delete/config/etc/gshadow new file mode 100644 index 00000000..5042e581 --- /dev/null +++ b/tests/tests/cktools/grpck/04_grpck_missing_field_group_delete/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/cktools/grpck/04_grpck_missing_field_group_delete/config/etc/passwd b/tests/tests/cktools/grpck/04_grpck_missing_field_group_delete/config/etc/passwd new file mode 100644 index 00000000..dc7bf840 --- /dev/null +++ b/tests/tests/cktools/grpck/04_grpck_missing_field_group_delete/config/etc/passwd @@ -0,0 +1,20 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +foo:x:1000:1000:::/bin/false diff --git a/tests/tests/cktools/grpck/04_grpck_missing_field_group_delete/config/etc/shadow b/tests/tests/cktools/grpck/04_grpck_missing_field_group_delete/config/etc/shadow new file mode 100644 index 00000000..2baad3b4 --- /dev/null +++ b/tests/tests/cktools/grpck/04_grpck_missing_field_group_delete/config/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/grpck/04_grpck_missing_field_group_delete/data/group b/tests/tests/cktools/grpck/04_grpck_missing_field_group_delete/data/group new file mode 100644 index 00000000..10123908 --- /dev/null +++ b/tests/tests/cktools/grpck/04_grpck_missing_field_group_delete/data/group @@ -0,0 +1,41 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: diff --git a/tests/tests/cktools/grpck/04_grpck_missing_field_group_delete/data/gshadow b/tests/tests/cktools/grpck/04_grpck_missing_field_group_delete/data/gshadow new file mode 100644 index 00000000..ae424865 --- /dev/null +++ b/tests/tests/cktools/grpck/04_grpck_missing_field_group_delete/data/gshadow @@ -0,0 +1,41 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: diff --git a/tests/tests/cktools/grpck/04_grpck_missing_field_group_delete/grpck.exp b/tests/tests/cktools/grpck/04_grpck_missing_field_group_delete/grpck.exp new file mode 100755 index 00000000..df3e04c1 --- /dev/null +++ b/tests/tests/cktools/grpck/04_grpck_missing_field_group_delete/grpck.exp @@ -0,0 +1,23 @@ +#!/usr/bin/expect + +set timeout 2 +expect_after default {puts stderr "\nFAIL"; exit 1} + +spawn /bin/sh +send "if \[ \$(id -u) -eq 0 \]; then PS1='# '; else PS1='$ '; fi\r" +expect "# " + +send "grpck\r" +expect "invalid group file entry" +expect "delete line 'foo:x'? " +send "yes\r" +expect "no matching group file entry in /etc/group" +expect "delete line 'foo:*::'? " +send "yes\r" +expect "grpck: the files have been updated" +expect "# " +send "echo \$?\r" +expect "2" +send "exit\r" +puts "OK\n" +exit 0 diff --git a/tests/tests/cktools/grpck/04_grpck_missing_field_group_delete/grpck.test b/tests/tests/cktools/grpck/04_grpck_missing_field_group_delete/grpck.test new file mode 100755 index 00000000..906d6294 --- /dev/null +++ b/tests/tests/cktools/grpck/04_grpck_missing_field_group_delete/grpck.test @@ -0,0 +1,37 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "grpck check the number of fields and can change the system database" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +./grpck.exp + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl data/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl data/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/grpck/05_grpck_missing_field_group_keep/config.txt b/tests/tests/cktools/grpck/05_grpck_missing_field_group_keep/config.txt new file mode 100644 index 00000000..01189bd6 --- /dev/null +++ b/tests/tests/cktools/grpck/05_grpck_missing_field_group_keep/config.txt @@ -0,0 +1,2 @@ +user foo +group foo with typo in group diff --git a/tests/tests/cktools/grpck/05_grpck_missing_field_group_keep/config/etc/group b/tests/tests/cktools/grpck/05_grpck_missing_field_group_keep/config/etc/group new file mode 100644 index 00000000..d1e687c3 --- /dev/null +++ b/tests/tests/cktools/grpck/05_grpck_missing_field_group_keep/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x diff --git a/tests/tests/cktools/grpck/05_grpck_missing_field_group_keep/config/etc/gshadow b/tests/tests/cktools/grpck/05_grpck_missing_field_group_keep/config/etc/gshadow new file mode 100644 index 00000000..5042e581 --- /dev/null +++ b/tests/tests/cktools/grpck/05_grpck_missing_field_group_keep/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/cktools/grpck/05_grpck_missing_field_group_keep/config/etc/passwd b/tests/tests/cktools/grpck/05_grpck_missing_field_group_keep/config/etc/passwd new file mode 100644 index 00000000..dc7bf840 --- /dev/null +++ b/tests/tests/cktools/grpck/05_grpck_missing_field_group_keep/config/etc/passwd @@ -0,0 +1,20 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +foo:x:1000:1000:::/bin/false diff --git a/tests/tests/cktools/grpck/05_grpck_missing_field_group_keep/config/etc/shadow b/tests/tests/cktools/grpck/05_grpck_missing_field_group_keep/config/etc/shadow new file mode 100644 index 00000000..2baad3b4 --- /dev/null +++ b/tests/tests/cktools/grpck/05_grpck_missing_field_group_keep/config/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/grpck/05_grpck_missing_field_group_keep/data/gshadow b/tests/tests/cktools/grpck/05_grpck_missing_field_group_keep/data/gshadow new file mode 100644 index 00000000..ae424865 --- /dev/null +++ b/tests/tests/cktools/grpck/05_grpck_missing_field_group_keep/data/gshadow @@ -0,0 +1,41 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: diff --git a/tests/tests/cktools/grpck/05_grpck_missing_field_group_keep/grpck.exp b/tests/tests/cktools/grpck/05_grpck_missing_field_group_keep/grpck.exp new file mode 100755 index 00000000..08d3526f --- /dev/null +++ b/tests/tests/cktools/grpck/05_grpck_missing_field_group_keep/grpck.exp @@ -0,0 +1,23 @@ +#!/usr/bin/expect + +set timeout 2 +expect_after default {puts stderr "\nFAIL"; exit 1} + +spawn /bin/sh +send "if \[ \$(id -u) -eq 0 \]; then PS1='# '; else PS1='$ '; fi\r" +expect "# " + +send "grpck\r" +expect "invalid group file entry" +expect "delete line 'foo:x'? " +send "no\r" +expect "no matching group file entry in /etc/group" +expect "delete line 'foo:*::'? " +send "yes\r" +expect "grpck: the files have been updated" +expect "# " +send "echo \$?\r" +expect "2" +send "exit\r" +puts "OK\n" +exit 0 diff --git a/tests/tests/cktools/grpck/05_grpck_missing_field_group_keep/grpck.test b/tests/tests/cktools/grpck/05_grpck_missing_field_group_keep/grpck.test new file mode 100755 index 00000000..dcfa2498 --- /dev/null +++ b/tests/tests/cktools/grpck/05_grpck_missing_field_group_keep/grpck.test @@ -0,0 +1,37 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "grpck check the number of fields and can change the system database" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +./grpck.exp + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl data/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/grpck/06_grpck_missing_field_group_no_changes/config.txt b/tests/tests/cktools/grpck/06_grpck_missing_field_group_no_changes/config.txt new file mode 100644 index 00000000..01189bd6 --- /dev/null +++ b/tests/tests/cktools/grpck/06_grpck_missing_field_group_no_changes/config.txt @@ -0,0 +1,2 @@ +user foo +group foo with typo in group diff --git a/tests/tests/cktools/grpck/06_grpck_missing_field_group_no_changes/config/etc/group b/tests/tests/cktools/grpck/06_grpck_missing_field_group_no_changes/config/etc/group new file mode 100644 index 00000000..d1e687c3 --- /dev/null +++ b/tests/tests/cktools/grpck/06_grpck_missing_field_group_no_changes/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x diff --git a/tests/tests/cktools/grpck/06_grpck_missing_field_group_no_changes/config/etc/gshadow b/tests/tests/cktools/grpck/06_grpck_missing_field_group_no_changes/config/etc/gshadow new file mode 100644 index 00000000..5042e581 --- /dev/null +++ b/tests/tests/cktools/grpck/06_grpck_missing_field_group_no_changes/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/cktools/grpck/06_grpck_missing_field_group_no_changes/config/etc/passwd b/tests/tests/cktools/grpck/06_grpck_missing_field_group_no_changes/config/etc/passwd new file mode 100644 index 00000000..dc7bf840 --- /dev/null +++ b/tests/tests/cktools/grpck/06_grpck_missing_field_group_no_changes/config/etc/passwd @@ -0,0 +1,20 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +foo:x:1000:1000:::/bin/false diff --git a/tests/tests/cktools/grpck/06_grpck_missing_field_group_no_changes/config/etc/shadow b/tests/tests/cktools/grpck/06_grpck_missing_field_group_no_changes/config/etc/shadow new file mode 100644 index 00000000..2baad3b4 --- /dev/null +++ b/tests/tests/cktools/grpck/06_grpck_missing_field_group_no_changes/config/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/grpck/06_grpck_missing_field_group_no_changes/grpck.exp b/tests/tests/cktools/grpck/06_grpck_missing_field_group_no_changes/grpck.exp new file mode 100755 index 00000000..c0aea871 --- /dev/null +++ b/tests/tests/cktools/grpck/06_grpck_missing_field_group_no_changes/grpck.exp @@ -0,0 +1,23 @@ +#!/usr/bin/expect + +set timeout 2 +expect_after default {puts stderr "\nFAIL"; exit 1} + +spawn /bin/sh +send "if \[ \$(id -u) -eq 0 \]; then PS1='# '; else PS1='$ '; fi\r" +expect "# " + +send "grpck\r" +expect "invalid group file entry" +expect "delete line 'foo:x'? " +send "no\r" +expect "no matching group file entry in /etc/group" +expect "delete line 'foo:*::'? " +send "no\r" +expect "grpck: no changes" +expect "# " +send "echo \$?\r" +expect "2" +send "exit\r" +puts "OK\n" +exit 0 diff --git a/tests/tests/cktools/grpck/06_grpck_missing_field_group_no_changes/grpck.test b/tests/tests/cktools/grpck/06_grpck_missing_field_group_no_changes/grpck.test new file mode 100755 index 00000000..81bf12ca --- /dev/null +++ b/tests/tests/cktools/grpck/06_grpck_missing_field_group_no_changes/grpck.test @@ -0,0 +1,37 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "grpck check the number of fields and can change the system database" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +./grpck.exp + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/grpck/07_grpck_missing_field_gshadow_add/config.txt b/tests/tests/cktools/grpck/07_grpck_missing_field_gshadow_add/config.txt new file mode 100644 index 00000000..52fad51b --- /dev/null +++ b/tests/tests/cktools/grpck/07_grpck_missing_field_gshadow_add/config.txt @@ -0,0 +1,2 @@ +user foo +group foo with typo in gshadow diff --git a/tests/tests/cktools/grpck/07_grpck_missing_field_gshadow_add/config/etc/group b/tests/tests/cktools/grpck/07_grpck_missing_field_gshadow_add/config/etc/group new file mode 100644 index 00000000..fecba0c4 --- /dev/null +++ b/tests/tests/cktools/grpck/07_grpck_missing_field_gshadow_add/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: diff --git a/tests/tests/cktools/grpck/07_grpck_missing_field_gshadow_add/config/etc/gshadow b/tests/tests/cktools/grpck/07_grpck_missing_field_gshadow_add/config/etc/gshadow new file mode 100644 index 00000000..b8fb2347 --- /dev/null +++ b/tests/tests/cktools/grpck/07_grpck_missing_field_gshadow_add/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*: diff --git a/tests/tests/cktools/grpck/07_grpck_missing_field_gshadow_add/config/etc/passwd b/tests/tests/cktools/grpck/07_grpck_missing_field_gshadow_add/config/etc/passwd new file mode 100644 index 00000000..dc7bf840 --- /dev/null +++ b/tests/tests/cktools/grpck/07_grpck_missing_field_gshadow_add/config/etc/passwd @@ -0,0 +1,20 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +foo:x:1000:1000:::/bin/false diff --git a/tests/tests/cktools/grpck/07_grpck_missing_field_gshadow_add/config/etc/shadow b/tests/tests/cktools/grpck/07_grpck_missing_field_gshadow_add/config/etc/shadow new file mode 100644 index 00000000..2baad3b4 --- /dev/null +++ b/tests/tests/cktools/grpck/07_grpck_missing_field_gshadow_add/config/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/grpck/07_grpck_missing_field_gshadow_add/data/gshadow b/tests/tests/cktools/grpck/07_grpck_missing_field_gshadow_add/data/gshadow new file mode 100644 index 00000000..be1575eb --- /dev/null +++ b/tests/tests/cktools/grpck/07_grpck_missing_field_gshadow_add/data/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:x:: diff --git a/tests/tests/cktools/grpck/07_grpck_missing_field_gshadow_add/grpck.exp b/tests/tests/cktools/grpck/07_grpck_missing_field_gshadow_add/grpck.exp new file mode 100755 index 00000000..6bb26e4e --- /dev/null +++ b/tests/tests/cktools/grpck/07_grpck_missing_field_gshadow_add/grpck.exp @@ -0,0 +1,23 @@ +#!/usr/bin/expect + +set timeout 2 +expect_after default {puts stderr "\nFAIL"; exit 1} + +spawn /bin/sh +send "if \[ \$(id -u) -eq 0 \]; then PS1='# '; else PS1='$ '; fi\r" +expect "# " + +send "grpck\r" +expect "no matching group file entry in /etc/gshadow" +expect "add group 'foo' in /etc/gshadow? " +send "yes\r" +expect "invalid shadow group file entry" +expect "delete line 'foo:*:'? " +send "yes\r" +expect "grpck: the files have been updated" +expect "# " +send "echo \$?\r" +expect "2" +send "exit\r" +puts "OK\n" +exit 0 diff --git a/tests/tests/cktools/grpck/07_grpck_missing_field_gshadow_add/grpck.test b/tests/tests/cktools/grpck/07_grpck_missing_field_gshadow_add/grpck.test new file mode 100755 index 00000000..dcfa2498 --- /dev/null +++ b/tests/tests/cktools/grpck/07_grpck_missing_field_gshadow_add/grpck.test @@ -0,0 +1,37 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "grpck check the number of fields and can change the system database" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +./grpck.exp + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl data/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/grpck/08_grpck_missing_field_gshadow_delete/config.txt b/tests/tests/cktools/grpck/08_grpck_missing_field_gshadow_delete/config.txt new file mode 100644 index 00000000..52fad51b --- /dev/null +++ b/tests/tests/cktools/grpck/08_grpck_missing_field_gshadow_delete/config.txt @@ -0,0 +1,2 @@ +user foo +group foo with typo in gshadow diff --git a/tests/tests/cktools/grpck/08_grpck_missing_field_gshadow_delete/config/etc/group b/tests/tests/cktools/grpck/08_grpck_missing_field_gshadow_delete/config/etc/group new file mode 100644 index 00000000..fecba0c4 --- /dev/null +++ b/tests/tests/cktools/grpck/08_grpck_missing_field_gshadow_delete/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: diff --git a/tests/tests/cktools/grpck/08_grpck_missing_field_gshadow_delete/config/etc/gshadow b/tests/tests/cktools/grpck/08_grpck_missing_field_gshadow_delete/config/etc/gshadow new file mode 100644 index 00000000..b8fb2347 --- /dev/null +++ b/tests/tests/cktools/grpck/08_grpck_missing_field_gshadow_delete/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*: diff --git a/tests/tests/cktools/grpck/08_grpck_missing_field_gshadow_delete/config/etc/passwd b/tests/tests/cktools/grpck/08_grpck_missing_field_gshadow_delete/config/etc/passwd new file mode 100644 index 00000000..dc7bf840 --- /dev/null +++ b/tests/tests/cktools/grpck/08_grpck_missing_field_gshadow_delete/config/etc/passwd @@ -0,0 +1,20 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +foo:x:1000:1000:::/bin/false diff --git a/tests/tests/cktools/grpck/08_grpck_missing_field_gshadow_delete/config/etc/shadow b/tests/tests/cktools/grpck/08_grpck_missing_field_gshadow_delete/config/etc/shadow new file mode 100644 index 00000000..2baad3b4 --- /dev/null +++ b/tests/tests/cktools/grpck/08_grpck_missing_field_gshadow_delete/config/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/grpck/08_grpck_missing_field_gshadow_delete/data/gshadow b/tests/tests/cktools/grpck/08_grpck_missing_field_gshadow_delete/data/gshadow new file mode 100644 index 00000000..ae424865 --- /dev/null +++ b/tests/tests/cktools/grpck/08_grpck_missing_field_gshadow_delete/data/gshadow @@ -0,0 +1,41 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: diff --git a/tests/tests/cktools/grpck/08_grpck_missing_field_gshadow_delete/grpck.exp b/tests/tests/cktools/grpck/08_grpck_missing_field_gshadow_delete/grpck.exp new file mode 100755 index 00000000..ed6ffca9 --- /dev/null +++ b/tests/tests/cktools/grpck/08_grpck_missing_field_gshadow_delete/grpck.exp @@ -0,0 +1,23 @@ +#!/usr/bin/expect + +set timeout 2 +expect_after default {puts stderr "\nFAIL"; exit 1} + +spawn /bin/sh +send "if \[ \$(id -u) -eq 0 \]; then PS1='# '; else PS1='$ '; fi\r" +expect "# " + +send "grpck\r" +expect "no matching group file entry in /etc/gshadow" +expect "add group 'foo' in /etc/gshadow? " +send "no\r" +expect "invalid shadow group file entry" +expect "delete line 'foo:*:'? " +send "yes\r" +expect "grpck: the files have been updated" +expect "# " +send "echo \$?\r" +expect "2" +send "exit\r" +puts "OK\n" +exit 0 diff --git a/tests/tests/cktools/grpck/08_grpck_missing_field_gshadow_delete/grpck.test b/tests/tests/cktools/grpck/08_grpck_missing_field_gshadow_delete/grpck.test new file mode 100755 index 00000000..dcfa2498 --- /dev/null +++ b/tests/tests/cktools/grpck/08_grpck_missing_field_gshadow_delete/grpck.test @@ -0,0 +1,37 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "grpck check the number of fields and can change the system database" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +./grpck.exp + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl data/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/grpck/09_grpck_missing_field_gshadow_no_changes/config.txt b/tests/tests/cktools/grpck/09_grpck_missing_field_gshadow_no_changes/config.txt new file mode 100644 index 00000000..52fad51b --- /dev/null +++ b/tests/tests/cktools/grpck/09_grpck_missing_field_gshadow_no_changes/config.txt @@ -0,0 +1,2 @@ +user foo +group foo with typo in gshadow diff --git a/tests/tests/cktools/grpck/09_grpck_missing_field_gshadow_no_changes/config/etc/group b/tests/tests/cktools/grpck/09_grpck_missing_field_gshadow_no_changes/config/etc/group new file mode 100644 index 00000000..fecba0c4 --- /dev/null +++ b/tests/tests/cktools/grpck/09_grpck_missing_field_gshadow_no_changes/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: diff --git a/tests/tests/cktools/grpck/09_grpck_missing_field_gshadow_no_changes/config/etc/gshadow b/tests/tests/cktools/grpck/09_grpck_missing_field_gshadow_no_changes/config/etc/gshadow new file mode 100644 index 00000000..b8fb2347 --- /dev/null +++ b/tests/tests/cktools/grpck/09_grpck_missing_field_gshadow_no_changes/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*: diff --git a/tests/tests/cktools/grpck/09_grpck_missing_field_gshadow_no_changes/config/etc/passwd b/tests/tests/cktools/grpck/09_grpck_missing_field_gshadow_no_changes/config/etc/passwd new file mode 100644 index 00000000..dc7bf840 --- /dev/null +++ b/tests/tests/cktools/grpck/09_grpck_missing_field_gshadow_no_changes/config/etc/passwd @@ -0,0 +1,20 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +foo:x:1000:1000:::/bin/false diff --git a/tests/tests/cktools/grpck/09_grpck_missing_field_gshadow_no_changes/config/etc/shadow b/tests/tests/cktools/grpck/09_grpck_missing_field_gshadow_no_changes/config/etc/shadow new file mode 100644 index 00000000..2baad3b4 --- /dev/null +++ b/tests/tests/cktools/grpck/09_grpck_missing_field_gshadow_no_changes/config/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/grpck/09_grpck_missing_field_gshadow_no_changes/grpck.exp b/tests/tests/cktools/grpck/09_grpck_missing_field_gshadow_no_changes/grpck.exp new file mode 100755 index 00000000..a5f18173 --- /dev/null +++ b/tests/tests/cktools/grpck/09_grpck_missing_field_gshadow_no_changes/grpck.exp @@ -0,0 +1,23 @@ +#!/usr/bin/expect + +set timeout 2 +expect_after default {puts stderr "\nFAIL"; exit 1} + +spawn /bin/sh +send "if \[ \$(id -u) -eq 0 \]; then PS1='# '; else PS1='$ '; fi\r" +expect "# " + +send "grpck\r" +expect "no matching group file entry in /etc/gshadow" +expect "add group 'foo' in /etc/gshadow? " +send "no\r" +expect "invalid shadow group file entry" +expect "delete line 'foo:*:'? " +send "no\r" +expect "grpck: no changes" +expect "# " +send "echo \$?\r" +expect "2" +send "exit\r" +puts "OK\n" +exit 0 diff --git a/tests/tests/cktools/grpck/09_grpck_missing_field_gshadow_no_changes/grpck.test b/tests/tests/cktools/grpck/09_grpck_missing_field_gshadow_no_changes/grpck.test new file mode 100755 index 00000000..81bf12ca --- /dev/null +++ b/tests/tests/cktools/grpck/09_grpck_missing_field_gshadow_no_changes/grpck.test @@ -0,0 +1,37 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "grpck check the number of fields and can change the system database" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +./grpck.exp + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/grpck/10_grpck_missing_field_group_local/config.txt b/tests/tests/cktools/grpck/10_grpck_missing_field_group_local/config.txt new file mode 100644 index 00000000..01189bd6 --- /dev/null +++ b/tests/tests/cktools/grpck/10_grpck_missing_field_group_local/config.txt @@ -0,0 +1,2 @@ +user foo +group foo with typo in group diff --git a/tests/tests/cktools/grpck/10_grpck_missing_field_group_local/config/etc/group b/tests/tests/cktools/grpck/10_grpck_missing_field_group_local/config/etc/group new file mode 100644 index 00000000..d1e687c3 --- /dev/null +++ b/tests/tests/cktools/grpck/10_grpck_missing_field_group_local/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x diff --git a/tests/tests/cktools/grpck/10_grpck_missing_field_group_local/config/etc/gshadow b/tests/tests/cktools/grpck/10_grpck_missing_field_group_local/config/etc/gshadow new file mode 100644 index 00000000..5042e581 --- /dev/null +++ b/tests/tests/cktools/grpck/10_grpck_missing_field_group_local/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/cktools/grpck/10_grpck_missing_field_group_local/config/etc/passwd b/tests/tests/cktools/grpck/10_grpck_missing_field_group_local/config/etc/passwd new file mode 100644 index 00000000..dc7bf840 --- /dev/null +++ b/tests/tests/cktools/grpck/10_grpck_missing_field_group_local/config/etc/passwd @@ -0,0 +1,20 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +foo:x:1000:1000:::/bin/false diff --git a/tests/tests/cktools/grpck/10_grpck_missing_field_group_local/config/etc/shadow b/tests/tests/cktools/grpck/10_grpck_missing_field_group_local/config/etc/shadow new file mode 100644 index 00000000..2baad3b4 --- /dev/null +++ b/tests/tests/cktools/grpck/10_grpck_missing_field_group_local/config/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/grpck/10_grpck_missing_field_group_local/data/group b/tests/tests/cktools/grpck/10_grpck_missing_field_group_local/data/group new file mode 100644 index 00000000..10123908 --- /dev/null +++ b/tests/tests/cktools/grpck/10_grpck_missing_field_group_local/data/group @@ -0,0 +1,41 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: diff --git a/tests/tests/cktools/grpck/10_grpck_missing_field_group_local/data/gshadow b/tests/tests/cktools/grpck/10_grpck_missing_field_group_local/data/gshadow new file mode 100644 index 00000000..ae424865 --- /dev/null +++ b/tests/tests/cktools/grpck/10_grpck_missing_field_group_local/data/gshadow @@ -0,0 +1,41 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: diff --git a/tests/tests/cktools/grpck/10_grpck_missing_field_group_local/grpck.exp b/tests/tests/cktools/grpck/10_grpck_missing_field_group_local/grpck.exp new file mode 100755 index 00000000..8f5dc7b7 --- /dev/null +++ b/tests/tests/cktools/grpck/10_grpck_missing_field_group_local/grpck.exp @@ -0,0 +1,23 @@ +#!/usr/bin/expect + +set timeout 2 +expect_after default {puts stderr "\nFAIL"; exit 1} + +spawn /bin/sh +send "if \[ \$(id -u) -eq 0 \]; then PS1='# '; else PS1='$ '; fi\r" +expect "# " + +send "grpck tmp/group tmp/gshadow\r" +expect "invalid group file entry" +expect "delete line 'foo:x'? " +send "yes\r" +expect "no matching group file entry in tmp/group" +expect "delete line 'foo:*::'? " +send "yes\r" +expect "grpck: the files have been updated" +expect "# " +send "echo \$?\r" +expect "2" +send "exit\r" +puts "OK\n" +exit 0 diff --git a/tests/tests/cktools/grpck/10_grpck_missing_field_group_local/grpck.test b/tests/tests/cktools/grpck/10_grpck_missing_field_group_local/grpck.test new file mode 100755 index 00000000..666852e0 --- /dev/null +++ b/tests/tests/cktools/grpck/10_grpck_missing_field_group_local/grpck.test @@ -0,0 +1,45 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "grpck check the number of fields and can change the system database" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "copy group and gshadow locally..." +cp /etc/group /etc/gshadow tmp/ +echo "OK" + +./grpck.exp + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +../../../common/compare_file.pl data/group tmp/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +../../../common/compare_file.pl data/gshadow tmp/gshadow +echo "OK" + +rm -f tmp/group tmp/group- tmp/gshadow tmp/gshadow- + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/grpck/11_grpck_missing_field_gshadow_local/config.txt b/tests/tests/cktools/grpck/11_grpck_missing_field_gshadow_local/config.txt new file mode 100644 index 00000000..52fad51b --- /dev/null +++ b/tests/tests/cktools/grpck/11_grpck_missing_field_gshadow_local/config.txt @@ -0,0 +1,2 @@ +user foo +group foo with typo in gshadow diff --git a/tests/tests/cktools/grpck/11_grpck_missing_field_gshadow_local/config/etc/group b/tests/tests/cktools/grpck/11_grpck_missing_field_gshadow_local/config/etc/group new file mode 100644 index 00000000..fecba0c4 --- /dev/null +++ b/tests/tests/cktools/grpck/11_grpck_missing_field_gshadow_local/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: diff --git a/tests/tests/cktools/grpck/11_grpck_missing_field_gshadow_local/config/etc/gshadow b/tests/tests/cktools/grpck/11_grpck_missing_field_gshadow_local/config/etc/gshadow new file mode 100644 index 00000000..b8fb2347 --- /dev/null +++ b/tests/tests/cktools/grpck/11_grpck_missing_field_gshadow_local/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*: diff --git a/tests/tests/cktools/grpck/11_grpck_missing_field_gshadow_local/config/etc/passwd b/tests/tests/cktools/grpck/11_grpck_missing_field_gshadow_local/config/etc/passwd new file mode 100644 index 00000000..dc7bf840 --- /dev/null +++ b/tests/tests/cktools/grpck/11_grpck_missing_field_gshadow_local/config/etc/passwd @@ -0,0 +1,20 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +foo:x:1000:1000:::/bin/false diff --git a/tests/tests/cktools/grpck/11_grpck_missing_field_gshadow_local/config/etc/shadow b/tests/tests/cktools/grpck/11_grpck_missing_field_gshadow_local/config/etc/shadow new file mode 100644 index 00000000..2baad3b4 --- /dev/null +++ b/tests/tests/cktools/grpck/11_grpck_missing_field_gshadow_local/config/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/grpck/11_grpck_missing_field_gshadow_local/data/group b/tests/tests/cktools/grpck/11_grpck_missing_field_gshadow_local/data/group new file mode 100644 index 00000000..fecba0c4 --- /dev/null +++ b/tests/tests/cktools/grpck/11_grpck_missing_field_gshadow_local/data/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: diff --git a/tests/tests/cktools/grpck/11_grpck_missing_field_gshadow_local/data/gshadow b/tests/tests/cktools/grpck/11_grpck_missing_field_gshadow_local/data/gshadow new file mode 100644 index 00000000..be1575eb --- /dev/null +++ b/tests/tests/cktools/grpck/11_grpck_missing_field_gshadow_local/data/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:x:: diff --git a/tests/tests/cktools/grpck/11_grpck_missing_field_gshadow_local/data/shadow b/tests/tests/cktools/grpck/11_grpck_missing_field_gshadow_local/data/shadow new file mode 100644 index 00000000..2baad3b4 --- /dev/null +++ b/tests/tests/cktools/grpck/11_grpck_missing_field_gshadow_local/data/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/grpck/11_grpck_missing_field_gshadow_local/grpck.exp b/tests/tests/cktools/grpck/11_grpck_missing_field_gshadow_local/grpck.exp new file mode 100755 index 00000000..63fe7dbf --- /dev/null +++ b/tests/tests/cktools/grpck/11_grpck_missing_field_gshadow_local/grpck.exp @@ -0,0 +1,23 @@ +#!/usr/bin/expect + +set timeout 2 +expect_after default {puts stderr "\nFAIL"; exit 1} + +spawn /bin/sh +send "if \[ \$(id -u) -eq 0 \]; then PS1='# '; else PS1='$ '; fi\r" +expect "# " + +send "grpck tmp/group tmp/gshadow\r" +expect "no matching group file entry in tmp/gshadow" +expect "add group 'foo' in tmp/gshadow? " +send "yes\r" +expect "invalid shadow group file entry" +expect "delete line 'foo:*:'? " +send "yes\r" +expect "grpck: the files have been updated" +expect "# " +send "echo \$?\r" +expect "2" +send "exit\r" +puts "OK\n" +exit 0 diff --git a/tests/tests/cktools/grpck/11_grpck_missing_field_gshadow_local/grpck.test b/tests/tests/cktools/grpck/11_grpck_missing_field_gshadow_local/grpck.test new file mode 100755 index 00000000..666852e0 --- /dev/null +++ b/tests/tests/cktools/grpck/11_grpck_missing_field_gshadow_local/grpck.test @@ -0,0 +1,45 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "grpck check the number of fields and can change the system database" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "copy group and gshadow locally..." +cp /etc/group /etc/gshadow tmp/ +echo "OK" + +./grpck.exp + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +../../../common/compare_file.pl data/group tmp/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +../../../common/compare_file.pl data/gshadow tmp/gshadow +echo "OK" + +rm -f tmp/group tmp/group- tmp/gshadow tmp/gshadow- + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/grpck/12_grpck_unknown_user_group/config.txt b/tests/tests/cktools/grpck/12_grpck_unknown_user_group/config.txt new file mode 100644 index 00000000..01189bd6 --- /dev/null +++ b/tests/tests/cktools/grpck/12_grpck_unknown_user_group/config.txt @@ -0,0 +1,2 @@ +user foo +group foo with typo in group diff --git a/tests/tests/cktools/grpck/12_grpck_unknown_user_group/config/etc/group b/tests/tests/cktools/grpck/12_grpck_unknown_user_group/config/etc/group new file mode 100644 index 00000000..757aef84 --- /dev/null +++ b/tests/tests/cktools/grpck/12_grpck_unknown_user_group/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000:daemon,foo2,bin diff --git a/tests/tests/cktools/grpck/12_grpck_unknown_user_group/config/etc/gshadow b/tests/tests/cktools/grpck/12_grpck_unknown_user_group/config/etc/gshadow new file mode 100644 index 00000000..3e97ea42 --- /dev/null +++ b/tests/tests/cktools/grpck/12_grpck_unknown_user_group/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*::daemon,bin diff --git a/tests/tests/cktools/grpck/12_grpck_unknown_user_group/config/etc/passwd b/tests/tests/cktools/grpck/12_grpck_unknown_user_group/config/etc/passwd new file mode 100644 index 00000000..dc7bf840 --- /dev/null +++ b/tests/tests/cktools/grpck/12_grpck_unknown_user_group/config/etc/passwd @@ -0,0 +1,20 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +foo:x:1000:1000:::/bin/false diff --git a/tests/tests/cktools/grpck/12_grpck_unknown_user_group/config/etc/shadow b/tests/tests/cktools/grpck/12_grpck_unknown_user_group/config/etc/shadow new file mode 100644 index 00000000..2baad3b4 --- /dev/null +++ b/tests/tests/cktools/grpck/12_grpck_unknown_user_group/config/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/grpck/12_grpck_unknown_user_group/data/group b/tests/tests/cktools/grpck/12_grpck_unknown_user_group/data/group new file mode 100644 index 00000000..cf18eb5b --- /dev/null +++ b/tests/tests/cktools/grpck/12_grpck_unknown_user_group/data/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000:daemon,bin diff --git a/tests/tests/cktools/grpck/12_grpck_unknown_user_group/grpck.exp b/tests/tests/cktools/grpck/12_grpck_unknown_user_group/grpck.exp new file mode 100755 index 00000000..39b700ba --- /dev/null +++ b/tests/tests/cktools/grpck/12_grpck_unknown_user_group/grpck.exp @@ -0,0 +1,20 @@ +#!/usr/bin/expect + +set timeout 2 +expect_after default {puts stderr "\nFAIL"; exit 1} + +spawn /bin/sh +send "if \[ \$(id -u) -eq 0 \]; then PS1='# '; else PS1='$ '; fi\r" +expect "# " + +send "grpck\r" +expect "group foo: no user foo2" +expect "delete member 'foo2'? " +send "yes\r" +expect "grpck: the files have been updated" +expect "# " +send "echo \$?\r" +expect "2" +send "exit\r" +puts "OK\n" +exit 0 diff --git a/tests/tests/cktools/grpck/12_grpck_unknown_user_group/grpck.test b/tests/tests/cktools/grpck/12_grpck_unknown_user_group/grpck.test new file mode 100755 index 00000000..741bfe18 --- /dev/null +++ b/tests/tests/cktools/grpck/12_grpck_unknown_user_group/grpck.test @@ -0,0 +1,37 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "grpck check the number of fields and can change the system database" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +./grpck.exp + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl data/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/grpck/13_grpck_unknown_user_gshadow/config.txt b/tests/tests/cktools/grpck/13_grpck_unknown_user_gshadow/config.txt new file mode 100644 index 00000000..01189bd6 --- /dev/null +++ b/tests/tests/cktools/grpck/13_grpck_unknown_user_gshadow/config.txt @@ -0,0 +1,2 @@ +user foo +group foo with typo in group diff --git a/tests/tests/cktools/grpck/13_grpck_unknown_user_gshadow/config/etc/group b/tests/tests/cktools/grpck/13_grpck_unknown_user_gshadow/config/etc/group new file mode 100644 index 00000000..cf18eb5b --- /dev/null +++ b/tests/tests/cktools/grpck/13_grpck_unknown_user_gshadow/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000:daemon,bin diff --git a/tests/tests/cktools/grpck/13_grpck_unknown_user_gshadow/config/etc/gshadow b/tests/tests/cktools/grpck/13_grpck_unknown_user_gshadow/config/etc/gshadow new file mode 100644 index 00000000..d2a17827 --- /dev/null +++ b/tests/tests/cktools/grpck/13_grpck_unknown_user_gshadow/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*::daemon,foo2,bin diff --git a/tests/tests/cktools/grpck/13_grpck_unknown_user_gshadow/config/etc/passwd b/tests/tests/cktools/grpck/13_grpck_unknown_user_gshadow/config/etc/passwd new file mode 100644 index 00000000..dc7bf840 --- /dev/null +++ b/tests/tests/cktools/grpck/13_grpck_unknown_user_gshadow/config/etc/passwd @@ -0,0 +1,20 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +foo:x:1000:1000:::/bin/false diff --git a/tests/tests/cktools/grpck/13_grpck_unknown_user_gshadow/config/etc/shadow b/tests/tests/cktools/grpck/13_grpck_unknown_user_gshadow/config/etc/shadow new file mode 100644 index 00000000..2baad3b4 --- /dev/null +++ b/tests/tests/cktools/grpck/13_grpck_unknown_user_gshadow/config/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/grpck/13_grpck_unknown_user_gshadow/data/gshadow b/tests/tests/cktools/grpck/13_grpck_unknown_user_gshadow/data/gshadow new file mode 100644 index 00000000..3e97ea42 --- /dev/null +++ b/tests/tests/cktools/grpck/13_grpck_unknown_user_gshadow/data/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*::daemon,bin diff --git a/tests/tests/cktools/grpck/13_grpck_unknown_user_gshadow/grpck.exp b/tests/tests/cktools/grpck/13_grpck_unknown_user_gshadow/grpck.exp new file mode 100755 index 00000000..05858b5e --- /dev/null +++ b/tests/tests/cktools/grpck/13_grpck_unknown_user_gshadow/grpck.exp @@ -0,0 +1,21 @@ +#!/usr/bin/expect + +set timeout 2 +expect_after default {puts stderr "\nFAIL"; exit 1} + +spawn /bin/sh +send "if \[ \$(id -u) -eq 0 \]; then PS1='# '; else PS1='$ '; fi\r" +expect "# " + +send "grpck\r" +expect "'foo2' is a member of the 'foo' group in /etc/gshadow but not in /etc/group" +expect "shadow group foo: no user foo2" +expect "delete member 'foo2'? " +send "yes\r" +expect "grpck: the files have been updated" +expect "# " +send "echo \$?\r" +expect "2" +send "exit\r" +puts "OK\n" +exit 0 diff --git a/tests/tests/cktools/grpck/13_grpck_unknown_user_gshadow/grpck.test b/tests/tests/cktools/grpck/13_grpck_unknown_user_gshadow/grpck.test new file mode 100755 index 00000000..dcfa2498 --- /dev/null +++ b/tests/tests/cktools/grpck/13_grpck_unknown_user_gshadow/grpck.test @@ -0,0 +1,37 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "grpck check the number of fields and can change the system database" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +./grpck.exp + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl data/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/grpck/14_grpck_unknown_user_adm_gshadow/config.txt b/tests/tests/cktools/grpck/14_grpck_unknown_user_adm_gshadow/config.txt new file mode 100644 index 00000000..01189bd6 --- /dev/null +++ b/tests/tests/cktools/grpck/14_grpck_unknown_user_adm_gshadow/config.txt @@ -0,0 +1,2 @@ +user foo +group foo with typo in group diff --git a/tests/tests/cktools/grpck/14_grpck_unknown_user_adm_gshadow/config/etc/group b/tests/tests/cktools/grpck/14_grpck_unknown_user_adm_gshadow/config/etc/group new file mode 100644 index 00000000..cf18eb5b --- /dev/null +++ b/tests/tests/cktools/grpck/14_grpck_unknown_user_adm_gshadow/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000:daemon,bin diff --git a/tests/tests/cktools/grpck/14_grpck_unknown_user_adm_gshadow/config/etc/gshadow b/tests/tests/cktools/grpck/14_grpck_unknown_user_adm_gshadow/config/etc/gshadow new file mode 100644 index 00000000..a7d227e6 --- /dev/null +++ b/tests/tests/cktools/grpck/14_grpck_unknown_user_adm_gshadow/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:foo3,foo4:foo3,daemon,bin,foo2 diff --git a/tests/tests/cktools/grpck/14_grpck_unknown_user_adm_gshadow/config/etc/passwd b/tests/tests/cktools/grpck/14_grpck_unknown_user_adm_gshadow/config/etc/passwd new file mode 100644 index 00000000..dc7bf840 --- /dev/null +++ b/tests/tests/cktools/grpck/14_grpck_unknown_user_adm_gshadow/config/etc/passwd @@ -0,0 +1,20 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +foo:x:1000:1000:::/bin/false diff --git a/tests/tests/cktools/grpck/14_grpck_unknown_user_adm_gshadow/config/etc/shadow b/tests/tests/cktools/grpck/14_grpck_unknown_user_adm_gshadow/config/etc/shadow new file mode 100644 index 00000000..2baad3b4 --- /dev/null +++ b/tests/tests/cktools/grpck/14_grpck_unknown_user_adm_gshadow/config/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/grpck/14_grpck_unknown_user_adm_gshadow/data/gshadow b/tests/tests/cktools/grpck/14_grpck_unknown_user_adm_gshadow/data/gshadow new file mode 100644 index 00000000..3e97ea42 --- /dev/null +++ b/tests/tests/cktools/grpck/14_grpck_unknown_user_adm_gshadow/data/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*::daemon,bin diff --git a/tests/tests/cktools/grpck/14_grpck_unknown_user_adm_gshadow/grpck.exp b/tests/tests/cktools/grpck/14_grpck_unknown_user_adm_gshadow/grpck.exp new file mode 100755 index 00000000..b5a65b19 --- /dev/null +++ b/tests/tests/cktools/grpck/14_grpck_unknown_user_adm_gshadow/grpck.exp @@ -0,0 +1,31 @@ +#!/usr/bin/expect + +set timeout 2 +expect_after default {puts stderr "\nFAIL"; exit 1} + +spawn /bin/sh +send "if \[ \$(id -u) -eq 0 \]; then PS1='# '; else PS1='$ '; fi\r" +expect "# " + +send "grpck\r" +expect "'foo3' is a member of the 'foo' group in /etc/gshadow but not in /etc/group" +expect "'foo2' is a member of the 'foo' group in /etc/gshadow but not in /etc/group" +expect "shadow group foo: no administrative user foo3" +expect "delete administrative member 'foo3'? " +send "yes\r" +expect "shadow group foo: no administrative user foo4" +expect "delete administrative member 'foo4'? " +send "yes\r" +expect "shadow group foo: no user foo3" +expect "delete member 'foo3'? " +send "yes\r" +expect "shadow group foo: no user foo2" +expect "delete member 'foo2'? " +send "yes\r" +expect "grpck: the files have been updated" +expect "# " +send "echo \$?\r" +expect "2" +send "exit\r" +puts "OK\n" +exit 0 diff --git a/tests/tests/cktools/grpck/14_grpck_unknown_user_adm_gshadow/grpck.test b/tests/tests/cktools/grpck/14_grpck_unknown_user_adm_gshadow/grpck.test new file mode 100755 index 00000000..dcfa2498 --- /dev/null +++ b/tests/tests/cktools/grpck/14_grpck_unknown_user_adm_gshadow/grpck.test @@ -0,0 +1,37 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "grpck check the number of fields and can change the system database" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +./grpck.exp + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl data/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/grpck/15_grpck_unknown_user_duplicate_group/config.txt b/tests/tests/cktools/grpck/15_grpck_unknown_user_duplicate_group/config.txt new file mode 100644 index 00000000..01189bd6 --- /dev/null +++ b/tests/tests/cktools/grpck/15_grpck_unknown_user_duplicate_group/config.txt @@ -0,0 +1,2 @@ +user foo +group foo with typo in group diff --git a/tests/tests/cktools/grpck/15_grpck_unknown_user_duplicate_group/config/etc/group b/tests/tests/cktools/grpck/15_grpck_unknown_user_duplicate_group/config/etc/group new file mode 100644 index 00000000..4eeb1ff3 --- /dev/null +++ b/tests/tests/cktools/grpck/15_grpck_unknown_user_duplicate_group/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000:daemon,foo2,foo2,bin diff --git a/tests/tests/cktools/grpck/15_grpck_unknown_user_duplicate_group/config/etc/gshadow b/tests/tests/cktools/grpck/15_grpck_unknown_user_duplicate_group/config/etc/gshadow new file mode 100644 index 00000000..3e97ea42 --- /dev/null +++ b/tests/tests/cktools/grpck/15_grpck_unknown_user_duplicate_group/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*::daemon,bin diff --git a/tests/tests/cktools/grpck/15_grpck_unknown_user_duplicate_group/config/etc/passwd b/tests/tests/cktools/grpck/15_grpck_unknown_user_duplicate_group/config/etc/passwd new file mode 100644 index 00000000..dc7bf840 --- /dev/null +++ b/tests/tests/cktools/grpck/15_grpck_unknown_user_duplicate_group/config/etc/passwd @@ -0,0 +1,20 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +foo:x:1000:1000:::/bin/false diff --git a/tests/tests/cktools/grpck/15_grpck_unknown_user_duplicate_group/config/etc/shadow b/tests/tests/cktools/grpck/15_grpck_unknown_user_duplicate_group/config/etc/shadow new file mode 100644 index 00000000..2baad3b4 --- /dev/null +++ b/tests/tests/cktools/grpck/15_grpck_unknown_user_duplicate_group/config/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/grpck/15_grpck_unknown_user_duplicate_group/data/group b/tests/tests/cktools/grpck/15_grpck_unknown_user_duplicate_group/data/group new file mode 100644 index 00000000..cf18eb5b --- /dev/null +++ b/tests/tests/cktools/grpck/15_grpck_unknown_user_duplicate_group/data/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000:daemon,bin diff --git a/tests/tests/cktools/grpck/15_grpck_unknown_user_duplicate_group/grpck.exp b/tests/tests/cktools/grpck/15_grpck_unknown_user_duplicate_group/grpck.exp new file mode 100755 index 00000000..4de3e213 --- /dev/null +++ b/tests/tests/cktools/grpck/15_grpck_unknown_user_duplicate_group/grpck.exp @@ -0,0 +1,23 @@ +#!/usr/bin/expect + +set timeout 2 +expect_after default {puts stderr "\nFAIL"; exit 1} + +spawn /bin/sh +send "if \[ \$(id -u) -eq 0 \]; then PS1='# '; else PS1='$ '; fi\r" +expect "# " + +send "grpck\r" +expect "group foo: no user foo2" +expect "delete member 'foo2'? " +send "yes\r" +expect "group foo: no user foo2" +expect "delete member 'foo2'? " +send "yes\r" +expect "grpck: the files have been updated" +expect "# " +send "echo \$?\r" +expect "2" +send "exit\r" +puts "OK\n" +exit 0 diff --git a/tests/tests/cktools/grpck/15_grpck_unknown_user_duplicate_group/grpck.test b/tests/tests/cktools/grpck/15_grpck_unknown_user_duplicate_group/grpck.test new file mode 100755 index 00000000..741bfe18 --- /dev/null +++ b/tests/tests/cktools/grpck/15_grpck_unknown_user_duplicate_group/grpck.test @@ -0,0 +1,37 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "grpck check the number of fields and can change the system database" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +./grpck.exp + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl data/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/grpck/16_grpck_duplicate_entry_group/config.txt b/tests/tests/cktools/grpck/16_grpck_duplicate_entry_group/config.txt new file mode 100644 index 00000000..01189bd6 --- /dev/null +++ b/tests/tests/cktools/grpck/16_grpck_duplicate_entry_group/config.txt @@ -0,0 +1,2 @@ +user foo +group foo with typo in group diff --git a/tests/tests/cktools/grpck/16_grpck_duplicate_entry_group/config/etc/group b/tests/tests/cktools/grpck/16_grpck_duplicate_entry_group/config/etc/group new file mode 100644 index 00000000..73518006 --- /dev/null +++ b/tests/tests/cktools/grpck/16_grpck_duplicate_entry_group/config/etc/group @@ -0,0 +1,43 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000:daemon +foo:x:1000:bin diff --git a/tests/tests/cktools/grpck/16_grpck_duplicate_entry_group/config/etc/gshadow b/tests/tests/cktools/grpck/16_grpck_duplicate_entry_group/config/etc/gshadow new file mode 100644 index 00000000..5042e581 --- /dev/null +++ b/tests/tests/cktools/grpck/16_grpck_duplicate_entry_group/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/cktools/grpck/16_grpck_duplicate_entry_group/config/etc/passwd b/tests/tests/cktools/grpck/16_grpck_duplicate_entry_group/config/etc/passwd new file mode 100644 index 00000000..dc7bf840 --- /dev/null +++ b/tests/tests/cktools/grpck/16_grpck_duplicate_entry_group/config/etc/passwd @@ -0,0 +1,20 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +foo:x:1000:1000:::/bin/false diff --git a/tests/tests/cktools/grpck/16_grpck_duplicate_entry_group/config/etc/shadow b/tests/tests/cktools/grpck/16_grpck_duplicate_entry_group/config/etc/shadow new file mode 100644 index 00000000..2baad3b4 --- /dev/null +++ b/tests/tests/cktools/grpck/16_grpck_duplicate_entry_group/config/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/grpck/16_grpck_duplicate_entry_group/data/group b/tests/tests/cktools/grpck/16_grpck_duplicate_entry_group/data/group new file mode 100644 index 00000000..5c08ae19 --- /dev/null +++ b/tests/tests/cktools/grpck/16_grpck_duplicate_entry_group/data/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000:bin diff --git a/tests/tests/cktools/grpck/16_grpck_duplicate_entry_group/grpck.exp b/tests/tests/cktools/grpck/16_grpck_duplicate_entry_group/grpck.exp new file mode 100755 index 00000000..8c089878 --- /dev/null +++ b/tests/tests/cktools/grpck/16_grpck_duplicate_entry_group/grpck.exp @@ -0,0 +1,20 @@ +#!/usr/bin/expect + +set timeout 2 +expect_after default {puts stderr "\nFAIL"; exit 1} + +spawn /bin/sh +send "if \[ \$(id -u) -eq 0 \]; then PS1='# '; else PS1='$ '; fi\r" +expect "# " + +send "grpck\r" +expect "duplicate group entry" +expect "delete line 'foo:x:1000:daemon'? " +send "yes\r" +expect "grpck: the files have been updated" +expect "# " +send "echo \$?\r" +expect "2" +send "exit\r" +puts "OK\n" +exit 0 diff --git a/tests/tests/cktools/grpck/16_grpck_duplicate_entry_group/grpck.test b/tests/tests/cktools/grpck/16_grpck_duplicate_entry_group/grpck.test new file mode 100755 index 00000000..741bfe18 --- /dev/null +++ b/tests/tests/cktools/grpck/16_grpck_duplicate_entry_group/grpck.test @@ -0,0 +1,37 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "grpck check the number of fields and can change the system database" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +./grpck.exp + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl data/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/grpck/17_grpck_duplicate_entry_gshadow/config.txt b/tests/tests/cktools/grpck/17_grpck_duplicate_entry_gshadow/config.txt new file mode 100644 index 00000000..01189bd6 --- /dev/null +++ b/tests/tests/cktools/grpck/17_grpck_duplicate_entry_gshadow/config.txt @@ -0,0 +1,2 @@ +user foo +group foo with typo in group diff --git a/tests/tests/cktools/grpck/17_grpck_duplicate_entry_gshadow/config/etc/group b/tests/tests/cktools/grpck/17_grpck_duplicate_entry_gshadow/config/etc/group new file mode 100644 index 00000000..fda0a6df --- /dev/null +++ b/tests/tests/cktools/grpck/17_grpck_duplicate_entry_gshadow/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000:daemon diff --git a/tests/tests/cktools/grpck/17_grpck_duplicate_entry_gshadow/config/etc/gshadow b/tests/tests/cktools/grpck/17_grpck_duplicate_entry_gshadow/config/etc/gshadow new file mode 100644 index 00000000..124c8051 --- /dev/null +++ b/tests/tests/cktools/grpck/17_grpck_duplicate_entry_gshadow/config/etc/gshadow @@ -0,0 +1,43 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +foo:*::daemon +crontab:x:: +Debian-exim:x:: +foo:*::bin diff --git a/tests/tests/cktools/grpck/17_grpck_duplicate_entry_gshadow/config/etc/passwd b/tests/tests/cktools/grpck/17_grpck_duplicate_entry_gshadow/config/etc/passwd new file mode 100644 index 00000000..dc7bf840 --- /dev/null +++ b/tests/tests/cktools/grpck/17_grpck_duplicate_entry_gshadow/config/etc/passwd @@ -0,0 +1,20 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +foo:x:1000:1000:::/bin/false diff --git a/tests/tests/cktools/grpck/17_grpck_duplicate_entry_gshadow/config/etc/shadow b/tests/tests/cktools/grpck/17_grpck_duplicate_entry_gshadow/config/etc/shadow new file mode 100644 index 00000000..2baad3b4 --- /dev/null +++ b/tests/tests/cktools/grpck/17_grpck_duplicate_entry_gshadow/config/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/grpck/17_grpck_duplicate_entry_gshadow/data/gshadow b/tests/tests/cktools/grpck/17_grpck_duplicate_entry_gshadow/data/gshadow new file mode 100644 index 00000000..bdd8388f --- /dev/null +++ b/tests/tests/cktools/grpck/17_grpck_duplicate_entry_gshadow/data/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*::bin diff --git a/tests/tests/cktools/grpck/17_grpck_duplicate_entry_gshadow/grpck.exp b/tests/tests/cktools/grpck/17_grpck_duplicate_entry_gshadow/grpck.exp new file mode 100755 index 00000000..2fd4ff17 --- /dev/null +++ b/tests/tests/cktools/grpck/17_grpck_duplicate_entry_gshadow/grpck.exp @@ -0,0 +1,20 @@ +#!/usr/bin/expect + +set timeout 2 +expect_after default {puts stderr "\nFAIL"; exit 1} + +spawn /bin/sh +send "if \[ \$(id -u) -eq 0 \]; then PS1='# '; else PS1='$ '; fi\r" +expect "# " + +send "grpck\r" +expect "duplicate shadow group entry" +expect "delete line 'foo:*::daemon'? " +send "yes\r" +expect "grpck: the files have been updated" +expect "# " +send "echo \$?\r" +expect "2" +send "exit\r" +puts "OK\n" +exit 0 diff --git a/tests/tests/cktools/grpck/17_grpck_duplicate_entry_gshadow/grpck.test b/tests/tests/cktools/grpck/17_grpck_duplicate_entry_gshadow/grpck.test new file mode 100755 index 00000000..dcfa2498 --- /dev/null +++ b/tests/tests/cktools/grpck/17_grpck_duplicate_entry_gshadow/grpck.test @@ -0,0 +1,37 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "grpck check the number of fields and can change the system database" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +./grpck.exp + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl data/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/grpck/18_grpck_duplicate_entry_group_no_changes/config.txt b/tests/tests/cktools/grpck/18_grpck_duplicate_entry_group_no_changes/config.txt new file mode 100644 index 00000000..01189bd6 --- /dev/null +++ b/tests/tests/cktools/grpck/18_grpck_duplicate_entry_group_no_changes/config.txt @@ -0,0 +1,2 @@ +user foo +group foo with typo in group diff --git a/tests/tests/cktools/grpck/18_grpck_duplicate_entry_group_no_changes/config/etc/group b/tests/tests/cktools/grpck/18_grpck_duplicate_entry_group_no_changes/config/etc/group new file mode 100644 index 00000000..73518006 --- /dev/null +++ b/tests/tests/cktools/grpck/18_grpck_duplicate_entry_group_no_changes/config/etc/group @@ -0,0 +1,43 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000:daemon +foo:x:1000:bin diff --git a/tests/tests/cktools/grpck/18_grpck_duplicate_entry_group_no_changes/config/etc/gshadow b/tests/tests/cktools/grpck/18_grpck_duplicate_entry_group_no_changes/config/etc/gshadow new file mode 100644 index 00000000..5042e581 --- /dev/null +++ b/tests/tests/cktools/grpck/18_grpck_duplicate_entry_group_no_changes/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/cktools/grpck/18_grpck_duplicate_entry_group_no_changes/config/etc/passwd b/tests/tests/cktools/grpck/18_grpck_duplicate_entry_group_no_changes/config/etc/passwd new file mode 100644 index 00000000..dc7bf840 --- /dev/null +++ b/tests/tests/cktools/grpck/18_grpck_duplicate_entry_group_no_changes/config/etc/passwd @@ -0,0 +1,20 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +foo:x:1000:1000:::/bin/false diff --git a/tests/tests/cktools/grpck/18_grpck_duplicate_entry_group_no_changes/config/etc/shadow b/tests/tests/cktools/grpck/18_grpck_duplicate_entry_group_no_changes/config/etc/shadow new file mode 100644 index 00000000..2baad3b4 --- /dev/null +++ b/tests/tests/cktools/grpck/18_grpck_duplicate_entry_group_no_changes/config/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/grpck/18_grpck_duplicate_entry_group_no_changes/grpck.exp b/tests/tests/cktools/grpck/18_grpck_duplicate_entry_group_no_changes/grpck.exp new file mode 100755 index 00000000..51d64df7 --- /dev/null +++ b/tests/tests/cktools/grpck/18_grpck_duplicate_entry_group_no_changes/grpck.exp @@ -0,0 +1,24 @@ +#!/usr/bin/expect + +set timeout 2 +expect_after default {puts stderr "\nFAIL"; exit 1} + +spawn /bin/sh +send "if \[ \$(id -u) -eq 0 \]; then PS1='# '; else PS1='$ '; fi\r" +expect "# " + +send "grpck\r" +expect "duplicate group entry" +expect "delete line 'foo:x:1000:daemon'? " +send "no\r" +expect "'daemon' is a member of the 'foo' group in /etc/group but not in /etc/gshadow" +expect "duplicate group entry" +expect "delete line 'foo:x:1000:bin'? " +send "no \r" +expect "grpck: no changes" +expect "# " +send "echo \$?\r" +expect "2" +send "exit\r" +puts "OK\n" +exit 0 diff --git a/tests/tests/cktools/grpck/18_grpck_duplicate_entry_group_no_changes/grpck.test b/tests/tests/cktools/grpck/18_grpck_duplicate_entry_group_no_changes/grpck.test new file mode 100755 index 00000000..81bf12ca --- /dev/null +++ b/tests/tests/cktools/grpck/18_grpck_duplicate_entry_group_no_changes/grpck.test @@ -0,0 +1,37 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "grpck check the number of fields and can change the system database" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +./grpck.exp + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/grpck/19_grpck_duplicate_entry_gshadow_no_changes/config.txt b/tests/tests/cktools/grpck/19_grpck_duplicate_entry_gshadow_no_changes/config.txt new file mode 100644 index 00000000..01189bd6 --- /dev/null +++ b/tests/tests/cktools/grpck/19_grpck_duplicate_entry_gshadow_no_changes/config.txt @@ -0,0 +1,2 @@ +user foo +group foo with typo in group diff --git a/tests/tests/cktools/grpck/19_grpck_duplicate_entry_gshadow_no_changes/config/etc/group b/tests/tests/cktools/grpck/19_grpck_duplicate_entry_gshadow_no_changes/config/etc/group new file mode 100644 index 00000000..fda0a6df --- /dev/null +++ b/tests/tests/cktools/grpck/19_grpck_duplicate_entry_gshadow_no_changes/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000:daemon diff --git a/tests/tests/cktools/grpck/19_grpck_duplicate_entry_gshadow_no_changes/config/etc/gshadow b/tests/tests/cktools/grpck/19_grpck_duplicate_entry_gshadow_no_changes/config/etc/gshadow new file mode 100644 index 00000000..124c8051 --- /dev/null +++ b/tests/tests/cktools/grpck/19_grpck_duplicate_entry_gshadow_no_changes/config/etc/gshadow @@ -0,0 +1,43 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +foo:*::daemon +crontab:x:: +Debian-exim:x:: +foo:*::bin diff --git a/tests/tests/cktools/grpck/19_grpck_duplicate_entry_gshadow_no_changes/config/etc/passwd b/tests/tests/cktools/grpck/19_grpck_duplicate_entry_gshadow_no_changes/config/etc/passwd new file mode 100644 index 00000000..dc7bf840 --- /dev/null +++ b/tests/tests/cktools/grpck/19_grpck_duplicate_entry_gshadow_no_changes/config/etc/passwd @@ -0,0 +1,20 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +foo:x:1000:1000:::/bin/false diff --git a/tests/tests/cktools/grpck/19_grpck_duplicate_entry_gshadow_no_changes/config/etc/shadow b/tests/tests/cktools/grpck/19_grpck_duplicate_entry_gshadow_no_changes/config/etc/shadow new file mode 100644 index 00000000..2baad3b4 --- /dev/null +++ b/tests/tests/cktools/grpck/19_grpck_duplicate_entry_gshadow_no_changes/config/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/grpck/19_grpck_duplicate_entry_gshadow_no_changes/grpck.exp b/tests/tests/cktools/grpck/19_grpck_duplicate_entry_gshadow_no_changes/grpck.exp new file mode 100755 index 00000000..57e90908 --- /dev/null +++ b/tests/tests/cktools/grpck/19_grpck_duplicate_entry_gshadow_no_changes/grpck.exp @@ -0,0 +1,23 @@ +#!/usr/bin/expect + +set timeout 2 +expect_after default {puts stderr "\nFAIL"; exit 1} + +spawn /bin/sh +send "if \[ \$(id -u) -eq 0 \]; then PS1='# '; else PS1='$ '; fi\r" +expect "# " + +send "grpck\r" +expect "duplicate shadow group entry" +expect "delete line 'foo:*::daemon'? " +send "no\r" +expect "duplicate shadow group entry" +expect "delete line 'foo:*::bin'? " +send "no\r" +expect "grpck: no changes" +expect "# " +send "echo \$?\r" +expect "2" +send "exit\r" +puts "OK\n" +exit 0 diff --git a/tests/tests/cktools/grpck/19_grpck_duplicate_entry_gshadow_no_changes/grpck.test b/tests/tests/cktools/grpck/19_grpck_duplicate_entry_gshadow_no_changes/grpck.test new file mode 100755 index 00000000..81bf12ca --- /dev/null +++ b/tests/tests/cktools/grpck/19_grpck_duplicate_entry_gshadow_no_changes/grpck.test @@ -0,0 +1,37 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "grpck check the number of fields and can change the system database" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +./grpck.exp + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/grpck/20_grpck_duplicate_entry_gshadow_delete_second/config.txt b/tests/tests/cktools/grpck/20_grpck_duplicate_entry_gshadow_delete_second/config.txt new file mode 100644 index 00000000..01189bd6 --- /dev/null +++ b/tests/tests/cktools/grpck/20_grpck_duplicate_entry_gshadow_delete_second/config.txt @@ -0,0 +1,2 @@ +user foo +group foo with typo in group diff --git a/tests/tests/cktools/grpck/20_grpck_duplicate_entry_gshadow_delete_second/config/etc/group b/tests/tests/cktools/grpck/20_grpck_duplicate_entry_gshadow_delete_second/config/etc/group new file mode 100644 index 00000000..fda0a6df --- /dev/null +++ b/tests/tests/cktools/grpck/20_grpck_duplicate_entry_gshadow_delete_second/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000:daemon diff --git a/tests/tests/cktools/grpck/20_grpck_duplicate_entry_gshadow_delete_second/config/etc/gshadow b/tests/tests/cktools/grpck/20_grpck_duplicate_entry_gshadow_delete_second/config/etc/gshadow new file mode 100644 index 00000000..124c8051 --- /dev/null +++ b/tests/tests/cktools/grpck/20_grpck_duplicate_entry_gshadow_delete_second/config/etc/gshadow @@ -0,0 +1,43 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +foo:*::daemon +crontab:x:: +Debian-exim:x:: +foo:*::bin diff --git a/tests/tests/cktools/grpck/20_grpck_duplicate_entry_gshadow_delete_second/config/etc/passwd b/tests/tests/cktools/grpck/20_grpck_duplicate_entry_gshadow_delete_second/config/etc/passwd new file mode 100644 index 00000000..dc7bf840 --- /dev/null +++ b/tests/tests/cktools/grpck/20_grpck_duplicate_entry_gshadow_delete_second/config/etc/passwd @@ -0,0 +1,20 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +foo:x:1000:1000:::/bin/false diff --git a/tests/tests/cktools/grpck/20_grpck_duplicate_entry_gshadow_delete_second/config/etc/shadow b/tests/tests/cktools/grpck/20_grpck_duplicate_entry_gshadow_delete_second/config/etc/shadow new file mode 100644 index 00000000..2baad3b4 --- /dev/null +++ b/tests/tests/cktools/grpck/20_grpck_duplicate_entry_gshadow_delete_second/config/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/grpck/20_grpck_duplicate_entry_gshadow_delete_second/data/gshadow b/tests/tests/cktools/grpck/20_grpck_duplicate_entry_gshadow_delete_second/data/gshadow new file mode 100644 index 00000000..a1a4f31e --- /dev/null +++ b/tests/tests/cktools/grpck/20_grpck_duplicate_entry_gshadow_delete_second/data/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +foo:*::daemon +crontab:x:: +Debian-exim:x:: diff --git a/tests/tests/cktools/grpck/20_grpck_duplicate_entry_gshadow_delete_second/grpck.exp b/tests/tests/cktools/grpck/20_grpck_duplicate_entry_gshadow_delete_second/grpck.exp new file mode 100755 index 00000000..77969485 --- /dev/null +++ b/tests/tests/cktools/grpck/20_grpck_duplicate_entry_gshadow_delete_second/grpck.exp @@ -0,0 +1,23 @@ +#!/usr/bin/expect + +set timeout 2 +expect_after default {puts stderr "\nFAIL"; exit 1} + +spawn /bin/sh +send "if \[ \$(id -u) -eq 0 \]; then PS1='# '; else PS1='$ '; fi\r" +expect "# " + +send "grpck\r" +expect "duplicate shadow group entry" +expect "delete line 'foo:*::daemon'? " +send "no\r" +expect "duplicate shadow group entry" +expect "delete line 'foo:*::bin'? " +send "yes\r" +expect "grpck: the files have been updated" +expect "# " +send "echo \$?\r" +expect "2" +send "exit\r" +puts "OK\n" +exit 0 diff --git a/tests/tests/cktools/grpck/20_grpck_duplicate_entry_gshadow_delete_second/grpck.test b/tests/tests/cktools/grpck/20_grpck_duplicate_entry_gshadow_delete_second/grpck.test new file mode 100755 index 00000000..dcfa2498 --- /dev/null +++ b/tests/tests/cktools/grpck/20_grpck_duplicate_entry_gshadow_delete_second/grpck.test @@ -0,0 +1,37 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "grpck check the number of fields and can change the system database" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +./grpck.exp + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl data/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/grpck/21_grpck_invalid_group_name/config.txt b/tests/tests/cktools/grpck/21_grpck_invalid_group_name/config.txt new file mode 100644 index 00000000..01189bd6 --- /dev/null +++ b/tests/tests/cktools/grpck/21_grpck_invalid_group_name/config.txt @@ -0,0 +1,2 @@ +user foo +group foo with typo in group diff --git a/tests/tests/cktools/grpck/21_grpck_invalid_group_name/config/etc/group b/tests/tests/cktools/grpck/21_grpck_invalid_group_name/config/etc/group new file mode 100644 index 00000000..220f3757 --- /dev/null +++ b/tests/tests/cktools/grpck/21_grpck_invalid_group_name/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +f o o:x:1000: diff --git a/tests/tests/cktools/grpck/21_grpck_invalid_group_name/config/etc/gshadow b/tests/tests/cktools/grpck/21_grpck_invalid_group_name/config/etc/gshadow new file mode 100644 index 00000000..8337b653 --- /dev/null +++ b/tests/tests/cktools/grpck/21_grpck_invalid_group_name/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +f o o:*:: diff --git a/tests/tests/cktools/grpck/21_grpck_invalid_group_name/config/etc/passwd b/tests/tests/cktools/grpck/21_grpck_invalid_group_name/config/etc/passwd new file mode 100644 index 00000000..dc7bf840 --- /dev/null +++ b/tests/tests/cktools/grpck/21_grpck_invalid_group_name/config/etc/passwd @@ -0,0 +1,20 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +foo:x:1000:1000:::/bin/false diff --git a/tests/tests/cktools/grpck/21_grpck_invalid_group_name/config/etc/shadow b/tests/tests/cktools/grpck/21_grpck_invalid_group_name/config/etc/shadow new file mode 100644 index 00000000..2baad3b4 --- /dev/null +++ b/tests/tests/cktools/grpck/21_grpck_invalid_group_name/config/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/grpck/21_grpck_invalid_group_name/grpck.exp b/tests/tests/cktools/grpck/21_grpck_invalid_group_name/grpck.exp new file mode 100755 index 00000000..83128393 --- /dev/null +++ b/tests/tests/cktools/grpck/21_grpck_invalid_group_name/grpck.exp @@ -0,0 +1,17 @@ +#!/usr/bin/expect + +set timeout 2 +expect_after default {puts stderr "\nFAIL"; exit 1} + +spawn /bin/sh +send "if \[ \$(id -u) -eq 0 \]; then PS1='# '; else PS1='$ '; fi\r" +expect "# " + +send "grpck\r" +expect "invalid group name 'f o o'" +expect "grpck: no changes" +send "echo \$?\r" +expect "2" +send "exit\r" +puts "OK\n" +exit 0 diff --git a/tests/tests/cktools/grpck/21_grpck_invalid_group_name/grpck.test b/tests/tests/cktools/grpck/21_grpck_invalid_group_name/grpck.test new file mode 100755 index 00000000..81bf12ca --- /dev/null +++ b/tests/tests/cktools/grpck/21_grpck_invalid_group_name/grpck.test @@ -0,0 +1,37 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "grpck check the number of fields and can change the system database" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +./grpck.exp + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/grpck/22_grpck_invalid_group_ID_-1/config.txt b/tests/tests/cktools/grpck/22_grpck_invalid_group_ID_-1/config.txt new file mode 100644 index 00000000..01189bd6 --- /dev/null +++ b/tests/tests/cktools/grpck/22_grpck_invalid_group_ID_-1/config.txt @@ -0,0 +1,2 @@ +user foo +group foo with typo in group diff --git a/tests/tests/cktools/grpck/22_grpck_invalid_group_ID_-1/config/etc/group b/tests/tests/cktools/grpck/22_grpck_invalid_group_ID_-1/config/etc/group new file mode 100644 index 00000000..e9efa8be --- /dev/null +++ b/tests/tests/cktools/grpck/22_grpck_invalid_group_ID_-1/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:-1: diff --git a/tests/tests/cktools/grpck/22_grpck_invalid_group_ID_-1/config/etc/gshadow b/tests/tests/cktools/grpck/22_grpck_invalid_group_ID_-1/config/etc/gshadow new file mode 100644 index 00000000..5042e581 --- /dev/null +++ b/tests/tests/cktools/grpck/22_grpck_invalid_group_ID_-1/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/cktools/grpck/22_grpck_invalid_group_ID_-1/config/etc/passwd b/tests/tests/cktools/grpck/22_grpck_invalid_group_ID_-1/config/etc/passwd new file mode 100644 index 00000000..dc7bf840 --- /dev/null +++ b/tests/tests/cktools/grpck/22_grpck_invalid_group_ID_-1/config/etc/passwd @@ -0,0 +1,20 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +foo:x:1000:1000:::/bin/false diff --git a/tests/tests/cktools/grpck/22_grpck_invalid_group_ID_-1/config/etc/shadow b/tests/tests/cktools/grpck/22_grpck_invalid_group_ID_-1/config/etc/shadow new file mode 100644 index 00000000..2baad3b4 --- /dev/null +++ b/tests/tests/cktools/grpck/22_grpck_invalid_group_ID_-1/config/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/grpck/22_grpck_invalid_group_ID_-1/data/group b/tests/tests/cktools/grpck/22_grpck_invalid_group_ID_-1/data/group new file mode 100644 index 00000000..10123908 --- /dev/null +++ b/tests/tests/cktools/grpck/22_grpck_invalid_group_ID_-1/data/group @@ -0,0 +1,41 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: diff --git a/tests/tests/cktools/grpck/22_grpck_invalid_group_ID_-1/data/gshadow b/tests/tests/cktools/grpck/22_grpck_invalid_group_ID_-1/data/gshadow new file mode 100644 index 00000000..ae424865 --- /dev/null +++ b/tests/tests/cktools/grpck/22_grpck_invalid_group_ID_-1/data/gshadow @@ -0,0 +1,41 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: diff --git a/tests/tests/cktools/grpck/22_grpck_invalid_group_ID_-1/grpck.exp b/tests/tests/cktools/grpck/22_grpck_invalid_group_ID_-1/grpck.exp new file mode 100755 index 00000000..af20b345 --- /dev/null +++ b/tests/tests/cktools/grpck/22_grpck_invalid_group_ID_-1/grpck.exp @@ -0,0 +1,23 @@ +#!/usr/bin/expect + +set timeout 2 +expect_after default {puts stderr "\nFAIL"; exit 1} + +spawn /bin/sh +send "if \[ \$(id -u) -eq 0 \]; then PS1='# '; else PS1='$ '; fi\r" +expect "# " + +send "grpck\r" +expect "invalid group file entry" +expect "delete line 'foo:x:-1:'? " +send "yes\r" +expect "no matching group file entry in /etc/group" +expect "delete line 'foo:*::'? " +send "yes\r" +expect "grpck: the files have been updated" +expect "# " +send "echo \$?\r" +expect "2" +send "exit\r" +puts "OK\n" +exit 0 diff --git a/tests/tests/cktools/grpck/22_grpck_invalid_group_ID_-1/grpck.test b/tests/tests/cktools/grpck/22_grpck_invalid_group_ID_-1/grpck.test new file mode 100755 index 00000000..906d6294 --- /dev/null +++ b/tests/tests/cktools/grpck/22_grpck_invalid_group_ID_-1/grpck.test @@ -0,0 +1,37 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "grpck check the number of fields and can change the system database" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +./grpck.exp + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl data/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl data/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/grpck/23_grpck_invalid_group_ID_4294967295/config.txt b/tests/tests/cktools/grpck/23_grpck_invalid_group_ID_4294967295/config.txt new file mode 100644 index 00000000..01189bd6 --- /dev/null +++ b/tests/tests/cktools/grpck/23_grpck_invalid_group_ID_4294967295/config.txt @@ -0,0 +1,2 @@ +user foo +group foo with typo in group diff --git a/tests/tests/cktools/grpck/23_grpck_invalid_group_ID_4294967295/config/etc/group b/tests/tests/cktools/grpck/23_grpck_invalid_group_ID_4294967295/config/etc/group new file mode 100644 index 00000000..c6a2e190 --- /dev/null +++ b/tests/tests/cktools/grpck/23_grpck_invalid_group_ID_4294967295/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:4294967295: diff --git a/tests/tests/cktools/grpck/23_grpck_invalid_group_ID_4294967295/config/etc/gshadow b/tests/tests/cktools/grpck/23_grpck_invalid_group_ID_4294967295/config/etc/gshadow new file mode 100644 index 00000000..5042e581 --- /dev/null +++ b/tests/tests/cktools/grpck/23_grpck_invalid_group_ID_4294967295/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/cktools/grpck/23_grpck_invalid_group_ID_4294967295/config/etc/passwd b/tests/tests/cktools/grpck/23_grpck_invalid_group_ID_4294967295/config/etc/passwd new file mode 100644 index 00000000..dc7bf840 --- /dev/null +++ b/tests/tests/cktools/grpck/23_grpck_invalid_group_ID_4294967295/config/etc/passwd @@ -0,0 +1,20 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +foo:x:1000:1000:::/bin/false diff --git a/tests/tests/cktools/grpck/23_grpck_invalid_group_ID_4294967295/config/etc/shadow b/tests/tests/cktools/grpck/23_grpck_invalid_group_ID_4294967295/config/etc/shadow new file mode 100644 index 00000000..2baad3b4 --- /dev/null +++ b/tests/tests/cktools/grpck/23_grpck_invalid_group_ID_4294967295/config/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/grpck/23_grpck_invalid_group_ID_4294967295/grpck.exp b/tests/tests/cktools/grpck/23_grpck_invalid_group_ID_4294967295/grpck.exp new file mode 100755 index 00000000..29a5e9f1 --- /dev/null +++ b/tests/tests/cktools/grpck/23_grpck_invalid_group_ID_4294967295/grpck.exp @@ -0,0 +1,18 @@ +#!/usr/bin/expect + +set timeout 2 +expect_after default {puts stderr "\nFAIL"; exit 1} + +spawn /bin/sh +send "if \[ \$(id -u) -eq 0 \]; then PS1='# '; else PS1='$ '; fi\r" +expect "# " + +send "grpck\r" +expect "invalid group ID '4294967295'" +expect "grpck: no changes" +expect "# " +send "echo \$?\r" +expect "2" +send "exit\r" +puts "OK\n" +exit 0 diff --git a/tests/tests/cktools/grpck/23_grpck_invalid_group_ID_4294967295/grpck.test b/tests/tests/cktools/grpck/23_grpck_invalid_group_ID_4294967295/grpck.test new file mode 100755 index 00000000..81bf12ca --- /dev/null +++ b/tests/tests/cktools/grpck/23_grpck_invalid_group_ID_4294967295/grpck.test @@ -0,0 +1,37 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "grpck check the number of fields and can change the system database" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +./grpck.exp + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/grpck/24_grpck_invalid_group_ID_4294967296/config.txt b/tests/tests/cktools/grpck/24_grpck_invalid_group_ID_4294967296/config.txt new file mode 100644 index 00000000..01189bd6 --- /dev/null +++ b/tests/tests/cktools/grpck/24_grpck_invalid_group_ID_4294967296/config.txt @@ -0,0 +1,2 @@ +user foo +group foo with typo in group diff --git a/tests/tests/cktools/grpck/24_grpck_invalid_group_ID_4294967296/config/etc/group b/tests/tests/cktools/grpck/24_grpck_invalid_group_ID_4294967296/config/etc/group new file mode 100644 index 00000000..cb278cec --- /dev/null +++ b/tests/tests/cktools/grpck/24_grpck_invalid_group_ID_4294967296/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:4294967296: diff --git a/tests/tests/cktools/grpck/24_grpck_invalid_group_ID_4294967296/config/etc/gshadow b/tests/tests/cktools/grpck/24_grpck_invalid_group_ID_4294967296/config/etc/gshadow new file mode 100644 index 00000000..5042e581 --- /dev/null +++ b/tests/tests/cktools/grpck/24_grpck_invalid_group_ID_4294967296/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/cktools/grpck/24_grpck_invalid_group_ID_4294967296/config/etc/passwd b/tests/tests/cktools/grpck/24_grpck_invalid_group_ID_4294967296/config/etc/passwd new file mode 100644 index 00000000..dc7bf840 --- /dev/null +++ b/tests/tests/cktools/grpck/24_grpck_invalid_group_ID_4294967296/config/etc/passwd @@ -0,0 +1,20 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +foo:x:1000:1000:::/bin/false diff --git a/tests/tests/cktools/grpck/24_grpck_invalid_group_ID_4294967296/config/etc/shadow b/tests/tests/cktools/grpck/24_grpck_invalid_group_ID_4294967296/config/etc/shadow new file mode 100644 index 00000000..2baad3b4 --- /dev/null +++ b/tests/tests/cktools/grpck/24_grpck_invalid_group_ID_4294967296/config/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/grpck/24_grpck_invalid_group_ID_4294967296/data/group b/tests/tests/cktools/grpck/24_grpck_invalid_group_ID_4294967296/data/group new file mode 100644 index 00000000..10123908 --- /dev/null +++ b/tests/tests/cktools/grpck/24_grpck_invalid_group_ID_4294967296/data/group @@ -0,0 +1,41 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: diff --git a/tests/tests/cktools/grpck/24_grpck_invalid_group_ID_4294967296/data/gshadow b/tests/tests/cktools/grpck/24_grpck_invalid_group_ID_4294967296/data/gshadow new file mode 100644 index 00000000..ae424865 --- /dev/null +++ b/tests/tests/cktools/grpck/24_grpck_invalid_group_ID_4294967296/data/gshadow @@ -0,0 +1,41 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: diff --git a/tests/tests/cktools/grpck/24_grpck_invalid_group_ID_4294967296/grpck.exp b/tests/tests/cktools/grpck/24_grpck_invalid_group_ID_4294967296/grpck.exp new file mode 100755 index 00000000..b4eaaa96 --- /dev/null +++ b/tests/tests/cktools/grpck/24_grpck_invalid_group_ID_4294967296/grpck.exp @@ -0,0 +1,23 @@ +#!/usr/bin/expect + +set timeout 2 +expect_after default {puts stderr "\nFAIL"; exit 1} + +spawn /bin/sh +send "if \[ \$(id -u) -eq 0 \]; then PS1='# '; else PS1='$ '; fi\r" +expect "# " + +send "grpck\r" +expect "invalid group file entry" +expect "delete line 'foo:x:4294967296:'? " +send "yes\r" +expect "no matching group file entry in /etc/group" +expect "delete line 'foo:*::'? " +send "yes\r" +expect "grpck: the files have been updated" +expect "# " +send "echo \$?\r" +expect "2" +send "exit\r" +puts "OK\n" +exit 0 diff --git a/tests/tests/cktools/grpck/24_grpck_invalid_group_ID_4294967296/grpck.test b/tests/tests/cktools/grpck/24_grpck_invalid_group_ID_4294967296/grpck.test new file mode 100755 index 00000000..906d6294 --- /dev/null +++ b/tests/tests/cktools/grpck/24_grpck_invalid_group_ID_4294967296/grpck.test @@ -0,0 +1,37 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "grpck check the number of fields and can change the system database" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +./grpck.exp + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl data/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl data/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/grpck/25_grpck_unknown_user_group_no_changes/config.txt b/tests/tests/cktools/grpck/25_grpck_unknown_user_group_no_changes/config.txt new file mode 100644 index 00000000..01189bd6 --- /dev/null +++ b/tests/tests/cktools/grpck/25_grpck_unknown_user_group_no_changes/config.txt @@ -0,0 +1,2 @@ +user foo +group foo with typo in group diff --git a/tests/tests/cktools/grpck/25_grpck_unknown_user_group_no_changes/config/etc/group b/tests/tests/cktools/grpck/25_grpck_unknown_user_group_no_changes/config/etc/group new file mode 100644 index 00000000..757aef84 --- /dev/null +++ b/tests/tests/cktools/grpck/25_grpck_unknown_user_group_no_changes/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000:daemon,foo2,bin diff --git a/tests/tests/cktools/grpck/25_grpck_unknown_user_group_no_changes/config/etc/gshadow b/tests/tests/cktools/grpck/25_grpck_unknown_user_group_no_changes/config/etc/gshadow new file mode 100644 index 00000000..d2a17827 --- /dev/null +++ b/tests/tests/cktools/grpck/25_grpck_unknown_user_group_no_changes/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*::daemon,foo2,bin diff --git a/tests/tests/cktools/grpck/25_grpck_unknown_user_group_no_changes/config/etc/passwd b/tests/tests/cktools/grpck/25_grpck_unknown_user_group_no_changes/config/etc/passwd new file mode 100644 index 00000000..dc7bf840 --- /dev/null +++ b/tests/tests/cktools/grpck/25_grpck_unknown_user_group_no_changes/config/etc/passwd @@ -0,0 +1,20 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +foo:x:1000:1000:::/bin/false diff --git a/tests/tests/cktools/grpck/25_grpck_unknown_user_group_no_changes/config/etc/shadow b/tests/tests/cktools/grpck/25_grpck_unknown_user_group_no_changes/config/etc/shadow new file mode 100644 index 00000000..2baad3b4 --- /dev/null +++ b/tests/tests/cktools/grpck/25_grpck_unknown_user_group_no_changes/config/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/grpck/25_grpck_unknown_user_group_no_changes/grpck.exp b/tests/tests/cktools/grpck/25_grpck_unknown_user_group_no_changes/grpck.exp new file mode 100755 index 00000000..15cd3979 --- /dev/null +++ b/tests/tests/cktools/grpck/25_grpck_unknown_user_group_no_changes/grpck.exp @@ -0,0 +1,23 @@ +#!/usr/bin/expect + +set timeout 2 +expect_after default {puts stderr "\nFAIL"; exit 1} + +spawn /bin/sh +send "if \[ \$(id -u) -eq 0 \]; then PS1='# '; else PS1='$ '; fi\r" +expect "# " + +send "grpck\r" +expect "group foo: no user foo2" +expect "delete member 'foo2'? " +send "no\r" +expect "shadow group foo: no user foo2" +expect "delete member 'foo2'? " +send "no\r" +expect "grpck: no changes" +expect "# " +send "echo \$?\r" +expect "2" +send "exit\r" +puts "OK\n" +exit 0 diff --git a/tests/tests/cktools/grpck/25_grpck_unknown_user_group_no_changes/grpck.test b/tests/tests/cktools/grpck/25_grpck_unknown_user_group_no_changes/grpck.test new file mode 100755 index 00000000..81bf12ca --- /dev/null +++ b/tests/tests/cktools/grpck/25_grpck_unknown_user_group_no_changes/grpck.test @@ -0,0 +1,37 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "grpck check the number of fields and can change the system database" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +./grpck.exp + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/grpck/26_grpck_no_gshadow_file/config.txt b/tests/tests/cktools/grpck/26_grpck_no_gshadow_file/config.txt new file mode 100644 index 00000000..3d43135c --- /dev/null +++ b/tests/tests/cktools/grpck/26_grpck_no_gshadow_file/config.txt @@ -0,0 +1,5 @@ +# no testsuite password +# root password: rootF00barbaz +# myuser password: myuserF00barbaz + +user foo, in group users diff --git a/tests/tests/cktools/grpck/26_grpck_no_gshadow_file/config/etc/group b/tests/tests/cktools/grpck/26_grpck_no_gshadow_file/config/etc/group new file mode 100644 index 00000000..9303fe27 --- /dev/null +++ b/tests/tests/cktools/grpck/26_grpck_no_gshadow_file/config/etc/group @@ -0,0 +1,42 @@ +daemon:x:1: +bin:x:2: +kmem:x:15: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +root:x:0: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +shadow:x:42: +gnats:x:41: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100:foo +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000:bar diff --git a/tests/tests/cktools/grpck/26_grpck_no_gshadow_file/config/etc/gshadow b/tests/tests/cktools/grpck/26_grpck_no_gshadow_file/config/etc/gshadow new file mode 100644 index 00000000..695bf8f5 --- /dev/null +++ b/tests/tests/cktools/grpck/26_grpck_no_gshadow_file/config/etc/gshadow @@ -0,0 +1,41 @@ +daemon:*:: +bin:*:: +kmem:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +root:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +shadow:*:: +gnats:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +foo:*:: diff --git a/tests/tests/cktools/grpck/26_grpck_no_gshadow_file/config/etc/passwd b/tests/tests/cktools/grpck/26_grpck_no_gshadow_file/config/etc/passwd new file mode 100644 index 00000000..dc7bf840 --- /dev/null +++ b/tests/tests/cktools/grpck/26_grpck_no_gshadow_file/config/etc/passwd @@ -0,0 +1,20 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +foo:x:1000:1000:::/bin/false diff --git a/tests/tests/cktools/grpck/26_grpck_no_gshadow_file/config/etc/shadow b/tests/tests/cktools/grpck/26_grpck_no_gshadow_file/config/etc/shadow new file mode 100644 index 00000000..2baad3b4 --- /dev/null +++ b/tests/tests/cktools/grpck/26_grpck_no_gshadow_file/config/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/grpck/26_grpck_no_gshadow_file/data/grpck.out b/tests/tests/cktools/grpck/26_grpck_no_gshadow_file/data/grpck.out new file mode 100644 index 00000000..929e0e80 --- /dev/null +++ b/tests/tests/cktools/grpck/26_grpck_no_gshadow_file/data/grpck.out @@ -0,0 +1,3 @@ +group foo: no user bar +delete member 'bar'? No +grpck: no changes diff --git a/tests/tests/cktools/grpck/26_grpck_no_gshadow_file/grpck.test b/tests/tests/cktools/grpck/26_grpck_no_gshadow_file/grpck.test new file mode 100755 index 00000000..0ccd682e --- /dev/null +++ b/tests/tests/cktools/grpck/26_grpck_no_gshadow_file/grpck.test @@ -0,0 +1,58 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "grpck can check the group entries when there are no gshadow file" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "Remove the gshadow file..." +rm -f /etc/gshadow +echo "done" + +echo -n "Check the group entries (grpck -r)..." +grpck -r >tmp/grpck.out && exit 1 || { + status=$? +} +echo "OK" + +echo -n "Check returned status ($status)..." +test "$status" = "2" +echo "OK" + +echo "grpck reported:" +echo "=======================================================================" +cat tmp/grpck.out +echo "=======================================================================" +echo -n "Check that there were a failure message..." +diff -au data/grpck.out tmp/grpck.out +echo "error message OK." +rm -f tmp/grpck.out + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +test ! -f /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/grpck/27_grpck_sort_no_gshadow_file/config.txt b/tests/tests/cktools/grpck/27_grpck_sort_no_gshadow_file/config.txt new file mode 100644 index 00000000..3d43135c --- /dev/null +++ b/tests/tests/cktools/grpck/27_grpck_sort_no_gshadow_file/config.txt @@ -0,0 +1,5 @@ +# no testsuite password +# root password: rootF00barbaz +# myuser password: myuserF00barbaz + +user foo, in group users diff --git a/tests/tests/cktools/grpck/27_grpck_sort_no_gshadow_file/config/etc/group b/tests/tests/cktools/grpck/27_grpck_sort_no_gshadow_file/config/etc/group new file mode 100644 index 00000000..afbb01e0 --- /dev/null +++ b/tests/tests/cktools/grpck/27_grpck_sort_no_gshadow_file/config/etc/group @@ -0,0 +1,42 @@ +daemon:x:1: +bin:x:2: +kmem:x:15: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +root:x:0: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +shadow:x:42: +gnats:x:41: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100:foo +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: diff --git a/tests/tests/cktools/grpck/27_grpck_sort_no_gshadow_file/config/etc/gshadow b/tests/tests/cktools/grpck/27_grpck_sort_no_gshadow_file/config/etc/gshadow new file mode 100644 index 00000000..695bf8f5 --- /dev/null +++ b/tests/tests/cktools/grpck/27_grpck_sort_no_gshadow_file/config/etc/gshadow @@ -0,0 +1,41 @@ +daemon:*:: +bin:*:: +kmem:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +root:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +shadow:*:: +gnats:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +foo:*:: diff --git a/tests/tests/cktools/grpck/27_grpck_sort_no_gshadow_file/config/etc/passwd b/tests/tests/cktools/grpck/27_grpck_sort_no_gshadow_file/config/etc/passwd new file mode 100644 index 00000000..dc7bf840 --- /dev/null +++ b/tests/tests/cktools/grpck/27_grpck_sort_no_gshadow_file/config/etc/passwd @@ -0,0 +1,20 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +foo:x:1000:1000:::/bin/false diff --git a/tests/tests/cktools/grpck/27_grpck_sort_no_gshadow_file/config/etc/shadow b/tests/tests/cktools/grpck/27_grpck_sort_no_gshadow_file/config/etc/shadow new file mode 100644 index 00000000..2baad3b4 --- /dev/null +++ b/tests/tests/cktools/grpck/27_grpck_sort_no_gshadow_file/config/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/grpck/27_grpck_sort_no_gshadow_file/data/group b/tests/tests/cktools/grpck/27_grpck_sort_no_gshadow_file/data/group new file mode 100644 index 00000000..12659535 --- /dev/null +++ b/tests/tests/cktools/grpck/27_grpck_sort_no_gshadow_file/data/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100:foo +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: +nogroup:x:65534: diff --git a/tests/tests/cktools/grpck/27_grpck_sort_no_gshadow_file/grpck.test b/tests/tests/cktools/grpck/27_grpck_sort_no_gshadow_file/grpck.test new file mode 100755 index 00000000..31a6e9ee --- /dev/null +++ b/tests/tests/cktools/grpck/27_grpck_sort_no_gshadow_file/grpck.test @@ -0,0 +1,43 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "grpck can sort the group entries" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "Remove the gshadow file..." +rm -f /etc/gshadow +echo "done" + +echo -n "Sort the group entries (grpck -s)..." +grpck -s +echo "OK" + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl data/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +test ! -f /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/grpck/28_grpck_usage/config.txt b/tests/tests/cktools/grpck/28_grpck_usage/config.txt new file mode 100644 index 00000000..31f56359 --- /dev/null +++ b/tests/tests/cktools/grpck/28_grpck_usage/config.txt @@ -0,0 +1,10 @@ +# no testsuite password +# root password: rootF00barbaz +# myuser password: myuserF00barbaz + +user foo, in group users (only in /etc/group) +user foo, in group tty (only in /etc/gshadow) +user foo, in group floppy +user foo, admin of group disk +user foo, admin and member of group fax +user foo, admin and member of group cdrom (only in /etc/gshadow) diff --git a/tests/tests/cktools/grpck/28_grpck_usage/config/etc/default/useradd b/tests/tests/cktools/grpck/28_grpck_usage/config/etc/default/useradd new file mode 100644 index 00000000..31c44abe --- /dev/null +++ b/tests/tests/cktools/grpck/28_grpck_usage/config/etc/default/useradd @@ -0,0 +1,36 @@ +# Default values for useradd(8) +# +# The SHELL variable specifies the default login shell on your +# system. +# Similar to DHSELL in adduser. However, we use "sh" here because +# useradd is a low level utility and should be as general +# as possible +SHELL=/bin/foobar +# +# The default group for users +# 100=users on Debian systems +# Same as USERS_GID in adduser +# This argument is used when the -n flag is specified. +# The default behavior (when -n and -g are not specified) is to create a +# primary user group with the same name as the user being added to the +# system. +GROUP=10 +# +# The default home directory. Same as DHOME for adduser +HOME=/tmp +# +# The number of days after a password expires until the account +# is permanently disabled +INACTIVE=12 +# +# The default expire date +EXPIRE=2007-12-02 +# +# The SKEL variable specifies the directory containing "skeletal" user +# files; in other words, files such as a sample .profile that will be +# copied to the new user's home directory when it is created. +# SKEL=/etc/skel +# +# Defines whether the mail spool should be created while +# creating the account +# CREATE_MAIL_SPOOL=yes diff --git a/tests/tests/cktools/grpck/28_grpck_usage/config/etc/group b/tests/tests/cktools/grpck/28_grpck_usage/config/etc/group new file mode 100644 index 00000000..10123908 --- /dev/null +++ b/tests/tests/cktools/grpck/28_grpck_usage/config/etc/group @@ -0,0 +1,41 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: diff --git a/tests/tests/cktools/grpck/28_grpck_usage/config/etc/gshadow b/tests/tests/cktools/grpck/28_grpck_usage/config/etc/gshadow new file mode 100644 index 00000000..ae424865 --- /dev/null +++ b/tests/tests/cktools/grpck/28_grpck_usage/config/etc/gshadow @@ -0,0 +1,41 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: diff --git a/tests/tests/cktools/grpck/28_grpck_usage/config/etc/passwd b/tests/tests/cktools/grpck/28_grpck_usage/config/etc/passwd new file mode 100644 index 00000000..43fc135a --- /dev/null +++ b/tests/tests/cktools/grpck/28_grpck_usage/config/etc/passwd @@ -0,0 +1,19 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false diff --git a/tests/tests/cktools/grpck/28_grpck_usage/config/etc/shadow b/tests/tests/cktools/grpck/28_grpck_usage/config/etc/shadow new file mode 100644 index 00000000..5f50d187 --- /dev/null +++ b/tests/tests/cktools/grpck/28_grpck_usage/config/etc/shadow @@ -0,0 +1,19 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/grpck/28_grpck_usage/data/usage.out b/tests/tests/cktools/grpck/28_grpck_usage/data/usage.out new file mode 100644 index 00000000..899e2d78 --- /dev/null +++ b/tests/tests/cktools/grpck/28_grpck_usage/data/usage.out @@ -0,0 +1,9 @@ +Usage: grpck [options] [group [gshadow]] + +Options: + -h, --help display this help message and exit + -r, --read-only display errors and warnings + but do not change files + -R, --root CHROOT_DIR directory to chroot into + -s, --sort sort entries by UID + diff --git a/tests/tests/cktools/grpck/28_grpck_usage/grpck.test b/tests/tests/cktools/grpck/28_grpck_usage/grpck.test new file mode 100755 index 00000000..e397aafb --- /dev/null +++ b/tests/tests/cktools/grpck/28_grpck_usage/grpck.test @@ -0,0 +1,47 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "grpck can display its usage message" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "Get grpck usage (grpck -h)..." +grpck -h >tmp/usage.out + +echo "grpck reported:" +echo "=======================================================================" +cat tmp/usage.out +echo "=======================================================================" +echo -n "Check the usage message..." +diff -au data/usage.out tmp/usage.out +echo "usage message OK." +rm -f tmp/usage.out + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/grpck/29_grpck_sort_readonly/config.txt b/tests/tests/cktools/grpck/29_grpck_sort_readonly/config.txt new file mode 100644 index 00000000..31f56359 --- /dev/null +++ b/tests/tests/cktools/grpck/29_grpck_sort_readonly/config.txt @@ -0,0 +1,10 @@ +# no testsuite password +# root password: rootF00barbaz +# myuser password: myuserF00barbaz + +user foo, in group users (only in /etc/group) +user foo, in group tty (only in /etc/gshadow) +user foo, in group floppy +user foo, admin of group disk +user foo, admin and member of group fax +user foo, admin and member of group cdrom (only in /etc/gshadow) diff --git a/tests/tests/cktools/grpck/29_grpck_sort_readonly/config/etc/default/useradd b/tests/tests/cktools/grpck/29_grpck_sort_readonly/config/etc/default/useradd new file mode 100644 index 00000000..31c44abe --- /dev/null +++ b/tests/tests/cktools/grpck/29_grpck_sort_readonly/config/etc/default/useradd @@ -0,0 +1,36 @@ +# Default values for useradd(8) +# +# The SHELL variable specifies the default login shell on your +# system. +# Similar to DHSELL in adduser. However, we use "sh" here because +# useradd is a low level utility and should be as general +# as possible +SHELL=/bin/foobar +# +# The default group for users +# 100=users on Debian systems +# Same as USERS_GID in adduser +# This argument is used when the -n flag is specified. +# The default behavior (when -n and -g are not specified) is to create a +# primary user group with the same name as the user being added to the +# system. +GROUP=10 +# +# The default home directory. Same as DHOME for adduser +HOME=/tmp +# +# The number of days after a password expires until the account +# is permanently disabled +INACTIVE=12 +# +# The default expire date +EXPIRE=2007-12-02 +# +# The SKEL variable specifies the directory containing "skeletal" user +# files; in other words, files such as a sample .profile that will be +# copied to the new user's home directory when it is created. +# SKEL=/etc/skel +# +# Defines whether the mail spool should be created while +# creating the account +# CREATE_MAIL_SPOOL=yes diff --git a/tests/tests/cktools/grpck/29_grpck_sort_readonly/config/etc/group b/tests/tests/cktools/grpck/29_grpck_sort_readonly/config/etc/group new file mode 100644 index 00000000..10123908 --- /dev/null +++ b/tests/tests/cktools/grpck/29_grpck_sort_readonly/config/etc/group @@ -0,0 +1,41 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: diff --git a/tests/tests/cktools/grpck/29_grpck_sort_readonly/config/etc/gshadow b/tests/tests/cktools/grpck/29_grpck_sort_readonly/config/etc/gshadow new file mode 100644 index 00000000..ae424865 --- /dev/null +++ b/tests/tests/cktools/grpck/29_grpck_sort_readonly/config/etc/gshadow @@ -0,0 +1,41 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: diff --git a/tests/tests/cktools/grpck/29_grpck_sort_readonly/config/etc/passwd b/tests/tests/cktools/grpck/29_grpck_sort_readonly/config/etc/passwd new file mode 100644 index 00000000..43fc135a --- /dev/null +++ b/tests/tests/cktools/grpck/29_grpck_sort_readonly/config/etc/passwd @@ -0,0 +1,19 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false diff --git a/tests/tests/cktools/grpck/29_grpck_sort_readonly/config/etc/shadow b/tests/tests/cktools/grpck/29_grpck_sort_readonly/config/etc/shadow new file mode 100644 index 00000000..5f50d187 --- /dev/null +++ b/tests/tests/cktools/grpck/29_grpck_sort_readonly/config/etc/shadow @@ -0,0 +1,19 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/grpck/29_grpck_sort_readonly/data/usage.out b/tests/tests/cktools/grpck/29_grpck_sort_readonly/data/usage.out new file mode 100644 index 00000000..cd278fa5 --- /dev/null +++ b/tests/tests/cktools/grpck/29_grpck_sort_readonly/data/usage.out @@ -0,0 +1 @@ +grpck: -s and -r are incompatible diff --git a/tests/tests/cktools/grpck/29_grpck_sort_readonly/grpck.test b/tests/tests/cktools/grpck/29_grpck_sort_readonly/grpck.test new file mode 100755 index 00000000..417584f9 --- /dev/null +++ b/tests/tests/cktools/grpck/29_grpck_sort_readonly/grpck.test @@ -0,0 +1,54 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "grpck report failure when sorting and read only are enabled" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "Get grpck usage (grpck -r -s)..." +grpck -r -s 2>tmp/usage.out && exit 1 || { + status=$? +} +echo "OK" + +echo -n "Check returned status ($status)..." +test "$status" = "1" +echo "OK" + +echo "grpck reported:" +echo "=======================================================================" +cat tmp/usage.out +echo "=======================================================================" +echo -n "Check the usage message..." +diff -au data/usage.out tmp/usage.out +echo "usage message OK." +rm -f tmp/usage.out + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/grpck/30_grpck_3_files/config.txt b/tests/tests/cktools/grpck/30_grpck_3_files/config.txt new file mode 100644 index 00000000..31f56359 --- /dev/null +++ b/tests/tests/cktools/grpck/30_grpck_3_files/config.txt @@ -0,0 +1,10 @@ +# no testsuite password +# root password: rootF00barbaz +# myuser password: myuserF00barbaz + +user foo, in group users (only in /etc/group) +user foo, in group tty (only in /etc/gshadow) +user foo, in group floppy +user foo, admin of group disk +user foo, admin and member of group fax +user foo, admin and member of group cdrom (only in /etc/gshadow) diff --git a/tests/tests/cktools/grpck/30_grpck_3_files/config/etc/default/useradd b/tests/tests/cktools/grpck/30_grpck_3_files/config/etc/default/useradd new file mode 100644 index 00000000..31c44abe --- /dev/null +++ b/tests/tests/cktools/grpck/30_grpck_3_files/config/etc/default/useradd @@ -0,0 +1,36 @@ +# Default values for useradd(8) +# +# The SHELL variable specifies the default login shell on your +# system. +# Similar to DHSELL in adduser. However, we use "sh" here because +# useradd is a low level utility and should be as general +# as possible +SHELL=/bin/foobar +# +# The default group for users +# 100=users on Debian systems +# Same as USERS_GID in adduser +# This argument is used when the -n flag is specified. +# The default behavior (when -n and -g are not specified) is to create a +# primary user group with the same name as the user being added to the +# system. +GROUP=10 +# +# The default home directory. Same as DHOME for adduser +HOME=/tmp +# +# The number of days after a password expires until the account +# is permanently disabled +INACTIVE=12 +# +# The default expire date +EXPIRE=2007-12-02 +# +# The SKEL variable specifies the directory containing "skeletal" user +# files; in other words, files such as a sample .profile that will be +# copied to the new user's home directory when it is created. +# SKEL=/etc/skel +# +# Defines whether the mail spool should be created while +# creating the account +# CREATE_MAIL_SPOOL=yes diff --git a/tests/tests/cktools/grpck/30_grpck_3_files/config/etc/group b/tests/tests/cktools/grpck/30_grpck_3_files/config/etc/group new file mode 100644 index 00000000..10123908 --- /dev/null +++ b/tests/tests/cktools/grpck/30_grpck_3_files/config/etc/group @@ -0,0 +1,41 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: diff --git a/tests/tests/cktools/grpck/30_grpck_3_files/config/etc/gshadow b/tests/tests/cktools/grpck/30_grpck_3_files/config/etc/gshadow new file mode 100644 index 00000000..ae424865 --- /dev/null +++ b/tests/tests/cktools/grpck/30_grpck_3_files/config/etc/gshadow @@ -0,0 +1,41 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: diff --git a/tests/tests/cktools/grpck/30_grpck_3_files/config/etc/passwd b/tests/tests/cktools/grpck/30_grpck_3_files/config/etc/passwd new file mode 100644 index 00000000..43fc135a --- /dev/null +++ b/tests/tests/cktools/grpck/30_grpck_3_files/config/etc/passwd @@ -0,0 +1,19 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false diff --git a/tests/tests/cktools/grpck/30_grpck_3_files/config/etc/shadow b/tests/tests/cktools/grpck/30_grpck_3_files/config/etc/shadow new file mode 100644 index 00000000..5f50d187 --- /dev/null +++ b/tests/tests/cktools/grpck/30_grpck_3_files/config/etc/shadow @@ -0,0 +1,19 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/grpck/30_grpck_3_files/data/usage.out b/tests/tests/cktools/grpck/30_grpck_3_files/data/usage.out new file mode 100644 index 00000000..899e2d78 --- /dev/null +++ b/tests/tests/cktools/grpck/30_grpck_3_files/data/usage.out @@ -0,0 +1,9 @@ +Usage: grpck [options] [group [gshadow]] + +Options: + -h, --help display this help message and exit + -r, --read-only display errors and warnings + but do not change files + -R, --root CHROOT_DIR directory to chroot into + -s, --sort sort entries by UID + diff --git a/tests/tests/cktools/grpck/30_grpck_3_files/grpck.test b/tests/tests/cktools/grpck/30_grpck_3_files/grpck.test new file mode 100755 index 00000000..e2614d97 --- /dev/null +++ b/tests/tests/cktools/grpck/30_grpck_3_files/grpck.test @@ -0,0 +1,54 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "grpck checks its number of arguments" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "Get grpck usage (grpck -r foo bar baz)..." +grpck -r foo bar baz 2>tmp/usage.out && exit 1 || { + status=$? +} +echo "OK" + +echo -n "Check returned status ($status)..." +test "$status" = "1" +echo "OK" + +echo "grpck reported:" +echo "=======================================================================" +cat tmp/usage.out +echo "=======================================================================" +echo -n "Check the usage message..." +diff -au data/usage.out tmp/usage.out +echo "usage message OK." +rm -f tmp/usage.out + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/grpck/31_grpck_missing_field_group_local_no_gshadow/config.txt b/tests/tests/cktools/grpck/31_grpck_missing_field_group_local_no_gshadow/config.txt new file mode 100644 index 00000000..01189bd6 --- /dev/null +++ b/tests/tests/cktools/grpck/31_grpck_missing_field_group_local_no_gshadow/config.txt @@ -0,0 +1,2 @@ +user foo +group foo with typo in group diff --git a/tests/tests/cktools/grpck/31_grpck_missing_field_group_local_no_gshadow/config/etc/group b/tests/tests/cktools/grpck/31_grpck_missing_field_group_local_no_gshadow/config/etc/group new file mode 100644 index 00000000..d1e687c3 --- /dev/null +++ b/tests/tests/cktools/grpck/31_grpck_missing_field_group_local_no_gshadow/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x diff --git a/tests/tests/cktools/grpck/31_grpck_missing_field_group_local_no_gshadow/config/etc/gshadow b/tests/tests/cktools/grpck/31_grpck_missing_field_group_local_no_gshadow/config/etc/gshadow new file mode 100644 index 00000000..5042e581 --- /dev/null +++ b/tests/tests/cktools/grpck/31_grpck_missing_field_group_local_no_gshadow/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/cktools/grpck/31_grpck_missing_field_group_local_no_gshadow/config/etc/passwd b/tests/tests/cktools/grpck/31_grpck_missing_field_group_local_no_gshadow/config/etc/passwd new file mode 100644 index 00000000..dc7bf840 --- /dev/null +++ b/tests/tests/cktools/grpck/31_grpck_missing_field_group_local_no_gshadow/config/etc/passwd @@ -0,0 +1,20 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +foo:x:1000:1000:::/bin/false diff --git a/tests/tests/cktools/grpck/31_grpck_missing_field_group_local_no_gshadow/config/etc/shadow b/tests/tests/cktools/grpck/31_grpck_missing_field_group_local_no_gshadow/config/etc/shadow new file mode 100644 index 00000000..2baad3b4 --- /dev/null +++ b/tests/tests/cktools/grpck/31_grpck_missing_field_group_local_no_gshadow/config/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/grpck/31_grpck_missing_field_group_local_no_gshadow/data/group b/tests/tests/cktools/grpck/31_grpck_missing_field_group_local_no_gshadow/data/group new file mode 100644 index 00000000..10123908 --- /dev/null +++ b/tests/tests/cktools/grpck/31_grpck_missing_field_group_local_no_gshadow/data/group @@ -0,0 +1,41 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: diff --git a/tests/tests/cktools/grpck/31_grpck_missing_field_group_local_no_gshadow/grpck.exp b/tests/tests/cktools/grpck/31_grpck_missing_field_group_local_no_gshadow/grpck.exp new file mode 100755 index 00000000..8c536886 --- /dev/null +++ b/tests/tests/cktools/grpck/31_grpck_missing_field_group_local_no_gshadow/grpck.exp @@ -0,0 +1,20 @@ +#!/usr/bin/expect + +set timeout 2 +expect_after default {puts stderr "\nFAIL"; exit 1} + +spawn /bin/sh +send "if \[ \$(id -u) -eq 0 \]; then PS1='# '; else PS1='$ '; fi\r" +expect "# " + +send "grpck tmp/group\r" +expect "invalid group file entry" +expect "delete line 'foo:x'? " +send "yes\r" +expect "grpck: the files have been updated" +expect "# " +send "echo \$?\r" +expect "2" +send "exit\r" +puts "OK\n" +exit 0 diff --git a/tests/tests/cktools/grpck/31_grpck_missing_field_group_local_no_gshadow/grpck.test b/tests/tests/cktools/grpck/31_grpck_missing_field_group_local_no_gshadow/grpck.test new file mode 100755 index 00000000..3c749600 --- /dev/null +++ b/tests/tests/cktools/grpck/31_grpck_missing_field_group_local_no_gshadow/grpck.test @@ -0,0 +1,44 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "grpck check the number of fields and can change the system database" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "copy group and gshadow locally..." +cp /etc/group tmp/ +echo "OK" + +./grpck.exp + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +../../../common/compare_file.pl data/group tmp/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +rm -f tmp/group tmp/group- tmp/gshadow tmp/gshadow- + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/grpck/32_grpck_sort_nis/config.txt b/tests/tests/cktools/grpck/32_grpck_sort_nis/config.txt new file mode 100644 index 00000000..3d43135c --- /dev/null +++ b/tests/tests/cktools/grpck/32_grpck_sort_nis/config.txt @@ -0,0 +1,5 @@ +# no testsuite password +# root password: rootF00barbaz +# myuser password: myuserF00barbaz + +user foo, in group users diff --git a/tests/tests/cktools/grpck/32_grpck_sort_nis/config/etc/group b/tests/tests/cktools/grpck/32_grpck_sort_nis/config/etc/group new file mode 100644 index 00000000..e644ed9d --- /dev/null +++ b/tests/tests/cktools/grpck/32_grpck_sort_nis/config/etc/group @@ -0,0 +1,45 @@ +daemon:x:1: +bin:x:2: +kmem:x:15: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +root:x:0: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +shadow:x:42: +gnats:x:41: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100:foo +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: ++::: ++foo1::: +-foo2: diff --git a/tests/tests/cktools/grpck/32_grpck_sort_nis/config/etc/gshadow b/tests/tests/cktools/grpck/32_grpck_sort_nis/config/etc/gshadow new file mode 100644 index 00000000..8182ad79 --- /dev/null +++ b/tests/tests/cktools/grpck/32_grpck_sort_nis/config/etc/gshadow @@ -0,0 +1,42 @@ +daemon:*:: +bin:*:: +kmem:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +root:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +shadow:*:: +gnats:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/cktools/grpck/32_grpck_sort_nis/config/etc/passwd b/tests/tests/cktools/grpck/32_grpck_sort_nis/config/etc/passwd new file mode 100644 index 00000000..dc7bf840 --- /dev/null +++ b/tests/tests/cktools/grpck/32_grpck_sort_nis/config/etc/passwd @@ -0,0 +1,20 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +foo:x:1000:1000:::/bin/false diff --git a/tests/tests/cktools/grpck/32_grpck_sort_nis/config/etc/shadow b/tests/tests/cktools/grpck/32_grpck_sort_nis/config/etc/shadow new file mode 100644 index 00000000..2baad3b4 --- /dev/null +++ b/tests/tests/cktools/grpck/32_grpck_sort_nis/config/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/grpck/32_grpck_sort_nis/data/group b/tests/tests/cktools/grpck/32_grpck_sort_nis/data/group new file mode 100644 index 00000000..23467d30 --- /dev/null +++ b/tests/tests/cktools/grpck/32_grpck_sort_nis/data/group @@ -0,0 +1,45 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100:foo +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: +nogroup:x:65534: ++::: ++foo1::: +-foo2: diff --git a/tests/tests/cktools/grpck/32_grpck_sort_nis/data/gshadow b/tests/tests/cktools/grpck/32_grpck_sort_nis/data/gshadow new file mode 100644 index 00000000..f2209e3b --- /dev/null +++ b/tests/tests/cktools/grpck/32_grpck_sort_nis/data/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: +nogroup:*:: diff --git a/tests/tests/cktools/grpck/32_grpck_sort_nis/grpck.test b/tests/tests/cktools/grpck/32_grpck_sort_nis/grpck.test new file mode 100755 index 00000000..d509689f --- /dev/null +++ b/tests/tests/cktools/grpck/32_grpck_sort_nis/grpck.test @@ -0,0 +1,39 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "grpck can sort the group entries" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "Sort the group entries (grpck -s)..." +grpck -s +echo "OK" + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl data/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl data/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/grpck/33_grpck_locked_group/config.txt b/tests/tests/cktools/grpck/33_grpck_locked_group/config.txt new file mode 100644 index 00000000..e69de29b diff --git a/tests/tests/cktools/grpck/33_grpck_locked_group/config/etc/default/useradd b/tests/tests/cktools/grpck/33_grpck_locked_group/config/etc/default/useradd new file mode 100644 index 00000000..31c44abe --- /dev/null +++ b/tests/tests/cktools/grpck/33_grpck_locked_group/config/etc/default/useradd @@ -0,0 +1,36 @@ +# Default values for useradd(8) +# +# The SHELL variable specifies the default login shell on your +# system. +# Similar to DHSELL in adduser. However, we use "sh" here because +# useradd is a low level utility and should be as general +# as possible +SHELL=/bin/foobar +# +# The default group for users +# 100=users on Debian systems +# Same as USERS_GID in adduser +# This argument is used when the -n flag is specified. +# The default behavior (when -n and -g are not specified) is to create a +# primary user group with the same name as the user being added to the +# system. +GROUP=10 +# +# The default home directory. Same as DHOME for adduser +HOME=/tmp +# +# The number of days after a password expires until the account +# is permanently disabled +INACTIVE=12 +# +# The default expire date +EXPIRE=2007-12-02 +# +# The SKEL variable specifies the directory containing "skeletal" user +# files; in other words, files such as a sample .profile that will be +# copied to the new user's home directory when it is created. +# SKEL=/etc/skel +# +# Defines whether the mail spool should be created while +# creating the account +# CREATE_MAIL_SPOOL=yes diff --git a/tests/tests/cktools/grpck/33_grpck_locked_group/config/etc/group b/tests/tests/cktools/grpck/33_grpck_locked_group/config/etc/group new file mode 100644 index 00000000..b6fae894 --- /dev/null +++ b/tests/tests/cktools/grpck/33_grpck_locked_group/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3:root +adm:x:4:root,foo +tty:x:5: +disk:x:6: +lp:x:7:foo,root +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21:foo +voice:x:22: +cdrom:x:24: +floppy:x:25:foo +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100:foo +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: diff --git a/tests/tests/cktools/grpck/33_grpck_locked_group/config/etc/gshadow b/tests/tests/cktools/grpck/33_grpck_locked_group/config/etc/gshadow new file mode 100644 index 00000000..1f2ba8da --- /dev/null +++ b/tests/tests/cktools/grpck/33_grpck_locked_group/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*::root +adm:*::root,foo +tty:*::foo +disk:*:foo: +lp:*::foo,root +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:foo:foo +voice:*:: +cdrom:*:foo:foo +floppy:*::foo +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/cktools/grpck/33_grpck_locked_group/config/etc/passwd b/tests/tests/cktools/grpck/33_grpck_locked_group/config/etc/passwd new file mode 100644 index 00000000..bf52df00 --- /dev/null +++ b/tests/tests/cktools/grpck/33_grpck_locked_group/config/etc/passwd @@ -0,0 +1,20 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +foo:x:1000:1000::/home/foo:/bin/false diff --git a/tests/tests/cktools/grpck/33_grpck_locked_group/config/etc/shadow b/tests/tests/cktools/grpck/33_grpck_locked_group/config/etc/shadow new file mode 100644 index 00000000..2baad3b4 --- /dev/null +++ b/tests/tests/cktools/grpck/33_grpck_locked_group/config/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/grpck/33_grpck_locked_group/data/grpck.err b/tests/tests/cktools/grpck/33_grpck_locked_group/data/grpck.err new file mode 100644 index 00000000..1f6325dd --- /dev/null +++ b/tests/tests/cktools/grpck/33_grpck_locked_group/data/grpck.err @@ -0,0 +1,2 @@ +grpck: existing lock file /etc/group.lock without a PID +grpck: cannot lock /etc/group; try again later. diff --git a/tests/tests/cktools/grpck/33_grpck_locked_group/grpck.test b/tests/tests/cktools/grpck/33_grpck_locked_group/grpck.test new file mode 100755 index 00000000..0aa139cc --- /dev/null +++ b/tests/tests/cktools/grpck/33_grpck_locked_group/grpck.test @@ -0,0 +1,60 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "grpck checks if the group file is locked" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config; rm -f /etc/group.lock' 0 + +change_config + +echo -n "Create lock file for /etc/group..." +touch /etc/group.lock +echo "done" + +echo -n "Check groups (grpck)..." +grpck 2>tmp/grpck.err && exit 1 || { + status=$? +} +echo "OK" + +rm -f /etc/group.lock + +echo -n "Check returned status ($status)..." +test "$status" = "4" +echo "OK" + +echo "grpck reported:" +echo "=======================================================================" +cat tmp/grpck.err +echo "=======================================================================" +echo -n "Check that there were a failure message..." +diff -au data/grpck.err tmp/grpck.err +echo "error message OK." +rm -f tmp/grpck.err + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/grpck/34_grpck_locked_gshadow/config.txt b/tests/tests/cktools/grpck/34_grpck_locked_gshadow/config.txt new file mode 100644 index 00000000..e69de29b diff --git a/tests/tests/cktools/grpck/34_grpck_locked_gshadow/config/etc/default/useradd b/tests/tests/cktools/grpck/34_grpck_locked_gshadow/config/etc/default/useradd new file mode 100644 index 00000000..31c44abe --- /dev/null +++ b/tests/tests/cktools/grpck/34_grpck_locked_gshadow/config/etc/default/useradd @@ -0,0 +1,36 @@ +# Default values for useradd(8) +# +# The SHELL variable specifies the default login shell on your +# system. +# Similar to DHSELL in adduser. However, we use "sh" here because +# useradd is a low level utility and should be as general +# as possible +SHELL=/bin/foobar +# +# The default group for users +# 100=users on Debian systems +# Same as USERS_GID in adduser +# This argument is used when the -n flag is specified. +# The default behavior (when -n and -g are not specified) is to create a +# primary user group with the same name as the user being added to the +# system. +GROUP=10 +# +# The default home directory. Same as DHOME for adduser +HOME=/tmp +# +# The number of days after a password expires until the account +# is permanently disabled +INACTIVE=12 +# +# The default expire date +EXPIRE=2007-12-02 +# +# The SKEL variable specifies the directory containing "skeletal" user +# files; in other words, files such as a sample .profile that will be +# copied to the new user's home directory when it is created. +# SKEL=/etc/skel +# +# Defines whether the mail spool should be created while +# creating the account +# CREATE_MAIL_SPOOL=yes diff --git a/tests/tests/cktools/grpck/34_grpck_locked_gshadow/config/etc/group b/tests/tests/cktools/grpck/34_grpck_locked_gshadow/config/etc/group new file mode 100644 index 00000000..b6fae894 --- /dev/null +++ b/tests/tests/cktools/grpck/34_grpck_locked_gshadow/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3:root +adm:x:4:root,foo +tty:x:5: +disk:x:6: +lp:x:7:foo,root +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21:foo +voice:x:22: +cdrom:x:24: +floppy:x:25:foo +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100:foo +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: diff --git a/tests/tests/cktools/grpck/34_grpck_locked_gshadow/config/etc/gshadow b/tests/tests/cktools/grpck/34_grpck_locked_gshadow/config/etc/gshadow new file mode 100644 index 00000000..1f2ba8da --- /dev/null +++ b/tests/tests/cktools/grpck/34_grpck_locked_gshadow/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*::root +adm:*::root,foo +tty:*::foo +disk:*:foo: +lp:*::foo,root +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:foo:foo +voice:*:: +cdrom:*:foo:foo +floppy:*::foo +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/cktools/grpck/34_grpck_locked_gshadow/config/etc/passwd b/tests/tests/cktools/grpck/34_grpck_locked_gshadow/config/etc/passwd new file mode 100644 index 00000000..bf52df00 --- /dev/null +++ b/tests/tests/cktools/grpck/34_grpck_locked_gshadow/config/etc/passwd @@ -0,0 +1,20 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +foo:x:1000:1000::/home/foo:/bin/false diff --git a/tests/tests/cktools/grpck/34_grpck_locked_gshadow/config/etc/shadow b/tests/tests/cktools/grpck/34_grpck_locked_gshadow/config/etc/shadow new file mode 100644 index 00000000..2baad3b4 --- /dev/null +++ b/tests/tests/cktools/grpck/34_grpck_locked_gshadow/config/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/grpck/34_grpck_locked_gshadow/data/grpck.err b/tests/tests/cktools/grpck/34_grpck_locked_gshadow/data/grpck.err new file mode 100644 index 00000000..868dee17 --- /dev/null +++ b/tests/tests/cktools/grpck/34_grpck_locked_gshadow/data/grpck.err @@ -0,0 +1,2 @@ +grpck: existing lock file /etc/gshadow.lock without a PID +grpck: cannot lock /etc/gshadow; try again later. diff --git a/tests/tests/cktools/grpck/34_grpck_locked_gshadow/grpck.test b/tests/tests/cktools/grpck/34_grpck_locked_gshadow/grpck.test new file mode 100755 index 00000000..4c6ea0c5 --- /dev/null +++ b/tests/tests/cktools/grpck/34_grpck_locked_gshadow/grpck.test @@ -0,0 +1,60 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "grpck checks if the gshadow file is locked" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config; rm -f /etc/gshadow.lock' 0 + +change_config + +echo -n "Create lock file for /etc/gshadow..." +touch /etc/gshadow.lock +echo "done" + +echo -n "Check groups (grpck)..." +grpck 2>tmp/grpck.err && exit 1 || { + status=$? +} +echo "OK" + +rm -f /etc/gshadow.lock + +echo -n "Check returned status ($status)..." +test "$status" = "4" +echo "OK" + +echo "grpck reported:" +echo "=======================================================================" +cat tmp/grpck.err +echo "=======================================================================" +echo -n "Check that there were a failure message..." +diff -au data/grpck.err tmp/grpck.err +echo "error message OK." +rm -f tmp/grpck.err + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/grpck/35_grpck_duplicate_entry_group_NIS/config.txt b/tests/tests/cktools/grpck/35_grpck_duplicate_entry_group_NIS/config.txt new file mode 100644 index 00000000..01189bd6 --- /dev/null +++ b/tests/tests/cktools/grpck/35_grpck_duplicate_entry_group_NIS/config.txt @@ -0,0 +1,2 @@ +user foo +group foo with typo in group diff --git a/tests/tests/cktools/grpck/35_grpck_duplicate_entry_group_NIS/config/etc/group b/tests/tests/cktools/grpck/35_grpck_duplicate_entry_group_NIS/config/etc/group new file mode 100644 index 00000000..213b065f --- /dev/null +++ b/tests/tests/cktools/grpck/35_grpck_duplicate_entry_group_NIS/config/etc/group @@ -0,0 +1,45 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000:daemon ++::: +-bar::: +foo:x:1000:bin diff --git a/tests/tests/cktools/grpck/35_grpck_duplicate_entry_group_NIS/config/etc/gshadow b/tests/tests/cktools/grpck/35_grpck_duplicate_entry_group_NIS/config/etc/gshadow new file mode 100644 index 00000000..5042e581 --- /dev/null +++ b/tests/tests/cktools/grpck/35_grpck_duplicate_entry_group_NIS/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/cktools/grpck/35_grpck_duplicate_entry_group_NIS/config/etc/passwd b/tests/tests/cktools/grpck/35_grpck_duplicate_entry_group_NIS/config/etc/passwd new file mode 100644 index 00000000..dc7bf840 --- /dev/null +++ b/tests/tests/cktools/grpck/35_grpck_duplicate_entry_group_NIS/config/etc/passwd @@ -0,0 +1,20 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +foo:x:1000:1000:::/bin/false diff --git a/tests/tests/cktools/grpck/35_grpck_duplicate_entry_group_NIS/config/etc/shadow b/tests/tests/cktools/grpck/35_grpck_duplicate_entry_group_NIS/config/etc/shadow new file mode 100644 index 00000000..2baad3b4 --- /dev/null +++ b/tests/tests/cktools/grpck/35_grpck_duplicate_entry_group_NIS/config/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/grpck/35_grpck_duplicate_entry_group_NIS/data/group b/tests/tests/cktools/grpck/35_grpck_duplicate_entry_group_NIS/data/group new file mode 100644 index 00000000..6c080ef2 --- /dev/null +++ b/tests/tests/cktools/grpck/35_grpck_duplicate_entry_group_NIS/data/group @@ -0,0 +1,44 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: ++::: +-bar::: +foo:x:1000:bin diff --git a/tests/tests/cktools/grpck/35_grpck_duplicate_entry_group_NIS/grpck.exp b/tests/tests/cktools/grpck/35_grpck_duplicate_entry_group_NIS/grpck.exp new file mode 100755 index 00000000..8c089878 --- /dev/null +++ b/tests/tests/cktools/grpck/35_grpck_duplicate_entry_group_NIS/grpck.exp @@ -0,0 +1,20 @@ +#!/usr/bin/expect + +set timeout 2 +expect_after default {puts stderr "\nFAIL"; exit 1} + +spawn /bin/sh +send "if \[ \$(id -u) -eq 0 \]; then PS1='# '; else PS1='$ '; fi\r" +expect "# " + +send "grpck\r" +expect "duplicate group entry" +expect "delete line 'foo:x:1000:daemon'? " +send "yes\r" +expect "grpck: the files have been updated" +expect "# " +send "echo \$?\r" +expect "2" +send "exit\r" +puts "OK\n" +exit 0 diff --git a/tests/tests/cktools/grpck/35_grpck_duplicate_entry_group_NIS/grpck.test b/tests/tests/cktools/grpck/35_grpck_duplicate_entry_group_NIS/grpck.test new file mode 100755 index 00000000..741bfe18 --- /dev/null +++ b/tests/tests/cktools/grpck/35_grpck_duplicate_entry_group_NIS/grpck.test @@ -0,0 +1,37 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "grpck check the number of fields and can change the system database" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +./grpck.exp + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl data/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/grpck/36_grpck_password_group_gshadow/config.txt b/tests/tests/cktools/grpck/36_grpck_password_group_gshadow/config.txt new file mode 100644 index 00000000..3d43135c --- /dev/null +++ b/tests/tests/cktools/grpck/36_grpck_password_group_gshadow/config.txt @@ -0,0 +1,5 @@ +# no testsuite password +# root password: rootF00barbaz +# myuser password: myuserF00barbaz + +user foo, in group users diff --git a/tests/tests/cktools/grpck/36_grpck_password_group_gshadow/config/etc/group b/tests/tests/cktools/grpck/36_grpck_password_group_gshadow/config/etc/group new file mode 100644 index 00000000..52cf2af6 --- /dev/null +++ b/tests/tests/cktools/grpck/36_grpck_password_group_gshadow/config/etc/group @@ -0,0 +1,42 @@ +daemon:x:1: +bin:x:2: +kmem:x:15: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +root:x:0: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +shadow:x:42: +gnats:x:41: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100:foo +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:toto:1000: diff --git a/tests/tests/cktools/grpck/36_grpck_password_group_gshadow/config/etc/gshadow b/tests/tests/cktools/grpck/36_grpck_password_group_gshadow/config/etc/gshadow new file mode 100644 index 00000000..817f1743 --- /dev/null +++ b/tests/tests/cktools/grpck/36_grpck_password_group_gshadow/config/etc/gshadow @@ -0,0 +1,42 @@ +daemon:*:: +bin:*:: +kmem:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +root:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +shadow:*:: +gnats:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*::foo +nogroup:*:: +crontab:x:: +foo:foo:: +Debian-exim:*:: diff --git a/tests/tests/cktools/grpck/36_grpck_password_group_gshadow/config/etc/passwd b/tests/tests/cktools/grpck/36_grpck_password_group_gshadow/config/etc/passwd new file mode 100644 index 00000000..dc7bf840 --- /dev/null +++ b/tests/tests/cktools/grpck/36_grpck_password_group_gshadow/config/etc/passwd @@ -0,0 +1,20 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +foo:x:1000:1000:::/bin/false diff --git a/tests/tests/cktools/grpck/36_grpck_password_group_gshadow/config/etc/shadow b/tests/tests/cktools/grpck/36_grpck_password_group_gshadow/config/etc/shadow new file mode 100644 index 00000000..2baad3b4 --- /dev/null +++ b/tests/tests/cktools/grpck/36_grpck_password_group_gshadow/config/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/grpck/36_grpck_password_group_gshadow/data/grpck.out b/tests/tests/cktools/grpck/36_grpck_password_group_gshadow/data/grpck.out new file mode 100644 index 00000000..476a7984 --- /dev/null +++ b/tests/tests/cktools/grpck/36_grpck_password_group_gshadow/data/grpck.out @@ -0,0 +1,2 @@ +group foo has an entry in /etc/gshadow, but its password field in /etc/group is not set to 'x' +grpck: no changes diff --git a/tests/tests/cktools/grpck/36_grpck_password_group_gshadow/grpck.test b/tests/tests/cktools/grpck/36_grpck_password_group_gshadow/grpck.test new file mode 100755 index 00000000..d32ae670 --- /dev/null +++ b/tests/tests/cktools/grpck/36_grpck_password_group_gshadow/grpck.test @@ -0,0 +1,54 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "grpck can sort the group entries" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "Check the group entries (grpck -r)..." +grpck -r >tmp/grpck.out && exit 1 || { + status=$? +} +echo "OK" + +echo -n "Check returned status ($status)..." +test "$status" = "2" +echo "OK" + +echo "grpck reported:" +echo "=======================================================================" +cat tmp/grpck.out +echo "=======================================================================" +echo -n "Check that there were a failure message..." +diff -au data/grpck.out tmp/grpck.out +echo "error message OK." +rm -f tmp/grpck.out + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/grpck/37_grpck_invalid_option/config.txt b/tests/tests/cktools/grpck/37_grpck_invalid_option/config.txt new file mode 100644 index 00000000..31f56359 --- /dev/null +++ b/tests/tests/cktools/grpck/37_grpck_invalid_option/config.txt @@ -0,0 +1,10 @@ +# no testsuite password +# root password: rootF00barbaz +# myuser password: myuserF00barbaz + +user foo, in group users (only in /etc/group) +user foo, in group tty (only in /etc/gshadow) +user foo, in group floppy +user foo, admin of group disk +user foo, admin and member of group fax +user foo, admin and member of group cdrom (only in /etc/gshadow) diff --git a/tests/tests/cktools/grpck/37_grpck_invalid_option/config/etc/group b/tests/tests/cktools/grpck/37_grpck_invalid_option/config/etc/group new file mode 100644 index 00000000..10123908 --- /dev/null +++ b/tests/tests/cktools/grpck/37_grpck_invalid_option/config/etc/group @@ -0,0 +1,41 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: diff --git a/tests/tests/cktools/grpck/37_grpck_invalid_option/config/etc/gshadow b/tests/tests/cktools/grpck/37_grpck_invalid_option/config/etc/gshadow new file mode 100644 index 00000000..ae424865 --- /dev/null +++ b/tests/tests/cktools/grpck/37_grpck_invalid_option/config/etc/gshadow @@ -0,0 +1,41 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: diff --git a/tests/tests/cktools/grpck/37_grpck_invalid_option/config/etc/passwd b/tests/tests/cktools/grpck/37_grpck_invalid_option/config/etc/passwd new file mode 100644 index 00000000..43fc135a --- /dev/null +++ b/tests/tests/cktools/grpck/37_grpck_invalid_option/config/etc/passwd @@ -0,0 +1,19 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false diff --git a/tests/tests/cktools/grpck/37_grpck_invalid_option/config/etc/shadow b/tests/tests/cktools/grpck/37_grpck_invalid_option/config/etc/shadow new file mode 100644 index 00000000..5f50d187 --- /dev/null +++ b/tests/tests/cktools/grpck/37_grpck_invalid_option/config/etc/shadow @@ -0,0 +1,19 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/grpck/37_grpck_invalid_option/data/usage.out b/tests/tests/cktools/grpck/37_grpck_invalid_option/data/usage.out new file mode 100644 index 00000000..11420514 --- /dev/null +++ b/tests/tests/cktools/grpck/37_grpck_invalid_option/data/usage.out @@ -0,0 +1,10 @@ +grpck: unrecognized option '--invalid' +Usage: grpck [options] [group [gshadow]] + +Options: + -h, --help display this help message and exit + -r, --read-only display errors and warnings + but do not change files + -R, --root CHROOT_DIR directory to chroot into + -s, --sort sort entries by UID + diff --git a/tests/tests/cktools/grpck/37_grpck_invalid_option/grpck.test b/tests/tests/cktools/grpck/37_grpck_invalid_option/grpck.test new file mode 100755 index 00000000..c13be5f7 --- /dev/null +++ b/tests/tests/cktools/grpck/37_grpck_invalid_option/grpck.test @@ -0,0 +1,54 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "grpck reports usage when called with an invalid option" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "Call grpck with an invalid option (grpck --invalid)..." +grpck --invalid 2>tmp/usage.out && exit 1 || { + status=$? +} +echo "OK" + +echo -n "Check returned status ($status)..." +test "$status" = "1" +echo "OK" + +echo "grpck reported:" +echo "=======================================================================" +cat tmp/usage.out +echo "=======================================================================" +echo -n "Check the usage message..." +diff -au data/usage.out tmp/usage.out +echo "usage message OK." +rm -f tmp/usage.out + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/pwck/04_pwck_missing_field_passwd_delete/config.txt b/tests/tests/cktools/pwck/04_pwck_missing_field_passwd_delete/config.txt new file mode 100644 index 00000000..b3c3e751 --- /dev/null +++ b/tests/tests/cktools/pwck/04_pwck_missing_field_passwd_delete/config.txt @@ -0,0 +1,2 @@ +group foo +user foo with typo in passwd diff --git a/tests/tests/cktools/pwck/04_pwck_missing_field_passwd_delete/config/etc/group b/tests/tests/cktools/pwck/04_pwck_missing_field_passwd_delete/config/etc/group new file mode 100644 index 00000000..fecba0c4 --- /dev/null +++ b/tests/tests/cktools/pwck/04_pwck_missing_field_passwd_delete/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: diff --git a/tests/tests/cktools/pwck/04_pwck_missing_field_passwd_delete/config/etc/gshadow b/tests/tests/cktools/pwck/04_pwck_missing_field_passwd_delete/config/etc/gshadow new file mode 100644 index 00000000..5042e581 --- /dev/null +++ b/tests/tests/cktools/pwck/04_pwck_missing_field_passwd_delete/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/cktools/pwck/04_pwck_missing_field_passwd_delete/config/etc/passwd b/tests/tests/cktools/pwck/04_pwck_missing_field_passwd_delete/config/etc/passwd new file mode 100644 index 00000000..4ee448d9 --- /dev/null +++ b/tests/tests/cktools/pwck/04_pwck_missing_field_passwd_delete/config/etc/passwd @@ -0,0 +1,11 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +foo:x:1000:1000:: diff --git a/tests/tests/cktools/pwck/04_pwck_missing_field_passwd_delete/config/etc/shadow b/tests/tests/cktools/pwck/04_pwck_missing_field_passwd_delete/config/etc/shadow new file mode 100644 index 00000000..d3c0775b --- /dev/null +++ b/tests/tests/cktools/pwck/04_pwck_missing_field_passwd_delete/config/etc/shadow @@ -0,0 +1,11 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/pwck/04_pwck_missing_field_passwd_delete/data/passwd b/tests/tests/cktools/pwck/04_pwck_missing_field_passwd_delete/data/passwd new file mode 100644 index 00000000..2b911d1d --- /dev/null +++ b/tests/tests/cktools/pwck/04_pwck_missing_field_passwd_delete/data/passwd @@ -0,0 +1,10 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh diff --git a/tests/tests/cktools/pwck/04_pwck_missing_field_passwd_delete/data/shadow b/tests/tests/cktools/pwck/04_pwck_missing_field_passwd_delete/data/shadow new file mode 100644 index 00000000..0a2fddb7 --- /dev/null +++ b/tests/tests/cktools/pwck/04_pwck_missing_field_passwd_delete/data/shadow @@ -0,0 +1,10 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: diff --git a/tests/tests/cktools/pwck/04_pwck_missing_field_passwd_delete/pwck.exp b/tests/tests/cktools/pwck/04_pwck_missing_field_passwd_delete/pwck.exp new file mode 100755 index 00000000..8ddfd2b5 --- /dev/null +++ b/tests/tests/cktools/pwck/04_pwck_missing_field_passwd_delete/pwck.exp @@ -0,0 +1,23 @@ +#!/usr/bin/expect + +set timeout 2 +expect_after default {puts stderr "\nFAIL"; exit 1} + +spawn /bin/sh +send "if \[ \$(id -u) -eq 0 \]; then PS1='# '; else PS1='$ '; fi\r" +expect "# " + +send "pwck\r" +expect "invalid password file entry" +expect "delete line 'foo:x:1000:1000::'? " +send "yes\r" +expect "no matching password file entry in /etc/passwd" +expect "delete line 'foo:!:12977:0:99999:7:::'? " +send "yes\r" +expect "pwck: the files have been updated" +expect "# " +send "echo \$?\r" +expect "2" +send "exit\r" +puts "OK\n" +exit 0 diff --git a/tests/tests/cktools/pwck/04_pwck_missing_field_passwd_delete/pwck.test b/tests/tests/cktools/pwck/04_pwck_missing_field_passwd_delete/pwck.test new file mode 100755 index 00000000..9f8c33a2 --- /dev/null +++ b/tests/tests/cktools/pwck/04_pwck_missing_field_passwd_delete/pwck.test @@ -0,0 +1,37 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "grpck check the number of fields and can change the system database" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +./pwck.exp + +echo -n "Check the passwd file..." +../../../common/compare_file.pl data/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl data/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/pwck/05_pwck_missing_field_passwd_keep/config.txt b/tests/tests/cktools/pwck/05_pwck_missing_field_passwd_keep/config.txt new file mode 100644 index 00000000..01189bd6 --- /dev/null +++ b/tests/tests/cktools/pwck/05_pwck_missing_field_passwd_keep/config.txt @@ -0,0 +1,2 @@ +user foo +group foo with typo in group diff --git a/tests/tests/cktools/pwck/05_pwck_missing_field_passwd_keep/config/etc/group b/tests/tests/cktools/pwck/05_pwck_missing_field_passwd_keep/config/etc/group new file mode 100644 index 00000000..fecba0c4 --- /dev/null +++ b/tests/tests/cktools/pwck/05_pwck_missing_field_passwd_keep/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: diff --git a/tests/tests/cktools/pwck/05_pwck_missing_field_passwd_keep/config/etc/gshadow b/tests/tests/cktools/pwck/05_pwck_missing_field_passwd_keep/config/etc/gshadow new file mode 100644 index 00000000..5042e581 --- /dev/null +++ b/tests/tests/cktools/pwck/05_pwck_missing_field_passwd_keep/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/cktools/pwck/05_pwck_missing_field_passwd_keep/config/etc/passwd b/tests/tests/cktools/pwck/05_pwck_missing_field_passwd_keep/config/etc/passwd new file mode 100644 index 00000000..4ee448d9 --- /dev/null +++ b/tests/tests/cktools/pwck/05_pwck_missing_field_passwd_keep/config/etc/passwd @@ -0,0 +1,11 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +foo:x:1000:1000:: diff --git a/tests/tests/cktools/pwck/05_pwck_missing_field_passwd_keep/config/etc/shadow b/tests/tests/cktools/pwck/05_pwck_missing_field_passwd_keep/config/etc/shadow new file mode 100644 index 00000000..d3c0775b --- /dev/null +++ b/tests/tests/cktools/pwck/05_pwck_missing_field_passwd_keep/config/etc/shadow @@ -0,0 +1,11 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/pwck/05_pwck_missing_field_passwd_keep/data/shadow b/tests/tests/cktools/pwck/05_pwck_missing_field_passwd_keep/data/shadow new file mode 100644 index 00000000..0a2fddb7 --- /dev/null +++ b/tests/tests/cktools/pwck/05_pwck_missing_field_passwd_keep/data/shadow @@ -0,0 +1,10 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: diff --git a/tests/tests/cktools/pwck/05_pwck_missing_field_passwd_keep/pwck.exp b/tests/tests/cktools/pwck/05_pwck_missing_field_passwd_keep/pwck.exp new file mode 100755 index 00000000..ae0e8ea0 --- /dev/null +++ b/tests/tests/cktools/pwck/05_pwck_missing_field_passwd_keep/pwck.exp @@ -0,0 +1,22 @@ +#!/usr/bin/expect + +set timeout 2 +expect_after default {puts stderr "\nFAIL"; exit 1} + +spawn /bin/sh +send "if \[ \$(id -u) -eq 0 \]; then PS1='# '; else PS1='$ '; fi\r" +expect "# " + +send "pwck\r" +expect "invalid password file entry" +expect "delete line 'foo:x:1000:1000::'? " +send "no\r" +expect "no matching password file entry in /etc/passwd" +expect "delete line 'foo:!:12977:0:99999:7:::'? " +send "yes\r" +expect "# " +send "echo \$?\r" +expect "2" +send "exit\r" +puts "OK\n" +exit 0 diff --git a/tests/tests/cktools/pwck/05_pwck_missing_field_passwd_keep/pwck.test b/tests/tests/cktools/pwck/05_pwck_missing_field_passwd_keep/pwck.test new file mode 100755 index 00000000..688759dd --- /dev/null +++ b/tests/tests/cktools/pwck/05_pwck_missing_field_passwd_keep/pwck.test @@ -0,0 +1,37 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "pwck check the number of fields and can change the system database" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +./pwck.exp + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl data/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/pwck/06_pwck_missing_field_passwd_no_changes/config.txt b/tests/tests/cktools/pwck/06_pwck_missing_field_passwd_no_changes/config.txt new file mode 100644 index 00000000..01189bd6 --- /dev/null +++ b/tests/tests/cktools/pwck/06_pwck_missing_field_passwd_no_changes/config.txt @@ -0,0 +1,2 @@ +user foo +group foo with typo in group diff --git a/tests/tests/cktools/pwck/06_pwck_missing_field_passwd_no_changes/config/etc/group b/tests/tests/cktools/pwck/06_pwck_missing_field_passwd_no_changes/config/etc/group new file mode 100644 index 00000000..d1e687c3 --- /dev/null +++ b/tests/tests/cktools/pwck/06_pwck_missing_field_passwd_no_changes/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x diff --git a/tests/tests/cktools/pwck/06_pwck_missing_field_passwd_no_changes/config/etc/gshadow b/tests/tests/cktools/pwck/06_pwck_missing_field_passwd_no_changes/config/etc/gshadow new file mode 100644 index 00000000..5042e581 --- /dev/null +++ b/tests/tests/cktools/pwck/06_pwck_missing_field_passwd_no_changes/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/cktools/pwck/06_pwck_missing_field_passwd_no_changes/config/etc/passwd b/tests/tests/cktools/pwck/06_pwck_missing_field_passwd_no_changes/config/etc/passwd new file mode 100644 index 00000000..4ee448d9 --- /dev/null +++ b/tests/tests/cktools/pwck/06_pwck_missing_field_passwd_no_changes/config/etc/passwd @@ -0,0 +1,11 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +foo:x:1000:1000:: diff --git a/tests/tests/cktools/pwck/06_pwck_missing_field_passwd_no_changes/config/etc/shadow b/tests/tests/cktools/pwck/06_pwck_missing_field_passwd_no_changes/config/etc/shadow new file mode 100644 index 00000000..d3c0775b --- /dev/null +++ b/tests/tests/cktools/pwck/06_pwck_missing_field_passwd_no_changes/config/etc/shadow @@ -0,0 +1,11 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/pwck/06_pwck_missing_field_passwd_no_changes/pwck.exp b/tests/tests/cktools/pwck/06_pwck_missing_field_passwd_no_changes/pwck.exp new file mode 100755 index 00000000..086b25d5 --- /dev/null +++ b/tests/tests/cktools/pwck/06_pwck_missing_field_passwd_no_changes/pwck.exp @@ -0,0 +1,23 @@ +#!/usr/bin/expect + +set timeout 2 +expect_after default {puts stderr "\nFAIL"; exit 1} + +spawn /bin/sh +send "if \[ \$(id -u) -eq 0 \]; then PS1='# '; else PS1='$ '; fi\r" +expect "# " + +send "pwck\r" +expect "invalid password file entry" +expect "delete line 'foo:x:1000:1000::'? " +send "no\r" +expect "no matching password file entry in /etc/passwd" +expect "delete line 'foo:!:12977:0:99999:7:::'? " +send "no\r" +expect "pwck: no changes" +expect "# " +send "echo \$?\r" +expect "2" +send "exit\r" +puts "OK\n" +exit 0 diff --git a/tests/tests/cktools/pwck/06_pwck_missing_field_passwd_no_changes/pwck.test b/tests/tests/cktools/pwck/06_pwck_missing_field_passwd_no_changes/pwck.test new file mode 100755 index 00000000..b9f4a137 --- /dev/null +++ b/tests/tests/cktools/pwck/06_pwck_missing_field_passwd_no_changes/pwck.test @@ -0,0 +1,37 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "pwck check the number of fields and does not change the system database if requested" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +./pwck.exp + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/pwck/07_pwck_missing_field_shadow_add/config.txt b/tests/tests/cktools/pwck/07_pwck_missing_field_shadow_add/config.txt new file mode 100644 index 00000000..52fad51b --- /dev/null +++ b/tests/tests/cktools/pwck/07_pwck_missing_field_shadow_add/config.txt @@ -0,0 +1,2 @@ +user foo +group foo with typo in gshadow diff --git a/tests/tests/cktools/pwck/07_pwck_missing_field_shadow_add/config/etc/group b/tests/tests/cktools/pwck/07_pwck_missing_field_shadow_add/config/etc/group new file mode 100644 index 00000000..fecba0c4 --- /dev/null +++ b/tests/tests/cktools/pwck/07_pwck_missing_field_shadow_add/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: diff --git a/tests/tests/cktools/pwck/07_pwck_missing_field_shadow_add/config/etc/gshadow b/tests/tests/cktools/pwck/07_pwck_missing_field_shadow_add/config/etc/gshadow new file mode 100644 index 00000000..5042e581 --- /dev/null +++ b/tests/tests/cktools/pwck/07_pwck_missing_field_shadow_add/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/cktools/pwck/07_pwck_missing_field_shadow_add/config/etc/passwd b/tests/tests/cktools/pwck/07_pwck_missing_field_shadow_add/config/etc/passwd new file mode 100644 index 00000000..6377a5d3 --- /dev/null +++ b/tests/tests/cktools/pwck/07_pwck_missing_field_shadow_add/config/etc/passwd @@ -0,0 +1,11 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +foo:x:1000:1000::/home:/bin/sh diff --git a/tests/tests/cktools/pwck/07_pwck_missing_field_shadow_add/config/etc/shadow b/tests/tests/cktools/pwck/07_pwck_missing_field_shadow_add/config/etc/shadow new file mode 100644 index 00000000..3a064c0c --- /dev/null +++ b/tests/tests/cktools/pwck/07_pwck_missing_field_shadow_add/config/etc/shadow @@ -0,0 +1,11 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +foo:!:12977:0:99999:7:: diff --git a/tests/tests/cktools/pwck/07_pwck_missing_field_shadow_add/data/shadow b/tests/tests/cktools/pwck/07_pwck_missing_field_shadow_add/data/shadow new file mode 100644 index 00000000..c9a03146 --- /dev/null +++ b/tests/tests/cktools/pwck/07_pwck_missing_field_shadow_add/data/shadow @@ -0,0 +1,11 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +foo:x:@TODAY@:0:99999:7::: diff --git a/tests/tests/cktools/pwck/07_pwck_missing_field_shadow_add/pwck.exp b/tests/tests/cktools/pwck/07_pwck_missing_field_shadow_add/pwck.exp new file mode 100755 index 00000000..819a5ea2 --- /dev/null +++ b/tests/tests/cktools/pwck/07_pwck_missing_field_shadow_add/pwck.exp @@ -0,0 +1,23 @@ +#!/usr/bin/expect + +set timeout 2 +expect_after default {puts stderr "\nFAIL"; exit 1} + +spawn /bin/sh +send "if \[ \$(id -u) -eq 0 \]; then PS1='# '; else PS1='$ '; fi\r" +expect "# " + +send "pwck\r" +expect "no matching password file entry in /etc/shadow" +expect "add user 'foo' in /etc/shadow? " +send "yes\r" +expect "invalid shadow password file entry" +expect "delete line 'foo:!:12977:0:99999:7::'? " +send "yes\r" +expect "pwck: the files have been updated" +expect "# " +send "echo \$?\r" +expect "2" +send "exit\r" +puts "OK\n" +exit 0 diff --git a/tests/tests/cktools/pwck/07_pwck_missing_field_shadow_add/pwck.test b/tests/tests/cktools/pwck/07_pwck_missing_field_shadow_add/pwck.test new file mode 100755 index 00000000..688759dd --- /dev/null +++ b/tests/tests/cktools/pwck/07_pwck_missing_field_shadow_add/pwck.test @@ -0,0 +1,37 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "pwck check the number of fields and can change the system database" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +./pwck.exp + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl data/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/pwck/08_pwck_missing_field_shadow_delete/config.txt b/tests/tests/cktools/pwck/08_pwck_missing_field_shadow_delete/config.txt new file mode 100644 index 00000000..52fad51b --- /dev/null +++ b/tests/tests/cktools/pwck/08_pwck_missing_field_shadow_delete/config.txt @@ -0,0 +1,2 @@ +user foo +group foo with typo in gshadow diff --git a/tests/tests/cktools/pwck/08_pwck_missing_field_shadow_delete/config/etc/group b/tests/tests/cktools/pwck/08_pwck_missing_field_shadow_delete/config/etc/group new file mode 100644 index 00000000..fecba0c4 --- /dev/null +++ b/tests/tests/cktools/pwck/08_pwck_missing_field_shadow_delete/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: diff --git a/tests/tests/cktools/pwck/08_pwck_missing_field_shadow_delete/config/etc/gshadow b/tests/tests/cktools/pwck/08_pwck_missing_field_shadow_delete/config/etc/gshadow new file mode 100644 index 00000000..5042e581 --- /dev/null +++ b/tests/tests/cktools/pwck/08_pwck_missing_field_shadow_delete/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/cktools/pwck/08_pwck_missing_field_shadow_delete/config/etc/passwd b/tests/tests/cktools/pwck/08_pwck_missing_field_shadow_delete/config/etc/passwd new file mode 100644 index 00000000..6377a5d3 --- /dev/null +++ b/tests/tests/cktools/pwck/08_pwck_missing_field_shadow_delete/config/etc/passwd @@ -0,0 +1,11 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +foo:x:1000:1000::/home:/bin/sh diff --git a/tests/tests/cktools/pwck/08_pwck_missing_field_shadow_delete/config/etc/shadow b/tests/tests/cktools/pwck/08_pwck_missing_field_shadow_delete/config/etc/shadow new file mode 100644 index 00000000..3a064c0c --- /dev/null +++ b/tests/tests/cktools/pwck/08_pwck_missing_field_shadow_delete/config/etc/shadow @@ -0,0 +1,11 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +foo:!:12977:0:99999:7:: diff --git a/tests/tests/cktools/pwck/08_pwck_missing_field_shadow_delete/data/shadow b/tests/tests/cktools/pwck/08_pwck_missing_field_shadow_delete/data/shadow new file mode 100644 index 00000000..0a2fddb7 --- /dev/null +++ b/tests/tests/cktools/pwck/08_pwck_missing_field_shadow_delete/data/shadow @@ -0,0 +1,10 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: diff --git a/tests/tests/cktools/pwck/08_pwck_missing_field_shadow_delete/pwck.exp b/tests/tests/cktools/pwck/08_pwck_missing_field_shadow_delete/pwck.exp new file mode 100755 index 00000000..d72e00fc --- /dev/null +++ b/tests/tests/cktools/pwck/08_pwck_missing_field_shadow_delete/pwck.exp @@ -0,0 +1,23 @@ +#!/usr/bin/expect + +set timeout 2 +expect_after default {puts stderr "\nFAIL"; exit 1} + +spawn /bin/sh +send "if \[ \$(id -u) -eq 0 \]; then PS1='# '; else PS1='$ '; fi\r" +expect "# " + +send "pwck\r" +expect "no matching password file entry in /etc/shadow" +expect "add user 'foo' in /etc/shadow? " +send "no\r" +expect "invalid shadow password file entry" +expect "delete line 'foo:!:12977:0:99999:7::'? " +send "yes\r" +expect "pwck: the files have been updated" +expect "# " +send "echo \$?\r" +expect "2" +send "exit\r" +puts "OK\n" +exit 0 diff --git a/tests/tests/cktools/pwck/08_pwck_missing_field_shadow_delete/pwck.test b/tests/tests/cktools/pwck/08_pwck_missing_field_shadow_delete/pwck.test new file mode 100755 index 00000000..688759dd --- /dev/null +++ b/tests/tests/cktools/pwck/08_pwck_missing_field_shadow_delete/pwck.test @@ -0,0 +1,37 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "pwck check the number of fields and can change the system database" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +./pwck.exp + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl data/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/pwck/09_pwck_missing_field_shadow_no_changes/config.txt b/tests/tests/cktools/pwck/09_pwck_missing_field_shadow_no_changes/config.txt new file mode 100644 index 00000000..52fad51b --- /dev/null +++ b/tests/tests/cktools/pwck/09_pwck_missing_field_shadow_no_changes/config.txt @@ -0,0 +1,2 @@ +user foo +group foo with typo in gshadow diff --git a/tests/tests/cktools/pwck/09_pwck_missing_field_shadow_no_changes/config/etc/group b/tests/tests/cktools/pwck/09_pwck_missing_field_shadow_no_changes/config/etc/group new file mode 100644 index 00000000..fecba0c4 --- /dev/null +++ b/tests/tests/cktools/pwck/09_pwck_missing_field_shadow_no_changes/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: diff --git a/tests/tests/cktools/pwck/09_pwck_missing_field_shadow_no_changes/config/etc/gshadow b/tests/tests/cktools/pwck/09_pwck_missing_field_shadow_no_changes/config/etc/gshadow new file mode 100644 index 00000000..5042e581 --- /dev/null +++ b/tests/tests/cktools/pwck/09_pwck_missing_field_shadow_no_changes/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/cktools/pwck/09_pwck_missing_field_shadow_no_changes/config/etc/passwd b/tests/tests/cktools/pwck/09_pwck_missing_field_shadow_no_changes/config/etc/passwd new file mode 100644 index 00000000..6377a5d3 --- /dev/null +++ b/tests/tests/cktools/pwck/09_pwck_missing_field_shadow_no_changes/config/etc/passwd @@ -0,0 +1,11 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +foo:x:1000:1000::/home:/bin/sh diff --git a/tests/tests/cktools/pwck/09_pwck_missing_field_shadow_no_changes/config/etc/shadow b/tests/tests/cktools/pwck/09_pwck_missing_field_shadow_no_changes/config/etc/shadow new file mode 100644 index 00000000..3a064c0c --- /dev/null +++ b/tests/tests/cktools/pwck/09_pwck_missing_field_shadow_no_changes/config/etc/shadow @@ -0,0 +1,11 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +foo:!:12977:0:99999:7:: diff --git a/tests/tests/cktools/pwck/09_pwck_missing_field_shadow_no_changes/pwck.exp b/tests/tests/cktools/pwck/09_pwck_missing_field_shadow_no_changes/pwck.exp new file mode 100755 index 00000000..30ca6631 --- /dev/null +++ b/tests/tests/cktools/pwck/09_pwck_missing_field_shadow_no_changes/pwck.exp @@ -0,0 +1,23 @@ +#!/usr/bin/expect + +set timeout 2 +expect_after default {puts stderr "\nFAIL"; exit 1} + +spawn /bin/sh +send "if \[ \$(id -u) -eq 0 \]; then PS1='# '; else PS1='$ '; fi\r" +expect "# " + +send "pwck\r" +expect "no matching password file entry in /etc/shadow" +expect "add user 'foo' in /etc/shadow? " +send "no\r" +expect "invalid shadow password file entry" +expect "delete line 'foo:!:12977:0:99999:7::'? " +send "no\r" +expect "pwck: no changes" +expect "# " +send "echo \$?\r" +expect "2" +send "exit\r" +puts "OK\n" +exit 0 diff --git a/tests/tests/cktools/pwck/09_pwck_missing_field_shadow_no_changes/pwck.test b/tests/tests/cktools/pwck/09_pwck_missing_field_shadow_no_changes/pwck.test new file mode 100755 index 00000000..893ba6e6 --- /dev/null +++ b/tests/tests/cktools/pwck/09_pwck_missing_field_shadow_no_changes/pwck.test @@ -0,0 +1,37 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "pwck check the number of fields and can change the system database" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +./pwck.exp + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/pwck/10_pwck_missing_field_passwd_local/config.txt b/tests/tests/cktools/pwck/10_pwck_missing_field_passwd_local/config.txt new file mode 100644 index 00000000..01189bd6 --- /dev/null +++ b/tests/tests/cktools/pwck/10_pwck_missing_field_passwd_local/config.txt @@ -0,0 +1,2 @@ +user foo +group foo with typo in group diff --git a/tests/tests/cktools/pwck/10_pwck_missing_field_passwd_local/config/etc/group b/tests/tests/cktools/pwck/10_pwck_missing_field_passwd_local/config/etc/group new file mode 100644 index 00000000..fecba0c4 --- /dev/null +++ b/tests/tests/cktools/pwck/10_pwck_missing_field_passwd_local/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: diff --git a/tests/tests/cktools/pwck/10_pwck_missing_field_passwd_local/config/etc/gshadow b/tests/tests/cktools/pwck/10_pwck_missing_field_passwd_local/config/etc/gshadow new file mode 100644 index 00000000..5042e581 --- /dev/null +++ b/tests/tests/cktools/pwck/10_pwck_missing_field_passwd_local/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/cktools/pwck/10_pwck_missing_field_passwd_local/config/etc/passwd b/tests/tests/cktools/pwck/10_pwck_missing_field_passwd_local/config/etc/passwd new file mode 100644 index 00000000..4ee448d9 --- /dev/null +++ b/tests/tests/cktools/pwck/10_pwck_missing_field_passwd_local/config/etc/passwd @@ -0,0 +1,11 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +foo:x:1000:1000:: diff --git a/tests/tests/cktools/pwck/10_pwck_missing_field_passwd_local/config/etc/shadow b/tests/tests/cktools/pwck/10_pwck_missing_field_passwd_local/config/etc/shadow new file mode 100644 index 00000000..d3c0775b --- /dev/null +++ b/tests/tests/cktools/pwck/10_pwck_missing_field_passwd_local/config/etc/shadow @@ -0,0 +1,11 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/pwck/10_pwck_missing_field_passwd_local/data/passwd b/tests/tests/cktools/pwck/10_pwck_missing_field_passwd_local/data/passwd new file mode 100644 index 00000000..2b911d1d --- /dev/null +++ b/tests/tests/cktools/pwck/10_pwck_missing_field_passwd_local/data/passwd @@ -0,0 +1,10 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh diff --git a/tests/tests/cktools/pwck/10_pwck_missing_field_passwd_local/data/shadow b/tests/tests/cktools/pwck/10_pwck_missing_field_passwd_local/data/shadow new file mode 100644 index 00000000..0a2fddb7 --- /dev/null +++ b/tests/tests/cktools/pwck/10_pwck_missing_field_passwd_local/data/shadow @@ -0,0 +1,10 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: diff --git a/tests/tests/cktools/pwck/10_pwck_missing_field_passwd_local/pwck.exp b/tests/tests/cktools/pwck/10_pwck_missing_field_passwd_local/pwck.exp new file mode 100755 index 00000000..4304cae9 --- /dev/null +++ b/tests/tests/cktools/pwck/10_pwck_missing_field_passwd_local/pwck.exp @@ -0,0 +1,23 @@ +#!/usr/bin/expect + +set timeout 2 +expect_after default {puts stderr "\nFAIL"; exit 1} + +spawn /bin/sh +send "if \[ \$(id -u) -eq 0 \]; then PS1='# '; else PS1='$ '; fi\r" +expect "# " + +send "pwck tmp/passwd tmp/shadow\r" +expect "invalid password file entry" +expect "delete line 'foo:x:1000:1000::'? " +send "yes\r" +expect "no matching password file entry in tmp/passwd" +expect "delete line 'foo:!:12977:0:99999:7:::'? " +send "yes\r" +expect "pwck: the files have been updated" +expect "# " +send "echo \$?\r" +expect "2" +send "exit\r" +puts "OK\n" +exit 0 diff --git a/tests/tests/cktools/pwck/10_pwck_missing_field_passwd_local/pwck.test b/tests/tests/cktools/pwck/10_pwck_missing_field_passwd_local/pwck.test new file mode 100755 index 00000000..b66eb340 --- /dev/null +++ b/tests/tests/cktools/pwck/10_pwck_missing_field_passwd_local/pwck.test @@ -0,0 +1,45 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "pwck check the number of fields and can change local databases" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "copy passwd and shadow locally..." +cp /etc/passwd /etc/shadow tmp/ +echo "OK" + +./pwck.exp + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +../../../common/compare_file.pl data/passwd tmp/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +../../../common/compare_file.pl data/shadow tmp/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +rm -f tmp/passwd tmp/passwd- tmp/shadow tmp/shadow- + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/pwck/11_pwck_missing_field_shadow_local/config.txt b/tests/tests/cktools/pwck/11_pwck_missing_field_shadow_local/config.txt new file mode 100644 index 00000000..52fad51b --- /dev/null +++ b/tests/tests/cktools/pwck/11_pwck_missing_field_shadow_local/config.txt @@ -0,0 +1,2 @@ +user foo +group foo with typo in gshadow diff --git a/tests/tests/cktools/pwck/11_pwck_missing_field_shadow_local/config/etc/group b/tests/tests/cktools/pwck/11_pwck_missing_field_shadow_local/config/etc/group new file mode 100644 index 00000000..fecba0c4 --- /dev/null +++ b/tests/tests/cktools/pwck/11_pwck_missing_field_shadow_local/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: diff --git a/tests/tests/cktools/pwck/11_pwck_missing_field_shadow_local/config/etc/gshadow b/tests/tests/cktools/pwck/11_pwck_missing_field_shadow_local/config/etc/gshadow new file mode 100644 index 00000000..5042e581 --- /dev/null +++ b/tests/tests/cktools/pwck/11_pwck_missing_field_shadow_local/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/cktools/pwck/11_pwck_missing_field_shadow_local/config/etc/passwd b/tests/tests/cktools/pwck/11_pwck_missing_field_shadow_local/config/etc/passwd new file mode 100644 index 00000000..6377a5d3 --- /dev/null +++ b/tests/tests/cktools/pwck/11_pwck_missing_field_shadow_local/config/etc/passwd @@ -0,0 +1,11 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +foo:x:1000:1000::/home:/bin/sh diff --git a/tests/tests/cktools/pwck/11_pwck_missing_field_shadow_local/config/etc/shadow b/tests/tests/cktools/pwck/11_pwck_missing_field_shadow_local/config/etc/shadow new file mode 100644 index 00000000..3a064c0c --- /dev/null +++ b/tests/tests/cktools/pwck/11_pwck_missing_field_shadow_local/config/etc/shadow @@ -0,0 +1,11 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +foo:!:12977:0:99999:7:: diff --git a/tests/tests/cktools/pwck/11_pwck_missing_field_shadow_local/data/passwd b/tests/tests/cktools/pwck/11_pwck_missing_field_shadow_local/data/passwd new file mode 100644 index 00000000..6377a5d3 --- /dev/null +++ b/tests/tests/cktools/pwck/11_pwck_missing_field_shadow_local/data/passwd @@ -0,0 +1,11 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +foo:x:1000:1000::/home:/bin/sh diff --git a/tests/tests/cktools/pwck/11_pwck_missing_field_shadow_local/data/shadow b/tests/tests/cktools/pwck/11_pwck_missing_field_shadow_local/data/shadow new file mode 100644 index 00000000..c9a03146 --- /dev/null +++ b/tests/tests/cktools/pwck/11_pwck_missing_field_shadow_local/data/shadow @@ -0,0 +1,11 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +foo:x:@TODAY@:0:99999:7::: diff --git a/tests/tests/cktools/pwck/11_pwck_missing_field_shadow_local/pwck.exp b/tests/tests/cktools/pwck/11_pwck_missing_field_shadow_local/pwck.exp new file mode 100755 index 00000000..b8ec619c --- /dev/null +++ b/tests/tests/cktools/pwck/11_pwck_missing_field_shadow_local/pwck.exp @@ -0,0 +1,23 @@ +#!/usr/bin/expect + +set timeout 2 +expect_after default {puts stderr "\nFAIL"; exit 1} + +spawn /bin/sh +send "if \[ \$(id -u) -eq 0 \]; then PS1='# '; else PS1='$ '; fi\r" +expect "# " + +send "pwck tmp/passwd tmp/shadow\r" +expect "no matching password file entry in tmp/shadow" +expect "add user 'foo' in tmp/shadow? " +send "yes\r" +expect "invalid shadow password file entry" +expect "delete line 'foo:*:'? " +send "yes\r" +expect "pwck: the files have been updated" +expect "# " +send "echo \$?\r" +expect "2" +send "exit\r" +puts "OK\n" +exit 0 diff --git a/tests/tests/cktools/pwck/11_pwck_missing_field_shadow_local/pwck.test b/tests/tests/cktools/pwck/11_pwck_missing_field_shadow_local/pwck.test new file mode 100755 index 00000000..b7675e65 --- /dev/null +++ b/tests/tests/cktools/pwck/11_pwck_missing_field_shadow_local/pwck.test @@ -0,0 +1,45 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "grpck check the number of fields and can change local databases" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "copy passwd and shadow locally..." +cp /etc/passwd /etc/shadow tmp/ +echo "OK" + +./pwck.exp + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +../../../common/compare_file.pl data/passwd tmp/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +../../../common/compare_file.pl data/shadow tmp/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +rm -f tmp/passwd tmp/passwd- tmp/shadow tmp/shadow- + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/pwck/12_pwck_unknown_user_group_ID/config.txt b/tests/tests/cktools/pwck/12_pwck_unknown_user_group_ID/config.txt new file mode 100644 index 00000000..01189bd6 --- /dev/null +++ b/tests/tests/cktools/pwck/12_pwck_unknown_user_group_ID/config.txt @@ -0,0 +1,2 @@ +user foo +group foo with typo in group diff --git a/tests/tests/cktools/pwck/12_pwck_unknown_user_group_ID/config/etc/group b/tests/tests/cktools/pwck/12_pwck_unknown_user_group_ID/config/etc/group new file mode 100644 index 00000000..fecba0c4 --- /dev/null +++ b/tests/tests/cktools/pwck/12_pwck_unknown_user_group_ID/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: diff --git a/tests/tests/cktools/pwck/12_pwck_unknown_user_group_ID/config/etc/gshadow b/tests/tests/cktools/pwck/12_pwck_unknown_user_group_ID/config/etc/gshadow new file mode 100644 index 00000000..5042e581 --- /dev/null +++ b/tests/tests/cktools/pwck/12_pwck_unknown_user_group_ID/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/cktools/pwck/12_pwck_unknown_user_group_ID/config/etc/passwd b/tests/tests/cktools/pwck/12_pwck_unknown_user_group_ID/config/etc/passwd new file mode 100644 index 00000000..58f2d752 --- /dev/null +++ b/tests/tests/cktools/pwck/12_pwck_unknown_user_group_ID/config/etc/passwd @@ -0,0 +1,11 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +foo:x:1000:1001::/home:/bin/sh diff --git a/tests/tests/cktools/pwck/12_pwck_unknown_user_group_ID/config/etc/shadow b/tests/tests/cktools/pwck/12_pwck_unknown_user_group_ID/config/etc/shadow new file mode 100644 index 00000000..d3c0775b --- /dev/null +++ b/tests/tests/cktools/pwck/12_pwck_unknown_user_group_ID/config/etc/shadow @@ -0,0 +1,11 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/pwck/12_pwck_unknown_user_group_ID/pwck.exp b/tests/tests/cktools/pwck/12_pwck_unknown_user_group_ID/pwck.exp new file mode 100755 index 00000000..1fb8c1df --- /dev/null +++ b/tests/tests/cktools/pwck/12_pwck_unknown_user_group_ID/pwck.exp @@ -0,0 +1,18 @@ +#!/usr/bin/expect + +set timeout 2 +expect_after default {puts stderr "\nFAIL"; exit 1} + +spawn /bin/sh +send "if \[ \$(id -u) -eq 0 \]; then PS1='# '; else PS1='$ '; fi\r" +expect "# " + +send "pwck\r" +expect "user 'foo': no group 1001" +expect "pwck: no changes" +expect "# " +send "echo \$?\r" +expect "2" +send "exit\r" +puts "OK\n" +exit 0 diff --git a/tests/tests/cktools/pwck/12_pwck_unknown_user_group_ID/pwck.test b/tests/tests/cktools/pwck/12_pwck_unknown_user_group_ID/pwck.test new file mode 100755 index 00000000..8df54820 --- /dev/null +++ b/tests/tests/cktools/pwck/12_pwck_unknown_user_group_ID/pwck.test @@ -0,0 +1,37 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "grpck check that the user's GID matches an existing group" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +./pwck.exp + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/pwck/13_pwck_duplicate_entry_passwd/config.txt b/tests/tests/cktools/pwck/13_pwck_duplicate_entry_passwd/config.txt new file mode 100644 index 00000000..01189bd6 --- /dev/null +++ b/tests/tests/cktools/pwck/13_pwck_duplicate_entry_passwd/config.txt @@ -0,0 +1,2 @@ +user foo +group foo with typo in group diff --git a/tests/tests/cktools/pwck/13_pwck_duplicate_entry_passwd/config/etc/group b/tests/tests/cktools/pwck/13_pwck_duplicate_entry_passwd/config/etc/group new file mode 100644 index 00000000..fecba0c4 --- /dev/null +++ b/tests/tests/cktools/pwck/13_pwck_duplicate_entry_passwd/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: diff --git a/tests/tests/cktools/pwck/13_pwck_duplicate_entry_passwd/config/etc/gshadow b/tests/tests/cktools/pwck/13_pwck_duplicate_entry_passwd/config/etc/gshadow new file mode 100644 index 00000000..5042e581 --- /dev/null +++ b/tests/tests/cktools/pwck/13_pwck_duplicate_entry_passwd/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/cktools/pwck/13_pwck_duplicate_entry_passwd/config/etc/passwd b/tests/tests/cktools/pwck/13_pwck_duplicate_entry_passwd/config/etc/passwd new file mode 100644 index 00000000..33debc51 --- /dev/null +++ b/tests/tests/cktools/pwck/13_pwck_duplicate_entry_passwd/config/etc/passwd @@ -0,0 +1,12 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +foo:x:1000:1000::/home:/bin/sh +foo:x:1001:1001::/home:/bin/sh diff --git a/tests/tests/cktools/pwck/13_pwck_duplicate_entry_passwd/config/etc/shadow b/tests/tests/cktools/pwck/13_pwck_duplicate_entry_passwd/config/etc/shadow new file mode 100644 index 00000000..d3c0775b --- /dev/null +++ b/tests/tests/cktools/pwck/13_pwck_duplicate_entry_passwd/config/etc/shadow @@ -0,0 +1,11 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/pwck/13_pwck_duplicate_entry_passwd/data/passwd b/tests/tests/cktools/pwck/13_pwck_duplicate_entry_passwd/data/passwd new file mode 100644 index 00000000..a45f378a --- /dev/null +++ b/tests/tests/cktools/pwck/13_pwck_duplicate_entry_passwd/data/passwd @@ -0,0 +1,11 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +foo:x:1001:1001::/home:/bin/sh diff --git a/tests/tests/cktools/pwck/13_pwck_duplicate_entry_passwd/pwck.exp b/tests/tests/cktools/pwck/13_pwck_duplicate_entry_passwd/pwck.exp new file mode 100755 index 00000000..825a111f --- /dev/null +++ b/tests/tests/cktools/pwck/13_pwck_duplicate_entry_passwd/pwck.exp @@ -0,0 +1,20 @@ +#!/usr/bin/expect + +set timeout 2 +expect_after default {puts stderr "\nFAIL"; exit 1} + +spawn /bin/sh +send "if \[ \$(id -u) -eq 0 \]; then PS1='# '; else PS1='$ '; fi\r" +expect "# " + +send "pwck\r" +expect "duplicate password entry" +expect "delete line 'foo:x:1000:1000::/home:/bin/sh'? " +send "yes\r" +expect "pwck: the files have been updated" +expect "# " +send "echo \$?\r" +expect "2" +send "exit\r" +puts "OK\n" +exit 0 diff --git a/tests/tests/cktools/pwck/13_pwck_duplicate_entry_passwd/pwck.test b/tests/tests/cktools/pwck/13_pwck_duplicate_entry_passwd/pwck.test new file mode 100755 index 00000000..4d4b9576 --- /dev/null +++ b/tests/tests/cktools/pwck/13_pwck_duplicate_entry_passwd/pwck.test @@ -0,0 +1,37 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "grpck check that user are uniq" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +./pwck.exp + +echo -n "Check the passwd file..." +../../../common/compare_file.pl data/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/pwck/14_pwck_duplicate_entry_shadow/config.txt b/tests/tests/cktools/pwck/14_pwck_duplicate_entry_shadow/config.txt new file mode 100644 index 00000000..01189bd6 --- /dev/null +++ b/tests/tests/cktools/pwck/14_pwck_duplicate_entry_shadow/config.txt @@ -0,0 +1,2 @@ +user foo +group foo with typo in group diff --git a/tests/tests/cktools/pwck/14_pwck_duplicate_entry_shadow/config/etc/group b/tests/tests/cktools/pwck/14_pwck_duplicate_entry_shadow/config/etc/group new file mode 100644 index 00000000..fecba0c4 --- /dev/null +++ b/tests/tests/cktools/pwck/14_pwck_duplicate_entry_shadow/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: diff --git a/tests/tests/cktools/pwck/14_pwck_duplicate_entry_shadow/config/etc/gshadow b/tests/tests/cktools/pwck/14_pwck_duplicate_entry_shadow/config/etc/gshadow new file mode 100644 index 00000000..5042e581 --- /dev/null +++ b/tests/tests/cktools/pwck/14_pwck_duplicate_entry_shadow/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/cktools/pwck/14_pwck_duplicate_entry_shadow/config/etc/passwd b/tests/tests/cktools/pwck/14_pwck_duplicate_entry_shadow/config/etc/passwd new file mode 100644 index 00000000..6377a5d3 --- /dev/null +++ b/tests/tests/cktools/pwck/14_pwck_duplicate_entry_shadow/config/etc/passwd @@ -0,0 +1,11 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +foo:x:1000:1000::/home:/bin/sh diff --git a/tests/tests/cktools/pwck/14_pwck_duplicate_entry_shadow/config/etc/shadow b/tests/tests/cktools/pwck/14_pwck_duplicate_entry_shadow/config/etc/shadow new file mode 100644 index 00000000..a5344f5e --- /dev/null +++ b/tests/tests/cktools/pwck/14_pwck_duplicate_entry_shadow/config/etc/shadow @@ -0,0 +1,12 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +foo:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/pwck/14_pwck_duplicate_entry_shadow/data/shadow b/tests/tests/cktools/pwck/14_pwck_duplicate_entry_shadow/data/shadow new file mode 100644 index 00000000..d3c0775b --- /dev/null +++ b/tests/tests/cktools/pwck/14_pwck_duplicate_entry_shadow/data/shadow @@ -0,0 +1,11 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/pwck/14_pwck_duplicate_entry_shadow/pwck.exp b/tests/tests/cktools/pwck/14_pwck_duplicate_entry_shadow/pwck.exp new file mode 100755 index 00000000..44313228 --- /dev/null +++ b/tests/tests/cktools/pwck/14_pwck_duplicate_entry_shadow/pwck.exp @@ -0,0 +1,20 @@ +#!/usr/bin/expect + +set timeout 2 +expect_after default {puts stderr "\nFAIL"; exit 1} + +spawn /bin/sh +send "if \[ \$(id -u) -eq 0 \]; then PS1='# '; else PS1='$ '; fi\r" +expect "# " + +send "pwck\r" +expect "duplicate shadow password entry" +expect "delete line 'foo:!:12977:0:99999:7:::'? " +send "yes\r" +expect "pwck: the files have been updated" +expect "# " +send "echo \$?\r" +expect "2" +send "exit\r" +puts "OK\n" +exit 0 diff --git a/tests/tests/cktools/pwck/14_pwck_duplicate_entry_shadow/pwck.test b/tests/tests/cktools/pwck/14_pwck_duplicate_entry_shadow/pwck.test new file mode 100755 index 00000000..4430d1a2 --- /dev/null +++ b/tests/tests/cktools/pwck/14_pwck_duplicate_entry_shadow/pwck.test @@ -0,0 +1,37 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "grpck check unicity of users in the shadow database" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +./pwck.exp + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl data/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/pwck/15_pwck_duplicate_entry_passwd_no_changes/config.txt b/tests/tests/cktools/pwck/15_pwck_duplicate_entry_passwd_no_changes/config.txt new file mode 100644 index 00000000..01189bd6 --- /dev/null +++ b/tests/tests/cktools/pwck/15_pwck_duplicate_entry_passwd_no_changes/config.txt @@ -0,0 +1,2 @@ +user foo +group foo with typo in group diff --git a/tests/tests/cktools/pwck/15_pwck_duplicate_entry_passwd_no_changes/config/etc/group b/tests/tests/cktools/pwck/15_pwck_duplicate_entry_passwd_no_changes/config/etc/group new file mode 100644 index 00000000..fecba0c4 --- /dev/null +++ b/tests/tests/cktools/pwck/15_pwck_duplicate_entry_passwd_no_changes/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: diff --git a/tests/tests/cktools/pwck/15_pwck_duplicate_entry_passwd_no_changes/config/etc/gshadow b/tests/tests/cktools/pwck/15_pwck_duplicate_entry_passwd_no_changes/config/etc/gshadow new file mode 100644 index 00000000..5042e581 --- /dev/null +++ b/tests/tests/cktools/pwck/15_pwck_duplicate_entry_passwd_no_changes/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/cktools/pwck/15_pwck_duplicate_entry_passwd_no_changes/config/etc/passwd b/tests/tests/cktools/pwck/15_pwck_duplicate_entry_passwd_no_changes/config/etc/passwd new file mode 100644 index 00000000..69c72ff6 --- /dev/null +++ b/tests/tests/cktools/pwck/15_pwck_duplicate_entry_passwd_no_changes/config/etc/passwd @@ -0,0 +1,12 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +foo:x:1000:1000::/home:/bin/sh +foo:x:1000:1000::/home:/bin/bash diff --git a/tests/tests/cktools/pwck/15_pwck_duplicate_entry_passwd_no_changes/config/etc/shadow b/tests/tests/cktools/pwck/15_pwck_duplicate_entry_passwd_no_changes/config/etc/shadow new file mode 100644 index 00000000..d3c0775b --- /dev/null +++ b/tests/tests/cktools/pwck/15_pwck_duplicate_entry_passwd_no_changes/config/etc/shadow @@ -0,0 +1,11 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/pwck/15_pwck_duplicate_entry_passwd_no_changes/pwck.exp b/tests/tests/cktools/pwck/15_pwck_duplicate_entry_passwd_no_changes/pwck.exp new file mode 100755 index 00000000..06dcc79f --- /dev/null +++ b/tests/tests/cktools/pwck/15_pwck_duplicate_entry_passwd_no_changes/pwck.exp @@ -0,0 +1,23 @@ +#!/usr/bin/expect + +set timeout 2 +expect_after default {puts stderr "\nFAIL"; exit 1} + +spawn /bin/sh +send "if \[ \$(id -u) -eq 0 \]; then PS1='# '; else PS1='$ '; fi\r" +expect "# " + +send "pwck\r" +expect "duplicate password entry" +expect "delete line 'foo:x:1000:1000::/home:/bin/sh'? " +send "no\r" +expect "duplicate password entry" +expect "delete line 'foo:x:1000:1000::/home:/bin/bash'? " +send "no\r" +expect "pwck: no changes" +expect "# " +send "echo \$?\r" +expect "2" +send "exit\r" +puts "OK\n" +exit 0 diff --git a/tests/tests/cktools/pwck/15_pwck_duplicate_entry_passwd_no_changes/pwck.test b/tests/tests/cktools/pwck/15_pwck_duplicate_entry_passwd_no_changes/pwck.test new file mode 100755 index 00000000..9ceb60e2 --- /dev/null +++ b/tests/tests/cktools/pwck/15_pwck_duplicate_entry_passwd_no_changes/pwck.test @@ -0,0 +1,37 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "grpck check unicity of users in passwd" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +./pwck.exp + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/pwck/16_pwck_duplicate_entry_shadow_no_changes/config.txt b/tests/tests/cktools/pwck/16_pwck_duplicate_entry_shadow_no_changes/config.txt new file mode 100644 index 00000000..01189bd6 --- /dev/null +++ b/tests/tests/cktools/pwck/16_pwck_duplicate_entry_shadow_no_changes/config.txt @@ -0,0 +1,2 @@ +user foo +group foo with typo in group diff --git a/tests/tests/cktools/pwck/16_pwck_duplicate_entry_shadow_no_changes/config/etc/group b/tests/tests/cktools/pwck/16_pwck_duplicate_entry_shadow_no_changes/config/etc/group new file mode 100644 index 00000000..fecba0c4 --- /dev/null +++ b/tests/tests/cktools/pwck/16_pwck_duplicate_entry_shadow_no_changes/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: diff --git a/tests/tests/cktools/pwck/16_pwck_duplicate_entry_shadow_no_changes/config/etc/gshadow b/tests/tests/cktools/pwck/16_pwck_duplicate_entry_shadow_no_changes/config/etc/gshadow new file mode 100644 index 00000000..5042e581 --- /dev/null +++ b/tests/tests/cktools/pwck/16_pwck_duplicate_entry_shadow_no_changes/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/cktools/pwck/16_pwck_duplicate_entry_shadow_no_changes/config/etc/passwd b/tests/tests/cktools/pwck/16_pwck_duplicate_entry_shadow_no_changes/config/etc/passwd new file mode 100644 index 00000000..6377a5d3 --- /dev/null +++ b/tests/tests/cktools/pwck/16_pwck_duplicate_entry_shadow_no_changes/config/etc/passwd @@ -0,0 +1,11 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +foo:x:1000:1000::/home:/bin/sh diff --git a/tests/tests/cktools/pwck/16_pwck_duplicate_entry_shadow_no_changes/config/etc/shadow b/tests/tests/cktools/pwck/16_pwck_duplicate_entry_shadow_no_changes/config/etc/shadow new file mode 100644 index 00000000..a5344f5e --- /dev/null +++ b/tests/tests/cktools/pwck/16_pwck_duplicate_entry_shadow_no_changes/config/etc/shadow @@ -0,0 +1,12 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +foo:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/pwck/16_pwck_duplicate_entry_shadow_no_changes/pwck.exp b/tests/tests/cktools/pwck/16_pwck_duplicate_entry_shadow_no_changes/pwck.exp new file mode 100755 index 00000000..8ee12466 --- /dev/null +++ b/tests/tests/cktools/pwck/16_pwck_duplicate_entry_shadow_no_changes/pwck.exp @@ -0,0 +1,23 @@ +#!/usr/bin/expect + +set timeout 2 +expect_after default {puts stderr "\nFAIL"; exit 1} + +spawn /bin/sh +send "if \[ \$(id -u) -eq 0 \]; then PS1='# '; else PS1='$ '; fi\r" +expect "# " + +send "pwck\r" +expect "duplicate shadow password entry" +expect "delete line 'foo:!:12977:0:99999:7:::'? " +send "no\r" +expect "duplicate shadow password entry" +expect "delete line 'foo:!:12977:0:99999:7:::'? " +send "no\r" +expect "pwck: no changes" +expect "# " +send "echo \$?\r" +expect "2" +send "exit\r" +puts "OK\n" +exit 0 diff --git a/tests/tests/cktools/pwck/16_pwck_duplicate_entry_shadow_no_changes/pwck.test b/tests/tests/cktools/pwck/16_pwck_duplicate_entry_shadow_no_changes/pwck.test new file mode 100755 index 00000000..8eed716d --- /dev/null +++ b/tests/tests/cktools/pwck/16_pwck_duplicate_entry_shadow_no_changes/pwck.test @@ -0,0 +1,37 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "grpck checks unicity of users in shadow" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +./pwck.exp + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/pwck/17_pwck_duplicate_entry_passwd_delete_second/config.txt b/tests/tests/cktools/pwck/17_pwck_duplicate_entry_passwd_delete_second/config.txt new file mode 100644 index 00000000..01189bd6 --- /dev/null +++ b/tests/tests/cktools/pwck/17_pwck_duplicate_entry_passwd_delete_second/config.txt @@ -0,0 +1,2 @@ +user foo +group foo with typo in group diff --git a/tests/tests/cktools/pwck/17_pwck_duplicate_entry_passwd_delete_second/config/etc/group b/tests/tests/cktools/pwck/17_pwck_duplicate_entry_passwd_delete_second/config/etc/group new file mode 100644 index 00000000..fecba0c4 --- /dev/null +++ b/tests/tests/cktools/pwck/17_pwck_duplicate_entry_passwd_delete_second/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: diff --git a/tests/tests/cktools/pwck/17_pwck_duplicate_entry_passwd_delete_second/config/etc/gshadow b/tests/tests/cktools/pwck/17_pwck_duplicate_entry_passwd_delete_second/config/etc/gshadow new file mode 100644 index 00000000..5042e581 --- /dev/null +++ b/tests/tests/cktools/pwck/17_pwck_duplicate_entry_passwd_delete_second/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/cktools/pwck/17_pwck_duplicate_entry_passwd_delete_second/config/etc/passwd b/tests/tests/cktools/pwck/17_pwck_duplicate_entry_passwd_delete_second/config/etc/passwd new file mode 100644 index 00000000..69c72ff6 --- /dev/null +++ b/tests/tests/cktools/pwck/17_pwck_duplicate_entry_passwd_delete_second/config/etc/passwd @@ -0,0 +1,12 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +foo:x:1000:1000::/home:/bin/sh +foo:x:1000:1000::/home:/bin/bash diff --git a/tests/tests/cktools/pwck/17_pwck_duplicate_entry_passwd_delete_second/config/etc/shadow b/tests/tests/cktools/pwck/17_pwck_duplicate_entry_passwd_delete_second/config/etc/shadow new file mode 100644 index 00000000..d3c0775b --- /dev/null +++ b/tests/tests/cktools/pwck/17_pwck_duplicate_entry_passwd_delete_second/config/etc/shadow @@ -0,0 +1,11 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/pwck/17_pwck_duplicate_entry_passwd_delete_second/data/passwd b/tests/tests/cktools/pwck/17_pwck_duplicate_entry_passwd_delete_second/data/passwd new file mode 100644 index 00000000..6377a5d3 --- /dev/null +++ b/tests/tests/cktools/pwck/17_pwck_duplicate_entry_passwd_delete_second/data/passwd @@ -0,0 +1,11 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +foo:x:1000:1000::/home:/bin/sh diff --git a/tests/tests/cktools/pwck/17_pwck_duplicate_entry_passwd_delete_second/pwck.exp b/tests/tests/cktools/pwck/17_pwck_duplicate_entry_passwd_delete_second/pwck.exp new file mode 100755 index 00000000..33accafb --- /dev/null +++ b/tests/tests/cktools/pwck/17_pwck_duplicate_entry_passwd_delete_second/pwck.exp @@ -0,0 +1,23 @@ +#!/usr/bin/expect + +set timeout 2 +expect_after default {puts stderr "\nFAIL"; exit 1} + +spawn /bin/sh +send "if \[ \$(id -u) -eq 0 \]; then PS1='# '; else PS1='$ '; fi\r" +expect "# " + +send "pwck\r" +expect "duplicate password entry" +expect "delete line 'foo:x:1000:1000::/home:/bin/sh'? " +send "no\r" +expect "duplicate password entry" +expect "delete line 'foo:x:1000:1000::/home:/bin/bash'? " +send "yes\r" +expect "pwck: the files have been updated" +expect "# " +send "echo \$?\r" +expect "2" +send "exit\r" +puts "OK\n" +exit 0 diff --git a/tests/tests/cktools/pwck/17_pwck_duplicate_entry_passwd_delete_second/pwck.test b/tests/tests/cktools/pwck/17_pwck_duplicate_entry_passwd_delete_second/pwck.test new file mode 100755 index 00000000..d61a9463 --- /dev/null +++ b/tests/tests/cktools/pwck/17_pwck_duplicate_entry_passwd_delete_second/pwck.test @@ -0,0 +1,37 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "grpck checks the unicity of users in passwd" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +./pwck.exp + +echo -n "Check the passwd file..." +../../../common/compare_file.pl data/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/pwck/18_pwck_invalid_user_name/config.txt b/tests/tests/cktools/pwck/18_pwck_invalid_user_name/config.txt new file mode 100644 index 00000000..01189bd6 --- /dev/null +++ b/tests/tests/cktools/pwck/18_pwck_invalid_user_name/config.txt @@ -0,0 +1,2 @@ +user foo +group foo with typo in group diff --git a/tests/tests/cktools/pwck/18_pwck_invalid_user_name/config/etc/group b/tests/tests/cktools/pwck/18_pwck_invalid_user_name/config/etc/group new file mode 100644 index 00000000..fecba0c4 --- /dev/null +++ b/tests/tests/cktools/pwck/18_pwck_invalid_user_name/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: diff --git a/tests/tests/cktools/pwck/18_pwck_invalid_user_name/config/etc/gshadow b/tests/tests/cktools/pwck/18_pwck_invalid_user_name/config/etc/gshadow new file mode 100644 index 00000000..5042e581 --- /dev/null +++ b/tests/tests/cktools/pwck/18_pwck_invalid_user_name/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/cktools/pwck/18_pwck_invalid_user_name/config/etc/passwd b/tests/tests/cktools/pwck/18_pwck_invalid_user_name/config/etc/passwd new file mode 100644 index 00000000..a82dbf6e --- /dev/null +++ b/tests/tests/cktools/pwck/18_pwck_invalid_user_name/config/etc/passwd @@ -0,0 +1,11 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +f o o:x:1000:1000::/home:/bin/sh diff --git a/tests/tests/cktools/pwck/18_pwck_invalid_user_name/config/etc/shadow b/tests/tests/cktools/pwck/18_pwck_invalid_user_name/config/etc/shadow new file mode 100644 index 00000000..f771b668 --- /dev/null +++ b/tests/tests/cktools/pwck/18_pwck_invalid_user_name/config/etc/shadow @@ -0,0 +1,11 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +f o o:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/pwck/18_pwck_invalid_user_name/pwck.exp b/tests/tests/cktools/pwck/18_pwck_invalid_user_name/pwck.exp new file mode 100755 index 00000000..3767009f --- /dev/null +++ b/tests/tests/cktools/pwck/18_pwck_invalid_user_name/pwck.exp @@ -0,0 +1,18 @@ +#!/usr/bin/expect + +set timeout 2 +expect_after default {puts stderr "\nFAIL"; exit 1} + +spawn /bin/sh +send "if \[ \$(id -u) -eq 0 \]; then PS1='# '; else PS1='$ '; fi\r" +expect "# " + +send "pwck\r" +expect "invalid user name 'f o o'" +expect "pwck: no changes" +expect "# " +send "echo \$?\r" +expect "2" +send "exit\r" +puts "OK\n" +exit 0 diff --git a/tests/tests/cktools/pwck/18_pwck_invalid_user_name/pwck.test b/tests/tests/cktools/pwck/18_pwck_invalid_user_name/pwck.test new file mode 100755 index 00000000..587f11c7 --- /dev/null +++ b/tests/tests/cktools/pwck/18_pwck_invalid_user_name/pwck.test @@ -0,0 +1,37 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "grpck check the validity of usernames" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +./pwck.exp + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/pwck/19_pwck_invalid_user_ID_-1/config.txt b/tests/tests/cktools/pwck/19_pwck_invalid_user_ID_-1/config.txt new file mode 100644 index 00000000..01189bd6 --- /dev/null +++ b/tests/tests/cktools/pwck/19_pwck_invalid_user_ID_-1/config.txt @@ -0,0 +1,2 @@ +user foo +group foo with typo in group diff --git a/tests/tests/cktools/pwck/19_pwck_invalid_user_ID_-1/config/etc/group b/tests/tests/cktools/pwck/19_pwck_invalid_user_ID_-1/config/etc/group new file mode 100644 index 00000000..fecba0c4 --- /dev/null +++ b/tests/tests/cktools/pwck/19_pwck_invalid_user_ID_-1/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: diff --git a/tests/tests/cktools/pwck/19_pwck_invalid_user_ID_-1/config/etc/gshadow b/tests/tests/cktools/pwck/19_pwck_invalid_user_ID_-1/config/etc/gshadow new file mode 100644 index 00000000..5042e581 --- /dev/null +++ b/tests/tests/cktools/pwck/19_pwck_invalid_user_ID_-1/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/cktools/pwck/19_pwck_invalid_user_ID_-1/config/etc/passwd b/tests/tests/cktools/pwck/19_pwck_invalid_user_ID_-1/config/etc/passwd new file mode 100644 index 00000000..850768a9 --- /dev/null +++ b/tests/tests/cktools/pwck/19_pwck_invalid_user_ID_-1/config/etc/passwd @@ -0,0 +1,11 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +foo:x:-1:1000::/home:/bin/sh diff --git a/tests/tests/cktools/pwck/19_pwck_invalid_user_ID_-1/config/etc/shadow b/tests/tests/cktools/pwck/19_pwck_invalid_user_ID_-1/config/etc/shadow new file mode 100644 index 00000000..d3c0775b --- /dev/null +++ b/tests/tests/cktools/pwck/19_pwck_invalid_user_ID_-1/config/etc/shadow @@ -0,0 +1,11 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/pwck/19_pwck_invalid_user_ID_-1/data/passwd b/tests/tests/cktools/pwck/19_pwck_invalid_user_ID_-1/data/passwd new file mode 100644 index 00000000..2b911d1d --- /dev/null +++ b/tests/tests/cktools/pwck/19_pwck_invalid_user_ID_-1/data/passwd @@ -0,0 +1,10 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh diff --git a/tests/tests/cktools/pwck/19_pwck_invalid_user_ID_-1/data/shadow b/tests/tests/cktools/pwck/19_pwck_invalid_user_ID_-1/data/shadow new file mode 100644 index 00000000..0a2fddb7 --- /dev/null +++ b/tests/tests/cktools/pwck/19_pwck_invalid_user_ID_-1/data/shadow @@ -0,0 +1,10 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: diff --git a/tests/tests/cktools/pwck/19_pwck_invalid_user_ID_-1/pwck.exp b/tests/tests/cktools/pwck/19_pwck_invalid_user_ID_-1/pwck.exp new file mode 100755 index 00000000..6c51256d --- /dev/null +++ b/tests/tests/cktools/pwck/19_pwck_invalid_user_ID_-1/pwck.exp @@ -0,0 +1,23 @@ +#!/usr/bin/expect + +set timeout 2 +expect_after default {puts stderr "\nFAIL"; exit 1} + +spawn /bin/sh +send "if \[ \$(id -u) -eq 0 \]; then PS1='# '; else PS1='$ '; fi\r" +expect "# " + +send "pwck\r" +expect "invalid password file entry" +expect "delete line 'foo:x:-1:1000::/home:/bin/sh'? " +send "yes\r" +expect "no matching password file entry in /etc/passwd" +expect "delete line 'foo:!:12977:0:99999:7:::'? " +send "yes\r" +expect "pwck: the files have been updated" +expect "# " +send "echo \$?\r" +expect "2" +send "exit\r" +puts "OK\n" +exit 0 diff --git a/tests/tests/cktools/pwck/19_pwck_invalid_user_ID_-1/pwck.test b/tests/tests/cktools/pwck/19_pwck_invalid_user_ID_-1/pwck.test new file mode 100755 index 00000000..8b56894f --- /dev/null +++ b/tests/tests/cktools/pwck/19_pwck_invalid_user_ID_-1/pwck.test @@ -0,0 +1,37 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "grpck checks the validity of UIDs" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +./pwck.exp + +echo -n "Check the passwd file..." +../../../common/compare_file.pl data/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl data/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/pwck/20_pwck_invalid_user_ID_4294967295/config.txt b/tests/tests/cktools/pwck/20_pwck_invalid_user_ID_4294967295/config.txt new file mode 100644 index 00000000..01189bd6 --- /dev/null +++ b/tests/tests/cktools/pwck/20_pwck_invalid_user_ID_4294967295/config.txt @@ -0,0 +1,2 @@ +user foo +group foo with typo in group diff --git a/tests/tests/cktools/pwck/20_pwck_invalid_user_ID_4294967295/config/etc/group b/tests/tests/cktools/pwck/20_pwck_invalid_user_ID_4294967295/config/etc/group new file mode 100644 index 00000000..fecba0c4 --- /dev/null +++ b/tests/tests/cktools/pwck/20_pwck_invalid_user_ID_4294967295/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: diff --git a/tests/tests/cktools/pwck/20_pwck_invalid_user_ID_4294967295/config/etc/gshadow b/tests/tests/cktools/pwck/20_pwck_invalid_user_ID_4294967295/config/etc/gshadow new file mode 100644 index 00000000..5042e581 --- /dev/null +++ b/tests/tests/cktools/pwck/20_pwck_invalid_user_ID_4294967295/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/cktools/pwck/20_pwck_invalid_user_ID_4294967295/config/etc/passwd b/tests/tests/cktools/pwck/20_pwck_invalid_user_ID_4294967295/config/etc/passwd new file mode 100644 index 00000000..e4387349 --- /dev/null +++ b/tests/tests/cktools/pwck/20_pwck_invalid_user_ID_4294967295/config/etc/passwd @@ -0,0 +1,11 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +foo:x:4294967295:1000::/home:/bin/sh diff --git a/tests/tests/cktools/pwck/20_pwck_invalid_user_ID_4294967295/config/etc/shadow b/tests/tests/cktools/pwck/20_pwck_invalid_user_ID_4294967295/config/etc/shadow new file mode 100644 index 00000000..d3c0775b --- /dev/null +++ b/tests/tests/cktools/pwck/20_pwck_invalid_user_ID_4294967295/config/etc/shadow @@ -0,0 +1,11 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/pwck/20_pwck_invalid_user_ID_4294967295/pwck.exp b/tests/tests/cktools/pwck/20_pwck_invalid_user_ID_4294967295/pwck.exp new file mode 100755 index 00000000..d69ab375 --- /dev/null +++ b/tests/tests/cktools/pwck/20_pwck_invalid_user_ID_4294967295/pwck.exp @@ -0,0 +1,18 @@ +#!/usr/bin/expect + +set timeout 2 +expect_after default {puts stderr "\nFAIL"; exit 1} + +spawn /bin/sh +send "if \[ \$(id -u) -eq 0 \]; then PS1='# '; else PS1='$ '; fi\r" +expect "# " + +send "pwck\r" +expect "invalid user ID '4294967295'" +expect "pwck: no changes" +expect "# " +send "echo \$?\r" +expect "2" +send "exit\r" +puts "OK\n" +exit 0 diff --git a/tests/tests/cktools/pwck/20_pwck_invalid_user_ID_4294967295/pwck.test b/tests/tests/cktools/pwck/20_pwck_invalid_user_ID_4294967295/pwck.test new file mode 100755 index 00000000..19d157fc --- /dev/null +++ b/tests/tests/cktools/pwck/20_pwck_invalid_user_ID_4294967295/pwck.test @@ -0,0 +1,37 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "grpck check the validity of the UID" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +./pwck.exp + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/pwck/21_pwck_invalid_user_ID_4294967296/config.txt b/tests/tests/cktools/pwck/21_pwck_invalid_user_ID_4294967296/config.txt new file mode 100644 index 00000000..01189bd6 --- /dev/null +++ b/tests/tests/cktools/pwck/21_pwck_invalid_user_ID_4294967296/config.txt @@ -0,0 +1,2 @@ +user foo +group foo with typo in group diff --git a/tests/tests/cktools/pwck/21_pwck_invalid_user_ID_4294967296/config/etc/group b/tests/tests/cktools/pwck/21_pwck_invalid_user_ID_4294967296/config/etc/group new file mode 100644 index 00000000..fecba0c4 --- /dev/null +++ b/tests/tests/cktools/pwck/21_pwck_invalid_user_ID_4294967296/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: diff --git a/tests/tests/cktools/pwck/21_pwck_invalid_user_ID_4294967296/config/etc/gshadow b/tests/tests/cktools/pwck/21_pwck_invalid_user_ID_4294967296/config/etc/gshadow new file mode 100644 index 00000000..5042e581 --- /dev/null +++ b/tests/tests/cktools/pwck/21_pwck_invalid_user_ID_4294967296/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/cktools/pwck/21_pwck_invalid_user_ID_4294967296/config/etc/passwd b/tests/tests/cktools/pwck/21_pwck_invalid_user_ID_4294967296/config/etc/passwd new file mode 100644 index 00000000..de8dd667 --- /dev/null +++ b/tests/tests/cktools/pwck/21_pwck_invalid_user_ID_4294967296/config/etc/passwd @@ -0,0 +1,11 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +foo:x:4294967296:1000::/home:/bin/sh diff --git a/tests/tests/cktools/pwck/21_pwck_invalid_user_ID_4294967296/config/etc/shadow b/tests/tests/cktools/pwck/21_pwck_invalid_user_ID_4294967296/config/etc/shadow new file mode 100644 index 00000000..d3c0775b --- /dev/null +++ b/tests/tests/cktools/pwck/21_pwck_invalid_user_ID_4294967296/config/etc/shadow @@ -0,0 +1,11 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/pwck/21_pwck_invalid_user_ID_4294967296/data/passwd b/tests/tests/cktools/pwck/21_pwck_invalid_user_ID_4294967296/data/passwd new file mode 100644 index 00000000..2b911d1d --- /dev/null +++ b/tests/tests/cktools/pwck/21_pwck_invalid_user_ID_4294967296/data/passwd @@ -0,0 +1,10 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh diff --git a/tests/tests/cktools/pwck/21_pwck_invalid_user_ID_4294967296/data/shadow b/tests/tests/cktools/pwck/21_pwck_invalid_user_ID_4294967296/data/shadow new file mode 100644 index 00000000..0a2fddb7 --- /dev/null +++ b/tests/tests/cktools/pwck/21_pwck_invalid_user_ID_4294967296/data/shadow @@ -0,0 +1,10 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: diff --git a/tests/tests/cktools/pwck/21_pwck_invalid_user_ID_4294967296/pwck.exp b/tests/tests/cktools/pwck/21_pwck_invalid_user_ID_4294967296/pwck.exp new file mode 100755 index 00000000..4dc35ce4 --- /dev/null +++ b/tests/tests/cktools/pwck/21_pwck_invalid_user_ID_4294967296/pwck.exp @@ -0,0 +1,23 @@ +#!/usr/bin/expect + +set timeout 2 +expect_after default {puts stderr "\nFAIL"; exit 1} + +spawn /bin/sh +send "if \[ \$(id -u) -eq 0 \]; then PS1='# '; else PS1='$ '; fi\r" +expect "# " + +send "pwck\r" +expect "invalid password file entry" +expect "delete line 'foo:x:4294967296:1000::/home:/bin/sh'? " +send "yes\r" +expect "no matching password file entry in /etc/passwd" +expect "delete line 'foo:!:12977:0:99999:7:::'? " +send "yes\r" +expect "pwck: the files have been updated" +expect "# " +send "echo \$?\r" +expect "2" +send "exit\r" +puts "OK\n" +exit 0 diff --git a/tests/tests/cktools/pwck/21_pwck_invalid_user_ID_4294967296/pwck.test b/tests/tests/cktools/pwck/21_pwck_invalid_user_ID_4294967296/pwck.test new file mode 100755 index 00000000..8b56894f --- /dev/null +++ b/tests/tests/cktools/pwck/21_pwck_invalid_user_ID_4294967296/pwck.test @@ -0,0 +1,37 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "grpck checks the validity of UIDs" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +./pwck.exp + +echo -n "Check the passwd file..." +../../../common/compare_file.pl data/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl data/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/pwck/22_pwck_usage/config.txt b/tests/tests/cktools/pwck/22_pwck_usage/config.txt new file mode 100644 index 00000000..31f56359 --- /dev/null +++ b/tests/tests/cktools/pwck/22_pwck_usage/config.txt @@ -0,0 +1,10 @@ +# no testsuite password +# root password: rootF00barbaz +# myuser password: myuserF00barbaz + +user foo, in group users (only in /etc/group) +user foo, in group tty (only in /etc/gshadow) +user foo, in group floppy +user foo, admin of group disk +user foo, admin and member of group fax +user foo, admin and member of group cdrom (only in /etc/gshadow) diff --git a/tests/tests/cktools/pwck/22_pwck_usage/config/etc/group b/tests/tests/cktools/pwck/22_pwck_usage/config/etc/group new file mode 100644 index 00000000..10123908 --- /dev/null +++ b/tests/tests/cktools/pwck/22_pwck_usage/config/etc/group @@ -0,0 +1,41 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: diff --git a/tests/tests/cktools/pwck/22_pwck_usage/config/etc/gshadow b/tests/tests/cktools/pwck/22_pwck_usage/config/etc/gshadow new file mode 100644 index 00000000..ae424865 --- /dev/null +++ b/tests/tests/cktools/pwck/22_pwck_usage/config/etc/gshadow @@ -0,0 +1,41 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: diff --git a/tests/tests/cktools/pwck/22_pwck_usage/config/etc/passwd b/tests/tests/cktools/pwck/22_pwck_usage/config/etc/passwd new file mode 100644 index 00000000..43fc135a --- /dev/null +++ b/tests/tests/cktools/pwck/22_pwck_usage/config/etc/passwd @@ -0,0 +1,19 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false diff --git a/tests/tests/cktools/pwck/22_pwck_usage/config/etc/shadow b/tests/tests/cktools/pwck/22_pwck_usage/config/etc/shadow new file mode 100644 index 00000000..5f50d187 --- /dev/null +++ b/tests/tests/cktools/pwck/22_pwck_usage/config/etc/shadow @@ -0,0 +1,19 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/pwck/22_pwck_usage/data/usage.out b/tests/tests/cktools/pwck/22_pwck_usage/data/usage.out new file mode 100644 index 00000000..fa629415 --- /dev/null +++ b/tests/tests/cktools/pwck/22_pwck_usage/data/usage.out @@ -0,0 +1,10 @@ +Usage: pwck [options] [passwd [shadow]] + +Options: + -h, --help display this help message and exit + -q, --quiet report errors only + -r, --read-only display errors and warnings + but do not change files + -R, --root CHROOT_DIR directory to chroot into + -s, --sort sort entries by UID + diff --git a/tests/tests/cktools/pwck/22_pwck_usage/pwck.test b/tests/tests/cktools/pwck/22_pwck_usage/pwck.test new file mode 100755 index 00000000..ccca31a2 --- /dev/null +++ b/tests/tests/cktools/pwck/22_pwck_usage/pwck.test @@ -0,0 +1,47 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "pwck can display its usage message" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "Get pwck usage (pwck -h)..." +pwck -h >tmp/usage.out + +echo "pwck reported:" +echo "=======================================================================" +cat tmp/usage.out +echo "=======================================================================" +echo -n "Check the usage message..." +diff -au data/usage.out tmp/usage.out +echo "usage message OK." +rm -f tmp/usage.out + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/pwck/23_pwck_locked_passwd/config.txt b/tests/tests/cktools/pwck/23_pwck_locked_passwd/config.txt new file mode 100644 index 00000000..e69de29b diff --git a/tests/tests/cktools/pwck/23_pwck_locked_passwd/config/etc/group b/tests/tests/cktools/pwck/23_pwck_locked_passwd/config/etc/group new file mode 100644 index 00000000..b6fae894 --- /dev/null +++ b/tests/tests/cktools/pwck/23_pwck_locked_passwd/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3:root +adm:x:4:root,foo +tty:x:5: +disk:x:6: +lp:x:7:foo,root +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21:foo +voice:x:22: +cdrom:x:24: +floppy:x:25:foo +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100:foo +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: diff --git a/tests/tests/cktools/pwck/23_pwck_locked_passwd/config/etc/gshadow b/tests/tests/cktools/pwck/23_pwck_locked_passwd/config/etc/gshadow new file mode 100644 index 00000000..1f2ba8da --- /dev/null +++ b/tests/tests/cktools/pwck/23_pwck_locked_passwd/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*::root +adm:*::root,foo +tty:*::foo +disk:*:foo: +lp:*::foo,root +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:foo:foo +voice:*:: +cdrom:*:foo:foo +floppy:*::foo +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/cktools/pwck/23_pwck_locked_passwd/config/etc/passwd b/tests/tests/cktools/pwck/23_pwck_locked_passwd/config/etc/passwd new file mode 100644 index 00000000..bf52df00 --- /dev/null +++ b/tests/tests/cktools/pwck/23_pwck_locked_passwd/config/etc/passwd @@ -0,0 +1,20 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +foo:x:1000:1000::/home/foo:/bin/false diff --git a/tests/tests/cktools/pwck/23_pwck_locked_passwd/config/etc/shadow b/tests/tests/cktools/pwck/23_pwck_locked_passwd/config/etc/shadow new file mode 100644 index 00000000..2baad3b4 --- /dev/null +++ b/tests/tests/cktools/pwck/23_pwck_locked_passwd/config/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/pwck/23_pwck_locked_passwd/data/pwck.err b/tests/tests/cktools/pwck/23_pwck_locked_passwd/data/pwck.err new file mode 100644 index 00000000..798e427e --- /dev/null +++ b/tests/tests/cktools/pwck/23_pwck_locked_passwd/data/pwck.err @@ -0,0 +1,2 @@ +pwck: existing lock file /etc/passwd.lock without a PID +pwck: cannot lock /etc/passwd; try again later. diff --git a/tests/tests/cktools/pwck/23_pwck_locked_passwd/pwck.test b/tests/tests/cktools/pwck/23_pwck_locked_passwd/pwck.test new file mode 100755 index 00000000..8731b286 --- /dev/null +++ b/tests/tests/cktools/pwck/23_pwck_locked_passwd/pwck.test @@ -0,0 +1,60 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "pwck checks if the passwd file is locked" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config; rm -f /etc/passwd.lock' 0 + +change_config + +echo -n "Create lock file for /etc/passwd..." +touch /etc/passwd.lock +echo "done" + +echo -n "Check user database (pwck)..." +pwck 2>tmp/pwck.err && exit 1 || { + status=$? +} +echo "OK" + +rm -f /etc/passwd.lock + +echo -n "Check returned status ($status)..." +test "$status" = "4" +echo "OK" + +echo "pwck reported:" +echo "=======================================================================" +cat tmp/pwck.err +echo "=======================================================================" +echo -n "Check that there were a failure message..." +diff -au data/pwck.err tmp/pwck.err +echo "error message OK." +rm -f tmp/pwck.err + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/pwck/24_pwck_locked_shadow/config.txt b/tests/tests/cktools/pwck/24_pwck_locked_shadow/config.txt new file mode 100644 index 00000000..e69de29b diff --git a/tests/tests/cktools/pwck/24_pwck_locked_shadow/config/etc/group b/tests/tests/cktools/pwck/24_pwck_locked_shadow/config/etc/group new file mode 100644 index 00000000..b6fae894 --- /dev/null +++ b/tests/tests/cktools/pwck/24_pwck_locked_shadow/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3:root +adm:x:4:root,foo +tty:x:5: +disk:x:6: +lp:x:7:foo,root +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21:foo +voice:x:22: +cdrom:x:24: +floppy:x:25:foo +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100:foo +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: diff --git a/tests/tests/cktools/pwck/24_pwck_locked_shadow/config/etc/gshadow b/tests/tests/cktools/pwck/24_pwck_locked_shadow/config/etc/gshadow new file mode 100644 index 00000000..1f2ba8da --- /dev/null +++ b/tests/tests/cktools/pwck/24_pwck_locked_shadow/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*::root +adm:*::root,foo +tty:*::foo +disk:*:foo: +lp:*::foo,root +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:foo:foo +voice:*:: +cdrom:*:foo:foo +floppy:*::foo +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/cktools/pwck/24_pwck_locked_shadow/config/etc/passwd b/tests/tests/cktools/pwck/24_pwck_locked_shadow/config/etc/passwd new file mode 100644 index 00000000..bf52df00 --- /dev/null +++ b/tests/tests/cktools/pwck/24_pwck_locked_shadow/config/etc/passwd @@ -0,0 +1,20 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +foo:x:1000:1000::/home/foo:/bin/false diff --git a/tests/tests/cktools/pwck/24_pwck_locked_shadow/config/etc/shadow b/tests/tests/cktools/pwck/24_pwck_locked_shadow/config/etc/shadow new file mode 100644 index 00000000..2baad3b4 --- /dev/null +++ b/tests/tests/cktools/pwck/24_pwck_locked_shadow/config/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/pwck/24_pwck_locked_shadow/data/pwck.err b/tests/tests/cktools/pwck/24_pwck_locked_shadow/data/pwck.err new file mode 100644 index 00000000..f8112fb1 --- /dev/null +++ b/tests/tests/cktools/pwck/24_pwck_locked_shadow/data/pwck.err @@ -0,0 +1,2 @@ +pwck: existing lock file /etc/shadow.lock without a PID +pwck: cannot lock /etc/shadow; try again later. diff --git a/tests/tests/cktools/pwck/24_pwck_locked_shadow/pwck.test b/tests/tests/cktools/pwck/24_pwck_locked_shadow/pwck.test new file mode 100755 index 00000000..61e2926c --- /dev/null +++ b/tests/tests/cktools/pwck/24_pwck_locked_shadow/pwck.test @@ -0,0 +1,60 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "pwck checks if the shadow file is locked" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config; rm -f /etc/shadow.lock' 0 + +change_config + +echo -n "Create lock file for /etc/shadow..." +touch /etc/shadow.lock +echo "done" + +echo -n "Check user database (pwck)..." +pwck 2>tmp/pwck.err && exit 1 || { + status=$? +} +echo "OK" + +rm -f /etc/shadow.lock + +echo -n "Check returned status ($status)..." +test "$status" = "4" +echo "OK" + +echo "pwck reported:" +echo "=======================================================================" +cat tmp/pwck.err +echo "=======================================================================" +echo -n "Check that there were a failure message..." +diff -au data/pwck.err tmp/pwck.err +echo "error message OK." +rm -f tmp/pwck.err + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/pwck/25_pwck_usage_invalid_option/config.txt b/tests/tests/cktools/pwck/25_pwck_usage_invalid_option/config.txt new file mode 100644 index 00000000..e69de29b diff --git a/tests/tests/cktools/pwck/25_pwck_usage_invalid_option/config/etc/group b/tests/tests/cktools/pwck/25_pwck_usage_invalid_option/config/etc/group new file mode 100644 index 00000000..b6fae894 --- /dev/null +++ b/tests/tests/cktools/pwck/25_pwck_usage_invalid_option/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3:root +adm:x:4:root,foo +tty:x:5: +disk:x:6: +lp:x:7:foo,root +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21:foo +voice:x:22: +cdrom:x:24: +floppy:x:25:foo +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100:foo +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: diff --git a/tests/tests/cktools/pwck/25_pwck_usage_invalid_option/config/etc/gshadow b/tests/tests/cktools/pwck/25_pwck_usage_invalid_option/config/etc/gshadow new file mode 100644 index 00000000..1f2ba8da --- /dev/null +++ b/tests/tests/cktools/pwck/25_pwck_usage_invalid_option/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*::root +adm:*::root,foo +tty:*::foo +disk:*:foo: +lp:*::foo,root +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:foo:foo +voice:*:: +cdrom:*:foo:foo +floppy:*::foo +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/cktools/pwck/25_pwck_usage_invalid_option/config/etc/passwd b/tests/tests/cktools/pwck/25_pwck_usage_invalid_option/config/etc/passwd new file mode 100644 index 00000000..bf52df00 --- /dev/null +++ b/tests/tests/cktools/pwck/25_pwck_usage_invalid_option/config/etc/passwd @@ -0,0 +1,20 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +foo:x:1000:1000::/home/foo:/bin/false diff --git a/tests/tests/cktools/pwck/25_pwck_usage_invalid_option/config/etc/shadow b/tests/tests/cktools/pwck/25_pwck_usage_invalid_option/config/etc/shadow new file mode 100644 index 00000000..2baad3b4 --- /dev/null +++ b/tests/tests/cktools/pwck/25_pwck_usage_invalid_option/config/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/pwck/25_pwck_usage_invalid_option/data/pwck.err b/tests/tests/cktools/pwck/25_pwck_usage_invalid_option/data/pwck.err new file mode 100644 index 00000000..b08f13f6 --- /dev/null +++ b/tests/tests/cktools/pwck/25_pwck_usage_invalid_option/data/pwck.err @@ -0,0 +1,11 @@ +pwck: invalid option -- 'Z' +Usage: pwck [options] [passwd [shadow]] + +Options: + -h, --help display this help message and exit + -q, --quiet report errors only + -r, --read-only display errors and warnings + but do not change files + -R, --root CHROOT_DIR directory to chroot into + -s, --sort sort entries by UID + diff --git a/tests/tests/cktools/pwck/25_pwck_usage_invalid_option/pwck.test b/tests/tests/cktools/pwck/25_pwck_usage_invalid_option/pwck.test new file mode 100755 index 00000000..a8d5941a --- /dev/null +++ b/tests/tests/cktools/pwck/25_pwck_usage_invalid_option/pwck.test @@ -0,0 +1,56 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "pwck displays its usage message when called with an invalid option" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "Call pwck with an invalid option (pwck -Z)..." +pwck -Z 2>tmp/pwck.err && exit 1 || { + status=$? +} +echo "OK" + +rm -f /etc/passwd.lock + +echo -n "Check returned status ($status)..." +test "$status" = "1" +echo "OK" + +echo "pwck reported:" +echo "=======================================================================" +cat tmp/pwck.err +echo "=======================================================================" +echo -n "Check that there were a failure message..." +diff -au data/pwck.err tmp/pwck.err +echo "error message OK." +rm -f tmp/pwck.err + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/pwck/26_pwck_usage-s-r/config.txt b/tests/tests/cktools/pwck/26_pwck_usage-s-r/config.txt new file mode 100644 index 00000000..e69de29b diff --git a/tests/tests/cktools/pwck/26_pwck_usage-s-r/config/etc/group b/tests/tests/cktools/pwck/26_pwck_usage-s-r/config/etc/group new file mode 100644 index 00000000..b6fae894 --- /dev/null +++ b/tests/tests/cktools/pwck/26_pwck_usage-s-r/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3:root +adm:x:4:root,foo +tty:x:5: +disk:x:6: +lp:x:7:foo,root +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21:foo +voice:x:22: +cdrom:x:24: +floppy:x:25:foo +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100:foo +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: diff --git a/tests/tests/cktools/pwck/26_pwck_usage-s-r/config/etc/gshadow b/tests/tests/cktools/pwck/26_pwck_usage-s-r/config/etc/gshadow new file mode 100644 index 00000000..1f2ba8da --- /dev/null +++ b/tests/tests/cktools/pwck/26_pwck_usage-s-r/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*::root +adm:*::root,foo +tty:*::foo +disk:*:foo: +lp:*::foo,root +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:foo:foo +voice:*:: +cdrom:*:foo:foo +floppy:*::foo +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/cktools/pwck/26_pwck_usage-s-r/config/etc/passwd b/tests/tests/cktools/pwck/26_pwck_usage-s-r/config/etc/passwd new file mode 100644 index 00000000..bf52df00 --- /dev/null +++ b/tests/tests/cktools/pwck/26_pwck_usage-s-r/config/etc/passwd @@ -0,0 +1,20 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +foo:x:1000:1000::/home/foo:/bin/false diff --git a/tests/tests/cktools/pwck/26_pwck_usage-s-r/config/etc/shadow b/tests/tests/cktools/pwck/26_pwck_usage-s-r/config/etc/shadow new file mode 100644 index 00000000..2baad3b4 --- /dev/null +++ b/tests/tests/cktools/pwck/26_pwck_usage-s-r/config/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/pwck/26_pwck_usage-s-r/data/pwck.err b/tests/tests/cktools/pwck/26_pwck_usage-s-r/data/pwck.err new file mode 100644 index 00000000..e44d375d --- /dev/null +++ b/tests/tests/cktools/pwck/26_pwck_usage-s-r/data/pwck.err @@ -0,0 +1 @@ +pwck: -s and -r are incompatible diff --git a/tests/tests/cktools/pwck/26_pwck_usage-s-r/pwck.test b/tests/tests/cktools/pwck/26_pwck_usage-s-r/pwck.test new file mode 100755 index 00000000..6f0a3b5c --- /dev/null +++ b/tests/tests/cktools/pwck/26_pwck_usage-s-r/pwck.test @@ -0,0 +1,56 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "pwck warns that -r and -s are exclusive" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "Call pwck with the -r and -s options (pwck -r -s)..." +pwck -r -s 2>tmp/pwck.err && exit 1 || { + status=$? +} +echo "OK" + +rm -f /etc/passwd.lock + +echo -n "Check returned status ($status)..." +test "$status" = "1" +echo "OK" + +echo "pwck reported:" +echo "=======================================================================" +cat tmp/pwck.err +echo "=======================================================================" +echo -n "Check that there were a failure message..." +diff -au data/pwck.err tmp/pwck.err +echo "error message OK." +rm -f tmp/pwck.err + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/pwck/27_pwck_usage_3_files/config.txt b/tests/tests/cktools/pwck/27_pwck_usage_3_files/config.txt new file mode 100644 index 00000000..e69de29b diff --git a/tests/tests/cktools/pwck/27_pwck_usage_3_files/config/etc/group b/tests/tests/cktools/pwck/27_pwck_usage_3_files/config/etc/group new file mode 100644 index 00000000..b6fae894 --- /dev/null +++ b/tests/tests/cktools/pwck/27_pwck_usage_3_files/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3:root +adm:x:4:root,foo +tty:x:5: +disk:x:6: +lp:x:7:foo,root +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21:foo +voice:x:22: +cdrom:x:24: +floppy:x:25:foo +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100:foo +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: diff --git a/tests/tests/cktools/pwck/27_pwck_usage_3_files/config/etc/gshadow b/tests/tests/cktools/pwck/27_pwck_usage_3_files/config/etc/gshadow new file mode 100644 index 00000000..1f2ba8da --- /dev/null +++ b/tests/tests/cktools/pwck/27_pwck_usage_3_files/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*::root +adm:*::root,foo +tty:*::foo +disk:*:foo: +lp:*::foo,root +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:foo:foo +voice:*:: +cdrom:*:foo:foo +floppy:*::foo +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:*:: diff --git a/tests/tests/cktools/pwck/27_pwck_usage_3_files/config/etc/passwd b/tests/tests/cktools/pwck/27_pwck_usage_3_files/config/etc/passwd new file mode 100644 index 00000000..bf52df00 --- /dev/null +++ b/tests/tests/cktools/pwck/27_pwck_usage_3_files/config/etc/passwd @@ -0,0 +1,20 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +foo:x:1000:1000::/home/foo:/bin/false diff --git a/tests/tests/cktools/pwck/27_pwck_usage_3_files/config/etc/shadow b/tests/tests/cktools/pwck/27_pwck_usage_3_files/config/etc/shadow new file mode 100644 index 00000000..2baad3b4 --- /dev/null +++ b/tests/tests/cktools/pwck/27_pwck_usage_3_files/config/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/pwck/27_pwck_usage_3_files/data/pwck.err b/tests/tests/cktools/pwck/27_pwck_usage_3_files/data/pwck.err new file mode 100644 index 00000000..fa629415 --- /dev/null +++ b/tests/tests/cktools/pwck/27_pwck_usage_3_files/data/pwck.err @@ -0,0 +1,10 @@ +Usage: pwck [options] [passwd [shadow]] + +Options: + -h, --help display this help message and exit + -q, --quiet report errors only + -r, --read-only display errors and warnings + but do not change files + -R, --root CHROOT_DIR directory to chroot into + -s, --sort sort entries by UID + diff --git a/tests/tests/cktools/pwck/27_pwck_usage_3_files/pwck.test b/tests/tests/cktools/pwck/27_pwck_usage_3_files/pwck.test new file mode 100755 index 00000000..9c8c81d1 --- /dev/null +++ b/tests/tests/cktools/pwck/27_pwck_usage_3_files/pwck.test @@ -0,0 +1,56 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "pwck displays its usage message when called with 3 files" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "Call pwck with 3 files (pwck data/passwd data/shadow data/foo)..." +pwck data/passwd data/shadow data/foo 2>tmp/pwck.err && exit 1 || { + status=$? +} +echo "OK" + +rm -f /etc/passwd.lock + +echo -n "Check returned status ($status)..." +test "$status" = "1" +echo "OK" + +echo "pwck reported:" +echo "=======================================================================" +cat tmp/pwck.err +echo "=======================================================================" +echo -n "Check that there were a failure message..." +diff -au data/pwck.err tmp/pwck.err +echo "error message OK." +rm -f tmp/pwck.err + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/pwck/28_pwck_no_shadow_file/config.txt b/tests/tests/cktools/pwck/28_pwck_no_shadow_file/config.txt new file mode 100644 index 00000000..31f56359 --- /dev/null +++ b/tests/tests/cktools/pwck/28_pwck_no_shadow_file/config.txt @@ -0,0 +1,10 @@ +# no testsuite password +# root password: rootF00barbaz +# myuser password: myuserF00barbaz + +user foo, in group users (only in /etc/group) +user foo, in group tty (only in /etc/gshadow) +user foo, in group floppy +user foo, admin of group disk +user foo, admin and member of group fax +user foo, admin and member of group cdrom (only in /etc/gshadow) diff --git a/tests/tests/cktools/pwck/28_pwck_no_shadow_file/config/etc/group b/tests/tests/cktools/pwck/28_pwck_no_shadow_file/config/etc/group new file mode 100644 index 00000000..fecba0c4 --- /dev/null +++ b/tests/tests/cktools/pwck/28_pwck_no_shadow_file/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: diff --git a/tests/tests/cktools/pwck/28_pwck_no_shadow_file/config/etc/gshadow b/tests/tests/cktools/pwck/28_pwck_no_shadow_file/config/etc/gshadow new file mode 100644 index 00000000..be1575eb --- /dev/null +++ b/tests/tests/cktools/pwck/28_pwck_no_shadow_file/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:x:: diff --git a/tests/tests/cktools/pwck/28_pwck_no_shadow_file/config/etc/passwd b/tests/tests/cktools/pwck/28_pwck_no_shadow_file/config/etc/passwd new file mode 100644 index 00000000..57434e69 --- /dev/null +++ b/tests/tests/cktools/pwck/28_pwck_no_shadow_file/config/etc/passwd @@ -0,0 +1,23 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/tmp:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/tmp:/bin/sh +uucp:x:10:10:uucp:/tmp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/tmp:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/tmp:/bin/sh +irc:x:39:39:ircd:/tmp:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/tmp:/bin/sh +nobody:x:65534:65534:nobody:/tmp:/bin/sh +Debian-exim:x:102:102::/tmp:/bin/false +foo:pass:1000:1000::/home/foo:/bin/sh +foo:pass:1001:1000::/tmp:/bin/sh +foo2:pass:1000:1000::/tmp:/bin/shs +foo3:x:1000:1000::/tmp: diff --git a/tests/tests/cktools/pwck/28_pwck_no_shadow_file/config/etc/shadow b/tests/tests/cktools/pwck/28_pwck_no_shadow_file/config/etc/shadow new file mode 100644 index 00000000..2baad3b4 --- /dev/null +++ b/tests/tests/cktools/pwck/28_pwck_no_shadow_file/config/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/pwck/28_pwck_no_shadow_file/data/pwck.out b/tests/tests/cktools/pwck/28_pwck_no_shadow_file/data/pwck.out new file mode 100644 index 00000000..e0cac3d8 --- /dev/null +++ b/tests/tests/cktools/pwck/28_pwck_no_shadow_file/data/pwck.out @@ -0,0 +1,7 @@ +duplicate password entry +delete line 'foo:pass:1000:1000::/home/foo:/bin/sh'? No +user 'foo': directory '/home/foo' does not exist +duplicate password entry +delete line 'foo:pass:1001:1000::/tmp:/bin/sh'? No +user 'foo2': program '/bin/shs' does not exist +pwck: no changes diff --git a/tests/tests/cktools/pwck/28_pwck_no_shadow_file/pwck.test b/tests/tests/cktools/pwck/28_pwck_no_shadow_file/pwck.test new file mode 100755 index 00000000..e792f78a --- /dev/null +++ b/tests/tests/cktools/pwck/28_pwck_no_shadow_file/pwck.test @@ -0,0 +1,58 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "pwck report issues when the shadow file does not exist" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "Remove /etc/shadow..." +rm -f /etc/shadow +echo "OK" + +echo -n "Check user database (pwck -r)..." +pwck -r >tmp/pwck.out && exit 1 || { + status=$? +} +echo "OK" + +echo -n "Check returned status ($status)..." +test "$status" = "2" +echo "OK" + +echo "pwck reported:" +echo "=======================================================================" +cat tmp/pwck.out +echo "=======================================================================" +echo -n "Check the report..." +diff -au data/pwck.out tmp/pwck.out +echo "report OK." +rm -f tmp/pwck.out + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +test ! -f /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/pwck/29_pwck_password_change_in_future/config.txt b/tests/tests/cktools/pwck/29_pwck_password_change_in_future/config.txt new file mode 100644 index 00000000..31f56359 --- /dev/null +++ b/tests/tests/cktools/pwck/29_pwck_password_change_in_future/config.txt @@ -0,0 +1,10 @@ +# no testsuite password +# root password: rootF00barbaz +# myuser password: myuserF00barbaz + +user foo, in group users (only in /etc/group) +user foo, in group tty (only in /etc/gshadow) +user foo, in group floppy +user foo, admin of group disk +user foo, admin and member of group fax +user foo, admin and member of group cdrom (only in /etc/gshadow) diff --git a/tests/tests/cktools/pwck/29_pwck_password_change_in_future/config/etc/group b/tests/tests/cktools/pwck/29_pwck_password_change_in_future/config/etc/group new file mode 100644 index 00000000..fecba0c4 --- /dev/null +++ b/tests/tests/cktools/pwck/29_pwck_password_change_in_future/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: diff --git a/tests/tests/cktools/pwck/29_pwck_password_change_in_future/config/etc/gshadow b/tests/tests/cktools/pwck/29_pwck_password_change_in_future/config/etc/gshadow new file mode 100644 index 00000000..be1575eb --- /dev/null +++ b/tests/tests/cktools/pwck/29_pwck_password_change_in_future/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:x:: diff --git a/tests/tests/cktools/pwck/29_pwck_password_change_in_future/config/etc/passwd b/tests/tests/cktools/pwck/29_pwck_password_change_in_future/config/etc/passwd new file mode 100644 index 00000000..ded978d9 --- /dev/null +++ b/tests/tests/cktools/pwck/29_pwck_password_change_in_future/config/etc/passwd @@ -0,0 +1,20 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/tmp:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/tmp:/bin/sh +uucp:x:10:10:uucp:/tmp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/tmp:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/tmp:/bin/sh +irc:x:39:39:ircd:/tmp:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/tmp:/bin/sh +nobody:x:65534:65534:nobody:/tmp:/bin/sh +Debian-exim:x:102:102::/tmp:/bin/false +foo:x:1000:1000::/home:/bin/sh diff --git a/tests/tests/cktools/pwck/29_pwck_password_change_in_future/config/etc/shadow b/tests/tests/cktools/pwck/29_pwck_password_change_in_future/config/etc/shadow new file mode 100644 index 00000000..37819882 --- /dev/null +++ b/tests/tests/cktools/pwck/29_pwck_password_change_in_future/config/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:99997:0:99999:7::: diff --git a/tests/tests/cktools/pwck/29_pwck_password_change_in_future/data/pwck.out b/tests/tests/cktools/pwck/29_pwck_password_change_in_future/data/pwck.out new file mode 100644 index 00000000..12d2fbfe --- /dev/null +++ b/tests/tests/cktools/pwck/29_pwck_password_change_in_future/data/pwck.out @@ -0,0 +1,2 @@ +user foo: last password change in the future +pwck: no changes diff --git a/tests/tests/cktools/pwck/29_pwck_password_change_in_future/pwck.test b/tests/tests/cktools/pwck/29_pwck_password_change_in_future/pwck.test new file mode 100755 index 00000000..6ccd8109 --- /dev/null +++ b/tests/tests/cktools/pwck/29_pwck_password_change_in_future/pwck.test @@ -0,0 +1,54 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "pwck checks that the password was set in the past" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "Check user database (pwck -r)..." +pwck -r >tmp/pwck.out && exit 1 || { + status=$? +} +echo "OK" + +echo -n "Check returned status ($status)..." +test "$status" = "2" +echo "OK" + +echo "pwck reported:" +echo "=======================================================================" +cat tmp/pwck.out +echo "=======================================================================" +echo -n "Check the report..." +diff -au data/pwck.out tmp/pwck.out +echo "report OK." +rm -f tmp/pwck.out + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/pwck/30_pwck_NIS_entries/config.txt b/tests/tests/cktools/pwck/30_pwck_NIS_entries/config.txt new file mode 100644 index 00000000..31f56359 --- /dev/null +++ b/tests/tests/cktools/pwck/30_pwck_NIS_entries/config.txt @@ -0,0 +1,10 @@ +# no testsuite password +# root password: rootF00barbaz +# myuser password: myuserF00barbaz + +user foo, in group users (only in /etc/group) +user foo, in group tty (only in /etc/gshadow) +user foo, in group floppy +user foo, admin of group disk +user foo, admin and member of group fax +user foo, admin and member of group cdrom (only in /etc/gshadow) diff --git a/tests/tests/cktools/pwck/30_pwck_NIS_entries/config/etc/group b/tests/tests/cktools/pwck/30_pwck_NIS_entries/config/etc/group new file mode 100644 index 00000000..fecba0c4 --- /dev/null +++ b/tests/tests/cktools/pwck/30_pwck_NIS_entries/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: diff --git a/tests/tests/cktools/pwck/30_pwck_NIS_entries/config/etc/gshadow b/tests/tests/cktools/pwck/30_pwck_NIS_entries/config/etc/gshadow new file mode 100644 index 00000000..be1575eb --- /dev/null +++ b/tests/tests/cktools/pwck/30_pwck_NIS_entries/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:x:: diff --git a/tests/tests/cktools/pwck/30_pwck_NIS_entries/config/etc/passwd b/tests/tests/cktools/pwck/30_pwck_NIS_entries/config/etc/passwd new file mode 100644 index 00000000..e5bbc071 --- /dev/null +++ b/tests/tests/cktools/pwck/30_pwck_NIS_entries/config/etc/passwd @@ -0,0 +1,23 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/tmp:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/tmp:/bin/sh +uucp:x:10:10:uucp:/tmp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/tmp:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/tmp:/bin/sh +irc:x:39:39:ircd:/tmp:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/tmp:/bin/sh +nobody:x:65534:65534:nobody:/tmp:/bin/sh +Debian-exim:x:102:102::/tmp:/bin/false +foo:x:1000:1000::/home:/bin/sh ++:::::: +-bar:::::: +foo:x:1001:1000::/home:/bin/sh diff --git a/tests/tests/cktools/pwck/30_pwck_NIS_entries/config/etc/shadow b/tests/tests/cktools/pwck/30_pwck_NIS_entries/config/etc/shadow new file mode 100644 index 00000000..d3c07656 --- /dev/null +++ b/tests/tests/cktools/pwck/30_pwck_NIS_entries/config/etc/shadow @@ -0,0 +1,23 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:99997:0:99999:7::: ++:::::::: +-bar:::::::: +Debian-exim:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/pwck/30_pwck_NIS_entries/data/pwck.out b/tests/tests/cktools/pwck/30_pwck_NIS_entries/data/pwck.out new file mode 100644 index 00000000..56dce35c --- /dev/null +++ b/tests/tests/cktools/pwck/30_pwck_NIS_entries/data/pwck.out @@ -0,0 +1,10 @@ +duplicate password entry +delete line 'foo:x:1000:1000::/home:/bin/sh'? No +duplicate password entry +delete line 'foo:x:1001:1000::/home:/bin/sh'? No +duplicate shadow password entry +delete line 'Debian-exim:!:12977:0:99999:7:::'? No +user foo: last password change in the future +duplicate shadow password entry +delete line 'Debian-exim:!:12977:0:99999:7:::'? No +pwck: no changes diff --git a/tests/tests/cktools/pwck/30_pwck_NIS_entries/pwck.test b/tests/tests/cktools/pwck/30_pwck_NIS_entries/pwck.test new file mode 100755 index 00000000..733fa94e --- /dev/null +++ b/tests/tests/cktools/pwck/30_pwck_NIS_entries/pwck.test @@ -0,0 +1,54 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "pwck ignores NIS lines silently" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "Check user database (pwck -r)..." +pwck -r >tmp/pwck.out && exit 1 || { + status=$? +} +echo "OK" + +echo -n "Check returned status ($status)..." +test "$status" = "2" +echo "OK" + +echo "pwck reported:" +echo "=======================================================================" +cat tmp/pwck.out +echo "=======================================================================" +echo -n "Check the report..." +diff -au data/pwck.out tmp/pwck.out +echo "report OK." +rm -f tmp/pwck.out + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/pwck/31_pwck_shadow_entry_passwd_no_x/config.txt b/tests/tests/cktools/pwck/31_pwck_shadow_entry_passwd_no_x/config.txt new file mode 100644 index 00000000..31f56359 --- /dev/null +++ b/tests/tests/cktools/pwck/31_pwck_shadow_entry_passwd_no_x/config.txt @@ -0,0 +1,10 @@ +# no testsuite password +# root password: rootF00barbaz +# myuser password: myuserF00barbaz + +user foo, in group users (only in /etc/group) +user foo, in group tty (only in /etc/gshadow) +user foo, in group floppy +user foo, admin of group disk +user foo, admin and member of group fax +user foo, admin and member of group cdrom (only in /etc/gshadow) diff --git a/tests/tests/cktools/pwck/31_pwck_shadow_entry_passwd_no_x/config/etc/group b/tests/tests/cktools/pwck/31_pwck_shadow_entry_passwd_no_x/config/etc/group new file mode 100644 index 00000000..fecba0c4 --- /dev/null +++ b/tests/tests/cktools/pwck/31_pwck_shadow_entry_passwd_no_x/config/etc/group @@ -0,0 +1,42 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: +foo:x:1000: diff --git a/tests/tests/cktools/pwck/31_pwck_shadow_entry_passwd_no_x/config/etc/gshadow b/tests/tests/cktools/pwck/31_pwck_shadow_entry_passwd_no_x/config/etc/gshadow new file mode 100644 index 00000000..be1575eb --- /dev/null +++ b/tests/tests/cktools/pwck/31_pwck_shadow_entry_passwd_no_x/config/etc/gshadow @@ -0,0 +1,42 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: +foo:x:: diff --git a/tests/tests/cktools/pwck/31_pwck_shadow_entry_passwd_no_x/config/etc/passwd b/tests/tests/cktools/pwck/31_pwck_shadow_entry_passwd_no_x/config/etc/passwd new file mode 100644 index 00000000..fbeb96c2 --- /dev/null +++ b/tests/tests/cktools/pwck/31_pwck_shadow_entry_passwd_no_x/config/etc/passwd @@ -0,0 +1,20 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/tmp:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/tmp:/bin/sh +uucp:x:10:10:uucp:/tmp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/tmp:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/tmp:/bin/sh +irc:x:39:39:ircd:/tmp:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/tmp:/bin/sh +nobody:x:65534:65534:nobody:/tmp:/bin/sh +Debian-exim:x:102:102::/tmp:/bin/false +foo:pass:1000:1000::/home:/bin/sh diff --git a/tests/tests/cktools/pwck/31_pwck_shadow_entry_passwd_no_x/config/etc/shadow b/tests/tests/cktools/pwck/31_pwck_shadow_entry_passwd_no_x/config/etc/shadow new file mode 100644 index 00000000..2baad3b4 --- /dev/null +++ b/tests/tests/cktools/pwck/31_pwck_shadow_entry_passwd_no_x/config/etc/shadow @@ -0,0 +1,20 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: +foo:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/pwck/31_pwck_shadow_entry_passwd_no_x/data/pwck.out b/tests/tests/cktools/pwck/31_pwck_shadow_entry_passwd_no_x/data/pwck.out new file mode 100644 index 00000000..5cedc7c3 --- /dev/null +++ b/tests/tests/cktools/pwck/31_pwck_shadow_entry_passwd_no_x/data/pwck.out @@ -0,0 +1,2 @@ +user foo has an entry in /etc/shadow, but its password field in /etc/passwd is not set to 'x' +pwck: no changes diff --git a/tests/tests/cktools/pwck/31_pwck_shadow_entry_passwd_no_x/pwck.test b/tests/tests/cktools/pwck/31_pwck_shadow_entry_passwd_no_x/pwck.test new file mode 100755 index 00000000..4c5b1f5f --- /dev/null +++ b/tests/tests/cktools/pwck/31_pwck_shadow_entry_passwd_no_x/pwck.test @@ -0,0 +1,54 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "pwck checks that the password is set to x if there is a shadow entry" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "Check user database (pwck -r)..." +pwck -r >tmp/pwck.out && exit 1 || { + status=$? +} +echo "OK" + +echo -n "Check returned status ($status)..." +test "$status" = "2" +echo "OK" + +echo "pwck reported:" +echo "=======================================================================" +cat tmp/pwck.out +echo "=======================================================================" +echo -n "Check the report..." +diff -au data/pwck.out tmp/pwck.out +echo "report OK." +rm -f tmp/pwck.out + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cktools/pwck/32_pwck_quiet/config.txt b/tests/tests/cktools/pwck/32_pwck_quiet/config.txt new file mode 100644 index 00000000..31f56359 --- /dev/null +++ b/tests/tests/cktools/pwck/32_pwck_quiet/config.txt @@ -0,0 +1,10 @@ +# no testsuite password +# root password: rootF00barbaz +# myuser password: myuserF00barbaz + +user foo, in group users (only in /etc/group) +user foo, in group tty (only in /etc/gshadow) +user foo, in group floppy +user foo, admin of group disk +user foo, admin and member of group fax +user foo, admin and member of group cdrom (only in /etc/gshadow) diff --git a/tests/tests/cktools/pwck/32_pwck_quiet/config/etc/group b/tests/tests/cktools/pwck/32_pwck_quiet/config/etc/group new file mode 100644 index 00000000..10123908 --- /dev/null +++ b/tests/tests/cktools/pwck/32_pwck_quiet/config/etc/group @@ -0,0 +1,41 @@ +root:x:0: +daemon:x:1: +bin:x:2: +sys:x:3: +adm:x:4: +tty:x:5: +disk:x:6: +lp:x:7: +mail:x:8: +news:x:9: +uucp:x:10: +man:x:12: +proxy:x:13: +kmem:x:15: +dialout:x:20: +fax:x:21: +voice:x:22: +cdrom:x:24: +floppy:x:25: +tape:x:26: +sudo:x:27: +audio:x:29: +dip:x:30: +www-data:x:33: +backup:x:34: +operator:x:37: +list:x:38: +irc:x:39: +src:x:40: +gnats:x:41: +shadow:x:42: +utmp:x:43: +video:x:44: +sasl:x:45: +plugdev:x:46: +staff:x:50: +games:x:60: +users:x:100: +nogroup:x:65534: +crontab:x:101: +Debian-exim:x:102: diff --git a/tests/tests/cktools/pwck/32_pwck_quiet/config/etc/gshadow b/tests/tests/cktools/pwck/32_pwck_quiet/config/etc/gshadow new file mode 100644 index 00000000..ae424865 --- /dev/null +++ b/tests/tests/cktools/pwck/32_pwck_quiet/config/etc/gshadow @@ -0,0 +1,41 @@ +root:*:: +daemon:*:: +bin:*:: +sys:*:: +adm:*:: +tty:*:: +disk:*:: +lp:*:: +mail:*:: +news:*:: +uucp:*:: +man:*:: +proxy:*:: +kmem:*:: +dialout:*:: +fax:*:: +voice:*:: +cdrom:*:: +floppy:*:: +tape:*:: +sudo:*:: +audio:*:: +dip:*:: +www-data:*:: +backup:*:: +operator:*:: +list:*:: +irc:*:: +src:*:: +gnats:*:: +shadow:*:: +utmp:*:: +video:*:: +sasl:*:: +plugdev:*:: +staff:*:: +games:*:: +users:*:: +nogroup:*:: +crontab:x:: +Debian-exim:x:: diff --git a/tests/tests/cktools/pwck/32_pwck_quiet/config/etc/passwd b/tests/tests/cktools/pwck/32_pwck_quiet/config/etc/passwd new file mode 100644 index 00000000..4491abe7 --- /dev/null +++ b/tests/tests/cktools/pwck/32_pwck_quiet/config/etc/passwd @@ -0,0 +1,22 @@ +root:x:0:0:root:/root:/bin/bash +daemon:x:1:1:daemon:/usr/sbin:/bin/sh +bin:x:2:2:bin:/bin:/bin/sh +sys:x:3:3:sys:/dev:/bin/sh +sync:x:4:65534:sync:/bin:/bin/sync +games:x:5:60:games:/usr/games:/bin/sh +man:x:6:12:man:/var/cache/man:/bin/sh +lp:x:7:7:lp:/var/spool/lpd:/bin/sh +mail:x:8:8:mail:/var/mail:/bin/sh +news:x:9:9:news:/var/spool/news:/bin/sh +uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh +proxy:x:13:13:proxy:/bin:/bin/sh +www-data:x:33:33:www-data:/var/www:/bin/sh +backup:x:34:34:backup:/var/backups:/bin/sh +list:x:38:38:Mailing List Manager:/var/list:/bin/sh +irc:x:39:39:ircd:/var/run/ircd:/bin/sh +gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh +nobody:x:65534:65534:nobody:/nonexistent:/bin/sh +Debian-exim:x:102:102::/var/spool/exim4:/bin/false +Debian-exim:x:103:102::/var/spool/exim4:/bin/false +Debian-exim2:x:104:103::/var/spool/exim4:/bin/false +Debian-exim3:x:102:103::/var/spool/exim4:/bin/false diff --git a/tests/tests/cktools/pwck/32_pwck_quiet/config/etc/shadow b/tests/tests/cktools/pwck/32_pwck_quiet/config/etc/shadow new file mode 100644 index 00000000..5f50d187 --- /dev/null +++ b/tests/tests/cktools/pwck/32_pwck_quiet/config/etc/shadow @@ -0,0 +1,19 @@ +root:$1$NBLBLIXb$WUgojj1bNuxWEADQGt1m9.:12991:0:99999:7::: +daemon:*:12977:0:99999:7::: +bin:*:12977:0:99999:7::: +sys:*:12977:0:99999:7::: +sync:*:12977:0:99999:7::: +games:*:12977:0:99999:7::: +man:*:12977:0:99999:7::: +lp:*:12977:0:99999:7::: +mail:*:12977:0:99999:7::: +news:*:12977:0:99999:7::: +uucp:*:12977:0:99999:7::: +proxy:*:12977:0:99999:7::: +www-data:*:12977:0:99999:7::: +backup:*:12977:0:99999:7::: +list:*:12977:0:99999:7::: +irc:*:12977:0:99999:7::: +gnats:*:12977:0:99999:7::: +nobody:*:12977:0:99999:7::: +Debian-exim:!:12977:0:99999:7::: diff --git a/tests/tests/cktools/pwck/32_pwck_quiet/data/pwck.out b/tests/tests/cktools/pwck/32_pwck_quiet/data/pwck.out new file mode 100644 index 00000000..c9a8c2c5 --- /dev/null +++ b/tests/tests/cktools/pwck/32_pwck_quiet/data/pwck.out @@ -0,0 +1,9 @@ +duplicate password entry +delete line 'Debian-exim:x:102:102::/var/spool/exim4:/bin/false'? No +duplicate password entry +delete line 'Debian-exim:x:103:102::/var/spool/exim4:/bin/false'? No +no matching password file entry in /etc/shadow +add user 'Debian-exim2' in /etc/shadow? No +no matching password file entry in /etc/shadow +add user 'Debian-exim3' in /etc/shadow? No +pwck: no changes diff --git a/tests/tests/cktools/pwck/32_pwck_quiet/pwck.test b/tests/tests/cktools/pwck/32_pwck_quiet/pwck.test new file mode 100755 index 00000000..c8a8b8ed --- /dev/null +++ b/tests/tests/cktools/pwck/32_pwck_quiet/pwck.test @@ -0,0 +1,54 @@ +#!/bin/sh + +set -e + +cd $(dirname $0) + +. ../../../common/config.sh +. ../../../common/log.sh + +log_start "$0" "pwck can display its usage message" + +save_config + +# restore the files on exit +trap 'log_status "$0" "FAILURE"; restore_config' 0 + +change_config + +echo -n "Get pwck usage (pwck -q -r)..." +pwck -q -r >tmp/pwck.out && exit 1 || { + status=$? +} +echo "OK" + +echo -n "Check returned status ($status)..." +test "$status" = "2" +echo "OK" + +echo "pwck reported:" +echo "=======================================================================" +cat tmp/pwck.out +echo "=======================================================================" +echo -n "Check the report..." +diff -au data/pwck.out tmp/pwck.out +echo "report OK." +rm -f tmp/pwck.out + +echo -n "Check the passwd file..." +../../../common/compare_file.pl config/etc/passwd /etc/passwd +echo "OK" +echo -n "Check the group file..." +../../../common/compare_file.pl config/etc/group /etc/group +echo "OK" +echo -n "Check the shadow file..." +../../../common/compare_file.pl config/etc/shadow /etc/shadow +echo "OK" +echo -n "Check the gshadow file..." +../../../common/compare_file.pl config/etc/gshadow /etc/gshadow +echo "OK" + +log_status "$0" "SUCCESS" +restore_config +trap '' 0 + diff --git a/tests/tests/cleanup.sh b/tests/tests/cleanup.sh new file mode 100755 index 00000000..26b1b27a --- /dev/null +++ b/tests/tests/cleanup.sh @@ -0,0 +1,33 @@ +#!/bin/sh + +for t in * +do + if [ ! -d $t/data ]; then continue; fi + for i in passwd group shadow gshadow + do + if [ -f $t/data/$i ] + then + if cmp -s $t/config/etc/$i $t/data/$i + then + echo "# $t/data/$i identical to config" + svn rm "$t/data/$i" + fi + fi + done +done + +for t in * +do + cd $t + if [ ! -d data ]; then cd ..; continue; fi + for i in data/* + do + if [ ! -f $i ]; then continue; fi + if ! grep -q $i *.test + then + echo "# $t/$i not used" + svn rm "$i" + fi + done + cd .. +done diff --git a/tests/tests/common/Makefile b/tests/tests/common/Makefile new file mode 100644 index 00000000..4ee04dd7 --- /dev/null +++ b/tests/tests/common/Makefile @@ -0,0 +1,14 @@ +all: \ + fopen_failure.so \ + link_failure.so \ + open_RDONLY_failure.so \ + open_RDWR_failure.so \ + rename_failure.so \ + rmdir_failure.so \ + time_0.so \ + time_past.so \ + unlink_failure.so \ + unlinkat_failure.so + +%.so: %.c + gcc -W -Wall -pedantic -g $< -shared -ldl -o $@ diff --git a/tests/tests/common/compare_file.pl b/tests/tests/common/compare_file.pl new file mode 100755 index 00000000..eb498d32 --- /dev/null +++ b/tests/tests/common/compare_file.pl @@ -0,0 +1,116 @@ +#!/usr/bin/perl + +open (TEMPLATE, $ARGV[0]) or die "Cannot open '".$ARGV[0]."': $!"; +my $template = join "",