Ubuntuでroot権限使用のために

 

rootユーザーになるコマンドが紹介されていて

$ su -
Password:
#
#pwd
/root

こういう風に、ちゃんとできたらカレントディレクトリがrootユーザーのホームディレクトリになるらしい。
でも、Ubuntuだと基本suじゃなくてsudoコマンドを使うらしくて

$ sudo -s

これでrootユーザーになる

問題点

これだとカレントディレクトリがrootユーザーのにならない

つまり

$ su
Password:
# pwd
/home/ユーザー名

と同じ状態に。。。

これだとrootユーザー用コマンドの多くが使えないらしい

解決策

sudo su -

こうするとカレントディレクトリが/rootになってくれる

元のユーザーに戻るためには

# exit

カレントディレクトリの謎について

わたしが理解できなかったのは、なぜカレントディレクトリが変えられるパターンと変えられないパターンのsu(またはsudo)があるのか

実務で考えてみる

たとえばなにかのファイルを書き換えたいけど、自分には権限がないとき

sudo -s

を使うと

そのファイルがあるディレクトリまで移動
↓
権限がない!
↓
rootユーザーになればいいじゃん!
↓
sudo -s
↓
そこのディレクトリのままで作業続けられる

一方

sudo su -

を使うと

そのファイルがあるディレクトリまで移動
↓
権限がない!
↓
rootユーザーになればいいじゃん!
↓
sudo su -
↓
ホームディレクトリがrootユーザーのものになってしまったから、そのファイルがあるディレクトリに移動し直し・・・

ということらしい(わかりにくい)

suの -(ハイフン)の意味は、そのユーザーのホームディレクトリにログインするということで、ちょこっとここでroot権限が必要だ〜ってなったときにはディレクトリが変わらないほうがありがたいみたいな感じらしい。

ちなみにホームディレクトリが変わるほうの必要性は、rootユーザー用のコマンドがちゃんと使えるからっぽい

勉強中なので理解が間違ってたら教えてほし

 

お世話になった引用元2つ

・中島能和 1週間でLPICの基礎が学べる本 第2版

   

qiita.com