all lists on lists.proxmox.com
 help / color / mirror / Atom feed
From: Christian Ebner <c.ebner@proxmox.com>
To: pbs-devel@lists.proxmox.com
Subject: [pbs-devel] [PATCH v9 proxmox-backup 3/9] chunk store: set file ownership on chunk insert as root user
Date: Sat,  5 Apr 2025 11:05:06 +0200	[thread overview]
Message-ID: <20250405090512.165609-4-c.ebner@proxmox.com> (raw)
In-Reply-To: <20250405090512.165609-1-c.ebner@proxmox.com>

Inserting a new chunk into the chunk store as process running with
root priviledger currently does not set an explicit ownership on the
chunk file. As a consequence this will lead to permission issues if
the chunk is operated on by a codepath executed in the less
privileged proxy task running as `backup` user.

Therefore, explicitly set the ownership and permissions of the chunk
file upon insert, if the process is executed as `root` user.

Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
---
changes since version 8:
- not present in previous version

 pbs-datastore/src/chunk_store.rs | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/pbs-datastore/src/chunk_store.rs b/pbs-datastore/src/chunk_store.rs
index dc267d752..af42c9e5f 100644
--- a/pbs-datastore/src/chunk_store.rs
+++ b/pbs-datastore/src/chunk_store.rs
@@ -503,10 +503,16 @@ impl ChunkStore {
             .parent()
             .ok_or_else(|| format_err!("unable to get chunk dir"))?;
 
+        let mut create_options = CreateOptions::new();
+        if nix::unistd::Uid::effective().is_root() {
+            let uid = pbs_config::backup_user()?.uid;
+            let gid = pbs_config::backup_group()?.gid;
+            create_options = create_options.owner(uid).group(gid);
+        }
         proxmox_sys::fs::replace_file(
             &chunk_path,
             raw_data,
-            CreateOptions::new(),
+            create_options,
             self.sync_level == DatastoreFSyncLevel::File,
         )
         .map_err(|err| {
-- 
2.39.5



_______________________________________________
pbs-devel mailing list
pbs-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel


  parent reply	other threads:[~2025-04-05  9:05 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-04-05  9:05 [pbs-devel] [PATCH v9 proxmox 0/9] fix #5982: check atime update is honored Christian Ebner
2025-04-05  9:05 ` [pbs-devel] [PATCH v9 proxmox 1/9] pbs api types: add garbage collection atime safety check flag Christian Ebner
2025-04-05  9:05 ` [pbs-devel] [PATCH v9 proxmox 2/9] pbs api types: add option to set GC chunk cleanup atime cutoff Christian Ebner
2025-04-05  9:05 ` Christian Ebner [this message]
2025-04-05  9:05 ` [pbs-devel] [PATCH v9 proxmox-backup 4/9] fix #5982: garbage collection: check atime updates are honored Christian Ebner
2025-04-05  9:05 ` [pbs-devel] [PATCH v9 proxmox-backup 5/9] ui: expose GC atime safety check flag in datastore tuning options Christian Ebner
2025-04-05  9:05 ` [pbs-devel] [PATCH v9 proxmox-backup 6/9] docs: mention GC atime update check for " Christian Ebner
2025-04-05  9:05 ` [pbs-devel] [PATCH v9 proxmox-backup 7/9] datastore: use custom GC atime cutoff if set Christian Ebner
2025-04-05  9:05 ` [pbs-devel] [PATCH v9 proxmox-backup 8/9] ui: expose GC atime cutoff in datastore tuning option Christian Ebner
2025-04-05  9:05 ` [pbs-devel] [PATCH v9 proxmox-backup 9/9] docs: mention gc-atime-cutoff as " Christian Ebner
2025-04-05 17:12 ` [pbs-devel] applied-series: [PATCH v9 proxmox 0/9] fix #5982: check atime update is honored Thomas Lamprecht

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250405090512.165609-4-c.ebner@proxmox.com \
    --to=c.ebner@proxmox.com \
    --cc=pbs-devel@lists.proxmox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal