あるコマンドで別のユーザーに切り替える方法を知りたい(通常私の場合はroot
)そしてまだ同じ姿勢で変更前に私がいた場所。
私は通常このようにしていますが、残念ながら多くのステップを経なければなりません。
user1@m:~/loc1/loc2$ pwd
/home/user1/loc1/loc2
user1@m:~/loc1/loc2$ su -
Password:
root@m:~# cd /home/user1/loc1/loc2
root@m:/home/user1/loc1/loc2#
私は似たようなものを探しています:
user1@m:~/loc1/loc2$ su - && ...
あるいは、同様の結果を得ることができる。
root@m:/home/user1/loc1/loc2#
答え1
マニュアルによると、-
両方-l
とも同じオプションです。
-l
完全なログインをシミュレートします。 HOME、SHELL、PATH、TERM、USER以外の環境は削除されます。 HOMEとSHELLは上記のように修正されます。 USER は宛先ログイン名に設定されます。 PATH は "/bin:/usr/bin" に設定されます。 TERMは現在の環境から取得されます。呼び出されるシェルはターゲットログインのシェルであり、suはディレクトリをターゲットログインのホームディレクトリに変更します。
-
(文字なし)はと同じです-l
。
-l
またはを指定しないと、-
ディレクトリは変更されません。
答え2
最も簡単な解決策:
user1@m:~/loc1/loc2$ su root
(@ Christopherに感謝します):
user1@m:~/loc1/loc2$ su