Windowsにvirtualboxを使ってLinux(Ubuntu20.04.1)を入れたので、
試しにファイルサーバー構築をやってみました。のメモです。
###共有するディレクトリの作成
$sudo mkdir /home/share
$sudo chmod 0777 /home/share
homeの下にshareディレクトリを作り、そのディレクトリのアクセス権限を許可しました。
このディレクトリの中身を共有します。(名前は任意、shareの部分は好きに決めてください)
mkdir→ディレクトリ作成
chmod→アクセス権限の変更
###Sambaのインストール
$ sudo apt-get -y install samba
###ファイルサーバーの設定
$ sudo vim /etc/samba/smb.conf
上記のコマンドで開き、smb.confを編集していきます。
22行目くらいに以下のような記述があると思います。
#======================= Global Settings =======================
[global]
## Browsing/Identification ###
以下の記述を追加します。
unix charset = UTF-8
dos charset = CP932
こんな感じにします。
#======================= Global Settings =======================
[global]
unix charset = UTF-8
dos charset = CP932
## Browsing/Identification ###
必要であれば以下を編集します。僕のでは編集の必要ありませんでした。
#Change this to the workgroup/NT-domain name your Samba server will part of
workgroup = WORKGROUP
Winodwsのワークグループの値をWORKGROUPのところに記述します
workgroup = <ここ>
確認は以下でできます
コントロールパネル->システムとセキュリティ->システム ->コンピュータ名、ドメインおよびワークグループの設定
38行目付近に以下の記述があります。
#### Networking ###
このの項目は接続元IPアドレスの制限などに使用するみたいです。
今回は編集しませんでした。
ファイルの最後に以下を追加します。
[Share]
path = /home/share
writable = yes
guest ok = yes
guest only = yes
create mode = 0777
directory mode = 0777
[Share] には、共有する際のフォルダ名を任意の名でつけます。
path には最初に作った共有したいディレクトリのパスを入れます。
###ファイルサーバーを再起動します
$ sudo systemctl restart smbd
$ sudo systemctl enable smbd
###サーバー名の確認
linuxでサーバー名の確認をします。
$ hostname
サーバー名
###Windowsでファイルにアクセス
Windowsでエクスプローラーを開き、ネットワークドライブの割り当てから
ネットワークドライブの割り当てをクリックします。
フォルダーの欄に「¥¥サーバー名¥共有フォルダ名」と指定します。
サーバー名は先程、Linuxで確認したものです。
フォルダ名は、先程指定した[Share]の部分です。(この場合、share)
ユーザー認証の画面が出てきて入力します。
これでファイルにアクセスできるはずです。
##おまけ
グループでユーザーのアクセス制限をする方法です。
###グループの作成
$ sudo groupadd share
shareグループが作成されました。
###ファイルサーバーの設定
smb.confの最後に追加したものを編集します。
[Share]
path = /home/share
writable = yes
guest ok = no
create mode = 0777
directory mode = 0777
valid users = @share
valid users で認証できるグループ名を指定します。
今回はshareのグループに所属しているユーザーがアクセスできます。
###ユーザーを追加
新しくユーザを作りたい場合のみです。
元から作ってあるユーザでも大丈夫です。
$sudo useradd -m ユーザ名
$sudo passwd ユーザ名
この後、パスワードを2回入れたらユーザーが作成されます。
ユーザは同じ名前にしてください。
useradd のオプションの -m をつけることで、ホームディレクトリが作成されます。
(-m は無くてもいいです)
###ユーザーをグループに追加
$ sudo usermod -aG share ユーザ名
これでグループにユーザが登録できます。
###sambaにユーザ追加
$ sudo pdbedit -a ユーザ名
パスワードを2回入力したら、追加完了です。
(pdbeditではなく、smbpasswdでも同様にアクセスできました。)
これでWindowsからアクセスするときの認証でアクセス制限できるようになりました。
##参考記事
https://qiita.com/k-Mata/items/8bee9e02e74565b6c147
https://qiita.com/msrks/items/1385cf13258dd1a0da08
https://www.server-world.info/query?os=Ubuntu_16.04&p=samba
https://linuxfan.info/ip-address
https://www.server-world.info/query?os=Ubuntu_18.04&p=samba&f=2
https://renoji.com/IT.php?Contents=OS_CentOS/Server_File/Samba_UserRegistration.html
https://qiita.com/orangain/items/056db6ffc16d765a8187
https://eng-entrance.com/linux-user-add