我们有两台机器(正在讨论中)运行 ClearCase——不同版本的 ClearCase。否则,它们在设置上几乎相同——相同的 Linux x86/64 内核等。
在一台机器上,视图中的 SUID 根程序作为 SUID 根程序工作。
在另一台机器上,视图中的 SUID 根程序不能以 SUID 权限运行,从而导致意外结果。
到目前为止,我们发现的唯一区别是:
- 工作视图:CC 7.0.1
- 非工作视图:CC 7.1.1.1
如果它重要,我可以给出完整的输出cleartool -version
,但我怀疑它不会。这些是列出的第一个版本。
问题
- 这是 ClearCase 版本之间的已知差异,还是配置项或其他?
- 是否可以配置较新版本的 ClearCase (MVFS) 以允许 SUID 根程序“正确”运行?
- 如果它是可配置的,我们如何更改配置使新版本允许SUID程序?
我们有无数台机器在许多不同的平台上运行 ClearCase。有传言说,在某些机器上,我们的 SUID 软件必须在“看不见”的情况下运行才能工作。现在有人报告了一个错误——花了一天的大部分时间来缩小差异。问题中解决的问题似乎是一个合理的解释。如果是别的东西,那就这样吧。我仍然需要我今天失去的头发再次回来!
额外的信息
所有视图都是动态的,而不是快照。
这是在cleartool lsview -l -full -pro -cview
运行 ClearCase 7.0.1 的 SUID 程序工作的机器上的输出:
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
这是运行 ClearCase 7.1.1.1 的 SUID 程序不“工作”的机器上的输出:
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 是 tristarp 和 tristarm。在 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。
探索
脚本中规定了使用文件来控制是否允许使用 SUID的脚本/etc/init.d/clearcase
和/etc/clearcase
程序;它存在于两台机器上,作为一个具有 root:root:000 权限的空文件。但可能还有其他一些重要的差异潜伏在这里——我已经向常驻的 ClearCase Guru 询问了这一点。但是,看起来差异更可能在于两台机器上的配置,而不是某些特定于版本的功能更改。两个版本表面上都支持该选项,尽管这两个版本都没有明显地调用该选项——除了 7.1.1.1 版本正在设法调用它,而 7.0.1 版本没有。/opt/rational/clearcase
/var/adm/rational/clearcase/suid_mounts_allowed
nosuid