ユースケース
私は唯一のユーザーです。完全なディスク暗号化を備えたUbuntu NASがあり、Windowsコンピュータをデバイスにバックアップしようとしています。 WindowsドライブをNASに複製するにはブート可能なUSBスティックが必要ですが、共有の資格情報を持つUSBスティックを見つけた人がフルバックアップ共有を読むことを望んでいません。より良い解決策を考えることができますか?
欲しいものは実現可能
検索しましたが、必要なものが見つかりませんでした。私が見つけたすべては、単に共有への書き込みアクセスを有効にすることでしたが、これは私が望むものではありません。
私のUbuntuコンピュータにユーザーができるSamba共有を作成したいと思います。ただ書き込み権限。私は彼らがファイルを作成できますが、読み取ることができず、共有内のフォルダを一覧表示できないようにしたいと思います。
これはバックアップ用です。起動可能で、そのコンピュータ上のドライブのディスクイメージをインポートしてSamba共有に保存できる起動可能なUSBドライブが必要ですが、USBがすべての画像にアクセスできるようにしたくありません。
ファイルがすでに存在する場合は、失敗してもかまいません。ドライブのUUID /時間を使用してファイル名が競合していないことを確認します。
答え1
同様のことをしましたが、1つのユーザーは書き込みしかできませんが、読み取ることはできず(ディレクトリリストも一覧表示されます)、他のユーザーは読み取りのみできます。
/etc/samba/smb.conf
[write-only]
comment = Write-only access without read
path = /smbshare
hosts allow = 172.17.10.10
hosts deny = 0.0.0.0/0
read only = no
write list = smbwrite
force user = smbwrite
force group = smbread
create mask = 0350
directory mask = 0350
force create mode = 0350
force directory mode = 0350
サーバー側の初期アクセス権:
chmod -R 350 /smbshare
chown -R smbwrite:smbread /smbshare
唯一の欠点は、正確なファイル名がわかるとリストできることです。
次のセクションは参考用です。
[read-only]
comment = Read-only access
path = /smbshare
read only = yes
hosts allow = 172.17.10.20
hosts deny = 0.0.0.0/0
read list = @smbread
/etc/fstab
両方のクライアントのエントリ:
smbwrite(172.17.10.10)、ローカルユーザー "foo":
//172.17.10.1/write-only /mnt/write cifs user=smbwrite,pass=s3kr1t,uid=foo,vers=3.0 0 0
smbread(172.17.10.20)、ローカルユーザー "bar":
//172.17.10.1/read-only /mnt/read cifs user=smbread,pass=s3kr1t,uid=bar,vers=3.0 0 0
答え2
マウントポイントは無効な書き込み(読み取り専用)のみをサポートし、無効な読み取りはサポートしません。ただし、ファイル権限を使用してほとんどの操作を実行できます。ユーザーが自分のファイルを読むのを防ぐことはできませんが、他の人のファイルを読むことは妨げられます。
必要になります。
- ユーザーが互いのファイルを削除するのを防ぐ固定ビットです。
- 他の人が読まないように、ディレクトリの読み出しビットをオフにします。
- デフォルトの権限を設定して、他の人がファイルを読み取らないように、ファイルの読み取りビットをオフにします。
どのように
chmod +t "«the directory»"
setfacl -m "u::wx,g::wx,o:-" "«the directory»"
setfacl -m "d:u::-,d:g::-,d:o:-" "«the directory»"
警告する
この機能はユーザーが簡単に使用できません。一部追加の権限。またはユーザーごとに1つのディレクトリです。
バックアップをする方法でもないようです。毎日バックアップを実行するようにクローンジョブを設定します。バージョン管理にバックアップを使用できるので、バージョン管理システムの使用を検討してください。 Subversion(svn)は、必要なユーザーとほとんどのファイル形式に適したバージョンです。 Mercurialはプログラマにも適しており、他のファイル形式で使用できますが、マージできないファイル(MS-Officeなど)にはお勧めできません。