qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH v3 3/7] fixup! qga: add ssh-{add,remove}-authorized-keys


From: marcandre . lureau
Subject: [PATCH v3 3/7] fixup! qga: add ssh-{add,remove}-authorized-keys
Date: Tue, 20 Oct 2020 12:12:53 +0400

From: Marc-André Lureau <marcandre.lureau@redhat.com>

I forgot to reset the file ownership after it is written.
---
 qga/commands-posix-ssh.c | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/qga/commands-posix-ssh.c b/qga/commands-posix-ssh.c
index d41c114c3c..a7bc9a1c24 100644
--- a/qga/commands-posix-ssh.c
+++ b/qga/commands-posix-ssh.c
@@ -120,7 +120,8 @@ check_openssh_pub_keys(strList *keys, size_t *nkeys, Error 
**errp)
 }
 
 static bool
-write_authkeys(const char *path, const GStrv keys, Error **errp)
+write_authkeys(const char *path, const GStrv keys,
+               const struct passwd *p, Error **errp)
 {
     g_autofree char *contents = NULL;
     g_autoptr(GError) err = NULL;
@@ -133,6 +134,12 @@ write_authkeys(const char *path, const GStrv keys, Error 
**errp)
         return false;
     }
 
+    if (chown(path, p->pw_uid, p->pw_gid) == -1) {
+        error_setg(errp, "failed to set ownership of directory '%s': %s",
+                   path, g_strerror(errno));
+        return false;
+    }
+
     if (chmod(path, 0600) == -1) {
         error_setg(errp, "failed to set permissions of '%s': %s",
                    path, g_strerror(errno));
@@ -203,7 +210,7 @@ qmp_guest_ssh_add_authorized_keys(const char *username, 
strList *keys,
         authkeys[nauthkeys++] = g_strdup(k->value);
     }
 
-    write_authkeys(authkeys_path, authkeys, errp);
+    write_authkeys(authkeys_path, authkeys, p, errp);
 }
 
 void
@@ -254,7 +261,7 @@ qmp_guest_ssh_remove_authorized_keys(const char *username, 
strList *keys,
         new_keys[nkeys++] = *a;
     }
 
-    write_authkeys(authkeys_path, new_keys, errp);
+    write_authkeys(authkeys_path, new_keys, p, errp);
 }
 
 
-- 
2.28.0




reply via email to

[Prev in Thread] Current Thread [Next in Thread]