postgreSQL:权限被拒绝使用\ i读取文件

时间:2015-11-05 19:42:07

标签: postgresql

我发布了这个作为对原始问题的回答 postgreSQL permission denied when reading from file with \i command 但我现在意识到我应该发布一个单独的问题。

我的操作系统是Fedora 21,我安装了PostgreSQL-9.4

我正在尝试使用\ i命令读取文件,错误消息是权限被拒绝。我在文件上有chmod a+r。 在我的系统上有3个用户[root,damo,postgres],我已经建立了一个团队[项目],有2个成员[damo,postgres]。我在所有相关目录上使用了chgrp,我相信这些目录应该授予用户[postgres]访问各种文件的权限。 我用用户[postgres]访问pqsql但我的所有其他工作都在用户[damo]下。在pgsql中使用选项卡从之后的命令导航

    ../../home/damo

我不能再进一步了。这显然很重要,但我不知道这意味着什么。所以我将文件移动到该位置,但仍然无法加载。这是ls -lstat

的输出
    $ 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: -

有人可以提出一些建议吗?

1 个答案:

答案 0 :(得分:0)

您使用的是Fedora 21,因此您可能默认启用了SELinux。 postgres用户可能无权访问安全上下文user_home_t。安全上下文由stat输出显示。您可以使用ls将其添加到ls -lZ

根据postgresql_selinux_unconfined_dbadm,selinux布尔getsebool -a看起来就像你想要的那样。

检查

getsebool postgresql_selinux_unconfined_dbadm

如果是off,请尝试:

setsebool postgresql_selinux_unconfined_dbadm on

另外,要确定selinux是否拒绝访问,请检查系统日志或运行sealert工具(SELinux警报浏览器)。