


Comment résoudre les invites d'erreur de la ligne de commande Linux : utilisez la commande sudo
Avez-vous déjà reçu un message d'erreur « Autorisation refusée » lorsque vous utilisez la ligne de commande Linux ? Cela peut être dû au fait que vous essayez d'effectuer une opération qui nécessite les privilèges root ? Par exemple, la capture d'écran ci-dessous montre l'erreur qui s'est produite lorsque j'ai essayé de copier un fichier binaire dans un répertoire système.
Accès refusé pour Shell
Alors comment résoudre cette erreur ? C'est très simple, utilisez la commande sudo.
Utilisez sudo pour exécuter des commandes
Les utilisateurs seront invités à saisir leur (propre) mot de passe de connexion après avoir exécuté cette commande. Une fois le mot de passe correct saisi, l’opération sera exécutée avec succès.
Il ne fait aucun doute que sudo est une commande incontournable pour quiconque utilise la ligne de commande sous Linux. Cependant, afin d'utiliser cette commande de manière plus responsable et efficace, vous devez toujours connaître certains détails pertinents (et approfondis). C’est exactement ce dont nous discuterons dans cet article.
Avant de continuer, il convient de mentionner que toutes les instructions de commande mentionnées dans cet article ont été testées sous Bash version 4.3.11 sous Ubuntu 14.04 LTS.
Qu'est-ce que sudoComme la plupart d'entre vous le savent, sudo est utilisé pour exécuter des commandes qui nécessitent des privilèges élevés (généralement en tant qu'utilisateur root). Un tel exemple a été abordé plus tôt dans cet article dans la section d'introduction. Cependant, vous pouvez utiliser sudo pour exécuter des commandes en tant qu'utilisateur autre (non root) si vous le souhaitez.
Ceci est réalisé grâce à l'option de ligne de commande -u fournie par l'outil. Par exemple, comme le montre l'exemple suivant, j'ai (himanshu) essayé de renommer un fichier dans le répertoire personnel d'un autre utilisateur (howtoforge), mais j'ai obtenu une erreur « Accès refusé ». Ensuite, j'ai ajouté sudo -u howtoforge et utilisé la même commande "mv", et la commande a été exécutée avec succès :
Qu'est-ce que sudo
Tout le monde peut-il utiliser sudo ?Non. Pour qu'un utilisateur puisse utiliser sudo, il doit y avoir une information relative à l'utilisateur dans le fichier /etc/sudoers. L'extrait suivant du site Web d'Ubuntu peut l'expliquer plus clairement :
/etc/sudoers Le fichier contrôle qui peut exécuter quelles commandes sur quelle machine et quel utilisateur, et peut également contrôler des situations spéciales, telles que si un mot de passe est requis pour une commande spécifique. Ce fichier se compose d'alias (variables de base) et de spécifications utilisateur (contrôle qui peut exécuter quelles commandes).
Si vous utilisez Ubuntu, permettre à un utilisateur d'exécuter des commandes sudo est simple : tout ce que vous avez à faire est de changer le type de compte en administrateur. Cela peut être fait directement dans Paramètres système -> Comptes d'utilisateurs.
utilisateur sudo
Déverrouillez d'abord cette fenêtre :
fenêtre de déverrouillage
Sélectionnez ensuite l'utilisateur dont vous souhaitez modifier le type d'utilisateur, puis modifiez le type en administrateur.
choisissez les comptes sudo
Cependant, si vous n'utilisez pas Ubuntu ou si votre distribution ne fournit pas cette fonctionnalité, vous pouvez modifier manuellement le fichier /etc/sudoers pour implémenter cette modification. Pour ajouter une ligne comme celle-ci au fichier :
[user] ALL=(ALL:ALL) ALL
Inutile de dire que [user] doit être remplacé par le nom d'utilisateur de l'utilisateur auquel vous souhaitez élever les privilèges sudo. Une chose importante à mentionner ici est qu'il est officiellement recommandé de modifier le fichier via la commande visudo - tout ce que vous avez à faire est d'exécuter la commande suivante :
sudo visudo
Pour expliquer ce qui se passe, voici un extrait du manuel visudo :
visudo 以安全的模式编辑 sudoers 文件。visudo 锁定 sudoers 文件以防多个编辑同时进行,提供基本的检查(sanity checks)和语法错误检查。如果 sudoers 文件现在正在被编辑,你将会收到一个信息提示稍后再试。
关于 visudo 的更多信息,前往这里。
什么是 sudo 会话如果你经常使用 sudo 命令,你肯定注意到过当你成功输入一次密码后,可以不用输入密码再运行几次 sudo 命令。但是一段时间后,sudo 命令会再次要求你的密码。
这种现象跟运行 sudo 命令数目无关,跟时间有关。是的,sudo 默认在输入一次密码后 15 分钟内不会再次要求密码。15 分钟后,你会再次被要求输入密码。
然而,如果你想的话,你能改变这种现象。用以下命令打开 /etc/sudoers 文件:
sudo visudo
找到这一行:
Defaults env_reset
env_reset
然后在这行最后添加以下变量:
Defaults env_reset,timestamp_timeout=[new-value]
[new-value] 为想要 sudo 会话持续的时间数。例如,设数值为 40。
sudo timeout value
如果你希望每次使用 sudo 命令时都要求输入密码,你可以把这个变量赋值为 0 。想要 sudo 会话永远不过时,应赋值为 -1。
注意将 timestamp_timeout 的值赋为 “-1” 是强烈不推荐的。
sudo 密码你可能注意过,当 sudo 要求输入密码然后你开始输入时,不会显示任何东西 —— 甚至连常规的星号都没有。虽然这不是什么大问题,不过一些用户就是希望显示星号。
好消息是那有可能也很容易做到。所有你需要做的就是在 /etc/sudoers 文件里将下述的行:
Defaults env_reset
改成
Defaults env_reset,pwfeedback
然后保存文件。
现在,无论什么时候输入 sudo 密码,星号都会显示。
hide the sudo password
一些重要的 sudo 命令行参数除了 -u 命令行参数(我们已经在这篇教程的开始部分讨论过了),还有其他重要的 sudo 命令行参数值得注意。在这部分,我们将会讨论其中一些。
-k 参数考虑下这种情况:输入密码后你刚刚运行了几个 sudo 驱动的命令。现在,如你所知,sudo 会话默认保持 15 分钟。假设在这会话期间,你需要让某些人访问你的终端,但你不想让他们可以使用 sudo ,你将会怎么做?
还好,有 -k 命令行参数允许用户取消 sudo 权限。这是 sudo 帮助页面(man page)对此的解释:
-k, --reset-timestamp
不带任何命令使用时,撤销用户缓存的凭据。换句话讲,下一次使用 sudo 将会要求输入密码。使用这个参数不需要密码,也可以放到一个 .logout 文件中来撤销 sudo 权限。
当与一个命令,或者一个可能需要密码的操作一起用时,这个参数将会导致 sudo 忽略用户缓存的凭据。结果是 sudo 要求输入密码(如果这是被安全策略所要求的),而且不会更新用户缓存的凭据。
-s 参数有时你的工作要求你运行一堆需要 root 权限的命令,你不想每次都输入密码。你也不想通过改变 /etc/sudoers 文件调整 sudo 会话的过期时限。
这种情况下,你可以用 sudo 的 -s 参数。这是 sudo 帮助页面对此的解释:
-s, --shell
Si la variable d'environnement SHELL est définie ou si le shell est spécifié en appelant la base de données de mots de passe de l'utilisateur, le shell sera exécuté. Si une commande est spécifiée, la commande sera transmise au shell pour exécution via le paramètre -c du shell. Si aucune commande n'est spécifiée, un shell interactif est exécuté.
Donc, ce que fait essentiellement ce paramètre de commande est :
Démarrez un nouveau shell - Pour savoir quel shell, reportez-vous à l'affectation de la variable d'environnement SHELL. Si $SHELL est vide, le shell défini dans /etc/passwd sera utilisé.
Si vous transmettez un nom de commande avec le paramètre -s (comme sudo -s whoami), ce qui est réellement exécuté est sudo /bin/bash -c whoami.
Si vous essayez de n'exécuter aucune autre commande (c'est-à-dire que vous exécutez simplement sudo -s), vous obtiendrez un shell interactif avec les privilèges root.
N'oubliez pas que le paramètre de ligne de commande -s vous donne un shell avec les privilèges root, mais ce n'est pas un environnement root - il exécute toujours votre propre .bashrc. Par exemple, dans un nouveau shell exécuté avec sudo -s, l'exécution de la commande whoami renverra toujours votre nom d'utilisateur, pas root.
-i paramètreLe paramètre -i est similaire au paramètre -s dont nous avons discuté. Cependant, il y a une différence. Une différence importante est que -i vous donne un environnement racine, ce qui signifie que votre .bashrc (de l'utilisateur) est ignoré. C'est comme devenir root sans se connecter explicitement en tant que root. De plus, vous n'avez pas besoin de saisir le mot de passe de l'utilisateur root.
Important : veuillez noter que la commande su vous permet également de changer d'utilisateur (par défaut, root). Cette commande vous demande de saisir votre mot de passe root. Pour éviter cela, vous pouvez l'exécuter en utilisant sudo (sudo su) afin de n'avoir qu'à saisir votre mot de passe de connexion. Cependant, il existe des différences implicites entre su et sudo su - pour en savoir plus sur elles et en quoi elles diffèrent de sudo -i, voir ici.
RésuméJ'espère que vous connaissez maintenant au moins les bases de sudo et comment ajuster le comportement par défaut de sudo. Veuillez essayer d'ajuster /etc/sudoers comme nous l'avons expliqué. Parcourez également les discussions du forum pour en savoir plus sur la commande sudo.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

WindowsisBetterForbeginnersDuetOeaseOfuse, couresethardwarecompatibilité, andsupportformaintreamsoftwarelikemicrosoftofficeandadoBeapps.2.LinuxoutPerformSwindowSonolderorlow-resourcehardwarewithfasterboottimes, lowersystemReoluments, andlessbloat.3.li, LowersystemRerements, andlessbloat.

Il existe trois façons principales d'installer un logiciel sur Linux: 1. Utilisez un gestionnaire de packages, tel que APT, DNF ou PACMAN, puis exécutez la commande d'installation après la mise à jour de la source, telle que SudoaptiNinStallCurl; 2. Pour les fichiers .deb ou .rpm, utilisez des commandes DPKG ou RPM pour installer et réparer les dépendances en cas de besoin; 3. Utilisez Snap ou FlatPak pour installer des applications sur des plates-formes, telles que le nom du logiciel Sudosnapinstall, qui convient aux utilisateurs qui poursuivent les mises à jour de version. Il est recommandé d'utiliser le propre gestionnaire de packages du système pour une meilleure compatibilité et des performances.

CronisUsedForpreciseScheduLingOnalways-Asystèmes, tandis que les éventualités de plus en plus

Choosepop! _OS, Ubuntu, Nobaralinux, OrarchlinuxForoptimalgaming Performance withinmimaloverhead.2.Installofficialnvidiapropriétarydriversfornvidiagpus, assurept-t-to-datememesaandkernerserforamdindelgpus.3,EBablePheperformAlect

Linux convient à l'ancien matériel, a une haute sécurité et est personnalisable, mais a une compatibilité logicielle faible; Le logiciel Windows est riche et facile à utiliser, mais a une utilisation élevée des ressources. 1. En termes de performances, Linux est léger et efficace, adapté aux anciens appareils; Windows a des exigences matérielles élevées. 2. En termes de logiciels, Windows a une compatibilité plus large, en particulier les outils et les jeux professionnels; Linux doit utiliser des outils pour exécuter certains logiciels. 3. En termes de sécurité, la gestion des autorisations Linux est plus stricte et les mises à jour sont pratiques; Bien que Windows soit protégé, il est toujours vulnérable aux attaques. 4. En termes de difficulté d'utilisation, la courbe d'apprentissage Linux est raide; L'opération Windows est intuitive. Choisissez en fonction des exigences: choisissez Linux avec les performances et la sécurité, et choisissez Windows avec compatibilité et facilité d'utilisation.

TimesYnchronization est de la réception de la fiabilité et de la sécurité et de la sécurité de la conscience en cours de réélecause de la sécurité, de la sécurité, des insignes infiasquesdTasks, et dedistributedSystemErrors; 1.CheckntPstatususingTimeDatectlStatustOronFirmSynchronizationAndServiceActivity; 2 2; 2 2; 2 2; 2 2; 2; 2 2; 2;

Installez GIT: installez GIT via le gestionnaire de packages sur le serveur et vérifiez la version; 2. Créez un utilisateur GIT dédié: utilisez AddUser pour créer un utilisateur GIT et restreignez éventuellement son accès de shell; 3. Configurez le développeur SSH Access: Définissez le fichier .SSh Directory et Authorized_Keys pour les utilisateurs GIT et ajoutez la clé publique du développeur; 4. Créez un référentiel nu: initialisez le référentiel nu sur le serveur et définissez la propriété correcte; 5. CLONING ET PUSSION CLIENT: Clonage du développeur du référentiel via SSH, soumettre des modifications et pousser avec succès le code pour terminer la construction d'un serveur GIT privé.

RaidIxprovessToragePerformanceAndeliabilityOnLinuxServers ThroughroughVariousConfigurations; raid0offersspeedButNoredundancy; raid1providesMirRoringForCriticalDatawith50�PacityLoss;
