Quero alterar arquivos com o KomodoEdit que precisam sudo
de permissões. Porém , não consigo iniciar o KomodoEdit com sudo
(por qualquer motivo). Posso de alguma forma conceder permissão ao Komodo para editar esses arquivos (em particular, estou falando de arquivos Apache2 e /etc/hosts
)?
Responder1
Usar sudoedit <file>
. Ele cria uma cópia local do arquivo, edita-o com direitos de usuário e copia-o de volta ao local original. A vantagem é que o editor funciona como usuário normal.
Para especificar um editor diferente do padrão que você pode definir EDITOR
temporariamente:
EDITOR=/usr/bin/someeditor sudoedit /etc/hosts
Isso requer que o sudo
pacote seja instalado e o usuário seja adicionado ao sudo
grupo.
Responder2
Em teoria, você poderia fazer isso definindo o bit suid no komodoedit e alterando seu proprietário para root.
sudo chown root:root /path/to/komodoedit
sudo chmod u+s /path/to/komodoedit
O que faz:
chown
define o proprietário como rootchmod u+s
dá a qualquer pessoa que execute o arquivo os mesmos direitos (para a execução) que o proprietário.
Como definimos o proprietário como root, o proprietário efetivo da execução se torna root.
Esta provavelmente NÃO é a resposta que você procura, pois concederá a todos os usuários um editor root eficaz.
sudoedit, como mencionado por marco, é provavelmente mais correto em termos de segurança.
Responder3
Uma maneira relativamente limpa é conceder permissões ao seu ID de usuário para um determinado arquivo usandolistas de controle de acesso. Você provavelmente precisará instalar o acl
pacote para ter os comandos getfacl
e setfacl
. Então, para um usuário "meunome" e um arquivo /etc/hosts
você pode dar o comando:
sudo setfacl -m 'u:myname:rw' /etc/hosts
e você poderá ler/gravar este arquivo. Ao ls -l
acessar o arquivo, você verá um +
sinal para mostrar que há uma acl para o arquivo:
-rw-r--r--+ 1 root root 221 Nov 5 16:55 /etc/hosts
e você pode listar o acl getfacl
no arquivo. Para remover o acl posteriormente em uso
sudo setfacl -x 'u:myname' /etc/hosts
ou setfacl -b
para remover todas as acls. (Seu sistema de arquivos deve suportar acls.)