zoukankan      html  css  js  c++  java
  • Linux学习之用户管理

    /etc/passwd

    Linux系统将用户信息保存在文件/etc/passwd中

    文件中一行代表一个用户,所以文件有多少行就代表系统有多少用户。每一行都被用冒号隔开分成7个字段,我们先了解下这些字段所代表的意义

    以第一行系统管理员账户root来说明

    字段1:root------代表用户名

    字段2:X------代表此用户的登录密码,出于安全性考虑,此文件中的密码都以X展示,用户真正的密码被保存在影子文件中,也就是/etc/shadow中

    字段3:0------代表此用户的UID(用户ID)

    字段4:0------代表此用户的GID(用户所属组ID)

    字段5:root------用户的详细描述

    字段6:/root------用户的家目录

    字段7:/bin/bash------用户使用的脚本类型

    UID为0,即为root,拥有系统的最高权限。1-499则为系统保留账号,用户创建的账号往往在500以后

    /etc/shadow

    与/etc/passwd相似,/etc/shadow被冒号分割成了9个字段

    字段1:用户账号,如root。这个字段代表的用户账号一定存在于/etc/passwd中

    字段2:密码,此密码为加密的密码。以$6$开头的,如root用户的密码,代表使用SHA-512加密的;$1$,代表用MD5加密;$2$,代表用Blowfish加密;$5$,代表用SHA-256加密。我们也会看到图中有的账户密码是"*"或者"!!",这些特殊的字符往往代表特殊的含义。"*"代表账号被锁定,"!!"代表密码已过期

    字段3:最近一次修改密码的日期。但是我们会注意到,这个字段并不是以我们所熟识的日期格式来显示,而是以诸如17110这样的数字来显示。原因是Linux将1970年1月1日作为1,17110即为1970年1月1日到上次修改密码之间的天数

    字段4:密码不可被更改的天数。如果是0,表示随时可以修改,如上图,root账户可以随时修改自己的密码;而如果是8或20这样大于0的数,表示此账户在8天或20天内不可修改密码

    字段5:密码需要修改的期限。如果是99999,如root,表示可以用户不用改,而如果是其他数字,如12345,则表示在距离1970年1月1日的12345天内必须修改密码,否则密码失效

    字段6:密码变更期限前的警告期限。如果第5个字段设置了密码必须在某一天被修改,那么系统将会在此字段设置的天数前向用户发出修改密码的警告,如此字段设置为6,则会在密码需要修改权限的前6天向用户发出警告

    字段7:密码的失效日期,这个日期跟字段3一样,以距1970年1月1日的天数来定。假设设置为M天,这账号过期的M天内密码是可以修改的,修改之后账户可以继续使用

    字段8:账号的失效日期,同字段3,如果被被设置为N天,则在N天后,账号无法使用

     字段9:系统保留字段,暂无实际意义

    用户账号操作

    在了解了账号的一些信息之后,我们会有创建用户、修改用户、删除用户的需求

    创建或新增一个用户账号,我们可以用useradd命令来完成

    如我们新增一个test用户后,再查看/etc/passwd系统已经生成了此用户的相关信息,系统会为用户创建一个GID与UID相同的组,以及默认的家目录及shell类型

    我们也可以使用useradd的其他参数来帮助我们创建符合要求的账户

    如:useradd -p 123456  testUser 在创建用户testUser时,给其指定一个密码

    查看/etc/passwd,系统已经生成了相关信息。既然我们给用户指定了密码,那么我来查看一下密码文件

    我们可以看到在第二个字段,已经保存了在创建时给定的密码。

    在解释/etc/shadow文件时,我们了解到此文件保存的密码都是密文,而testUser用户的密码为何却是明文呢?我们来看一下useradd -p参数的使用方法

    原来,useradd -p之后的密码应该是经过加密后的密码(encrypted password),因为创建testUser时的密码没有加密,所以/etc/shadow中才会明文显示

    useradd -u 1666 testUser1 在创建testUser1时,指定其UID

    useradd -g 1000 testUser2 在创建testUser2时,指定其GID

    值得注意的是,给用户指定的GID,必须是真实存在系统中的,否则会报:useradd : group '1000' does not exist

    其他还有很多的参数共我们使用,当我们想了解一个命令的详细用法时,可以使用"man 命令"来查看此命令的详细用法 

    在创建完用户后,我们可能会需要修改用户的相关信息,此时usermod可以帮助你来完成这项工作

    如修改testUser1的GID和UID

    testUser1的原始UID和GID都是1666,现在我们用usermod来修改

     

    经过修改之后,/etc/passwd中testUser1的GID和UID便改变了,与useradd相同,更改的GID必须是系统里真实存在的

    usermod还有很多其他有用的参数

    我们在日常的使用中会逐渐熟悉它们

    修改用户的密码 如 : passwd testUser1 修改testUser1的密码

    系统会让输入新密码及确认密码,当密码过短或过于简单时,系统会给出警告信息

     再查看/etc/shadow时,testUser1已被设置了新密码

    删除用户 userdel testUser2 删除testUser2

    我们可以看到,testUser2已经被删除

  • 相关阅读:
    按字母分类的产品组件
    container中的内容 垂直-水平居中
    安卓手机--键盘谈起后 fixed背景图片被键盘顶起的问题
    清除样式的css
    vue 路由(二级)配置及详细步骤
    vue 路由 URL传参
    路由表的组件群
    vue 路由传参
    vue 路由入门(vue-router)
    jQuery对文档的操作
  • 原文地址:https://www.cnblogs.com/zhaohongtian/p/6808922.html
Copyright © 2011-2022 走看看