Upstart para permissões de janela de encaixe e setuid

1

OK, isso me manteve ocupado por um dia, pelo menos, desde a noite passada. Eu estou tentando fazer algo muito simples: executar um script bash que cria algumas pastas e executa um contêiner docker - mas usando upstart . Mas recebo erros de permissão:

  • erro de permissão para criar pastas, dependendo de qual usuário foi definido como setuid
  • e, em qualquer caso, recebo o erro cannot enable tty mode on non tty input

Eu tentei usar setuid com o usuário vuvu ou simplesmente deixá-lo sem sucesso. Se eu não usar setuid , recebo cannot enable tty mode on non tty input e, se eu usar um usuário que eu defini como admin, recebo tanto esse erro quanto cannot create directory 'log/1438359854': Permission denied .

Aqui está minha visudo output:

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

e eu fiz o usuário vuvu parte de admin e quando ele não funcionou como parte de adm .

Minha novata é simples:

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

E o shell script é simples (eu mudei para executar apenas o Ubuntu):

sudo docker run -t -i ubuntu

Nada parece funcionar e estou realmente frustrado por agora. Vocês podem ajudar?

    
por Aliostad 31.07.2015 / 22:35

1 resposta

1

ENCONTRA-SE !!

O problema é especificar -t , que nunca pode funcionar porque está alocando um pseudo-TTY. Um problema semelhante com o systemd foi relatado , mas este foi para iniciantes.

Então mudar para isso era tudo que eu tinha que fazer:

sudo docker run -i ubuntu

Parece fácil agora, nunca copie as opções sem perceber o que elas fazem.

    
por Aliostad 01.08.2015 / 18:09