ディレクトリ内のすべてのエントリをデフォルトのファイル所有権と権限にどのように変更しますか?

ディレクトリ内のすべてのエントリをデフォルトのファイル所有権と権限にどのように変更しますか?

別のドライブのコンテンツを自分のホームディレクトリに移動しましたが、権限が正しくありません。まず、次のように入力して所有権を変更しました。

  ~$ sudo chown -R USERME /home/USERHOME/

今は効果があると思います。

しかし、今はすべてのファイルとサブディレクトリをデフォルトの権限に変更し、ファイルは読み取り+書き込み、ディレクトリはr + w + xに変更したいと思います。この問題を処理する再帰的な方法が見つかりませんでした。私は以下を実行しました:

  ~$ sudo chmod 755 -R /home/USERHOME/

すべてが私のために働くようにしてください。しかし、ファイルは実行可能ファイルとして表示されますが、これは私が望むものではありません。より多くのサブディレクトリとファイルがあるので、単純な再帰的な解決策を探しています。

デフォルトでは、chmodを介してデフォルトのumaskパラメータをフォルダ全体に再適用する再帰的な方法を探しているようです。


修正する:

@SkyDanのおかげで解決策を投稿しました。「ファイルのchmodを変更しますが、ディレクトリは変更しないでください」

ベストアンサー1

chmodできます。見つける必要はありません。

シンボルパターンと大文字を使用してくださいX

chmod -R u=rwX,og=rX directory

重複を避け、編集を簡単にするには、代わりを使用してください。性格中心ではなく行動中心にすることができます。

chmod -R a=rX,u+w directory

大文字のXはchmodにxをディレクトリに適用するように指示します(すでにディレクトリがある場合はそうする場合go+X)。

手動抽出:

シンボルパターンの形式は[ugoa...][[+-=][perms...]...]です。ここで perms は、セット rwxXst のゼロ文字以上、またはセット rwxXst の単一文字です。 Ge.複数のシンボルパターンをカンマで区切って指定できます。

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

+ 演算子は、選択したファイルモードビットを各ファイルの既存のファイルモードビットに追加します。 - 対応するビットを削除し、=を追加し、記載されていないビットを削除します。そして、設定されたユーザーとグループIDのビットは影響を受けません。

rwxXst文字は、影響を受けるユーザーのファイルモードビットを選択します。読み取り(r)、書き込み(w)、実行(またはディレクトリ検索)(x)、ファイルがディレクトリの場合、またはすでに一部のファイルに対する実行権限を持っている場合にのみ、実行/ユーザー(X)の検索、実行時のユーザーまたはグループIDの設定、消去フラグまたは固定ビット(t)制限。次の1つ以上の文字の代わりにugo文字の1つを指定できます。ファイルを所有するユーザーに許可(u)、ファイルグループに属する他のユーザーに許可(g)、誰にも許可2つのカテゴリのユーザーに対する上記の権限(o)のいずれか。

おすすめ記事