rootとして「login -qf」を使用すると、「無効なログイン」エラーが発生する

rootとして「login -qf」を使用すると、「無効なログイン」エラーが発生する

インストールしようとしています。powOS Xコンピュータで。 * *の特定のコンポーネントはpowrootとして実行する必要があるため、インストールプロセスの一部には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サブシステムの問題のようです。

ベストアンサー1

おすすめ記事