Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12-SP4:Update
openssh-testuser.26950
openssh-7.9p1-keygen-preserve-perms.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File openssh-7.9p1-keygen-preserve-perms.patch of Package openssh-testuser.26950
From 1409e3f8e1a7435390edbaba533391989553969a Mon Sep 17 00:00:00 2001 From: Hans Petter Jansson <hpj@suse.com> Date: Wed, 26 Oct 2022 10:00:50 +0200 Subject: [PATCH] openssh-7.9p1-keygen-preserve-perms commit 07ffb49749c310b82e44278ae05e081d6f4a82bf Author: Hans Petter Jansson <hpj@cl.no> Date: Fri Sep 27 01:57:16 2019 +0200 ssh-keygen: Preserve known_hosts permissions on rewrite Transfer the permissions of the old known_hosts file instead of just going with what mkstemp() gives us. This is useful in corner cases where known_hosts is shared between users. --- ssh-keygen.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/ssh-keygen.c b/ssh-keygen.c index fc252d74..53186982 100644 --- a/ssh-keygen.c +++ b/ssh-keygen.c @@ -1274,6 +1274,11 @@ do_known_hosts(struct passwd *pw, const char *name) if (inplace) unlink(tmp); } else if (inplace) { + struct stat st; + + /* Get metadata for existing file */ + r = stat(identity_file, &st); + /* Backup existing file */ if (unlink(old) == -1 && errno != ENOENT) fatal("unlink %.100s: %s", old, strerror(errno)); @@ -1288,6 +1293,12 @@ do_known_hosts(struct passwd *pw, const char *name) unlink(old); exit(1); } + /* Preserve permissions; non-critical */ + if (r != -1) + r = chown(identity_file, st.st_uid, st.st_gid); + if (r != -1) + chmod(identity_file, + st.st_mode & (S_IRWXU | S_IRWXG | S_IRWXO)); printf("%s updated.\n", identity_file); printf("Original contents retained as %s\n", old); -- 2.38.0
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor