Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
4.4. 設定例
SELinux でどのように Samba サーバーを補完するのか、 Samba サーバーの全機能をどのように管理するのかなど、 実践的な例を以下に示します。
4.4.1. 作成したディレクトリを共有する
新規のディレクトリを作成し、 そのディレクトリを Samba で共有します。
rpm -q samba samba-common samba-client
を実行して、 samba、 samba-common、 samba-client の各パッケージがインストールされているか確認します。 いずれかのパッケージがインストールされていない場合は、 root ユーザーでyum install package-name
を実行してインストールを行ないます。- root ユーザーで
mkdir /myshare
を実行して Samba でファイルを共有するためのディレクトリを最上位に新規に作成します。 - root ユーザーで
touch /myshare/file1
を実行して空のファイルを作成します。 このファイルは後で Samba 共有が正しくマウントされたか確認する際に使用します。 - SELinux では、
/etc/samba/smb.conf
および Linux パーミッションが設定されていれば、samba_share_t
タイプのラベルが付いたファイルへの Samba による読み取りおよび書き込みは許可されます。root ユーザーで次のコマンドを実行し、ファイルコンテキスト設定にラベルの変更を追加します。semanage fcontext -a -t samba_share_t "/myshare(/.*)?"
- root ユーザーで
restorecon -R -v /myshare
を実行しラベルの変更を適用します。# restorecon -R -v /myshare restorecon reset /myshare context unconfined_u:object_r:default_t:s0->system_u:object_r:samba_share_t:s0 restorecon reset /myshare/file1 context unconfined_u:object_r:default_t:s0->system_u:object_r:samba_share_t:s0
- root ユーザーで
/etc/samba/smb.conf
を編集します。 Samba で /myshare/ ディレクトリを共有するため、 以下をこのファイルの末尾に追加します。[myshare] comment = My share path = /myshare public = yes writeable = no
- Samba ファイルシステムをマウントするには Samba アカウントが必要になります。 root ユーザーで
smbpasswd -a username
を実行し Samba アカウントを作成します。 username は既存の Linux ユーザーにします。 たとえば、smbpasswd -a testuser
にすると、 Linux testuser ユーザーの Samba アカウントが作成されます。# smbpasswd -a testuser New SMB password: (パスワードを入力) Retype new SMB password: (もう一度同じパスワードを入力) Added user testuser.
smbpasswd -a username
を実行する際、 システム上に存在していない Linux アカウントをのユーザー名を username に入れると、 「Cannot locate Unix account for 'username'!
」エラーが発生する原因になります。 - root ユーザーで
service smb start
を実行して Samba サービスを起動します。service smb start Starting SMB services: [ OK ]
smbclient -U username -L localhost
を実行し、 使用できる共有を表示させます。 username はステップ 7 で追加した Samba アカウントにします。 パスワード入力を求められたら、 ステップ 7 で Samba アカウントに割り当てたパスワードを入力します (バージョン番号は使用しているバージョンによって異なります)。$ smbclient -U username -L localhost Enter username's password: Domain=[HOSTNAME] OS=[Unix] Server=[Samba 3.4.0-0.41.el6] Sharename Type Comment --------- ---- ------- myshare Disk My share IPC$ IPC IPC Service (Samba Server Version 3.4.0-0.41.el6) username Disk Home Directories Domain=[HOSTNAME] OS=[Unix] Server=[Samba 3.4.0-0.41.el6] Server Comment --------- ------- Workgroup Master --------- -------
- root ユーザーで
mkdir /test/
を実行し新規ディレクトリを作成します。 このディレクトリは Samba 共有のmyshare
をマウントする際に使用します。 - root で次のコマンドを実行して、Samba 共有の
myshare
を/test/
にマウントします。 username はステップ 7 のユーザー名にしてください。mount //localhost/myshare /test/ -o user=username
ステップ 7 で設定した username のパスワードを入力します。 ls /test/
を実行して ステップ 3 で作成したfile1
を表示させます。$ ls /test/ file1