Sambaファイル共有サーバーの設定と利用方法

Samba概要と基本構成

Sambaは、LinuxおよびUNIXシステム上でSMB(Server Message Block)プロトコルを実装するためのソフトウェアです。異なるプラットフォーム間でのファイルやプリンターの共有に役立ちます。

SMBプロトコルは、LAN内でファイルやプリンタなどのリソースを共有するために使用されます。

主な機能

  • ファイル・プリンター共有:ファイルやプリンターをネットワーク経由で共有します。
  • 認証と権限管理:ユーザー認証を行い、アクセス権を設定します。
  • 名前解決:NetBIOS名をIPアドレスに変換します。
  • ブラウジングサービス:ローカルネットワーク内の共有リソースの一覧を提供します。

関連デーモン

  • nmbd:NetBIOS名前解決を担当し、UDPポート137, 138を使用します。
  • smbd:共有管理とデータ転送を担当し、TCPポート139, 445を使用します。

インストールと起動

# Sambaパッケージのインストール
[root@server ~]# yum install samba samba-client -y

# サービスの自動起動設定
[root@server ~]# systemctl enable smb nmb

# サービスの開始
[root@server ~]# systemctl start smb nmb

Samba設定ファイルの詳細

主設定ファイル: /etc/samba/smb.conf

テンプレートファイル: /etc/samba/smb.conf.example

[global]
    workgroup = WORKGROUP
    server string = Samba Server %v
    security = user
    passdb backend = tdbsam

[homes]
    comment = Home Directories
    browseable = no
    writable = yes

[printers]
    comment = All Printers
    path = /var/spool/samba
    browseable = no
    printable = yes

[common]
    comment = Shared Directory
    path = /srv/samba/common
    browseable = yes
    valid users = alice,bob
    writable = yes
    create mask = 0644
    directory mask = 0755

ファイル共有例

環境:CentOS 8、SELinux無効、ファイアウォール無効

手順

  1. 共有ディレクトリを作成:
[root@server ~]# mkdir -p /srv/samba/common
  1. 権限設定:
[root@server ~]# chmod 755 /srv/samba/common
  1. 設定ファイル編集:
[common]
    comment = Shared Folder for Collaboration
    path = /srv/samba/common
    browseable = yes
    hosts allow = 192.168.1.0/24
    valid users = alice,bob
    writable = yes
  1. サービス再起動:
[root@server ~]# systemctl restart smb nmb
  1. Sambaユーザー作成:
[root@server ~]# smbpasswd -a alice
[root@server ~]# smbpasswd -a bob

クライアントからのアクセス

Linuxクライアント

# 共有の確認
[root@client ~]# smbclient -L //192.168.1.10 -U alice

# 共有への接続
[root@client ~]# mount -t cifs -o username=alice,password=pass //192.168.1.10/common /mnt/samba

Windowsクライアント

Windowsエクスプローラから\\192.168.1.10\commonを入力してアクセスします。

アカウントマッピングとアクセス制御

アカウントマッピング

/etc/samba/smbusersファイルにアカウントのマッピング情報を記述:

alice = virtual_alice
bob = virtual_bob

設定ファイルに以下を追加:

username map = /etc/samba/smbusers

アクセス制御

ホストベースのアクセス制御を設定するには、以下のように設定します:

hosts allow = 192.168.1. EXCEPT 192.168.1.100
hosts deny = 192.168.1.

排除方法

  1. testparm コマンドを使用して設定ファイルの構文チェックを行う。
  2. pingコマンドでサーバーとの通信確認。
  3. smbclient コマンドを使用してサーバーへの接続テスト。

タグ: samba cifs linux ファイル共有 ネットワーク

6月25日 16:07 投稿