Commande Linux sudo
sudo signifie « Super User DO », ce qui permet aux utilisateurs autorisés d'exécuter des commandes en tant qu'un autre utilisateur (généralement l'utilisateur root). En d'autres termes, les commandes exécutées via sudo le sont comme si root les exécutait lui-même.
Permissions d'utilisation : les utilisateurs qui apparaissent dans /etc/sudoers.
Syntaxe
sudo [选项] 命令
Par exemple :
sudo apt update # 以 root 权限更新软件包列表 sudo vim /etc/hosts # 编辑需要 root 权限的文件
Description des paramètres:
- -i: Simuler une connexion initiale, charger l'environnement de l'utilisateur cible
- -s: Exécuter un shell
- -uuser : Exécuter en tant que l'utilisateur spécifié
- -l: Lister les commandes sudo que l'utilisateur actuel peut exécuter
- -v: Vérifier les identifiants de l'utilisateur (prolonger la session sudo)
- -k: Révoquer le cache des identifiants sudo
Exemples
Exécuter une seule commande avec les privilèges root :
sudo apt update sudo systemctl restart nginx sudo mkdir /opt/myapp
Passer au shell de l'utilisateur root :
sudo -i # 登录shell,加载root环境变量 sudo -s # 非登录shell sudo su - # 另一种方式
Exécuter une commande en tant qu'un autre utilisateur :
sudo -u username command
sudo -u postgres psql # 以 postgres 用户运行 psql
Vérifier les permissions disponibles :
sudo -l
Modifier les fichiers système :
sudo nano /etc/hosts sudo vim /etc/nginx/nginx.conf
Fichier de configuration
La configuration de sudo est stockée dans le fichier /etc/sudoers et doit être modifiée à l'aide de la commande visudo :
sudo visudo
Exemples de configuration courants :
# 允许用户免密码执行所有命令 username ALL=(ALL) NOPASSWD: ALL # 允许用户组执行特定命令 %wheel ALL=(ALL) /bin/systemctl, /usr/bin/apt
Questions fréquentes
Utilisateur non présent dans le fichier sudoers :
# 需要 root 用户将目标用户加入 sudo 组: usermod -aG sudo username # Ubuntu/Debian usermod -aG wheel username # CentOS/RHEL
Ajustement de la durée du cache :
Modifier timestamp_timeout dans /etc/sudoers (unité : minutes) :
Defaults timestamp_timeout=30
Différences entre su et sudo
| Fonctionnalité | su | sudo |
|---|---|---|
| Mot de passe requis | Mot de passe de l'utilisateur cible | Mot de passe de l'utilisateur actuel |
| Durée de la session | Jusqu'à la sortie manuelle | Commande unique ou cache à court terme |
| Complexité de configuration | Simple | Nécessite la configuration de sudoers |
| Sécurité | Nécessite de connaître le mot de passe root | Contrôle plus granulaire des permissions |
| Audit | Limité | Journaux plus détaillés |
Bien que la commande su soit simple et directe, sudo est généralement le choix le plus recommandé dans l'administration système moderne, car il offre de meilleures capacités de sécurité et d'audit.
Autres extensions
Référence des commandes Linux