J'ai installé Ubuntu en utilisant l'interface graphique, en me donnant un mot de passe et tout. Je ne me souviens pas du processus de manière complexe. Cependant, ce qui m'inquiète, c'est que je ne connais pas le mot de passe suivant:
$ su
Password: <the only password I've ever created on this machine>
su: Authentication failure
Je ne sais juste pas quoi faire. Je ne suis pas en difficulté, mais je veux juste savoir ce qui se passe ici. Je peux aussi me verrouiller hors des répertoires:
starkers@ubuntu:~/Desktop$ mkdir foobs
starkers@ubuntu:~/Desktop$ sudo chmod 777 -R foobs
sudo: /var/lib/sudo writable by non-owner (040777), should be mode 0700
[sudo] password for starkers: <the only password I've ever created on this machine>
starkers@ubuntu:~/Desktop$ cd foobs
bash: cd: foobs: Permission denied
Je suis juste un peu confus. Comment puis-je m'enfermer comme ça? Je pense sudo
est la commande clé ici. Mais je rends le foobs
fichier aussi ouvert que possible via le chmod
, alors pourquoi est-ce qu'il me verrouille?
chmod -R 777 whatever
, à moins de vouloir causer un risque énorme pour la sécurité.666
?chmod
, de ne modifier que les fichiers que vous vouliez./var/lib/sudo
monde est en écriture. Cela ne devrait pas se produire et vous devriez essayer de savoir pourquoi.Réponses:
Par défaut, le compte superutilisateur (
root
) est désactivé et n’a aucun mot de passe. Vous pouvez en créer un en exécutant:Vous pourrez ensuite vous connecter en tant que root en
su
utilisant ce mot de passe.En ce qui concerne
chmod
, la commande correcte serait:Vous pouvez aussi utiliser:
pour vous connecter en tant que root en utilisant votre mot de passe (sans créer de mot de passe root comme décrit ci-dessus).
la source
sudo su
. Cela donne aussi des droits su permanents sur le terminal.sudo su
, car il va foutre en l'air et les choses vont se casser. utilisez plutôtsudo -i
.1. Pourquoi vous n'avez pas de mot de passe root
Bien que vous puissiez créer un mot de passe pour le compte superutilisateur vous permettant de vous connecter en tant que root
su
, il est à noter que ce n'est pas la manière habituelle de faire des choses avec Ubuntu (ou de plus en plus, d'autres distributions). Ubuntu a choisi de ne pas donner de nom d'utilisateur et de mot de passe root par défaut pour une raison. À la place, une installation par défaut d’Ubuntu utilisera lessudo
privilèges de superutilisateur. Dans une installation par défaut d'Ubuntu, la personne qui a installé le système d'exploitation reçoit par défaut l'autorisation "sudo".Toute personne disposant d'une autorisation "sudo" complète peut exécuter quelque chose "en tant que superutilisateur" en mettant en attente
sudo
sa commande. Par exemple, pour fonctionner enapt-get dist-upgrade
tant que superutilisateur, vous pouvez utiliser:Vous verrez cette utilisation de sudo à peu près partout où vous lirez un tutoriel sur Ubuntu sur le Web. C'est une alternative à cela.
Avec sudo, vous choisissez à l'avance les utilisateurs qui ont un accès sudo. Ils n'ont pas besoin de se souvenir d'un mot de passe root car ils utilisent leur propre mot de passe. Si vous avez plusieurs utilisateurs, vous pouvez révoquer son accès superutilisateur en supprimant simplement leur autorisation sudo, sans avoir à changer le mot de passe root et à notifier un nouveau mot de passe à tout le monde. Vous pouvez même choisir quelles commandes un utilisateur est autorisé à utiliser avec sudo et quelles commandes sont interdites pour cet utilisateur. Enfin, en cas d’infraction à la sécurité, une meilleure trace d’audit peut dans certains cas laisser apparaître le compte utilisateur compromis.
Sudo facilite l'exécution d'une commande unique avec les privilèges de superutilisateur. Avec
su
, vous passez définitivement à un shell superutilisateur qui doit être quitté avecexit
oulogout
. Cela peut amener les utilisateurs à rester dans le shell de superutilisateur plus longtemps que nécessaire simplement parce que cela est plus pratique que de se déconnecter et de se reconnecter plus tard.Avec sudo, vous avez toujours la possibilité d’ouvrir un shell superutilisateur permanent (interactif) avec la commande:
... et cela peut toujours être fait sans mot de passe root, car
sudo
donne les privilèges de superutilisateur à lasu
commande.Et de même, au lieu de
su -
pour un shell de connexion, vous pouvez utilisersudo su -
ou son raccourcisudo -i
.Cependant, pour ce faire, vous devez simplement savoir que vous agissez en tant que superutilisateur pour chaque commande. C'est un bon principe de sécurité de ne pas rester super-utilisateur plus longtemps que nécessaire, juste pour limiter les risques d'endommager accidentellement le système (sans lui, vous ne pouvez endommager que les fichiers que votre utilisateur possède).
Juste pour clarifier, vous pouvez , si vous le souhaitez, donner à l'utilisateur root un mot de passe lui permettant de se connecter en tant que root, comme décrit dans la réponse de @ Oli, si vous souhaitez spécifiquement procéder de la sorte. Je voulais simplement vous informer de la convention Ubuntu consistant à préférer la
sudo
préférence et vous faire savoir qu'il existe une alternative.2. Les problèmes avec votre commande chmod 777 -R
Votre question comporte également une deuxième partie: vos problèmes avec la commande
sudo chmod 777 -R foobs
.Premièrement, l’avertissement suivant indique un problème de sécurité potentiellement sérieux sur votre ordinateur:
Cela signifie qu’à un moment donné, vous êtes prêt
/var/lib/sudo
à écrire dans le monde entier. J'imagine que vous avez fait cela à un moment donné en utilisant une commande commesudo chmod 777 -R /
. Malheureusement, ce faisant, vous avez probablement quasiment brisé toutes les autorisations de fichiers de votre système. Il est peu probable que ce soit le seul fichier système important dont les autorisations ont été modifiées pour être accessible en écriture. Vous avez essentiellement un système facilement piratable, et le seul moyen facile de le récupérer consiste à le réinstaller.Deuxièmement, la commande que vous utilisiez:
Lors de la manipulation de fichiers dans votre répertoire personnel, dans ce cas dans
~/Desktop
, vous ne devriez pas avoir à utilisersudo
. Tous les fichiers que vous créez dans votre répertoire personnel doivent être modifiables par vous de toute façon (sinon, quelque chose de drôle se passe).En outre, vous devez être pleinement conscient des conséquences de la modification en masse des autorisations de fichiers, telles que le faire de manière récursive ou sur un très grand nombre de fichiers. Dans ce cas, vous modifiez avec soin les autorisations de fichiers pour qu'elles soient accessibles en écriture au monde. Tout autre utilisateur, ou tout logiciel serveur buggy sur la machine, peut avoir un accès facile pour écraser tous ces fichiers et répertoires.
Il est presque certain que
chmod 777 -R [dir]
ce n'est pas une solution appropriée au problème que vous tentiez de résoudre (et comme je l'ai mentionné ci-dessus, il est prouvé que vous l'avez déjà fait pour les fichiers système dans / var / lib, et je suppose que pour beaucoup d'autres des endroits).Quelques règles de base:
Si vous vous contentez de manipuler vos propres fichiers dans votre répertoire personnel, votre ordinateur de bureau, etc., vous ne devriez jamais avoir besoin d'utiliser les
sudo
droits de superutilisateur. Si vous le faites, c'est un signe avant-coureur que vous faites quelque chose de mal.Vous ne devez jamais modifier manuellement les fichiers système appartenant à des packages. Exception: à moins que vous ne le fassiez de manière spécifiquement documentée par ces packages, par exemple en modifiant leur configuration dans
/etc
. Cela s'applique également à la modification des autorisations de fichiers. Si un didacticiel ou une tentative de résolution du problème nécessite dessudo
droits ou des droits de superutilisateur et qu'il ne s'agit pas simplement d'une modification de la configuration dans / etc /, cela signifie que vous faites quelque chose de mal.la source
sudo -i
plussudo su
.sudo -i
(ousudo su -
) ne sont pas universellement meilleurs mais simplement différents - ils lancent un shell de connexion qui simule un environnement de connexion d'utilisateur root, qui exécute, par exemple, le.profile
fichier ou le.login
fichier de l'utilisateur root. Celles-ci sont meilleures si vous voulez que l'environnement dans le shell ressemble davantage à un shell de connexion root qu'à un shell interactif qui concerne les privilèges de superutilisateur. Il est probablement préférable d'utiliser les shells basés sur login si vous utilisez un shell, mais c'est sans intérêt: le point essentiel de la réponse est qu'Ubuntu est principalement conçu pour utilisersudo
des commandes avec des privilèges de super-utilisateur.