重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

主に環境構築時ですが、何かコマンドを打つ→パーミッション系のエラーが出る→sudoつけてもう一回やってみる→うまくいった、という時はそのまま次に進んでいました。これは良くないことでしょうか。また、一般にはどう対応すべきですか。構築前に、作るグループなどしっかり洗い出すべきだったでしょうか。権限系の勉強不足でしょうか。曖昧な質問ですみませんが、よろしくお願いします。

A 回答 (5件)

No1です。



>しかし思ったのですが、apt-get installとかgem installとかその他一般のコマンドを叩く時に内側で上記の(1)(2)をやっているのかは(力不足故?)分からないことは多いです。

細かく内部をすべて知っている必要はありません。「そもそも何をしたいのか」をよく意識することです。システム系のファイルやディレクトリを更新したいのかどうか等。

>いやそもそも、インストールという作業自体が管理者権限を必要とする仕事である、ということなんでしょうか。

プログラムのインストールと言っても、システムに変更が必要ない物もあるわけで、一律にどうとは言えません。

apt-get installの場合は、システムへのインストールなので、当然管理者権限は必要です。gem install は通常はシステムのRuby用ライブラリへのインストールなので、管理者権限が必要ですが、コマンドラインオプションや設定によっては、すべて $HOME の下だけにインストールすることも可能で、この場合は管理者権限が必要ではありません。

apt-getやyumを使わずにソースからコンパイルしてインストールする場合は、tar を展開して、
$ ./configue
$ make ・・・・・・・とここまで一般ユーザ権限で可能
$ sudo make install ・・・・・・・ configureで何も指定しないと普通は/usr/localにインストールするので管理者権限が必要

$ ./configure --prefix=$HOME/foo ・・・・・インストール先を $HOME/foo と指定
$ make
$ make install ・・・・・ これなら管理者権限不要

>そういえばWindowsマシンでもまともと思えるソフトウェアなら「管理者権限が必要です。実行しますか?」と言われれば深く考えず「OK」してました。中で何やっているのかは分からないです。

インストーラーはシステムを更新することがほとんどです。アンインストール情報の登録や、場合によっては拡張子の関連づけなど。
インストール時で無く、実行時にダイアログが出てくれば、よく考えるべきでしょう。

Androidアプリのように、「このアプリはどんな権限を必要とします」と出てくればそれで判断できるのですが。
    • good
    • 0
この回答へのお礼

詳細な説明ありがとうございます。

> apt-get installの場合は、システムへのインストールなので、当然管理者権限は必要です。

なるほど。

> $ ./configure --prefix=$HOME/foo ・・・・・インストール先を $HOME/foo と指定
> $ make
> $ make install ・・・・・ これなら管理者権限不要

意図的にHOME下にインストールさせることもできるんですね。

お礼日時:2012/05/06 19:55

No1です。



>ここは分かってないかもしれません。個人でやっているので、管理者と一般ユーザの違いが曖昧になってます。

まず、何が一般ユーザで出来ないかというと、2つあって、
(1) 自分が書き込み権限の無いファイルの更新。自分が読み込み権限の無いファイルの読み込み。自分が実行権限の無いファイルの実行というファイルの権限関係の物。
(2) ポート番号が1024未満のTCPやUDPポートの使用。

自分がこれからやろうとする作業がこれらに当たるのかどうかがわからないと言うことは、自分がこれからやる作業の内容を理解していないと言うことで、本来は危険なことです。

ただ、他の人が書いている通り、個人の趣味での作業ならあまりうるさく言わなくても良いのかもしれません。それを仕事にしてお金をもらっているであれば、プロ失格ですが。

あと、SELinuxとう機能を使ってセキュリティを強化している場合にはさらにユーザによって出来ることが制限される場合があります。

この回答への補足

ありがとうございます。

> (2) ポート番号が1024未満のTCPやUDPポートの使用。

なるほど。ポート番号によって管理者権限の要否が変わるんですね。


> 自分がこれからやろうとする作業がこれらに当たるのかどうかがわからないと言うことは、自分がこれからやる作業の内容を理解していないと言うことで、本来は危険なことです。

これは、確かにおっしゃる通りです。
しかし思ったのですが、apt-get installとかgem installとかその他一般のコマンドを叩く時に内側で上記の(1)(2)をやっているのかは(力不足故?)分からないことは多いです。現状は、そのコマンドやツールの知名度やWebページを見た「感じ」で判断してますが、そのへんは「プロとして」仕事でやる場合は行動を追跡してsudoで起動するべきか確認するんでしょうか。いやそもそも、インストールという作業自体が管理者権限を必要とする仕事である、ということなんでしょうか。

そういえばWindowsマシンでもまともと思えるソフトウェアなら「管理者権限が必要です。実行しますか?」と言われれば深く考えず「OK」してました。中で何やっているのかは分からないです。

質問を重ねてしまい恐縮です。

補足日時:2012/05/04 10:51
    • good
    • 0

まずは、



OS 自体に変化を加えるユーザと、
OS の状態を変化させるユーザと、
その他の自分の砂場だけで遊ぶ一般ユーザの、
3種類に分けてみてはどう?

『OS自体に変化を加える』というのは、
OS とか共有パッケージの更新、
サービスの設定ファイルとか共有アプリケーションの基本設定とかを変更すること。

『OS の状態を変化させる』というのは、
サービスを起動したり、OS をリブートしたりで、状態は変更できても、永続的な変更はできないこと。

この辺の考え方は、Windows Server でも同じだし、区分できるようになると、サーバ管理への不安はだいぶへるとおもうよ!
    • good
    • 0
この回答へのお礼

これはいいですね! 早速実践してみます!
ありがとうこざいます。

お礼日時:2012/05/04 10:18

個人使用のパソコンなら、難しく考える必要はないのでは?


スーパーユーザーの権限でないと、だめな場合は、sudoを付ける、
ただ、それだけの事だけかと・・・
煩わしく思う方は、パソコンのユーザーをスーパーユーザーにして置けば
良いのでは。
これですと、セキュリティでWindowsと同じ程度になって、しまうので
私は、してませんが・・・

サーバーを公開するには、権限系は重要だと思います、私もよく解らないので、
サーバーに仕立てたパソコンを公開出来ずに、内輪で使用してます。
    • good
    • 0
この回答へのお礼

ありがとうございます。
確かにそうかもしれません。

お礼日時:2012/05/04 10:14

一般にはというか、root権限で実行すべきコマンドの時はsudoをつけます。

そうじゃないときはつけません。
何を一般ユーザ権限で実行すべきで、何をroot権限で実行すべきかがわかってないのだとすると勉強不足ですね。

この回答への補足

> 一般にはというか、root権限で実行すべきコマンドの時はsudoをつけます。そうじゃないときはつけません。

ここは大丈夫です。

> 何を一般ユーザ権限で実行すべきで、何をroot権限で実行すべきかがわかってないのだとすると勉強不足ですね。

ここは分かってないかもしれません。個人でやっているので、管理者と一般ユーザの違いが曖昧になってます。
今のところ、以下のような理解しかできてません。
* マシンの機能全体に不都合が出る可能性のあるコマンド => root権限で実施すべき
* sudo実行権限を他のユーザに付与する => root権限で実施すべき
* root権限が必要なディレクトリやファイルに変化を加えるようなコマンド => root権限で実施すべき
* その他 => 一般ユーザ権限で実施すべき
なので、apt-get installでsudo権限が必要とされるのか、そうでないのかは判断がつかない状況です。

補足日時:2012/05/03 00:00
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!