web-dev-qa-db-fra.com

Comment correctement configurer le fichier sudoers, sur Debian Wheezy?

J'ai vu beaucoup de poteaux de blog qui disent, il suffit de faire

aptitude install Sudo
su root
adduser USERNAME Sudo

Mais cela ne protège que aptitude, en d'autres termes:

  • aptitude install sendmail demandera le mot de passe, vous devez être Sudo pour exécuter aptitude

  • apt-get install sendmail ne demandera pas de mot de passe, pas Sudo privilèges nécessaires

  • Si vous modifiez des fichiers protégés, comme des fichiers dans etc il ne demandera pas de mot de passe, no Sudo privilèges nécessaires

  • Vous pouvez exécuter et arrêter des services comme Apache, il ne demandera pas de mot de passe, non Sudo privilèges nécessaires

Comment régler ceci? Ceci est 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

Ceci 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
10
Lynob

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

La commande adduser USERNAME Sudo Ajoute l'utilisateur spécifié au groupe appelé Sudo. Un groupe avec ce nom doit exister; Créez-le avec addgroup Sudo Si ce n'est pas le cas. Après avoir ajouté l'utilisateur au groupe, l'utilisateur doit vous déconnecter et revenir à l'adhésion au groupe à prendre effet.

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

%Sudo ALL = (ALL) ALL

Run visudo Pour éditer le fichier sudoers, ne le modifiez jamais directement.

Je ne sais pas pourquoi tu crois que "qui ne protège que des aptitudes". Il n'y a rien de spécial sur les aptitudes. 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 sudoedit pour modifier des fichiers nécessitant une autorisation racine de modifier. Être dans le fichier Sudoers ne modifie pas directement les privilèges de votre utilisateur, ce qu'il fait, c'est qu'il vous permet d'exécuter Sudo pour exécuter des commandes en tant que root. Les commandes fonctionnent en tant que root uniquement lorsque vous les exécutez via Sudo. Certains programmes peuvent le faire automatiquement, en particulier des programmes d'interface graphique dans lesquels l'interface utilisateur s'exécute sans privilèges spéciaux et que seuls les exécutions à la racine, mais les commandes exécutées en tant que root sont toujours exécutées par Sudo.

Quoi mai est arrivé est le suivant: Sudo met en cache votre mot de passe. Ainsi, après avoir terminé correctement la mise en œuvre de Sudo sur votre système, vous devez entrer le mot de passe pour la commande premier, et après cela, il est mis en cache depuis 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 toujours dans le délai d'attente). Cela peut sensation comme il ne protège que la première commande, mais pas la seconde. Sans plus d'informations (transcrits complets Shell), il n'y a aucun moyen de dire ...

4
Josef

Si vous suivez la réponse ci-dessus, vous allez de bonne manière. Au moins dans mon Debian Jessie, j'ai fait un lien doux vers/usr/bin de la commande dans le chemin/sbin. Par exemple:/sbin/ifup, je mettais un lien mou (LN -S) à/usr/bin de celui-ci 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
0
Gonzalo Oviedo