使用者的特殊 shell 与 PAM 模组--特殊的 shell, /sbin/nologin

来源:互联网 发布:力软快速开发框架源码 编辑:程序博客网 时间:2024/05/16 18:48
使用者的特殊 shell 与 PAM 模组

  我们前面一直谈到的大多是一般身份使用者与系统管理员 (root) 的相关操作, 而且大多是讨论关于可登入系统的帐号来说。那么换个角度想,如果我今天想要建立的, 是一个‘仅能使用 mail server 相关邮件服务的帐号,而该帐号并不能登入 Linux 主机’呢? 如果不能给予该帐号一个密码,那么该帐号就无法使用系统的各项资源,当然也包括 mail 的资源, 而如果给予一个密码,那么该帐号就可能可以登入 Linux 主机啊!呵呵~伤脑筋吧~ 所以,底下让我们来谈一谈这些有趣的话题啰!

  特殊的 shell, /sbin/nologin

  如果你曾经仔细的看过 /etc/shells 这个系统可用的 shell 档案,以及 /etc/passwd 这个档案的内容时,你应该会发现,嘿嘿!怎么有个怪怪的 /sbin/nologin 啊! 这是什么 shell 呢?呵呵!赶紧利用 man nologin 就可以知道啦~

  其实,这个 shell 通常是给系统帐号使用的,因为这个 /sbin/nologin 事实上并无法给予帐号实际登入, 如果你利用 usermod 修改了 dmtsai 这个使用者的 shell 成为 /sbin/nologin 之后, 再次想要以 dmtsai 重新登入系统时,他在萤幕上会出现这样的讯息:

  This account is currently not available.

  嘿嘿!它说的是‘这个帐号并不能被允许登入啦!’不过,这个帐号却可以进行其他的工作喔! 举例来说,各个系统帐号,列印工作由 lp 这个帐号在管理, WWW 服务由 apache 这个帐号在管理, 他们都可以进行系统程序的工作,但是‘就是无法登入主机’而已啦!^_^

  换个角度来想,如果我的 Linux 主机提供的是邮件服务,所以说,在这部 Linux 主机上面的帐号, 其实大部分都是用来收受主机的信件而已,并不需要登入主机的呢! 这个时候,我们就可以考虑让单纯使用 mail 的帐号以 /sbin/nologin 做为他们的 shell , 这样,最起码当我的主机被尝试想要登入系统时,可以拒绝该帐号呢!

  另外,如果我想要让某个具有 /sbin/nologin 的使用者知道,他们不能登入主机时, 其实我可以建立‘ /etc/nologin.txt ’这个档案, 并且在这个档案内说明不能登入的原因,那么下次当这个使用者想要登入系统时, 萤幕上出现的就会是 /etc/nologin.txt 这个档案的内容,而不是预设的内容了!