私は学校のファイルサーバープロジェクトに取り組んでおり、sambaを使用してフォルダーを共有しています。フォルダーのアクセス許可をいじっていますが、フォルダーのようなドロップのみを作成する方法がわかりません。これは私が達成したいことです:
(chmod number 7xx)
(chmod number x?x)
(chmod number xx0)
さまざまなchmod設定を試してみましたが、期待した結果を達成できませんでした。これも可能ですか?私はたくさんグーグルで検索しましたが、最終的な答えを見つけることができませんでした。
ファイルがフォルダに配置されるたびにファイルにアクセス許可を設定する方法がありますか?
Sambaの設定やその他の情報が必要な場合は、お問い合わせください!
手伝ってくれてありがとう!
この手順を試してください。
共有フォルダーを作成し、適切な権限を付与します。
mkdir /pathYouWant/share
chmod 770 /pathYouWant/share
これは、他へのアクセスを与えません。
chmod +t /pathYouWant/share
chmodマニュアルページ によると、このモード
The restricted deletion flag or sticky bit is a single bit, whose
interpretation depends on the file type. For directories, it prevents
unprivileged users from removing or renaming a file in the directory
unless they own the file or the directory
共有フォルダーで作成されたMarty Friedのファイルには適切なアクセス許可が必要であり、これは samba共有マスク で実現できますsmb.conf
:
create mask = 440
directory mask = 550
Windowsプログラムは、delete readonly
オプションがyesに設定されていない限り、読み取り専用ファイルを削除しようとするべきではありません。
delete readonly = no
また、共有フォルダー内のすべてのファイルを非表示にする場合:
veto files = /*/
delete veto files = no
Sambaマニュアルによると、これらのディレクティブ:
ユーザーが拒否されたファイルを含むディレクトリを削除しようとするとどうなりますか?これは、拒否ファイルの削除オプションの出番です。このブールオプションをyesに設定すると、ユーザーはディレクトリ内の通常ファイルと拒否されたファイルの両方を削除でき、ディレクトリ自体が削除されます。オプションがnoに設定されている場合、ユーザーは拒否されたファイルを削除できません。その結果、ディレクトリも削除されません。ユーザーの観点からは、ディレクトリは空に見えますが、削除することはできません。
この構成の後、残っている唯一の問題は、ユーザーがファイルを表示しなくても、ユーザーが自分のファイルを削除できることです(理由は不明です)。
そこで、_Seppiの提案に従ってタスクを完了することにし、Bram Driesenはファイルの所有権をホストPCに変更するスクリプトを作成しました。
ガイドとして this に従って、ファイルがフォルダーに配置されるたびにスクリプトを起動するためにincron
を使用しましたそれを設定します。
残念ながら、あなたの問題はそれほど簡単に解決できません。ユーザーがディレクトリへの書き込み権限を持っている場合、ファイルを削除することもできます。それらを削除できなくても、ファイルをゼロで埋めることができます。これは、ファイルシステムノードではなく、データの削除になります。
私がかつて使用したアイデア:
Cronjobを作成します。これにより、ディレクトリツリー内のすべてのファイル(/home/guest
内のすべてのファイルなど)の書き込み許可が拒否されます。
chmod g-w -R /home/guest
を単に使用することはできないことに注意してください。これにより、ディレクトリから書き込みビットが削除され、新しいファイルをそこに配置できなくなります。したがって、すべてのファイルを反復処理し、グループ書き込みビットを削除する必要があります。
Cronjobの実行間隔はあなた次第です-当時は10分に設定していました。私はあなたの環境を知らないので、私はあなたに推薦をすることができません。
残念ながら、このスクリプトはもうないので、bashスクリプトを実行して動作させる必要があります。しかし、真剣に、私はこれが効率的な方法であることを疑います。
ファイルとフォルダーを変更できますが、削除することはできません。
属性を削除するには、次のコマンドを実行します。
ファイルの場合:
Sudo chattr -R -a file.txt
ディレクトリの場合:
Sudo chattr -R -a dir1/