Issue with RCS + SUID

Lists <[email protected]> Fri, 14 Jul 2023 09:51:27 -0700
Newsgroups gmane.comp.gnu.rcs
Message-ID <[email protected]>
This is a multi-part message in MIME format.
--------------4bHxkaBEU03qFufvZ8z0illD
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit

Hello,

We are trying to setup RCS with SUID to prevent users other than the 
primary user from deleting revisions. We followed the directions in the 
man page for ci, but we are getting permissions issues when we try to 
checkout as one of the other users.

This is our setup:

  * Master user: sjc001
  * Group permitted to CI/CO: fte
  * Test alternate user in the fte group: sha001

This is the procedure we followed from the man page:

  * mkdir /usr/local/rcs-sjc001
  * cp /usr/bin/ci /usr/local/rcs-sjc001/
  * cp /usr/bin/co /usr/local/rcs-sjc001/
  * cp /usr/bin/rcsclean /usr/local/rcs-sjc001/
  * chmod go-w,u+s /usr/local/rcs-sjc001/*
  * PATH=/usr/local/rcs-sjc001:$PATH; export $PATH
  * mkdir /projects/rcs-test/test
  * chmod go-w /projects/rcs-test/test

We then, with sjc001, create a test file and check it in. Once that is 
done, we try to check out with sha001 and get the following error:

test]$ co -l xorgxrdp.10.log
xorgxrdp.10.log,v  -->  xorgxrdp.10.log
revision 1.1 (locked)
co: xorgxrdp.10.log,v: Operation not permitted
co: saved in ,xorgxrdp.10.log,

Why is it when we follow the procedure for setuid that is in the man 
page do we get permission denied when we are trying to check in/check 
out even though we are using setuid?

--------------4bHxkaBEU03qFufvZ8z0illD
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Hello,</p>
    <p>We are trying to setup RCS with SUID to prevent users other than
      the primary user from deleting revisions. We followed the
      directions in the man page for ci, but we are getting permissions
      issues when we try to checkout as one of the other users.</p>
    <p>This is our setup:</p>
    <ul>
      <li>Master user: sjc001</li>
      <li>Group permitted to CI/CO: fte</li>
      <li>Test alternate user in the fte group: sha001</li>
    </ul>
    <p>This is the procedure we followed from the man page:</p>
    <ul>
      <li>mkdir /usr/local/rcs-sjc001</li>
      <li>cp /usr/bin/ci /usr/local/rcs-sjc001/</li>
      <li>cp /usr/bin/co /usr/local/rcs-sjc001/</li>
      <li>cp /usr/bin/rcsclean /usr/local/rcs-sjc001/</li>
      <li>chmod go-w,u+s /usr/local/rcs-sjc001/*</li>
      <li>PATH=/usr/local/rcs-sjc001:$PATH; export $PATH</li>
      <li>mkdir /projects/rcs-test/test</li>
      <li>chmod go-w /projects/rcs-test/test</li>
    </ul>
    <p>We then, with sjc001, create a test file and check it in. Once
      that is done, we try to check out with sha001 and get the
      following error:</p>
    <p><font face="Courier New, Courier, monospace">test]$ co -l
        xorgxrdp.10.log <br>
        xorgxrdp.10.log,v  --&gt;  xorgxrdp.10.log<br>
        revision 1.1 (locked)<br>
        co: xorgxrdp.10.log,v: Operation not permitted<br>
        co: saved in ,xorgxrdp.10.log,</font><br>
    </p>
    <p>Why is it when we follow the procedure for setuid that is in the
      man page do we get permission denied when we are trying to check
      in/check out even though we are using setuid?<br>
    </p>
  </body>
</html>
--------------4bHxkaBEU03qFufvZ8z0illD--