授予 postgres 访问根文件的权限

授予 postgres 访问根文件的权限

我在 Digital Ocean 上创建了一个 Ubuntu 14.04.4 服务器。

我有一个名为 root 用户的目录mapnik/data/。里面有一个我想导入的文件postgres。当以root

ls -l /root/mapnik/data/world_merc.shp

产量

-rw-r--r-- 1 postgres root 428328 Apr  7 18:17 /root/mapnik/data/world_merc.shp

尝试导入时postgres,我无法访问该文件。如果以postgres

ls -l /root/mapnik/data/world_merc.shp

产量

ls: cannot access /root/mapnik/data/world_merc.shp: Permission denied

这个文件夹的权限是否存在问题?

我如何配置此文件夹权限以便我可以从根目录导入postgres

答案1

这是因为用户postgres没有必要的权限来读取(列出)目录/root/(用户的主目录root)的内容。

通常,的权限/root/设置为,0700所有者设置为root,因此除了 之外,其他任何人都root无法检查内容,因此无法在目录树中进一步遍历。

/root/mapnik/data/world_merc.shp因此,即使您将文件的所有者设置为用户postgrespostgres也将无法访问该文件,因为由于权限不足,遍历将被阻止/root/


不要将文件放入/root/(并更改的权限/root/),而是选择postgres的家(如果有的话)或您的家或任何看似安全且用户postgres有足够权限执行预期操作的地方。

相关内容