Comment configurer correctement le fichier sudoers, sur Debian Wheezy?

10

J'ai vu de nombreux articles de blog qui disent que c'est suffisant pour faire

aptitude install sudo
su root
adduser USERNAME sudo

Mais cela ne fait que protéger aptitude, en d'autres termes:

  • aptitude install sendmailvous demandera un mot de passe, vous devez être sudoen cours d'exécutionaptitude

  • apt-get install sendmailne demandera pas de mot de passe, aucun sudoprivilège requis

  • Si vous modifiez des fichiers protégés, comme les fichiers etcqu'ils contiennent ne demanderont pas de mot de passe, aucun sudoprivilège n'est requis

  • Vous pouvez exécuter et arrêter des services comme apache, il ne demandera pas de mot de passe, aucun sudoprivilège requis

Comment régler ceci? Voici mon fichier sudoers:

 This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:$

# Host alias specification

# User alias specification

# Cmnd alias specification

C'est la sortie de sudo -l:

Matching Defaults entries for root on this host:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin

User root may run the following commands on this host:
    (ALL : ALL) ALL
    (ALL : ALL) ALL
Lynob
la source
3
Après su root, vous êtes connecté en tant rootqu'utilisateur, vous avez donc un accès complet à tout. Pour redevenir un utilisateur régulier qui doit utiliser sudopour des opérations privilégiées, déconnectez-vous du shell qui s'exécute en tant que root.
depquid
Je suis nouveau sous Linux mais le wiki Debian dit - adduser username sudo wiki.debian.org/sudo
AntiCZ

Réponses:

16

Vous n'avez ajouté aucune règle sudo, vous ne pouvez donc pas utiliser sudo pour quoi que ce soit.

La commande adduser USERNAME sudoajoute l'utilisateur spécifié au groupe appelé sudo. Un groupe portant ce nom doit exister; créez-le avec addgroup sudosi ce n'est pas le cas. Après avoir ajouté l'utilisateur au groupe, l'utilisateur doit se déconnecter et se reconnecter pour que l'appartenance au groupe prenne effet.

sudon'est pas un nom de groupe spécial. C'est une convention pour permettre aux utilisateurs du groupe appelé sudod'exécuter des commandes en tant que root via l' sudoutilitaire. Cela nécessite la ligne suivante dans le sudoersfichier:

%sudo ALL = (ALL) ALL

Exécutez visudopour modifier le fichier sudoers, ne le modifiez jamais directement.

Je ne sais pas pourquoi vous croyez que "cela ne fait que protéger l'aptitude". L'aptitude n'a rien de spécial. Une fois que vous avez autorisé un utilisateur à exécuter des commandes en tant que root, cet utilisateur peut exécuter sudo aptitude …ou sudo apt-get …ou sudo service …, ou sudoeditpour modifier des fichiers qui nécessitent l'autorisation root pour modifier. Être dans le fichier sudoers ne change pas directement les privilèges de votre utilisateur, ce qu'il fait, c'est qu'il vous permet d'exécuter sudopour exécuter des commandes en tant que root. Les commandes ne s'exécutent en tant que root que lorsque vous les exécutez sudo. Certains programmes peuvent le faire automatiquement, en particulier les programmes GUI où l'interface utilisateur s'exécute sans privilèges spéciaux et seul le backend s'exécute en tant que root, mais les commandes exécutées en tant que root sont toujours exécutées par sudo.

Gilles 'SO- arrête d'être méchant'
la source
Il a couru en sudo -ltant que root. Même s'il existait des définitions utiles pour les utilisateurs, elles n'auraient pas été affichées. Ainsi, votre supposition "Vous n'avez ajouté aucune règle sudo" peut être erronée.
Hauke ​​Laging du
@HaukeLaging Je ne comprends pas votre commentaire. «Vous n'avez ajouté aucune règle sudo» n'est pas une supposition: le sudoersfichier est dans la question.
Gilles 'SO- arrête d'être méchant'
J'étais sur le point de devenir déprimé, réalisant que j'étais trop concentré sur la sudo -lsortie mais heureusement ... Il semble que le contenu de la question ne puisse pas être le fichier entier car il n'est pas cohérent avec la sortie. Au moins ma sudoversion ne prétend pas "L'utilisateur root peut exécuter les commandes suivantes" avec une sudoerssans définition de commande (comme celle de la question).
Hauke ​​Laging
@HaukeLaging Vous avez raison, j'ai vérifié avec Wheezy et, en effet, je dis sudo -lsimplement: "L'utilisateur root n'est pas autorisé à exécuter sudo sur darkstar". Et le sudogroupe est dans le fichier sudoers par défaut sur Wheezy. Les entrées requises peuvent avoir été déplacées dans un fichier sous /etc/sudoers.d. Dans tous les cas, quel que soit le fichier sudoers, il ne fera pas ce que Fischer suppose.
Gilles 'SO- arrête d'être méchant'
4

Ce qui s'est peut- être produit est: sudo met en cache votre mot de passe. Ainsi, après avoir correctement terminé l'implémentation de sudo sur votre système, vous devez entrer le mot de passe pour la première commande, puis il est mis en cache pendant un certain temps. Si cela se produit et que vous exécutez la séquence

sudo aptitude install sendmail
sudo apt-get install sendmail

Ensuite, vous devrez fournir un mot de passe sur la première commande, mais pas sur la seconde (au moins pendant que vous êtes encore dans le délai). Cela peut sembler protéger uniquement la première commande, mais pas la seconde. Sans plus d'informations (transcriptions complètes du shell), il n'y a aucun moyen de savoir ...

Josef
la source
Oui. L'un n'exclut pas l'autre. La bonne réponse explique bien comment configurer correctement sudo, et en ce sens, elle répond à la question. Elle n'explique pas pourquoi, selon les termes de la question, "cela ne fait que protéger l'aptitude". Gilles s'écrit: "Je ne sais pas pourquoi vous croyez que" cela ne fait que protéger les aptitudes "". Comme je l'ai dit, pour vraiment comprendre ce phénomène, plus d'informations sont nécessaires. Je pense qu'un vote négatif est un peu dur étant donné que ma réponse est factuellement correcte, répond à la question d'origine et comble une lacune dans la réponse existante.
Josef
Bonne idée, cela peut être à l'origine de la confusion de Fischer.
Gilles 'SO- arrête d'être méchant'
0

Si vous suivez la réponse ci-dessus, vous allez dans le bon sens. Au moins dans ma Debian Jessie, j'ai fait un lien logiciel vers / usr / bin de la commande dans le chemin / sbin. Par exemple: / sbin / ifup, j'ai mis un lien logiciel (ln -s) vers / usr / bin et je peux l'utiliser.

Une autre chose importante est de mettre NOPASSWD comme ceci:

User_Alias NET = goviedo
Cmnd_Alias ETH = /sbin/ifup
NET ALL = NOPASSWD:ETH
Gonzalo Oviedo
la source