1 votes

Utiliser sudo dans Shell Shell

J'ai accès au compte d'un autre utilisateur en utilisant une commande :

sudo su - other_user

Je n'ai pas de mot de passe. Il semble que ce soit la seule commande que sudo m'autorise.

Après cela, je suis en mesure d'effectuer plusieurs tâches comme la copie de fichiers et le redémarrage du serveur. Je voudrais automatiser ces tâches afin qu'un script puisse être exécuté par moi, qui obtiendrait les droits d'other_user et ferait ce qu'il a à faire. Cependant, sudo génère un autre Shell, qui jusqu'à ce que je le quitte bloque l'exécution du Shell. Est-il possible de contrôler cette Shell et d'y envoyer des commandes à partir de mon Shell ?

Mise à jour 2011-11-01 :

J'ai essayé les suggestions des réponses et ces deux commandes :

sudo -u other_user whoami
sudo su - other_user -c "whoami"

demander le mot de passe.

Malheureusement, je n'ai pas pu trouver sudoers pour examiner les paramètres. La situation m'ennuie un peu car j'ai des privilèges pour faire ce que je veux, mais je ne peux pas automatiser cela.

2voto

Kenny Rasschaert Points 8737

Utilisez le -c de l'option su pour exécuter des commandes en tant qu'autre utilisateur.
Si nécessaire, vous pouvez également utiliser la sortie de ces commandes dans votre script, ou dans votre script.

Exemple :

[infeligo@server ~] cat /home/kenny/secretfile.txt  
cat: /home/kenny/secretfile.txt: Permission denied  
[infeligo@server ~] sudo su - kenny -c "cat /home/kenny/secretfile.txt"  
Dear diary: Today was a boring day at work. Good thing it's a friday!  
[infeligo@server ~]

1voto

CarpeNoctem Points 2407

L'utilisation de su n'est pas entièrement nécessaire.

$ sudo -u other_user whoami
other_user

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X