treedown’s Report

システム管理者に巻き起こる様々な事象を読者の貴方へ報告するブログです。会社でも家庭でも"システム"に携わるすべての方の共感を目指しています。

※https化しました。その影響でしばらくリンク切れなどがあるかもしれませんが徐々に修正していきます。 リンク切れなどのお気づきの点がございましたらコメントなどでご指摘いただけますと助かります。

ファイルサーバを用意します。


会社の規模が拡大してくると、従業員が増えます。
従業員が増えるにつれPCの台数が増えます。
そうなると流れで共有フォルダを集約したファイルサーバが欲しいとユーザ部門から依頼されることになります。

これまでのエントリにあるサーバやネットワークのインフラに関する考え方や設計が実際のサーバ構成として形にする時が来たといえます。

ファイルサーバが欲しいという需要とファイルサーバに投資できる予算が比例するとは限りません。
予算が潤沢にあれば、Windows ServerとActive Directoryを用意して一気にインフラ管理をパワーアップさせるチャンスです。
が、もし予算が付かないようでしたらLinux-sambaでファイルサーバを用意することになります。

ここでは以下の条件でファイルサーバを用意する手順を記載します。

  • OSはDebian 8(jessie)を利用する。
    ※OSインストールは完了しているものとする
  • ファイルサーバとしてsambaをaptでインストール。
  • 利用するsambaバージョンはsamba4(Samba 4.1.17)。※2015年5月現在
  • 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フォルダが表示されるかどうか確認してみましょう。

次のエントリでは、アクセス制限の掛け方を予定しています。