本文談兩個很等閑被忽視,又偶爾會突然蹦出來,給我們建設辦事器造成困擾的權限治理標題問題。
1、太寬的權限
有些辦事對權限的要求會是一個區(qū)間,小了不可,大年夜了也不可。假定這個文件被付與的權限不敷,那么必定不克不及利用;可是,假定這個文件被付與的權限太多了,一樣不克不及正常利用。
舉例:
標題問題現象:test帳號利用key沒法登錄某ssh辦事器,而同機械下的test2帳號卻可以登錄。
查看文件權限:
test@client:~$ls-l~/.ssh/
-rw-------1testtest 16752010-03-2515:15id_rsa
查看了客戶端及辦事器端的.ssh目次下的公鑰與私鑰權限,可以看出,并沒有標題問題。
私鑰必需是600權限,而公鑰起碼是644或更嚴格的權限,這都合適,但仍然沒法登錄。
test@server:~$ls-la~|grep-w.ssh
drwxr-xr-x2testtest4.0K12-2316:59.ssh
查看了辦事器端的.ssh目次權限,是755,也是沒標題問題標,ssh辦事器要求在利用key登錄時.ssh目次的權限必需是其他用戶不成寫。
一開端其實想不明為啥test2帳號利用key可以登錄,test帳號利用key沒法登錄,ssh_config和sshd_config。
在查抄了多遍后確切沒有標題問題,最后在辦事器端對比兩個帳號的不應時,發(fā)現了可疑的處所。
$ls-l/home/
drwxrwxrwx 3testtest4096 2009-12-31 17:31test
drwxr-xr-x 6 test2 test2 4096 2010-03-23 15:59test2
兩個帳號的home目次權限不合,test帳號是777,test2帳號是755,會不會是這里不合導致的?在辦事器端把test目次點竄成755后,解決標題問題。
啟事詮釋:
ssh辦事器的key編制登錄對權限要求嚴格。對客戶端:私鑰必需為600權限或更嚴格權限(400),一旦其他用戶可讀,私鑰就不起感化(如640),表示為系統覺得不存在私鑰。
對辦事器端:要求必需公鑰其他用戶不成寫,一旦其他用戶可寫(如660),就沒法用key登錄,表示為:Permission denied(publickey)。
同時要求.ssh目次其他用戶不成寫,一旦其他用戶可寫(如770),就沒法利用key登錄,表示為:Permission denied(publickey)。
不但.ssh目次,更上層的目次的權限一樣會有影響。
home頂用戶目次的可寫,暗示其他用戶對.ssh子目次也有改寫的權限(刪除或重號令),也就導致ssh鑒定.ssh為其他用戶可寫,拒盡利用key登錄。
2、靜靜啟動的selinux
假定你建設某項辦事,可長短論如何定義建設文件,有些端口始終不克不及打開,或文件沒法拜候到,那么這時候你要謹慎是selinux在拆臺。
舉例:
標題問題現象:建設apache上的目次可以拜候,卻始終提示你沒有權限。
apache上的建設:
Alias/hello.html/web/hello.html
Order deny,allow
Allow from all
如何查都沒有標題問題,文件權限也對,這時候可以考慮查一下selinux的權限。
#ls-Z/web/
-rw-r--r--.root root unconfined_u:object_r:admin_home_t:s0hello.html
本來/web目次不克不及被apache內建的用戶拜候。
啟事詮釋:
默許環(huán)境下,selinux限制了apache可以拜候的目次,默許僅能在/var/www/下面讀寫文件。這也難怪,我們只建設apache和文件權限沒有任何感化了。
要想實現對/web/目次下的文件讀取,必需點竄selinux的建設。
其實不止是文件權限,包含辦事可利用的端口、動靜接口等,selinux都有默許限制。假定你建設辦事碰著莫名其妙的標題問題,看一下selinux吧