書き込み権限のみのフォルダは役に立たない…


10

何年もの間Linuxで働いており、自由な時間を自分自身で見つけたので、いくつかの基本を再訪することにしました。だから私は権限に関するもの(ソースコードをチェックせずに)とそのフォルダーの特別なケースを読み直し、(特定のユーザー/の)フォルダーの権限について新しい(少なくとも私には...)考え方を思いついたgroup / others):次のように、フォルダーを2列のテーブルとして想像します。

filename | inode    
foo      | 111  
bar      | 222 

読み取り権限あなたが読むことができる手段(およびリスト)表の左欄、書き込みテーブルにエントリを追加したり削除する権限の対応、および実行 iノードにファイル名から変換することができることに許可相当し; つまり、フォルダのコンテンツにアクセスできます。

私はいくつかの実験を行いましたが、結果はすべて私の「世界観」と一致していますが、1つの結論は避けられないようd-w-------です。権限を持つフォルダはまったく役に立たないということです。詳しく説明する:その内容を一覧表示できない、内部に存在することがわかっているファイルを読み取ることができない(名前をiノードに変換できないため)、ファイルを削除または名前変更または追加することはできません。 、およびハードリンクを追加することもできません(おそらく、これは名前とiノード番号を追加することを意味します。つまり、両方を知っていることになります。つまり、両方を知っているため、実行権限の設定を解除する目的に違反しています)。 。そこにあればもちろん、ある一つのこのようなフォルダ内のファイルは、あなたがその内容を削除することはできませんので、あなたは、どちらか、そのフォルダを削除することはできません。

だから...私は2つの質問をしたいと思います:

  1. 私のこの類推は正しいですか、それとも大きな失敗ですか?
  2. 前の回答とは無関係には、そこにある任意の説明に従って権限でフォルダを持つことが適切である状況は?

3
すべての組み合わせが役立つとは限りません。たとえば、英語には単語があります。これらの単語は文字で構成され、すべての組み合わせが有効な単語を構成するわけではありません。例:aoeuidhtns
ctrl-alt-delor 2014

このようにして、たとえばファイルを作成できませんでしたか?あなたは、要求ファイルシステムのスペースおよびiノードに、あなたはあなたのディレクトリテーブルに名前とiノードを作成した後。同じディレクトリに同じ名前で異なるiノードを持つ2つのファイルがあるという問題だけが必要です...
Hastur

@ハスター:私もそう思ったが、mkdir foo ; chmod 200 foo ; touch foo/bar私が得た後touch: cannot touch ‘foo/bar’: Permission denied。これは、foo / barがすでに存在する場合でも発生します。私はbash(Arch Linux)でテストしています。
wmnorth 2014

私のせいで、ソースコードからシステムを書き換えていると思っていました... 同じディレクトリに同じ名前の2つのファイルを置くことはできない ので、作成する可能性を与えることは論理的に禁止されています。
Hastur 2014

はい、それは役に立たないです。iノードの解決には「x」と「r」も必要なので、ディレクトリでは単一の「rw」でも役に立たない。
peterh-モニカを復活させる'08年

回答:


3

あなたの理解はかなり正しいです。良い方法は、それはあなたができることです実行権限を考えて物事を行う(名前だけで自分自身を読ん以外の)ディレクトリ内のファイルまたはディレクトリ名に。それらのほとんどは、名前をiノードに変換することですが、新しい名前の作成と既存の名前の削除も含まれます。

ディレクトリ内のファイルにアクセスできない場合、実際に書き込むことはできないため、実行せずにディレクトリへの書き込み権限を使用しても、ほとんど役に立ちません。


1
  1. 私のこの類推は正しいですか、それとも大きな失敗ですか?

私はそれが正しいと思います、あなたはフォルダに書き込むことができるようにwx許可が必要です。

  1. 前の回答に関係なく、説明されているアクセス許可を持つフォルダが適切である状況はありますか?

フォルダーに情報を書き込むプロセスがあり、別のプロセスがそれを消費する場合がありますが、その場所に格納されている他の情報をライターが読み取らないようにする必要があります。

前述の状況は、自動速度実施ユニットで役立ちます。この部隊は、国家公務員が偽装の可能性を最小限に抑える必要がある検証プロセスを通過する必要があります。一部の自動速度実施ユニットには、システムが違反レジスタを保存する外部SDメモリカードがあります。ただし、検証済みユニットの動作を不正に変更する「マジック」設定ファイルを保存することもできます。したがって、違反レジスタを書き込むプロセスは、sdメモリカードから何かを読み取ることができないようにする必要があります。

これは例です。最初は書き込みのみ、次にwxで動作させる方法を示します。

デバイスをマウントする

root@leon:/media# mount -o umask=527,uid=enforcer,gid=ftp /dev/sdb1 /media/pen/
root@leon:/media# ls /media/pen/ -la
total 44
d-w-r-x--- 10 enforcer ftp  4096 Dec 31  1969 .
drwxr-xr-x  8 root     root 4096 Oct 17 16:14 ..

次に、ユーザーエンフォーサーで新しいファイルを書き込もうとします

enforcer@leon:~$ touch /media/pen/hola
touch: cannot touch ‘/media/pen/hola’: Permission denied

アンマウントしてwxで再マウント

root@leon:/media# umount /dev/sdb1
root@leon:/media# mount -o umask=427,uid=enforcer,gid=ftp /dev/sdb1 /media/pen/
root@leon:/home/jjorge# ls /media/pen/ -la
total 44
d-wxr-x--- 10 enforcer wim  4096 Dec 31  1969 .
drwxr-xr-x  8 root     root 4096 Oct 17 16:14 ..

再試行

enforcer@leon:~$ touch /media/pen/hola
enforcer@leon:~$ ls /media/pen/
ls: cannot open directory /media/pen/: Permission denied
enforcer@leon:~$ cat /media/pen/hola
cat: /media/pen/hola: Permission denied

ftp@leon:/home/jjorge$ ls /media/pen/ -la
total 44
d-wxr-x--- 10 enforcer ftp  4096 Oct 20 10:20 .
drwxr-xr-x  8 root     root 4096 Oct 17 16:14 ..
--wxr-x---  1 enforcer wim     0 Oct 20 10:20 hola

この設定で、今書くことができます

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