好吧,这至少让我忙了一天,从昨晚开始。我正在尝试做一些非常简单的事情:运行一个bash脚本,它创建了几个文件夹并运行了一个docker容器,但是使用了upstart。但我得到了许可错误:
setuid的用户cannot enable tty mode on non tty input我尝试过将setuid与用户vuvu一起使用,或者只是将其置之不理。如果我不使用setuid,我就会得到cannot enable tty mode on non tty input,如果我使用设置为admin的用户,我会得到这个错误以及cannot create directory 'log/1438359854': Permission denied。
下面是我的visudo输出:
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
# User privilege specification
root ALL=(ALL:ALL) ALL
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
# Members of the admin group may gain root privileges
%admin ALL=(ALL) NOPASSWD:ALL
%adm ALL=(ALL) NOPASSWD:ALL
vuvu ALL=(ALL:ALL) NOPASSWD:ALL
# See sudoers(5) for more information on "#include" directives:
#includedir /etc/sudoers.d我已经将用户vuvu作为admin的一部分,而当它作为adm的一部分而不起作用时。
我的新贵很简单:
description "Job docker_some_api.conf created by create_init.py"
author "create_init.py"
start on runlevel [2345]
stop on runlevel [!2345]
setuid vuvu
chdir /home/myuser/Docker/docker_some_api/
script
exec /home/myuser/Docker/docker_some_api/run.sh
end script这个shell脚本很简单(我只是简单地运行了ubuntu):
sudo docker run -t -i ubuntu发布于 2015-08-01 16:09:06
找到了!!
问题是指定-t,它永远不能工作,因为它分配的是一个伪TTY。systemd的一个类似问题是已报告,但这个问题是针对暴发户的。
所以我要做的就是改变到这个样子:
sudo docker run -i ubuntu现在看起来很容易,永远不要在没有意识到它们所做的事情的情况下复制选项。
https://askubuntu.com/questions/655180
复制相似问题