Linux Debian을 사용하여 직접 만든 NAS가 있고 Samba를 통해 이 경로를 공유했습니다.
drwxrwxrwx 5 nobody nogroup 4096 Jan 22 12:57 shared
내 목표는 다음과 같은 레이아웃을 갖는 것입니다.
└── shared
├── private
└── public
└── upload
└── ...other stuff...
나는 다음과 같은 조건을 원합니다:
- "공유"와 모든 하위 디렉터리가 익명 액세스와 제한 없이 로컬 LAN의 공유 Samba 리소스가 되기를 원합니다(어떠한 장치도 Samba를 사용하여 로컬 LAN 외부에서 액세스할 수 없습니다).
- 나는 "공개"가 나에게 속한 모든 사용자를 위한 SFTP chroot 감옥이 되기를 원합니다.sftpuser' 그룹은 모두 /home 디렉토리를 갖고 있지 않지만 /public으로 시작합니다. 이 디렉토리와 그 하위 디렉토리는 sftp를 통해 사용자만 읽을 수 있도록 하고 싶지만 앞서 설명한 대로 Samba 무료 액세스를 유지합니다.
- sftp 사용자가 콘텐츠를 작성 및 업로드할 수 있고 때때로 자신이 소유한 파일을 삭제할 수 있는(업로드했기 때문에) "공개"에서 "업로드"가 유일한 예외가 되기를 바랍니다. 또한 Samba를 통해 이 "업로드" 디렉토리에 무료로 액세스하고 싶습니다.
현재 다음 디렉토리를 만들었습니다.
drwxr-xr-x 2 nobody nogroup 4096 Jan 14 12:35 private
drwxr-xr-x 3 nobody nogroup 4096 Jan 16 16:44 public
보시다시피 저는 "nobody" 사용자와 "nogroup" 그룹에 대한 모든 "공유" 하위 디렉터리 속성을 만들었습니다. 왜냐하면 이것이 Samba의 기본값이라는 것을 알고 있기 때문입니다. 그러나 이것이 제 요구 사항은 아닙니다.
내 삼바 구성은 다음과 같습니다
[global]
log file = /var/log/samba/log.%m
logging = file
map to guest = Bad User
max log size = 1000
obey pam restrictions = Yes
pam password change = Yes
panic action = /usr/share/samba/panic-action %d
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
passwd program = /usr/bin/passwd %u
server role = standalone server
unix password sync = Yes
usershare allow guests = Yes
workgroup = ARCADIA
idmap config * : backend = tdb
hosts allow = 192.168.0.
[shared]
create mask = 0777
directory mask = 0777
guest ok = Yes
path = /mnt/nas/shared
read only = No
[printers]
browseable = No
comment = All Printers
create mask = 0700
path = /var/spool/samba
printable = Yes
이제 다음 줄을 사용하여 랩톱에 Samba 리소스를 설치합니다.
//192.168.0.249/shared /mnt/corelli cifs rw,guest,uid=1000,gid=1000,noauto,x-systemd.automount,_netdev,user 0 0
아직 SFTP 서버를 사용을 시작하지 않았지만 "Public"과 "Private"에 쓰기를 허용하지 않기 때문에 Samba 권한에 어려움을 겪고 있습니다. 또한 sftp 사용자가 "공개"에서 액세스를 제한하고 Samba 사용자가 로컬 LAN의 "공유"에서 무제한 액세스를 갖도록 파일/디렉토리에 어떤 권한과 기본 소유자 그룹을 적용해야 하는지 모르겠습니다.