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, suentã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 sudopara sué meio bobo. Basicamente, suapenas 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.
sudopara executar comandos que exigem privilégios elevados, não para alternar para um shell raiz e trabalhar com isso.
sudoethos 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 -scomando 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 -uPara 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 someuserusuário, para que você não digite a someusersenha.
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 nanoaplicativo como usuário, someusermas 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 someuserOutra abordagem usa o sucomando em combinação com o sudo. O sucomando 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 rootusuário em sistemas operacionais relacionados ao Unix tem poder absoluto para fazer qualquer coisa.
A Apple optou por desativar a rootconta 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 rootpossui. Consulte esta nota de suporte da Apple para discussão.
Se necessário, você pode habilitar o rootusuá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 postgresusuário que está executando o sistema de banco de dados Postgres no macOS, consulte esta pergunta no site irmão, DBA Stack Exchange .
sudo suainda funciona, por isso não está realmente desativado. Apenas não tem senha.