Ceci peut être une question stupide.
J'ai un script que je veux être portable entre Mac OS X et une boîte Linux, j'utilise. Dans OS X, une commande dans le script nécessite Histoire longue courte, comment exécuter une commande dans un script avec J'ai essayé d'utiliser p> et p> mais ils semblent tous les deux erreurs. (Ils disent "désolé" et avancez, je suppose parce qu'il tente de courir comme Je sais qu'il doit y avoir un moyen idiot et facile de faire cela, que suggère tout le monde? p> p> sudo code>, où sur la boîte Linux, elle ne le fait pas. P>
sudo code>, tout en supprimant les privilèges élevés du reste du script? p>
root code> et
root code> n'a pas de mot de passe). P>
3 Réponses :
Essayez sudo su code> au lieu de
su code> pour passer à un utilisateur régulier. P>
Quand j'essaye "sudo su umount / dev / disk1", je reçois "su: connectés inconnus: utomé". En regardant par l'homme sudo, je ne peux que conclure qu'il recherche un utilisateur nommé "utount"?
@Rick: Oui, il cherche un utilisateur nommé uton code>.
SU code> est de passer à un autre utilisateur (généralement root) et ne peut être exécuté que comme une racine, de sorte que l'argument nécessaire est un nom d'utilisateur.
sudo code> est destiné à exécuter une seule commande comme utilisateur différent. Dans votre exemple, vous dites que vous souhaitez exécuter la commande
su umount / dev / disk1 code> comme root, qui dit ensuite que vous souhaitez passer à l'utilisateur
umount code> (avec un argument supplémentaire ignoré).
Vous pouvez "révoquer" la permission de sudo (réellement: fermer la fenêtre time sudo tôt) en faisant: En outre, vous pouvez configurer sudo pour permettre uniquement aux autorisations élevées sur certaines commandes, ou même à imiter la non-racine pour des commandes spécifiques. Voir Espérons un exemple intéressant dans votre contexte: P> L'utilisateur Fred peut exécuter des commandes comme utilisateur dans le DB Runas_alias (Oracle ou Sybase) sans donner de mot de passe. P>
homme sudoers code>. La section
{
trap "sudo -k" EXIT INT QUIT TERM
sudo ls # whatever
}
C'était exactement ce dont j'avais besoin. Exécutez la commande, puis exécutez sudo -k. Merci beaucoup.
Merci pour les sudoers; était juste ce dont j'avais besoin.
Utiliser Voici la sortie lorsque je l'exécute: P> sudo code> sans
su code>:
$ ./sudotest
gordon
Password:
root
gordon