chmod 777
時には、完全にアクセスし、読み書き可能なディレクトリを持つためにこれを行うことができることを知っています。しかし、通常私はもう一つのことを好みますsudo chown {myusername} {directory}
。
明らかに、これはchmod 777
誰にも完全に公開されるディレクトリを残しますが、私の使用sudo chown ...
慣行は実際に比べて私のディレクトリに対する保護を提供しますかchmod 777
?
答え1
chmod 777
「誰でも何でもできる」という意味だ。ほとんどすべて - 時間や権限の変更など、一部のタスクは所有者に予約されています。ただし、誰でもファイルを作成、削除、または上書きできるため、保護はありません。
私はあなたが走っているならchmod 777
、あなたが間違っていることをほとんど保証することができます。ファイルを共有し、互いのファイルを編集するには、リビジョン管理システムを設定し、変更をプッシュして共有します。特定のファイルだけが他の人に使用できるようにするには、ディレクトリを作成して~/pub
そこに自分のファイルを配置します。
答え2
chmod 777 foo
あなたのボックスにアクセスできる人は誰でもファイルにアクセスできますfoo
。
chown user foo
このユーザーにのみファイルへのアクセス権を付与してくださいfoo
。
これら2つの方法を組み合わせると、ボックスにアクセスできる人は誰でもファイルにアクセスできます。
答え3
ほとんどの場合、権限を777に変更するよりもディレクトリの所有権を取得する方が安全です。
基本権限
多くのシステムのデフォルトのumaskは022です。ディレクトリが作成されると、通常は777でumaskを減算して新しいディレクトリの権限を計算します。つまり、ほとんどのシステムでは、デフォルトのディレクトリ権限は755です。つまり、デフォルトでは、ディレクトリの権限所有者だけがそのディレクトリにあるファイルを作成して削除できます。ただし、他のユーザーがディレクトリのファイルに書き込むのを防ぐことはできません。この保護はファイルの権限によって提供されます。ユーザーがディレクトリへの書き込みアクセス権を持っているが、そのディレクトリ内のファイルへのアクセス権がない場合は、単にファイルを削除して置き換えることができることに注意してください。
回答
要約すると、権限を777に変更するのではなく、ディレクトリの所有権を取得すると、他のユーザーがディレクトリ内のファイルを追加、削除、または置き換えることはできませんが、ユーザーがディレクトリ内のファイルを読み取ることを防ぐことはできません。
ディレクトリ権限に関する注意事項
ディレクトリ権限は、ファイル権限に比べて少し奇妙で直感的ではありません。実行可能権限(1
)を使用すると、ファイルのinodeを含むディレクトリ内のファイルのメタデータを取得できます。つまり、ディレクトリに対する実行権限がないと、ファイルパスだけを知っているだけでは、そのディレクトリのファイルを読み取ることができません。読み取り権限(4
)を使用すると、ディレクトリ内のファイルのリストを表示できますが、メタデータは表示できません。書き込み権限(2
)を使用すると、ディレクトリにファイルを作成して削除できます。