ここから本文です

Ubuntu と CentOS

next_step777さん

2010/5/602:39:50

Ubuntu と CentOS

以前、lsusbが使えないと言う事で質問した件と関連します。

CentOSの場合、
結局は$ su - で管理者の環境変数に対応させないと実行できなかった。

しかし、Ubuntuの場合は、$の一般ユーザーの状態で$ lsusb など問題なく実行できます。

この違いはなんでしょうか?

気になったので、現在のユーザー権限を調べる為に双方のPCで
#visudo を実行しました。

なんと両方とも
root ALL=(ALL) ALL
と同じ結果だったのです、そこに一般ユーザーのIDはありません!!

これは何故でしょう?なぜUbuntuはvisudoで設定することなく、管理者の環境変数に対応してるのでしょうか!!?

閲覧数:
682
回答数:
2
お礼:
25枚

違反報告

ベストアンサーに選ばれた回答

編集あり2010/5/609:55:01

一般ユーザーがコマンドを入力した場合と、root がコマンドを入力した場合では
shell がコマンドを検索するディレクトリが異なります。
このコマンド検索ディレクトリは環境変数$PATHに保存されます。

CentOS と Ubuntu の両方で以下のコマンドを実施してみれば、その違いが理解できるでしょう。

$ whoami
$ echo $PATH
$ su -
# whoami
# echo $PATH

[参考記事]
パスに新しいディレクトリを追加するには
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/035addnewpath.htm...
環境変数を設定するには
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/118setenv.html

この質問は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜1件/1件中

2010/5/603:29:51

権限とかの問題ではありません。PATHが/sbinに通っているかだけの話です。だけどなぜ違うのかはちょっとおもしろいと思います。

Centではsu では通らず、su - で通ります。
su で通らないのはsuがPATHを消すからbashが内蔵するデフォルトの/usr/local/bin:/bin:/usr/binになるからです。
su - で通るのは uidが0の時 /etc/profile で /sbin, /usr/sbin, /usr/local/sbin を追加するからです。

Ubuntuでは su でも su - でもとおります。
su で通るのはsuがPATHを消すからbashが内蔵するデフォルトの/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/binになるからです。
su - で通るのは uidが0の時 /etc/profile で /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin にするからです。

ということで、bashのバイナリが違うのです。どちらもディストリビューション固有の設定です。マニュアルに書いてあるとおり、これはシステムを作るひとが決めるものなのです。固有の設定をしないと /usr/gnu/bin:/usr/local/bin:/bin:/usr/bin:. です。これが生粋のGNUの文化か。

あわせて知りたい

この質問につけられたタグ

タグランキングを見る

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

5文字以上入力してください

Q&Aをキーワードで検索:

Yahoo!知恵袋カテゴリ

一覧を見る

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。