diff options
author | Valerij Fredriksen <valerijf@yahooinc.com> | 2022-04-19 16:43:29 +0200 |
---|---|---|
committer | Valerij Fredriksen <valerijf@yahooinc.com> | 2022-04-19 16:43:29 +0200 |
commit | e1e66ee5979c41aadf27fa6bc15fd07f9383c254 (patch) | |
tree | 5ded4643ea6ec12bd6b326eb408a9b30510907df /node-admin | |
parent | 228b5c7146255f95b80e4a233948acb316718b81 (diff) |
Chown/chmod existing files
Diffstat (limited to 'node-admin')
-rw-r--r-- | node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java index 61e777a9576..454dafb2384 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java @@ -27,6 +27,8 @@ import com.yahoo.vespa.hosted.node.admin.maintenance.acl.AclMaintainer; import com.yahoo.vespa.hosted.node.admin.maintenance.identity.CredentialsMaintainer; import com.yahoo.vespa.hosted.node.admin.maintenance.servicedump.VespaServiceDumper; import com.yahoo.vespa.hosted.node.admin.nodeadmin.ConvergenceException; +import com.yahoo.vespa.hosted.node.admin.task.util.file.FileFinder; +import com.yahoo.vespa.hosted.node.admin.task.util.file.UnixPath; import java.time.Clock; import java.time.Duration; @@ -137,6 +139,30 @@ public class NodeAgentImpl implements NodeAgent { if (loopThread != null) throw new IllegalStateException("Can not re-start a node agent."); + // TODO: Remove after this has rolled out everywhere + int[] stats = new int[]{0, 0, 0}; + FileFinder.files(initialContext.paths().underVespaHome("")).forEachPath(path -> { + UnixPath unixPath = new UnixPath(path); + + String permissions = unixPath.getPermissions(); + if (!permissions.endsWith("---")) { + unixPath.setPermissions(permissions.substring(0, 6) + "---"); + stats[0]++; + } + + if (unixPath.getOwnerId() != initialContext.users().vespa().uid()) { + unixPath.setOwnerId(initialContext.users().vespa().uid()); + stats[1]++; + } + + if (unixPath.getGroupId() != initialContext.users().vespa().gid()) { + unixPath.setGroupId(initialContext.users().vespa().gid()); + stats[2]++; + } + }); + if (stats[0] + stats[1] + stats[2] > 0) + initialContext.log(logger, "chmod %d, chown UID %d, chown GID %d files", stats[0], stats[1], stats[2]); + loopThread = new Thread(() -> { while (!terminated.get()) { try { |