Samba 서버에 Python 스크립트가 있습니다. 처음에는 Windows에서 사용했고 이제는 Linux 시스템에서도 사용하고 싶습니다. 그래서 다음 명령을 사용하여 Linux 시스템(Kubuntu 16.04)에 서버 폴더를 마운트했습니다.
sudo mount -t cifs //[IP address]/Share Share -o username=guest
이제 Linux 시스템의 이 공유 디렉터리에 있는 Python 파일을 실행하고 싶습니다. Python이 이 디렉터리의 파일에 써야 할 때 문제가 발생합니다(저는 .PNG 파일을 만들고 결과를 기록하기 위해 .CSV 파일에 씁니다).
IOError: [Errno 13] Permission denied: 'filename.png'
이는 의미가 있습니다...해당 파일에 대한 권한은 다음과 같습니다.
-rw-rw-r--+ 1 nobody nogroup
제가 작성한 .PNG 파일은 실제로 그 순간 생성된 것이었습니다. 따라서 결과는 위의 권한이 있는 빈 파일입니다.
기존 파일(Windows에서 생성됨)에 대한 권한은 다음과 같습니다.
-rwxrw-rw-+ 1 nobody nogroup
누군가 내가 여기서 나가도록 도와줄 수 있나요?
파일에 쓸 수 있기를 원합니다. Windows 컴퓨터에서는 계속 작동/액세스할 수 있습니다.
문제가 어디에 있는지 잘 모르겠습니다. 이 파일이 방금 생성되었음에도 불구하고 왜 다른 사람의 소유가 아닌지 모르겠습니다. 물론 쓸 수 없는 이유는 그룹 권한이 읽기 전용이고 파일이 nogroup의 일부이기 때문입니다.
나는 읽고 쓰고 원하는 모든 작업을 수행할 수 있는 Windows 컴퓨터(서버가 아님)에서 동일한 파일에 액세스합니다.
그래서 내 질문은 왜 이 파일이 누구에게도 속하지 않고 nogroup에 속해 있는지이며 이 문제를 어떻게 해결할 수 있습니까?
답변1
여기에는 가능한 많은 문제가 있습니다.
- 사용자로 공유를 탑재합니다
guest
. 이 계정에 파일을 생성할 수 있는 권한이 충분하지 않으면 문제가 발생합니다. - 을 사용하지 않으므로
-o noperm
클라이언트는 권한 확인과 서버가 시행하려는 모든 것을 선점하려고 시도합니다. - 빈 PNG 파일이 이미 존재합니까, 아니면 해당 파일이 스크립트에 의해 생성되었다고 확신합니까?
- 서버가 Windows인지 Samba인지에 따라 Windows 권한과 상호 작용하는 서버 측 파일 시스템 권한이 있을 수 있습니다.