From 38a885776cbab05dba38f8b1a400f73391892026 Mon Sep 17 00:00:00 2001 From: Marcus Sorensen Date: Wed, 26 Sep 2012 14:03:12 -0700 Subject: [PATCH] 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 --- .../kvm/resource/LibvirtComputingResource.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java index aadd6ddda27..22b149f5323 100755 --- a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java +++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java @@ -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);