【故障事例】Linuxシステムrootがsu(報告されたリソースが一時的に利用できない問題)を介して通常のユーザーに切り替えることができない(20201126)



Linux System Root Cannot Switch An Ordinary User Through Su



問題の原因:
理由:Linuxシステムは、ユーザーのプロセスの最大数を制限します。アプリケーションが完全な数のプロセスを占有した後、実行されたコマンドは、リソースが一時的に利用できないことを報告します。

調査の結果、/ bin / bashの実行に失敗したことが判明しました:リソースが一時的に利用できません(リソースが一時的に利用できません)(Linuxシステムルートはsu-を介して通常のユーザーに切り替えることはできませんが、他の通常のユーザーにsu-することはできます):
画像
画像
調査の結果、すべてのコンピューティングリソースに異常があり、df-hTコマンドでディスクがいっぱいであるなどの問題が検出されなかったことが判明しました。



最後に、インターネットでのBaidu検索で、この失敗に似た複数のブログが見つかったので、この方法をオンラインで使用することにしました。

#ulimitコマンドビュー:
ulimit
ulimit -a
画像
#提供するftpサービス接続の数を表示する
[root @ xxxxx〜] $ netstat -antlp | grep -v tcp6 | grep 10.156.43.39:22 | grep ESTABLISHED | wc -l
(「-p」の情報は読み取れませんでした:geteuid()= 1001ですが、rootである必要があります。)
5074
接続数が5074に達し、システムのデフォルト設定ulimit-aがわずか1024であることがわかります。



解決策は次のとおりです。
解決策1:増やす(nproc値を増やす)
デフォルトは次のとおりです。nprocは4096です。
egrep -v“$ |#” /etc/security/limits.d/20-nproc.conf
画像
(2)解決策は次のとおりです
vim /etc/security/limits.d/20-nproc.conf

  • soft nproc 65535#デフォルト値の1024を65535に変更します
    ルートソフトnproc無制限

// nproc:プロセスの最大数を表します
// nofile:開いているファイル記述子の最大数を表します
// hard / soft:softは警告値であり、hardは真のしきい値であり、それを超えるとエラーが報告されます。

今問題があります:
仮説が修正された後:(以下は事前設定された結論です)
1.他の事業に影響はありますか? ? -一般的には、変更しました
2.どのように有効にしますか? ? -通常、デフォルトで有効です



処理結果は次のとおりです。(障害は回復しました)
画像
解決策2:一時的な解決策は、現在のユーザーの最大のプロセスを使用し、いくつかのリソースを再起動して解放することです。
$ pstree

最後に、頑張ってください!
画像