/bin/bash ,/bin/sh ,/bin/csh ……

一般Linux默认的用户shell都是bash ,也就是说你可以登录进去敲命令。


非登陆shell ,经典的 /bin/nologin 就是一个非登陆shell,也就是说如果一个用户默认的shell是它的话,这个用户即使登录进Linux也不无法使用Linux。

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

shell是用户和计算机交流的中介,“登录shell”保证用户和计算机交流,“非登陆shell”无法让用户与计算机交流。

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


关于用户的默认登录shell是在 /etc/passwd 文件中记录的。

“非登陆”shell 有它特定的用途,比如一个用Linux搭建一个ftp服务器,并且创建了很多的ftp用户,那么就可以将这些用户的默认shell改为nologin,这样一来,这些虽然是Linux上的用户可是却无法登录进Linux主机,只能登录ftp服务器了。保证了安全性。


简单说,非登录shell不能登录Linux。


登录Shell依次执行的配置文件(CentOS6):


/etc/profile ->.bash_profile -> .bashrc -> /etc/bashrc

非登录交互式Shell依次执行的配置文件:


~/.bashrc->/etc/bashrc


#解析

/etc/profile #系统全程的初始化文件,为登录的shell所执行

~/.bash_profile #个人的初始化文件,为登录的shell所执行

~/.bashrc #个人的交互式shell的起始文件

~/.bash_logout #个人登录shell的清理文件,当登录shell退出时执行