連載
» 2009年01月28日 00時00分 公開

実践でも役立つLPICドリル(9):Sambaのユーザー認証とファイルアクセス権の設定 (1/4)

本連載は、Linux 認定試験 LPICに対応しています。一般的なLinuxユーザーレベルのトピックは省略し、システム管理とサーバ管理の内容を取り上げています。また、LPIC対策だけでなく、関連するトピックについて系統的な理解を問う問題も出題しています。連載の特徴は、対象となるプログラムのバージョンを可能な限り明記していること、比較的新しくまとまった解説がまだ少ないトピック、重要だが理解しにくいトピックを優先して取り上げていることです。問題を解き、その解説を読むことにより実践でLinuxを活用できる力を身に付けます。

[大竹龍史,ナレッジデザイン]

今回のディストリビューション:CentOS 5.2

問題を解く鍵 【1】【2】

 このトピックに関連した設定や試験問題を解く際には、以下の項目がポイントになります。

【1】Sambaのユーザー認証とファイルアクセス権の設定

 SambaサーバはWindowsのSMB(Server Message Block)プロトコルにより、ファイル共有、プリンタ共有のサービスを提供するサーバです。プライマリ/バックアップドメインコントローラの機能や、NetBIOS名とIPアドレスの対応情報を提供するWINSサーバの機能もあり、Sambaパッケージにはクライアントソフトウェアも含まれています。

 Sambaサーバを使用することにより、UNIX/LinuxとWindowsが混在するネットワークにおいて、ファイルやプリンタの資源を共有することができます。

 Sambaサーバでは次の2つのサーバプロセスがサービスを提供します。

smbd ファイル共有、プリンタ共有などのSMBサービスを提供。待機ポート番号は139/tcpと445/tcp
nmbd NetBIOSのネームサービスを提供。待機ポート番号は137/udpと138/udp

(注1)CentOS 5.2ではサーバプロセスsmbdとnmbdの 起動/停止/再起動は、/etc/init.d/smbスクリプトに、それぞれstart、stop、restartの引数を付けて実行します


# /etc/init.d/smb start

(例)Sambaサーバの起動

 また、最近のFedoraディストリビューションのように、smbとnmbが別々のスクリプトになっているものもあります。Sambaサーバの設定ファイルはsmb.confです。

(注2)CentOS 5.2のsmb.confのパス名は/etc/samba/smb.confです


 このファイルは複数のセクションから構成されます。セクションは[セクション名]として記述します。[global]、 [homes]、[printers]のセクション名は予約されています。

[global] サーバ全体に関するパラメータを設定するセクションです。 各セクションのデフォルト値を設定することもできます
[homes] ユーザーのホームディレクトリの共有に関するパラメータを設定するセクションです
[printers] プリンタの共有に関するパラメータを設定するセクションです。

 それ以外のセクション名は 自由に付けて、共有サービスの設定ができます。セクション名が共有名となります。セクションごとに必要なパラメータを、「パラメータ名=値 」という書式で設定します。smb.confファイルの書式はtestparmコマンドでチェックできます。

# testparm

Load smb config files from /etc/samba/smb.conf

Processing section "[homes]"

Processing section "[printers]"

...............................

Loaded services file OK.

Server role: ROLE_DOMAIN_PDC

Press enter to see a dump of your service definitions

[global]

workgroup = MYGROUP

server string = Samba Server Version %v

................................

(例)

 また、testparm -vとして-vオプションを指定すると、smb.confに指定していないデフォルト値も表示されます。

 設定パラメータ(オプションとも呼ばれます)は300種類以上あります。この記事ではLPIC 101、201試験の範囲であり、出題される傾向の高いユーザー認証とファイルアクセス権に関するパラメータを中心に解説します。

【2】Sambaユーザーアカウントの管理について把握しておく

(1)ユーザーアカウントのデータベース

 Samba 2.2ではユーザー名、パスワードなどのアカウント情報はsmbpasswdファイルに格納されます。

 Samba 3.0からはのユーザーアカウントは[global]セクションのパラメータpassdb backend = で指定されたデータベースに格納されます。

passdb backend = tdbsam TDB(Trivial DataBase)を使用する
passdb backend = ldapsam LDAPを使用する

 TDBは従来のsmbpasswdファイルよりも多くの属性情報を管理できます。

 このほかに、後方互換性のためにpassdb backend = smbpasswdがあります。この設定にするとsmbpasswdファイルを使用します。

(2)ユーザー認証方式

 ユーザー認証方式は[global]セクションのパラメータsecurity =で指定します。

security = user ユーザー名とパスワードでローカル認証を行う設定
security = share パスワードだけで認証を行う設定
security = domain ドメインコントローラにより認証を行う設定
security = server ほかのSMBサーバにより認証を行う設定
security = ads AD(アクティブディレクトリ)ドメインのドメインコントローラで認証を行う設定

 なお、security = domain、security = server、security = adsのいずれかの設定の場合はpassword server =で認証を行うサーバを指定します。

(3)ユーザーの登録

 Sambaユーザーの登録はSamba2.2ではsmbpasswdコマンドで、Samba3.0からはpdbeditコマンドで行います。

 登録するユーザーはすでにシステムのUNIXアカウントとして存在するユーザーでなければなりません。

# smbpasswd -a user01

(例1)smbpasswdでuser01を登録する

# pdbedit -a user01

(例2)pdbeditでuser01を登録する

(4)パスワードの変更

 ユーザーが自分のパスワードを変更する場合はsmbpasswdコマンドで行います。

$ smbpasswd

Old SMB password:

New SMB password:

Retype new SMB password:

Password changed for user user01

(例)ユーザーuser01が自分のパスワードを変更する

 Windowsからも、ログインした後にCtrl + Alt + Del を押してパスワード変更画面から変更できます。

(5)パスワードの同期

 システムのUNIXアカウントのパスワードと、Sambaのユーザーアカウントのパスワードとは別々に設定、管理されます。

 ただし、unix password sync、passwd program、passwd chatの3つのパラメータを適切に設定することにより、Sambaのパスワードの変更に同期して、UNIXアカウントのパスワードも変更されるように設定できます。

 unix password sync = yesとして、パスワードの同期を取る設定にします。

 passwd program = の値をパスワード設定コマンド(passwdコマンド)に指定します。このコマンドをrootが実行します。

 passwd chat = で、passwdコマンドとシステムとの会話(chat)の文字列を指定します。

unix password sync = yes

passwd program = /usr/bin/passwd %u

passwd chat = * %n\n * %n\n *

(設定例)

(6)ゲストアカウントの設定

 Sambaサーバにアカウントを持たないユーザーがアクセスした場合に、それを特定のUNIXアカウント(ゲストアカウント)にマッピングしてアクセスを許可する設定ができます。

 これは、guest ok、guest account、map to guestの3つのパラメータの値を適切に設定することにより行います。

 guest ok = yesとしてゲストアカウントでのアクセスを許可します。public = yesとしても同じです。

 guest account =の値を特定の UNIXアカウントに指定します。

 map to guest =の値を、 Sambaユーザーとして存在しないユーザーがアクセスした場合にゲストアカウントとして扱う設定にします。

guest ok = yes

guest account = nobody

map to guest = Bad User

(設定例)

(注4)map to guestの設定値としては、次のものがあります


Never 不正なパスワードによるユーザーのログイン要求を拒否する
Bad User 不正なパスワードによるユーザーのログイン要求を拒否するが、指定されたユーザーが存在しなかった場合はゲストログインとして扱う。この場合、guest accountで指定したユーザーとなる
Bad Password 不正なパスワードによるユーザーのログイン要求はゲストユーザーとして扱う。この場合、 guest accountで指定したユーザーとなる

       1|2|3|4 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。