개발 창고/Server

[CentOS] 공용폴더를 위한 samba 활용하기

로이제로 2021. 3. 16. 13:36
반응형

 CentOS를 사용하다 보면, FTP 이외에도 공용 폴더를 이용하고 싶은 생각이 들기도 합니다. 또는 우리 팀이나 다른 부서까지 권한이 부여된 폴더를 따로 관리하고 싶을 때가 많습니다.

 

 이 경우 CentOS는 samba를 설치하여 특정폴더를 공유하여 사용할 수 있습니다. (이는 ftp보다 더 간편하게 활용되지만 쉬운만큼 FTP보다 보안에 취약할 수도 있습니다.)

 

 먼저 samba의 설치 및 설정은 root계정에서 이루어져야 합니다. 때문에 모든 명령어 앞에 sudo를 사용하여 관리자권한으로 수행하거나 아래와 같이 계정을 변경한 후 진행합니다. (만약 root로 로그인한 경우 해당하지 않습니다.)

 

$> sudo

password for (내계정) : (비밀번호 입력)

 

 

1. 삼바 설치 확인

 - 기존에 samba가 설치되어있다면 다음과 같이 표시될겁니다.

 

$> yum list installed | grep samb

 

 저 같은 경우엔 최근 2주 전에 설치했기 때문에 아래와 같이 samba가 4.10.16-9.el_9 버전으로 설치되어있음을 확인할 수 있습니다.

 

 이 경우엔 기존의 삼바가 어떻게 세팅되어있는지 확인해야 하지만 이번엔 우선 설치가 되어있지 않다고 고려하고 진행하겠습니다.

 

 

2. 삼바 설치

 

$> yum install -y samba

 

 명령어를 일어주면 "여기(CentOS)에 설치(yum install)해줘, 삼바(samba)를, 단 중간에 설치할지 말지 여부(Y/N)에 대해서는 무조건 Y (-y)로 해줘"라는 명령입니다.

 

 다음과 같이 명령어를 수행하면 현재 yum의 repository에서 확인 가능한 최신의 samba가 설치됩니다.

 

 

3. 삼바 방화벽 오픈

 

$> firewall-cmd --permanent --add-port=139/tcp

$> firewall-cmd --permanent --add-port=445/tcp

$> firewall-cmd --reload

 

 samba에서 IN/OUT에 사용하는 138번(1번 라인)과 445번(2번 라인) 포트를 열어주고, 방화벽에 적용(3번 라인) 해줍니다.

 

 

4. 공유할 폴더 생성

 

$> mkdir /data

$> mkdir /data/SharedFolder

$> mkdir /data/SharedFolder/(폴더명)

 

 공유할 폴더를 생성해줍니다. 저 같은 경우엔 아래의 위치에 공간을 만들었습니다.

  - /data/SharedFolder/(폴더명)

 

 

5. 폴더 권한 여부

 

$> chmod 777 /data/SharedFolder/(폴더명)

 

 해당 폴더는 관리자 권한으로 접근하는 폴더가 아니기 때문에 읽기 쓰기의 권한을 부여해주어야 합니다.

 

 

6. 삼바 설정

 

$> vi /etc/samba/smb.conf

 

[Shared Folder]

        comment = Shared Folder

        path = /data/SharedFolder/(폴더명)

        writable = yes

        write list = user1

        public = yes

        create mask = 0777

        directory mask = 0777

 

 여기서 user1은 해당 폴더에 쓰기 권한을 부여할 계정이다. 만약 내 로그인 계정이 smith라면, user1 대신에 smith를 쓰면 됩니다.

 

 

7. selinux 보안 설정 조정

 

$> setsebool -P samba_enable_home_dirs on

$> chcon -t samba_share_t /data/SharedFolder/(폴더명)

 

 예정에는 그냥 6번까지만 하면 설정이 되었지만, 최근에는 selinux 설정을 해주지 않으면 접근이 안됩니다.

 

 

8. 서버 재시작 시 자동으로 시작되도록 설정

 

$> systemctl enable smb

 

 다음과 같이 설정해두면, 서버가 재시작되어도 따로 삼바를 재구 동하지 않아도 알아서 삼바가 구동됩니다.

 

 

9. 삼바 시작

 

$> systemctl start smb

 

 이제 삼바 설정을 다 마쳤으니 적용한 내용을 갖는 삼바를 실행해줍니다.

 

 

10. 삼바 실행 상태 확인

 

$> systemctl status smb

 

 다음과 같이 Active 상태가 active (running)라면 정상 구동 중이라고 확인할 수 있습니다.

반응형