1.11. 사용자가 Samba 서버에서 디렉토리를 공유 가능
Samba 서버에서는 사용자가 루트 권한 없이 디렉터리를 공유할 수 있도록 구성할 수 있습니다.
1.11.1. 사용자 공유 기능 활성화
사용자가 디렉토리를 공유할 수 있으려면 관리자가 Samba에서 사용자 공유를 활성화해야 합니다.
예를 들어 로컬 example
그룹의 멤버만 활성화하여 사용자 공유를 생성하려면 다음을 수행합니다.
절차
로컬
example
그룹이 없는 경우 해당 그룹을 생성합니다.# groupadd example
Samba에서 사용자 공유 정의를 저장하고 권한을 올바르게 설정하도록 디렉터리를 준비합니다. 예를 들어 다음과 같습니다.
디렉터리를 만듭니다.
# mkdir -p /var/lib/samba/usershares/
example
그룹에 대한 쓰기 권한을 설정합니다.# chgrp example /var/lib/samba/usershares/ # chmod 1770 /var/lib/samba/usershares/
- Sticky bit를 설정하면 사용자가 이 디렉터리의 다른 사용자가 저장한 파일의 이름을 변경하거나 삭제할 수 없습니다.
/etc/samba/smb.conf
파일을 편집하고[global]
섹션에 다음을 추가합니다.사용자 공유 정의를 저장하도록 구성한 디렉터리의 경로를 설정합니다. 예를 들어 다음과 같습니다.
usershare path = /var/lib/samba/usershares/
이 서버에서 만들 수 있는 Samba 공유 사용자 공유 수를 설정합니다. 예를 들어 다음과 같습니다.
usershare max shares = 100
usershare max shares
매개변수에 기본값0
을 사용하는 경우 사용자 공유가 비활성화됩니다.선택적으로 절대 디렉터리 경로 목록을 설정합니다. 예를 들어 Samba가
/data
및/srv
디렉토리의 하위 디렉터리만 공유할 수 있도록 하려면 다음을 설정합니다.usershare prefix allow list = /data /srv
설정할 수 있는 추가 사용자 공유 관련 매개변수 목록은
smb.conf(5) 도움말
페이지의USERSHARES
섹션을 참조하십시오./etc/samba/smb.conf
파일을 확인합니다.# testparm
Samba 구성을 다시 로드합니다.
# smbcontrol all reload-config
이제 사용자가 사용자 공유를 생성할 수 있습니다.
1.11.2. 사용자 공유 추가
Samba에서 사용자 공유 기능을 활성화한 후 사용자는 net usershare add
명령을 실행하여 root
권한 없이 Samba 서버의 디렉토리를 공유할 수 있습니다.
net usershare add
명령의 개요입니다.
net usershare add
share_name path [[ comment ] | [ ACLs ]] [ guest_ok=y|n ]
사용자 공유를 생성할 때 ACL을 설정하는 경우 ACL보다 먼저 comment 매개변수를 지정해야 합니다. 빈 주석을 설정하려면 이중 따옴표로 빈 문자열을 사용합니다.
사용자가 사용자 공유에 대해 게스트 액세스를 활성화할 수 있습니다. 관리자가 사용자 공유 영역의 usershare allow guests = yes
를 /etc/exporter/ECDHE.conf
파일의 [global]
섹션에 있는 경우에만 활성화할 수 있습니다.
예 1.5. 사용자 공유 추가
사용자가 Samba 서버에서 /srv/samba/
디렉터리를 공유하려고 합니다. 공유 이름은 example
이고, 주석을 설정하지 않으며, 게스트 사용자가 액세스할 수 있어야 합니다. 또한 공유 권한은 AD\Domain Users
그룹에 대한 전체 액세스 권한과 기타 사용자의 읽기 권한으로 설정해야 합니다. 이 공유를 추가하려면 사용자로 실행합니다.
$ net usershare add example /srv/samba/ "" "AD\Domain Users":F,Everyone:R guest_ok=yes
1.11.3. 사용자 공유의 설정 업데이트
사용자 공유의 설정을 업데이트하려면 net usershare add
명령을 동일한 공유 이름 및 새 설정으로 사용하여 공유를 재정의합니다.
사용자 공유 추가를 참조하십시오.
1.11.4. 기존 사용자 공유에 대한 정보 표시
사용자는 Samba 서버에 net usershare info
명령을 입력하여 사용자 공유 및 해당 설정을 표시할 수 있습니다.
사전 요구 사항
- 사용자 공유는 Samba 서버에 구성됩니다.
절차
사용자가 만든 모든 사용자 공유를 표시하려면 다음을 수행하십시오.
$ net usershare info -l [share_1] path=/srv/samba/ comment= usershare_acl=Everyone:R,host_name\user:F, guest_ok=y ...
명령을 실행하는 사용자가 생성한 공유만 나열하려면
-l
매개 변수를 생략합니다.특정 공유에 대한 정보만 표시하려면 공유 이름 또는 와일드카드 카드를 명령에 전달합니다. 예를 들어 이름이
share_
로 시작하는 공유에 대한 정보를 표시하려면 다음을 수행합니다.$ net usershare info -l share_*
1.11.5. 사용자 공유 나열
Samba 서버에서의 설정 없이 사용 가능한 사용자 공유만 나열하려면 net usershare list
명령을 사용합니다.
사전 요구 사항
- 사용자 공유는 Samba 서버에 구성됩니다.
절차
사용자가 생성한 공유를 나열하려면 다음을 수행하십시오.
$ net usershare list -l share_1 share_2 ...
명령을 실행하는 사용자가 생성한 공유만 나열하려면
-l
매개 변수를 생략합니다.특정 공유만 나열하려면 공유 이름 또는 와일드카드를 명령에 전달합니다. 예를 들어 이름이
share_
:으로 시작되는 공유만 나열하려면 다음을 수행하십시오.$ net usershare list -l share_*
1.11.6. 사용자 공유 삭제
사용자 공유를 삭제하려면 net usershare delete
명령을 공유를 만든 사용자 또는 root
사용자로 사용합니다.
사전 요구 사항
- 사용자 공유는 Samba 서버에 구성됩니다.
절차
$ net usershare delete share_name