Eri*_*ric 12 python linux solaris setuid
我作为一个没有特权的用户在linux和Solaris上运行这个小的python脚本:
#!/usr/bin/python
import os
print 'uid,euid =',os.getuid(),os.geteuid()
Run Code Online (Sandbox Code Playgroud)
在运行之前,setuid位在脚本上设置(而不是在python解释器上):
chown root:myusergrp getuid.py
chmod 4750 getuid.py
Run Code Online (Sandbox Code Playgroud)
在Solaris上,由于setuid位而设置了有效uid:
uid,euid = 10002 0
Run Code Online (Sandbox Code Playgroud)
但不是在Linux上:
uid,euid = 10002 10002
Run Code Online (Sandbox Code Playgroud)
请注意,Solaris和Linux的python版本均为2.6
是否可以让Python Linux作为Python Solaris运行?
Dav*_*ess 23
大多数Unix发行版通常不允许您在使用#的文件上使用setuid!翻译.Solaris恰好是允许它使用的,因为它使用比大多数其他发行版更安全的实现.
有关机制如此危险的原因的更多背景,请参阅此FAQ条目:如何使setuid shell脚本工作?
有关更多讨论以及如何编译将运行脚本的setuid可执行文件,请参阅此链接:shell脚本上的setuid
相关部分:
int main()
{
setuid( 0 );
system( "/path/to/script.sh" );
return 0;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17421 次 |
| 最近记录: |