R.A. Epigonos et al.

[linux] su で変わったユーザのホームディレクトリに飛ぶには su - hoge する。

su の引数に - を与えなかった場合、ログイン後のディレクトリはログインする前のディレクトリと同じになる。いちいちログインした後に cd するのが面倒。

答えは su - hoge。自分が fuga ならば、hoge のホームディレクトリに移動する。fuga のホームディレクトリで su hoge すると hoge になっても fuga のホームディレクトリから移動しない。ハイフン付きで su すると以下。ハイフンは -l, --login のエイリアス。

fuga@debian:~$ su - hoge
Password:
hoge@debian:~$ exit
logout

ハイフン無しの場合は以下。hoge になった後も su を実行したユーザのカレントディレクトリである /home/fuga にいることがわかる。

fuga@debian:~$ su hoge
Password:
hoge@debian:/home/fuga$

以下のように --help と man を調べると、ハイフンの有無によって変わるポイントは、カレントディレクトリだけではないということが分かる。環境を指定したユーザが直接ログインした環境に似せるということがハイフンの有無によって変わるポイント。また、ハイフンとそれ以外のオプションを同時に使用する場合は、ハイフンはオプションの最後に指定しなければいけない (ただし同じ機能を提供する -l や --login を使う場合はこの限りではない) とも書いてある。

$ su --help
Usage: su [options] [LOGIN]

Options:
  -c, --command COMMAND         pass COMMAND to the invoked shell
  -h, --help                    display this help message and exit
  -, -l, --login                make the shell a login shell
  -m, -p,
  --preserve-environment        do not reset environment variables, and
                                keep the same shell
  -s, --shell SHELL             use SHELL instead of the default in passwd

$ man 1 su
(snip)
       -, -l, --login
           Provide an environment similar to what the user would expect had the user logged in directly.

           When - is used, it must be specified as the last su option. The other forms (-l and --login) do not have this restriction.
(snip)

リファレンス

  1. su と su - の違い - WEB開発初心者の成長記録
  2. ◇ログインアカウントの変更◇初心者のためのLinuxサーバー構築講座☆お便利.com☆
  3. su コマンドでユーザ変更ができない | OKWave
  4. suとsu -の違い Fantasma
  5. [su]と[su -]の違い » sa-sa-ki.jpのblog
  6. 「su」と「su -」の違い - Linux初心者の基礎知識
  7. 「su」と「su -」の違い: Linux初心者のためのLinux入門
  8. su ホームディレクトリ - Google 検索
  9. Manpage of SU
  10. Man page of su
  11. su - コマンド (プログラム) の説明 - Linux コマンド集 一覧表
  12. su manpage ホームディレクトリ - Google 検索

ソーシャルブックマーク

  1. はてなブックマーク
  2. Google Bookmarks
  3. del.icio.us

ChangeLog

  1. Posted: 2009-09-19T05:34:24+09:00
  2. Modified: 2009-09-19T05:34:24+09:00
  3. Generated: 2023-08-27T23:09:14+09:00