chmod + wがother(o)に書き込み許可を与えないのはなぜですか


17

私は実行するとchmod +w filename、それはへの書き込み権限を与えるものではありませんother、それだけに書き込み権限を与えるusergroup

このコマンドを実行した後

chmod +w testfile.txt

ランニングls -l testfile.txtプリント

-rw-rw-r-- 1 ravi ravi 20 Mar 10 18:09 testfile.txt

しかし、の場合+r+xそれは適切に動作します。

使いたくありませんchmod ugo+w filename



1
使用したくない場合はugo、を使用しますa
ムル

はい、しかし、なぜ+w働かないのか知りたいだけです。
ラヴィセヴタ

それが私が2つのコメントを残した理由です。
ムル

@muru。askubuntu回答の中で、「この動作はPOSIXによって義務付けられているため、バグではない」と言及していると主張します。POSIX Application Usageテキストは非規範的であり、したがってPOSIXによって義務付けられていないことに注意してください。
fpmurphy

回答:


25

あなたの特定の状況

あなたの特定の状況では、我々はあなたの現在があることを推測することができumaskている002(これは一般的なデフォルト値である)、これはあなたの驚きを説明しています。

umask値が002(すべての数字が8進数)である特定の状況。

  • +r手段をugo+rため002 & 444ている000すべてのビットを設定することができますどの、
  • +x手段をugo+xため002 & 111ている000すべてのビットを設定することができますどの、
  • が、+wというのは、「o」ビットが設定されないようにするug+wため002 & 222です002

その他の例

  • umask 022 +wは意味しu+wます。
  • umask 007 +rwxは意味しug+rwxます。
  • umask 077 +rwxは意味しu+rwxます。

あなたの期待に合ったもの

に変更umaskすると000

umask 000

端末で

chmod +w file

許可をugo + wに設定します。

サイドノート

ilkkachuが示唆しているumask 000ように、だれもがすべてのファイルを読み書きできるという意味ではないことに注意してください。

しかし、マシン上の任意のユーザーアカウント(サーバーサービスofcを実行するプログラムが含まれる場合がumask 000あります)に何らかの種類のアクセス権を持つすべてのユーザーが、そのマスクをアクティブにして作成したすべてのファイルを読み書きできることを意味します(含まれるチェーンがルートまでのディレクトリでも許可されます)。


3
umaskの(OFCサーバーサービスを実行中のプログラムを含むことができる)あなたのマシン上のユーザアカウントへのアクセスのいくつかの種類を持っている000の手段の誰もが明確であることを、アクティブマスクと変わらないとあなたが作るすべてのファイルを読み書きすることができます
StarWeaver

3
「+ rはugo = rを意味します」 -いいえ、そうではありませんr。umaskで許可されているパーティにビットを設定することを意味します。これは、GNU chmodやFreeBSD chmodなどのマニュアルや標準に明確に記載されています。同じです+x。その+w特定のumaskの場合、あなたは正しいです。
-ilkkachu

3
また、umaskを設定し0 ても、誰もがすべてのファイルを読み書きできるわけではありません。多くのアプリケーションはmode 0600で特にプライベートなファイルを作成するため、グループや他のユーザーはumaskに関係なくアクセスできません。
-ilkkachu

@ilkkachu + rはugo = rを意味し、これは質問で説明されている状況に関連していました。それは一般的ではありませんでした。
Prvt_Yadav

2
@Debian_yadav、それがまさにポイントです。これはサイドノートではなく、振る舞いのumask重要な部分です+r。また、さえのumaskを想定し002chmod +r意味するものではありませんchmod ugo=r、それは意味chmod ugo+r
ilkkachu

23

と:

chmod +<perms>

パーマはユーザーグループその他に追加されますが、umaskは引き続き適用されます。新しく作成されたファイルよりも多くの許可がファイルに付与されないようにします。

umaskに関係なく、ユーザーグループその他に権限を追加する場合は、次を使用します。

chmod a+<perms>

の略です

chmod ugo+<perms>

+ xとa + xが等しくないことを意味します。
Prvt_Yadav

1
リンクが好きです:man7.org/linux/man-pages/man1/chmod.1.html „これらのどれも与えられない場合、効果は(a)が与えられたようになりますが、umaskに設定されたビット影響はありません「。
tehnicaorg

0

あなたは、あなたのような、に権限を与えている誰に指定する必要がありother、使用してchmod o+w testfile.txt


1
はい、しかし、私は+wすべて(ユーザー、グループ、その他)に許可を与えると思います。
ラヴィセヴタ

すべてのユーザーに許可を与えるには、を使用しますchmod a+w testfile.txtuユーザー、gグループ、oその他、およびaすべてに使用します。
Jaken551

場合chmod a+w filenamechmod +w filenameおよびchmod ugo+w filename相互に代替され、その後、なぜだけ使用しない+w
ラヴィSevta
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.