Centos 7 samba 설치
1. samba에 사용할 계정을 생성한다.
[genius@localhost ~]$ sudo useradd -Mn smbuser ...... |
# useradd -Mn smbuser : smbuser라는 계정을 생성
-Mn : samba 접속시에 사용할 계정이므로 home 디렉토리 생성안함. 그룹도 생성하지 않음
# passwd smbuser : 패스워드 생성
2. smaba 설치 및 계정 등록
[genius@localhost ~]$ sudo yum install samba .......... [genius@localhost ~]$ sudo smbpasswd -a smbuser |
# yum install samba : samba 패키지 설치(중간에 물어보는 거 나오면 "y" 누르삼)
# smbpasswd -a smbuser : samba에 사용될 계정 패스워드 설정(1번에서 만든 계정 패스워드와는 다름)
3. smb.conf 수정
[genius@localhost ~]$ sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_20191128 [genius@localhost ~]$ sudo vi /etc/samba/smb.conf [global] workgroup = SAMBA security = user passdb backend = tdbsam printing = cups printcap name = cups load printers = yes cups options = raw [public] comment = Tao Nas public directory path = /data/public write list = smbuser create mask = 0664 directory mask = 0775 writable = yes printable = no public = no |
# cp /etc/samba/smb.conf /etc/samba/smb.conf_20191128 : 혹시 모르니 smb.conf 화일 백업
# vi /etc/samba/smb.conf : smb.conf 파일 수정
vi로 화일을 열고
[global]
workgroup = SAMBA
security = user
passdb backend = tdbsam
printing = cups
printcap name = cups
load printers = yes
cups options = raw
[public]
comment = Tao Nas public directory
path = /data/public : 여기가 제일 중요 공유할 디렉토리
write list = smbuser : 접속할 계정 1번에서 생성한 계정 등록
create mask = 0664
directory mask = 0775
writable = yes
printable = no
public = no
이렇게 수정. 다른 부분은 딱히 필요하지 않으므로 다 삭제해도 무방하고 남겨도 무방함.
4. firewall 등록
[genius@localhost ~]$ sudo firewall-cmd --list-all [genius@localhost ~]$ sudo firewall-cmd --permanent --add-service=samba --zone=public [genius@localhost ~]$ sudo firewall-cmd --reload |
# firewall-cmd --list-all : 현재 개방된 서비스 확인
# firewall-cmd --permanent --add-service=samba --zone=public : samba 서비스 등록
# firewall-cmd --reload : 방화벽 재로드(이거 안하면 적용 안됨)
5. samba 서비스 실행 및 자동실행 등록
[genius@localhost ~]$ sudo service smb restart Redirecting to /bin/systemctl restart smb.service [genius@localhost ~]$ sudo systemctl enable smb Created symlink from /etc/systemd/system/multi-user.target.wants/smb.service to /usr/lib/systemd/system/smb.service. [genius@localhost ~]$ sudo service smb status Redirecting to /bin/systemctl status smb.service ● smb.service - Samba SMB Daemon Loaded: loaded (/usr/lib/systemd/system/smb.service; enabled; vendor preset: disabled) Active: active (running) since 목 2019-11-28 21:29:41 KST; 1min 1s ago Docs: man:smbd(8) man:samba(7) man:smb.conf(5) Main PID: 2759 (smbd) Status: "smbd: ready to serve connections..." CGroup: /system.slice/smb.service ├─2759 /usr/sbin/smbd --foreground --no-process-group ├─2761 /usr/sbin/smbd --foreground --no-process-group ├─2762 /usr/sbin/smbd --foreground --no-process-group ├─2763 /usr/sbin/smbd --foreground --no-process-group └─2766 /usr/sbin/smbd --foreground --no-process-group 11월 28 21:29:41 localhost.localdomain systemd[1]: Starting Samba SMB Daemon... 11월 28 21:29:41 localhost.localdomain smbd[2759]: [2019/11/28 21:29:41.587739, 0] ../lib/util/become_daemon.c:138(daemon_ready) 11월 28 21:29:41 localhost.localdomain smbd[2759]: daemon_ready: STATUS=daemon 'smbd' finished starting up and ready to serve connections 11월 28 21:29:41 localhost.localdomain systemd[1]: Started Samba SMB Daemon. |
# service smb restart : 삼바 서비스 시작(재시작)
# systemctl enable smb : 삼바 서비스 자동시작 등록
# service smb status : 삼바 서비스 상태 확인
여기까지 완료되면 같은 네트워크의 윈도에서 "\\ip"(ex \\192.168.1.6)을 입력해서...
"public" 디렉토리가 나오는지 확인
나온다면 정상.. 안나오면 어딘가 오류가 있음
나온다면 centos를 재부팅해서 삼바 서비스가 정상적으로 실행되는지 확인
6. selinux 설정
윈도우에 "public"가 나왔는데.. 떠블클릭하니.. 더이상 접속이 안되고 액세는할 수 없다고 나오는 경우...
selinux를 설정해야 함.
selinux문제인지 아닌지를 먼저 확인하려면
[genius@localhost ~]$ sudo setenforce 0 |
# setenforce 0 : selinux를 permissive 모드로 전환
이렇게 했더니 잘 접속이 되면 selinux 문제이다.. 다시 selinux를 enforcing모드를 전환하자.
[genius@localhost ~]$ sudo setenforce 1 |
# setenforce 1 : selinux를 enforcing모드로 전환
이렇게 하고 다시 윈도우에서 접속하면 아까처럼 액세스 불가 메시지가 나온다.
※ https://www.lesstif.com/pages/viewpage.action?pageId=6979732 selinux 관련 참고 블로그
CentOS SELinux 설정 및 해제하기
SELinux 에 대한 체계적인 사용법은 "바쁜 개발자를 위한 웹 서비스 보안" 중 SELinux 항목 을 참고하세요.
www.lesstif.com
selinux를 사용안하려면 위의 블로그를 참고해서 설정하자.. 그럼 끝...
하지만 나는 selinux를 사용하고 싶다...
[genius@localhost ~]$ sudo chcon -t samba_share_t /data/public [sudo] genius의 암호: [genius@localhost ~]$ ls -Z /data/ drwxr-xr-x. root root unconfined_u:object_r:samba_share_t:s0 public [genius@localhost ~]$ sudo /usr/sbin/setsebool -P samba_export_all_rw on |
설명은 생략한다.. 나도 잘 모르니까...
※ https://mikki.tistory.com/entry/Centos-7-Samba-%EC%84%A4%EC%B9%98 이 블로그를 참고했다.
Centos 7 Samba 설치
Centos 7 에서 SAMBA 설치 태스트용 서버는 리눅스 이지만 개인pc는 윈도우라는 환경 때문에 파일 공유하기가 힘들다. 물론 ftp같은 서비스도 있지만 SAMABA를 깔아보기로 했다. samba 설정을 해놓으면 윈도우 pc..
mikki.tistory.com
여기까지 하면 접근은 되는데.. 쓰기가 안된다... ㅠ,.ㅠ
이제 권한을 부여해보샂.
7. samba로 공유할 디렉토리 권한 설정
[genius@localhost ~]$ cd /data [genius@localhost data]$ ls public [genius@localhost data]$ sudo chown -R smbuser.100 ./public/ [sudo] genius의 암호: [genius@localhost data]$ ll 합계 0 drwxr-xr-x. 4 smbuser users 31 11월 27 20:46 public |
# cd /data : /data 디렉토리로 이동
# sudo chown -R smbuser.100 ./public/ : ./public 및 서브디렉토리까지.. 사용자 및 그룹 변경
이제 윈도우에서 다시 접속해서... 디렉토리(폴더)와 파일을 생성해보자..
그리고 권한 맞게 생서되는지 확인하자.
[genius@localhost data]$ cd public/ [genius@localhost public]$ ll -rw-rw-r--. 1 smbuser users 0 11월 28 21:54 새 텍스트 문서.txt drwxrwxr-x. 2 smbuser users 6 11월 28 21:53 새 폴더 |
"새 텍스트 문서.txt"의 퍼미션는 "-rw-rw-r--"
"새 폴더"의 퍼미션은 "drwxrwxr-x"
퍼미션도 맞게 되는 듯 하다..
이제 윈도우에서 네트워크 드라이브로 연결해서 사용하자.
끝.
#centos7, #linux, # samba