2025年 09月 21日
Linuxで samba の削除ファイルのごみ箱を有効にするには(openSUSE Leap15)
Linux でファイルサーバー化させる上で、samba のデフォルト設定から、必ず追加しておきたい事として、ごみ箱の有効化があります。
基本的には /etc/samba/smb.conf ファイルにの共有名の定義の項目に、以下のように数行追加しておくことで、ごみ箱を有効化できます。
inherit acls = Yespath = /shareread only = No
# Add these lines ---vfs objects = recyclerecycle:repository = .recycle/%Urecycle:keeptree = yesrecycle:versions = yesrecycle:exclude = *.tmp, *.temprecycle:exclude_dir = tmp, temprecycle:noversions = yesrecycle:maxsize = 0
opensuse:~ # systemctl restart smb nmb
- vfs objects = recycle: これが最も重要な設定で、この行を追加することで VFS(仮想ファイルシステム) モジュールである recycle が有効になります。- recycle:repository = .recycle/%U: 削除されたファイルを保存するディレクトリを指定します。%U はユーザー名に展開され、ユーザーごとに個別のゴミ箱が作成されます。これにより、セキュリティが向上し、他のユーザーのごみ箱にアクセスできなくなります。- recycle:keeptree = yes: 削除されたファイルが元のディレクトリ構造を保持したままごみ箱に移動されます。- recycle:versions = yes: 同名のファイルが削除された場合、自動的にバージョン管理(例:file.txt.2025-09-11_19-30-00)を行います。- recycle:maxsize = 0 ' ゴミ箱(ごみ箱)に移動できるファイルの最大サイズを(KB)指定します。例)1024 : 1MB以上の大きなファイルはゴミ箱を経由せず削除される、 0 : ファイルサイズ制限なく常にゴミ箱へ移動- recycle:exclude, recycle:exclude_dir : 除外ファイル名とディレクトリ名、指定されたファイルは問答無用で即削除、ごみ箱に移動されません。
yast から設定する

samba を再起動して、クライアント側のファイルマネージャー(ファインダーやエクスプローラ-)からファイルを削除すると "<共有パス>/.recycle " ディレクトリが作られ、その下に、削除したユーザのディレクトリが作られ、削除ファイルが移動されてきます。

この削除ファイルの動作は samba の操作なので、samba を経由しないコンソールからのファイル操作ではごみ箱に移動しません。
なお、作られた .recycle ディレクトリは、削除者がオーナーとなってしまうので、
opensuse:~ # chmod 777 .recycle
を実行して、別なユーザーがごみ箱を利用できるよう属性を与えておくと良いでしょう。
削除ファイルは意図的にパージしないと、.recycle に残ります。cron で定期的に削除するか、管理者が削除するかします。
サーバーログオン時にパスワードをバッチ処理で入力させるには



