diff options
author | Daniel Kahn Gillmor <dkg@fifthhorseman.net> | 2009-07-24 11:08:05 -0400 |
---|---|---|
committer | Daniel Kahn Gillmor <dkg@fifthhorseman.net> | 2009-07-24 11:08:05 -0400 |
commit | 72721ebd269341e82b8e477d78a7f041d3639129 (patch) | |
tree | 88d73bbd44c7c1c4ea95e2353daa596b2b38d284 /src/share/common | |
parent | 1472a139953e68630cc0e409872fb4eaf69fff7f (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/common | 5 |
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 |