aboutsummaryrefslogtreecommitdiffstats
path: root/tools/addgnupghome
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2004-02-03 16:38:07 +0000
committerWerner Koch <[email protected]>2004-02-03 16:38:07 +0000
commit6788ede345957d93cff7827936a98a53dc7f74cc (patch)
tree95858c9d106bc9a434dcd9acf6c5126a73461fdb /tools/addgnupghome
parent* import.c (check_and_store): Import certificates even with (diff)
downloadgnupg-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-xtools/addgnupghome14
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