lubuntu 16.04.1 でsambaを利用したファイル共有

共有のpc数台あり、かつ所有者が決まってない場合ファイルサーバを利用すればどのpcからでも自分の望むファイルの編集が容易にできると思った。このテーマは他にも多くの記事があるが、自分はサーバーに関しては全く知識がなかったので例のごとく自分も泥沼にはまってしまった(笑)。とりあえずできたのでメモしておきます。

今回のファイルサーバーに求める条件
・自宅内のどのWindows(8.1,10)からも読み書きできる
・プリンターのサーバーは作らない
共有するフォルダ名
・share

利用したsamba(smbd,nmbd)のバージョン
・Version 4.3.9-Ubuntu

では、やってみます。

sambaを有効にするための手順は大まかに4つの手順からなります。
1,sambaのインストール
2,sambaアカウントの作成
3,smb.confに情報を追記
4,共有フォルダのパーミッション変更
5,sambaの有効化と自動起動の設定
6,ミニコマンド集?

------------------------------------

1,sambaのインストール
既にOSをインストール済みであることを想定しています。LXTerminalを起動して

sudo apt-get install samba

を行うか、ソフトウェアセンターからsambaを検索してインストールします。(検索ボックスはウィンドウを最大化すると現れます。)

2,sambaアカウントの作成
sambaで使用するアカウントの作成をします。これは、lubuntu上で既に作成されたユーザー名でなければなりません。今回ユーザー名は"user"とします。(新しくユーザーを作成する場合はこの操作をする前useradd等で行ってください。)

sudo pdbedit -a user


3,smb.confに情報を追記
smb.confとは共有するフォルダや接続するユーザーに対する権限を決めるファイルです。このファイルで恐らくすべての設定が決まるので、設定によってはWindows上から何も見えなかったり、接続しても読み取り専用だったりします。まずファイルを/etc/samba/smb.confから開きます。

sudo leafpad /etc/samba/smb.conf #GUIでファイルを開きます

または

sudo vi /etc/samba/smb.conf #CUIでファイルを開きます

自分のような初心者にはviは敷居が高いので、実機が使えるのであればGUIの方が編集は楽だと思います。

このファイルの中はいくつかのセクションに分かれているので、目的に合う情報を追記していきます。
[global]内

#アクセス制限
hosts allow = 127. 192.168.0. #許可するホストの設定
hosts deny = all #拒否するホストの設定
#文字コード
unix charset = UTF-8 #lubuntu側での文字コード
dos charset = CP932 #Windows側での文字コード
#セキュリティレベル
security = user
#SMB2 プロトコルを優先する(2016/12/13追記 ファイル転送高速化のため)
max protocol = SMB2

[homes]内

comment = Home Directories #セミコロンを外す
browseable = no #セミコロンを外す
read only = no #追記

[printers],[print$]はプリンタ関係なので必要なければ行頭に;(セミコロン)を付けるとよいです。そして、ファイルの末尾に以下の項目を追加します。

[share] #管理名
path = /home/user/share #共有するフォルダのパス
read only = no #書き込みの許可
guest ok = yes #ゲストユーザーの許可
guest only = yes #ゲスト接続のみを許可
create mode = 0777 #ファイルのフルアクセス許可
directory mode = 0777 #フォルダのフルアクセス許可


4,共有フォルダのパーミッション変更
タイトルの通りです。共有するフォルダのパーミッション(権限)を変更します。

#フォルダの作成(フォルダを作成していなければ)
mkdir /home/user/share

#フォルダをすべてのユーザーで自由に扱えるようにする
sudo chmod 777 /home/user/share



5,sambaの有効化と自動起動の設定
いよいよ最後です。LXTerminalで、以下の2つのコマンドを入力します。最初centOS 7でこの方法を知りましたが、lubuntuでも同様に動作するようです。
・1行目はsmbd、nmbdの実行
・2行目は起動時に自動実行させる

sudo systemctl start smbd nmbd
sudo systemctl enable smbd nmbd

うまくいっていれば、多分サーバーに接続できると思います。また、lubuntuをインストールした直後は、firewalldやSELinuxは有効になっていないようなので、セキュリティ関係で引っかかることはあまりないと思います。ファイアーウォールが有効な場合は、起動しているソフトに合わせた許可をするためのコマンドが必要になります。

6,ミニコマンド集?
失敗した時などに役に立ちそうなコマンド

#設定したユーザー名とネットワークの場所などの情報を表示する
sudo pdbedit -L -v

#変更したsmb.confの設定を反映させる
sudo systemctl restart smbd nmbd

#sambaへの接続情報を確認する
sudo smbstatus -u user

#smb.confの設定反映の確認をするコマンド
testparm

この記事へのコメント

  • anonymous

    分かりやすく簡潔にまとめてくださっていて、助かりました。
    ありがとうございました。
    2017年10月07日 10:51

この記事へのトラックバック