From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id E622469EFF for ; Thu, 25 Feb 2021 12:30:29 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id D9C9A33B49 for ; Thu, 25 Feb 2021 12:29:59 +0100 (CET) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [212.186.127.180]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by firstgate.proxmox.com (Proxmox) with ESMTPS id 5133033B3C for ; Thu, 25 Feb 2021 12:29:59 +0100 (CET) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id 1451341CCB for ; Thu, 25 Feb 2021 12:29:59 +0100 (CET) Message-ID: Date: Thu, 25 Feb 2021 12:29:58 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:86.0) Gecko/20100101 Thunderbird/86.0 Content-Language: en-US To: Proxmox VE development discussion , Oguz Bektas References: <20210223145442.1069341-1-o.bektas@proxmox.com> From: Thomas Lamprecht In-Reply-To: <20210223145442.1069341-1-o.bektas@proxmox.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-SPAM-LEVEL: Spam detection results: 0 AWL -0.054 Adjusted score from AWL reputation of From: address KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment NICE_REPLY_A -0.001 Looks like a legit reply (A) 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 Subject: Re: [pve-devel] [PATCH v3 container] fix #3313: recover unprivileged bit from old config during pct restore X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Feb 2021 11:30:29 -0000 On 23.02.21 15:54, Oguz Bektas wrote: > since pct defaults to privileged containers, it restores the container > as privileged when `--unprivileged 1` is not passed. > > instead we should check the old configuration and retrieve it > from there. > > this way, when one creates an unprivileged container on GUI, it will be > still restored as unprivileged via pct (without having to pass > `--unprivileged 1` parameter) > > note: $orig_mp_param assignment is not guarded by $is_root anymore, but > this should still be okay since we do a second recover_config() call on > the archive file if $orig_mp_param is used > misses noting the effect of the $is_root change, namely that templates are now restored as such (i.e., actually another bug) Late in the review, I know and if the commit message would had mentioned this I would ignore it and push it out nonetheless, but as that was not mentioned, lets actually split it up into two patches: Fix restoring templates in the first and then just adding the conditional unprivileged setting in the second. thanks! > Reviewed-by: Fabian Ebner > Tested-by: Fabian Ebner > Signed-off-by: Oguz Bektas > --- > > thanks fabi for testing and reviewing! > > v2->v3: > * remove comment > * wrap post-if according to style guide > > > src/PVE/API2/LXC.pm | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/src/PVE/API2/LXC.pm b/src/PVE/API2/LXC.pm > index 8ce462f..df0cc88 100644 > --- a/src/PVE/API2/LXC.pm > +++ b/src/PVE/API2/LXC.pm > @@ -352,7 +352,7 @@ __PACKAGE__->register_method({ > my $orig_mp_param; # only used if $restore > if ($restore) { > die "can't overwrite running container\n" if PVE::LXC::check_running($vmid); > - if ($is_root && $archive ne '-') { > + if ($archive ne '-') { > my $orig_conf; > print "recovering backed-up configuration from '$archive'\n"; > ($orig_conf, $orig_mp_param) = PVE::LXC::Create::recover_config($storage_cfg, $archive, $vmid); > @@ -361,7 +361,10 @@ __PACKAGE__->register_method({ > # causing it to restore the raw lxc entries, among which there may be > # 'lxc.idmap' entries. We need to make sure that the extracted contents > # of the container match up with the restored configuration afterwards: > - $conf->{lxc} = $orig_conf->{lxc}; > + $conf->{lxc} = $orig_conf->{lxc} if $is_root; > + > + $conf->{unprivileged} = $orig_conf->{unprivileged} > + if !defined($unprivileged) && defined($orig_conf->{unprivileged}); > } > } > if ($storage_only_mode) { >