<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
Good Morning,</div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
&nbsp; &nbsp;This seems to relate to the default squash id of 99.&nbsp; When I changed it to a much higher id the system began functioning as expected (I can mount without explicitly applying the selinux context, I can view files, I can run the df command as root on the area
 without first needing to do so as a user).</div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
W/r,</div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
Kurt</div>
<div id="appendonsend"></div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> Andreas Dilger &lt;adilger@thelustrecollective.com&gt;<br>
<b>Sent:</b> Wednesday, February 25, 2026 11:42 PM<br>
<b>To:</b> Kurt Strosahl &lt;strosahl@jlab.org&gt;<br>
<b>Cc:</b> lustre-discuss@lists.lustre.org &lt;lustre-discuss@lists.lustre.org&gt;<br>
<b>Subject:</b> Re: [lustre-discuss] [EXTERNAL] lustre-discuss Digest, Vol 239, Issue 19</font>
<div>&nbsp;</div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText">On Feb 25, 2026, at 10:03, Kurt Strosahl &lt;strosahl@jlab.org&gt; wrote:<br>
&gt; <br>
&gt; After further work... I was able to get a client in the default nodemap to mount with SELinux enabled.&nbsp; This was done by passing the selinux context explicitly in the mount command.<br>
&gt; <br>
&gt; mount -t lustre -o context=&quot;system_u:object_r:nfs_t:s0&quot;<br>
<br>
Hmm, should this be added automatically by the &quot;mount&quot; command or &quot;mount.lustre&quot;?<br>
I don't recall anyone else having a similar issue...<br>
<br>
&gt; note though that I'm still not able to df or lfs the lustre mountpoint directly UNTIL a non-root users runs such a command.<br>
<br>
This is because the root user is unable to do the lookup themselves, but<br>
once a non-root user does the lookup it is in the cache and the local<br>
client allows it without checking the MDS.&nbsp; This might relate to<br>
root squash or maybe the identity upcall not being configured correctly?<br>
<br>
Cheers, Andreas<br>
<br>
&gt; <br>
&gt;&gt; From: Kurt Strosahl &lt;strosahl@jlab.org&gt;<br>
&gt;&gt; Sent: Monday, February 23, 2026 12:51 PM<br>
&gt;&gt; To: lustre-discuss@lists.lustre.org &lt;lustre-discuss@lists.lustre.org&gt;<br>
&gt;&gt; Subject: Re: [EXTERNAL] lustre-discuss Digest, Vol 239, Issue 19<br>
&gt;&gt;&nbsp; I've done some more testing, and when I disable SELinux on the client lustre now mounts, however I've noticed some other oddities...<br>
&gt;&gt; <br>
&gt;&gt; While lustre mounts if I then try to do a df or an lfs df on that area it says<br>
&gt;&gt; [root@qcd24s100 ~]# df /qcd/lustre25&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<br>
&gt;&gt; df: /qcd/lustre25: Permission denied <br>
&gt;&gt; [root@qcd24s100 ~]# lfs df /qcd/lustre25&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<br>
&gt;&gt; df:/qcd/lustre25 Not a Lustre filesystem<br>
&gt;&gt; <br>
&gt;&gt; However if I just do a df without specifying the directory it shows up.&nbsp; Further if I run a lfs df as myself I can see it... and then root can also see it.<br>
&gt;&gt; <br>
&gt;&gt; <br>
&gt;&gt;&gt; From: Kurt Strosahl &lt;strosahl@jlab.org&gt;<br>
&gt;&gt;&gt; Sent: Friday, February 13, 2026 5:03 PM<br>
&gt;&gt;&gt; To: lustre-discuss@lists.lustre.org &lt;lustre-discuss@lists.lustre.org&gt;<br>
&gt;&gt;&gt; Subject: Re: [EXTERNAL] lustre-discuss Digest, Vol 239, Issue 19<br>
&gt;&gt;&gt;&nbsp; Yes the default squash is to 99.<br>
&gt;&gt;&gt; <br>
&gt;&gt;&gt; I did test setting the squash_g/uid to 0, and the behaviour did change.&nbsp; But that just seems to let root take actions on files/dirs owned by root .<br>
&gt;&gt;&gt; <br>
&gt;&gt;&gt; Is that how the nodemaps are supposed to work?&nbsp; It seems odd to me that setting admin to off and trusted to on doesn't allow clients to mount unless I also go in and set root to 0:0.<br>
&gt;&gt;&gt; <br>
&gt;&gt;&gt; Under the old way you just set the squash u/gid and then set your norootsquash list (a method I've been using for years).<br>
&gt;&gt;&gt; <br>
&gt;&gt;&gt; [root@scmds2501 ~]# lctl get_param -R nodemap.default.*<br>
&gt;&gt;&gt; nodemap.default.admin_nodemap=0<br>
&gt;&gt;&gt; nodemap.default.audit_mode=1<br>
&gt;&gt;&gt; nodemap.default.deny_unknown=0<br>
&gt;&gt;&gt; nodemap.default.exports=<br>
&gt;&gt;&gt; [<br>
&gt;&gt;&gt;&nbsp; { nid: 172.17.1.127@o2ib, uuid: 5dd1bac6-cb91-1169-183d-f084efaba32d }, { nid: 172.17.1.221@o2ib, uuid: bd67c3f7-8a44-4fac-8685-2e234742a2c2 },<br>
&gt;&gt;&gt; ]<br>
&gt;&gt;&gt; nodemap.default.fileset=<br>
&gt;&gt;&gt; nodemap.default.forbid_encryption=0<br>
&gt;&gt;&gt; nodemap.default.id=0<br>
&gt;&gt;&gt; nodemap.default.map_mode=all<br>
&gt;&gt;&gt; nodemap.default.squash_gid=99<br>
&gt;&gt;&gt; nodemap.default.squash_projid=99<br>
&gt;&gt;&gt; nodemap.default.squash_uid=99<br>
&gt;&gt;&gt; nodemap.default.trusted_nodemap=1<br>
&gt;&gt;&gt; <br>
&gt;&gt;&gt; ----------------------------------------------------------------------<br>
&gt;&gt;&gt; <br>
&gt;&gt;&gt; Message: 1<br>
&gt;&gt;&gt; Date: Fri, 13 Feb 2026 14:29:54 +0100<br>
&gt;&gt;&gt; From: Hans Henrik Happe &lt;happe@nbi.dk&gt;<br>
&gt;&gt;&gt; To: lustre-discuss@lists.lustre.org<br>
&gt;&gt;&gt; Subject: Re: [lustre-discuss] getting &quot;permission dendied&quot; on mount<br>
&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; when trying to use nodemaps for root squashing<br>
&gt;&gt;&gt; Message-ID: &lt;3b4ae3f4-3b32-43cc-bec5-52b417ab98d5@nbi.dk&gt;<br>
&gt;&gt;&gt; Content-Type: text/plain; charset=&quot;utf-8&quot;; Format=&quot;flowed&quot;<br>
&gt;&gt;&gt; <br>
&gt;&gt;&gt; Hi,<br>
&gt;&gt;&gt; <br>
&gt;&gt;&gt; Have you looked at the squash id's. I think they defaults to 99, but <br>
&gt;&gt;&gt; RHEL uses another id for the nobody user.<br>
&gt;&gt;&gt; <br>
&gt;&gt;&gt; A full list of parameters would make it easier to give input. If you <br>
&gt;&gt;&gt; could post this:<br>
&gt;&gt;&gt; <br>
&gt;&gt;&gt; lctl get_param nodemap.default.*<br>
&gt;&gt;&gt; <br>
&gt;&gt;&gt; Cheers,<br>
&gt;&gt;&gt; Hans Henrik<br>
&gt;&gt;&gt; <br>
&gt;&gt;&gt; On 09/02/2026 16.05, Kurt Strosahl via lustre-discuss wrote:<br>
&gt;&gt;&gt; &gt; Good Morning,<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; ? ?I'm trying to set up nodemaps on a new lustre file system. <br>
&gt;&gt;&gt; &gt; Presently when I turn on the nodemaps I get permission denied for <br>
&gt;&gt;&gt; &gt; servers in the default nodemap.<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; I've defined two custom nodemaps.? An AdminSystems nodemap (for <br>
&gt;&gt;&gt; &gt; servers that will need to perform actions as root, and a LustreServers <br>
&gt;&gt;&gt; &gt; nodemap (for the lustre servers themselves)<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; Every other client will be in the default map. (whose gid/uid/projid <br>
&gt;&gt;&gt; &gt; mappings we trust)<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; I set the following:<br>
&gt;&gt;&gt; &gt; [root@scmds2501 ~]# lctl get_param nodemap.*.admin_nodemap<br>
&gt;&gt;&gt; &gt; nodemap.AdminSystems.admin_nodemap=1<br>
&gt;&gt;&gt; &gt; nodemap.LustreServers.admin_nodemap=1<br>
&gt;&gt;&gt; &gt; Nodemap.default.admin_nodemap=0<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; [root@scmds2501 ~]# lctl get_param nodemap.*.trusted_nodemap<br>
&gt;&gt;&gt; &gt; nodemap.AdminSystems.trusted_nodemap=1<br>
&gt;&gt;&gt; &gt; nodemap.LustreServers.trusted_nodemap=1<br>
&gt;&gt;&gt; &gt; Nodemap.default.trusted_nodemap=1<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; When I turn on the nodemap feature I get a permission denied when <br>
&gt;&gt;&gt; &gt; mounting on a client node that isn't in the Admin nodemap.<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; Interestingly, on a test client that was mounted before I turned on <br>
&gt;&gt;&gt; &gt; the nodemap I can write files as myself (into a directory that I <br>
&gt;&gt;&gt; &gt; established beforehand owned by me).<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; Our desired end state is an Admin nodemap we can add and remove <br>
&gt;&gt;&gt; &gt; systems to as needed that can take action as root, and all other <br>
&gt;&gt;&gt; &gt; lustre clients being able to access the file system, but having no <br>
&gt;&gt;&gt; &gt; root access.? The LustreServers nodemap is there to keep the lustre <br>
&gt;&gt;&gt; &gt; file servers themselves safe from any unexpected changes.<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; w/r,<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; Kurt J. Strosahl (he/him)<br>
&gt;&gt;&gt; &gt; System Administrator: Lustre, HPC<br>
&gt;&gt;&gt; &gt; Scientific Computing Group, Thomas Jefferson National Accelerator Facility<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; _______________________________________________<br>
&gt;&gt;&gt; &gt; lustre-discuss mailing list<br>
&gt;&gt;&gt; &gt; lustre-discuss@lists.lustre.org<br>
&gt;&gt;&gt; &gt; <a href="https://urldefense.proofpoint.com/v2/url?u=http-">https://urldefense.proofpoint.com/v2/url?u=http-</a><br>
&gt; <br>
&gt; <br>
</div>
</span></font></div>
</body>
</html>