J'ai besoin d'exécuter une commande avec des privilèges d'administrateur. Quelqu'un a dit que je devrais exécuter une commande en tant que root. Comment puis-je faire cela?
sudo
root
administration
Stefan
la source
la source
Réponses:
Les deux principales possibilités en ligne de commande sont les suivantes:
su
et entrez le mot de passe root lorsque vous y êtes invité.sudo
devant la commande et entrez votre mot de passe lorsque vous y êtes invité.Exécuter une commande shell en tant que root
sudo (préféré en l'absence d'affichage graphique)
C'est la méthode préférée sur la plupart des systèmes, y compris Ubuntu, Linux Mint, (sans doute) Debian et autres. Si vous ne connaissez pas de mot de passe root distinct, utilisez cette méthode.
Sudo exige que vous tapez votre propre mot de passe. (Le but est de limiter les dommages si vous laissez votre clavier sans surveillance et déverrouillé, mais aussi de vous assurer que vous souhaitez vraiment exécuter cette commande sans qu’il s’agisse d’une faute de frappe.) Il est souvent configuré pour ne plus demander quelques minutes pour pouvoir exécuter plusieurs
sudo
commandes successivement.Exemple:
Si vous devez exécuter plusieurs commandes en tant que root, préfixez chacune d’elles avec
sudo
. Parfois, il est plus pratique d’exécuter un shell interactif en tant que root. Vous pouvez utilisersudo -i
pour cela:Au lieu de
sudo -i
, vous pouvez utilisersudo -s
. La différence est que-i
re i nitializes l'environnement par défaut sain d' esprit, alors que-s
utilise vos fichiers de configuration pour le meilleur ou pour le pire.Pour plus d'informations, consultez le site Web sudo ou tapez-le
man sudo
sur votre système. Sudo est très configurable. Par exemple, il peut être configuré pour permettre à un utilisateur d'exécuter uniquement certaines commandes en tant que root. Lisez lasudoers
page de manuel pour plus d'informations. Utilisezsudo visudo
pour éditer le fichier sudoers.su
La
su
commande existe sur la plupart des systèmes de type Unix. Il vous permet d'exécuter une commande en tant qu'autre utilisateur, à condition de connaître le mot de passe de cet utilisateur. Lorsqu'il est exécuté sans utilisateur spécifié,su
le compte racine est utilisé par défaut.Exemple:
La commande à exécuter doit être passée à l'aide de l'
-c
option. Notez que vous avez besoin de guillemets pour que la commande ne soit pas analysée par votre shell, mais transmise intacte au shell racine quisu
s'exécute.Pour exécuter plusieurs commandes en tant que root, il est plus pratique de démarrer un shell interactif.
Sur certains systèmes, vous devez être dans le groupe numéro 0 (appelé
wheel
) à utilisersu
. (Le but est de limiter les dégâts si le mot de passe root est divulgué accidentellement à quelqu'un.)Se connecter en tant que root
Si un mot de passe root est défini et que vous en possédez, vous pouvez simplement taper
root
à l'invite de connexion et entrer le mot de passe root. Soyez très prudent et évitez d'exécuter des applications complexes en tant qu'utilisateur root, car elles pourraient faire quelque chose que vous n'aviez pas prévu. Se connecter directement en tant que root est principalement utile dans les situations d'urgence, telles que les pannes de disque ou lorsque vous êtes bloqué hors de votre compte.Mode mono-utilisateur
Le mode mono-utilisateur ou niveau d'exécution 1 vous donne également des privilèges root. Ceci est principalement destiné aux situations de maintenance d'urgence dans lesquelles il est impossible de démarrer à un niveau d'exécution multi-utilisateur. Vous pouvez démarrer en mode mono-utilisateur en passant
single
ouemergency
sur la ligne de commande du noyau. Notez que le démarrage en mode mono-utilisateur n’a rien à voir avec le démarrage normal du système et la connexion en tant que root. Au lieu de cela, le système démarrera uniquement les services définis pour le niveau d'exécution 1. Il s'agit généralement du plus petit nombre de services requis pour disposer d'un système utilisable.Vous pouvez également accéder à simple mode utilisateur en utilisant la commande telinit:
telinit 1
; toutefois, cette commande nécessite que vous ayez déjà obtenu les privilèges root via une autre méthode pour pouvoir s'exécuter.Sur de nombreux systèmes, le démarrage en mode mono-utilisateur donnera à l'utilisateur l'accès à un shell racine sans demander de mot de passe. Notamment, les
systemd
systèmes basés sur vous demanderont le mot de passe root lorsque vous démarrez de cette manière.Autres programmes
Calife
Calife vous permet d'exécuter des commandes en tant qu'autre utilisateur en saisissant votre propre mot de passe, s'il y est autorisé. C'est semblable au sudo beaucoup plus répandu (voir ci-dessus). Calife est plus léger que sudo mais également moins configurable.
Op
Op vous permet d'exécuter des commandes en tant qu'autre utilisateur, y compris root. Ce n'est pas un outil complet pour exécuter des commandes arbitraires: vous tapez
op
suivi d'un mnémonique configuré par l'administrateur système pour exécuter une commande spécifique.Super
Super vous permet d'exécuter des commandes en tant qu'utilisateur différent, y compris root. La commande doit avoir été autorisée par l'administrateur système.
Exécuter une commande graphique en tant que root
Voir aussi Wikipedia .
PolicyKit (recommandé lors de l'utilisation de GNOME)
Préfixez simplement votre commande désirée avec la commande
pkexec
. Sachez que même si cela fonctionne dans la plupart des cas, cela ne fonctionne pas universellement.Voir
man pkexec
pour plus d'informations.KdeSu, KdeSudo (recommandé pour l’utilisation de KDE)
kdesu
etkdesudo
sont des interfaces graphiques àsu
etsudo
respectivement. Ils vous permettent d’exécuter des programmes X Window en tant qu’utilisateur root sans tracas. Ils font partie de KDE . Typeet entrez le mot de passe root ou tapez
et entrez votre mot de passe (si vous êtes autorisé à le faire
sudo
). Si vous cochez l'option «Conserver le mot de passe» dans KdeSu, il vous suffira de saisir le mot de passe root une fois par session.Autres programmes
KtsussKtsuss («Keep the Su Simple, Stupid») est une version graphique de Su.
BeesuBeesu est une interface graphique de la commande su qui a remplacé Gksu dans les systèmes d'exploitation basés sur Red Hat. Il a été développé principalement pour RHEL et Fedora.
Méthodes obsolètes
gksu
etgksudo
gksu
etgksudo
sont des interfaces graphiques àsu
etsudo
respectivement. Ils vous permettent d’exécuter des programmes X Window en tant qu’utilisateur root sans tracas. Ils font partie de Gnome . Typeet entrez le mot de passe root ou tapez
et entrez votre mot de passe (si vous êtes autorisé à le faire
sudo
).gksu
etgksudo
sont obsolètes. Ils ont été remplacés par PolicyKit dans GNOME et de nombreuses distributions (telles que Ubuntu) ne les installent plus par défaut. Vous ne devriez pas compter sur leur disponibilité ou leur bon fonctionnement.Manuellement via l'une des méthodes basées sur le shell
Utilisez l’une des méthodes de la section "Exécution d’une commande shell en tant que section racine". Vous devrez vous assurer que ni la
DISPLAY
variable d'environnement ni l'XAUTHORITY
environnement ne sont réinitialisés lors de la transition vers la racine. Cela peut nécessiter une configuration supplémentaire de ces méthodes qui ne relève pas de la portée de cette question.Globalement, c'est une mauvaise idée, principalement parce que les applications graphiques lisent et écrivent les fichiers de configuration en tant que root. Lorsque vous essayez de les utiliser à nouveau en tant qu'utilisateur normal, ces applications ne sont pas autorisées à lire leurs propres configurations.
Editer un fichier en tant que root
Voir Comment modifier un fichier en tant que root?
la source
sudo
cela ne fonctionnera que si (1) il est installé et (2) si votre utilisation se trouve dans le fichier sudoers et qu'il est autorisé à effectuer l'opération.pkexec
remplacegksu
/gksudo
dans beaucoup de distributions de nos jours.Utiliser
su
:ou
Dans les deux cas, le
root
mot de passe vous sera demandé . Pour plus d'informations, voir la page de manuel .la source
Comme la question n'était pas spécifique à Linux, voici comment vous atteignez le même objectif sous Solaris 9+ (ou Trusted Solaris 8):
Solaris, depuis la version 9, inclut une suite d’outils affectueusement appelée contrôle d’accès basé sur le rôle (RBAC).
L'essentiel de RBAC est que, en accordant des autorisations et des droits, des utilisateurs et / ou des rôles, ou en attribuant des rôles à des utilisateurs, vous pouvez créer des modèles extrêmement détaillés pour savoir qui peut utiliser quels privilèges.
Essentiellement, vous identifiez l'autorisation dans / etc / security / auth_attr, puis vous leur accordez des utilisateurs ou des rôles dans / etc / user_attr.
Vous définissez des profils dans / etc / security / prof_attr. Vous associez ensuite des commandes à ces profils dans / etc / security / exec_attr, puis vous affectez ces profils aux utilisateurs du fichier / etc / user_attr.
Une fois ces opérations terminées, vous
pfexec <command>
exécutez la commande avec les privilèges ou autorisations accordées à cet utilisateur pour cette commande.La bonne chose à propos de RBAC est qu’aucun privilège supplémentaire n’est accordé à la commande elle-même, ni à l’utilisateur, mais uniquement à la combinaison utilisateur + commande. Il est donc plus sûr de créer un + s binaire, ou simplement d’utiliser sudo pour permettre à un utilisateur d’exécuter à peu près n'importe quoi. (Je sais que vous pouvez verrouiller sudo, mais d'après mon expérience, la plupart des gens ne le font pas)
Un autre avantage de RBAC est que vous pouvez créer un compte de rôle root et attribuer ce rôle à des utilisateurs pouvant devenir root avec la commande 'su' et le mot de passe root. L'utilisateur root pourra également se connecter en mode mono-utilisateur, ce qui est meilleur (à mon avis) que le modèle Linux où vous pouvez désactiver le mot de passe root
passwd -d root
ou verrouiller le compte rootpasswd -l root
, qui rendent la connexion en tant que root assez difficile quand quelque chose ne va pas.Ben Rockwood publie un excellent article de blog sur RBAC, que vous pouvez consulter à la section Utilisation de RBAC sur (Open) Solaris .
la source
Ou vous pouvez donner à certaines commandes une superpuissance. Je parle des autorisations spéciales dans lesquelles les commandes sont exécutées avec l'autorisation du propriétaire.
Obtenez le chemin de commande par
#which <command>
et définissez SUID ou SGID pour ce chemin.Les bits PS-SUID et SGID doivent être donnés avec précaution. Ils peuvent rendre votre système peu sûr.
la source