root
としてログインしている間、特定の一般ユーザーにsu
したいと思います。走る su username
して、ルートとして、プロンプトをすぐに受け取ります。エラーはありません。私は、「あなたがsuを実行しようとしているユーザーに、現在使用しているフォルダーへのアクセス許可がない」という古い問題を認識していますが、このシナリオではそうではありません。さらに、エラーが表示されることはありません。これは、特定の権限の問題が発生した場合には(私の知る限り)常に当てはまります。
私はもう試した su - username
と同じ効果があります。コマンドは処理され、エラーは表示されず、すぐにプロンプトが表示されます。
この動作の原因は何ですか?どうすればこれをトラブルシューティングできますか?
ユーザーが持っているシェルを確認してください/etc/passwd
。シェルが/bin/false
(ログインを禁止する一般的なシェル)の場合、説明した動作が表示されます。または、同じ効果的な結果が得られるのは、他の即時終了プログラムの場合もあります。
Suプロセスでstraceを使用して、プロセスがどこで失敗しているかを確認することをお勧めします。
strace su donaldduck
ソートするための大量の出力が表示されるはずですが、そこに何かがあると、問題が発生している場所を示しているはずです。
シェルは/etc/passwd
で確認する必要があります。ひいきにすることなく、whoami
の実行後にsu
の出力を確認してください。
システムログを確認します。Sudoを使用すると、すべてのアクションがログに記録されます。したがって、問題がある場合は、それを記述してください。
Rootユーザーとしてログインする場合
$ ssh root@localhost
管理者パスワードを入力してください
$ vi /etc/passwd
ファイルの行を置き換えます
ユーザー名:x:100:100:ユーザー:/ home /ユーザー:/ sbin/nologin
に
ユーザー名:x:100:100:ユーザー:/ home /ユーザー:/ bin/bash
ログオフしてログインします。ユーザーが再び表示されます