Como executar os aliases raiz sendo um usuário não root?

0

Estou correndo

Linux 4.4.0-116-generic Ubuntu + KDE ( x86_64 GNU/Linux )

Eu quero executar um alias chamado ksession que mata uma sessão específica. Ao mesmo tempo eu quero que só eu possa executar esse pseudônimo e mais ninguém. Então, eu encontrei o arquivo .bashrc sob o diretório /root e adicionei um alias com o nome ksession nele, então tentei executar o comando source sem sucesso e seguindo os erros:

amit@C0deDaedalus:~$ source /root/.bashrc
bash: /root/.bashrc: Permission denied

amit@C0deDaedalus:~$ sudo source /root/.bashrc
sudo: source: command not found
  1. Existe alguma maneira de source esse arquivo ser um usuário não raiz?

  2. Eu quero executar o alias como um usuário não raiz. Posso rodar com sudo assim?

    $ sudo ksession
    

    Eu tentei isso e falhei com erro:

    amit@c0deDaedalus:~$ sudo ksession
    sudo: ksession: command not found
    
  3. Caso contrário, há alguma solução alternativa para executar aliases raiz de um usuário não raiz?

por C0deDaedalus 12.03.2018 / 09:19

1 resposta

4

A raiz não precisa de aliases. Se você quer algo privado, então não comece a mudar as coisas nas contas de outros usuários (root neste caso).

Basta escrever ksession como um script de shell e usar sudo no script quando necessário. Coloque o script em um diretório privado, por exemplo $HOME/bin , e certifique-se de que esse diretório faça parte de seu $PATH e que o script seja executável.

Como alternativa, escreva-o como uma função de shell e coloque-o no arquivo ~/.bashrc . A função pode usar sudo quando necessário.

Como alternativa, grave-o como um alias e coloque-o no arquivo ~/.bashrc . O alias pode usar sudo quando necessário.

Seu comando sudo source ... não funciona, pois source é um comando interno de bash e sudo espera um comando externo.

Mesmo que tenha funcionado, o alias não teria sido ativado no shell de chamada, pois o comando que sudo invoca está executando em seu próprio sub-shell.

    
por 12.03.2018 / 09:28