web-dev-qa-db-fra.com

Upstart pour les autorisations docker et setuid

D'accord, cela m'a occupé pendant au moins une journée, depuis hier soir. J'essaie de faire quelque chose de très simple: exécuter un script bash qui crée quelques dossiers et exécute un conteneur docker - mais en utilisant upstart. Mais je reçois des erreurs de permission:

  • soit une erreur d'autorisation pour créer des dossiers en fonction de l'utilisateur défini comme setuid
  • et en tout cas, j'obtiens l'erreur cannot enable tty mode on non tty input

J'ai essayé d'utiliser setuid avec l'utilisateur vuvu ou de le laisser en vain. Si je n'utilise pas setuid j'obtiens cannot enable tty mode on non tty input et si j'utilise un utilisateur que j'avais défini comme administrateur, j'obtiens à la fois cette erreur et cannot create directory 'log/1438359854': Permission denied.

Voici ma sortie 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

et j'ai fait de l'utilisateur vuvu une partie de admin et quand cela n'a pas fonctionné dans le cadre de adm.

Mon arrivée est simple:

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

Et le script Shell est simple (j'ai simplifié pour exécuter juste ubuntu):

Sudo docker run -t -i ubuntu

Rien ne semble fonctionner et je suis vraiment frustré maintenant. Pouvez-vous m'aider?

1
Aliostad

TROUVEZ-LE !!

Le problème spécifie -t qui ne peut jamais fonctionner car il alloue un pseudo-ATS. Un problème similaire avec systemd était signalé mais celui-ci était pour parvenu.

Donc, changer pour cela était tout ce que j'avais à faire:

Sudo docker run -i ubuntu

Cela semble facile maintenant, ne copiez plus simplement les options sans vous rendre compte de ce qu'elles font.

1
Aliostad