会社の規模が拡大してくると、従業員が増えます。
従業員が増えるにつれPCの台数が増えます。
そうなると流れで共有フォルダを集約したファイルサーバが欲しいとユーザ部門から依頼されることになります。
これまでのエントリにあるサーバやネットワークのインフラに関する考え方や設計が実際のサーバ構成として形にする時が来たといえます。
ファイルサーバが欲しいという需要とファイルサーバに投資できる予算が比例するとは限りません。
予算が潤沢にあれば、Windows ServerとActive Directoryを用意して一気にインフラ管理をパワーアップさせるチャンスです。
が、もし予算が付かないようでしたらLinux-sambaでファイルサーバを用意することになります。
ここでは以下の条件でファイルサーバを用意する手順を記載します。
- OSはDebian 8(jessie)を利用する。
※OSインストールは完了しているものとする
- ファイルサーバとしてsambaをaptでインストール。
- root権限を要する作業はsudoで実行する。
※sudoは設定済みとする。
- SSHサーバはOSと同時にインストールして接続可能にしておく。
インストールは
$ sudo apt-get install samba
これだけでsambaがインストールされます。
初期設定として
$ sudo vi /etc/samba/smb.conf
コマンドを実行し、かんたんに設定を済ませておきます。
----------------------------------------------
[global]
workgroup = WORKGROUP
----------------------------------------------
samba3の時は[global]セクションではいろいろ設定を記述した記憶があるのですが、samba4ではワークグループ名を入力しただけでした。
(1か月くらい前の記憶なのであやふやです。すいません。)
※参考:samba3時代の[global]セクション設定
----------------------------------------------
[global]
dos charset = CP932
display charset = UTF-8
workgroup = WORKGROUP
netbiosname = flsvr
server string = %h server
obey pam restrictions = Yes
pam password change = Yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
unix password sync = Yes
client NTLMv2 auth = Yes
syslog = 0
log file = /var/log/samba/log.%m
max log size = 1000
client use spnego = No
dns proxy = No
panic action = /usr/share/samba/panic-action %d
include = /etc/samba/%G.conf
max protcol = smb2
----------------------------------------------
こんな感じでした。
本当は必要なのかもしれないので、いちおう書いておきます。
共有フォルダ作成のためのアカウント・グループ作成します。
----------------------------------------------
# mkdir /home/samba/share
# chmod 777 /home/samba/share
# groupadd -g 1501 Users
# mkdir /home/samba/share/Users
# chmod 777 /home/samba/share/Users
# chgrp Users /home/samba/share/Users
# useradd user1 -u 1501 -g Users -p password -d /home/user1 -s /bin/false
# mkdir /home/user1
# chmod 770 /home/user1
# chown user1:user1 /home/user1
# pdbedit -a -u user1
----------------------------------------------
それぞれの解説です。
まずsambaで必要となる共有フォルダを作成する場所として「/home/samba/share」ディレクトリを作成し、全ユーザがアクセス可能になるようパーミッション設定を実行します。
groupaddでWindowsでいうグループアカウントを作成しています。
グループで共有するフォルダを「/home/samba/share」配下に「Users」というディレクトリ名で作成します。
パーミッションを設定し、ディレクトリの所有グループに「Users」を追加します。
useraddでUNIXユーザを作成します。このユーザがベースになります。同時にUIDを1501、Usersグループに所属させて、ホームディレクトリに「/home/user1」を指定、シェルは無し、で作成するようにしています。
次のmkdir以降でユーザのホームディレクトリを作成しパーミッション設定を実行しています。
最後のpdbeditコマンドで共有フォルダに対するアクセス権を持つsambaユーザを作成しています。
※pdbeditでsambaアクセスユーザを生成しますが、作成時には.shファイルに以下のように記述して一括で作成しています。
----------------------------------------------
( echo password ; echo password ) | pdbedit -a -t -u user1
( echo password2 ; echo password2 ) | pdbedit -a -t -u user2
( echo password3 ; echo password3 ) | pdbedit -a -t -u user3
----------------------------------------------
共有を追加します。
# vi /etc/samba/smb.conf
コマンドを実行しファイルの最後に以下のような基本的な共有を追加します。
----------------------------------------------
[Users]
comment = Usersグループの共有
path = /home/samba/share/Users
browsable = yes
writable = yes
force create mode = 777
force directory mode = 777
###Users###
----------------------------------------------
これで共有フォルダがアクセス可能になります。
確認のため、
$ uname -n
コマンドで出力される%hostname%をWindowsのエクスプローラのアドレス欄に、
\\%hostname%
と入力してEnterし、Usersフォルダが表示されるかどうか確認してみましょう。
次のエントリでは、アクセス制限の掛け方を予定しています。