Linuxで samba の削除ファイルのごみ箱を有効にするには(openSUSE Leap15)


opensuse で samba の削除ファイルのごみ箱l機能を有効にするにはどうすればよいですか?

Linux でファイルサーバー化させる上で、samba のデフォルト設定から、必ず追加しておきたい事として、ごみ箱の有効化があります。

基本的には /etc/samba/smb.conf ファイルにの共有名の定義の項目に、以下のように数行追加しておくことで、ごみ箱を有効化できます。

"
[Share]
inherit acls = Yes
path = /share
read only = No

# Add these lines ---
vfs objects = recycle
recycle:repository = .recycle/%U
recycle:keeptree = yes
recycle:versions = yes
recycle:exclude = *.tmp, *.temp
recycle:exclude_dir = tmp, temp
recycle:noversions = yes
recycle:maxsize = 0

次に smb nlb を再起動します。

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 から設定する

Linuxで samba の削除ファイルのごみ箱を有効にするには(openSUSE Leap15)_a0056607_20011524.png


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


Linuxで samba の削除ファイルのごみ箱を有効にするには(openSUSE Leap15)_a0056607_20021638.png

この削除ファイルの動作は samba の操作なので、samba を経由しないコンソールからのファイル操作ではごみ箱に移動しません。

なお、作られた .recycle ディレクトリは、削除者がオーナーとなってしまうので、

opensuse:~ # chmod 777 .recycle

を実行して、別なユーザーがごみ箱を利用できるよう属性を与えておくと良いでしょう。


永久削除するため定期的にパージ

削除ファイルは意図的にパージしないと、.recycle に残ります。cron で定期的に削除するか、管理者が削除するかします。


NAS があ欲しいよぉ~










サーバーログオン時にパスワードをバッチ処理で入力させるには












by islandcenter | 2025-09-21 17:11 | Linux | Comments(0)