644(-rw-r--r--
)のファイルがあり、-rw-rw-r--
実行後に664()に変更したかった:
sudo chmod -664 my_file
ファイル許可は000(----------
)に設定されました。
000以外のアクセス許可に変更しようとしても機能していないようです。ここで何が欠けていますか?
644(-rw-r--r--
)のファイルがあり、-rw-rw-r--
実行後に664()に変更したかった:
sudo chmod -664 my_file
ファイル許可は000(----------
)に設定されました。
000以外のアクセス許可に変更しようとしても機能していないようです。ここで何が欠けていますか?
回答:
を使用していますが-664
、664
代わりに使用してください。そして、決して使用しないでsudo
、あなたがする必要がいけないとき。それがあなたのファイルなら、あなたは必要ありませんsudo
:
chmod 644 my_file
モードの前で実行するchmod
と、-
そのモードは削除されます。man chmod
(強調鉱山)を参照してください:
演算子+は、選択したファイルモードビットを各ファイルの既存のファイルモードビットに追加します。-それらを削除します。および=を指定すると、それらが追加され、言及されていないビットが削除されますが、ディレクトリの言及されていないユーザーおよびグループIDビットは影響を受けません。
番号は次のとおりです。
そのため、 777
1 + 2 + 4 = 7であるため、パーミッションの 3つすべてを実行する権利をすべてのユーザーがことを意味ししたがって、パーミッションを7に設定すると、読み取り、書き込み、実行が許可されます。
モードが777
次のファイルで始まる場合:
$ ls -l my_file
-rwxrwxrwx 1 terdon terdon 0 May 28 13:45 my_file
そして今実行chmod -644
すると、ビットを削除し、644
モードが133
次のファイルになります:
$ chmod -644 my_file; ls -l my_file
---x-wx-wx 1 terdon terdon 0 May 28 13:45 my_file
これは、所有者のアクセス許可から6(読み取り(4)+書き込み(2))を削除し、1(実行)セットのみを残し、グループおよびその他のアクセス許可から4(読み取り)を削除したためです。その結果、所有者には実行(1)権限のみが、残りには書き込みと実行(4の設定を解除し、1と3を残す)権限のみを持つファイルが作成されます。
ファイルには新しいファイルに対するデフォルトのパーミッションが設定されていたため644
、実行したときchmod -644 my_file
に、設定されたすべてのパーミッションビットを削除し、誰に対してもパーミッションのないファイルを取得しました。
$ ls -l my_file
-rw-r--r-- 1 terdon terdon 0 May 28 13:45 my_file
$ chmod -644 my_file
$ ls -l my_file
---------- 1 terdon terdon 0 May 28 13:45 my_file
-
644の前にあるのはなぜですか?試してくださいsudo chmod 644 my_file
。-644
権利が削除されます。