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(/.*)?"
semanage fcontext -a -t samba_share_t "/myshare(/.*)?"Copy to Clipboard Copied! Toggle word wrap Toggle overflow - root ユーザーで
restorecon -R -v /myshareを実行しラベルの変更を適用します。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:s0Copy to Clipboard Copied! Toggle word wrap Toggle overflow - root ユーザーで
/etc/samba/smb.confを編集します。 Samba で /myshare/ ディレクトリを共有するため、 以下をこのファイルの末尾に追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Samba ファイルシステムをマウントするには Samba アカウントが必要になります。 root ユーザーで
smbpasswd -a usernameを実行し Samba アカウントを作成します。 username は既存の Linux ユーザーにします。 たとえば、smbpasswd -a testuserにすると、 Linux testuser ユーザーの Samba アカウントが作成されます。smbpasswd -a testuser
# smbpasswd -a testuser New SMB password: (パスワードを入力) Retype new SMB password: (もう一度同じパスワードを入力) Added user testuser.Copy to Clipboard Copied! Toggle word wrap Toggle overflow smbpasswd -a usernameを実行する際、 システム上に存在していない Linux アカウントをのユーザー名を username に入れると、 「Cannot locate Unix account for 'username'!」エラーが発生する原因になります。 - root ユーザーで
service smb startを実行して Samba サービスを起動します。service smb start Starting SMB services: [ OK ]
service smb start Starting SMB services: [ OK ]Copy to Clipboard Copied! Toggle word wrap Toggle overflow smbclient -U username -L localhostを実行し、 使用できる共有を表示させます。 username はステップ 7 で追加した Samba アカウントにします。 パスワード入力を求められたら、 ステップ 7 で Samba アカウントに割り当てたパスワードを入力します (バージョン番号は使用しているバージョンによって異なります)。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - root ユーザーで
mkdir /test/を実行し新規ディレクトリを作成します。 このディレクトリは Samba 共有のmyshareをマウントする際に使用します。 - root で次のコマンドを実行して、Samba 共有の
myshareを/test/にマウントします。 username はステップ 7 のユーザー名にしてください。mount //localhost/myshare /test/ -o user=username
mount //localhost/myshare /test/ -o user=usernameCopy to Clipboard Copied! Toggle word wrap Toggle overflow ステップ 7 で設定した username のパスワードを入力します。 ls /test/を実行して ステップ 3 で作成したfile1を表示させます。ls /test/
$ ls /test/ file1Copy to Clipboard Copied! Toggle word wrap Toggle overflow