web-dev-qa-db-ja.com

suはユーザーを変更しませんが、エラーでも応答しません

rootとしてログインしている間、特定の一般ユーザーにsuしたいと思います。走る su usernameして、ルートとして、プロンプトをすぐに受け取ります。エラーはありません。私は、「あなたがsuを実行しようとしているユーザーに、現在使用しているフォルダーへのアクセス許可がない」という古い問題を認識していますが、このシナリオではそうではありません。さらに、エラーが表示されることはありません。これは、特定の権限の問題が発生した場合には(私の知る限り)常に当てはまります。

私はもう試した su - usernameと同じ効果があります。コマンドは処理され、エラーは表示されず、すぐにプロンプ​​トが表示されます。

この動作の原因は何ですか?どうすればこれをトラブルシューティングできますか?

58
Wesley

ユーザーが持っているシェルを確認してください/etc/passwd。シェルが/bin/false(ログインを禁止する一般的なシェル)の場合、説明した動作が表示されます。または、同じ効果的な結果が得られるのは、他の即時終了プログラムの場合もあります。

75
camh

Suプロセスでstraceを使用して、プロセスがどこで失敗しているかを確認することをお勧めします。

strace su donaldduck

ソートするための大量の出力が表示されるはずですが、そこに何かがあると、問題が発生している場所を示しているはずです。

6
Magellan

シェルは/etc/passwdで確認する必要があります。ひいきにすることなく、whoamiの実行後にsuの出力を確認してください。

4

システムログを確認します。Sudoを使用すると、すべてのアクションがログに記録されます。したがって、問題がある場合は、それを記述してください。

0
Dom

Rootユーザーとしてログインする場合

$ ssh root@localhost

管理者パスワードを入力してください

$ vi /etc/passwd

ファイルの行を置き換えます

ユーザー名:x:100:100:ユーザー:/ home /ユーザー:/ sbin/nologin

ユーザー名:x:100:100:ユーザー:/ home /ユーザー:/ bin/bash

ログオフしてログインします。ユーザーが再び表示されます

0
Cherry