
所有者/ユーザーにディレクトリへの書き込み権限がないが、ディレクトリの下のファイルへの書き込み権限があるとします。ここでファイルを編集できますか?それでは、ファイルを編集できない状況がありますか?
答え1
はい、このファイルは編集できます。
ディレクトリの場合、ターゲット(所有者/グループ/その他)ディレクトリの実行権限が削除された場合、ファイルは編集できません。
編集する:ディレクトリの権限を変更して所有者がファイルを編集できないようにするには(同じユーザーがディレクトリとファイルを所有していると仮定)、ディレクトリに対する所有者の実行権限を削除するだけです。たとえば、所有者の権限をに設定できrw-
ます6
。
答え2
他の回答で述べたように、はい、ファイルを編集/変更できます。そして、残響の危険があるのでこの点を指摘して申し上げます。
...彼は[ディレクトリ]のファイルに対する[書き込み権限]を持っています。
そして半分明らかな説明をして、単語の伝統的な意味でファイルを編集するには、ユーザーは次のことも行う必要があります。読む許可するファイルの現在の内容を取得するための読み取り権限がないと、ユーザーは既存のデータを上書きしたり、最後にデータを追加(追加)したりできますが、スペルエラーの修正やテキスト挿入などの便利な編集はできません。
上記のシナリオ(上書きまたは追加)を含むさまざまなシナリオについて議論していることを強調するために、「修正」と言います。
- ファイルデータを外部にコピー(たとえば、別のディレクトリのファイルに)し、何らかの方法で操作してから再コピー(ファイルを上書き)
- 伝統を使うテキストエディタ、例えば、
vi
(または16進エディタ、該当する場合)、
特にvi
、この場合ファイルの編集には問題はありません。私は他の多くの編集者とそれをテストしませんでした。私はそれらのほとんど(例えば、、、emacs
... pico
)も大丈夫だと思います。
しかし、
sed-i sed_command ファイル名
sed -i
動作するため動作しません
- 同じディレクトリに一時ファイルを作成し、
- 指定したファイルを実行して、元のファイルのテキストを新しい(一時)ファイルにコピーします。
sed_command(s)
この過程で、 - 元のファイルを削除した後
- 一時ファイルの名前を元の名前に変更し、元の
chmod
ファイルの元のパターンと一致させます。
ディレクトリが書き込み禁止の場合、これらの操作は失敗します。 (私は他の編集者も同じように振る舞うと思います/疑いますが、例を引用することはできません。)
したがって、sed -i
このディレクトリへの書き込み権限が必要です。もちろん、ファイルに対する読み取り権限も必要です。しかし、二重反転で終わる驚くべき事実は次のとおりです。
ファイルへの書き込みアクセスは必要ありません。。結局のところ、ファイルを削除するためにファイルへの書き込み権限は必要ありません。ディレクトリへの書き込み権限だけが必要です。
答え3
ディレクトリへの書き込み権限は必要ありませんが、x
実行可能ビットを設定する必要があります。
したがって、foo
ファイルがあるディレクトリを検討してくださいbar
。権限が次に設定されている場合
drwx--x--x foo
-rw-rw-rw- foo/bar
たとえば、x
このビットが提供される限り、誰でも書き込みアクセス権を持つことができます。r
ディレクトリへの読み取りアクセスも必要ありません。