postgreSQL:使用\i读取文件的权限被拒绝
我把这篇文章作为对上一篇文章中最初问题的回答 但我现在意识到我应该把它作为一个单独的问题发布 我的操作系统是Fedora21,我已经安装了PostgreSQL-9.4 我正在尝试使用\I命令读取文件,错误消息是权限被拒绝。我在文件上有postgreSQL:使用\i读取文件的权限被拒绝,postgresql,Postgresql,我把这篇文章作为对上一篇文章中最初问题的回答 但我现在意识到我应该把它作为一个单独的问题发布 我的操作系统是Fedora21,我已经安装了PostgreSQL-9.4 我正在尝试使用\I命令读取文件,错误消息是权限被拒绝。我在文件上有chmoda+r。 在我的系统中有3个用户[root、damo、postgres],我建立了一个有2个成员[damo、postgres]的组[project]。我已经在所有相关目录上使用了chgrp,我认为这些目录应该授予用户[postgres]访问各种文件的权限。
chmoda+r
。
在我的系统中有3个用户[root、damo、postgres],我建立了一个有2个成员[damo、postgres]的组[project]。我已经在所有相关目录上使用了chgrp
,我认为这些目录应该授予用户[postgres]访问各种文件的权限。
我使用用户[postgres]访问pqsql,但我的所有其他工作都在用户[damo]下进行。在pgsql中,使用选项卡从命令导航\i在
../../home/damo
我不能再往前走了。这显然很重要,但我不知道这意味着什么。所以我把文件移到了那个位置,它仍然没有加载。这是来自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: -
有人能提出一些建议吗?您使用的是Fedora 21,因此您可能默认启用了SELinux。
postgres
用户可能无权访问安全上下文user\u home\t
。安全上下文由stat
输出显示。您可以使用ls-lZ
将其包含在ls
中
selinux布尔值postgresql\u selinux\u unconfined\u dbadm
看起来就像您想要的那样,根据getsebool-a
检查
如果关闭
,请尝试:
setsebool postgresql_selinux_unconfined_dbadm on
此外,要确定selinux是否是拒绝访问的对象,请检查系统日志或运行
sealert
工具(selinux警报浏览器)。\i是一个psql命令,而不是PostgreSQL命令。因此,它将由您的psql执行。您可以从运行psql的位置访问该文件吗?你对所有目录都有阅读权限吗?我不确定我是否理解psql和PostgreSQL之间的区别?我对/home/damo/anotherLevel/上面的所有目录都有chgrp
,但psql不允许我导航到它们。因此我将文件移动到psql允许我查看的位置,chmod
仍然没有乐趣。我现在尝试了chown postgres testScript.sql
并检查了文件的所有权是否已更改为postgres。psql仍然声明权限被拒绝。psql是命令行客户端,PostgreSQL是数据库服务器。通常,服务器运行在不同的帐户上(在Unix和Linux上是“postgres”)。您是否尝试过从根目录执行“su-postgres”,并查看是否可以作为用户“postgres”访问此文件?或者您可以简单地将文件移动到/tmp,然后看看它是否可以从那里工作?谢谢您的回复<代码>设置密码已设置为打开。我使用了chmod-R 755 myHomeDirectory
,[postgres]现在可以访问这些文件了。我真的需要了解更多关于如何在我的系统上设置文件权限的信息。@fatherdamo哦,那么目录上可能缺少一个“x”位
setsebool postgresql_selinux_unconfined_dbadm on