如何修改用户SSH\telnet登陆linux时候显示的欢迎信息

root@fwq ~]# cat /etc/issue
CentOS release 6.2 (Final)
Kernel \r on an \m

用户telnet登陆时候显示的欢迎信息

[root@fwq ~]# cat /etc/issue.net
CentOS release 6.2 (Final)
Kernel \r on an \m
[root@fwq ~]#

eg
login as: root
[email protected]'s password:
Last login: Thu Oct 30 08:44:08 2014 from 10.6.7.44

=====================================================

login 与no-login shell

定义:
(1)login shell:取得bash 时需要完整的登入流程,就称为login shell。举例来说,同tty1~tty6登入时,需要输入用户名和密码,此时取得的bash就称为login shell

(2)non-login shell:取得bash介面的方法不需要重复登入的动作。
     举两个例子(1)以X window登入linux后,再以X的图形化介面启动终端机,此时那个终端机并不需要再次的输入用户名和密码,那个bash的环境就称为non-login shell
    (2)在原本的bash环境中再次下达bash这个指令,同样没有要求输入用户名和密码,那个第二个bash也是non-login shell

    non-login shell是不是就是现在我在自己的主机上,远程的登录到测试机呢?login shell就是直接对服务器进行操作?

(3)/etc/profile:系统环境变量,对所有用户都起作用,使用env命令显示所有的环境变量。在命令提示符下键入env就行了。set命令显示所有本地定义的Shell变量。

    常见的环境变量

  PATH:决定了shell将到哪些目录中寻找命令或程序

  HOME:当前用户主目录

  MAIL:是指当前用户的邮件存放目录。

  SHELL:是指当前用户用的是哪种Shell。

  HISTSIZE:是指保存历史命令记录的条数。

  LOGNAME:是指当前用户的登录名。

  HOSTNAME:是指主机的名称,许多应用程序如果要用到主机名的话,通常是从这个环境变量中来取得的。

  LANG/LANGUGE:是和语言相关的环境变量,使用多种语言的用户可以修改此环境变量。

  PS1:是基本提示符,对于root用户是#,对于普通用户是$。

  PS2:是附属提示符,默认是“>”。可以通过修改此环境变量来修改当前的命令符,比如下列命令会将提示符修改成字符串“Hello,My NewPrompt :) ”。

  # PS1=“ Hello,My NewPrompt :) ”

(4)/etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.(还有写成bash.bashrc的,在测试机验证,只有bashrc,会不会其他系统是这样的!是的,在ubuntu上!)

(5)~/.bash_profile($HOME/.bash_profile):用户环境配置文件,每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。

(6)~/.bashrc:(在用户的根目录下)进行环境变量的编辑,只对当前用户有用。使用修改 /etc/profile文件进行环境变量的编辑,是对所有用户有用。大家一定要注意区别。该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该文件被读取.(每个用户都有一个.bashrc文件,在用户目录下

    /etc/profile和.bashrc的区别:/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承/etc/profile中的变量,他们是"父子"关系。在个人用户下,~/.bashrc和/etc/profile有相同的环境变量时,~/.bashrc会覆盖/etc/profile中的变量!

    .bash_profile和.bashrc区别:其中.bash_profile是最重要的一个配置文件,它在用户每次登录系统时被读取,里面的所有命令都会被bash执行。.profile(由Bourne Shell和Korn Shell使用)和.bash_login(由C Shell使用)两个文件是.bash_profile的同义词,目的是为了兼容其它Shell。在Debian中使用.profile文件代替.bash_profile文件。(.bash_profile=.profile=.bash_login)

    .bashrc文件会在bash shell调用另一个bash shell时读取,也就是在shell中再键入bash命令启动一个新shell时就会去读该文件。这样可有效分离登录和子shell所需的环境。但一般来说都会在.bash_profile里调用.bashrc脚本以便统一配置用户环境。

    (~/.bash_profile 是交互式、login方式进入 bash 运行的,~/.bashrc 是交互式 non-login 方式进入 bash运行的,通常二者设置大致相同,所以通常前者会调用后者。这句话是什么意思?)

    在/etc目录的bashrc和profile是系统级(全局)的配置文件,当在用户主目录下找不到.bash_profile和.bashrc时,就会读取这两个文件。.bash_history是bash shell的历史记录文件,里面记录了你在bash shell中输入的所有命令。可通过HISSIZE环境变量设置在历史记录文件里保存记录的条数。alias l = 'ls-l'是设置别名的语句,把它放在这些配置文档中就可使我们能用简单的'l'命令,代替'ls -l'命令。

Login shells

/etc/profile
    /etc/profile.d
~/.bash_profile
    ~/.bashrc
          /etc/bashrc

Non-login shells
~/.bashrc
    /etc/bashrc
          /etc/profile.d

login nologin shell的执行顺序按照上述顺序执行.


查看/etc/profile
#cat /etc/profile
有以下内容,说明了执行 /etc/profile.d/里的*.sh
for i in /etc/profile.d/*.sh ; do
    if [ -r "$i" ]; then
        . $i
    fi
done

/etc/profile.d里面有以下脚本
-rwxr-xr-x  1 root root  720 Apr 11  2006 colorls.csh
-rwxr-xr-x  1 root root  713 Apr 11  2006 colorls.sh
-rwxr-xr-x  1 root root  192 Oct 13  2004 glib2.csh
-rwxr-xr-x  1 root root  190 Oct 13  2004 glib2.sh
-rwxr-xr-x  1 root root   58 May  2  2006 gnome-ssh-askpass.csh
-rwxr-xr-x  1 root root   70 May  2  2006 gnome-ssh-askpass.sh
-rwxr-xr-x  1 root root   78 Jan 11  2006 kde.csh
-rwxr-xr-x  1 root root   74 Jan 11  2006 kde.sh
-rwxr-xr-x  1 root root  218 Feb  7  2006 krb5.csh
-rwxr-xr-x  1 root root  210 Feb  7  2006 krb5.sh
-rwxr-xr-x  1 root root 2182 Apr 21  2006 lang.csh
-rwxr-xr-x  1 root root 2470 Apr 21  2006 lang.sh
-rwxr-xr-x  1 root root  122 Jun 16  2004 less.csh
-rwxr-xr-x  1 root root  108 Jun 16  2004 less.sh
-rwxr-xr-x  1 root root   51 Nov 19  2004 mc.csh
-rwxr-xr-x  1 root root   45 Nov 19  2004 mc.sh
-rwxr-xr-x  1 root root  102 Nov 25  2004 qt.csh
-rwxr-xr-x  1 root root   99 Nov 25  2004 qt.sh
-rwxr-xr-x  1 root root   13 Aug 11  2005 vim.csh
-rwxr-xr-x  1 root root  181 Aug 11  2005 vim.sh
-rwxr-xr-x  1 root root  170 Aug  7  2004 which-2.sh


当执行完上述所有脚本之后,会执行当前帐户下的~/.bash_profile文件,该文件有其中以下内容,说明会具体执行~/.bashr的内容
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

#vi ~/.bashrc
有以下内容
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

看来login shell最终会执行 /etc/bashrc 这个脚本


----------------------------------------------------------------

nologin shell

按照上面的思路可以看到 nologin的执行顺序,验证的方式可在每个文件上使用echo 来验证

猜你喜欢

转载自blog.csdn.net/fwq11223344/article/details/40650393