web-dev-qa-db-ja.com

ファイルの所有者権限をグループ権限にコピーする

ファイルのユーザー/所有者のアクセス許可をファイルのグループのアクセス許可にコピーするにはどうすればよいですか?

たとえば、アクセス許可が755の場合、それらを775にしてください。

明確化:755-> 775 123-> 113 abc-> aac

ディレクトリ内のすべてのファイルに対してこれを再帰的に実行できる場合のボーナス。

(つまり、すべてのファイルについて、所有者のアクセス許可がグループのアクセス許可にコピーされます。ファイルごとに異なるアクセス許可がある場合があります。)

26
AnnanFay

g=uを使用して、グループの権限をユーザーの権限と同じにすることができます

ls -l file
-rw------- 1 user users 0 Jun 27 13:47 file

chmod g=u file

ls -l file
-rw-rw---- 1 user users 0 Jun 27 13:47 file

そして再帰的に

chmod -R g=u *

または一部のファイル仕様

find /patch/to/change/perms -name '*.txt' -exec chmod g=u {} +

chmod manpage はあなたの友達です。

55
user9517

人々が言っ​​たように、ファイルのアクセス許可を変更することは危険な場合があります。大きな力には大きな責任が伴います。これが私の答えです。

ファイル/ usr/bin/otog:

#!/bin/sh

f=$1
p=`stat -c "%a" $f`
chmod ${p:0:1}${p:0:1}${p:2:1} $f

使用例:

find . -exec otog {} \;

数値の権限を取得するには stat を使用し、権限を変更するには chmod を使用します。

PS:これを行うより良い方法については、Iainの回答をご覧ください!

2
AnnanFay

まず第一に、あなたはあなたの権利をリストする必要があります。

ls -l /your_directory/
-rwxr-xr-x  1   57 Jul  3 10:13  file1
-rwxr-xr-x  1   57 Jul  3 10:13  file2

結果を数値の許可に変換するには、次を使用します。R= 4、W = 2、X = 1。

したがって、この2つのファイルの権限は755です。

権利を取得したら、chmodコマンドを使用して、権利を希望どおりに変更する必要があります。

chmod 775 /your_directory/

このコマンドは、ディレクトリの権限のみを変更し、内部のファイルは変更しません。

内部も変更したい場合は、次のコマンドを実行します。

chmod 775 /your_directory/ -fR

-fRは再帰性を強制します。 (適用する権利とディレクトリ内のファイルが確実である場合にのみ使用してください。)

File1の権限のみを変更する場合は、次のようにします。

chmod 775 /your_directory/file1

そして、その方法はクッキーが崩れる!

/!\注意してください。このコマンドを誤用すると、すべてのOS権限が破壊され、誤動作する可能性があります。 /!\

ps:look there chmodに関する詳細情報を確認します。

これがお役に立てば幸いです。

1