1 votes

Démarrer le terminal avec la commande ; puis aller à Bash Shell.

Via un raccourci sur le bureau, un administrateur va lancer un Shell en tant qu'autre utilisateur. L'utilisateur doit entrer dans le Shell sans privilèges élevés, mais exécuter la première commande avec des privilèges élevés. À la fin, l'utilisateur devrait se trouver dans un Shell non privilégié qui est maintenu ouvert pour une utilisation ultérieure.

Comment dois-je m'y prendre ?

Question éditée pour WIP Réponse.

Dernier test :

gksudo "gnome-terminal --execute bash -c 'boss "apt-get update"; bash'"

Ne fonctionne pas.

Ce qui suit est la réponse grâce à Laurent qui m'a aidé à réfléchir. Malheureusement, ma situation était trop complexe pour que je puisse l'exprimer correctement.

J'ai un utilisateur administrateur qui ne se connecte jamais. Il utilise des utilisateurs mandataires pour aller chercher des choses et faire ce qu'il veut. L'utilisateur nommé mise à jour se trouve dans le fichier sudoers et est autorisé à apt-get avec NOPASSWD. admin veut un raccourci menant à un terminal gnome qui appelle automatiquement apt-get update à l'exécution parce que l'admin veut installer quelque chose juste après, quelque chose dont on ne peut pas prévoir qu'il sera mis dans un script. Les mises à jour automatiques ne fonctionnent pas pour l'administrateur, parce que l'administrateur est protégé par un pare-feu de l'Internet et est obligé d'engager des hommes de main pour les mises à jour du système et pour récupérer d'autres téléchargements.

Merci Laurent de m'avoir conduit à la bonne réponse ! La voici :

gksudo -u update "gnome-terminal --execute bash -c 'sudo apt-get update;bash'"

7voto

Ereck Johan Points 131

Vous devez faire le lanceur en utilisant ceci :

gksudo "gnome-terminal --execute bash -c 'apt-get "update"; bash'"

Modifier après la définition de ne pas ouvrir le terminal en tant que root (pour le laisser avec des privilèges non élevés après l'exécution de la commande) :

gnome-terminal --execute bash -c "sudo apt-get 'update';bash"

De cette façon, le terminal s'ouvrira, demandera le mot de passe (si nécessaire) et continuera.

Obs : si votre commande n'a pas besoin de sudo il suffit de le supprimer de la commande. J'ai utilisé gksudo dans la première réponse parce que votre exemple l'utilisait et que je pensais qu'il était nécessaire pour l'ensemble du processus (et pour laisser le terminal avec des privilèges élevés).

Les deux lanceurs fonctionneront mais le premier demandera le mot de passe dans l'interface graphique et exécutera tout le processus en tant que sudo en laissant le terminal ouvert en "mode sudo" et le deuxième lanceur ouvrira le terminal, y demandera le mot de passe, exécutera la commande en tant que sudo et laissera le terminal en "mode utilisateur".

Vous pouvez modifier sudo (avec visudo ) pour qu'il utilise sudo sans mot de passe (et peut-être restreindre cet utilisateur à quelques commandes seulement si ce n'est pas seulement celle-ci) mais ce n'est pas la chose la plus recommandée à faire.

Si vous pouvez donner plus d'informations sur ce que vous essayez de faire, peut-être y a-t-il une autre façon de le faire ? (peut être meilleure... ou pire... bien sûr :) )

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