2015-11-05 35 views
0

我張貼這是對原問題的答案帶來的 postgreSQL permission denied when reading from file with \i command 但現在我意識到我應該張貼作爲一個單獨的問題。PostgreSQL的:許可被拒絕讀取使用文件我

我的操作系統是Fedora的21,我已經安裝的PostgreSQL-9.4

我試圖使用\ i命令和錯誤消息是拒絕權限讀取文件。我在文件上有chmod a+r。 在我的系統上有3個用戶[root,damo,postgres],我建立了一個有2個成員[damo,postgres]的組[項目]。我已在所有相關目錄上使用chgrp(我相信)應授予用戶[postgres]訪問各種文件的權限。 我使用用戶[postgres]訪問pqsql,但我所有的其他工作都在用戶[damo]之下。在pgsql中使用tab從命令導航\我停止後

我不能再進一步。這顯然很重要,但我不知道它是什麼意思。所以我將文件移動到該位置,但仍然無法加載。這是從ls -l輸出和stat

$ ls -l testScript.sql 
    -rw-r--r--. 1 damo project 76 Nov 5 18:18 testScript.sql 

    $ stat testScript.sql 
     File: ‘testScript.sql’ 
     Size: 76   Blocks: 8   IO Block: 4096 regular file 
    Device: fd02h/64770d Inode: 2623547  Links: 1 
    Access: (0644/-rw-r--r--) Uid: (1000/ damo) Gid: (1001/ project) 
    Context: unconfined_u:object_r:user_home_t:s0 
    Access: 2015-11-05 18:18:06.082928881 +0000 
    Modify: 2015-11-05 18:18:06.084928866 +0000 
    Change: 2015-11-05 18:25:57.041183384 +0000 
    Birth: - 

任何人都可以提前一些建議嗎?

+0

\我是一個psql命令,而不是PostgreSQL命令。因此它會被你的psql執行。你能從你運行psql的地方訪問文件嗎?你是否擁有所有目錄的閱讀權限? –

+0

我不確定是否理解psql和PostgreSQL之間的區別? – fatherdamo

+0

我在/ home/damo/anotherLevel /上面的所有目錄上做了'chgrp',但是psql不允許我導航到它們。因此我將該文件移動到了psql讓我看到的地方,'chmod'並且仍然沒有快樂。 – fatherdamo

回答

0

你在Fedora 21上,所以你可能默認啓用SELinux。 postgres用戶可能沒有權限訪問安全上下文user_home_t。安全上下文由您的stat輸出顯示。您可以使用ls -lZ將它包含在ls中。

selinux boolean postgresql_selinux_unconfined_dbadm看起來像你想要的那樣,根據getsebool -a

檢查

getsebool postgresql_selinux_unconfined_dbadm 

,如果它是off,嘗試:

setsebool postgresql_selinux_unconfined_dbadm on 

此外,爲了確定SELinux的是什麼拒絕訪問,請檢查系統日誌或運行sealert工具(SELinux的警報瀏覽器)。

+0

感謝您的回覆。 'setsebool'被設置爲開啓。 我用'chmod -R 755 myHomeDirectory'和[postgres]現在可以訪問這些文件。我真的需要更多地瞭解如何在我的系統上設置文件權限。 – fatherdamo

+0

@fatherdamo哦所以一個目錄上可能缺少'x'位 –

相關問題