NTFSドライブのLinux Samba共有からWindowsで隠しファイルを隠しファイルとして表示する


0

私が使用しているラズベリーパイ持っているsambantfs-3g私のホームネットワーク上のUSB外付けハードドライブを共有するためには。ハードドライブには、「隠し」Windowsファイル属性でマークされたファイルがいくつかあります。ただし、Windows PCで共有にアクセスすると、ファイルが非表示として表示されません。その結果、Windowsの[フォルダオプション]の設定が隠しファイルを表示しないように設定されていても、などのディレクトリだけでなくdesktop.ini、などの多くの隠しファイルが表示されます。thumbs.db$RECYCLE.BINSystem Volume Information

samba非表示にする必要があるファイルのプロパティを表示すると、[非表示]チェックボックスが選択されていないため、非表示属性が正しく転送されないことがわかります。

隠されていない

これらは私のsmb.confファイルの現在の内容です:

#### GLOBAL CONFIG #####

workgroup = WORKGROUP
netbios name = raspberrypi
server string = %h
wins support = yes
dns proxy = no
security = share
null passwords = yes
guest account = nobody
interfaces = eth0 lo
bind interfaces only = yes

#### PUBLIC SHARE #####

[Mazda6]
comment = Media Drive
path = /media/HDD
browseable = yes
guest ok = yes
writeable = yes
public = yes
available = yes
create mask = 0666
directory mask = 0777

NTFSドライブの隠しファイル属性でマークされたファイルをsambaWindows PCの共有から表示したときに隠しファイルとして表示するにはどうすればよいですか?

回答:


0

map hidden = yes共有の構成に追加するだけでいいと思いますが、自分でテストしたことはありません。これには、Windowsでも「隠された」「他の実行可能」ファイル(Linuxファイルのアクセス許可による)を作成するという意図しない/望ましくない動作がある可能性があることに注意してください。これは、Sambaがそのような属性を持たないLinuxの上に常駐しているため、Sambaが実際にそのビットをWindowsの「隠された」属性に再利用するためです。

それに失敗すると、hide files指定したファイルを非表示にするオプションを使用できるはずです。たとえば、これを共有の構成に適用します。

hide files = /$RECYCLE.BIN/System Volume Information/desktop.ini/thumbs.db/

もちろん、ここでの欠点は、設定で明示的に非表示にするファイルをハードコーディングする必要があることです。残念ながら、たとえばdesktop.ini非表示にする必要があるものと非表示にする必要がないものを区別する方法desktop.iniはありません。この設定で非表示になります。(注:これがディレクトリで機能するかどうかはわかりません。現時点ではテストすべきではありませんが、現時点ではテストできません。また、$キャラクターに問題がある可能性があります。再び、機能すると思いますが、できません。今すぐテストします。)

いつものように、ドキュメントはあなたの友達です。

更新:以下のコメントで報告されているOPのテストによると、NTFSパーティション上のすべてのファイルが0777許可を持つLinuxで表示される可能性があります。これは「その他の実行」ビットが設定されていることを意味するため、Sambaは最終的map hiddenにすべてのデータを別のファイルシステムに移動せずに、設定をオンにしてすべてのファイルを「隠し」と解釈します。


map hidden = yes構成に追加すると、すべてのファイルが非表示になり、hidden属性がない場合でも表示されます。使用hide filesしても動作しているようです。誰もより良い代替案を提案しない場合、私はあなたの答えを受け入れます。
bdr9 14

ホスト自体のLinuxの権限を確認してください。特にNTFSファイルシステムは、すべての単一ファイルに「その他の実行」ビットが設定されているため、システムによって頻繁に読み取られます。ファイル属性は、ここで遭遇したものとまったく同じよう聞こえます。
クローミー14

ドライブ上の.jpg画像に-rwxrwxrwx権限があると表示されています。Linuxの許可についてはあまり知りません。これはあなたの理論を裏付けていますか?
bdr9 14

はい、少なくともそれと一致しているようです。chmod a-x <filename.jpg>これらの.jpgファイルの1つ(ただし、現時点では1つ)でコマンドを実行してみて、Sambaを介してWindowsから表示したときに「存在する」ことを確認してください。map hiddenもちろん、オプションと組み合わせて使用​​する場合。
クローミー14

chmod a-x <filename>NTFSドライブ上のファイルを実行しても、アクセス許可は変わりませんが、それでも変わりません-rwxrwxrwx。そのためmap hidden = yes、構成に含まれる場合、ファイルはまだ非表示になっています。
bdr9 14

0

LinuxはWindowsの「隠された」属性と実質的に同等ではないため、SambaはNTFSから適切に読み取ることができません。ただし、オプションhide_hid_filesでNTFS-3Gを使用すると、隠しファイルがディレクトリリストに表示されず、Sambaと共有された場合にWindowsで隠されます。

このアプローチの欠点は、フォルダオプションがすべてのファイルを表示するように設定されていても、すべての隠しファイルがWindowsで表示されず、明示的なファイル名が指定されている場合でもWindowsでアクセスできないことです。ただし、ユースケースでは、これで十分です。

最善の解決策は、Samba system.ntfs_attrib_beにNTFS-3Gのxattrを読み取らせるコードを書くことです。しかし、私はそのようなプロジェクトを知りません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.