zoukankan      html  css  js  c++  java
  • linux用户管理

    编辑 vim /etc/passwd 的时候,“观察”发现 最后的shell字段,有些为 bin/bash , 有些为bin/false , 有些为 usr/sbin/nologin

    思考为什么会有这些差异呢??探寻的结果大大的有,哈哈:)

    bin/bash 是用户可以shell登录,登录的之后使用的shell就是 bin/bash

    bin/fase 和usr/sbin/nologin表示禁止用户shell登录。

    所以:要拒绝系统用户登录,可以将其shell设置为/usr/sbin/nologin或者/bin/false

    还有一种方法禁止所有非root用户shell登录, touch /etc/nologin 里面可以有内容也可以为空,就可以了。创建这个文件好了之后,非root用户就

    不能shell 登录这台linux系统了。非常酷吧!

    人生的路,终归是要靠自己走,别人谁也无法替代。 —— 思诺(saynoer)

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

    原文:http://openwares.net/linux/refuse_login.html

    要拒绝系统用户登录,可以将其shell设置为/usr/sbin/nologin或者/bin/false

    1
    # usermod -s | --shell /usr/sbin/nologin username

    或者

    1
    # usermod -s | -shell /bin/false username

    /bin/false

    /bin/false什么也不做只是返回一个错误状态,然后立即退出。将用户的shell设置为/bin/false,用户会无法登录,并且不会有任何提示。

    /usr/sbin/nologin

    nologin会礼貌的向用户显示一条信息,并拒绝用户登录:

    This account is currently not available.

    有一些软件,比如一些ftp服务器软件,对于本地非虚拟账户,只有用户有有效的shell才能使用ftp服务。这时候就可以使用nologin使用户即不能登录系统,还能使用一些系统服务,比如ftp服务。/bin/false则不行,这是二者的重要区别之一。

    /etc/nologin

    如果存在/etc/nologin文件,则系统只允许root用户登录,其他用户全部被拒绝登录,并向他们显示/etc/nologin文件的内容

    锁定用户账户

    锁定用户账户

    1
    # passwd -l | --lock username

    #解锁用户账户

    1
    # passwd -u | --unlock username

    删除用户密码

    1
    # passwd -d | --delete username

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

    参考:

    早上来了没什么事看会鸟哥的Linux私菜房,看看用户管理的相关东西。知道了Linux用户管理最重要的两个文件就是/etc/passwd和/etc/shadow这两个文件。其中/etc/passwd是用来存储登陆用户信息的,它的基本格式如下:

        root:x:0:0:root:/root:/bin/bash

        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。

        当我看到这里的时候,我就去登陆我们实验室的服务器,打开/etc/passwd这个文件,里面果然有很多的类似上面格式的用户账号信息。由于我们实验室服务器开放了ftp服务,而我正好有一个ftp的账号,我看到我的账号信息是这样的lxb:x:530:525::/opt/ftp:/sbin/nologin,通过上面的学习,我觉得它的意思大概是这样的,用户名是lxb,x表示密码经过加密放到/etc/shadow文件中了,UID是530,GID是525,访问的目录是/opt/ftp,我看了一下,这个目录下的内容正好是我登陆ftp后所看到的,至于最后一个/sbin/nologin,应该是登录时候使用的shell,但是它为什么是nologin呢,难道不让我登陆吗?

        于是我用root权限登陆到里面,把后面的/sbin/nologin改成了/bin/bash,重新用ssh进行登陆,真的登陆进去了,而且登陆后的目录正好是/opt/ftp。但是我的权限依旧没有改变,很多文件还是打不开。于是我明白了,这个nologin的作用就是限制某些用户通过ssh登陆到shell上。有时候为了进行系统维护工作,临时禁止其他用户登录,可以使用 nologin 文件,具体做法是在/etc/目录下创建一个名称为 nologin 的文件。例如:

        #touch /etc/nologin

        这样将禁止随后的用户登录到系统中。禁止用户登录时,/etc/nologin 文件中的内容将会显示给用户,会一闪而过。例如,按如下方式创建 nologin 文件:
        disable login by admin temperarily!

        当用户试图登陆时,将会给用户显示"disable login by admin temperarily!",当系统维护结束以后,再删除/etc/nologin文件,其他用户就又可以恢复登陆了,这只是限于能登陆shell的用户来说的,对于那些登陆shell为/sbin/nologin的用户来说没有影响,因为他们本身就无法登陆shell。

  • 相关阅读:
    CENTOS安装部署zabbix
    分解XML方法
    Git使用摘要
    POJ 1274 The Perfect Stall 水二分匹配
    [leetcode]Pascal's Triangle II
    swift学习笔记(六)析关闭过程和使用分配给属性的默认值
    Qt学习一门:直接使用QT具
    mybatis13 resultMap
    mybatis12 Usermapper.xml
    mybatis11 sqlMapConfig.xml文件说明
  • 原文地址:https://www.cnblogs.com/oxspirt/p/6295549.html
Copyright © 2011-2022 走看看