今朝まですべてがうまくいきました。 postgresqlサービスが停止して起動できません。
コマンドを実行すると、sudo service postgresql start
[FAILED]メッセージが表示されます。次に、/var/lib/pgsql/pgstartup.log ファイルに移動し、次のエラーメッセージを確認しました。
runuser: /bin/bash:/sbin/nologin: No such file or directory
その後、過去に行われたルートを訴えようとしましたが、同じエラーメッセージが表示されます。その後、suユーザーpostgresを試しましたが、同じエラーメッセージが表示されます。
ファイルが存在するので確認しました(/bin/bash および /sbin/nologin)。
注 - 次のコマンドを入力してエラーを解決できましたsudo chsh root -s $SHELL
。これにより、実際にルートを訴えた後にpostgresqlサーバーを起動できます。今私の質問はこんな感じです。原因が何であるかを知っている人はいますか?セキュリティの面でシステムが損傷するのではないかと心配する必要がありますか?
ベストアンサー1
何らかの理由で、rootユーザーのログインシェルはリテラル値に設定されます/bin/bash:/sbin/nologin
。 rootとして実行していてsudo
rootログインシェルが必要な場合、システムはリテラルコマンドを実行しようとします/bin/bash:/sbin/nologin
が、明らかな理由でコマンドは存在しません。/bin/bash
そして/sbin/nologin
一人で立っていることは重要ではありません。
修正を適用した後は、ルートログインシェルが実際に(Oracle Linuxのデフォルトログインシェル)であることをchsh
確認する必要があります。/bin/bash
返された項目を確認するだけでこれを行うことができます。
getent passwd root
- で区切られた7つのフィールドがあり、:
最後のフィールドはでなければなりません/bin/bash
。