我已经知道真正的用户ID.它是系统中用户的唯一编号.在我的系统中,My uid是
$ echo $UID
1014
$
Run Code Online (Sandbox Code Playgroud)
另外两个ID代表什么?什么是有效用户ID和保存的用户ID的使用以及我们在系统中使用它的位置.
我作为一个没有特权的用户在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运行?
我以root用户身份登录终端.
然后在Python中:
os.setuid(471)能够切换到子根,但当我尝试切换回root用户时,os.setuid(0)我收到以下错误:Operation not permitted
请让我知道如何从子根切换回root用户.