Clearcase:如何控制SUID程序是否在视图中工作?
我们有两台机器(正在讨论中)运行ClearCase——ClearCase的不同版本。除此之外,它们在设置上几乎完全相同——相同的Linux x86/64内核等等 在一台计算机上,视图中的SUID root程序与SUID root程序一样工作 在另一台计算机上,视图中的SUID根程序不使用SUID权限,从而导致意外结果 到目前为止,我们发现的唯一区别是:Clearcase:如何控制SUID程序是否在视图中工作?,clearcase,setuid,Clearcase,Setuid,我们有两台机器(正在讨论中)运行ClearCase——ClearCase的不同版本。除此之外,它们在设置上几乎完全相同——相同的Linux x86/64内核等等 在一台计算机上,视图中的SUID root程序与SUID root程序一样工作 在另一台计算机上,视图中的SUID根程序不使用SUID权限,从而导致意外结果 到目前为止,我们发现的唯一区别是: 工作视图:CC 7.0.1 非工作视图:CC 7.1.1.1 如果重要的话,我可以给出cleartool-version的完整输出,但我怀疑
- 工作视图:CC 7.0.1
- 非工作视图:CC 7.1.1.1
cleartool-version
的完整输出,但我怀疑不会。这些是列出的第一个版本
问题
我们有无数的机器在很多不同的平台上运行ClearCase。有传言说,在一些机器上,我们的SUID软件必须运行“看不见”才能工作。现在有人报告了一个bug,花了一天的大部分时间来缩小差异。问题中所涉及的问题似乎是一个合理的解释。如果是别的东西,就这样吧。我还需要把今天掉的头发再弄回来
额外信息 所有视图都是动态的,而不是快照 这是在SUID程序运行的机器上运行ClearCase 7.0.1时,
cleartool lsview-l-full-pro-cview
的输出:
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:
这是未使用SUID root权限安装时,asroot
的输出。在另一台计算机上:
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正常的机器上(手动包装以避免滚动条): 在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
;很奇怪
我们有一个答案为什么!
谢谢,沃克
探索
脚本
/etc/init.d/clearcase
和/etc/clearcase
中规定了/opt/rational/clearcase
下的脚本和程序使用文件/var/adm/rational/clearcase/suid\u mounts\u allowed
来控制是否允许suid;它作为一个具有root:root:000权限的空文件存在于两台计算机上。但是这里可能还有其他一些关键的区别——我已经询问了常驻ClearCase专家。然而,看起来这两台机器的配置上的差异更像是某种版本特定的功能更改。这两个版本表面上都支持nosuid
选项,尽管这两个版本都没有不言而喻地调用该选项-除了7.1.1.1版本正在设法在7.0.1版本没有调用的地方调用它之外。我们很想知道:
- 如果两种视图都是快照或动态视图。我认为是动态的,有一个与MVFS相关的问题
- 在这两种情况下,“
”返回的内容(在每个视图中执行时,一个视图使用SUID,一个视图不使用SUID)cleartool lsview-l-full-pro-cview
- 如果在尝试SUID位时每个视图中的本地路径相同(本地路径是视图中的路径,如
/vobs/MyVob/../path/to/a/目录中所示)
nodev
,nosuid
,suid
另见“
使用以下语法使用cleartool protect命令正确设置“粘性位”:
cleartool保护-chmodu=rxs
我们很想知道:
- 如果两种视图都是快照或动态视图。我认为是动态的,有一个与MVFS相关的问题
- 在这两种情况下,“
”返回的内容(在每个视图中执行时,一个视图使用SUID,一个视图不使用SUID)cleartool lsview-l-full-pro-cview
- 如果在尝试SUID位时每个视图中的本地路径相同(本地路径是视图中的路径,如
/vobs/MyVob/../path/to/a/目录中所示)
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)
cleartool protect -chmod u=rxs <file>