chmod は特定のユーザーの権限を変更します。

chmod は特定のユーザーの権限を変更します。

user1とuser2という2人のユーザーがいます。にもファイルがあります/path/to/file。 user1は読み取りおよび書き込み権限を持ち、user2は読み取り権限のみを持っている必要があります。

権限をchmod u=r /path/to/file読み取り専用に変更できることを知っていますが、それを行うと、誰もが権限を変更できますか? user1 でコマンドを実行すると、user1 と user2 のアクセス権も変更されます。ユーザーを指定するオプションが見つかりませんでした。ここでグループを使用する必要がありますか?またはchown?どうすればいいですか?

ファイルでいっぱいのディレクトリ全体に対しても同じことができますか? n個のファイルとm個のサブディレクトリを含むディレクトリがある場合は、/path/to/dir各ファイルとサブディレクトリ内の各ファイルの権限を変更しますか?

答え1

次の回避策を使用できます。

  • ファイルの所有権を変更します。chown user1 /path/to/file
  • 所有者、グループ、およびその他のユーザーの権限を変更します。chmod 644 /path/to/file

これはrw与えるuser1ruser2

ディレクトリの場合、xユーザーにこのディレクトリを変更するオプションを提供するには、次の項目を追加する必要があります。

chmod 755 /path/to/directory

-Rサブディレクトリも変更されるので注意してください。

タスクを自動化するには、次のものを使用できます。このコマンドは、触れたくないファイルの権限を変更する可能性があるため、スタートアップディレクトリに非常に注意してください。

find /path/to/file -type f -exec chmod 644 {} \;

ファイル用

find /path/to/dir -type d -exec chmod 755 {} \; 

ディレクトリ用

答え2

従来のUnix権限は非常におおよそのもので、所有者(ユーザー)、グループ、およびユーザー(より正確にはプロセス)が複数のグループに属することができる他のユーザーのみを区別します。ほとんどの最新のLinuxインストールでは、ユーザーをさらに分離するためにユーザーごとにプライベートグループを作成します(多くの古いUnixシステムにはusersすべてのユーザーにとって重要なグループがあるため、特定のファイルグループを読み取り/書き込みに設定するとみんな彼らと一緒に一日を過ごすことができます)。

所属専用グループを設定しuser1user2グループ権限を使用して必要な項目をいくつか取得できますが、これはまったく完璧ではありません。

最新のLinuxカーネル/ファイルシステム/ツールはアクセス制御リスト(ACL)を処理しますacl(5)。をご覧ください。 ACLを使用すると、「user1オブジェクトに対する正確な権限」など、より細かく制御できますfoo

関連情報