今回は、Ubuntu 22.04でSambaを使用してファイルサーバを構築する手順を記載します。なお、今回はSambaのインストールと設定を行いましたが、Windows10からの共有アクセスができませんでした。なので、解決策が見つかり次第リライトしたいと思います。
コメントにて共有フォルダより上位のディレクトリに実行アクセス権を付与することで共有することができました。
ページ下部に解決方法を追記しています。
前提条件
今回ファイルサーバとして使用するUbuntuの仮想マシンは以下の通りとなります。
- CPU : 2vCPU
- MEM : 4GB
- DISK1 : 60GB (System)
- DISK2 : 100GB (Data)
- IP : 192.168.100.177
- Hostname : dev-file
- OS : Ubuntu 22.04
なお、今回はファイル管理がやりやすいようにServerではなくGUIを使用してUbuntuをインストールしています。
Sambaインストール

ターミナルを起動し、以下のコマンドを実行します。
$ sudo apt install samba
インストールが正常に完了したら、Sambaのインストールは完了です。
共有用ディレクトリの作成

今回は、データ用のドライブをマウントし、そこに[Share]というディレクトリを作成します。
ディレクトリを作成したら、以下のコマンドでアクセス権を設定します。
$ chmod 777 [共有用ディレクトリ]
以上でアクセス権の設定は完了です。
Sambaの設定

以下のコマンドを使用し、オリジナルの設定ファイルのバックアップをしておきます。
$ sudo cp -a /etc/samba/smb.conf /etc/samba/smb.conf_original

オリジナルのコピーが完了したら、以下のコマンドで設定を追記していきます。
$ sudo vi /etc/samba/smb.conf
今回は、ファイルの一番最後に以下の設定を追記しました。
[public]
comment = Public Drive
path = /media/willserver/Data/Share
writable = yes
create mask = 0644
directory mask = 0777
guest ok = yes
guest only = yes

設定が完了したら、以下のコマンドを実行してSambaを再起動します。
$ sudo systemctl restart smbd

Sambaの再起動が完了したら、以下のコマンドを使用しSambaのステータスを確認します。
$ sudo systemctl status smbd
smbd.serviceのActiveがactive (running)となっていることを確認します。
クライアントアクセス
Sambaの設定と再起動が完了したら、Windows10の端末からファイルサーバにアクセスします。

が、アクセス許可がありません。でアクセスができませんでした。
色々と権限周り、設定周りをいじりましたが、現時点で匿名ユーザアクセスはできませんでした。
追記 : 実行アクセス権を付与するとアクセスが可能になった

作成した共有フォルダは、/media/willserver/Data/Share
になっていますが、更新前の記事だとShareのフォルダに777のアクセス権を割り当てていました。

今回は、共有フォルダの1つ上のディレクトリに実行権限を付与していきます。
$ sudo chmod a+x [共有ディレクトリの上位ディレクトリ]
これで実行権限が付与されていることを確認しました。が、この状態ではまだアクセスできませんでした。

Dataのさらに上位にあるディレクトリに実行権限を付与しました。
$ sudo chmod a+x [共有ディレクトリの上位の上位ディレクトリ]

権限の設定が完了したら、クライアントからサーバにアクセスします。

共有フォルダの上位2階層のディレクトリに実行権限を付与したら、無事アクセスできるようになりました。

アクセスができたら、ファイルの作成・削除を行って正常に読み書きができるか確認します。
以上でSambaによるファイルサーバ構築は完了です。
まとめ
今回はUbuntu 22.04にSambaをインストールしてフィアルサーバの設定を行いましたが、Windows10からアクセスができませんでした。
アクセス権もディレクトリに777の設定を行ったり、ディレクトリを変えてGUIから設定してみたりしましたが、Windows10から共有ファイルにアクセスできませんでした。
なんか詳しい方いらっしゃいましたら、コメント等で教えて下さい。
コメントにて、上位ディレクトリに実行アクセス権を付与したら、Windowsからアクセスすることができるようになりました。
色々と検証しましたが、/media配下の場合、実行権限は共有フォルダの上位2階層上まで実行権限を付与することでアクセスすることができました。
また、/homeディレクトリ配下に共有ファイルを作成した場合、1階層上位に実行権限の付与だけでも共有ができたので、どこまで実行アクセス権が必要かは要件等になると思います。
おまけ
本ブログではVMwareやWindows、Linuxのインストール手順等も公開しております。
インフラエンジニアとして有益な記事や無益なコンテンツも作成しておりますので、通勤時間や休憩時間、休日のスキマ時間等に合わせて読んでいただけると幸いです。
また、Youtubeで解説動画も鋭意作成中です。本ブログで記事にしているものも動画にしようと思っておりますので、よろしくお願いいたします。
willserverのnoteも開設したのでフォローお願いします。
コメント
shareフォルダの上位のフォルダが実行可能であることが必要のようです。
chmod a+x xxxx(上位のフォルダ)
ご指摘ありがとうございます。
検証後、記事に加筆させていただきます。