Я надеюсь, что правильно подозреваю, что это проблема Ubuntu, а не postgreSQL 10, который я использую. У меня есть внешний SSD, который шифруется и монтируется к /media/veracrypt1/
.
Когда попытка создать базу данных из .sql выводит на нем использование psql mydb < /media/veracrypt1/mydbdump.sql
Я добираюсь bash: /media/veracrypt1/mydbdump.sql: Permission denied
. Я попытался выполнить все с sudo напрасно, я также удостоверился, владение и полномочия на медиа установлены на текущего пользователя.
Полномочия для медиа похожи на это даже после добавления umask=0022
к опциям монтирования по умолчанию в GUI Veracrypt.
me@mypc:/media$ ls -al
total 140
drwxr-xr-x 4 me me 4096 Jul 12 21:22 .
drwxr-xr-x 24 root root 4096 Jul 3 06:07 ..
drwxr-x---+ 3 me me 4096 Jul 12 22:26 me
drwx------ 1 me me 131072 Jan 1 1970 veracrypt1
Править: Я решил эту проблему теперь путем выполнения psql как мой пользователь вместо пользователя пост-ГРЭС. Однако, возможно, решение Thomas работает на других.
При использовании Veracrypt для монтирования каталога, он не монтирует его как читаемый миром. Это монтирует его только как пользовательское выполнение Veracrypt:
$ ls -al /media/
total 24K
drwxrwxrwx 5 root root 4.0K Jul 12 14:59 ./
drwxr-xr-x 29 root root 4.0K Jul 11 23:08 ../
drwxr-x---+ 2 root root 4.0K Jan 2 2018 root/
drwxrwx---+ 3 teward teward 4.0K Jul 12 14:29 teward/
drwx------ 1 teward teward 4.0K May 18 2017 veracrypt4/
Как Вы видите, veracrypt4 каталог читаем только моим пользователем и не другими пользователями в системе. Это свойственно к тому, как Veracrypt работает, он не позволит системе в большом доступе каталог в его опциях монтирования по умолчанию.
Если Вы хотите изменить это, необходимо изменить опции монтирования по умолчанию для утилиты Veracrypt.
Когда в GUI Veracrypt, перейдите к меню "Settings" в строке меню, и затем "Параметрам монтирования по умолчанию". В поле маркировал "Mount options", Вы захотите поместить umask=0022
, который установит эффективные полномочия по-другому для папки монтирования. Затем хит "хорошо" и затем монтирует Ваш диск/контейнер Veracrypt снова.
С ними монтируют опции на месте, та же точка монтирования получает другую маску полномочий, чем значения по умолчанию - это - и группа читаемый и "другой пользователь", читаемый (обратите внимание, что строка полномочий пошла от drwx------
кому: drwxr-xr-x
):
$ ls -al /media/
total 24K
drwxrwxrwx 5 root root 4.0K Jul 12 15:01 ./
drwxr-xr-x 29 root root 4.0K Jul 11 23:08 ../
drwxr-x---+ 2 root root 4.0K Jan 2 2018 root/
drwxrwx---+ 3 teward teward 4.0K Jul 12 14:29 teward/
drwxr-xr-x 1 teward teward 4.0K May 18 2017 veracrypt4/
Из-за пути это монтирует его как Вашего пользователя и не монтирует значение по умолчанию его так, другие могут считать его, вот почему Вы получаете ошибку, которую Вы получаете. Скорректируйте монтирование umask, затем попробуйте еще раз с postgres
пользователь для чтения файла/диска. Это должно затем работать правильно.
Не забывайте, хотя это это выставит 'зашифрованные' данные всем другим пользователям на диске. Необходимо затем удалить, они монтируют опции, если Вы хотите запретить другим пользователям в системе (пользователи системы или иначе) от доступа к зашифрованным данным.