기계적 인조 인간

우분투 18.04에서 삼바를 설치하고 구성하는 방법

차례:

Anonim

Samba는 SMB / CIFS 네트워크 파일 공유 프로토콜을 무료로 오픈 소스로 다시 구현하여 최종 사용자가 파일, 프린터 및 기타 공유 리소스에 액세스 할 수 있도록합니다.

이 튜토리얼은 Ubuntu 18.04에 Samba를 설치하고 네트워크를 통해 다른 운영 체제에서 파일 공유를 제공하기 위해 독립형 서버로 구성하는 방법을 설명합니다.

다음 Samba 공유 및 사용자를 만듭니다.

사용자:

  • sadmin- 모든 공유에 대한 읽기 및 쓰기 액세스 권한이있는 관리 사용자. josh- 개인 파일 공유가있는 일반 사용자입니다.

주식:

  • 사용자 -이 공유는 모든 사용자가 읽기 / 쓰기 권한으로 액세스 할 수 있습니다. josh- 이 공유는 사용자 josh 및 sadmin 만 읽기 / 쓰기 권한으로 액세스 할 수 있습니다.

파일 공유는 네트워크의 모든 장치에서 액세스 할 수 있습니다. 이 학습서의 뒷부분에서 Linux, Windows 및 macOS 클라이언트에서 Samba 서버에 연결하는 방법에 대한 자세한 지시 사항도 제공합니다.

전제 조건

계속하기 전에 sudo 권한을 가진 사용자로 Ubuntu 18.04 시스템에 로그인했는지 확인하십시오.

우분투에 삼바 설치

삼바는 공식 우분투 리포지토리에서 구할 수 있습니다. Ubuntu 시스템에 설치하려면 다음 단계를 따르십시오.

  1. apt 패키지 색인을 업데이트하여 시작하십시오.

    sudo apt update

    다음 명령으로 Samba 패키지를 설치하십시오.

    sudo apt install samba

    설치가 완료되면 Samba 서비스가 자동으로 시작됩니다. Samba 서버가 실행 중인지 확인하려면 다음을 입력하십시오.

    sudo systemctl status smbd

    Samba 서비스가 활성화되어 실행 중임을 나타내는 출력은 다음과 같습니다.

    ● smbd.service - Samba SMB Daemon Loaded: loaded (/lib/systemd/system/smbd.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2019-11-27 09:25:38 UTC; 2min 12s ago Docs: man:smbd(8) man:samba(7) man:smb.conf(5) Main PID: 15142 (smbd) Status: "smbd: ready to serve connections…" Tasks: 4 (limit: 1152) CGroup: /system.slice/smbd.service…

이제 Samba가 설치되었고 구성 할 준비가되었습니다.

방화벽 구성

UFW 를 사용하여 방화벽을 관리한다고 가정하면 'Samba'프로파일을 활성화하여 포트를 열 수 있습니다.

sudo ufw allow 'Samba'

글로벌 Samba 옵션 구성

Samba 구성 파일을 변경하기 전에 나중에 참조 할 수 있도록 백업을 작성하십시오.

sudo cp /etc/samba/smb.conf{,.backup}

Samba 패키지와 함께 제공되는 기본 구성 파일은 독립형 Samba 서버용으로 구성되어 있습니다. 파일을 열고 server role standalone server 설정되어 있는지 확인하십시오.

sudo nano /etc/samba/smb.conf /etc/samba/smb.conf

… # Most people will want "standalone sever" or "member server". # Running as "active directory domain controller" will require first # running "samba-tool domain provision" to wipe databases and create a # new domain. server role = standalone server…

기본적으로 Samba는 모든 인터페이스를 수신합니다. 내부 네트워크에서만 Samba 서버에 대한 액세스를 제한하려면 다음 두 줄의 주석을 해제하고 바인딩 할 인터페이스를 지정하십시오.

/etc/samba/smb.conf

… # The specific set of interfaces / networks to bind to # This can be either the interface name or an IP address/netmask; # interface names are normally preferred interfaces = 127.0.0.0/8 eth0 # Only bind to the named interfaces and/or networks; you must use the # 'interfaces' option above to use this. # It is recommended that you enable this feature if your Samba machine is # not protected by a firewall or is a firewall itself. However, this # option cannot handle dynamic or non-broadcast interfaces correctly. bind interfaces only = yes…

완료되면 testparm 유틸리티를 실행하여 Samba 구성 파일에 오류가 있는지 확인하십시오. 구문 오류가 없으면 Loaded services file OK.

마지막으로 다음을 사용하여 Samba 서비스를 다시 시작하십시오.

sudo systemctl restart smbd sudo systemctl restart nmbd

Samba 사용자 및 디렉토리 구조 작성

표준 홈 디렉토리 ( /home/user )를 사용하는 대신 유지 보수 및 유연성을 향상시키기 위해 모든 Samba 디렉토리 및 데이터는 /samba 디렉토리에 있습니다.

/samba 디렉토리 유형을 작성하려면 다음을 수행하십시오.

sudo mkdir /samba

그룹 소유권을 sambashare 설정하십시오. 이 그룹은 Samba 설치 중에 만들어지며 나중에 모든 Samba 사용자를이 그룹에 추가합니다.

sudo chgrp sambashare /samba

Samba는 Linux 사용자 및 그룹 권한 시스템을 사용하지만 표준 Linux 인증과 별개의 자체 인증 메커니즘을 가지고 있습니다. 표준 Linux useradd 도구를 사용하여 사용자를 작성한 다음 smbpasswd 유틸리티를 사용하여 사용자 비밀번호를 설정합니다.

소개에서 언급했듯이 개인 파일 공유에 액세스 할 수있는 일반 사용자와 Samba 서버의 모든 공유에 대한 읽기 및 쓰기 액세스 권한이있는 하나의 관리 계정을 만듭니다.

Samba 사용자 생성

josh 라는 새 사용자를 만들려면 다음 명령을 사용하십시오.

sudo useradd -M -d /samba/josh -s /usr/sbin/nologin -G sambashare josh

useradd 옵션의 의미는 다음과 같습니다.

  • -M-사용자의 홈 디렉토리를 작성하지 마십시오. 이 디렉토리를 수동으로 만듭니다. -d /samba/josh 사용자의 홈 디렉토리를 /samba/josh 합니다. -s /usr/sbin/nologin 이 사용자에 대한 쉘 액세스를 비활성화합니다. -G sambashare - sambashare 그룹에 사용자를 추가하십시오.

사용자의 홈 디렉토리를 작성하고 디렉토리 소유권을 사용자 josh 및 그룹 sambashare .

sudo mkdir /samba/josh sudo chown josh:sambashare /samba/josh

다음 명령은 setgid 비트를 /samba/josh 디렉토리에 추가 /samba/josh 디렉토리에서 새로 작성된 파일은 상위 디렉토리 그룹을 상속합니다. 이런 식으로, 어떤 사용자가 새 파일을 작성하든 파일은 sambashare 그룹 소유자를 sambashare . 예를 들어, 디렉토리 권한을 2770 설정하지 않고 sadmin 사용자가 새 파일을 작성하면 사용자 josh 가이 파일을 읽거나 쓸 수 없습니다.

sudo chmod 2770 /samba/josh

사용자 비밀번호를 설정하여 josh 사용자 계정을 Samba 데이터베이스에 추가하십시오.

sudo smbpasswd -a josh

사용자 비밀번호를 입력하고 확인하라는 메시지가 표시됩니다.

New SMB password: Retype new SMB password: Added user josh.

암호가 Samba 계정 실행을 활성화하도록 설정되면:

sudo smbpasswd -e josh

Enabled user josh.

다른 사용자를 작성하려면 사용자 josh 작성시와 동일한 프로세스를 반복하십시오.

다음으로, 사용자 및 그룹 sadmin 작성하십시오. 이 그룹의 모든 구성원에게는 관리 권한이 있습니다. 나중에 다른 사용자에게 관리 권한을 부여하려면 해당 사용자를 sadmin 그룹에 추가하면됩니다.

다음을 입력하여 관리 사용자를 작성하십시오.

sudo useradd -M -d /samba/users -s /usr/sbin/nologin -G sambashare sadmin

위의 명령은 또한 sadmin 그룹을 만들고 sadmin sambashare 그룹 모두에 사용자를 추가합니다.

비밀번호를 설정하고 사용자를 활성화하십시오.

sudo smbpasswd -a sadmin sudo smbpasswd -e sadmin

다음으로, Users 공유 디렉토리를 작성하십시오.

sudo mkdir /samba/users

디렉토리 소유권을 사용자 sadmin 및 그룹 sambashare 로 설정하십시오.

sudo chown sadmin:sambashare /samba/users

이 디렉토리는 인증 된 모든 사용자가 액세스 할 수 있습니다. 다음 chmod 명령은 /samba/users 디렉토리의 sambashare 그룹 구성원에 대한 쓰기 / 읽기 액세스 권한을 제공합니다.

sudo chmod 2770 /samba/users

Samba 공유 구성

Samba 구성 파일을 열고 다음 섹션을 추가하십시오.

sudo nano /etc/samba/smb.conf /etc/samba/smb.conf

path = /samba/users browseable = yes read only = no force create mode = 0660 force directory mode = 2770 valid users = @sambashare @sadmin path = /samba/josh browseable = no read only = no force create mode = 0660 force directory mode = 2770 valid users = josh @sadmin

옵션의 의미는 다음과 같습니다.

  • -로그인 할 때 사용할 공유 이름. path 공유 경로. browseable -공유가 사용 가능한 공유 목록에 나열되어야하는지 여부입니다. 다른 사용자를 설정하지 않으면 공유를 볼 수 없습니다. read only - valid users 목록에 지정된 valid users 가이 공유에 쓸 수 있는지 여부 force create mode -이 공유에서 새로 작성된 파일에 대한 권한을 설정합니다. force directory mode -이 공유에서 새로 작성된 디렉토리에 대한 권한을 설정합니다. valid users -공유에 액세스 할 수있는 사용자 및 그룹 목록입니다. 그룹 앞에는 @ 기호가 붙습니다.

사용 가능한 옵션에 대한 자세한 내용은 Samba 구성 파일 설명서 페이지를 참조하십시오.

완료되면 다음을 사용하여 Samba 서비스를 다시 시작하십시오.

sudo systemctl restart smbd sudo systemctl restart nmbd

다음 섹션에서는 Linux, macOS 및 Windows 클라이언트에서 Samba 공유에 연결하는 방법을 보여줍니다.

Linux에서 Samba 공유에 연결

Linux 사용자는 파일 관리자를 사용하여 명령 행에서 samba 공유에 액세스하거나 Samba 공유를 마운트 할 수 있습니다.

smbclient 클라이언트 사용

smbclient 는 명령 줄에서 Samba에 액세스 할 수있는 도구입니다. smbclient 패키지는 대부분의 Linux 배포판에 사전 설치되어 있지 않으므로 배포 패키지 관리자와 함께 설치해야합니다.

Ubuntu 및 Debian에 smbclient 를 설치하려면 다음을 실행하십시오.

sudo apt install smbclient

CentOS 및 Fedora에 smbclient 를 설치하려면 다음을 실행하십시오.

sudo yum install samba-client

Samba 공유에 액세스하는 구문은 다음과 같습니다.

mbclient //samba_hostname_or_server_ip/share_name -U username

예를 들어 IP 주소가 192.168.121.118 Samba 서버에서 josh 라는 공유에 사용자 josh 하려면 다음을 실행하십시오.

smbclient //192.168.121.118/josh -U josh

사용자 비밀번호를 입력하라는 메시지가 표시됩니다.

Enter WORKGROUP\josh's password:

비밀번호를 입력하면 Samba 명령 행 인터페이스에 로그인됩니다.

Try "help" to get a list of possible commands. smb: \>

삼바 공유하기

Linux에서 Samba 공유를 마운트하려면 먼저 cifs-utils 패키지를 설치해야합니다.

우분투와 데비안에서 다음을 실행하십시오.

sudo apt install cifs-utils

CentOS 및 Fedora에서 다음을 실행하십시오.

sudo yum install cifs-utils

다음으로 마운트 지점을 만듭니다.

sudo mkdir /mnt/smbmount

다음 명령을 사용하여 공유를 마운트하십시오.

sudo mount -t cifs -o username=username //samba_hostname_or_server_ip/sharename /mnt/smbmount

예를 들어 IP 사용자 이름이 192.168.121.118 Samba 서버에 josh 라는 공유를 /mnt/smbmount 마운트 지점에 사용자 josh 로 마운트하려면 다음을 실행하십시오.

sudo mount -t cifs -o username=josh //192.168.121.118/josh /mnt/smbmount

사용자 비밀번호를 입력하라는 메시지가 표시됩니다.

Password for josh@//192.168.121.118/josh: ********

GUI 사용

Gnome의 기본 파일 관리자 인 Files에는 Samba 공유에 액세스 할 수있는 내장 옵션이 있습니다.

  1. 파일을 열고 사이드 바에서 "기타 위치"를 클릭하십시오. "서버에 연결"에서 smb://samba_hostname_or_server_ip/sharename 형식으로 Samba 공유 주소를 입력하십시오. "연결"을 클릭하면 다음 화면이 나타납니다.

결론

이 튜토리얼에서는 Ubuntu 18.04에 Samba 서버를 설치하고 다른 유형의 공유 및 사용자를 작성하는 방법을 배웠습니다. 또한 Linux, macOS 및 Windows 장치에서 Samba 서버에 연결하는 방법도 보여주었습니다.

삼바 우분투