<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Setuid not working without read access in NFSv4 in Network and Storage Protocols</title>
    <link>https://community.netapp.com/t5/Network-and-Storage-Protocols/Setuid-not-working-without-read-access-in-NFSv4/m-p/51910#M4744</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;I'm having issues with setuid/setgid programs after upgrade (move to c-DOT) from NFSv3 to NFSv4 access protocol.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Apparently, programs with "setuid/setgid" bit set work as they should only when also "read" permission is set on the executable file. That's different from NFSv3, where setuid bit only without read access on file is enough to execute.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have the same volume mounted once through NFSv3 and once using NFSv4 (parallel NFS):&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_text_macro jive_macro_code _jivemacro_uid_1408222167959184" jivemacro_uid="_1408222167959184"&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;[testuser@edud01sap02 ~]$ mount|grep NFS&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;vssaptest5001:/vssaptest5001_edu_bench1 on /mnt-NFSv3 type nfs (rw,vers=3,addr=10.243.66.50)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;vssaptest5001:/vssaptest5001_edu_bench1 on /mnt-NFSv4 type nfs (rw,vers=4,minorversion=1,addr=10.243.66.50,clientaddr=10.243.66.62)&lt;/SPAN&gt;&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The access rights:&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_text_macro jive_macro_code _jivemacro_uid_14082224078676691" jivemacro_uid="_14082224078676691"&gt;&lt;P&gt;[testuser@edud01sap02 ~]$ ls -l /mnt-NFSv3/setuidtest&lt;/P&gt;&lt;P&gt;-r-s--s---. 1 otheruser otheruser 7018 Aug 16 19:31 /mnt-NFSv3/setuidtest&lt;/P&gt;&lt;P&gt;[testuser@edud01sap02 ~]$ ls -l /mnt-NFSv4/setuidtest&lt;/P&gt;&lt;P&gt;-r-s--s---. 1 otheruser otheruser 7018 Aug 16 19:31 /mnt-NFSv4/setuidtest&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I got "permission denied" error when trying to execute through NFSv4:&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_text_macro jive_macro_code _jivemacro_uid_14082225087698530" jivemacro_uid="_14082225087698530"&gt;&lt;P&gt;[testuser@edud01sap02 ~]$ /mnt-NFSv4/setuidtest&lt;/P&gt;&lt;P&gt;-bash: /mnt-NFSv4/setuidtest: Permission denied&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;... while the same file executes correctly through NFSv3:&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_text_macro jive_macro_code _jivemacro_uid_14082225229195691" jivemacro_uid="_14082225229195691"&gt;&lt;P&gt;[testuser@edud01sap02 ~]$ /mnt-NFSv3/setuidtest&lt;/P&gt;&lt;P&gt;uid=555 euid=666&lt;/P&gt;&lt;P&gt;gid=555 egid=666&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When I set the read access bit for group owner, the program executes also through NFSv4:&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_text_macro jive_macro_code _jivemacro_uid_14082227252993148" jivemacro_uid="_14082227252993148"&gt;&lt;P&gt;[testuser@edud01sap02 ~]$ sudo chmod g+r /mnt-NFSv4/setuidtest&lt;/P&gt;&lt;P&gt;[testuser@edud01sap02 ~]$ ls -l /mnt-NFSv4/setuidtest&lt;/P&gt;&lt;P&gt;-r-sr-s---. 1 otheruser otheruser 7018 Aug 16 19:31 /mnt-NFSv4/setuidtest&lt;/P&gt;&lt;P&gt;[testuser@edud01sap02 ~]$ /mnt-NFSv4/setuidtest&lt;/P&gt;&lt;P&gt;uid=555 euid=666&lt;/P&gt;&lt;P&gt;gid=555 egid=666&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is this something what has changed since NFSv3 or do I miss some configuration? This is an 8.2.1 c-DOT system with SetUID option enabled in export-policy:&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_text_macro jive_macro_code _jivemacro_uid_14082228761049883" jivemacro_uid="_14082228761049883"&gt;&lt;P&gt;Honor SetUID Bits in SETATTR: true&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This behaviour prevents our systems from executing programs which do have strict access mode validation hardcoded to perform before proceeding with execution. Therefore just adding that "read" permission is not a valid workaround for me.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Lukas&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 05 Jun 2025 05:30:24 GMT</pubDate>
    <dc:creator>kukacz123</dc:creator>
    <dc:date>2025-06-05T05:30:24Z</dc:date>
    <item>
      <title>Setuid not working without read access in NFSv4</title>
      <link>https://community.netapp.com/t5/Network-and-Storage-Protocols/Setuid-not-working-without-read-access-in-NFSv4/m-p/51910#M4744</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;I'm having issues with setuid/setgid programs after upgrade (move to c-DOT) from NFSv3 to NFSv4 access protocol.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Apparently, programs with "setuid/setgid" bit set work as they should only when also "read" permission is set on the executable file. That's different from NFSv3, where setuid bit only without read access on file is enough to execute.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have the same volume mounted once through NFSv3 and once using NFSv4 (parallel NFS):&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_text_macro jive_macro_code _jivemacro_uid_1408222167959184" jivemacro_uid="_1408222167959184"&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;[testuser@edud01sap02 ~]$ mount|grep NFS&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;vssaptest5001:/vssaptest5001_edu_bench1 on /mnt-NFSv3 type nfs (rw,vers=3,addr=10.243.66.50)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'courier new', courier;"&gt;vssaptest5001:/vssaptest5001_edu_bench1 on /mnt-NFSv4 type nfs (rw,vers=4,minorversion=1,addr=10.243.66.50,clientaddr=10.243.66.62)&lt;/SPAN&gt;&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The access rights:&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_text_macro jive_macro_code _jivemacro_uid_14082224078676691" jivemacro_uid="_14082224078676691"&gt;&lt;P&gt;[testuser@edud01sap02 ~]$ ls -l /mnt-NFSv3/setuidtest&lt;/P&gt;&lt;P&gt;-r-s--s---. 1 otheruser otheruser 7018 Aug 16 19:31 /mnt-NFSv3/setuidtest&lt;/P&gt;&lt;P&gt;[testuser@edud01sap02 ~]$ ls -l /mnt-NFSv4/setuidtest&lt;/P&gt;&lt;P&gt;-r-s--s---. 1 otheruser otheruser 7018 Aug 16 19:31 /mnt-NFSv4/setuidtest&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I got "permission denied" error when trying to execute through NFSv4:&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_text_macro jive_macro_code _jivemacro_uid_14082225087698530" jivemacro_uid="_14082225087698530"&gt;&lt;P&gt;[testuser@edud01sap02 ~]$ /mnt-NFSv4/setuidtest&lt;/P&gt;&lt;P&gt;-bash: /mnt-NFSv4/setuidtest: Permission denied&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;... while the same file executes correctly through NFSv3:&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_text_macro jive_macro_code _jivemacro_uid_14082225229195691" jivemacro_uid="_14082225229195691"&gt;&lt;P&gt;[testuser@edud01sap02 ~]$ /mnt-NFSv3/setuidtest&lt;/P&gt;&lt;P&gt;uid=555 euid=666&lt;/P&gt;&lt;P&gt;gid=555 egid=666&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When I set the read access bit for group owner, the program executes also through NFSv4:&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_text_macro jive_macro_code _jivemacro_uid_14082227252993148" jivemacro_uid="_14082227252993148"&gt;&lt;P&gt;[testuser@edud01sap02 ~]$ sudo chmod g+r /mnt-NFSv4/setuidtest&lt;/P&gt;&lt;P&gt;[testuser@edud01sap02 ~]$ ls -l /mnt-NFSv4/setuidtest&lt;/P&gt;&lt;P&gt;-r-sr-s---. 1 otheruser otheruser 7018 Aug 16 19:31 /mnt-NFSv4/setuidtest&lt;/P&gt;&lt;P&gt;[testuser@edud01sap02 ~]$ /mnt-NFSv4/setuidtest&lt;/P&gt;&lt;P&gt;uid=555 euid=666&lt;/P&gt;&lt;P&gt;gid=555 egid=666&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is this something what has changed since NFSv3 or do I miss some configuration? This is an 8.2.1 c-DOT system with SetUID option enabled in export-policy:&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_text_macro jive_macro_code _jivemacro_uid_14082228761049883" jivemacro_uid="_14082228761049883"&gt;&lt;P&gt;Honor SetUID Bits in SETATTR: true&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This behaviour prevents our systems from executing programs which do have strict access mode validation hardcoded to perform before proceeding with execution. Therefore just adding that "read" permission is not a valid workaround for me.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Lukas&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 05 Jun 2025 05:30:24 GMT</pubDate>
      <guid>https://community.netapp.com/t5/Network-and-Storage-Protocols/Setuid-not-working-without-read-access-in-NFSv4/m-p/51910#M4744</guid>
      <dc:creator>kukacz123</dc:creator>
      <dc:date>2025-06-05T05:30:24Z</dc:date>
    </item>
  </channel>
</rss>

