From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gate001.proxmox.com (gate001.proxmox.com [45.144.208.40]) by lore.proxmox.com (Postfix) with ESMTPS id 231AF1FF09B for ; Mon, 12 Oct 2026 12:46:59 +0200 (CEST) Received: from gate001.proxmox.com (localhost.localdomain [127.0.0.1]) by gate001.proxmox.com (Proxmox) with ESMTP id D055421457; Mon, 12 Oct 2026 12:46:55 +0200 (CEST) From: Kefu Chai To: pve-devel@lists.proxmox.com Subject: [PATCH manager] ceph: create service and bootstrap keyrings with mode 0600 Date: Mon, 12 Oct 2026 18:46:42 +0800 Message-ID: <20261012104642.1046894-1-k.chai@proxmox.com> X-Mailer: git-send-email 2.47.3 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1791802006233 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.123 Adjusted score from AWL reputation of From: address DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment (newer systems) KAM_NUMSUBJECT 0.5 Subject ends in numbers excluding current years RCVD_IN_DNSWL_MED -2.3 Sender listed at https://www.dnswl.org/, medium trust SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Message-ID-Hash: XBE7CSGVAFZJR2632D3TJOUFO5WDVG3Y X-Message-ID-Hash: XBE7CSGVAFZJR2632D3TJOUFO5WDVG3Y X-MailFrom: k.chai@proxmox.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Proxmox VE development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: The keyrings for a new MDS, manager and client.bootstrap-osd are written without a mode and end up 0644. Whoever reads one gets that entity's caps: the MDS and manager keys can read and write every pool, the bootstrap key can register OSDs. Only the 0750 /var/lib/ceph keeps other users out. ceph-mon --mkfs was changed to 0600 for the same reason (Ceph tracker #14950), and ceph-authtool, cephadm and the cephx migration helper all write keyrings as 0600. The daemons own their keyrings after the chown, and ceph-volume reads the bootstrap keyring as root, so nothing loses access. Existing keyrings are not changed. Link: https://tracker.ceph.com/issues/14950 Signed-off-by: Kefu Chai --- PVE/API2/Ceph/OSD.pm | 2 +- PVE/Ceph/Services.pm | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/PVE/API2/Ceph/OSD.pm b/PVE/API2/Ceph/OSD.pm index c5c20140..7ff006d2 100644 --- a/PVE/API2/Ceph/OSD.pm +++ b/PVE/API2/Ceph/OSD.pm @@ -421,7 +421,7 @@ __PACKAGE__->register_method({ ], format => 'plain', }); - file_set_contents($ceph_bootstrap_osd_keyring, $bindata); + file_set_contents($ceph_bootstrap_osd_keyring, $bindata, 0600); } # $size is in kibibytes diff --git a/PVE/Ceph/Services.pm b/PVE/Ceph/Services.pm index 6c6bd7e2..10d27623 100644 --- a/PVE/Ceph/Services.pm +++ b/PVE/Ceph/Services.pm @@ -325,7 +325,7 @@ sub create_mds { format => 'plain', }); - PVE::Tools::file_set_contents($service_keyring, $output); + PVE::Tools::file_set_contents($service_keyring, $output, 0600); print "setting ceph as owner for service directory\n"; run_command(["chown", 'ceph:ceph', '-R', $service_dir]); @@ -401,7 +401,7 @@ sub create_mgr { ], format => 'plain', }); - PVE::Tools::file_set_contents($mgrkeyring, $output); + PVE::Tools::file_set_contents($mgrkeyring, $output, 0600); print "setting owner for directory\n"; run_command(["chown", 'ceph:ceph', '-R', $mgrdir]); -- 2.47.3