Comme les utilisateurs l'ont déjà noté, l'utilisation de "chmod 0440 / etc / sudoers" lorsque le fichier sudoers.d / README a le mauvais chmod NE FONCTIONNE PAS.
kentfx
Êtes-vous en train de suggérer que lorsque le problème est lié aux autorisations /etc/sudoers.d/README, l'erreur peut toujours être indiquée sudo: /etc/sudoers is mode 0777, should be 0440?
Lorsque l'écran de sélection de démarrage GRUB s'affiche, choisissez le mode de récupération. (S'il ne s'affiche pas, appuyez sur la Shifttouche lorsque vous voyez le chargeur GRUB en bas).
Un terminal noir devrait apparaître, à ce stade, vous pouvez exécuter cette commande (vous devez avoir les privilèges root):
chmod 0440 /etc/sudoers
Alternativement
Vous devrez mettre Ubuntu sur un LiveCD, démarrer sur le LiveCD, monter votre partition Ubuntu sur le disque dur (ouvrir un navigateur de fichiers, comme Nautilus, et cliquer sur votre partition Ubuntu; ou cliquer sur Lieux -> "Partition xxGB / Votre partition Ubuntu ").
Ensuite, ouvrez un terminal dans la session LiveCD et tapez ces deux commandes:
cd /media/<name of permanent ubuntu partition>/etc
sudo chmod 0440 sudoers
Problèmes supplémentaires
S'il y a des erreurs (comme indiqué ci-dessous), suivez l'invite d'erreur et ajustez chaque fichier en conséquence en utilisant l'une des deux étapes ci-dessus:
sudo apt-get update sudo: /etc/sudoers.d/README est le mode 0777, devrait être 0440 sudo: / var / lib / sudo accessible en écriture par un non-propriétaire (040777), devrait être le mode 0700 [sudo] mot de passe pour
Ces deux commandes doivent être utilisées de manière appropriée avec les étapes décrites ci-dessus. Ils modifieront les autorisations de fichier associées à ce fichier. 0440 donnera au propriétaire (root) et au groupe les autorisations de lecture et 0700 donnera au propriétaire (root), lira, écrira et exécutera les permissions.
Je peux utiliser la commande sudo mais limitée. sudo apt-get update sudo: /etc/sudoers.d/README is mode 0777, should be 0440 sudo: /var/lib/sudo writable by non-owner (040777), should be mode 0700 [sudo] password for
user20698
@Alex: ESC est pour l'héritage de GRUB non? Shift doit être enfoncé pour GRUB2.
Lekensteyn
@ user20698: vous n'avez pas besoin sudodu premier, le second doit être fait à partir d'un Live CD.
Lekensteyn
Si sudoers est 0777, l'utilisateur ne devrait-il pas pouvoir fonctionner chmod 0440 /etc/sudoerssans sudo car sudoers est accessible en écriture à tout le monde?
Seppo Erviälä
2
@Seppo: non, seul le propriétaire d'un fichier peut modifier les autorisations du fichier.
Lekensteyn
16
sudoest cassé dans cette situation, mais pkexec(l'interface de ligne de commande de PolicyKit ) fonctionne toujours, vous pouvez donc le réparer avec une seule commande. Aucun redémarrage n'est nécessaire.
pkexec chmod 0440 /etc/sudoers
Cela suppose que PolicyKit est installé. S'il s'agit d'un système de bureau (plutôt que d'un serveur sans interface graphique), c'est le cas.
Pourquoi utilisez-vous chmodcertains fichiers 440et d'autres 0440? Ne devriez-vous pas utiliser 0440uniformément? Et pourquoi modifiez-vous les autorisations /etc/sudoers.d/READMElorsque vous utilisez le pkexecchemin, mais pas autrement? Et qu'en est-il des autres fichiers possibles /etc/sudoers.d?
Eliah Kagan
1
Qu'avez-vous fait pour obtenir ces erreurs?
Si vous avez fait:, vous sudo chmod -R 777 /etcavez besoin d'un Live CD pour le réparer.
Démarrez dans un Live CD et sélectionnez "Try it"
Montez votre partition Ubuntu (ou la partition contenant /etcsi vous avez mis /etcsur une partition séparée). Cela peut être fait en utilisant un navigateur de fichiers comme Nautilus ou le menu Lieux
Ouvrez un terminal en allant dans Applications => Accessoires => Terminal
Déterminez le dossier de votre partition Ubuntu, vous pouvez lister le contenu des partitions montées en utilisant ls -l /media. Il est peut-être nommé ubuntuou disk. Dans les prochaines étapes, je suppose ubuntu.
Dans le terminal, définissez des autorisations restrictives par défaut:
sudo find /media/ubuntu/etc -type f -exec chmod g-wx,o-rwx {} \;
sudo find /media/ubuntu/etc -type d -exec chmod g-w,o-rwx {} \;
Ensuite, utilisez le Live CD comme point de référence pour restaurer les autorisations de fichier. La commande ci-dessous modifiera les autorisations de fichier pour /etc/media/ubuntuutiliser le /etcdossier sur le Live CD comme point de référence. Cela ne changera que les autorisations sur les fichiers ( -type f) et les répertoires ( -type d) sur le même système de fichiers ( -xdev). Toutes les erreurs sont écrites dans ~/errors.logErreurs comme «fichier non trouvé» indique qu'un fichier sur le système est installé, mais introuvable sur le Live CD. La commande de l'étape 5 doit définir les bonnes autorisations pour cela, mais pour de meilleurs résultats, vous feriez mieux de réinstaller les packages.
cd /media/ubuntu && sudo find etc -xdev \( -type f -o -type d \) -f -exec chmod --reference=/{} {} \; 2>~/errors.log
Maintenant en sécurité ~/errors.logquelque part (comme http://paste.ubuntu.com/ ) afin que vous puissiez l'ajouter comme commentaire à cette réponse si vous avez des problèmes avec les applications.
Dans Ubuntu, vous pouvez d'abord frapper Ctrl+ Alt+ Tqui ouvre le terminal. Après cela, vous pouvez copier-coller la commande ci-dessous avec Ctrl+ Cet coller dans le terminal avec Ctrl+ Shift+ V.
Pour moi, j'ai dû ajouter une étape de plus aux pkexecsuggestions, par cela , j'ai eu la chance d'avoir 2 sessions ssh en cours quand j'ai fait l'erreur stupide:
Ouvrez 2 terminaux
Dans le terminal 2, exécutez echo $$pour obtenir le PID
Exécuter pkttyagent --process PID_FROM_STEP2dans le terminal 2
Dans le terminal 1, exécutez pkexec chmod 0440 /etc/sudoers
Dans mon cas, j'ai aussi dû courir pkexec chown root:root /etc/sudoers
/etc/sudoers.d/README
, l'erreur peut toujours être indiquéesudo: /etc/sudoers is mode 0777, should be 0440
?Réponses:
Première option
Suite à ce post :
Un terminal noir devrait apparaître, à ce stade, vous pouvez exécuter cette commande (vous devez avoir les privilèges root):
Alternativement
Vous devrez mettre Ubuntu sur un LiveCD, démarrer sur le LiveCD, monter votre partition Ubuntu sur le disque dur (ouvrir un navigateur de fichiers, comme Nautilus, et cliquer sur votre partition Ubuntu; ou cliquer sur Lieux -> "Partition xxGB / Votre partition Ubuntu ").
Ensuite, ouvrez un terminal dans la session LiveCD et tapez ces deux commandes:
Problèmes supplémentaires
S'il y a des erreurs (comme indiqué ci-dessous), suivez l'invite d'erreur et ajustez chaque fichier en conséquence en utilisant l'une des deux étapes ci-dessus:
Corrigez en suivant avec:
Ces deux commandes doivent être utilisées de manière appropriée avec les étapes décrites ci-dessus. Ils modifieront les autorisations de fichier associées à ce fichier. 0440 donnera au propriétaire (root) et au groupe les autorisations de lecture et 0700 donnera au propriétaire (root), lira, écrira et exécutera les permissions.
la source
sudo apt-get update sudo: /etc/sudoers.d/README is mode 0777, should be 0440 sudo: /var/lib/sudo writable by non-owner (040777), should be mode 0700 [sudo] password for
sudo
du premier, le second doit être fait à partir d'un Live CD.chmod 0440 /etc/sudoers
sans sudo car sudoers est accessible en écriture à tout le monde?sudo
est cassé dans cette situation, maispkexec
(l'interface de ligne de commande de PolicyKit ) fonctionne toujours, vous pouvez donc le réparer avec une seule commande. Aucun redémarrage n'est nécessaire.Cela suppose que PolicyKit est installé. S'il s'agit d'un système de bureau (plutôt que d'un serveur sans interface graphique), c'est le cas.
la source
Démarrez en mode de récupération, choisissez le shell racine et:
Ou si vous ne voulez pas redémarrer, vous pouvez utiliser cette alternative:
cela changera l'autorisation. Essayez, cela fonctionnera.
la source
chmod
certains fichiers440
et d'autres0440
? Ne devriez-vous pas utiliser0440
uniformément? Et pourquoi modifiez-vous les autorisations/etc/sudoers.d/README
lorsque vous utilisez lepkexec
chemin, mais pas autrement? Et qu'en est-il des autres fichiers possibles/etc/sudoers.d
?Qu'avez-vous fait pour obtenir ces erreurs?
Si vous avez fait:, vous
sudo chmod -R 777 /etc
avez besoin d'un Live CD pour le réparer./etc
si vous avez mis/etc
sur une partition séparée). Cela peut être fait en utilisant un navigateur de fichiers comme Nautilus ou le menu Lieuxls -l /media
. Il est peut-être nomméubuntu
oudisk
. Dans les prochaines étapes, je supposeubuntu
.Dans le terminal, définissez des autorisations restrictives par défaut:
Ensuite, utilisez le Live CD comme point de référence pour restaurer les autorisations de fichier. La commande ci-dessous modifiera les autorisations de fichier pour
/etc/media/ubuntu
utiliser le/etc
dossier sur le Live CD comme point de référence. Cela ne changera que les autorisations sur les fichiers (-type f
) et les répertoires (-type d
) sur le même système de fichiers (-xdev
). Toutes les erreurs sont écrites dans~/errors.log
Erreurs comme «fichier non trouvé» indique qu'un fichier sur le système est installé, mais introuvable sur le Live CD. La commande de l'étape 5 doit définir les bonnes autorisations pour cela, mais pour de meilleurs résultats, vous feriez mieux de réinstaller les packages.~/errors.log
quelque part (comme http://paste.ubuntu.com/ ) afin que vous puissiez l'ajouter comme commentaire à cette réponse si vous avez des problèmes avec les applications.la source
Dans Ubuntu, vous pouvez d'abord frapper Ctrl+ Alt+ Tqui ouvre le terminal. Après cela, vous pouvez copier-coller la commande ci-dessous avec Ctrl+ Cet coller dans le terminal avec Ctrl+ Shift+ V.
la source
Pour moi, j'ai dû ajouter une étape de plus aux
pkexec
suggestions, par cela , j'ai eu la chance d'avoir 2 sessions ssh en cours quand j'ai fait l'erreur stupide:echo $$
pour obtenir le PIDpkttyagent --process PID_FROM_STEP2
dans le terminal 2pkexec chmod 0440 /etc/sudoers
pkexec chown root:root /etc/sudoers
la source