†Linuxなんて大キライ†
作成開始日 2022.10.10
最終更新日 2022.12.20
sambaの設定は多岐に亘り複雑で、しかも、しばしば仕様が変更されるため、その度ごとに対応していたら膨大な時間を失う。それよりも、自分の環境で確実に動くシステムを確定し、その設定以外は使わない、とするのが良い。「もっと便利」とか「もっと安全」とか言い出したら、それこそ底無しに沼に引きずり込まれる。
ユーザー登録は「Linux自体のユーザー登録」と「sambaのユーザー登録」の両方で同じユーザーID/パスワードの登録が必要。確か、これも自動的にシンクロするような設定があったような、なかったような気がするが、そんなことを調べるよりは、素直に重複登録をする方が賢明。
書き込みを許可するには、共有するフォルダのパーミッションと、smb.confの「writable = yes」設定の両方が必要。これなんかも非常に忘れやすく、フォルダのパーミッションをchmod 777にしているのに、どうしても書き込めないなんて状況が発生する。なお、FAT32(外付けドライブ等)では、パーミッションの変更に特殊なテクニックが必要なので、できるだけ使用を避ける。
【追記】システムとは別のドライブに共有フォルダを作成する場合は、その経路の全てについてパーミッションをチェックすること。たとえば、2番目のSATAドライブである「hdd2」に共有フォルダを作成する場合は、「hdd2」上のフォルダのパーミッションだけ確認しているのでは不十分。この場合、「/media/root/hdd2/myfolder」のようなマウント形式になるので、「/media」「/media/root」「/media/root/hdd2」「/media/root/hdd2/myfolder」のすべてのパーミッションを適切に設定する必要がある。
#======================= Global Settings ======================= [global] workgroup = CHAOS dns proxy = no log file = /var/log/samba/log.%m max log size = 1000 syslog = 0 panic action = /usr/share/samba/panic-action %d server role = standalone server obey pam restrictions = yes unix password sync = yes pam password change = yes map to guest = bad user usershare allow guests = yes #======================= Share Definitions ======================= [homes] comment = Home Directories browseable = yes read only = yes create mask = 0700 directory mask = 0700 valid users = %S [share] comment = my share folder path = /root/Downloads writable = yes guest ok = yes guest account = nobody map to guest = Bad User browsable = yes [printers] comment = All Printers browseable = no path = /var/spool/samba printable = yes guest ok = no read only = yes create mask = 0700 [print$] comment = Printer Drivers path = /var/lib/samba/printers browseable = yes read only = yes guest ok = no