Question Comment command-not-found détermine si l'utilisateur est administrateur


Je suis administrateur de deux serveurs ubuntu. Sur l'un d'eux, quand j'essaie d'exécuter une commande (par exemple irb1.9.1) à partir d'un package qui n'est pas installé, j'obtiens le message suivant:

The program 'irb1.9.1' is currently not installed.  You can install it by typing:
sudo apt-get install ruby1.9.1

Sur l'autre serveur, j'obtiens la réponse suivante:

The program 'irb1.9.1' is currently not installed.  To run 'irb1.9.1' please ask your administrator to install the package 'ruby1.9.1'

je peux sudo sur les deux serveurs, donc je ne comprends pas comment le premier sait que je peux installer le paquet moi-même et me montre la commande à exécuter, tandis que le second ne le fait pas.

D'où vient la différence et comment puis-je obtenir le deuxième serveur pour me donner la commande comme le premier serveur?

modifier pour répondre au commentaire de Braiam, apt-cache policy retourne le même sur les deux serveurs:

$ apt-cache policy command-not-found
command-not-found:
  Installed: 0.3ubuntu7.1
  Candidate: 0.3ubuntu7.1
  Version table:
 *** 0.3ubuntu7.1 0
        500 http://dk.archive.ubuntu.com/ubuntu/ raring-updates/main amd64 Packages
        100 /var/lib/dpkg/status
     0.3ubuntu7 0
        500 http://dk.archive.ubuntu.com/ubuntu/ raring/main amd64 Packages

1
2017-10-11 09:13


origine


Quelle est la sortie de apt-cache policy command-not-found? - Braiam
@Braiam J'ai édité ma question avec ces données. - Calimo


Réponses:


La différence se produit probablement parce que vous utilisez différentes versions de bash ou différents shells. Utilisation:

echo $SHELL
bash --version

pour vérifier votre shell actuel et / ou votre version actuelle de bash.


0
2017-10-11 09:48



Les deux répondent /bin/bash et GNU bash, version 4.2.25(1)-release. Un avec (i686-pc-linux-gnu) et un avec `(x86_64-pc-linux-gnu)`. Si c'est la raison de la différence, cela ressemble à un bug ... - Calimo
@Calimo Donc, il existe différentes versions de bash. L'un est pour 32 bits et l'autre pour 64 bits. - Radu Rădeanu


En étudiant un peu plus le sujet, j'ai trouvé que command-not-found utilisait le /usr/lib/python2.7/dist-packages/CommandNotFound/CommandNotFound.py script, qui contient la ligne suivante:

self.user_can_sudo = grp.getgrnam("sudo")[2] in posix.getgroups() or grp.getgrnam("admin")[2] in posix.getgroups()

Donc, fondamentalement, n'importe qui dans le sudo ou admin les groupes seront considérés comme un administrateur. Une des machines était configurée pour utiliser le wheel groupe à la place, donc visudo montrerait:

%wheel ALL=(ALL) ALL

Sur le serveur je n'étais pas membre du sudo ou admin groupes, donc command-not-found Je ne saurais pas que je pourrais exécuter apt-get commandes avec sudo. Après m'être ajouté à la sudo group, je reçois maintenant la commande apt-get à exécuter sur le terminal.


0
2017-10-18 09:06



Notez que sur Debian 8 "Jessie", le script recherche le groupe admin (qui n'existait pas lors de l'installation du système d'exploitation). - Calimo