はじめに
sambaで意図したパーミッションを付与する際に嵌ってしまったため、sambaでのファイル共有手順のフローを投稿します。
結論としてはUbuntu側のumaskによるものだったようです。
行いたいこと
windowsのファイルエクスプローラからUbuntuのディレクトリにアクセスする。
また、同一グループのユーザ間でディレクトリ・フォルダを共有する。
sambaのインストール
$ sudo apt update
$ sudo apt install -y samba
ポート開放
$ sudo ufw allow samba
ユーザ認証
Ubuntuに登録済みのユーザを以下のコマンドでsambaに追加する。
$ sudo pdbedit -a <username>
smb.conf
/etc/samba/smb.conf を編集する。
workgroupはwindows側と合わせること。
各ユーザはUbuntuのアカウント上でに所属していること。
以下には差分のみ記述する。
[global]
unix charset = UTF8
dos charset = cp932
unix extensions = no
wide links = yes
workgroup = workgroup
[share]
path = /mnt/hdd/share
writeable = yes
valid_user = @<group>
force group = +<group>
create mode = 0775
directory mode = 0775
force create mode = 0775
force directory mode = 0775
Ubuntu側のumask変更
(DOSの属性 & directory mode) | (force directory mode)
でUNIX側のパーミッションが決定されるとあるが、うまくいかず嵌ってしまった。
実際には、Ubuntu側のumaskも関係してくるようである。
{(DOSの属性 & directory mode) | (force directory mode)} & (~umask)
また、username でsambaにログインしていても、/home/username/.bashrc のumaskの記述は反映されなかった。
/etc/login.defs 1 のumaskを変更し、
$ sudo service smbd restart
で設定が反映され意図したパーミッションを付与できた。
samba.conf の各種設定は以下を参照
参考URL :
http://www.samba.gr.jp/project/translation/current/htmldocs/manpages/smb.conf.5.html
-
/etc/profile などで変更したほうが良いのかもしれない。 ↩