“login -qf” como raiz resulta em erro “Login incorreto”

2

Estou tentando instalar pow em uma máquina OS X. * Alguns dos componentes pow precisam ser executados como raiz Portanto, parte do processo de configuração envolve a execução de um script de instalação com sudo . O problema é que esse script de configuração trava por cerca de cinco minutos antes de falhar com um erro indicando que está falhando ao ler um arquivo em /tmp .

Eu instrumentei pow e consegui determinar que o travamento ocorre enquanto ele está tentando executar um comando equivalente ao seguinte (adicionei algumas citações e escapei porque estava usando uma chamada de sistema que recebe uma matriz de argumentos):

/usr/bin/env login -qf root /bin/sh -i -c \
    'exec env > \'/tmp/pow.6854.1418720624398.37948\''

A intenção parece ser ler as variáveis de ambiente do usuário; O node.js (no qual pow está escrito) não fornece acesso direto a variáveis de ambiente, ou eles querem ver como o ambiente é supostamente como um shell de login limpo. / p>

Agora, quando eu testo esse comando em um terminal raiz, a causa do travamento se torna óbvia:

Brents-MacBook-Pro:~ root# '/usr/bin/env' 'login' '-qf' 'root' '/bin/sh' '-i' '-c' 'exec env > /tmp/pow.6854.1418720624398.37948'
Login incorrect
login: 
login: Login timed out after 300 seconds

Aparentemente, por algum motivo, login(1) não gosta que eu tente se logar novamente como root, então ele solicita credenciais. pow não espera que precise interagir com login , então fica lá sem fazer nada até que login acabe expirando.

O que eu não entendo sobre isso é a parte "alguma razão". Por que login -qf root falharia quando você já é root? A cobertura da login(1) da manpage -f diz:

This option may only be used by the super-user or when an already logged in user is logging in as themselves.

Bem, nesse caso, o superusuário está pedindo para fazer o login, então ambas partes dessa condição são verdadeiras. Por que isso falharia?

* Estou postando aqui em vez de no Ask Different, porque isso parece ser um problema do subsistema Unix.

    
por Brent Royal-Gordon 17.12.2014 / 13:54

0 respostas