root
이름이 지정된 그룹이 소유 한 Samba 공유를 마운트하려고 합니다 . 해당 그룹의 사용자는 해당 그룹 smbshare
에 액세스하여 파일을 읽고 쓸 수 있습니다.
나는 이것을 내 안에 넣어 보았습니다 /etc/fstab
.
//fs/myshare /media/share cifs credentials=/root/.cifs,rw,user,iocharset=utf8,sec=ntlmssp,gid=smbshare,dir_mode=0770,file_mode=0660,vers=3.0 0 0
내 사용자(그룹에 속한 smbshare
)가 다음을 얻는 것을 제외하면 예상대로 설치됩니다.Permission denied
user1@myhost:/media$ id user1
uid=1001(user1) gid=1001(user1) groups=1001(user1),27(sudo),1002(smbshare)
user1@myhost:/media$ ll
total 8
drwxr-xr-x 3 root root 4096 Jan 25 15:23 ./
drwxr-xr-x 19 root root 4096 Jan 18 10:11 ../
drwxrwxr-x 2 root smbshare 0 Jan 25 16:39 share/
user1@myhost:/media$ ls share/
ls: cannot open directory 'share/': Permission denied
더 허용적인 것으로 변경하면 dir_mode=0770,file_mode=0660
사용자는 폴더에 액세스할 수 있습니다... 그룹에 속하지 않더라도smbshare
/etc/samba/smb.conf
그만한 가치가 있는 부분은 다음과 같습니다. 서버의 일부fs
[myshare]
comment = my share
path = /share/myshare
read only = no
browsable = yes
create mask = 0664
directory mask = 0775
편집하다:
smbshare
새 그룹을 설치하지 않으면 gid=user1
작동합니다
/etc/fstab
:
//fs/myshare /media/share cifs credentials=/root/.cifs,rw,user,iocharset=utf8,sec=ntlmssp,gid=user1,dir_mode=0770,file_mode=0660,vers=3.0 0 0
답변1
이를 달성하는 올바른 방법은 Kerberos 기반 인증을 사용하고 multiuser
옵션과 함께 플래그를 전달하는 것입니다 mount
. 그러면 서버는 클라이언트 사용자를 확인하고 개인으로 인증합니다. (이것은 와 함께 사용할 수 없습니다 . 실제로 또는 을 sec=ntlmssp
사용할 수 있어야 합니다 .)sec=krb5
sec=krb5i
하지만 이 구성을 사용하면 문제를 어느 정도 해결할 수 있습니다. 특히 대략적인 액세스 검토만 수행했기 때문에 광범위하게 테스트하지 않았습니다.
smb.conf
[global] unix extensions = no [multiuser_test] comment = Temporary multiuser access path = /samba/tmp guest ok = no read only = no
고객. 사용자가
smbshare
그룹에 있는지 확인하세요.mkdir -p /mnt/net mount -t cifs -o credentials=/root/.smb_credentials,rw,gid=smbshare,dir_mode=0775,file_mode=0664 //server/multiuser_test/try /mnt/net
이 경우(해결 방법임을 기억하세요) 클라이언트 사용자는 서버에서 설치를 인증하는 단일 사용자로만 간주됩니다. 로컬 클라이언트 권한은 공유에 대한 액세스를 제어합니다.