Je veux changer les files avec KomodoEdit qui ont besoin des permissions sudo
. Je ne peux pas démarrer KomodoEdit avec sudo
, cependant (pour une raison quelconque). Puis-je, d'une manière ou d'une autre, autoriser Komodo à éditer ces files (en particulier, je parle des files apache2 et /etc/hosts
)?
Utilisez sudoedit <file>
. Il crée une copy locale du file, l'édite avec les droits d'user et le copy dans l'location d'origine. L'avantage est que l'éditeur fonctionne comme user régulier.
Pour spécifier un éditeur différent de celui par défaut, vous pouvez définir temporairement EDITOR
:
EDITOR=/usr/bin/someeditor sudoedit /etc/hosts
Cela nécessite que le packageage sudo
soit installé et que l'user soit ajouté au groupe sudo
.
En théorie, vous pouvez le faire en définissant le bit suid sur komodoedit et en changeant le propriétaire en root.
sudo chown root:root /path/to/komodoedit sudo chmod u+s /path/to/komodoedit
Ce qu'il fait:
chown
définit le propriétaire à root chmod u+s
donne à quiconque exécute le file les mêmes droits (pour l'exécution) que le propriétaire. Depuis que nous avons défini le propriétaire sur root, le propriétaire d'exécution effectif devient root.
Ce n'est probablement pas la réponse que vous cherchez, car elle accordera à tous les users un éditeur racine efficace.
sudoedit, comme mentionné par marco, est probablement plus correct, la security sage.
Un moyen relativement propre consiste à donner à vos identifiants d'user les droits d' access à un file donné en utilisant des lists de contrôle d'access . Vous aurez probablement besoin d'installer le package acl
pour avoir les commands getfacl
et setfacl
. Ensuite, pour un user "myname" et un file /etc/hosts
vous pouvez donner la command:
sudo setfacl -m 'u:myname:rw' /etc/hosts
et vous serez alors en mesure de lire / écrire ce file. Quand vous avez ls -l
sur le file, vous verrez un signe +
pour montrer qu'il y a un acl pour le file:
-rw-r--r--+ 1 root root 221 Nov 5 16:55 /etc/hosts
et vous pouvez listr l'acl avec getfacl
sur le file. Pour supprimer l'acl plus tard sur l'utilisation
sudo setfacl -x 'u:myname' /etc/hosts
ou setfacl -b
pour supprimer tous les acls. (Votre système de files doit prendre en charge acls.)