[linux] owner→group権限コピー

このQ&Aのポイント
  • Linuxでオーナーのパーミッションをグループのパーミッションにコピーする方法を探しています。
  • 特定のディレクトリやファイルのオーナーパーミッションを対応するグループパーミッションに変更する処理を再帰的に実行したいです。
  • chmodコマンドだけではなく、ファイルごとに異なるオーナーパーミッションが適用された複数のファイルに対して一括で処理したいです。
回答を見る
  • ベストアンサー

[linux] owner→group権限コピー

ある一つのディレクトリ/ファイルに付加しているオーナーのパーミッションを、そっくりそのままグループのパーミッションに置き換える方法を探しています。 例として、 -rwxr--r-- 1 root users 0 2011-01-10 21:51 test というファイルがあった際に、 -rwxrwxr-- 1 root users 0 2011-01-10 21:51 test と、変更してくれる処理です。 ※単に、「chmod 774 test」とすればいいということではありません。 それぞれ違うオーナーのパーミッションが付加されたファイルが100個あるとすると、 ファイルごとのオーナーパーミッションをファイルごとのグループパーミッションに適用させるような処理を、再帰的に行いたいという目的です。 ご教授の程よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wr5
  • ベストアンサー率53% (2177/4070)
回答No.1

シェルスクリプト…ですかねぇ。 シェル変数FILEに入っているとしたら… chmod `stat -c%a ${FILE}|sed -e 's/\([0-7]\)[0-7]\([0-7]\)/\1\1\2/'` ${FILE} って感じになりますか…。 カレントディレクトリのファイルを…と言うことならば、 for FILE in `ls`; do chmod `stat -c%a ${FILE}|sed -e 's/\([0-7]\)[0-7]\([0-7]\)/\1\1\2/'` ${FILE}; done でしょうか…。 # ドットファイルとか対象外になってますが。

null_null
質問者

お礼

早速のご回答有難うございます。 とても参考になりました。自分の要求がほぼ満たされていてとても参考になりました。

その他の回答 (1)

  • SaKaKashi
  • ベストアンサー率24% (755/3136)
回答No.2

find . -user オーナー -exec chmod g+rwx {} \; をオーナー単位に実行する。

null_null
質問者

お礼

ご回答有難うございます。 上記ですと、全てのgroupパーミッションがフルパーミッションになってしまうかと思います。 再帰的検索は参考になりました。

関連するQ&A

  • Linuxでのグループごとのディレクトリの権限について

    お世話になります。 Linuxで以下のようなことをしたいのですが、ディレクトリごとにグループの権限を設定するコマンドが分かりません。 説明が長いですが、よろしくお願いします。 やりたいこと 【必須】 ・group1とgroup2というグループがある。 ・user01とuser11はgroup1に所属し、user2はgroup2に所属する。 ・/test/folder1/と/test/folder2/がある。 ・folder1の中身はrootユーザとgroup1に所属する2人しか参照・更新・実行できない。 ・folder2の中身はrootユーザとgroup2に所属する1人しか参照・更新・実行できない。 ・今後folder1に作成される全てのファイルはroot,user01,user11しか参照・更新・実行できない。  (ファイルごとに権限を設定はしない。) ・rootユーザがグループ、ユーザの管理および/test/直下のフォルダの管理を行う。  root以外のユーザはグループ・ユーザの作成などはできない。  (root以外のユーザができることは/test/自分が所属しているグループが見れるディレクトリ 内の   ファイルの参照・更新・実行のみ) 【できれば】 ・rootユーザが/test/を見るとfolder1とfolder2がある。  user01,user11が/test/を見るとfolder1だけある。  (できない場合は、folder2にアクセスできないようにする) 【今自分が理解していること】 (1)グループの作成方法  #groupadd group1  #tail -1 /etc/group  #group1:x:500:   (2)ユーザの作成方法  # useradd -u 1001 -g group1 user01   (3)権限のつけかた  #chmod g+r /test/folder1/  (これはrootがやる場合、グループの指定ができるのかがわからない)

  • Linux上でファイル・ディレクトリのパーミッションを強制的に変える

    Linux上でファイル・ディレクトリのパーミッションを強制的に変える Linuxでファイルサーバを立てています. まず,やりたいことは3つあります. 1.特定のユーザに対してファイルのパーミッションを変えるコマンド(chmod)を使用不可能にしたいのですがどうしたらよいのでしょうか? 2.ファイル(ディレクトリ)のパーミッションを強制的にrwxr_xr_xにしたいのですが,可能でしょうか?つまり,指定したパーミッション以外のファイル(ディレクトリ)をコピーしたといしても,そのファイルのパーミッションはrwxr_xr_xに強制的に変わるということです. 3.特定のユーザでディレクトリの移動を/homeより上の階層に動かしたくないのですがどうしたらよいのでしょうか?つまり自分と他のユーザのディレクトリは見に行けるがルート以下のシステム関連には移動してほしくないということです. よろしくおねがいします.

  • linuxのオーナーとパーミッションについて

    linuxのオーナーとパーミッションについて 下記の3ユーザーがあるとします。 user1:groupA user2:groupA user3:groupB root:root 下記のファイルがあるとします。 dir_1/ | +-dir_11/ |_| |_+-file_111 | +-fil1_12 以下の要件を満たすオーナーとパーミッションは可能でしょうか <要件> ■dir_1  root以外は名前の変更、削除はできない。  この下にuser1、user2はファイルやディレクトリを作成、変更、削除できる。 ■dir_11  user1、user2はこのディレクトリを削除、変更可能  この下にuser1、user2はファイルやディレクトリを作成、変更、削除できる。  user3はこのディレクトリの下は読み込みしかできない。  user3はこのディレクトリの下にファイルやディレクトリを作れない。 ■file_111  user1、user2はこのファイルを変更、削除できる。  user3はこのファイルを読み込みしかできない。 ■fil1_12  user1、user2はこのファイルを変更、削除できる。  user3はこのファイルを読み込みしかできない。 <設定内容> ■dir_11,file_111,fil1_12 オーナー、user1:groupA 権限、rw-rw-r-- ■dir_1 オーナー、????:???? 権限、????????? dir_1の設定がわかりません。

  • linux権限について

    CentOS5系を使用しています。 あるディレクトリ(下記のような権限を持つディレクトリ) の配下でのみrootと同様の権限を持つユーザを作成したいと思っています。 drwxr-xr-x 15 root root ディレクトリ名⇒Hoge グループの権限はrwxにしても良いと考えていますが、 useraddで新規ユーザを作成して usermod -Gでrootグループにユーザを追加してしまうと そのユーザは他のディレクトリでもrootと同様の権限を持てることとなってしまいます。 あくまでHogeディレクトリ配下でのみrootユーザと同様の権限を持たせたいと思っています。 どなたか知恵をお貸しください。

  • cpコマンドとオーナー・グループについて

    cpコマンドについて質問です。 通cpコマンドで-pオプションを指定すると、オーナー・グループ パーミッション・タイムスタンプが保持されるはずですが、 オーナー・グループがcpコマンド実行オーナーに変更されて しまいます。 オーナー:AAA グループ:BBBというファイルtest.txtという ファイルを オーナー:CCC グループ:DDDというユーザーで下記コマンドを 実行すると、 cp -p test.txt test.txt.bkup test.txt.bkupがオーナー:CCC グループ:DDDになってしまいます。 なぜこのようなことになるのか、オーナーグループを保持するには どうすればいいのかご存知でしたら教えてください。 よろしくお願いします。

  • tarとオーナー・グループについて

    tarコマンドで解凍するファイルについてです。 OSはFedora5です。 この形式の圧縮ファイルをtarコマンドで解凍した後、解凍されてできたディレクトリ、それ以下のファイルのオーナーやグループは自動で設定されるのでしょうか? rootで解凍した場合でも、解凍されてできたディレクトリやファイルのオーナーやグループが、ランダムな数字?や「game」などと自分のマシンには存在しないユーザ又はグループ名になってしまします。 いちいち直すのは面倒ですし、このようになる原因が分からないと気持ち悪い気がします。これは何かの仕様なのでしょうか?

  • linux(fedora)root権限の設定

    お世話になります。 fedoraを使用している際、 rootで読み取れないフォルダができているのに気付きました。 システムファイル等ではなく、一般のファイルです。 どこでできたかわかりませんが、ソフトが自動生成したもののようです。 パーミッションは -wxr----tで、 rootで、コンソールから chmod -t <ディレクトリ名>や chmod -R 755 <ディレクトリ名> しても、許可されていない操作です。 権限がありません、等でどうにもなりません。 -wxですと、読み取り不可かと思いますが、 rootでも、強制的にディレクトリのパーミッションを 変更することはできないのでしょうか。 windowsでは所有権をリセットして・・・という手がありますが linuxではそのようなものはないでしょうか。 よろしくお願いします。

  • パーミッションの Owner、Group、Other とは?

    パーミッションの Owner、Group、Other について「ファイル・ディレクトリの所有者」とか「そのグループ」「その他の第三者」と説明されていますが、具体的にどういう者のことか分かりません。 使用環境は以下の通りです。 ・共有レンタルサーバ(ロリポップ)利用 ・Apache2.x ・PHP5(CGI版) ・suEXECが動作している Q.1 「 Owner・Group・Other 」の違いは、ファイルやフォルダにアクセスする経路の違いのことですか? Q.2 「ファイル・ディレクトリの所有者(Owner)」とは具体的に誰を指すのでしょうか?どこからアクセスする者のことですか? Q.3 設定や環境によってApacheがOwnerになる場合があるようですが、上記環境では自分のみがOwnerと考えて問題ありませんか? Q.4 上記環境において「ファイル・ディレクトリの所有者が属しているグループ(Group)」とは、同一サーバを利用している人たちのことですか?また、ルートディレクトリが同じという意味ですか? そうだとすると共有レンタルサーバではGroupは赤の他人同士ですよね?Groupはすべて0に設定してもいいと思うのですが、上記環境ではデフォルトでフォルダは755でファイルは644になっています。なぜですか? Q.5 「その他の第三者(Other)」とは、ウェブ経由でファイルやフォルダにアクセスしてくる人のことですか? Q.6 ディレクトリに置かれたPHPファイルがファイルAに読み書き等した場合、PHPファイルは何権限でファイルAにアクセスしているのでしょうか? 尚、勘違いしている部分があれば訂正をお願いします。

  • 複数のグループによるパーミッション設定はできない?

     Red Hat Linux 9を使っています。  たとえばWindowsであれば、testというディレクトリがあったときに、次のようなパーミッション設定ができるかと思います。  Administratorグループ:フルコントロール  testグループ:読み取りと実行  Usersグループ:読み取りのみ  どのグループに所属しているユーザーでアクセスするかによって、アクセス権を分けることができますが、Linuxの場合、所有ユーザー、所有グループとそれ以外のユーザーという3つで分けることしかできない、と考えてよいのでしょうか。  たとえば、所有グループをrootグループにした場合、usersグループのユーザーや新規に作成したグループのユーザーがアクセスしてきた場合、さらに別のグループのユーザーがアクセスしてきたときとは別の処理を行う、といった設定は不可能と考えてよろしいのでしょうか。  今のところ学習した限りでは、不可能と判断してもよいかと思っているのですが、何かツールとかを使って、実現する方法があるのではないかとも思いまして・・。

  • 書き込み権限が無いためコピーできない

    フォルダーの中のファイルやフォルダーをほかのフォルダーにコピーをしたり移動をすると「このフォルダーの書き込み権限がありません」というエラーが出ます。 ~$su ~# にして、コピペしても,コマンドからコピーしても同じ結果です。 なぜでしょうか? OSはebian GNU/etchです。 過去ログを参考にしたのですが、その回答を引用すると > エラー対象のフォルダが 所有者:root パーミッション:read olny となっていませんか? $ ls -lコマンドで確かめてください。 dr-------- xx root xxx と表示されませんか。?そうであれば $ chmod u+w エラーとなるフォルダ で書き込み属性を追加して下さい。 > で、その通りしてみたのですが。 ~$ ls -l /etc/sj□□□ 合計 24 drwxr-xr-x 2 book book 4096 2009-04-20 15:18 □□□d -rw-rw---- 1 book book 393 2009-04-20 15:23 □□□.inc -rw-r--r-- 1 root root 299 2009-04-20 15:23 □□t -rw-r--r-- 1 root root 873 2009-04-20 15:23 □□□ -rw-r--r-- 1 root root 2086 2009-04-20 15:23 □□.env -rw-r--r-- 1 root root 0 2009-04-20 15:23 □□.inc -rw-r--r-- 1 root root 0 2009-04-20 15:23 □□.inc -rw-rw---- 1 book book 49 2010-01-16 01:33 passwd となります。 ちなみに、 /etc/sj□□□ のプロパティでアクセス権 をみるとroot root コピーしたいファイル のプロパティでアクセス権 をみると アカウントユーザ名 ユーザーの本名となっていて、両者全然別物です。 とりあえず言われた通り ~$ chmod u+w /etc/sj□□□ してみたら chmod: changing permissions of `/etc/sj□□□': 許可されていない操作です。 となるし、 chown でコピーしたいファイルの方を root:root に書き換えてみましたが これもエラーがでました。 どなたか解決策教えてください。