本連載は、Linux 認定試験 LPICに対応しています。一般的なLinuxユーザーレベルのトピックは省略し、システム管理とサーバ管理の内容を取り上げています。また、LPIC対策だけでなく、関連するトピックについて系統的な理解を問う問題も出題しています。連載の特徴は、対象となるプログラムのバージョンを可能な限り明記していること、比較的新しくまとまった解説がまだ少ないトピック、重要だが理解しにくいトピックを優先して取り上げていることです。問題を解き、その解説を読むことにより実践でLinuxを活用できる力を身に付けます。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
■問題を解く鍵 【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
また、最近の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
# pdbedit -a user01
(4)パスワードの変更
ユーザーが自分のパスワードを変更する場合はsmbpasswdコマンドで行います。
$ smbpasswd
Old SMB password:
New SMB password:
Retype new SMB password:
Password changed for user 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で指定したユーザーとなる |
Copyright © ITmedia, Inc. All Rights Reserved.