- This topic has 0개 답변, 1명 참여, and was last updated 3 years, 8 months 전에 by 태랑. This post has been viewed 2384 times
-
-
안녕하세요 운영자 태랑 입니다.
리눅스 간 또는 리눅스 와 이기종간의 파일 공유 서비스인 samba 서버 구성을 확인 해보도록 하겠습니다.
• 테스트 환경
OS : Fedora 34
공유 형태: 동일한 디렉토리를 다수의 유저가 사용
1. 공유 디렉토리 생성
먼저 공유 파일이 저장될 디렉토리를 생성 합니다.
~]$ sudo mkdir -p /home/share
* 디렉토리는 예시이며 사용하고자 하는 디렉토리명, 위치를 사용하면 됩니다.
2. 그룹 및 유저 생성
그룹 및 유저를 생성 합니다.
유저 생성시 포스팅에서는 로그인을 할 필요성이 없고 그렇기 때문에 home 디렉토리도 생성하지 않게 유저를 생성하였습니다.
# 그룹 생성 ~]$ sudo groupadd samba # test1 user 생성 ~]$ sudo useradd -g samba -M -s /sbin/nologin test1 # 확인 ~]$ sudo getent group samba
테스트를 위해서 test2, test3 유저도 동일하게 생성하였습니다
3. Set Permissions
생성한 디렉토리에 대한 소유권 및 퍼미션을 조정 합니다.
~]$ sudo chown -R root:samba /home/share ~]$ sudo chmod 770 /home/share ~]$ sudo ls -ld /home/share drwxrwx---. 1 root samba /home/share
[참고] SELinux 활성화 환경에서 필요 작업
# Add new security filesystem security context: ~]$ sudo semanage fcontext --add --type public_content_rw_t "/home/share(/.*)?" ~]$ sudo semanage fcontext --add --type samba_share_t /home/share # Verifiy new security filesystem security context: ~]$ sudo semanage fcontext --locallist --list ~]$ sudo setsebool -P samba_domain_controller on ~]$ sudo setsebool -P samba_enable_home_dirs on ~]$ sudo chcon -t samba_share_t /home/share ~]$ sudo restorecon -R /home/share ~]$ sudo setsebool -P samba_export_all_ro on ~]$ sudo setsebool -P samba_export_all_rw on
4. samba 설치 및 설정
4-1 samba 설치
~]$ sudo dnf -y install samba
[참조] 호스트네임을 변경시 - 필수 아님
# 현재 호스트 네임 hostnamectl status # 만약 호스트 네임 변경을 하고자 한다면 아래와 같이 변경 ~]$ hostnamectl set-hostname "simple-samba-server"
4-2 smb.conf 설정
먼저 파일을 백업 하고 빈 파일에 설정을 하도록 하겠습니다.
-- 먼저 파일 백업 ~]$ sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.ori -- 파일 초기화 ~]$ sudo /bin/cp /dev/null /etc/samba/smb.conf -- 설정파일 수정 ~]$ sudo vi /etc/samba/smb.conf
• smb.conf 파일 내역
[global] unix charset = UTF-8 workgroup = WORKGROUP server string = Samba Server Version %v security = user passdb backend = tdbsam [Share] comment = Share Folder # specify shared directory path = /home/share # allow writing writable = yes read only = no public = yes # disallow guest user (nobody) guest ok = no # looks all as guest user guest only = no valid users = @samba force group = +samba write list = test1,test3 read list = test2 create mask = 0660 directory mask = 0770
5. 추가 설정
5-1 smb 유저 생성
smbpasswd 명령어를 이용하여 smb 유저를 추가 합니다.
~]$ sudo smbpasswd -a test1 New SMB password: Retype new SMB password: Added user test1.
테스트를 위해서 test2,test3 유저도 동일하게 생성하였음
5-2 firewall 비활성화
방화벽(firewall) 이 활성화가 되어있다면 아래와 같이 서비스를 추가하여 포트를 오픈 합니다.
~]$ sudo firewall-cmd --add-service=samba --permanent ~]$ sudo firewall-cmd --reload -- firewall 정책확인 ~]$ sudo firewall-cmd --list-services
5-3 samba 서비스 활성화 및 시작
~]$ sudo systemctl enable smb ~]$ sudo systemctl start smb ~]$ sudo systemctl status smb
6. 접속 하기
윈도우에서 접속이 되는지 확인을 진행 합니다.
6-1 네트워크 드라이브 연결 시작
윈도우 탐색기에서 컴퓨터 탭 -> 네트워크 드라이브 연결 을 선택 합니다.
6-2 호스트 찾기
드라이브 연결 설정 화면에서 위에서 설정한 리눅스 서버의 IP 주소를 입력 후 찾아보기 버튼을 선택 합니다.
검색되는 호스트(PC) 를 클릭 합니다.
6-3 자격증명 입력
자격증명 화면에서는 위에서 생성한 smb 유저 계정 정보를 입력 합니다.
6-4 디렉토리(폴더) 선택
samba 에서 설정한 고유 디렉토리(폴더) 를 선택 합니다.
처음화면에서 마침 버튼을 클릭하여 설정을 완료 합니다.
7. 파일 생성 및 읽기
접속이 되었다면 폴더 및 파일을 생성 그리고 파일을 열어서 기록 등이 되는지를 확인 합니다.
smb.conf 에서 read list = test2 로 설정된 test2 유저로 접속을 해보겠습니다.
로그인 후 파일을 열어보면, 접근 및 파일의 내용 확인이 가능 합니다.
그러나 파일이나 디렉토리 생성을 시도 하면 아래와 같이 엑세스 거부가 발생되는 것을 확인 할 수 있습니다.
추가적으로 생성한 test3 의 유저로 다시 들어와서 확인 해보면 test1 처럼 write list 에 설정되어 있기 때문에 파일 생성 및 파일의 수정 등을 할 수가 있습니다.
여기까지 윈도우 와 다중 사용자로 파일을 공유 하는 기본 설정에 대해서 확인해보았습니다.
추가적인 samba 에 대한 내용은 추가적으로 업데이트 하도록 하겠습니다.
감사합니다.
Ref link.
fedoramagazine.org/sharing-samba [Link]
docs.fedoraproject.org/samba [Link]오픈소스를 응원합니다 Blog https://hoing.io
Senior Database Administrator(MySQL, Oracle)사이트 이용 문의 사항은 댓글이나 admin@fedoralinux.or.kr 로 메일주세요
- 답변은 로그인 후 가능합니다.