亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

shell_exec()子進程應該繼承euid嗎?

shell_exec()子進程應該繼承euid嗎?

PHP
皈依舞 2023-08-06 15:32:22
我以 root 身份運行 php-cli 7.3.19(在 Debian 10 Buster、linux 內核 4.19.0-8-amd64 上),在使用 posix_seteuid() 更改我的 euid 后,子進程應該繼承我的 euid ?我以為答案是肯定的,但是測試了一下,root@devdb:/srv/http/easyad_branches# whoamirootroot@devdb:/srv/http/easyad_branches# iduid=0(root) gid=0(root) groups=0(root)root@devdb:/srv/http/easyad_branches# php -r ' \var_dump(posix_seteuid(posix_getpwnam("www-data")["uid"])); \var_dump(shell_exec("whoami;id")); \ posix_seteuid(0); \var_dump(posix_setuid(posix_getpwnam("www-data")["uid"])); \ var_dump(shell_exec("whoami;id"));'bool(true)string(44) "rootuid=0(root) gid=0(root) groups=0(root)"bool(true)string(53) "www-datauid=33(www-data) gid=0(root) groups=0(root)"看起來 whoami 繼承了我的uid因為它是euid,而不是繼承我的euid因為它是euid,這是預期的行為嗎?換句話說,我得到了bool(true) root bool(true) www-data,但我預料到了bool(true) www-data bool(true) www-data,是我的期望錯了,還是有其他事情發生?
查看完整描述

1 回答

?
qq_笑_17

TA貢獻1818條經驗 獲得超7個贊

看起來 whoami 繼承了我的 uid 因為它是 euid,而不是繼承了我的 euid 因為它是 euid,這是預期的行為嗎?

我對 PHP 不是 100% 確定,但在直接調用 Linux 系統調用的編程語言(例如 C 或 C++)中,這種行為是正常的。

這種行為的一個眾所周知的副作用是,將位設置set-euid為 shell 腳本是沒有意義的(只要使用“正?!眘hell - 例如 bash -):

shell(例如/bin/sh)將在設置為不同的 UID 的情況下啟動euid,但由 shell 啟動的程序將同時具有euiduid設置為uidshell 的值,即啟動腳本的用戶的 UID...


查看完整回答
反對 回復 2023-08-06
  • 1 回答
  • 0 關注
  • 113 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號