更改当我SSH到CentOS服务器时的默认路径吗?


12

我有一台CentOS 5.7 Web服务器,我想更改使用SSH连接时进入的默认位置。

目前,我进入/home/username,而我想进入/home

我已经以root用户身份加入并添加PermitUserEnvironment yes/etc/.ssh/sshd_config-并且据我所知,这随后会扫描用户自己的ssh文件夹中的environment文件。我不确定到底是我要添加到此环境文件中的内容,export path=$PATH:$HOME似乎不起作用,无论是在这里还是在我的.bashrc或.bash_profile文件中(据我所知,这都不会有所作为)无论如何,因为SSH连接是非交互式外壳?)。

提前致谢。

Answers:


14

如果您使用PAM进行身份验证,则可能是最有可能的。作为根头/etc/passwd

在那里,您应该看到您的用户名和路径!在那里进行更改,您就可以自由回家!

编辑-对不起,我刚想到您可能不想更改主文件夹。在这种情况下,只需添加:

cd /home

.bashrc文件底部!


4
最好usermod在更改与用户有关的任何内容时使用/etc/passwd,以防止出错:usermod -d /home user
laebshade 2013年

1
那边的评论.bashrc使我变得脸红了。它是如此简单和明显,希望我想到了!做得好。荣誉!
cwallenpoole

4

要记住的一件事~/.ssh/environment是在生成shell或ssh命令之前先读取它,因此(例如)export和$ PATH都没有意义。您只能在此处设置环境变量(不能运行常规的shell命令)。

如果抓住了非交互式ssh shell的环境,然后对其进行修改,则应该获得非交互式命令所需的内容。例如:

$ ssh mylogin@myserver env

将为您提供ssh从服务器上开始的内容。如果您将~/.ssh/environment文件写为:

PATH=/usr/local/bin

并重新运行上面的命令,您应该得到“ bash:env:命令未找到”。好!

现在,根据您系统中的基础内容sshd(即第一个“ ssh .... env”调用)显式地构建路径,例如(添加/usr/local/bin在最前面):

PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

还要注意,尝试将CWD设置为~/.ssh/rc(在~/.ssh/environment读取后运行,但在您的sshShell或命令之前运行)没有用,因为您的Shell将在默认情况下在主路径中启动。


double +1,我到处都在寻找这些信息
向上旋转
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.