こんなことも知らなかったのかという意味合いで記事にしときます。
目次
特に意識していなかった"-“の有無
suコマンドの説明は今更不要ですが、"-“の有無について意識していませんでした。 「”-“はつけるものだ」くらいに思ってました。
たまに”-“付け忘れた時に、カレントディレクトリのままになっているので、「”-“無しはユーザーのホームディレクトリに移動しない」と決めつけてました。
しかし少し調べてみると、”-“の有無についてゴロゴロ解説が出てきました。
どうやら”-“無しの場合、現在の環境変数を引き継ぐ挙動を取る事を、本日初めて知りました。
確認してみる
envで確認してみます。まずは一般ユーザーです。
[unknown@centos01 c]$ env XDG_SESSION_ID=4828 HOSTNAME=centos01.unknownengineer.com TERM=screen SHELL=/bin/bash HISTSIZE=1000 SSH_CLIENT=192.168.1.3 58694 22 SSH_TTY=/dev/pts/0 USER=unknown LS_COLORS=略 LD_LIBRARY_PATH=/home/unknown/local/lib TMUX=/tmp/tmux-1001/default,17918,0 PATH=/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/unknown/.local/bin:/home/unknown/bin:/home/unknown/.local/bin:/home/unknown/bin MAIL=/var/spool/mail/unknown PWD=/home/unknown/c LANG=ja_JP.utf8 TMUX_PANE=%8 HISTCONTROL=ignoredups SHLVL=2 HOME=/home/unknown LOGNAME=unknown SSH_CONNECTION=10.8.0.6 64730 192.168.1.12 22 LESSOPEN=||/usr/bin/lesspipe.sh %s XDG_RUNTIME_DIR=/run/user/1001 _=/usr/bin/env
次は"-“なしの場合。確かに環境変数引き継いでますね。但し、よく見るとHOMEだけは/rootに変更されてます。
[root@centos01 c]# env XDG_SESSION_ID=4828 HOSTNAME=centos01.unknownengineer.com SHELL=/bin/bash TERM=screen HISTSIZE=50000 SSH_CLIENT=192.168.1.3 58694 22 SSH_TTY=/dev/pts/0 USER=unknown LS_COLORS=略 TMUX=/tmp/tmux-1001/default,17918,0 MAIL=/var/spool/mail/unknown PATH=/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/unknown/.local/bin:/home/unknown/bin:/home/unknown/.local/bin:/home/unknown/bin PWD=/home/unknown/c LANG=ja_JP.utf8 TMUX_PANE=%8 HISTCONTROL=ignoredups HOME=/root SHLVL=3 LOGNAME=unknown SSH_CONNECTION=10.8.0.6 64730 192.168.1.19 22 LESSOPEN=||/usr/bin/lesspipe.sh %s XDG_RUNTIME_DIR=/run/user/1001 _=/usr/bin/env
最後に"-“有りの場合。こちらは環境変数が引き継がれていません。
[root@centos01 ~]# env XDG_SESSION_ID=4828 HOSTNAME=centos01.unknownengineer.com SHELL=/bin/bash TERM=screen HISTSIZE=50000 USER=root LS_COLORS=略 MAIL=/var/spool/mail/root PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin PWD=/root LANG=ja_JP.utf8 HISTCONTROL=ignoredups SHLVL=1 HOME=/root LOGNAME=root LESSOPEN=||/usr/bin/lesspipe.sh %s _=/bin/env
ざっくりですが、こんな感じ。