Bonjour à tous, J'ai une question sur la complétion. Je me connecte à la machine md (machine distante) par ssh. Afin d'avoir accès à tout et pour simplifier (je changerai plutard), j'ai ajouté use_moi au groupe wheel dans /etc/sudoers %wheel ALL=(ALL) NOPASSWD: ALL Je peux alors accéder aux differentes commandes , lister les repertoires qui normalement me sont interdits. Seulement, je ne peux plus beneficier de la complétion et je dois taper tout le chemin, tout le nom du fichier pour l'editer par exemple. L'utilisateur root a bien la complétion ains que le user_moi (quand il est autorisé et sans passer par sudo). C'est fatiguant quand on a connu le confort que procure la completion. Y a-t-il moyen d'en avoir dans ce cas précis (ssh sudo wheel)? J'ai oublié de dire que j'utilise bash 3.1dfsg-8 (debian) Merci d'avance.
On ven 02 février, Bayrouni wrote:
J'ai oublié de dire que j'utilise bash 3.1dfsg-8 (debian)
Utilise zsh. (Je sais, ce n'est pas forcément la réponse que tu attendais) -- http://asyd.net/home/ - Home Page http://guses.org/home/ - French Speaking (Open)Solaris User Group
Bruno Bonfils a écrit :
On ven 02 février, Bayrouni wrote:
J'ai oublié de dire que j'utilise bash 3.1dfsg-8 (debian)
Utilise zsh.
(Je sais, ce n'est pas forcément la réponse que tu attendais)
Pour être sincère, Ce n'est pas la réponse que je voulais , mais c'est une réponse à laquelle je m'attendais :) Je suis dans un IRC, et j'ai eu une discussion sympa avec une autre personne qui m'avait aussi suggéré un vrai shell (zsh en l'occurence quand j'ai insisté :) Ce n'est qu'une question de temps et de courage pour faire la migration. Merci pour ta réponse.
Bruno Bonfils a écrit :
On ven 02 février, Bayrouni wrote:
J'ai oublié de dire que j'utilise bash 3.1dfsg-8 (debian)
Utilise zsh.
(Je sais, ce n'est pas forcément la réponse que tu attendais
ou alors, # enable programmable completion features (you don't need to enable # this, if it's already enabled in /etc/bash.bashrc and /etc/profile # sources /etc/bash.bashrc). if [ -f /etc/bash_completion ]; then . /etc/bash_completion fi Entre autres, ça permet de faire la completion "à travers" le sudo Si j'ai bien compris ton problème :) -- nodens
Clement Hermann a écrit :
Bruno Bonfils a écrit :
On ven 02 février, Bayrouni wrote:
J'ai oublié de dire que j'utilise bash 3.1dfsg-8 (debian)
Utilise zsh.
(Je sais, ce n'est pas forcément la réponse que tu attendais
ou alors,
# enable programmable completion features (you don't need to enable # this, if it's already enabled in /etc/bash.bashrc and /etc/profile # sources /etc/bash.bashrc). if [ -f /etc/bash_completion ]; then . /etc/bash_completion fi
Entre autres, ça permet de faire la completion "à travers" le sudo
Si j'ai bien compris ton problème :)
Pour illustrer mon cas (problème) voici un exemple: Le but est de pouvoir faire la completion sur un répértoire précis, comme exemple /etc/asterisk; En tant qu'utilisateur normal et sans sudo: ll /e + tab => /etc + ast => /etc/asterisk + tab => rien En tant qu'utilisateur normal avec sudo : Exactement la meme chose que dans le cas précédent. ll -d /etc/asterisk : drwxrwx--- 2 asterisk asterisk 1,6K 2007-02-02 16:05 /etc/asterisk /etc/asterisk contient un certain nombre de fichiers et quelques reps. ll /etc/asterisk/*: permission denied sudo ll /etc/asterisk/ ... 4 -rw-rw---- 1 asterisk asterisk 397 2006-11-06 07:43 rtp.conf 20 -rw-rw---- 1 asterisk asterisk 20200 2006-11-06 07:43 sip.conf.example 4 -rw-rw---- 1 asterisk asterisk 315 2006-11-06 07:43 sip_notify.conf ... Donc la completion marche avec /etc /etc/asterisk, mais pas avec le contenu de /etc/asterisk. Pourtant le contenu a des droits de lecture et d'écriture pour le owner et le groupe largement suffisant pour un sudo non? Merci
On ven 02 février, Bayrouni wrote:
En tant qu'utilisateur normal et sans sudo: ll /e + tab => /etc + ast => /etc/asterisk + tab => rien
Attention, même avec zsh tu n'auras pas de complétion pour sudo vim /etc/asterisk/<tab> si ton user n'a pas le droit de lister le contenu du répertoire, car bien évidemment, la complétion est effectué via ton utilisateur courant. -- http://asyd.net/home/ - Home Page http://guses.org/home/ - French Speaking (Open)Solaris User Group
Bruno Bonfils a écrit :
On ven 02 février, Bayrouni wrote:
En tant qu'utilisateur normal et sans sudo: ll /e + tab => /etc + ast => /etc/asterisk + tab => rien
Attention, même avec zsh tu n'auras pas de complétion pour sudo vim /etc/asterisk/<tab> si ton user n'a pas le droit de lister le contenu du répertoire, car bien évidemment, la complétion est effectué via ton utilisateur courant.
D'accord, sudo est utilisé pour permettre l'écecution des commandes auquelles un_user n'a pas accès, mais la complétion est indépendante de sudo. Si un_user n'a pas les droits de lister un repertoire il ne servirait de rien d'avoir ou non la complétion. Est-ce que c'est bien ça? Si oui, comment detourner ce problème que je croyais résoudre en 3 minutes. J'ai meme : user_moi ALL=(ALL) NOPASSWD: ALL dans le sudoers. Je pensais que: Celà ne me permet-il pas d'avoir des droits de lecture, d'execution d'edition de listage, de copiage, d'effacement ... sur tout et tout (equivalence root) ? Merci de m'eclairer
On ven 02 février, Bayrouni wrote:
Bruno Bonfils a écrit :
On ven 02 février, Bayrouni wrote:
En tant qu'utilisateur normal et sans sudo: ll /e + tab => /etc + ast => /etc/asterisk + tab => rien
Attention, même avec zsh tu n'auras pas de complétion pour sudo vim /etc/asterisk/<tab> si ton user n'a pas le droit de lister le contenu du répertoire, car bien évidemment, la complétion est effectué via ton utilisateur courant.
D'accord, sudo est utilisé pour permettre l'écecution des commandes auquelles un_user n'a pas accès, mais la complétion est indépendante de sudo.
Précisement, la complétion est indépendante de sudo. Donc si un_user n'a pas le droit d'exécution sur un répertoire (i.e. le droit de lister le contenu de son répertoire) tu ne pourras pas avoir la complétion de ce répertoire avec un_user, sudo ou pas sudo.
Si un_user n'a pas les droits de lister un repertoire il ne servirait de rien d'avoir ou non la complétion.
Est-ce que c'est bien ça?
Voila.
Si oui, comment detourner ce problème que je croyais résoudre en 3 minutes.
Tu ne peux pas, et c'est normal.
J'ai meme :
user_moi ALL=(ALL) NOPASSWD: ALL dans le sudoers.
Je pensais que: Celà ne me permet-il pas d'avoir des droits de lecture, d'execution d'edition de listage, de copiage, d'effacement ... sur tout et tout (equivalence root) ?
oui, tu as le droit sur tout, à partir du moment ou les commandes seront exécutées via sudo, ce qui n'est pas le cas quand tu fais sudo cmd <tab> mais uniquement quand tu fais sudo cmd <entrée> -- http://asyd.net/home/ - Home Page http://guses.org/home/ - French Speaking (Open)Solaris User Group
En guise de conclusion, je voudrais juste ajouter celà: J'ai été déçu par le fait de ne pas pouvoir faire un simple sudo commande + tab, alors que j'avais une magnifique ligne dans le suoders qui m'octrayait les droits supremes sur mon system. Ma déception s'est vite évaporée quand j'ai compris le Pourquoi. Je ne peux que remercier Bruno Bonfils pour sa patience et son apport. Je remercie aussi la liste d'etre là et d'exister. A+ et bonne soirée
Merci Clement Hermann pour ces précisons précieuses. J'ai du effacer ton post par inadvertance (il est temps que je repose u n peu mes yeux :) Veux-tu bien m'envoyer ton mail encore une fois (en privé ou via la liste). Merci A+
On 2007-02-02 17:42:08 +0100, Bayrouni wrote:
En guise de conclusion, je voudrais juste ajouter celà:
J'ai été déçu par le fait de ne pas pouvoir faire un simple sudo commande + tab, alors que j'avais une magnifique ligne dans le suoders qui m'octrayait les droits supremes sur mon system.
En fait, tu peux, mais comme le shell n'est pas censé savoir quoi faire pour obtenir ces droits, c'est à toi de programmer ta propre fonction de complétion pour que quand tu tapes "sudo commande + tab", la fonction va chercher la liste des fichiers avec un "sudo ls ...". Mais d'un autre côté, ta complétion sera probablement plus limitée, à moins d'écrire une fonction complexe. Si tu veux vraiment toutes les complétions comme si tu étais root, la solution est, dans ta fonction de complétion de sudo, lancer un script en sudo qui va simuler un "commande + tab" dans un zsh, et récupérer la liste des réponses. Mais je ne sais pas comment faire... -- Vincent Lefèvre <vincent@vinc17.org> - Web: <http://www.vinc17.org/> 100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/> Work: CR INRIA - computer arithmetic / Arenaire project (LIP, ENS-Lyon)
Vincent Lefevre a écrit :
On 2007-02-02 17:42:08 +0100, Bayrouni wrote:
En guise de conclusion, je voudrais juste ajouter celà:
J'ai été déçu par le fait de ne pas pouvoir faire un simple sudo commande + tab, alors que j'avais une magnifique ligne dans le suoders qui m'octrayait les droits supremes sur mon system.
En fait, tu peux, mais comme le shell n'est pas censé savoir quoi faire pour obtenir ces droits, c'est à toi de programmer ta propre fonction de complétion pour que quand tu tapes "sudo commande + tab", la fonction va chercher la liste des fichiers avec un "sudo ls ...". Mais d'un autre côté, ta complétion sera probablement plus limitée, à moins d'écrire une fonction complexe. Si tu veux vraiment toutes les complétions comme si tu étais root, la solution est, dans ta fonction de complétion de sudo, lancer un script en sudo qui va simuler un "commande + tab" dans un zsh, et récupérer la liste des réponses. Mais je ne sais pas comment faire...
Merci Vincent de ta réponse. Je vais me mettre tout doucement au zsh, puisque tous les chemins y mènent. :) Pourvu que d'autres pôles d'attractions me le permettent. (actuellement, configurer un voip (asterisk) et encoder toutes mes videos en X264 (bonjour mplayer/mencoder) et toutes la doc qui va avec. Je me demande si la terre ne devra pas tourner autour d'elle meme à une vitesse d'un 1/2 tour par 24h. Merci et bon week-end à tous Bayrouni
Sans vouloir dire de trucs stupide, pourquoi ton user à pas accès en lecture et execution dans ces dossiers? Je veux dire, sur ta machine privée, ton user à pas le write partout pour éviter les fausses manip et autres trucs joyeux du style, mais quel intérêt as-tu de limiter la lecture sur certains répertoires? Enfin ça à un peu rien à voir avec le problème:P Mais je me demandais comme ça. Autrement, dans le cas d'une machine sensible (serveur...), en multi user, tu peux simplement ajouter ton user dans le groupe du truc que tu config, et une fois la config terminée, tu l'enlève. Par exemple, dans le cas de ton asterisk, tu ajoute ton user au groupe asterisk pendant la config. Mais bon, je doute que cela soit une machine multi user, et si s'en est une, c'est un peu limite de mettre un asterisk (qui est par définition, un service carrier grade) sur une machine multi user. Juste mes pensées passagères, j'espère que ça peut t'aider. -- Kuon Programmer and sysadmin. "Computers should not stop working when the users' brain does."
On 2007-02-05 21:31:14 +0100, =?UTF-8?Q? Kuon_-_Nicolas_Goy_-_=E6=99=82=E6=9C=9F=E7=B2=BE?= =?UTF-8?Q?=E9=9C=8A_=28Goyman.com_SA=29 ?= wrote:
Je veux dire, sur ta machine privée, ton user à pas le write partout pour éviter les fausses manip et autres trucs joyeux du style, mais quel intérêt as-tu de limiter la lecture sur certains répertoires?
Il y a des fichiers que seul root peut lire pour des questions de sécurité. Ça peut être: pour quelqu'un qui arrive à pirater un utilisateur, afin que ce soit plus difficile de passer root (surtout sans laisser de trace), mais aussi en cas de création de nouveaux comptes. -- Vincent Lefèvre <vincent@vinc17.org> - Web: <http://www.vinc17.org/> 100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/> Work: CR INRIA - computer arithmetic / Arenaire project (LIP, ENS-Lyon)
Vincent Lefevre a écrit :
On 2007-02-05 21:31:14 +0100, =?UTF-8?Q? Kuon_-_Nicolas_Goy_-_=E6=99=82=E6=9C=9F=E7=B2=BE?= =?UTF-8?Q?=E9=9C=8A_=28Goyman.com_SA=29 ?= wrote:
Je veux dire, sur ta machine privée, ton user à pas le write partout pour éviter les fausses manip et autres trucs joyeux du style, mais quel intérêt as-tu de limiter la lecture sur certains répertoires?
Il y a des fichiers que seul root peut lire pour des questions de sécurité. Ça peut être: pour quelqu'un qui arrive à pirater un utilisateur, afin que ce soit plus difficile de passer root (surtout sans laisser de trace), mais aussi en cas de création de nouveaux comptes.
En effet, en plus des droits résérvés exlusivement à root (un peu partout dans le systeme), les repertoires et fichiers en question ont des droits par défaut (aucune intervention de ma part). Dans mon cas, il s'agissait des reps et fichiers créés par Asterisk lui-même lors de son installation (debian package). En voici un extrait: -rw-rw---- 1 asterisk asterisk 6,8K 2006-11-06 07:43 rpt.conf -rw-rw---- 1 asterisk asterisk 397 2006-11-06 07:43 rtp.conf -rw-rw---- 1 asterisk asterisk 502 2007-02-06 10:34 sip.conf A+ Bayrouni
On Feb 6, 2007, at 2:25 AM, Vincent Lefevre wrote:
On 2007-02-05 21:31:14 +0100, =?UTF-8?Q? Kuon_-_Nicolas_Goy_- _=E6=99=82=E6=9C=9F=E7=B2=BE?= =?UTF-8?Q? =E9=9C=8A_=28Goyman.com_SA=29 ?= wrote:
Je veux dire, sur ta machine privée, ton user à pas le write partout pour éviter les fausses manip et autres trucs joyeux du style, mais quel intérêt as-tu de limiter la lecture sur certains répertoires?
Il y a des fichiers que seul root peut lire pour des questions de sécurité. Ça peut être: pour quelqu'un qui arrive à pirater un utilisateur, afin que ce soit plus difficile de passer root (surtout sans laisser de trace), mais aussi en cas de création de nouveaux comptes.
Oui je sais bien, mais par machine privée, j'entend ta machine monouser, sans service accessibles dessus. Et je parlais pas de /etc/ shadow ou des trucs du style, mais juste de /etc/asterisk qui justifie un umask de 077 uniquement sur les machines où d'autres personnes peuvent se logger. -- Kuon Programmer and sysadmin. "Computers should not stop working when the users' brain does."
On 2007-02-06 14:16:20 +0100, =?UTF-8?Q? Kuon_-_Nicolas_Goy_-_=E6=99=82=E6=9C=9F=E7=B2=BE?= =?UTF-8?Q?=E9=9C=8A_=28Goyman.com_SA=29 ?= wrote:
On Feb 6, 2007, at 2:25 AM, Vincent Lefevre wrote:
Il y a des fichiers que seul root peut lire pour des questions de sécurité. Ça peut être: pour quelqu'un qui arrive à pirater un utilisateur, afin que ce soit plus difficile de passer root (surtout sans laisser de trace), mais aussi en cas de création de nouveaux comptes.
Oui je sais bien, mais par machine privée, j'entend ta machine monouser, sans service accessibles dessus.
Des machines privées sans accès internet, c'est peu courant. Rappelons qu'il y a parfois des trous de sécurité dans les navigateurs web, avec des effets du style: pouvoir lire n'importe quel fichier local du moment que l'utilisateur du navigateur a les droits correspondants. Bref, donc même si la machine n'a qu'un navigateur web, la protection des fichiers sensibles (surtout s'ils ont un nom "standard", i.e. qu'on peut deviner de l'extérieur) est importante, comme si la machine avait d'autres utilisateurs. -- Vincent Lefèvre <vincent@vinc17.org> - Web: <http://www.vinc17.org/> 100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/> Work: CR INRIA - computer arithmetic / Arenaire project (LIP, ENS-Lyon)
Bayrouni a écrit :
Bruno Bonfils a écrit :
On ven 02 février, Bayrouni wrote:
En tant qu'utilisateur normal et sans sudo: ll /e + tab => /etc + ast => /etc/asterisk + tab => rien
Attention, même avec zsh tu n'auras pas de complétion pour sudo vim /etc/asterisk/<tab> si ton user n'a pas le droit de lister le contenu du répertoire, car bien évidemment, la complétion est effectué via ton utilisateur courant.
D'accord, sudo est utilisé pour permettre l'écecution des commandes auquelles un_user n'a pas accès, mais la complétion est indépendante de sudo.
Si un_user n'a pas les droits de lister un repertoire il ne servirait de rien d'avoir ou non la complétion.
Est-ce que c'est bien ça?
Si oui, comment detourner ce problème que je croyais résoudre en 3 minutes.
J'ai meme :
user_moi ALL=(ALL) NOPASSWD: ALL dans le sudoers.
Je pensais que: Celà ne me permet-il pas d'avoir des droits de lecture, d'execution d'edition de listage, de copiage, d'effacement ... sur tout et tout (equivalence root) ? sudo va te permettre de lancer des commandes en tant que root, mais quand tu lances sudo, tu es encore simple utilisateur... donc pas de complétion, question de contexte.
A la rigueur, quand tu as besoin de faire ce genre de manipulation, tu peux faire un sudo -s pour avoir un shell root, et tu auras les droits nécessaires dans ce shell. Mais à ce compte là, tu peux enlever le NOPASSWD: (parce que c'est Mal®) ;) -- nodens
participants (5)
-
Bayrouni
-
Bruno Bonfils
-
Clement Hermann
-
Kuon - Nicolas Goy - 時期精霊 (Goyman.com SA)
-
Vincent Lefevre