详解linux下/etc/nologin文件的作用
发布:thatboy 来源:Net 【 大 中 小】
在linux中,与用户与密码相关的文件有两个,分别为/etc/passwd和/etc/shadow。
其中/etc/passwd是用来存储登陆用户信息的,基本格式如下:
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
每一行代表一个用户的信息,一共包括7个字段的信息,每个字段的信息用冒号隔开。
这7个字段分别代表:
1. 账号名称:即登陆时的用户名
2. 密码:早期UNIX系统的密码是放在这个文件中的,但因为这个文件的特性是所有程序都能够读取,所以,这样很容易造成数据被窃取,因此后来就将这个字段的密码数据改放到/etc/shadow中了
3. UID:用户ID,每个账号名称对应一个UID,通常UID=0表示root管理员
4. GID:组ID,与/etc/group有关,/etc/group与/etc/passwd差不多,是用来规范用户组信息的
5. 用户信息说明栏: 用来解释这个账号是干什么的
6. 家目录:home目录,即用户登陆以后跳转到的目录,以root用户为例,/root是它的家目录,所以root用户登陆以后就跳转到/root目录这里
7. Shell:用户使用的shell,通常使用/bin/bash这个shell,这也就是为什么登陆Linux时默认的shell是bash的原因,就是在这里设置的,如果要想更改登陆后使用的shell,可以在这里修改。另外一个很重要的东西是有一个shell可以用来替代让账号无法登陆的命令,那就是/sbin/nologin。
登录linux主机,打开/etc/passwd这个文件,可以看到很多类似上面格式的用户账号信息。
由于机器开放了ftp服务,我的ftp账户信息如下:
lxb:x:530:525::/opt/ftp:/sbin/nologin,
用户名是lxb,x表示密码经过加密放到/etc/shadow文件中了,UID是530,GID是525,访问的目录是/opt/ftp,请注意这里的/sbin/nologin。
用root权限登陆到里面,把后面的/sbin/nologin改成了/bin/bash,重新用ssh进行登陆,真的登陆进去了,而且登陆后的目录正好是/opt/ftp。
但是权限依旧没有改变,很多文件还是打不开。
这个nologin的作用就是限制某些用户通过ssh登陆到shell上。
有时可以用使用 nologin 文件临时禁止其他用户登录,具体做法是在/etc/目录下创建一个名称为 nologin 的文件。
例如:
这样将禁止随后的用户登录到系统中。
禁止用户登录时,/etc/nologin 文件中的内容将会显示给用户,会一闪而过。
例如,按如下方式创建 nologin 文件:
disable login by admin temperarily!
当用户试图登陆时,将会给用户显示"disable login by admin temperarily!",当系统维护结束以后,再删除/etc/nologin文件,其他用户就又可以恢复登陆了,这只是限于能登陆shell的用户来说的,对于那些登陆shell为/sbin/nologin的用户来说没有影响,因为他们本身就无法登陆shell。
补充:
/etc/nologin 和/etc/nologin.txt这两个文件的作用并不相同。
当/etc/nologin文件存在时,则任何一个一般身份帐号在尝试登入时,都仅会获得/etc/nologin的内容,而无法直接登入主机。
即当建立/etc/nologin ,并且内容设定为『This Linux server is maintaining....』,则任何尝试登录者,会看到这些提示内容,而不能登录进系统。
直到删除/etc/nologin文件后,一般用户才可以正常登录。