这可能是一个愚蠢的问题,但我不理解EUID也不UID正确。
真实身份证件和有效身份证件的描述很清楚,我明白了。根据我在 Google 和电子书中发现的内容,当使用su、sudo或 时SUID,有效 ID 应该更改。另外,据我了解UID,Bash 应该包含真实 ID 并且EUID应该包含有效 ID。
当我使用,EUID或者但每当我尝试并且两者的结果都是相同的时,我的假设是并且应该是不同的。
而且,我一次又一次地尝试,它们总是一样的。UIDsusudoSUIDecho $EUIDecho $UIDid -uid -r -u
有人可以向我解释一下到底在什么时候、什么情况$EUID下$UID有不同吗?
默认情况下 bash 会删除权限。有一种特殊的特权模式set -p。
# copy bash executable
$ sudo cp /usr/bin/bash ./bash
# set the suid mode
$ chmod +s ./bash
$ ls -l bash
-rwsr-sr-x 1 root root 903504 05-29 23:48 ./bash*
# run it
$ ./bash -p -c 'echo $UID $EUID'
1000 0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1346 次 |
| 最近记录: |