chmod -uは何をしますか?


19

偶然私は走りましたchmod -u filename、そして、それは私が持っていたすべての許可を取り除いたfilename

マニュアルページは-uオプションを参照していません。実験を行った結果、すべての権限が削除されるわけではなく、読み取りアクセスと実行アクセスのみが削除され、書き込みアクセスはそのままであると結論付けることができました。

それで、これは正確に何をしますか?


上記の私の結論は間違っています。今では、所有者が持っている権限をすべてのカテゴリから削除することだと思います。


私は行動がに似ていると思うa=uだけで、それはある、-のではなく、=そしてa、例えば、ちょうどそれがでできるようにドロップすることができますa+x


6
+1 manページにない基本的な質問をした場合。

1
「シンボリックモードの形式は、です [ugoa...][[-+=][perms...]...]。ここでperms 、セットからの0個以上の文字rwxXstまたはugoセットからの1文字です」(GNU chmod manページ); POSIXはかなりあいまいですが、同じ効果のために「permcopy」プロダクションを定義しています。
マイケルホーマー

1
@MichaelHomerそれが何をするかは言わない。
y_wc

1
@y_wc "これらの1つ以上の文字の代わりに、ugoの文字の1つを正確に指定できます。ファイルを所有するユーザーにu許可される許可()、ファイルのグループのメンバーである他のユーザーに許可される許可(g) 、および前述の2つのカテゴリのいずれにも属さないユーザーに付与された権限(o)。」
マイケルホーマー

1
はい、読みました。私はそれが何をするのか言及していないようです。これらの文字のいずれかを指定できると書かれています。たとえばu、指定すると、ファイルを所有するユーザーに付与されるアクセス許可を指定します。しかし、それが何をするのかは述べていません。偶数とはどういう意味ですか?
y_wc

回答:


19

これはオプションではなく、権限を指定する標準的な(ただし一般的ではない)方法です。これは、(除去することを意味する-)ファイルの所有者(に関連付けられた権限をu全てのユーザ(NO先行ため)ugまたはo)。これマニュアルページに記載されています。

GNU chmodのマニュアルページには、これが次のように記載されています。

シンボリックモードの形式は、です[ugoa...][[-+=][perms...]...]。ここで、permsはセットからの0個以上の文字rwxXst、またはセットからの1文字ですugo

以降

これらの1つ以上の文字の代わりに、ugoの文字の1つだけを指定できます。ファイルを所有するユーザーにu付与される許可()、ファイルのグループのメンバーである他のユーザーに許可される許可(g)、上記の2つのカテゴリのいずれにも属さないユーザーに付与された権限(o

したがって、すべてのユーザーの所有者()に対して現在有効になっているすべてのアクセス許可-uを削除(-)することを意味しuます(a-u現在のumaskを尊重することを除いて、と同等)。これchmod +uはあまり有用ではないことが多いですが、たとえば、再帰的に操作するときに所有者から他のユーザーにアクセス許可をコピーすることも類似しています。


もPOSIXに文書化が、より漠然と定義される:パーミッション仕様が広くあるwho[+-=]perms(または番号)、およびそれらの効果をさらに指定されています。

permcopyシンボルugおよびoそれぞれのユーザ、グループ、およびファイルモードビットの他の部分に関連付けられている現在の許可を表すものとします。このセクションの残りの部分のために、perm非端末を意味permし、permcopy文法に。

その後

-

... whoが指定されていない場合、所有者、グループ、および呼び出しプロセスのファイルモード作成マスク内の対応するビットを持つものを除き、他のアクセス許可のpermで表されるファイルモードビットはクリアされます。


ありがとう、マイケル。POSIXドキュメントは説得力があります。しかし、GNU ...私のこのコメントをご覧ください。「だから」が前から続いた後にどうなるかわかりません。私が得たpermsことができますu。はい、u許可または所有者を指定します。しかし、すべてのユーザーから-u所有者(モジュラスumask)の許可を削除する方法は?
y_wc

-これは常に行われるためです。指定されたクラスのユーザーから指定された権限を削除します。-uは、-wまたは(に近い)とまったく同じugo-uです。
マイケルホーマー

私はドキュメントについて議論するためにここに来たのではなく、何が起こっているのかを理解しただけで満足していると言いましたが、ドキュメントをクリックしただけです。ありがとう。
y_wc

chmodドキュメントに関する別の質問でお困りですか?これが別の質問に値すると思われる場合はお知らせください。「and =で追加され、言及されていないビットが削除されますが、ディレクトリの言及されていないユーザーおよびグループIDビットは影響を受けません。」 chmod u=rx directory所有者の許可はのままにしrwxます。しかし、それは何が起こるかではなく、代わりにそれらが期待されるようになりr-xます。私は何かを誤解していますか?
y_wc

s言及しない場合、setuid / setgid()ビットはそのままになり、指定しなかったものはすべて削除されます。
マイケル・ホーマー

2

答えは/unix//a/429424/255251に少し似ています

chmod -u file_name

すべての許可を削除するわけではありませんが、umask価値を考慮します。

umask
0022
ls -l file
-rwxrwxrwx 1 user user 4 Feb 25 15:17 file
chmod -u file
chmod: file: new permissions are ----w--w-, not ---------
ls -l file
-----w--w- 1 user user 4 Feb 25 15:17 file

次に、umask値を変更します

umask 777
chmod 777 file
chmod -u file
chmod: file: new permissions are rwxrwxrwx, not ---------
ls -l file
-rwxrwxrwx 1 user user 4 Feb 25 15:17 file

2
有益で、知っていて非常に便利ですが、これは非常に関連しているものの、実際には問題ではないと思います。ありがとう。
y_wc
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.