我们有两台运行ClearCase的机器(正在讨论中) - 不同版本的ClearCase。否则,它们的设置大致相同 - 相同的Linux x86 / 64内核等。
在一台计算机上,视图中的SUID根程序可用作SUID根程序。
在另一台计算机上,视图中的SUID根程序无法使用SUID权限,从而导致意外结果。
我们到目前为止发现的唯一区别是:
如果重要,我可以提供cleartool -version
的完整输出,但我怀疑它不会。这些是列出的第一个版本。
我们在很多不同的平台上运行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程序的错误消息。问题是即使程序看起来是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版本的版本之外。
答案 0 :(得分:1)
知道会很有趣:
cleartool lsview -l -full -pro -cview
”(在每个视图中执行时,一个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”错误
UNIX和Linux:
nodev
,nosuid
,suid
。
另请参阅“Setting the sticky bit using the cleartool protect command”
使用以下语法使用cleartool protect命令正确设置“粘滞位”:
cleartool protect -chmod u=rxs <file>