Depuis que j'utilise occasionnellement mon Pi sur SSH, j'ai appris qu'il est dangereux d'autoriser SSH à accéder aux commandes sudo. Ainsi, je prévois de désactiver cette autorisation dans un proche avenir. Mais, lorsque j'installe des packages, je dois généralement redémarrer. Actuellement, cela n'est autorisé que via le superutilisateur.
sudo reboot
Existe-t-il un moyen de modifier les autorisations de l'utilisateur pi pour lui permettre de redémarrer (et d'installer) des packages?
Puis-je avoir plusieurs comptes avec des autorisations différentes?
Merci
Réponses:
Pour clarifier un peu: il n'y a pas de "commandes sudo", il n'y a que des commandes qui ont besoin des privilèges root pour fonctionner correctement et
sudo
est la commande pour les obtenir pour une commande:sudo
exécute simplement la commande donnée en tant que root (lire "sudo" comme impératif phrase "superutilisateur, fais quelque chose!"). Les règles concernant les utilisateurs autorisés à le faire sont consignées dans/etc/sudoers
. Sur une installation Raspbian par défaut, l'utilisateur par défaut "pi" a obtenu ses autorisations sur cette ligne:Cela signifie: "L'utilisateur 'pi' sur TOUS les hôtes est autorisé à basculer vers TOUS les utilisateurs et n'a PAS à taper son PASSWD lors de l'utilisation de TOUTES (lire: toutes) commandes". (J'ai utilisé une grammaire folle ici pour conserver l'ordre de la ligne ... une note sur la raison pour laquelle il existe un moyen de distinguer les hôtes: de cette façon, le même fichier sudoers peut être distribué sur plusieurs machines sur un réseau afin que l'administrateur du réseau ait moins de travail) .
Il se peut que pouvoir exécuter des commandes à l'aide de sudo sans émettre de mot de passe administrateur soit la raison pour laquelle vous pensez qu'il est dangereux d'utiliser sudo sur SSH (je n'ai pas entendu parler d'un problème général avec cela ... alors pourriez-vous expliquez de quel danger vous parlez exactement?).
Bien sûr, vous pouvez avoir plusieurs utilisateurs avec des autorisations différentes. Mais je crains que l'utilisation de sudo soit toujours le meilleur moyen de gérer ces autorisations.
Donc, j'espère que cette petite recette est ce dont vous avez besoin:
Cela va créer un utilisateur "admin", demander un mot de passe, créer son répertoire personnel, etc.
Cela mettra l'utilisateur "admin" dans les groupes d'utilisateurs "sudo" et "adm". Et comme les autorisations sont gérées sous Linux en ajoutant des utilisateurs aux groupes d'utilisateurs, cela donne à l'utilisateur "admin" tous les privilèges et autorisations dont il a besoin. Il y a une ligne
/etc/sudoers
qui permet à n'importe quel utilisateur du groupe d'utilisateurs "sudo" d'exécuter n'importe quelle commande en tant que root; et ce privilège est ce dont nous avons besoin pour un utilisateur administrateur (l'ajouter à "adm" lui permet de lire certains fichiers journaux/var/log
sans utilisersudo
et quelques autres choses). Vous devez toujours utilisersudo
lorsque vous êtes connecté en tant qu'administrateur - mais maintenant sudo demande encore et encore le mot de passe de l'administrateur chaque fois que vous n'avez pas utilisé sudo pendant environ cinq minutes.Maintenant, déconnectez-vous et connectez-vous en tant qu'utilisateur "admin". Vérifier si
travaux. Si tel est le cas, vous pouvez révoquer certains privilèges de l'utilisateur "pi", car vous êtes maintenant certain que votre utilisateur administrateur dispose des privilèges appropriés:
Cela jette l'utilisateur "pi" du groupe d'utilisateurs "sudo".
Cela lancera un éditeur qui vous permet de modifier
/etc/sudoers
. Mettez une balise de hachage (#
) avant la ligne commençant par "pi", commentez-la (ou supprimez-la simplement). Ensuite, enregistrez et quittez l'éditeur, visudo rechargera alors immédiatement les règles de privilège. Maintenant, l'utilisateur "pi" n'est plus autorisé à utiliser sudo.Après cela, vous pouvez vous reconnecter en tant qu'utilisateur "pi". Si vous souhaitez un jour passer à l’administrateur pour certaines commandes, utilisez
su
("Changer d’utilisateur"):Si vous voulez ajouter plus d'utilisateurs: utilisez
sudo adduser <name>
comme ci-dessus, puis vérifiez la liste des groupes d'utilisateurs que l'utilisateur "pi" a:Utilisez
sudo adduser <username> <groupname>
pour ajouter votre nouvel utilisateur à plusieurs de ces groupes d'utilisateurs, lui permettant d'utiliser l'audio, la vidéo accélérée, l'utilisation de périphériques enfichables, etc. En cas de doute, ajoutez-le à tous ces groupes d'utilisateurs (mais pas à "sudo"!).la source
visudo
est une commande qui utilisera votre éditeur par défaut pour modifier le fichier sudoers. Modifier ce fichier sans lui peut être pénible et n'est pas recommandé. Vous pouvez changer votre éditeur préféré en publiantsudo update-alternatives --config editor
VISUAL=vim visudo
juste pour cette fois. Mais un excellent exemple de changement de programmes par défaut, comme l'éditeur.Oui, vous pouvez configurer
sudo
pour autoriser uniquement l'utilisateur à exécuter certaines commandes avec des privilèges supplémentaires. Vous pouvez changer cela dans votre/etc/sudoers
fichier, mais il est conseillé de ne pas le faire directement mais d'utiliser lasudo visudo
commande pour cela.Dans l'installation système par défaut, vous devriez trouver une telle ligne:
Il indique
sudo
à l'utilisateurpi
d'exécuter tous les cammands en tantroot
qu'utilisateur sans même fournir de mot de passe. Vous pouvez modifier le dernierALL
et spécifier une liste de commandes séparées par des virgules (avec leur chemin d'accès complet) autorisées à s'exécuter. Dans votre cas, vous devez remplacer cette ligne par:Notez qu'il existe une autre ligne
sudoers
affectant l'pi
utilisateur:Cette ligne permet à tous les utilisateurs du groupe
sudo
(le%
caractère devant le nom signifie que c'est un nom de groupe au lieu du nom d'utilisateur) d'exécuter TOUS les mots de passe à condition qu'ils connaissent leur propre mot de passe . Si vous quittez cette ligne, l'utilisateurpi
pourra exécuter toutes les autres commandes mais il lui sera demandé son mot de passe.Si vous souhaitez empêcher cela, vous pouvez supprimer cette ligne ou supprimer l'utilisateur
pi
dusudo
groupe.Après avoir apporté des modifications au
/etc/sudoers
fichier, vous voudrez peut-être vérifier qu'il fait vraiment ce que vous voulez en appelant lasudo -l -U pi
commande.Bien sûr, vous pouvez créer différents comptes et configurer
sudoers
en leur donnant accès à différentes commandes.la source
Mai 2018, ce concept est toujours précis, mais la procédure a changé avec les versions ultérieures:
Premièrement, les fichiers doivent être édités directement dans vi ou nano ou leafpad ou emacs - quel que soit votre éditeur de texte préféré.
Le nom d'utilisateur pi n'est pas mentionné dans ce fichier:
et la dernière ligne du fichier est la suivante:
Ceci est un répertoire qui contient un fichier nommé
qui contient cette seule ligne
Ce qui a pour effet de ne pas demander de commande sudo tant que je suis connecté en tant qu'utilisateur pi. (notez que la syntaxe doit être exactement de cette façon)
C'est bien.
La ligne de groupe
%sudo ALL=(ALL:ALL) ALL
est toujours làDonc pour répondre à la première partie de la question:
Lorsque j'ai déplacé le fichier /etc/sudoers/sudoers.d/010_pi-nopasswd d'un niveau de répertoire pour faire échouer l'inclusion, puis j'ai attendu 15 minutes, mon système Raspbian a demandé mon propre mot de passe lors de l'utilisation de sudo, juste comme le faisait mon système Ubuntu 14.04 LTS.
Ensuite, quand je l'ai replacé là où il devait être, même après 10 minutes, cela ne m'a plus incité.
Aucun redémarrage nécessaire. Voila, pas de demande de mot de passe lors de l'utilisation de sudo
Mon système de test lubuntu 14.04 LTS a la même configuration sauf que le fichier 010_pi-nopasswd n'était pas présent. lubuntu a été installé avec pi en tant qu'utilisateur root. Cela m'a incité à chaque fois que j'utilisais sudo, puis ne m'a pas invité pendant 10 minutes après.
J'ai ajouté ce même fichier au système Ubuntu tout comme la façon dont Raspbian est configuré, (n'oubliez pas de chmod 0440 sur ce fichier pendant que vous êtes encore dans cette fenêtre de 10 minutes) - et
Voila, il ne me demande plus mon propre mot de passe lorsque je suis connecté en tant que pi même après 15 minutes.
Encore une fois, le changement se produit instantanément sans redémarrage nécessaire.
Il s'agit de la réponse de mai 2018 pour savoir comment désactiver et activer l'invite pour l'utilisation de la commande sudo lorsque vous êtes connecté en tant qu'utilisateur root pi. D'autres utilisateurs et groupes peuvent être configurés de la même manière.
--MISE À JOUR pour Ubuntu 16.04 LTS Ce système est également très similaire. Cependant, la plus grande différence est que 16.04 a des autorisations de fichiers beaucoup plus restreintes, donc le travail doit être effectué en
su
mode. Si vous avez oublié votre mot de passe root, vous pouvez le réinitialiser à partir de votre invite normale en utilisantsudo passwd root
Alors lasu
commande fonctionnera et vous pourrez y aller.la source
sudoers
se fait généralement au moment de la création de l'utilisateur. Exemple d'utilisation: vous remarquerez que la chaîne de commande communesudo apt-get update && sudo apt-get upgrade
appelle deux fois sudo, mais est ennuyeuse qu'elle puisse s'arrêter et demander à nouveau le mot de passe avant la mise à niveau. J'ai donc défini le mien pour ne jamais inviter mon nom de connexion (pi) et ensuite l'utilisersudo apt-get update -y && sudo apt-get upgrade -y
afin qu'il ne s'arrête pas non plus pour demander OK pour apporter des modifications importantes. Pour le rendre plus semblable à Unix. Faites ce que je demande et même si je m'éloigne, je veux que ce soit fini.Il est plus sûr d'autoriser l'accès sudo via SSH que d'autoriser n'importe quel utilisateur à installer des packages. Si cela vous inquiète vraiment, changez la ligne
/etc/sudoers
:à
Cela signifie que vous serez invité à entrer un mot de passe la première fois que vous utilisez sudo dans une session, puis à nouveau après un délai de quelques minutes. Vous ne pouvez pas modifier
/etc/sudoers
directement; utilisersudo visudo
pour le faire.On dirait que Krzysztof est entré avec une réponse juste là. Êtes-vous vraiment sûr de devoir redémarrer chaque fois que vous installez de nouveaux packages? Sauf si vous installez un nouveau noyau ou firmware, pas grand-chose d'autre n'a besoin d'un redémarrage. C'est un système d'exploitation de qualité que nous avons ici ...
la source
timestamp
timeout est une bonne idée. C'est 15 minutes par défaut, BTW. Notez quePASSWD
c'est par défaut (s'ilNOPASSWD
n'a pas été spécifié plus tôt dans cette liste de commandes). Notez également que vous/etc/sudoers
pouvez modifier directement sans problème si vous savez ce que vous faites. L'utilisation devisudo
modifications apportées au fichier temporaire empêchant l'écriture automatique du fichier au milieu de la modification (ce qui pourrait introduire des erreurs de syntaxe et / ou des problèmes de sécurité), il verrouille ce fichier contre plusieurs modifications simultanées et effectue quelques vérifications de syntaxe avant d'écrire le fichier.Juste une alternative à ce que Scruss a dit, supprimez le
/etc/sudoers.d/010_pi-nopasswd
fichier en exécutantsudo rm /etc/sudoers.d/010_pi-nopasswd
. Beaucoup plus facile et plus sûr que d'éditer le fichier sudoers principal, ce qui peut casser sudo.la source