今日剛準備下班,研發同事就是WEB服務器訪問不了; 一看QQ聊天記錄有同事在處理,因而下班。php
剛進電梯處理故障同事打電話來講明瞭狀況, 確實沒法處理。抓緊時間回家開始解決。html
登陸服務器進行如下操做無果:node
檢查WEB目錄權限。。。。。。。 正常數據庫
檢查進程。。。。。。。。。。。 正常bash
使用root用戶啓動WEB服務器。。。正常訪問服務器
至此確定是用戶權限的問題, 逐使用sudo和su切換到普通用戶看看權限問題oracle
切換用戶時提示:ui
cannot change directory to /home/www: Permission denied su: /bin/bash: Permission denied
從沒遇到這種狀況, 逐上網搜索:spa
關鍵詞1: linux 只有root用戶可訪問資源 無果.net
關鍵詞2: linux 普通用戶不能訪問系統資源 無果
關鍵詞3: cannot change directory to /home/www: Permission denied 無果
關鍵詞4: su: /bin/bash: Permission denied
找到如下文章:
su: /bin/bash: Permission denied帶來的疑惑
按照文中的方法處理,問題解決。如下是文章的內容:
客戶一個oracle忽然當機了,因爲業務啓動,客戶下意識的重啓了服務器,系統是起來了,準備切換到oracle用戶下啓動數據庫,能夠怎麼都沒法su切換,真是火上澆油呀,描述以下: 在root用戶下,su到一個普通用戶oracle,獲得以下錯誤: [root@localhost ~]# su - oracle su: warning: cannot change directory to /home/oracle: Permission denied su: /bin/bash: Permission denied 而oracle用戶也沒法經過直接登陸,出現一樣錯誤。 這是一個很是奇怪的問題,究竟是什麼致使的呢?思路以下: 1,程序執行權限問題 2,程序依賴的共享庫權限問題 3,目錄權限問題 4,根空間問題。 檢查/bin/bash,權限正確,檢查/home/oracle權限正確,檢查/lib/ld-***.so,權限也正確。 繼續調試,檢查/etc/passwd,將oracle的home設置爲/tmp,把/tmp設置爲777,這個權限應該是最寬鬆的。 而su出現一樣的錯誤。 也就是oracle用戶沒法訪問777權限的/tmp。 問題到底出如今哪裏呢? 最後 經過star命令,看到了問題根本, [root@localhost ~]#stat / 輸出以下:由於你ls是看不到的。 File: 「/」 Size: 1024 Blocks: 2 IO Block: 1024 目錄 Device: 803h/2051d Inode: 2 Links: 22 Access: (0666/drw-rw-rw-) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2007-12-01 22:28:48.000000000 +0800 Modify: 2007-12-01 22:28:34.000000000 +0800 Change: 2007-12-01 23:17:35.000000000 +0800 問題出來了,這裏的權限是錯誤的,X權限的丟失形成的。 [root@localhost ~]#chmod 755 / 修改後,問題消失。 產生上述問題的方法: 第一種,chmod 666 /,能夠致使。 或者, 第二種,chmod 700 /lib/ld-xxxx.so,也能夠致使su失敗。 有興趣能夠本身試一下。 / 權限的丟失對於各類運行在本身用戶身份上的daemon也存在一樣的影響。 |
很是感謝,這位仁兄的經驗分享。