fix /root/.ssh directory creation for KVM

Since /root is r-x permissions, Java fails to mkdir /root/.ssh (even
though the agent is running as root) because it looks for the writable
permission. This patch modifies the 'chmod 700 /root/.ssh' shell command
that we already use into 'mkdir -m 700 /root/.ssh', to be able to create
the directory as root even though write permissions are not set on
/root. This seemed cleaner/safer than adding writable to /root.

Signed-off-by: Edison Su <sudison@gmail.com>
This commit is contained in:
Marcus Sorensen 2012-09-26 14:03:12 -07:00 committed by Edison Su
parent a95a9dc07c
commit 38a885776c
1 changed files with 7 additions and 3 deletions

View File

@ -2628,11 +2628,15 @@ public class LibvirtComputingResource extends ServerResourceBase implements
File sshKeysDir = new File(_SSHKEYSPATH);
String result = null;
if (!sshKeysDir.exists()) {
sshKeysDir.mkdir();
// Change permissions for the 700
Script script = new Script("chmod", _timeout, s_logger);
script.add("700", _SSHKEYSPATH);
Script script = new Script("mkdir", _timeout, s_logger);
script.add("-m","700");
script.add(_SSHKEYSPATH);
script.execute();
if(!sshKeysDir.exists()) {
s_logger.debug("failed to create directory " + _SSHKEYSPATH);
}
}
File pubKeyFile = new File(_SSHPUBKEYPATH);