我正在学习 UNIX 文件权限/ID 继承,想澄清一些事情:
我有权限、用户、组和文件的列表:
-rwxr-xr-x userA A foo
-rw-rwsr-x userB B bar
- userA的RealUID是100,userA的GroupID是240
- userB的RealUID是102,userB的GroupID是241
我需要知道如果 userB 执行会发生什么foo
:
userB 的 RealUID 是否更改为 userA 的 RealUID?
userB 的EffectiveUID 是否更改为userA 的EffectiveUID?
由于userB正在执行userA的文件,那么userB的RealUID是否被保存到SavedUID中,然后执行后又恢复正常?
执行文件是否也会更改 userB 的 GroupID?
答案1
首先,用户没有 RealUID。用户有UID。时期。 (GID 的情况是一点更复杂。)
流程拥有真实 UID 和有效 UID(以及更多)。
其次,执行文件永远不会改变进程的真实UID或真实GID。
第三,执行foo
不会改变任何进程 ID 的值,因为它的模式中没有设置 setUID 或 setGID 位。
bar
当您不问任何问题时,为什么还要费心去规定一个在其模式中设置了 setGID 位的文件呢?
请做更多研究和编辑你的问题变得更加连贯。