이러한 권한 문제를 해결하는 방법은 무엇입니까?

이러한 권한 문제를 해결하는 방법은 무엇입니까?

로컬 Mac에 터미널에서 사용할 수 있는 명령줄 유틸리티를 제공하는 서비스가 있습니다(서비스는 FileMaker Server이고 유틸리티는 이지만 fmsadmin이러한 사실은 관련이 없다고 생각합니다). 서버 프로그램을 설치하면 서버 프로그램 fmserver을 작동할 사용자가 생성되고 모든 것이 fmsadmin해당 사용자 아래에 있는 것처럼 보입니다. 서버나 유틸리티에서 생성된 파일은 fmsadmin이 그룹의 소유이지만 해당 그룹 의 구성원이 아닌 것 같아서 wheel왜 해당 그룹이 있는지 모르겠습니다 .fmserver

제가 작성하려는 스크립트는 fmsadmin도구를 사용하여 제공된 파일 중 하나를 임시 폴더에 백업합니다. 그게 내가 작업해야 할 전부입니다. 하지만 현재 로그인한 사용자가 제어하는 ​​다른 위치로 파일을 이동하고 싶습니다.

질문 하나 더 22. fmsadmin파일을 원하는 위치에 쓸 수 없고, 내 계정에는 파일을 이동할 권한이 없기 때문에 파일을 원하는 위치로 이동할 수 없습니다. Finder에서 수동으로 이 작업을 수행할 수 있지만 내 계정 비밀번호를 입력해야만 가능합니다.

현재 내 (Python) 스크립트는 fmsadmin파일을 /tmp/. 따라서 백업 명령을 실행하면 파일이 에 위치하게 됩니다 . 각각에 대한 결과 /tmp/Databases/Subfolder/database.fmp12는 다음과 같습니다 .ls

drwxrwxr-x  3 fmserver  wheel  96     Nov 17 16:01 Databases/
drwxrwxr-x  3 fmserver  wheel  96     Nov 17 16:01 Subfolder/
-rw-rw-r--  1 fmserver  wheel  954368 Nov 17 16:10 database.fmp12

database.fmp12파일을 다음으로 옮기고 싶어요/Users/chuck/project-name/

drwxr-xr-x    8 chuck  staff   256 Nov 17 16:09 project-name/

(Python) 스크립트에서 이를 어떻게 자동화할 수 있나요? 현재 원하는 위치로 파일을 이동하려고 하거나 원하는 위치에 백업을 저장하려고 하면 권한 오류가 발생합니다. 내 목표는 내 시스템에서 이 문제를 해결하는 것뿐만 아니라 다른 사용자의 시스템에서 스크립트가 작동하도록 하는 것입니다.

답변1

당신이 할 수 있는 일이 몇 가지 있습니다. 아마도 가장 쉬운 방법은 그룹 chuck에 추가하는 것입니다. wheel작동하지 않을 이유가 있나요?

또는 소유자를 /tmp/Databases/해당 staff그룹으로 변경한 다음 설정해 볼 수도 있습니다.디렉토리의 setgid 비트, 즉:

sudo chown :staff '/tmp/Databases/'
sudo chmod g+s '/tmp/Databases/'

그런 다음 해당 디렉토리에 생성된 모든 새 파일은 에 속해야 합니다 staff. 두 경우 모두 사용자가 올바른 umask를 가지고 있는지 확인하고 싶을 것입니다. fmserver게시한 내용에 따르면 그럴 것 같습니다. 이 기사를 확인하세요:

launchctl다음을 사용하여 OS X에서 umask를 설정할 수 있는 것 같습니다 .

launchctl config fmserver umask 002

액세스 제어 목록을 사용하는 고급 옵션도 있습니다. 자세한 내용은 다음 AskDifferent 게시물을 참조하세요.

답변2

많은 도움을 받은 후이갈, 해결책을 찾았습니다. 내가 원하는 최종 결과는 fmserver사용자가 작성한 파일을 특정 위치에 배치하는 것입니다. 임시 폴더에 fmserver폴더를 쓰거나 이동할 수 없습니다 . chuck하지만 두 사용자 모두 그룹의 구성원이므로 staff대상 폴더를 편집할 수 있는 권한이 chmod g+w project-folder답입니다.

관련 정보