我在 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
因此,即使您将文件的所有者设置为用户postgres
,postgres
也将无法访问该文件,因为由于权限不足,遍历将被阻止/root/
。
不要将文件放入/root/
(并更改的权限/root/
),而是选择postgres
的家(如果有的话)或您的家或任何看似安全且用户postgres
有足够权限执行预期操作的地方。