当我执行su -
此操作以转到 root 时,我的当前目录被设置为 root 的主目录。有没有办法保留我所在的当前目录,就像这样sudo -s
。还是答案是使用 sudo?
答案1
如果可能,最好使用 sudo,因为这样您就不需要知道(或告诉别人)root 的密码。将 root 密码设置为长而可怕的密码,然后将其锁在保险箱中。
如果您稍后想要拒绝某人的访问权限,只需删除他们对 sudo 的访问权限,而不必向其他所有人传授新的 root 密码。
但是,如果您不想使用“-”参数,则无需使用。您将获得一个 root 身份的 shell,但它不会是登录外壳(因此它不会运行 root 的 .profile。)
答案2
我同意 sudo 几乎总是更好的答案,但要回答问题的另一部分......
“su -”中的“-”表示您想要模拟超级用户登录,而不仅仅是以超级用户权限运行。
如果您使用普通的“su”而不是“su -”,您将停留在同一目录中;但是您也将在相同的环境中运行,因此可能需要修改您的路径来访问一些管理命令。
答案3
如果您使用su
时不带-
,它会将您保留在当前目录中。 -
,-l
或者--login
告诉 su :
提供与用户直接登录时所期望的类似的环境。
或者直接使用 sudo,它还有很多其他优点。或者 ssh 密钥。