summaryrefslogtreecommitdiff
path: root/src/share/common
diff options
context:
space:
mode:
authorDaniel Kahn Gillmor <dkg@fifthhorseman.net>2009-07-24 11:08:05 -0400
committerDaniel Kahn Gillmor <dkg@fifthhorseman.net>2009-07-24 11:08:05 -0400
commit72721ebd269341e82b8e477d78a7f041d3639129 (patch)
tree88d73bbd44c7c1c4ea95e2353daa596b2b38d284 /src/share/common
parent1472a139953e68630cc0e409872fb4eaf69fff7f (diff)
only touch the known_hosts file if it does not exist, and create the parent directory if it does not exist.
if more than one level of enclosing directory does not exist, this will fail cryptically.
Diffstat (limited to 'src/share/common')
-rw-r--r--src/share/common5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/share/common b/src/share/common
index 8e2232d..c10e71b 100644
--- a/src/share/common
+++ b/src/share/common
@@ -896,7 +896,10 @@ update_known_hosts() {
# touch the known_hosts file so that the file permission check
# below won't fail upon not finding the file
- (umask 0022 && touch "$KNOWN_HOSTS")
+ if [ ! -f "$KNOWN_HOSTS" ]; then
+ [ -d $(dirname "$KNOWN_HOSTS") ] || mkdir -m 0700 $(dirname "$KNOWN_HOSTS")
+ touch "$KNOWN_HOSTS"
+ fi
# check permissions on the known_hosts file path
check_key_file_permissions $(whoami) "$KNOWN_HOSTS" || failure