「chmod u + x」と「chmod + x」


112

chmod u+xとjust の違いは何chmod +xですか?u+xスクリプトを実行可能にするために使用するように言っているチュートリアルをたくさん見ました。ただし、を省略uしても効果はないようです。

回答:


149

のマニュアルページでchmod説明しています。

  • uはユーザーを表します。
  • gはグループを表します。
  • oは他の略です。
  • aはすべてを表します。

つまりchmod u+x somefile、そのファイルの実行許可の所有者のみが付与されますchmod +x somefileが、の場合と同じchmod a+x somefileです。

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

シンボリックモードの形式は [ugoa...][[+-=][rwxXstugo...]...][,...]です。複数のシンボリック操作をコンマで区切って指定できます。

「ugoa」という文字の組み合わせは、ファイルへのアクセスを変更するユーザーを制御します。ファイルを所有するユーザー(u)、ファイルのグループ内の他のユーザー(g)、ファイルのグループ以外のユーザー(o)、またはすべてのユーザー(a)。これらのいずれも指定されていない場合、「a」が指定された場合と同じ効果がありますが、umaskに設定されているビットは影響を受けません。


少し質問があります
。a

1は、実行許可を表す8進数表記であるためです。111は、ユーザー、グループなどの実行可能ファイルを意味します。
オクタヴィアンダミアン

素晴らしいクリーンな答え
m4heshd

umask効果は重要です。これとはchmod +x file異なりますchmod a+x file-詳細については、Ravexinaの回答を参照してください。
シンナム

19

実行+xするだけで、[u] ser、[g] roup、[o] thersのすべてのフラグに適用されます。

詳細を入力man chmodします。


最初にマニュアルを確認しましたが、説明をスキップしてオプションにジャンプしたため、表示されませんでした。私は今でもそれらを見ます:-)
ネイサンシュヴェルマン

14

必要条件

まず、これらの質問と以下のリンクから回答を読むことをお勧めします。

知る必要があるすべての必要な部分を理解するのに役立ちます。


短縮版

  • chmod +x等しいchmod ugo+xumask値に基づく)
  • chmod a+x等しいchmod ugo+xumask値を考慮せずに)

説明

その結果、chmod a+xすべての人(所有者、グループ、その他)の実行可能ビットを簡単に設定できますか?

ただしchmod +x、少し注意が必要umaskですが、値を使用し、その値に基づいてx許可されているすべてのユーザーに追加します。

だからumask私の環境の場合0002

$ umask
0002
$ umask -S
u=rwx,g=rwx,o=rx

xユーザー(所有者)、グループ、その他に追加します。この状況(ほとんどのシステムのデフォルトの状況)ではchmod ugo+x、とまったく同じか同じchmod a+xか、またはより冗長な形式です。

chmod u+x,g+x,o+x

の接続chmod u+x,g+x,o+xと出力を見つけられますumask -Sか?

次にumask、現在のシェルのをに変更しましょう0003

$ umask 0003
$ umask
0003
$ umask -S
u=rwx,g=rwx,o=r

ご覧のとおり、所有者とグループのみが実行可能ビットを取得し、他のビットは取得しません。これはchmod +xchmod u+x,g+xまたはに等しいことを意味しchmod ug+xます。


質問時間!

chmod +wに設定umaskした後にファイルを実行するとどうなり0003ますか?

前と同じ、それだけに影響userし、group3にも書き込み許可(2)を除去するので、ファイルの。


ボーナス

次のようなものを削除する場合と同じ効果がありますchmod -w

$ mkdir test
$ stat -c %A test
drwxrwxr-x
$ umask
0002
$ chmod +w test
$ stat -c %A test
drwxrwxr-x
$ chmod a+w test
$ stat -c %A test
drwxrwxrwx
$ chmod -w test
chmod: test/: new permissions are r-xr-xrwx, not r-xr-xr-x
$ stat -c %A test
dr-xr-xrwx

7

chmod u+x このファイルはユーザーに対して実行可能になります(ユーザーに対してのみ追加されますが、グループ所有者または「その他」によって既に実行可能である場合があります)。

chmod +xまたはchmod a+x(「すべてプラス実行可能ビット」)ファイルを全員が実行可能にします。

ディレクトリに対してこれを行うと、代わりにディレクトリが検索可能になります。つまり、+ x許可を持っているディレクトリの内容をリストできます。


申し訳ありませんが、このことも私にはうまくいきませんでした。私はsudoで試してみましたが、コンピューターで動作しませんでした。askubuntu.com/questions/178231/how-to-set-permission-in-ubuntu
アニルダグプタ

@AnkitGuptaあなたが何を言っているのかわかりません。私のコメントは、別のQ&Aの問題を修正することを意図したものではありません。代わりに、回答の説明を求めてみてください。質問を編集して、試したことを伝えます。出力を表示します。
ベラク

1
  • chmod u+x fileは、ファイルの所有者に実行可能ビットを追加し、無視することを意味しますumask(あなたのmodが設定されます、質問なし)

  • chmod +x fileを考慮しながら、所有者、グループなどに実行可能ビットを追加することを意味しますumask(最初にチェックしumaskてからmodを適用し、umaskの値に基づいて異なる効果がある可能性があります)。


2つのファイルを作成しましょう。

$ touch file1 file2
$ ls -l file1 file2
-rw-rw-rw- 1 ravexina ravexina 0 Aug  5 01:45 file1
-rw-rw-rw- 1 ravexina ravexina 0 Aug  5 01:45 file2

ここでumask、実行可能ビットを削除するために「111」に設定しますumask 111

$ chmod u+x file1
$ chmod  +x file2
$ ls -l file1 file2
-rwxrw-rw- 1 ravexina ravexina 0 Aug  5 01:47 file1
-rw-rw-rw- 1 ravexina ravexina 0 Aug  5 01:47 file2

chmod無視されたumaskを見るとわかるように、file1はその所有者に対して実行可能ビットを取得しましたが、2番目のものはumaskの値を考慮しているため、何もしませんでした。

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