Clearcase:如何控制SUID程序是否在视图中工作?

时间:2011-02-26 01:14:56

标签: clearcase setuid

我们有两台运行ClearCase的机器(正在讨论中) - 不同版本的ClearCase。否则,它们的设置大致相同 - 相同的Linux x86 / 64内核等。

在一台计算机上,视图中的SUID根程序可用作SUID根程序。

在另一台计算机上,视图中的SUID根程序无法使用SUID权限,从而导致意外结果。

我们到目前为止发现的唯一区别是:

  • 工作视图:CC 7.0.1
  • 非工作视图:CC 7.1.1.1

如果重要,我可以提供cleartool -version的完整输出,但我怀疑它不会。这些是列出的第一个版本。

问题

  1. 这是ClearCase版本之间的已知差异,还是配置项目或其他什么?
  2. 是否可以配置较新版本的ClearCase(MVFS)以允许SUID根程序“正常”运行?
  3. 如果它是可配置的,我们如何更改配置使新版本允许SUID程序?

  4. 我们在很多不同的平台上运行ClearCase的无数机器。有传言说,在某些机器上,我们的SUID软件必须“运行”才能运行。现在有人报告了一个错误 - 它花了大部分时间来缩小差异。问题中提到的问题似乎是一个似是而非的解释。如果它是别的东西,那就这样吧。我仍然需要今天再次丢失的头发!


    额外信息

    所有视图都是动态的,而不是快照。

    这是SUID程序运行的机器上cleartool lsview -l -full -pro -cview的输出,运行ClearCase 7.0.1:

    Tag: idsdb00222108.jleffler.toru
      Global path: /net/toru/work4/atria/idsdb00222108.jleffler.toru.vws
      Server host: toru
      Region: lenexa
      Active: YES
      View tag uuid:6dac5149.2d7511e0.8c62.00:14:5e:69:25:d0
    View on host: toru
    View server access path: /work4/atria/idsdb00222108.jleffler.toru.vws
    View uuid: 6dac5149.2d7511e0.8c62.00:14:5e:69:25:d0
    View owner: lenexa.pd/jleffler
    
    Created 2011-01-31T11:58:11-08:00 by jleffler.rd@toru
    Last modified 2011-02-26T22:32:49-08:00 by jleffler.rd@toru.lenexa.ibm.com
    Last accessed 2011-02-26T22:44:55-08:00 by jleffler.rd@toru.lenexa.ibm.com
    Last read of private data 2011-02-26T22:44:55-08:00 by jleffler.rd@toru.lenexa.ibm.com
    Last config spec update 2011-02-26T01:10:36-08:00 by jleffler.rd@toru.lenexa.ibm.com
    Last view private object update 2011-02-26T22:32:49-08:00 by jleffler.rd@toru.lenexa.ibm.com
    Text mode: unix
    Properties: dynamic readwrite shareable_dos
    Owner: lenexa.pd/jleffler : rwx (all)
    Group: lenexa.pd/rd     : rwx (all)
    Other:                  : rwx (all)
    Additional groups: lenexa.pd/RAND lenexa.pd/ccusers lenexa.pd/ccids lenexa.pd/ccos
    

    这是SUID程序无法“运行”的机器上的输出,运行ClearCase 7.1.1.1:

    Tag: new.jleffler.zeetes
      Global path: /tmp/jl/new.jleffler.zeetes.vws
      Server host: zeetes
      Region: lenexa
      Active: YES
      View tag uuid:f62b7c80.414111e0.9cec.00:14:5e:de:1b:44
    View on host: zeetes
    View server access path: /tmp/jl/new.jleffler.zeetes.vws
    View uuid: f62b7c80.414111e0.9cec.00:14:5e:de:1b:44
    View owner: lenexa.pd/informix
    
    Created 2011-02-25T18:40:11-06:00 by informix.informix@zeetes
    Last modified 2011-02-25T18:49:56-06:00 by informix.informix@zeetes
    Last accessed 2011-02-25T18:50:31-06:00 by informix.informix@zeetes
    Last read of private data 2011-02-25T18:50:31-06:00 by informix.informix@zeetes
    Last config spec update 2011-02-25T18:49:37-06:00 by informix.informix@zeetes
    Last view private object update 2011-02-25T18:49:56-06:00 by informix.informix@zeetes
    Text mode: unix
    Properties: dynamic readwrite shareable_dos
    Owner: lenexa.pd/informix : rwx (all)
    Group: lenexa.pd/informix : r-x (read)
    Other:                  : r-x (read)
    Additional groups: lenexa.pd/RAND lenexa.pd/ccids lenexa.pd/ccos
    

    检测到SUID程序无法正常工作

    问题不在于操作系统有关于运行SUID程序的错误消息。问题是即使程序看起来是setuid root,运行时程序实际上并不是setuid:

    Zeetes IX: ls -l asroot
    -r-sr-xr-x 1 root informix 24486 Feb 25 18:49 asroot
    Zeetes IX: ./asroot id
    asroot: not installed SUID root
    Zeetes IX: 
    

    这是asroot在没有安装SUID root权限时的输出。在另一台机器上:

    Toru JL: ls -l asroot
    -r-sr-xr-x 1 root informix 26297 2011-02-27 00:11 asroot
    Toru JL: ./asroot id
    uid=0(root) gid=1240(rd) groups=1240(rd),1360(RAND),8714(ccusers),8803(ccids),8841(ccos)
    Toru JL:
    

    如果程序安装了SUID root权限,这或多或少是我期望的输出。


    装载信息

    两个主要的VOB是三星和三臂。在SUID正常的机器上(手动完成包装以避免滚动条):

    aether:/vobs/tristarm.vbs on /vobs/tristarm.vbs type nfs \
         (rw,hard,intr,bg,addr=9.25.149.151)
    charon:/vobs/tristarp.vbs on /vobs/tristarp.vbs type nfs \
         (rw,hard,intr,bg,addr=9.25.149.147)
    charon:/vobs/tristarp.vbs on /vobs/tristarp type mvfs \
         (uuid=684ef023.2dd111d0.b696.08:00:09:b1:a4:c5)
    aether:/vobs/tristarm.vbs on /vobs/tristarm type mvfs \
         (uuid=b74900ef.814511cf.afee.08:00:09:b1:54:d5)
    

    在SUID不正常的机器上:

    aether:/vobs/tristarm.vbs on /vobs/tristarm type mvfs \
         (uuid=b74900ef.814511cf.afee.08:00:09:b1:54:d5,nosuid)
    aether:/vobs/tristarm.vbs on /vobs/tristarm.vbs type nfs \
         (rw,hard,intr,bg,addr=9.25.149.151)
    charon:/vobs/tristarp.vbs on /vobs/tristarp.vbs type nfs \
         (rw,hard,intr,bg,addr=9.25.149.147)
    charon:/vobs/tristarp.vbs on /vobs/tristarp type mvfs \
         (uuid=684ef023.2dd111d0.b696.08:00:09:b1:a4:c5)
    

    这就是恶人! (而且我认为我已经查看了mount信息了。很明显。我看起来不够准确,或者只能在一台机器上 - 工作机器 - 或其他什么。)奇怪的是这两个VOB中只有一个安装nosuid;很奇怪。

    我们有答案为什么!

    谢谢,VonC。


    探索

    脚本/etc/init.d/clearcase/etc/clearcase中有/opt/rational/clearcase下的脚本和程序使用文件/var/adm/rational/clearcase/suid_mounts_allowed来控制是否允许SUID;它存在于两台机器上,作为具有权限root:root:000的空文件。但是可能还有一些其他差异在这里潜伏着 - 我已经向居民ClearCase Guru询问了这一点。但是,看起来两台计算机上的配置差异更大,而不是某些特定于版本的功能更改。两个版本都表面上支持nosuid选项,即使它们都不会自我调用该选项 - 除了7.1.1.1版本正在管理调用7.0.1版本的版本之外。

1 个答案:

答案 0 :(得分:1)

知道会很有趣:

  • 如果两种视图都是快照或动态视图。我认为是动态的,与MVFS有关的问题。
  • 在这两种情况下都会返回“cleartool lsview -l -full -pro -cview”(在每个视图中执行时,一个SUID工作,另一个不工作)
  • 如果尝试SUID位时每个视图中的本地路径相同(本地路径是视图中的路径,如</path/toView> /vobs/MyVob/.../path/to/a/directory

主要是,您是否有确切的错误消息,例如in this thread

  

我们看到VOB在Linux和SunOS上安装了不同的选项,尤其是 Linux添加了“nosuid”挂载选项,而在SunOS上添加了“setuid”。

     

这会导致我们在Linux机器上的分布式构建期间出现问题,因为当尝试从其中一个VOB执行suid root二进制文件时,远程机器会收到“Operation not allowed”错误

请参阅cleartool mount options

  

UNIX和Linux:nodevnosuidsuid

另请参阅“Setting the sticky bit using the cleartool protect command

  

使用以下语法使用cleartool protect命令正确设置“粘滞位”:

cleartool protect -chmod u=rxs <file>