diff options
author | Werner Koch <[email protected]> | 2004-02-03 16:38:07 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2004-02-03 16:38:07 +0000 |
commit | 6788ede345957d93cff7827936a98a53dc7f74cc (patch) | |
tree | 95858c9d106bc9a434dcd9acf6c5126a73461fdb /tools/addgnupghome | |
parent | * import.c (check_and_store): Import certificates even with (diff) | |
download | gnupg-6788ede345957d93cff7827936a98a53dc7f74cc.tar.gz gnupg-6788ede345957d93cff7827936a98a53dc7f74cc.zip |
Try to use getent, so that it also works for NIS
setups.
Diffstat (limited to 'tools/addgnupghome')
-rwxr-xr-x | tools/addgnupghome | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/tools/addgnupghome b/tools/addgnupghome index d237a0b42..37a427bf2 100755 --- a/tools/addgnupghome +++ b/tools/addgnupghome @@ -14,6 +14,7 @@ PGM=addgnupghome any_error=0 + error () { echo "$PGM: $*" >&2 any_error=1 @@ -26,9 +27,9 @@ info () { # Do it for one user one_user () { user="$1" - home=$(awk -F: -v n="$user" '$1 == n {print $6}' /etc/passwd ) + home=$(${cat_passwd} | awk -F: -v n="$user" '$1 == n {print $6}') if [ -z "$home" ]; then - if awk -F: -v n="$user" '$1 == n {exit 1}' /etc/passwd; then + if ${cat_passwd} | awk -F: -v n="$user" '$1 == n {exit 1}'; then error "no such user \`$user'" else error "no home directory for user \`$user'" @@ -93,6 +94,14 @@ if [ -z "$1" ]; then exit 1 fi +# Check whether we can use getent +if getent --help </dev/null >/dev/null 2>&1 ; then + cat_passwd='getent passwd' +else + cat_passwd='cat /etc/passwd' + info "please note that only users from /etc/passwd are checked" +fi + if [ ! -d /etc/skel/.gnupg ]; then error "skeleton directory \`/etc/skel/.gnupg' does not exist" exit 1 @@ -101,7 +110,6 @@ cd "/etc/skel/.gnupg" || (error "error cd-ing to \`/etc/skel/.gnupg'"; exit 1) filelist=$(find . \( -type f -or -type d \) -not -name '*~' -not -name . -print) - if ! umask 0077 ; then error "error setting umask" exit 1 |