서버와 클라이언트 간에 동일한 사용자/그룹 소유권으로 Linux 전용 Samba를 설정하는 방법

서버와 클라이언트 간에 동일한 사용자/그룹 소유권으로 Linux 전용 Samba를 설정하는 방법

시작하기 전에, 내가 요청하는 내용은 mount.cifs에 "vers=1.0" 플래그를 추가하면 완벽하게 작동한다는 점을 기억해야 합니다. 그러나 서버에서 OS를 업그레이드(Samba로 업그레이드)한 후에 Version 4.13.17-Ubuntu는 더 이상 지원되지 않습니다.

또한 여기서는 Windows에 대해서는 다루지 않습니다. 저는 Linux 사용자, 그룹 및 권한 정보만 다루고 있습니다.

smbd를 실행하고 /data 볼륨을 공유하는 Ubuntu 20.04 서버와 mount.cifs를 공유하는 Ubuntu 20.04 클라이언트 설치가 있습니다. 클라이언트에서 ls -l루트/루트가 소유한 모든 것을 표시합니다.

# mount.cifs //server/data /data -o username=username,password=password
# ls -l /data
total 0
drwxr-xr-x 2 root root 0 Mar 29 14:07 directory-a
drwxr-xr-x 2 root root 0 Feb 13 16:43 directory-b
drwxr-xr-x 2 root root 0 May 17  2012 etc
drwxr-xr-x 2 root root 0 Apr 21  2014 lost+found
drwxr-xr-x 2 root root 0 Feb 13 16:43 shared

내가 원하는 건클라이언트가 서버에서와 동일한 사용자, 그룹 및 권한을 볼 수 있도록 합니다. 예를 들면 다음과 같습니다.

server# ls -l /data
total 0
drwxr-xr-x 2 fred fred      4096 Mar 29 14:07 directory-a
drwxr-xr-x 2 barney barney  4096 Feb 13 16:43 directory-b
drwxr-xr-x 2 wilma wilma    4096 May 17  2012 etc
drwx------ 2 root root     16384 Apr 21  2014 lost+found
drwxrwxr-x 2 fred users     4096 Feb 13 16:43 shared

모든 사용자 및 그룹 계정은 두 시스템 모두에 존재하며 동일한 UID 및 GUI를 갖습니다(위에서 말했듯이 이전에는 모두 잘 작동했습니다). 서버 업그레이드 전에 클라이언트에서 사용된 이전 fstab 항목은 다음과 같습니다.

//server/data  /data  cifs _netdev,username=username,password=password,noexec,noacl,vers=1.0 0 0

이제 오류가 발생합니다.

# mount /data
mount error(95): Operation not supported
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs) and kernel log messages (dmesg)

"vers=1.0" 플래그를 제거하면 오류가 해결되었지만 결과는 위에 표시된 것과 같습니다(모든 사용자/그룹/권한 정보 손실).

서버의 smb.conf에는 다음이 포함됩니다.

[global]
    workgroup = WORKGROUP
    server string = Server
    log file = /var/log/samba/log.%m
    max log size = 1000
    logging = file
    panic action = /usr/share/samba/panic-action %d

    server role = standalone server
    passdb backend = smbpasswd
    obey pam restrictions = no
    unix password sync = no
    pam password change = no
    map to guest = Never

    # defaults for shares
    guest ok = no
    create mask = 0775
    directory mask = 0775
    case sensitive = yes
    map archive = no

[data]
    comment = Data
    path = /data
    writeable = no
    browseable = yes
    write list = fred

질문

최신 버전의 Samba에서 이전 vers=1.0 동작을 유지하는 방법이 있습니까? 감사해요!

답변1

자, 드디어 찾았습니다. vers=1.0 옵션을 다시 사용할 수 있도록 하려면 이것을 smb.conf에 추가하십시오:

server min protocol = NT1

모호한 버그 보고서에서 발견했습니다. https://bugs.launchpad.net/ubuntu/+source/samba/+bug/1883234

Unix 확장은 더 이상 사용되지 않으며 기본적으로 더 이상 사용되지 않는 SMB1 프로토콜에서만 작동합니다. SMB3에서 지원하기 위해 개발 중입니다.

서버의 smb.conf에서 [global]에 이를 추가하여 SMB1을 다시 활성화할 수 있습니다.

서버 최소 프로토콜 = NT1

위의 설정을 다시 시도하고 다시 보고해 주실 수 있나요?

디렉토리를 나열할 때 새로운 부작용도 있습니다. 이전 버전에서는 사용할 수 없었던 추가 +(더하기 기호)가 권한 필드에 나타납니다. 다음과 같습니다.

# ls -l /data
total 0
drwxr-xr-x+  2 fred   fred      4096 Mar 29 14:07 directory-a
drwxr-xr-x+  2 barney barney    4096 Feb 13 16:43 directory-b
drwxr-xr-x+  2 wilma  wilma     4096 May 17  2012 etc
drwx------   2 root   root     16384 Apr 21  2014 lost+found
drwxrwxr-x+  2 fred   users     4096 Feb 13 16:43 shared

이에 대한 문서를 찾을 수 없지만 쓰기 권한이 있는 파일 및 디렉터리에 해당하는 것 같습니다.

관련 정보