Como adicionar uma senha a um comando específico

0

Eu pesquisei no Google como adicionar segurança adicional a um comando específico sem usar sudo .

É possível adicionar um recurso de segurança sem realmente usar sudo ?

Por exemplo:

Sempre que eu uso o comando xxd . Há uma necessidade de uma entrada adicional para que o comando seja executado ou não funcione.

O que eu estava fazendo era usar o comando xxd para converter uma string em hexadecimal de lixo. Então é basicamente reversível na string original. Agora, o que estou tentando realizar é que ninguém deve ser capaz de usar o xxd -r , exceto para poucas pessoas que conhecem a senha para executá-la, para que os valores hexadecimais não sejam revertidos para o original string.

    
por Benson 22.09.2014 / 10:37

3 respostas

0

Desculpe pela resposta tardia.

Eu usei outro comando e não o xxd, pois ele não suporta uma senha.

Eu usei o comando openssl no qual posso colocar uma senha toda vez que eu criptografar uma senha:

openssl enc -aes-128-cbc -a -salt -pass pass:test123

Agora, se eu precisar descriptografá-lo. Preciso usar:

openssl enc -aes-128-cbc -a -d -salt -pass pass:test123

Obrigado pela ajuda de todos.

    
por 23.09.2014 / 05:39
3

Para conseguir o que você quer, posso propor o seguinte:

  1. Crie um usuário para cada programa. No seu exemplo, suponha que você crie um usuário uxxd (grupo uxxd).
  2. Insira a senha desejada (por exemplo, 123456)
  3. Conceda os direitos de execução neste programa somente ao usuário uxxd: chown uxxd:uxxd xxd chmod 700 xxd
  4. Para melhor segurança, você também pode remover o shell de login do usuário uxxd (dependendo do sistema, você pode substituí-lo por /bin/nologin , por exemplo)

Agora, para iniciar seu programa, você precisa:

su uxxd -c xxd

Se este programa deve criar arquivos para o usuário que o iniciou, o usuário provavelmente deve estar no grupo uxxd. Isso depende do umask padrão no seu sistema e pode ser alterado.

    
por 22.09.2014 / 11:17
-2

Isso não é tão seguro

você pode adicionar isso a /etc/profile

xxd()
{
if [ $1 = "123456" ]; then
xxd ${@:2}
else
echo "sorry command not available"
fi
}

/usr/bin/xxd()
{
if [ $1 = "123456" ]; then
xxd ${@:2}
else
echo "sorry command not available"
fi
}

você executaria o comando como xxd 123456 -r ...

você teria que restringir o acesso de leitura ao binário, de modo que não possa ser copiado.

qualquer usuário também pode ler o / etc / profile e ver a senha, você poderia colocá-los em um script xxdcmd.sh sem acesso de leitura e executá-los de alguma forma.

De qualquer forma, acho que uma boa solução seria o que foi sugerido sobre ter um usuário / grupo, mas achei que seria interessante encontrar outros métodos.

Felicidades!

PS: essa seria uma boa solução para o que você está tentando alcançar

gpg -c <filename>
gpg -d <filename.gpg>
    
por 22.09.2014 / 13:26