誤ってフォルダーから読み取り権限を削除してしまいました。どうすれば元に戻せますか?

誤ってフォルダーから読み取り権限を削除してしまいました。どうすれば元に戻せますか?

特定のフォルダーとファイル、およびすべての子孫に書き込み権限を持たせたいと考えました。

すべてのファイルとフォルダに次の権限を再帰的に付与できるようにしたい: 777

そこで私は試してみました:

chmod -r 777 ~/Folder/app/

すると次のような結果になりました:

chmod: 777: No such file or directory

その後、 にアクセスして、権限の確認を~/Folder/app/試みました。ls -la

次のような結果になります:

.: Permission Denied

私はその後、次のことを実行しました。

sudo ls -la

そして、特別なフォルダーには 777 の権限があることがわかりましたが、他のフォルダーには権限がありません。

フォルダを削除せずにこれを元に戻すにはどうすればよいですか~/Folder/app/?

つまり: そのフォルダー内で sudo を入力せずに ls を再び機能させるにはどうしたらよいでしょうか? また、-R の代わりに -r を使用することで生じた混乱をどうにかして修正できますか?

答え1

コメントで述べたように、再帰的に動作させるには--recursive、 または-R(大文字の R)を指定する必要があります。chmod

-r(小文字のR)は読み取り権限を削除する(少なくとも私の理解では)。この操作は、パラメータは です777

したがって、呼び出しにより、 という名前のファイルから読み取り権限が削除されます777。そのファイルは存在しないため、エラーメッセージ

chmod: 777: No such file or directory

chmod中止したのか、それとも中止しようとしたのかはわかりません読み取り権限を削除するからパラメータ~/Folder/app/
後者の場合、取り除くフォルダから読み取り権限を取得し、反対そもそもあなたが望んでいたもの:)

これを解決するには、正しい構文:

chmod --recursive 777 ~/Folder/app/

これにより、読み取り権限が再び追加されます(そして、そのフォルダのすべての子に777モードが適用されます)。次の点に注意してください。デニス・ウィリアムソンのコメント、モードを 777 に設定することはほとんどありません。

関連情報