Product SiteDocumentation Site

11.5. Samba を使った Windows 共有のセットアップ

Samba は Linux 上で SMB プロトコル (「CIFS」としても知られています) を取り扱う一連のツールを指します。Windows はネットワーク共有と共有プリンタを使うために SMB プロトコルを使います。
Samba can also act as a Windows domain controller. This is an outstanding tool for ensuring seamless integration of Linux servers and the office desktop machines still running Windows.

11.5.1. Samba サーバ

samba パッケージには、Samba 4 の主要な 2 種類のサーバ smbdnmbd が含まれます。

11.5.1.1. debconf を使った設定

The package sets up a minimal configuration during the initial installation in /etc/samba/smb.conf by plainly copying /usr/share/samba/smb.conf. So you should really run dpkg-reconfigure samba-common to adapt it:
On first installation the only piece of required information is the name of the workgroup where the Samba server will belong (the answer is FALCOTNET in our case).
In case of a package update (from the old stable Debian version) or if the SMB server has already been configured to use a WINS server (wins server), the package also proposes identifying the WINS server from the information provided by the DHCP daemon. The Falcot Corp administrators rejected this option, since they intend to use the Samba server itself as the WINS server.

11.5.1.2. 手作業による設定

11.5.1.2.1. smb.conf の変更
Falcot の用途に対応させるためには、/etc/samba/smb.conf 設定ファイルに含まれる他のオプションを変更することが必要です。以下の抜粋は [global] セクションに対する変更点を要約したものです。
[...]

[global]

## Browsing/Identification ###

# Change this to the workgroup/NT-domain name your Samba server will part of
   workgroup = FALCOTNET

[...]

# Windows Internet Name Serving Support Section:
# WINS Support - Tells the NMBD component of Samba to enable its WINS Server
   wins support = yes 1

[...]

####### Authentication #######

# Server role. Defines in which mode Samba will operate. Possible
# values are "standalone server", "member server", "classic primary
# domain controller", "classic backup domain controller", "active
# directory domain controller".
#
# Most people will want "standalone server" 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

   obey pam restrictions = yes

[...]

# "security = user" is always a good idea. This will require a Unix account
# in this server for every user accessing the server.
   security = user 2

[...]

1

Indicates that Samba should act as a Netbios name server (WINS) for the local network. This option had been removed from the default configuration in Buster and must be added manually if desired.

2

これは security パラメータのデフォルト値です。しかしながら、security パラメータは Samba 設定の要ですから、明示的に指定することをお勧めします。各ユーザは、共有の種類に関わらず必ず共有にアクセスする前に認証を必要とします。
11.5.1.2.2. ユーザの追加
各 Samba ユーザはサーバにアカウントを持っていなければいけません。このため管理者は最初に Unix アカウントを作成し、そのアカウントを Samba のデータベースに登録する必要があります。Unix アカウントを作成する段階は通常通り行います (たとえば adduser を使います)。
既存のユーザを Samba データベースに追加するには、smbpasswd -a user コマンドを実行します。コマンドは対話的にパスワードを尋ねます。
ユーザを削除するには、smbpasswd -x user コマンドを実行します。Samba アカウントを一時的に利用できなくしたり (smbpasswd -d user を使います)、もう一度利用できるようにしたり (smbpasswd -e user を使います) することも可能です。

11.5.2. Samba クライアント

Samba のクライアント機能を使うことで、Linux マシンは Windows 共有と共有プリンタへアクセスすることが可能になります。必要なプログラムは cifs-utilssmbclient パッケージに含まれます。

11.5.2.1. smbclient プログラム

smbclient プログラムは SMB サーバに問い合わせを行います。特定のユーザ名を使ってサーバに接続するには -U user オプションを使います。smbclient //server/share はコマンドライン FTP クライアントに類似した対話的方法を使って共有にアクセスします。smbclient -L server は対象のサーバで利用できる (見える) 共有を全部リストします。

11.5.2.2. Windows 共有のマウント

mount コマンドを使うことで、Windows 共有を Linux ファイルシステム階層にマウントすることが可能になります (cifs-utils の提供する mount.cifs の助けを借ります)。

例 11.21 Windows 共有をマウントする

mount -t cifs //arrakis/shared /shared \
      -o credentials=/etc/smb-credentials
/etc/smb-credentials ファイル (ユーザはこのファイルを読み込むことはできません) は以下の書式で書かれています。
username = user
password = password
コマンドラインで指定できるオプションは他にも存在します。オプションの完全なリストは mount.cifs(8) マニュアルページに書かれています。オプションの中でも特に次の 2 種類は興味深いです。uidgid を使うことで、マウントされたことで利用できるようになったファイルの所有者とグループを指定したものに強制することが可能になります。これを指定することで、root 以外のユーザもマウント先にアクセスできるようになります。
/etc/fstab の中に設定を書いて、Windows 共有をマウントすることも可能です。
//server/shared /shared cifs credentials=/etc/smb-credentials
Unmounting an SMB/CIFS share is done with the standard umount command.

11.5.2.3. 共有プリンタを用いた印刷

CUPS は Linux ワークステーションから Windows マシンによって共有されているプリンタに印刷を行う洗練された解決策です。smbclient がインストールされている場合、CUPS を使うことで、Windows 共有プリンタを自動的にインストールすることが可能です。
以下に必要な各段階を示します。
  • CUPS 設定インターフェース http://localhost:631/admin にアクセスします。
  • 「Add Printer」をクリックします。
  • プリンタデバイスを選択し、「Windows Printer via SAMBA」を選んでください。
  • ネットワークプリンタの接続 URI を入力します。URI は以下の書式を使うべきです。
    smb://user:password@server/printer
  • プリンタを一意に識別する名前を入力してください。その後、プリンタの説明と場所を入力してください。これらは、プリンタの利用者が印刷に使うプリンタを識別できるように、利用者に表示される文字列です。
  • プリンタの製造者/モデルを指示するか、使用するプリンタの説明ファイル (PPD) を直接提供します。
これで、プリンタが利用できるようになりました!