我有一个使用bash作为其外壳的CentOS 5.7 VPS,它在通过SSH登录后立即显示品牌问候。我一直在尝试对其进行修改,但似乎找不到通常的位置。到目前为止,我已经查看了motd文件并检查sshd_config了横幅文件设置。未设置标题文件。
我还能在哪里寻找登录消息?
/,永远花在1TB磁盘上,让我告诉你...但是我从来没有去过Twitter :)
我有一个使用bash作为其外壳的CentOS 5.7 VPS,它在通过SSH登录后立即显示品牌问候。我一直在尝试对其进行修改,但似乎找不到通常的位置。到目前为止,我已经查看了motd文件并检查sshd_config了横幅文件设置。未设置标题文件。
我还能在哪里寻找登录消息?
/,永远花在1TB磁盘上,让我告诉你...但是我从来没有去过Twitter :)
Answers:
传统的UNIX系统/etc/motd在用户成功通过身份验证之后以及调用用户的外壳程序之前显示。在现代系统上,这是通过pam_motdPAM模块完成的,该模块可以配置为显示其他文件/etc/pam.conf或/etc/pam.d/*在其中显示。
/etc/motd如果PrintMotd未在中关闭该选项,则ssh服务器本身可以配置为打印/etc/sshd_config。如果PrintLastLog未关闭,它可能还会打印上一次登录的时间。
另一种传统的消息可能会告诉你是否是You have new mail或You have mail。在具有PAM的系统上,这是由pam_mail模块完成的。某些外壳可能会打印有关可用邮件的消息。
启动用户的外壳程序之后,用户的启动文件可能会打印其他消息。对于交互式登录,如果用户的登录shell是Bourne风格的外壳,看着/etc/profile,~/.profile加~/.bash_profile和~/.bash_login为庆典。对于交互式登录zsh的,看在/etc/zprofile,/etc/zlogin,/etc/zshrc,~/.zprofile,~/.zlogin和~/.zshrc。要以交互方式登录csh,请查看/etc/csh.login和~/.login。
如果用户的登录shell是bash,并且这是非交互式登录,则执行bash ~/.bashrc(这很奇怪,因为~/.bashrc只有在交互式shell并非登录shell的情况下才对交互式shell执行bash )。这可能会带来麻烦。~/.bashrc如果外壳不是交互式的,我建议在其顶部包含以下代码片段以纾困:
if [[ $- != *i* ]]; then return; fi
.bash_profile只是向自己发送一条消息。有些人在登录时喜欢看到有用或有趣的消息。由于我既不知道消息的内容,也不知道所涉及的人员和环境,因此我无法代表您系统的root帐户。
有一些:
/etc/motd
/etc/issue
/etc/profile - Could echo the message
/etc/profile.d/* - Would be called from /etc/profile
另外
/etc/bash_bashrc
/etc/.bashrc
/etc/bashrc
$HOME/.profile
$HOME/.bashrc
您可能还必须遍历从这些脚本调用的每个程序,因为类似的东西fortune可能会存储它在其中显示的内容/usr/share。要隔离它,您可以执行以下操作:
. /etc/profile
. /etc/bash.bashrc
. $HOME/.profile
. $HOME/.bashrc
在Ubuntu上,还有一个文件:
/etc/motd.tail
/etc/issue通常是在用户登录之前显示,而不是之后显示。
profile和profile.d。las,您的所有四个建议都没有成立。我想知道是否将某些自定义内容编译到bash二进制文件中...?
您可以查看/etc/shell,这是我找到要更改的消息的地方。用“#”注释掉是行不通的,您只需要删除任何文本并添加您自己的文本即可。当您在文件中放置空格和换行时,它们也会出现。
grep在/etc该消息的某个子集。