Commande Linux sudo

Linux 命令大全Référence des commandes Linux

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.

Linux 命令大全Référence des commandes Linux

Autres extensions