CentOS6.x 下 /etc/security/limits.conf 被改錯的故障經歷
Intro
我司本小廠,每個員工都是身兼數職,所以開發人員直接登入線上伺服器改東西是常態。有些開發人員,自持水平較高(的確水平也是較高,但缺乏對系統的敬畏),所以總是越俎代庖,改一些本身應該是線上運維人員改動的配置。本文提到的 /etc/security/limits.conf 兩次改錯導致的事故,皆是因為於此。
In details
The first time
第一次是在 /etc/security/limits.conf 中加了兩句:
* soft nofile unlimited
* hard nofile unlimited
結果就是:
所有使用者無法登入。一登入,馬上被踢出來。
最後解決方法:
單使用者進系統把檔案 /etc/security/limits.conf 改回來。
原因:
配置檔案 /etc/security/limits.conf 中 nofile 的引數,只支援數字,"unlimited" 顯然系統不認。
The second time
第二次也是在 /etc/security/limits.conf 中加了兩句:
root soft nofile 2000000
root hard nofile 2000000
結果是:
- root 使用者一登入,就被踢
- 普通使用者可登入,但
sudo su -
一切成 root 馬上會被踢(但普通使用者只支援sudo su -
)
解決方法:
像前面文章 一次本地提權的實戰演練 有提到的:
- 普通使用者登入
- 用 DirtyCow(髒牛)本地提權
- 然後把 /etc/security/limits.conf 改回去。
原因:
- 配置檔案 /etc/security/limits.conf 中 nofile 的引數,其最大值不能大於 kernel 引數 NR_OPEN 的限制
- 而 kernel 2.6.32 裡,NR_OPEN 的值預設為 1024*1024=1048576
- 這裡的 2000000>1048576,所以出錯被踢
稍稍延展一下,如果我一定要將 nofile 引數設定為 2000000呢?
其實這也有辦法,提高 kernel 裡 NR_OPEN 的值即可,具體方法是:
[[ ! -e /etc/sysctl.d ]] && mkdir /etc/sysctl.d;
echo "fs.nr_open = 2000000" > /etc/sysctl.d/nr_open.conf;
sysctl -w fs.nr_open=2000000;
總結
總而言之,言而總之:Linux 下配置檔案 /etc/security/limits.conf 檔案不要隨意改動。我其實還是傾向於在啟動服務的啟動指令碼里手工用 ulimit 命令來設定相關引數而不要直接在 /etc/security/limits.conf 檔案裡改。
相關文章
- Oracle:/etc/security/limits.confOracleMIT
- /etc/security/limits.conf 設定----ORACLE安裝MITOracle
- linux /etc/security/limits.conf的相關說明LinuxMIT
- linux安裝oracle 修改/etc/security/limits.confLinuxOracleMIT
- [轉帖]/etc/security/limits.conf 詳解與配置MIT
- Linux系統/etc/security/limits.conf檔案的作用LinuxMIT
- 安裝Linux下Oracle一般考慮設定/etc/security/limits.conf 嗎 ?LinuxOracleMIT
- /etc/security/limits.conf 控制檔案描述符,程式數,棧大小等MIT
- /etc/fstab改錯後的處理
- 記一次詭異的故障排查經歷
- 記錄一次Mongodb被勒索的經歷MongoDB
- 最難忘的Bug除錯經歷除錯
- 記一次 CDN 流量被盜刷經歷
- 記 storm-starter 在某知名 IDE 下的悲催除錯經歷ORMIDE除錯
- QQ微信被App Store下架?騰訊:蘋果故障APP蘋果
- ulimit -a最大開啟檔案數顯示1024,但是/etc/security/limits.conf顯示10000處理方法MIT
- 記一次網站被攻擊經歷網站
- centos6.x 安裝pylucene (20161027改)CentOS
- 記一次被“虐的體無完膚”的面試經歷面試
- 經歷了ADTX儲存發生的一次電源故障
- 我的Windows10下的WSL的使用經歷Windows
- 歷經2個月從後端轉行到前端的改變後端前端
- Composer 建立專案時報錯的一點經歷
- 智慧經營融合線上經營改變線下模式模式
- [面試]記一次被問到煩起來的面試經歷。面試
- 記一次靈異般的 Bug 除錯經歷除錯
- 被阿里收購後的4個月 Lazada經歷了哪些大事?阿里
- 大型網站架構改進歷程:儲存的瓶頸(下)網站架構
- CISCO 9124光纖交換機除錯經歷除錯
- 經歷《聖歌》的失敗 EA將改變未來遊戲發售方式遊戲
- 記一次Windows下啟動錯誤故障Windows
- Spring Security 的 HttpBasic模式 活該被放棄SpringHTTP模式
- DevOps經歷的 Log4j痛苦經歷 - Redditdev
- 可笑的求職簡歷——可笑的求職經歷求職
- 開源經歷就是最好的簡歷
- 面試經歷面試
- AIX 修改系統檔案 /etc/security/limitsAIMIT
- 兩次面試的經歷面試