我试图运行一个Python脚本作为其他用户(而不是根),这也是一个没有shell的系统用户。 我明白,我不能直接在脚本上设置suid标志,所以我写了一个C ++包装器。
wrapper.cpp
#include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <iostream> int main(void) { std::cout << geteuid() << std::endl; setgid(getgid()); setuid(getuid()); execl("/usr/bin/python2.6","/usr/bin/python2.6","test.py",NULL); }
并设置以下权限
sudo chown NoShellUser:NoShellGroup /path/to/wrapper sudo chmod 7755 /path/to/wrapper
如何在Linux / var / www中设置权限以允许从PHP-Apache自动覆盖
subprocess权限被拒绝
检查应用程序是否可以没有pipe理员权限运行
目录上的chmod 777的潜在问题?
import sys import getpass import os import pwd print "VERSION:",sys.version print "USER:",getpass.getuser(),pwd.getpwuid(os.getuid()) print "EUSER:",pwd.getpwuid(os.geteuid())
具有以下权限,如果重要的话
sudo chown NoShellUser:NoShellGroup /path/to/test.py sudo chmod 7755 /path/to/test.py
现在,当我以用户“testing”的方式运行这整个事情时,我看到:
255 # UID of NoShellUser VERSION: 2.6.8 (unkNown,Apr 12 2012,20:59:36) # Don't kNow where that comes from [GCC 4.1.2 20080704 (Red Hat 4.1.2-52)] # Don't kNow where that comes from USER: test pwd.struct_passwd(pw_name='test',pw_passwd='hash',pw_uid=20804,pw_gid=604,pw_gecos='Name Surname',pw_dir='/home/test',pw_shell='/bin/bash') EUSER: pwd.struct_passwd(pw_name='test',pw_shell='/bin/bash')
正如你所看到的有效的用户仍然是“testing”。 有人可以指点我,我做错了什么,因为我已经看了几个例子,他们似乎都显示完全相同的东西或多或less?
什么权限jenkins必须执行shell命令而不是不安全?
logonSessionId帐户分配了新证书中的读取权限?
如何在Windows下设置Linux主机的文件权限?
如果我的PHP脚本写在那里,那么/ var / tmp / mysite应该是什么权限?
从Windows C程序简单的文件权限控制
你的包装稍微错了 – 试试这个
#include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <iostream> int main(void) { std::cout << "Real user " << getuid() << std::endl; std::cout << "Effective user " << geteuid() << std::endl; setregid(getegid(),getegid()); setreuid(geteuid(),geteuid()); std::cout << "Real user " << getuid() << std::endl; std::cout << "Effective user " << geteuid() << std::endl; execl("/usr/bin/python2.6",NULL); }
在执行python脚本之前,它将真实有效的用户/组ID标识为有效的组标识。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。