From nobody Tue Aug 29 17:02:22 2023 X-Original-To: current@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RZtyV5tsgz4s0Mr for ; Tue, 29 Aug 2023 17:02:26 +0000 (UTC) (envelope-from felix@palmen-it.de) Received: from stef.palmen-it.de (stef.palmen-it.de [IPv6:2001:470:1f0b:bbb:1::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4RZtyT6LWwz3fcy for ; Tue, 29 Aug 2023 17:02:25 +0000 (UTC) (envelope-from felix@palmen-it.de) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=palmen-it.de header.s=20200414 header.b=WT7FU+JH; spf=pass (mx1.freebsd.org: domain of felix@palmen-it.de designates 2001:470:1f0b:bbb:1::1 as permitted sender) smtp.mailfrom=felix@palmen-it.de; dmarc=none DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=palmen-it.de; s=20200414; h=In-Reply-To:Content-Type:MIME-Version: References:Message-ID:Subject:To:From:Date:Sender:Reply-To:Cc: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=Mg8cgUf7KVJfqQ3+YQDlLNyWiLfm7+iE6burG0G+qfY=; b=WT7FU+JHk/Xi68EjZT2iL/HbvZ lP/Q8s1bc8Kd89uJ7Bf5ZE16SUp7CBimvdN1JoTyUNzFolFQu/FxAs18eI8XtgR5dU55ZSyONesSd vShcAJOSIIygCNsV3vCL+merwutTUPIT37v0bgrFTTCZIFD+NhxjZ28rC4Cakis27lF60zcfNBeCu R6YPiVTsnYJWtabMOsSWGDgcLxRlJiE09ZJuCJYKHI2EPL5Qa2fbzE3vXiW4rRWdVaD3PMAHebvWr crwDCWvNqFBi2x8PTSOU7kZDQsMflbLECm82zl0Bim+eTVgHwIgkqR4kAuz92xGFHqOhnM6bpWpxZ N0f8YdeA==; Received: from [192.168.71.101] (helo=mail.home.palmen-it.de) by stef.palmen-it.de with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1qb26h-00BBqY-O2 for current@freebsd.org; Tue, 29 Aug 2023 19:02:23 +0200 Received: from nexus.home.palmen-it.de ([192.168.99.2]) by mail.home.palmen-it.de with esmtpsa (TLS1.3) tls TLS_CHACHA20_POLY1305_SHA256 (Exim 4.96 (FreeBSD)) (envelope-from ) id 1qb26h-0004Eb-1T for current@freebsd.org; Tue, 29 Aug 2023 17:02:23 +0000 Date: Tue, 29 Aug 2023 19:02:22 +0200 From: Felix Palmen To: current@freebsd.org Subject: Re: Possible issue with linux xattr support? Message-ID: Mail-Followup-To: current@freebsd.org X-Face: /1K@t"h.}e~pR@]c7HorQ!T`F^RJCa'BCr#e>IKA{>C/9OTGB4|xh"y2{?1Z5M i2w"AH^pN_LlHR^{+f',_Np~;.B;!M/bL}*qk]p5*r7F5vW};{:@4u5S?T&f0$7BJ-71Q5SV]:v$`5 A0[DZ:=?S52x8HJ~5@^P_\T@MsjG{R( Organization: FreeBSD.org References: <3q2k3tje2ig2s6wzy4hzvjmoyejiecminvcvevivumtukxrgki@btnpjbztyfa6> List-Id: Discussions about the use of FreeBSD-current List-Archive: https://lists.freebsd.org/archives/freebsd-current List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-current@freebsd.org MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="a3db4e65lkqu7zix" Content-Disposition: inline In-Reply-To: User-Agent: NeoMutt/20230517 X-Spamd-Bar: ------ X-Spamd-Result: default: False [-6.50 / 15.00]; DWL_DNSWL_MED(-2.00)[palmen-it.de:dkim]; SIGNED_PGP(-2.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; SUBJECT_ENDS_QUESTION(1.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_SHORT(-1.00)[-1.000]; MID_RHS_NOT_FQDN(0.50)[]; RCVD_DKIM_ARC_DNSWL_MED(-0.50)[]; FORGED_SENDER(0.30)[zirias@freebsd.org,felix@palmen-it.de]; R_DKIM_ALLOW(-0.20)[palmen-it.de:s=20200414]; MIME_GOOD(-0.20)[multipart/signed,text/plain]; RCVD_IN_DNSWL_MED(-0.20)[2001:470:1f0b:bbb:1::1:from]; R_SPF_ALLOW(-0.20)[+ip6:2001:470:1f0b:bbb:1::1:c]; TO_MATCH_ENVRCPT_ALL(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; DMARC_NA(0.00)[freebsd.org]; MLMMJ_DEST(0.00)[current@freebsd.org]; FROM_HAS_DN(0.00)[]; TO_DOM_EQ_FROM_DOM(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; HAS_ORG_HEADER(0.00)[]; TO_DN_NONE(0.00)[]; ARC_NA(0.00)[]; DKIM_TRACE(0.00)[palmen-it.de:+]; ASN(0.00)[asn:6939, ipnet:2001:470::/32, country:US]; MIME_TRACE(0.00)[0:+,1:+,2:~]; FROM_NEQ_ENVFROM(0.00)[zirias@freebsd.org,felix@palmen-it.de]; RCVD_TLS_ALL(0.00)[] X-Rspamd-Queue-Id: 4RZtyT6LWwz3fcy --a3db4e65lkqu7zix Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable * Dmitry Chagin [20230829 17:45]: > On Tue, Aug 29, 2023 at 12:59:11PM +0200, Felix Palmen wrote: > > Thanks, I can confirm this avoids the issue in both cases I experienced > > (install from GNU coreutils and python). > >=20 > thanks, this is the first half of the fix, it works for you due to you > are running tools under unprivileged user, afaiu. The second I have > tested by myself :) Sure, poudriere is running all builds as "nobody" by default. > > If I understand this patch correctly, it completely avoids EPERM, > > masking it as not supported, so callers should consider it non-fatal, > > allowing to silently ignore writing of "system" attributes while still > > keeping other functionality? > >=20 > system namespace is accessible only for privileged user, for others Linux > returns ENOTSUP. So many tools ignores this error, eg ls. >=20 > the second: https://people.freebsd.org/~dchagin/sea_jailed.patch Ok, I did some tests in a poudriere jail using Linux bash, as root. First, with only the first patch: | bash-5.2# getfattr -d /bin/sh | getfattr: /bin/sh: Operation not supported | bash-5.2# setfattr -n user.foo -v bar /bin/sh | bash-5.2# getfattr -n user.foo /bin/sh | getfattr: Removing leading '/' from absolute path names | # file: bin/sh | user.foo=3D"bar" | bash-5.2# setfattr -x user.foo /bin/sh | bash-5.2# setfattr -x system.foo /bin/sh | setfattr: /bin/sh: Operation not supported So, using user.* works, using system.* doesn't, and maybe a bit surprising(?), dumping all attributes which by default excludes the system namespace doesn't work either. Then with the second patch applied as well: | bash-5.2# getfattr -d /bin/sh | bash-5.2# setfattr -n system.foo -v bar /bin/sh | bash-5.2# getfattr -d /bin/sh -m- | getfattr: Removing leading '/' from absolute path names | # file: bin/sh | system.foo=3D"bar" |=20 | bash-5.2# setfattr -x system.foo /bin/sh | bash-5.2# getfattr -d /bin/sh -m- | bash-5.2# This looks perfectly fine, thanks a lot! I still wonder, is the first patch needed anyways? Maybe I fail to understand something here. Won't it map *every* EPERM to ENOSUP and can't this be an issue? Cheers, Felix --=20 Felix Palmen {private} felix@palmen-it.de -- ports committer -- {web} http://palmen-it.de {pgp public key} http://palmen-it.de/pub.txt {pgp fingerprint} 6936 13D5 5BBF 4837 B212 3ACC 54AD E006 9879 F231 --a3db4e65lkqu7zix Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iNUEABYKAH0WIQRpNhPVW79IN7ISOsxUreAGmHnyMQUCZO4kj18UgAAAAAAuAChp c3N1ZXItZnByQG5vdGF0aW9ucy5vcGVucGdwLmZpZnRoaG9yc2VtYW4ubmV0Njkz NjEzRDU1QkJGNDgzN0IyMTIzQUNDNTRBREUwMDY5ODc5RjIzMQAKCRBUreAGmHny McBUAQChmO4kixIRXyxXusZ4N1YgnFbrLhMzYRLSIZdZ9q/5hQD/Zxt9giKs9TID loW+qOODNJJramUr6cJ1AFL9QbdIjAs= =GjFg -----END PGP SIGNATURE----- --a3db4e65lkqu7zix--