Comment puis-je obtenir des autorisations pour modifier les fichiers de configuration du système?

42

Je n'arrive pas à éditer et enregistrer des fichiers de configuration dans le système racine (ex: /etc/dhcp/dhcpd.config ); il indique simplement que "permission denied" ou l'option de sauvegarde est bloquée dans l'éditeur de texte.

Je suis sûr que je suis un utilisateur root, mais comment puis-je en être sûr? Si je suis un utilisateur root, comment puis-je résoudre ce problème?

    
posée Matthew Wilson 03.01.2012 - 06:24
la source

10 réponses

36

Quel éditeur de texte utilisez-vous? Si vous êtes un utilisateur root et que vous connaissez le mot de passe, essayez (dans un terminal) soit:

  • sudoedit /etc/dhcp/dhcpd.config si vous utilisez un éditeur de type terminal tel que nano ou que vous vous connectez à un serveur.
  • gksudo <text editor here> /etc/dhcp/dhcpd.config si vous utilisez un éditeur basé sur une interface graphique tel que gedit

Dans les deux cas, vous devrez d'abord fournir votre mot de passe root lorsque cela vous sera demandé.

Dans Ubuntu 14.04, gksudo n'est pas installé par défaut. Vous devrez installer le package gksu (provenant du Software Center ou via sudo apt-get install gksu ) pour l'obtenir.

Dans Ubuntu 17.10, Wayland est utilisé par défaut au lieu du serveur X traditionnel et il est difficile d’exécuter des éditeurs graphiques en tant que root. Voir Pourquoi ne pas utiliser gksu / gksudo avec Wayland? pour plus de détails.

    
réponse donnée Christopher Kyle Horton 03.01.2012 - 06:53
la source
15

Si vous ne souhaitez pas utiliser de terminal, vous pouvez appeler un programme graphique en tant que root (cet exemple concerne Gedit):

  1. Cliquez sur Alt + F2 pour afficher la boîte de dialogue Exécuter.
  2. Tapez gksudo suivi du nom de l'exécutable de votre programme (qui peut être différent du nom affiché par l'interface graphique). Par exemple:

    gksudo gedit
    
  3. Hit Entrez .
réponse donnée Scott Severance 03.01.2012 - 07:47
la source
10

Je ne peux pas penser à un cas où root obtiendrait permission denied .

En 12.04, vous pouvez le faire comme ceci: alt + f2 et entrez gksudo dans la case qui apparaît comme suit:

Vous obtenez une boîte comme celle-ci et entrez gedit et cliquez sur ok :

Cliquez sur Ouvrir:

Il suffit de parcourir le fichier:

Fait

Attention: il existe un super utilisateur / root pour une raison. C'est pour que vous ne mettiez pas accidentellement quelque chose de mal ou de structuré dans quelque chose d'important par erreur. Vous devez faire très attention que tout ce que vous éditez en tant que root est le bon fichier que vous voulez modifier ET que votre syntaxe est parfaite. Si d'autres outils sont disponibles pour l'édition, il est recommandé de les utiliser. Par exemple, utilisez la commande visudo terminal au lieu de modifier manuellement /etc/sudoers .

Certains fichiers pouvant être endommagés sont faciles à récupérer. D'autres sont relativement compliqués ou vous devez utiliser une console de récupération et beaucoup de lignes de commande.

Oui, la ligne de commande de la console de récupération semble un peu plus effrayante que même . Sois prudent.

    
réponse donnée RobotHumans 13.04.2012 - 22:03
la source
5

Vous pouvez tester si votre shell actuel s'exécute en tant que root de différentes manières

~/ > whoami
paul
~/ > sudo whoami
root
~/ > id
uid=1000(paul) gid=1000(paul) groups=1000(devs),4(adm),20(dialout),24(cdrom),…
~/ > sudo id
uid=0(root) gid=0(root) group=0(root)

D'autres réponses donnent de bons moyens pour accéder aux privilèges root, donc je ne les répéterai pas. En supposant que vous êtes root et que vous ne pouvez toujours pas éditer le fichier /etc/dhcp/dhcpd.config - alors very probablement quelqu'un ou un programme a utilisé le programme chattr pour rendre le fichier immuable .

À partir de la page du manuel chattr :

  

Un fichier avec l'attribut 'i' ne peut pas être modifié: il ne peut pas être supprimé   ou renommé, aucun lien ne peut être créé pour ce fichier et aucune donnée ne peut être   écrit dans le fichier. Seul le superutilisateur ou un processus possédant le   La capacité CAP_LINUX_IMMUTABLE peut définir ou effacer cet attribut.

Vous pouvez le savoir en utilisant lsattr

lsattr /etc/dhcp/dhcpd.config

Si en effet il est immuable, vous pouvez désactiver cela comme ceci:

chattr -i /etc/dhcp/dhcpd.config
    
réponse donnée pbr 11.04.2012 - 04:09
la source
1

Si vous utilisez Ubuntu 17.04 ou supérieur, il est recommandé d’utiliser le gvfs admin backend . Ajoutez simplement admin: // au début du chemin de fichier complet que vous souhaitez ouvrir dans une application comme Editeur de texte ou Applications de fichiers .

Par exemple, pour modifier les paramètres d’amorçage, ouvrez

admin:///etc/default/grub

Si vous utilisez Ubuntu 17.10 avec les paramètres par défaut de Wayland, sudo et gksu, comme indiqué dans l'ancienne réponse, vont ne pas fonctionner.

    
réponse donnée Jeremy Bicha 23.10.2017 - 20:41
la source
0

Si ni sudo ni gksudo ne fonctionnent, l’autre option est la même que toutes les autres distributions Linux: su .

Par exemple:

su
<texteditor> /etc/dhcp/dhcpd.config

Oh, et il y a un autre problème, son .conf, pas .config

    
réponse donnée Chris Weigle 03.01.2012 - 06:57
la source
0

Pour être sûr de le sauvegarder en utilisant cp /etc/dhcp/dhcpd.config /$HOME/dhcpd.config.backup et exécutez gksu gedit /etc/dhcp/dhcpd.config

Remplacez gedit par l'éditeur de votre choix

vous obtiendrez une telle invite

Entrez votre mot de passe ici

Une nouvelle fenêtre s'ouvre et vous pouvez y modifier votre configuration

En cas de problème, vous pouvez le restaurer depuis votre sauvegarde dans le dossier d’accueil

L'autorisation est refusée en raison du système général de gestion des autorisations par linux

Tout ce qui se trouve dans le dossier $HOME appartient à l'utilisateur, tandis que tout ce qui est sous / appartient à root. Tout fichier créé dans un dossier accessible par l'utilisateur appartient à cet utilisateur

Le fichier /etc/dhcp/dhcpd.conf auquel vous tentez d'accéder appartient à root, et la plupart des fichiers créés dans /etc/ appartiennent à root par défaut pour des raisons de sécurité

Vous pouvez toujours modifier ce fichier en élevant vos autorisations

Pour ce faire, vous disposez de plusieurs façons

  • utilise su qui signifie utilisateur de commutateur. Sans attributs, il fonctionne comme une commande pour basculer vers le compte racine

  • utiliser sudo qui élève votre permission pour une seule commande. Il est souvent utilisé uniquement pour les applications en ligne de commande telles que les éditeurs de texte CLI tels que vim , nano etc

  • utilisant gksu qui élève votre autorisation pour une seule commande, mais contrairement à sudo , elle est utilisée pour un programme graphique tel que les éditeurs de texte GUI tels que gedit . il utilise une invite graphique pour faciliter la saisie d'un mot de passe

réponse donnée Amith KK 13.04.2012 - 18:13
la source
0

Je n'arrive pas à éditer et enregistrer des fichiers de configuration dans le système racine (par exemple: /etc/dhcp/dhcpd.config); il dit simplement "permission refusée" ou l'option de sauvegarde est bloquée dans l'éditeur de texte.

Je suis sûr que je suis un utilisateur root, mais comment puis-je en être sûr? Si je suis un utilisateur root, comment puis-je résoudre ce problème?

@Matthem
Vous avez tout à fait raison de dire que vous êtes l'administrateur, mais sur Ubuntu, l'utilisateur root est désactivé par défaut. Ce qui signifie que même si vous êtes le seul utilisateur de votre système, ainsi que l'administrateur, vous ne pouvez pas vous connecter en tant qu'utilisateur root, pour des raisons de sécurité.

Donc, ce que vous pouvez faire, c'est:

  1. D'abord, ouvrez le fichier à éditer, éditez et enregistrez le fichier (par exemple, exemple.txt) dans votre répertoire personnel, puis allez en ligne de commande en utilisant

    CTRL + ALT + F1 ou CTRL + ALT + F2

    puis connectez-vous comme vous le feriez avec une interface graphique (en spécifiant votre nom d'utilisateur et votre mot de passe), puis tracez le fichier à l'aide de:

    ls  -al
    

    cela montrerait les différents fichiers enregistrés dans votre répertoire personnel cCurrent. Puis utilisez:

    sudo mv example.txt /etc/dhcp/
    

    Cette commande demande le mot de passe de l’utilisateur root. Entrez le mot de passe et vous avez terminé.

  2. Déconnectez-vous de la ligne de commande en utilisant soit la déconnexion, la sortie ou CTRL + D .

  3. Puis pres CTRL + ALT + F7 pour revenir à l’interface graphique normale, et vous pourrez maintenant voir que vous avez modifié le fichier avec succès.

  4. Sinon, comme cette façon de modifier le fichier est un peu longue, vous pouvez modifier la propriété de ces fichiers et répertoires racine en fonction de votre nom d'utilisateur (MAIS, ATTENTION, cela est dangereux, la prochaine fois que vous essayez de modifier un fichier ne vous avertira pas des modifications et des restrictions).

    Quoi qu’il en soit, pour modifier la propriété des fichiers et des répertoires, vous pouvez utiliser la commande suivante dans la ligne de commande:

    sudo chmod -R your-user-name:admin .
    

    Le. (DOT) représente ici le répertoire parent.

    Une fois la commande exécutée, accédez à l'interface graphique et sélectionnez n'importe quel fichier dans /bin ou /root , puis cliquez avec le bouton droit de la souris et sélectionnez Propriétés. Vous verrez que vous êtes le propriétaire des fichiers alors que le propriétaire du groupe est admin.

réponse donnée Sujit Ojha 29.09.2012 - 21:06
la source
0
sudo < editor > < filelocation >

p. ex. sudo gedit etc/dhcp/dhcpd.config

    
réponse donnée user392272 27.03.2015 - 14:06
la source
-2

Ouvrez votre terminal, tapez gksudo nautilus , entrez votre mot de passe. Il va ouvrir le système de répertoire dans une nouvelle fenêtre. Vous pouvez donc ouvrir et éditer / copier / coller n'importe quel fichier en ouvrant la fenêtre nouvellement ouverte. Si simple.

    
réponse donnée jeevanreddymandali 13.06.2014 - 20:36
la source

Lire d'autres questions sur les étiquettes