2009-06-01 102 views
1

我正在部署nutch。起初,我剛剛離開索引文件/root/nutch1.0。從命令行運行時,這工作正常。但是,當我從網上搜索時,它總是返回0 hitlinux文件系統權限問題

我終於找到原因:這是因爲索引文件位於/root,導致無法打開文件。當我將索引文件移動到另一個目錄時,情況恢復正常。

但我的問題是:

我沒有改變索引文件(只是cp XXX另一個目錄)的權限。訪問權爲什麼改變?

drwxr-x--- 12 root root 4096 Jun 1 14:49 root 
drwxr-xr-x 14 root root 4096 Nov 16 2007 usr 

我把文件放在/usr下,它工作。

回答

2

要讀取文件,您需要對文件所在的目錄具有搜索('x')權限,以及文件本身的讀取權限。將文件從Web服務器沒有搜索權限的目錄移動到其所在的目錄會導致您看到的效果。

+0

drwxr-X --- 這是否意味着: 用戶本身,讀,寫,執行允許 用戶在同一組,讀取,執行允許 爲其他用戶,沒有允許嗎? – omg 2009-06-01 22:01:31

+0

@Shore是的,這就是它的意思。 – 2009-06-01 22:05:55

+0

因此,除了文件本身的讀取權限之外,要讀取一個文件,還應該具有父目錄的「ALL」執行權限? – omg 2009-06-01 22:10:45

0

因爲除非您是root用戶,否則您無法訪問根目錄中的任何內容。

看看/ root上的權限,它應該是700之類的......執行位被設置爲只有root才能「執行」該目錄。目錄上的執行權限允許您查看目錄中的文件。

這與您在以其他人登錄時無法「ls/root」的原因相同。

+0

root權限如下: drwxr-x --- 12 root root 4096 Jun 1 14:49 root – omg 2009-06-01 21:52:28

+0

@Shore:那是來自「ls -ld/root」嗎? – Eddie 2009-06-01 21:59:36

+0

沒錯。 但我不確定這意味着什麼 – omg 2009-06-01 22:02:46

0

大概你在組「根」,因此可以使用該目錄。當使用Web界面時,你很可能在一個擁有自己的用戶的程序中(在Unix/Linux的意義上),它可能不在「root」組中。根據您列出的權限,任何人都可以使用「/ usr」目錄。