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
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 ...
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