환경
- 우분투 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