Estou brincando com Linux e começando a usar o terminal. Estou tentando criar pastas na raiz do sistema de arquivos, para as quais meu usuário comum não tem permissão.
Ao correr su root mkdir u01
; São solicitadas credenciais e o Terminal retorna o erro "Não é possível executar arquivo binário"
Se eu executar su root
e então mkdir u01
, o comando funcionará bem.
Alguma ideia?
Estou no Oracle Linux 6.5
Responder1
O problema é sua ligação para su
.
A sintaxe correta para executar um comando como outro usuário é:
su [username] -c "[command]"
Observe as aspas ao redor do comando; é importante manter os outros argumentos para que o comando seja executado corretamente.
Responder2
No geral, um usuário "normal" não deve ter permissão para criar arquivos ou pastas na raiz do sistema de arquivos. Permitir isso leva a todos os tipos de problemas de segurança.
Quando você executa "su root mkdir u01", seu sistema está solicitando a senha de root. O que você provavelmente deveria estar executando é "sudo mkdir u01", que solicitará sua senha de usuário normal. Observe que isso pressupõe que o sudo esteja configurado corretamente para permitir isso.
Responder3
Se você sudo
configurou corretamente, esta é a maneira correta de criar esse diretório:
sudo mkdir u01
Se o sudo não funcionar por algum motivo (ou nem mesmo estiver instalado - improvável, mas possível), você pode usar su
with command parâmetro -c
, assim:
su -c "mkdir u01"
(observe que o comando deve estar entre aspas para ser passado corretamente para su
).
Diferença importante entre usar sudo
vs su
: quando solicitada a senha, sudo
precisa da senha da sua conta de usuário, mas su
precisa da senha da conta root. Em muitas distribuições Linux (principalmente a família Ubuntu/Debian), a senha da conta root pode nem mesmo ser atribuída, portanto su
pode falhar (a menos que você atribua a senha à conta root com antecedência).