SQLite3은 파일 권한과 소유자를 무작위로 변경합니다.

SQLite3은 파일 권한과 소유자를 무작위로 변경합니다.

저는 PHP 애플리케이션으로 sqlite3을 사용하고 있습니다. 내가 사용하는 함수는 PHP에 내장된 Sqlite3 패키지에서 가져온 것입니다.

테스트를 위해 DB를 다시 시작하는 등 일반적인 CRUD 작업을 수행하지 않습니다. 여기에는 테이블 삭제 및 더미 데이터 재삽입이 포함됩니다.

DB 파일에 대한 파일 권한은 sudo chmod a+rw및 입니다 sudo chown $USER:www-data.

이것은 모두 좋습니다.

하지만 적어도 하루에 한 번은 쓰기 금지 오류가 발생합니다. 데이터베이스를 보면 권한과 소유권이 변경되었습니다.

사용자 및 그룹을 로 변경 $USER:$USER하고 파일 권한을 다음으로 변경합니다.-rw-r--r--

이 동작의 원인은 무엇입니까?

운영 체제: 데비안 12

답변1

sqlite3은 데이터베이스에서 작동할 때 복사본을 만들고 업데이트한 다음 원본 복사본을 삭제하고 이름을 바꿉니다.

이런 일이 발생하면 권한이 기본값으로 재설정됩니다. 다음을 수행하여 기본값을 변경할 수 있습니다.

  • 기본 그룹을 설정하려면 상위 디렉터리의 그룹을 변경하고 그룹을 붙여넣습니다 sudo chmod g+s . ( .없는 경우 상위 디렉터리의 이름으로 바꿉니다). 이렇게 하면 해당 디렉터리에 생성된 모든 파일이 해당 디렉터리의 그룹을 상속하게 됩니다.
  • 기본 그룹 쓰기 권한을 설정하려면 umask를 변경하세요. umask 000 또는 umask 002(현재는 아마도 022)가 필요할 수 있습니다. 이 작업은 PHP 프로세스 시작 시(또는 시작하기 전에) 수행해야 할 수도 있습니다.

관련 정보