본문 바로가기
프로그래밍/LINUX

[LINUX 28일차] CentOS SAMBA ( Client, Server )

by B T Y 2017. 4. 18.
반응형

CentOS SAMBA ( Client, Server )에 대해서 정리한다.




※ SAMBA

( Linux와 Windows 간의 사용 가능 )


해당 작업을 진행하기전에 yum update -y를 이용해 yum을 업데이트 시키고 진행한다.



1. Client ( Linux - Client, Windows - Server )


1) 설치

samba-client.x86_64

cifs-utils.x86_64


#>yum install -y samba-client.x86_64

#>yum install -y cifs-utils.x86_64



2) 공유 폴더 확인

( Server IP - 192.168.3.187 )


#>smbclient -L <server_ip>

#>smbclient -L 192.168.3.187



( 서버 아이피를 통해 해당 서버에 공유 되있는 폴더 목록들을 볼 수 있고 한글에 경우는 깨져서 나온다 )



3) 공유 폴더 연결 ( 마운트 )

#>mount -t cifs <server_path> <mount_point>

#>mkdir /samba

#>mount -t cifs \\\\192.168.3.115\\linux

( \는 이스케이프 시퀀스 문자이기 때문에 표현하려는 문자 갯수에 

두배를 적어주고 싱글쿼터를 이용해서도 표현이 가능하다 )


#>umount /samba



( 마운트 이후에 ls -l /samba를 통해 확인 해보면 윈도우에서 만들었던 file.txt가 보이는걸 알 수 있다 )



2. Server ( Linux - Server, Windows - Client )


1) 설치

samba.x86_64

( 최신버전을 받고 싶다면 www.samba.org에서 소스코드로 받으면 된다 )


#>yum install -y samba.x86_64

#>rpm -qa | grep samba



( 해당 시스템에 설치 되어있는 rpm들 중에서 grep을 이용해 samba만 출력했다 )



2) 설정 파일

/etc/samba/smb.conf


#>cp /etc/samba/smb.conf /etc/samba/smb.conf.bak

( 만일을 위해서 백업 파일을 하나 만들어두고 시작했다 )


#>vi /etc/samba/smb.conf

( 백업해둔 파일이 있기 때문에 :%d를 입력해 실습을 위해 전체 내용 삭제 )


- /etc/samba/smb.conf 파일안에 입력 내용


[global]  -  samba 서버 전체에 대한 설정

workgroup = WORKGROUP ( 윈도우 작업 그룹 )

server string = Samba Server Version %v ( 서버에 대한 설명 )

security = user

- user    : 사용자명과 패스워드 확인 후 접속

- share    : 사용자명과 패스워드 없이 접속

- server    : 인증서버로 인증 후 접속

( 이 경우에는 서버가 한대 더 필요 )

log file = /var/log/samba/log.%m

( 해당 클라이언트마다 로그파일을 생성해 로그를 남긴다 )

max log size = 50 ( 단위는 kb )


* %v는 매직쿠키로 버전을 나타낸다.

* 위쪽 3개는 필수로 입력해줘야 정상적인 동작이 된다.

* max log size를 무한대로 주려면 0을 입력한다.


[public]  -  제공하고 싶은 디렉터리 설정

path = /samba

public = yes

read only = yes | no

writable = yes | no


* []안에 입력하는 이름에 따라서 윈도우에서 접속했을때 보이는 파일 이름이 변한다.

* read only와 writable을 둘다 설정 하지 않았을때는 기본 값으로 read only = yes로 동작한다.




( 위 내용을 /etc/samba/smb.conf에 직접 입력한 화면이고 설정 종류는 이외에도 여러가지가 많이 있다 )



3) 서비스 실행

smb ( samba를 관리하는 데몬 )


#>systemctl restart smb


* systemctl  :  시스템, 데몬을 관리하는 커멘드

( 7버전부터 사용 되었다 )


#>systemctl <start | restart | stop | status> <service_name>

#>systemctl <enable | disable> <service_name>



( /etc/samba/smb.conf에서 설정을 해주고 smb를 restart 시켜줘서 변경 내용을 적용 시켜주고 

상태를 확인하면 정상적으로 잘 동작하는걸 볼 수 있다 )



- Samba 사용자 설정

#>useradd samba

#>passwd samba


#>smbpasswd <option> <user_name>

-a        추가

-x        삭제

#>smbpasswd -a samba



( smbpasswd -a 를 이용해 별도의 samba 비밀번호를 설정 해주지 않는다면 

해당 사용자를 이용한 접속이 불가능하다 )



4) Client 접속

\\<server_ip>




( Windows에서 공유 폴더에 접속 할때와 똑같은 방식으로 서버 아이피를 입력후에 접속해주면 된다 )



( 아까전에 /etc/samba/smb.conf에서 [public]이라는 이름을 입력해줘서 해당 폴더도 

public이라는 이름을 가지는걸 확인 할 수 있다 )



( 해당 디렉터리에 대한 권한 설정에서 제3의 사용자는 쓰기 권한이 없기 때문에 

설정파일에서 writable = yes를 해줬음에도 불구하고

새로운 파일을 만들수 없고 만들고 싶다면 해당 디렉터리 권한을 수정 해줘야 된다 )



( 서버에서 file.txt를 하나 생성하면 아까 설정에서 서비스로 제공할 디렉터리를 /samba로 

설정 해뒀기 때문에 클라이언트에서 접속 했을때도 똑같이 보이는걸 볼 수 있다 )



반응형

댓글