迄今爲止我所讀到的所有文獻都在setuid
中,以暗示它是系統調用的方式談論seteuid
。第2節man
頁面從不會說功能是否是系統調用,所以seteuid(2)
沒有幫助。如果它不是系統調用,意味着內核不提供該功能,那麼如何實現「設置有效的UID」?在Linux上seteuid系統調用?
3
A
回答
6
第2節手冊頁是全部系統調用 - 這是第2節的用途。第3節手冊頁都是庫調用,因爲這是第3節的目的。對於部分名單見人(1)(手冊頁man
本身)和他們是什麼:
1 Executable programs or shell commands
2 System calls (functions provided by the kernel)
3 Library calls (functions within program libraries)
4 Special files (usually found in /dev)
5 File formats and conventions eg /etc/passwd
6 Games
7 Miscellaneous (including macro packages and conventions), e.g.
man(7), groff(7)
8 System administration commands (usually only for root)
9 Kernel routines [Non standard]
0
您可以輕鬆地或驗證,如果它是一個系統調用,如果它是在libc中編寫一個定義小程序和運行strace就可以了。例如,
int main() {
seteuid();
}
gcc -o main main.c
-bash-4.2$ strace ./main 2>&1 | grep set
setresuid(-1, 1, -1) = -1 EPERM (Operation not permitted)
所以在這種情況下,seteuid是在libc中實現的。實施
相關問題
- 1. 在SUSE linux上綁定系統調用
- 2. Linux系統調用
- 3. 在Linux平臺上捕獲文件系統系統調用
- 4. linux系統調用getpeername C++
- 5. linux系統調用執行
- 6. 開放系統調用 - Linux
- 7. Linux系統調用誰
- 8. nasm系統調用Linux
- 9. Linux阻止系統調用
- 10. Linux系統調用getifaddr C++
- 11. 宏+ Linux系統調用(NASM)
- 12. 在Linux機器上調用系統調用
- 13. x86 linux系統調用調用約定?
- 14. Python的系統調用,在Windows和Linux
- 15. 在Linux的NFS掛載系統調用
- 16. 在Linux中創建系統調用
- 17. 在Linux系統()調用的問題
- 18. 消息隊列。 msgsend msgrcv。系統V在C系統調用(Linux)
- 19. 在64位系統上添加新的系統調用到Linux Kernel 3.13
- 20. linux系統中使用的for_each_zone在新系統調用中調用
- 21. 在Linux上使用C開放系統調用
- 22. 使用Linux系統調用和C++中
- 23. 使用LKM實現Linux系統調用
- 24. 通過系統調用在Linux上監控內存
- 25. 本地系統調用在Linux上的Ruby
- 26. 系統調用在Linux上如何實際發生?
- 27. Linux glibc系統調用包裝位置
- 28. sys_sendto Linux系統調用實現
- 29. Linux系統調用流程序列號
- 30. x86_64彙編Linux系統調用混淆