我的脚本需要以root
的形式执行,对于someuser
这样的一些任务,我还需要获得someuser
$HOME
路径,这就是问题所在。你知道吗
对于那个作业(find user home),我使用os.path.expanduser
。你知道吗
如前所述,脚本需要使用su
更改他的用户,并运行代码将用户带回家:
from os.path import expanduser
def user_home():
home = expanduser("~")
return home
print user_home()
主脚本调用测试_主页.py与su
:
# su someuser -c /tmp/test_home.py
/home/someuser
非常好。但是对于AIX和Solaris,脚本不会得到someuser
$HOME
,而是得到root
$HOME
。你知道吗
AIX:以根用户身份执行
su someuser -c /tmp/test_home.py
/
Solaris: 以根用户身份执行
su someuser -c /tmp/test_home.py
shell-init: error retrieving current directory: getcwd: cannot access parent directories: Permission denied
/root
我已经在几个发行版上测试了此代码:
问题是它只在AIX和Solaris上。有人知道为什么吗?你知道吗
使用带有-
或-l
的login可以工作,但是我不能在脚本上使用su -
。有没有想过如何克服这个问题?你知道吗
我试着不使用上面提到的shell方法,但是我已经没有选择了
cat /etc/passwd | grep someuser | cut -d: -f 6
我也遇到了同样的问题,在使用sudo或su之后,它给了根主目录,我用下面的方法修复了这个问题:
相关问题 更多 >
编程相关推荐