Windows 편집기에서 Samba 파티션에 파일을 저장할 때 이상한 권한 변경

Windows 편집기에서 Samba 파티션에 파일을 저장할 때 이상한 권한 변경

SAMBA가 탑재된 Unix 파티션의 Windows 편집기에서 저장되는 파일에 대한 권한이 변경될 때 특정 동작이 나타나는 이유를 알아내려고 합니다.

상황:

  • Unix에 777 권한을 가진 파일이 있습니다.

    -rwxrwxrwx 1 testuser users 4859 Jan 23 15:09 fbparser.pl*

  • 파일이 있는 디렉터리는 Samba를 통해 Windows 7 PC에서 마운트됩니다.

  • "Notepad++" 또는 "Sublime" 편집기에서 편집하기 위해 파일을 엽니다.

  • 파일이 변경되고 저장되면 Unix 측에서 권한이 다음과 같이 변경됩니다.

    -rw-rwxrwx 1 testuser users 4859 Jan 23 15:09 fbparser.pl*

이제 동일한 문제가 발생하기 때문에 Samba 마운트 때문이 아닐 수도 있다고 의심했습니다.하지 않습니다일반 Windows 메모장에서 파일을 열고 저장할 때 발생하는 현상!

$orig_filename.bak따라서 처음에는 위에서 언급한 프로그래밍 편집기가 단순히 파일을 저장하는 대신 원본 파일의 이름을 바꾼 다음 새 콘텐츠를 원래 파일 이름을 사용하여 NEW 파일로 저장하도록 설정될 수 있기 때문이라고 생각했습니다 . 이것은 UltraEdit 편집기를 사용하여 동일한 문제에 대한 내 자신의 이전 경험을 기반으로 합니다.

그러나 이것이 파마 변경의 이유라면 내가 관찰한 두 가지 다른 증상을 설명하기가 어렵습니다.

  • 우선, 애초에 백업 파일이 생성되지 않습니다.

  • 둘째, touchUnix Shell의 동일한 디렉터리에 새 파일을 생성할 때( 를 사용하여) 새 파일에 대한 권한이 -rw-rwxrwx전혀 없습니다.

  • 셋째, 중요한 경우 파일의 inode #는 편집 후에도 동일하게 유지됩니다.

또 무엇이 문제가 될 수 있으며 이를 조사하기 위해 어떤 조치를 취할 수 있습니까?

UE에게 이름을 바꾸어 파일을 백업하지 말라고 지시했을 때 내 UltraEdit 문제가 사라졌습니다. 그러나 Notepad++에는 그러한 옵션이 없습니다.

답변1

매우 유사한 문제를 해결하려고 시도하면서 이 질문을 발견했습니다. 내 경우의 해결책은 map archive = nosmb.conf의 전역 섹션에 추가하는 것이었습니다.


근본적인 문제는 Samba가 Dos에서 Linux로 권한을 매핑하는 방식입니다.

notepad++가 파일을 저장할 때 dos 파일 "archive" 속성을 설정/재설정하는 것 같습니다. 기본적으로 Samba는 이를 사용하여 파일에 대한 사용자 권한에 대한 실행 속성을 관리합니다.

따라서 Samba 매개변수를 설정하는 경우:

map archive = no

속성은 매핑되지 않으며 사용자 실행 권한은 이전에 설정된 대로 유지됩니다.

답변2

나는 같은 상황에 처해 있었다. 저에게는 smb.conf 파일에서 마스크 생성 매개변수를 변경하는 데 도움이 되었습니다.

create mask = 0600 ->  create mask = 0700

관련 정보