環境
- Ubuntu 14.04 LTSデスクトップ
特権
/media/gal_db$ ls -al
drwxrwx--- 6 admin shared_disk 4096 Aug 15 13:31 .
drwxr-xr-x 6 root root 4096 Aug 13 12:54 ..
drwx------ 3 postgres shared_disk 4096 Aug 15 14:28 database
/media/gal_db$ members shared_disk
gal admin postgres
ファイルシステムへのアクセスを制限するには、shared_diskからpostgresを削除します。
sudo deluser postgres shared_disk
ユーザーgalでデータベースにログインしてみてください。
psql -U gal
Password for user gal:
psql: FATAL: could not access directory "pg_tblspc/16399/PG_9.3_201306121/16401": Permission denied
postgresユーザーを共有ディスクに再追加する
sudo adduser postgres shared_disk
galユーザーとしてデータベースに再度ログインしてみてください。
psql -U gal
Password for user gal:
psql (9.3.5)
Type "help" for help.
gal=>
成功。そしてカオス。
質問
- データベースディレクトリにアクセスするには、Postgresがshared_diskのメンバーである必要があるのはなぜですか?
- postgresがデータベースディレクトリの所有者であるだけでは十分ではありませんか?
答え1
「admin」ユーザーと「shared_disk」グループのメンバーだけがこの/media/gal_db
ディレクトリにアクセスできます。したがって、「shared_disk」グループで「postgres」を選択すると、到着database
目次