루트로 "login -qf"를 사용하면 "잘못된 로그인" 오류가 발생함

루트로 "login -qf"를 사용하면 "잘못된 로그인" 오류가 발생함

설치하려고 하는데powOS X 컴퓨터에서. * * 의 특정 구성 요소는 pow루트로 실행되어야 하므로 설치 프로세스의 일부 에는 sudo./tmp

계측을 통해 pow다음과 같은 명령을 실행하려고 할 때 정지가 발생했음을 확인할 수 있었습니다(매개변수 배열과 함께 시스템 호출을 사용하므로 일부 인용 및 이스케이프를 추가했습니다).

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

목적은 사용자의 환경 변수를 읽는 것 같습니다. node.js( pow작성된 대로)는 환경 변수에 대한 직접적인 액세스를 제공하지 않거나 환경이 무엇인지 확인하려고 합니다.~해야 한다깨끗한 로그인 셸과 같습니다.

이제 루트 터미널에서 이 명령을 테스트하면 정지 원인이 분명해집니다.

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

어떤 이유에서인지 login(1)루트로 다시 로그인하려는 시도가 마음에 들지 않아 자격 증명을 묻는 메시지가 표시됩니다. pow와 상호작용해야 한다는 기대가 없으므로 결국 시간이 초과될 login때까지 아무 것도 하지 않고 그냥 가만히 있습니다 .login

내가 이해하지 못하는 것은 "어떤 이유"부분입니다. login -qf root이미 루팅했는데 왜 실패하나요? 맨페이지에서는 login(1)이 옵션을 -f다음과 같이 설명합니다.

이 옵션은 슈퍼유저 또는 자신으로 로그인한 로그인 사용자만 사용할 수 있습니다.

음, 이 경우 슈퍼유저는 자신으로 로그인하도록 요청하므로둘 다조건의 일부가 참입니다. 왜 이것이 실패합니까?

*Ask Different가 아닌 여기에 게시합니다. 이는 Unix 하위 시스템 문제인 것 같습니다.

관련 정보