問題
在Linux系統(tǒng)上,從root用戶切換到oracle用戶時(shí)報(bào)錯(cuò) su: cannot open session: Permission denied
如下:
分析
定位原因1
- 分析登錄日志,可以看到時(shí)登錄的時(shí)候limit中的
memlock
設(shè)置失敗,導(dǎo)致用戶登錄失敗:
- limit配置表示限制該用戶最大可以打開的文件數(shù)量、會(huì)話數(shù)量、內(nèi)存等,使用
ulimit -a
命令查看當(dāng)前的配置:
- 從上圖可以看到,即使我現(xiàn)在使用的是root用戶,但是最大的
memlock
也只有64 字節(jié),并且,嘗試設(shè)置memlock
失敗了
- 之所以設(shè)置失敗,是因?yàn)槲耶?dāng)前的服務(wù)器不是真實(shí)的物理機(jī),而是docker,所以沒有權(quán)限
定位原因2
- 確定是
limit
的配置導(dǎo)致的登錄失敗,按照百度的解決方案,嘗試修改/etc/security/limits.conf
后重新登錄,結(jié)果還是登錄失敗,控制臺(tái)和日志報(bào)錯(cuò)與之前完全一樣
- 經(jīng)過一番摸索之后發(fā)現(xiàn):在系統(tǒng)的
/etc/security/limits.d/
下的配置文件同樣也是用來配置limit,并且 優(yōu)先等級(jí) 高于/etc/security/limits.conf
- 而且在這里,可以看到一個(gè)安裝 oracle 軟件自動(dòng)生成的conf文件
修改完該文件之后,終于可以登錄用戶文章來源:http://www.zghlxwxcb.cn/news/detail-452461.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-452461.html
結(jié)論
- 登錄失敗確實(shí)是因?yàn)?
limit.conf
的配置太小導(dǎo)致 -
/etc/security/limits.d/
下的配置文件的優(yōu)先級(jí)高于/etc/security/limits.conf
- docker服務(wù)器下,即便是使用root用戶,部分配置項(xiàng)也無法修改,比如這里的
ulimit -l 66
到了這里,關(guān)于Linux系統(tǒng)root下執(zhí)行su登錄其他用戶失敗的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!