Binary

Centos 7 samba 설치

나노지식 2019. 11. 28. 22:03

1. samba에 사용할 계정을 생성한다.

[genius@localhost ~]$ sudo useradd -Mn smbuser 
[genius@localhost ~]$ cat /etc/passwd 
root:x:0:0:root:/root:/bin/bash

......
smbuser:x:1001:100::/home/smbuser:/bin/bash 
[genius@localhost ~]$ sudo passwd smbuser 
smbuser 사용자의 비밀 번호 변경 중 
새  암호: 
잘못된 암호: 암호는 8 개의 문자 보다 짧습니다 
새  암호 재입력: 
passwd: 모든 인증 토큰이 성공적으로 업데이트 되었습니다. 

# useradd -Mn smbuser : smbuser라는 계정을 생성

-Mn : samba 접속시에 사용할 계정이므로 home 디렉토리 생성안함. 그룹도 생성하지 않음

# passwd smbuser : 패스워드 생성

 

2. smaba 설치 및 계정 등록

[genius@localhost ~]$ sudo yum install samba

..........

[genius@localhost ~]$ sudo smbpasswd -a smbuser 
New SMB password: 
Retype new SMB password: 
Added user 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 
public (active) 
  target: default 
  icmp-block-inversion: no 
  interfaces: enp3s0 
  sources: 
  services: dhcpv6-client ssh 
  ports: 
  protocols: 
  masquerade: no 
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules:

[genius@localhost ~]$ sudo firewall-cmd --permanent --add-service=samba --zone=public 
success 

[genius@localhost ~]$ sudo firewall-cmd --reload 
success 
[genius@localhost ~]$ sudo firewall-cmd --list-all 
public (active) 
  target: default 
  icmp-block-inversion: no 
  interfaces: enp3s0 
  sources: 
  services: dhcpv6-client samba ssh 
  ports: 
  protocols: 
  masquerade: no 
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules:

# 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