Sambaの設定

Sambaは、/etc/samba/smb.confを設定ファイルとして使用します。この設定ファイルを変更した場合、コマンドservice smb restartを使ってSambaのデーモンを再起動すると変更内容が有効になります。

Red Hat Linux 7.3内のデフォルト設定ファイル(smb.conf)を使用した場合、同じユーザー名とパスワードを使ってログインしたら、そのユーザーは自分のLinuxのホームディレクトリをWindowsマシン上のSamba共有として表示することができます。また、Red Hat Linuxシステム用に設定したプリンタをSamba共有プリンタとして共有することもできます。言い換えれば、Red Hat Linuxシステムにプリンタを接続し、ネットワーク上のWindowsマシンからそのプリンタに出力することができます。

Windowsワークグループと説明文を指定するには、smb.confファイル内の次の行を編集します。
workgroup = WORKGROUPNAME
server string = BRIEF COMMENT ABOUT SERVER
WORKGROUPNAMEには、このマシンが属するWindowsワークグループの名前を指定します。BRIEF COMMENT ABOUT SERVERはオプションで、Sambaシステムに関するWindows用のコメントを入力できます。

Linuxシステム上にSamba共有ディレクトリを作成するには(ニーズやシステムに合わせてファイルを編集した後で)smb.confファイルに次のセクションを追加します。
[sharename]
comment = Insert a comment here
path = /home/share/
valid users = tfox carole
public = no
writable = yes
printable = no
create mask = 0765
上記の例では、tfoxとcaroleというユーザーが、SambaクライアントからSambaサーバー上のディレクトリ/home/shareに対し読み取りと書き込みを行うことができます。

Sambaパスワード

Red Hat Linux 7.3では、暗号化されたパスワードがデフォルトで使用可能なため、より安全性が向上しています。暗号化パスワードを使用せず、プレーンテキストパスワードを使用する場合、ネットワークパケットスニファを使用して誰かに傍受される可能性があります。したがって、暗号化パスワードを使用することをお勧めします。

Microsoft SMBプロトコルは、当初暗号化していないパスワードを使用していました。しかし、Windows 2000とWindows NT 4.0(サービスパック3以上適用)では、暗号化したSambaパスワードが必要です。Red Hat Linuxシステムと、Windows 2000、Windows NT 4.0(サービスパック3以上適用)のいずれかのシステムでSambaを使う場合は、暗号化していないパスワードを使用するようにWindowsレジストリを編集するか、暗号化したパスワードを使用するようにLinuxシステム上のSambaを設定します。レジストリを編集する場合は、すべてのWindows NTマシンやWindows 2000マシンのレジストリを編集しなければいけませんが、これは危険であるだけでなく、整合性を失う可能性もあります。

暗号化したパスワードを使用するようにRed Hat Linuxシステム上のSambaを設定する場合は、次の手順に従ってください。

  1. Samba用の別個のパスワードファイルを作成します。既存の/etc/passwdファイルに基づいてこのパスワードファイルを作成する場合は、次のコマンドを入力します。

    cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd

    システムがNISを使用する場合は、以下のように入力します。

    ypcat passwd | mksmbpasswd.sh > /etc/samba/smbpasswd

    mksmbpasswd.shスクリプトは、sambaパッケージが存在する/usr/binディレクトリにインストールされます。

  2. chmod 600 /etc/samba/smbpasswdを使用して、rootだけが読み取り/書き込みを行えるようにSambaパスワードファイルのアクセス権を変更します。

  3. このスクリプトでは、ユーザーのパスワードは新しいファイルにコピーされません。各Sambaユーザーのパスワードを設定するには、コマンドsmbpasswd usernameを使用します(usernameには各ユーザーのユーザー名を指定します)。Sambaユーザーアカウントは、対応するSambaパスワードが設定されるまで有効になりません。

  4. 暗号化パスワードはSamba設定ファイルで有効にする必要があります。ファイルsmb.confで、次の行のコメントがないことを確認します。

    encrypt password = yes
    smb passwd file = /etc/samba/smbpasswd
  5. シェルプロンプトでコマンドservice smb restartを入力して、smbサービスが起動されていることを確認します。

  6. smbサービスを自動的に起動させたい場合は、ntsysvchkconfigserviceconfを使用して、ランタイム時にこのサービスを有効にします。詳細については第8章を参照してください。

ティップヒント
 

暗号化パスワードの詳細については、/usr/share/doc/samba-<version>/docs/htmldocs/ENCRYPTION.htmlを参照してください (<version>を、インストールしたSambaのバージョン番号に置き換えます)。

passwdコマンドの使用時に、ユーザーのSambaパスワードとシステムパスワードを同期化するためにpam_smbpass PAMモジュールを使用することができます。ユーザーがpasswdコマンドを起動すると、Red Hat Linuxシステムへのログインに使用するパスワードとSamba共有への接続に使用するパスワードは変更されます。

この機能を有効にするには、以下の行をpam_cracklib.soの下の/etc/pam.d/system-authに追加します。

password required /lib/security/pam_smbpass.so nullok use_authtok try_first_pass