1
晚上好, 我想在C編寫一個suid-root二進制文件,我偶然發現了以下問題: 我將它作爲非特權用戶user1我可以使用setuid/seteuid來改變我想要的任何用戶ID。問題是我不能用有效的組ID來做到這一點。代碼 部分:setegid()在一個suid根二進制C
if (setegid(VariableID) == -1) {
perror("setegid failed");
exit(1);
}
,這將返回:
setegid failed: Operation not permitted
請注意,我可以成功地改變根之間的組ID(0)和執行二進制的用戶,但我不能改變到其他團體。不應該這樣做,因爲二進制文件像UID/EUID一樣是suid-root文件?
改變組第一,然後用戶 – 2014-09-26 14:26:27
你能提供一些關於爲什麼發生這種情況的更多信息? – zakkak 2014-09-26 14:35:05
據我瞭解,如果您先更改用戶,該用戶可能沒有更改組ID的權限,而如果您是root用戶,則當然可以這樣做。 – DaKnOb 2014-09-26 14:46:56