Respostas:
No MacOS X, o usuário root é desativado por padrão e, portanto su
, não funciona. Como outros já disseram, é melhor usar sudo
.
Se você deve permitir que o usuário root, ver nota técnica da Apple: Ativando e utilizando o usuário "root" no Mac OS X .
sudo su
, qual o motivo de desativar, su
então?
su
", é para impedir o login root . Ao desabilitar o login como root
, você evita vários problemas de segurança possíveis. Não permitir que alguém que pode sudo
para su
é meio bobo. Basicamente, su
apenas altera o ID do usuário atual e executa um comando (um shell, se não especificado). Se o ID do usuário já é 0 (raiz), como quando executado com sudo
, não há nada para fazer, então ele apenas executa o shell. Você pode obter um efeito semelhante fazendo sudo bash
.
Você tem duas opções. A primeira é usar sudo -s
- isso lhe dará acesso ao superusuário, mas você continuará sendo "você mesmo" (por assim dizer), de modo que coisas como ~
ainda serão seu diretório inicial. Como alternativa, você pode usar sudo su
, o que fornece um shell como o usuário root real do seu Mac.
sudo
para executar comandos que exigem privilégios elevados, não para alternar para um shell raiz e trabalhar com isso.
sudo
ethos ao extremo. Mas tanto faz: semântica. Não use shell de raiz no OS X.
Por exemplo, se você precisar mover arquivos ou usar o git usando a CLI, nesse caso, a melhor solução será usar o sudo -s
comando Após esse comando, você não precisa continuar digitando a senha repetidamente.
Eu acho que você não pode fazer isso como um usuário "normal" ...
Se houver outra conta de usuário com direitos de administrador, você deverá usar esta
restricted user$ su
Password:(the root password here)
Sorry!
restricted user$ su - (an admin account here)
password:(the admin account password)
$ su - root
Password:(The root password here)
# -> You are root user now
sudo -u
Para executar como outro uso, use sudo -u
.
Por exemplo, para executar um editor de texto como o nano :
sudo -u someuser nano
… E digite sua senha de usuário administrador do Mac, quando solicitado. Nesse momento, é o usuário administrador do Mac que está chamando sudo
, não o someuser
usuário, para que você não digite a someuser
senha.
sudo
significa executar algo usando privilégios de superusuário.-u
significa "executar um comando especificado como esse usuário especificado".someuser
deve ser substituído pelo seu nome de usuário desejado.Para simular um login inicial como um usuário específico, incluindo a execução de seus scripts de inicialização, use -I
.
sudo -u someuser -i nano
Isso executa o nano
aplicativo como usuário, someuser
mas somente após a execução dos scripts de inicialização para esse usuário.
Se optarmos por não especificar um comando ou aplicativo a ser executado, obteremos um shell interativo em execução como esse usuário.
sudo -u someuser -i
sudo su someuser
Outra abordagem usa o su
comando em combinação com o sudo
. O su
comando significa "alternar usuário".
sudo su someuser
Ou, para incluir a execução dos scripts de inicialização do usuário, adicione o hífen.
sudo su - someuser
root
do utilizadorO root
usuário em sistemas operacionais relacionados ao Unix tem poder absoluto para fazer qualquer coisa.
A Apple optou por desativar a root
conta no macOS, evitar explorações de vulnerabilidades de segurança e protegê-lo de dar um tiro no pé. A Apple criou a idéia das contas de usuário Administrador que têm muitos poderes, mais poderes do que uma conta de usuário Padrão , mas não um poder absoluto como o root
possui. Consulte esta nota de suporte da Apple para discussão.
Se necessário, você pode habilitar o root
usuário no macOS e depois mudar para esse usuário. Isso é fortemente desencorajado. Eu seguiria esse caminho apenas como um último recurso desesperado.
Para discussão sobre isso no contexto do postgres
usuário que está executando o sistema de banco de dados Postgres no macOS, consulte esta pergunta no site irmão, DBA Stack Exchange .
sudo su
ainda funciona, por isso não está realmente desativado. Apenas não tem senha.