Vérifiez si un script s'exécute en tant qu'utilisateur racine dans Linux

Vérifiez si un script s'exécute en tant qu'utilisateur racine dans Linux

Parfois, les scripts de shell doivent s'exécuter en tant qu'utilisateur racine pour effectuer certaines tâches avec les privilèges de l'administrateur. Généralement, ces tâches peuvent être réalisées avec les commandes sudo. Si dans certains cas, vous devez toujours forcer l'utilisateur à exécuter le script en tant qu'utilisateur racine, vous pouvez ajouter du code à votre script pour vérifier si le script est en cours d'exécution avec l'utilisateur racine ou non.

Vérifiez si un script de shell s'exécute en tant qu'utilisateur root

Ajoutez le code suivant au début du script shell pour vérifier si le script est en cours d'exécution en tant qu'utilisateur racine. Si le script est exécuté en tant que compte non racinaire, il sortira avec le code d'état 1.

#!/ usr / bin / env-bash si ["$ euid" -ne 0]; alors echo "s'il vous plaît exécuter ce script en tant qu'utilisateur racine" exit 1 fi
123456#!/ usr / bin / env-bash si ["$ euid" -ne 0]; alors echo "s'il vous plaît exécuter ce script en tant qu'utilisateur racine" exit 1fi

Ici le Euid est la variable système qui a stocké l'ID utilisateur (UID) de l'utilisateur actuellement connecté. L'UID de l'utilisateur «racine» est toujours 0 Sur les systèmes Linux.

Au lieu d'utiliser l'UID, vous pouvez également faire correspondre le nom d'utilisateur connecté. Le qui suis je La commande fournit le nom d'utilisateur actuellement enregistré. Le script ci-dessous vérifiera si le script s'exécute en tant qu'utilisateur root ou non.

#!/ usr / bin / env bash si [whoami ' != 'root']; puis écho "Veuillez exécuter ce script en tant qu'utilisateur racine" sortir 1 fi
123456#!/ usr / bin / env bash si [whoami ' != 'root']; puis écho "Veuillez exécuter ce script en tant qu'utilisateur racine" Exit 1fi

Vérifiez si un script de shell s'exécute en tant qu'utilisateur non root

Parfois, les scripts doivent s'exécuter en tant que compte non racinaire. Dans ce cas, vous pouvez ajouter l'extrait suivant pour vérifier un compte d'utilisateur et continuer uniquement si le script s'exécute en tant qu'utilisateur normal.

#!/ usr / bin / env-bash si ["$ euid" -eq 0]; alors echo "s'il vous plaît exécuter ce script en tant qu'utilisateur non racine"
123456#!/ usr / bin / env-bash si ["$ euid" -eq 0]; alors echo "s'il vous plaît exécuter ce script en tant qu'utilisateur non racine"

Conclusion

Dans ce guide rapide, vous avez appris à ajouter des restrictions dans un script de shell pour s'exécuter en tant qu'utilisateur racine ou utilisateur non root. S'il exécute un autre utilisateur, le script quittera immédiatement.