로컬 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
답입니다.