質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

UNIX

UNIXとは、AT&Tのベル研究所で開発されたコンピューター用のマルチユーザー・マルチタスクのオペレーションシステム(OS)です。政府や教育機関や研究所で広範囲に採用されています。

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

Q&A

解決済

3回答

3514閲覧

Linux(UNIX)のchmodコマンドとchownコマンドをどのように使い分けているのか知りたい

task4233

総合スコア106

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

UNIX

UNIXとは、AT&Tのベル研究所で開発されたコンピューター用のマルチユーザー・マルチタスクのオペレーションシステム(OS)です。政府や教育機関や研究所で広範囲に採用されています。

コマンド

コマンドとは特定のタスクを行う為に、コンピュータープログラムへ提示する指示文です。多くの場合、コマンドはShellやcmdようなコマンドラインインターフェイスに対する指示文を指します。

0グッド

0クリップ

投稿2019/03/21 11:31

質問・実現したいこと

Linux(UNIX)のコマンドで, chmodchownというコマンドがあります。
これらのコマンドは, ツールをインストールした時にパーミッション等を変更するために用いられるはずです。

しかし, これらのコマンドを使っていると
chmodだけで良いのではないか?」
という疑問を持つようになりました。

何故ならば, 実現したいことはファイルの読み・書き・実行であり, グループやオーナーを変更したところで直接の解決になっていないと考えたためです。
(確かにグループやオーナーを自身に変更すれば実行等ができるようになりますが, chmodでパーミッションを変更すれば同じように実行等ができるので, chmodで代用できると考えています)

しかし, 調べてみるとchmodchownの定義のみしか書かれておらず, その使い分けについて具体的に言及されている記事を発見することができませんでした。

そのため, chmodchownコマンドがどのように使い分けられているのかを教えていただけないでしょうか?

試したこと・確認したこと

コマンドの定義

これらのコマンドについて調べると, つぎのような用途で使用されると書いてありました。

コマンド名説明
chmodファイルのパーミッションを変更する
chownファイルの所有者やグループを変更する

実際のファイルのパーミッション等の調査

ls -lコマンドでパーミッション等を確認できるので, 確認しました。

bash

1$ ls -l 2合計 1188 3-rw-r--r--. 1 vagrant docker 170 321 02:19 README.md 4drwxr-xr-x. 2 root root 20 321 09:34 client 5~~~ 以下略 ~~~

ここから, つぎのことが分かります。

パーミッションオーナーグループ
644vagrantdocker
755rootroot

ここで, パーミッションがファイルの編集や閲覧の権限を設定しているのはわかりますが, グループやオーナーの存在意義が見出せませんでした。
chownでオーナーやグループを変更せずとも, chmodでパーミッションを変更してしまえばそれで事足りるからです。

Linux(UNIX)ではユーザをグループで管理しているので, ファイルにオーナーやグループを付与するのは分かります。しかし, わざわざchownというコマンドを用意して, ファイルごとのオーナーやグループを変更する必要があるとは思えないのです......

なにとぞ, 回答よろしくお願いします!

参考にしたサイト

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

chmodだけだと、ユーザーAには読み書きさせたいが、ユーザーBには読み取りだけ、それ以外のユーザーには読み書き不可、みたいなことが出来ません。

あと、ファイル所有者しか出来ないこともありますね。例えば、/tmpの下に作ったファイルの削除とか、chmodとか。

そのシステムに、root以外のユーザーが1つしか無いので有れば、仰るとおり。
普通そんなシステムはないです。システム系ユーザー(人間がログインしないもの)だけでもたくさんあります。

投稿2019/03/21 12:05

otn

総合スコア84423

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

task4233

2019/03/21 12:23

回答ありがとうございます。 > そのシステムに、root以外のユーザーが1つしか無いので有れば、仰るとおり。 > 普通そんなシステムはないです。システム系ユーザー(人間がログインしないもの)だけでもたくさんあります。 これが本質でした。 私自身, root以外のユーザが1つしかないローカルマシンで細々と開発をしている井の中の蛙のような状態だったので, 視野が狭くなっていました。 確かに, システムの運用を考えると複数ユーザが存在しているはずですよね。 普段は無闇に`sudo`や`chmod`を使っていましたが, これは現実的な使い方ではないようですね......
otn

2019/03/21 12:56

人間のユーザーが一人しかいないシステムは、普通よくあるでしょうね。 > 確かに, システムの運用を考えると複数ユーザが存在しているはずですよね。 /etc/passwdの中を見たことは無いですか? 例えば、Webシステムに脆弱性があり、apacheユーザー権限で何かされた場合にも、他に被害が及ばないようにするとかを考えると、どのファイルをどのユーザー所有、グループ所属にして、どういうアクセス権を与えるかは、よく考えて設計するか、一般的なやり方に倣っておく必要があります。 もしくはSELinuxできちんと設計するか(このあたり苦手です)。 セキュリティ対策はこれ1つで100%と言う物は無いので、可能な対策はできる限り行います(多重防御)。 そういう心配をしなくて良いシステムの場合は、「other権限は俺のための物」という考えでchmodのみで運用することも出来ますが、勉強のために、普通のやり方をした方が良いと思います。
task4233

2019/03/23 07:38

> /etc/passwdの中を見たことは無いですか? 今確認してみると, 確かに複数ユーザがいますね。 意識していないところでも多くのユーザがいるんですね。 システムにおいて, アクセス権の設計が重要なのも頷けます。 また, SELinuxについてあまり詳しく調べたことが無かったので, いい機会になりました。サービス毎にアクセス権を管理することができるんですね。知りませんでした..... すぐに慣れるのは難しそうですが, 頭の片隅には置いておこうと思います。 > そういう心配をしなくて良いシステムの場合は、「other権限は俺のための物」という考えでchmodのみで運用することも出来ますが、勉強のために、普通のやり方をした方が良いと思います。 otnさんの仰る通りですね。今後はchmodだけを無闇に使用することは控えます。 付加情報まで教えていただき, ありがとうございました。勉強になりました。
guest

0

ベストアンサー

オーナーが自分以外の場合に、自分しか参照/編集できない設定はできません。そのためのオーナー設定ですね。
グループも同様、自グルーブ以外、アクセスできない設定にする場合に必要となります。

rwxrwxrwx とした時の、最初の rwxはオーナーのアクセス権で、次(真ん中)のrwx はグループのアクセス権です。 (最後のその他、一般)

作成する時は、一ユーザーの権限で作成したが、作成後は、rootとかの特定のユーザーでしか、アクセスしないような設定にしたい場合、変更する事が多いと思います。

chmod は、完成までは、自分以外のアクセスは認めないが、完成したら、他のユーザーも使ってイイよとかいう時に、変更しますね。 ディレクトリで、xをオフすると、ディレクトリの中に入れないとか、r をオフだと、ディレクトリ内のファイル一覧が取得できないとか、、色々とあります。 (1人で使っているとそこまで、使い分ける事は少ないが)

投稿2019/03/21 11:47

編集2019/03/21 11:52
pepperleaf

総合スコア6383

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

task4233

2019/03/21 12:16

回答ありがとうございます。 具体的に書かれていて分かりやすかったです! > オーナーが自分以外の場合に、自分しか参照/編集できない設定はできません。そのためのオーナー設定ですね。 > グループも同様、自グルーブ以外、アクセスできない設定にする場合に必要となります。 基本的に1つのローカルマシンで1つのアカウントのみで開発していたので, 全て`sudo chmod`でアクセス権を755にしていました。 他の方に指摘されてハッとなったのですが, 1つの共有資源を複数人で利用する場合はグループという概念が必要になるんですよね。 完全に理解不足でした。
guest

0

「自分の作ったファイルを自分自身では好きなように書き換えたいが他の人にいじられたくはない。このファイルは俺だけがいじれるもの。」という設定をしたいというのはごく自然な欲求だと思うのですが、あまり想像つかないですかね。一つのマシンを多くの人間が使っている状況では特に切実だと思いますが。

投稿2019/03/21 11:47

KojiDoi

総合スコア13669

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

task4233

2019/03/21 12:09

回答ありがとうございます。 基本的に1人で1台のPCを使用しているので, そのような想像ができませんでした。 確認なのですが, 同じローカルマシンを使用しているAさんとBさんがいて, 2人ともアクセスできる共有資源`file`があるとします。 この時, Aさんのアカウントで`chmod 755 file`を実行した場合, Bさんのアカウントから見てもその共有資源`file`のパーミッションは755に変更されているということでしょうか? 仮にそうだとした場合, その`file`にAさんとBさんの2人以外がアクセスできないように設定するには, ファイルの所属グループをAさんとBさんのみが所属するグループに変更してあげれば良いと言うことでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問