J'ai découvert aujourd'hui que faire fonctionner screen en tant qu'utilisateur différent, ce qui me rend soudo ne fonctionnera pas!
c'est à dire
ssh bob@server # ssh into server as bob
sudo su "monitor" -
screen # fails: Cannot open your terminal '/dev/pts/0'
J'ai un script qui s'exécute en tant qu'utilisateur "moniteur". Nous l'exécutons dans une session d'écran afin de voir la sortie à l'écran. Le problème est que nous avons un certain nombre d’utilisateurs qui se connectent avec leur propre compte (par exemple, bob, james, susie, etc.), puis ils se connectent ensuite à l’utilisateur «moniteur». Leur donner accès à l'utilisateur "moniteur" est hors de question.
sudo
gnu-screen
chanceytaxi
la source
la source
sudo su "user" -
. Pourquoi ne pas utilisersudo -u user -s
?sudo su
- je pense que c'est simplement ce à quoi les gens s'habituent (dans mon cas, c'est parce que vous n'avez pas besoin de connaître les drapeaux sudosudo su
- je ne pense pas avoir déjà lu la page de manuel sudo :)Réponses:
Essayez d’exécuter en
script /dev/null
tant qu’utilisateursu
avant de lancer l’écran - c’est un petit bidouillage de ghetto, mais cela devrait rendre l’écran heureux.la source
script
pouvez l'utiliser pour vous lancerscreen
. Ensuite, il vous suffit de sortir deux fois (une foisscreen
, une foissu
). (Ceci est quelque chose que lascript
page de manuel peut clarifier pour vous, si vous prenez le temps de le lire ...)sudo -u bob script -q -c 'screen -dr myscreen' /dev/null
. Il ne vous reste alors qu’un seul terminal à quitter / déconnecter.script
ouvre son propre périphérique tty, appartenant à l'utilisateur qui l'a exécuté (regardez dedans/dev
et vous le verrez apparaître après que vous ayez exécutéscript
).screen
puis saisit ce périphérique tty (qui appartient à l'utilisateur qui l'exécute, descreen
sorte qu'il n'a aucun problème à y accéder). C'est un travail de piratage total, mais cela fonctionne. En regardant certaines de mes machines, il semble que les nouvelles versions de screen semblent installer setuid-root, ce qui fonctionne également, mais signifie que vous avez un autre fichier binaire setuid-root flottant, ce qui rend certaines personnes mal à l'aise.J'utilise une fonction de wrapper
screen
pour le ou les utilisateurs auxquels je suissudo su
associé. Voici la fonction d'emballage que j'ai ajoutée aux utilisateurs~/.bashrc
:Cela me permet d’utiliser toutes les options et tous les paramètres
screen
que je souhaiterais peut-être utiliser. Je songe à mettre cette fonction à l'échelle du système.la source
En supposant qu'ils soient SSH dans l'hôte de toute façon, vous pouvez ajouter les clés publiques ssh pour chaque utilisateur ayant besoin d'accéder au compte du moniteur dans le fichier ~ monitor / .ssh / allowed_keys. Ensuite, sur la machine distante de chaque utilisateur, ils peuvent exécuter
la source
En supposant que nous parlons de cette erreur:
Voici un one-liner (pourrait être utilisé comme "alias gobob", par exemple):
Explication:
Cela va démarrer un shell (comme login shell) en tant qu'utilisateur bob. L'utilisateur bob commence
script
, il est dit d'invoquer un bash (peut être un tiret ou ksh ...) et une copie de la session est jetée.la source
Il faudrait probablement modifier les autorisations sur le périphérique en question ou ajouter un moniteur à un groupe autorisé à lire ce périphérique, ce serait ma première tendance. Mais il vous faudra peser les implications en termes de sécurité.
la source
Vous dites que vous faites:
Je me pose des questions sur le tiret de fuite. Je fais habituellement:
Le tiret (selon la page de manuel su) indique à su de "transformer le shell en shell de connexion". Cela signifie que tous les scripts de démarrage habituels du shell seront créés à la source et que les éléments tels que PATH et HOME seront correctement définis.
la source
sudo su - username
etsudo su username -
faire la même chose.Je viens de frapper ce problème. Résolu avec
chmod +rw $(tty)
avant de lancer sudo. Le problème avec cette solution est que tout le monde peut se connecter et surveiller votre terminal par la suite.la source
gpg
par exemple). Et sûrement, il ne sera jamais sur un système avec des utilisateurs malveillants qui surveilleraient lestty
mots de passe et les reniflent ...