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

    用户及用户组管理

    目录:

    1、useradd   2、userdel   3、usermod    4、groupadd   5、groupdel

    用户管理

    为什么需要有用户?

    1. linux是一个多用户系统    2. 权限管理(权限最小化) 

    用户:存在的目录是为了对系统中的资源做归属

    密码:存在的目的是为了对用户做身份认证

    在用户组中可以包含一个或者多个用户,方便对多个用户进行授权操作 

    用户管理相关文件 

    /etc/passwd:用户基本信息

    /etc/shadow:用户密码信息、过期时间

    /etc/group:用户组信息  ls -l

    /etc/gshadow:用户组密码

    /etc/default/useradd:创建用户的默认配置信息

    /etc/skel/:用户家目录模板

    /etc/login.defs:全局用户设定信息

    /etc/passwd: 每行是一个用户,用来记录用户的基本信息,每行的格式

    account:password:UID:GID:GECOS:directory:shell

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

    用户名    密 码    用户id   用户所在组的id       描述信息          家目录      shell类型   

    1、accout:用户名 (root)

    2、password:用户密码,密码位置默认是x

    3、UID:用户身份id,用来唯一的标识一个用户,(第一个零)

    4、GID:用户组id,用来在系统中唯一的标识一个用户组(这里指的是其基本组的组ID)(第二个零)

    5、GECOS:用户描述信息,可以空白,也可以随意写(useradd -c )

    6、directory:用户家目录

    7、shell:用户所使用的shell类型

      /bin/bash-->可以登录系统

      /sbin/nologin-->该用户一定无法登录系统

    密码最短为五位。 

    /etc/group  用户组信息

    linux,用户一定是属于一个组的

    在linux中,创建用户的时候,会自动创建一个组,组名和组id都和所创建的用户相同,而且,该用户会自动加入到这个组中

          c     :  x  :1007:

    组成:groupname:password:GID: [user1, user2.....]

    groupname:组名

    password:组密码

    GID:组id

    [user1, user2.....]:改组中的用户列表

    最主要的三类文件: default  / passwd / useradd 

    /etc/default/useradd

     定义创建用户默认选项的文件

    # useradd defaults file       # useradd默认文件

    GROUP=100               #表示可创建普通组

    HOME=/home             #用户的家目录建在/home中;用户家目录的默认创建地

    INACTIVE=-1               #是否启用帐号过期停权,-1表示不启用;宽限天数,0及以下数皆为无效数字

    EXPIRE=                   #帐号终止日期,不设置表示不启用;帐号失效日期(如:20081212)

    SHELL=/bin/bash(默认配置可登录)            #所用SHELL的类型;登录后执行的程序

    SKEL=/etc/skel              #用户家目录中的环境文件,默认添加用户的目录默认文件存放位置;也就是说,当我们用adduser添加用户时,用户家目录下的文件,都是从这个目录中复制过去的;

    CREATE_MAIL_SPOOL=yes    #是否创建用户邮件缓冲,yes表示创建

    Linux中的用户类别

    1、root :超管用户,唯一可以登录系统的用户

    root 管理员用户:uid 为0的用户

    普通用户:自己创建的,就是可以登录系统,但是没有管理员权限的用户,uid : 1000-60000

    不能登录系统的用户:

    系统用户:用来运行一个程序,可以登录,但为了安全,而不是用来登录系统(sbin nologin),uid:1 - 999    

    系统用户的特点

    1. 因为不需要登录,所以 shell 类型通常为 /sbin/nologin

    2. 系统用户没有家目录,因此没有模板。

    3. 系统用户 id 通常是小于1000

    Useradd命令

    添加用户:# useradd [options] username    查看# id username

    # tail /etc/group   :查看组。

    options(选项):

    -d, --home HOME_DIR:指定用户家目录,,不需要指定。

    -c, --comment COMMENT:用户说明信息     cat

    -e, --expiredate EXPIRE_DATE:指的账号的过期时间,时间格式 YYYY-MM-DD

    -g, --gid GROUP:指的用户的基本组的组id(主组只有一个),默认同名组和用户名一样。

      不会自动创建,需要先建

    -G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:指的用户的附加组列表

    -u,--uid UID:指的用户的 uid

    -m, --create-home:创建用户的时候自动创建用户家目录(默认就已经使用,不需要指定)

    -M:不自动创建用户家目录

    -o, --non-unique:通常和-u一起使用,用来让两个用使用相同的uid,当两个用户的id相同无法创建时,可以加 -o 。

    -r, --system:创建一个系统用户

    -s, --shell SHELL:在创建用户的时候,指定用户的shell类型

        (/bin/bash/,/sbin/nologin)     

      # useradd -r -s /sbin/nologin username  (加了-s 后不能登陆,则# su username 无法执行)

     # useradd -u 1006 ken4 (系统用户也可以指定 -u )

    创建一个系统用户

    # useradd -s /sbin/nologin -M -r ken 

    # exit

    passwd命令

    # passwd [[options] username]

    (如果不指定用户名,那么就是修改当前用户的密码)

    # cat /etc/passwd

    options:

    --stdin

    -l:锁定用户,无法登陆。(lock)

    -u:解锁用户(unlock)

    -d:删除用户密码

    # exit

    -e:让用户密码过期

    echo “ 123“ | passwd --stdin ken    批量创建,自动化运行。

    表示给 ken 用户设置密码123 (ken用户必须存在)

    设置密码的原则

    1. 长度要够

    2. 密码复杂度(数字+字母+特殊符号)

    Userdel命令

    删除用户 userdel

    userdel [options] username

    options:

    -r:在删除用户的时候,连同用户数据一并删除  删掉家目录。

    创建用户组 groupadd

    # groupadd [options] groupname

    For:

      # groupadd cat  (创建cat用户组),# tail /etc/group  (查看是否创建成功,# id 只能用来查看用户,不能查看用户组)

      # groupadd dog 

      # useradd -r -s /sbin/nologin -u 660 -g cat -G dog ken9

        (-u 可以指定,-g 和-G 需要提前创建)

    options:

    -g GID:

    -o:

    删除用户组 groupdel 

    # groupdel groupname

    Shadow文件详解  

    记住用户的用户名及相关信息。

     zxhk:  $6$dgnPoZ0s$6xNKEWz : 17729 : 0 : 99999 :  7  :   :   :   

    第一段:用户名:  

    第二段:加密后的密码      

    第三段:上次修改密码举例元年经过的天数1970年1月1日,经过多少天(如果该字段空,意味着该用户密码被禁用)

    第四段:密码最短使用时间(0表示不限制)

    第五段:密码最长有效期(99999表示不限制)(如果第5的值小于第四段,那么用户无法修改自己的密码)

    第六段:7,,密码到期前几天开始发送告警,提示密码即将过去,请立即修改

    第七段:非活动期间,密码到期后的宽限时间(登录系统的时候必须先修改密码,才能登录)

    第八段:密码过期时间,是个空说明没有过期时间。

    第九段:保留字段(最后一个冒号后面的内容)

    常常听到:我的密码忘记或者被更动了?怎么办?
     
      有的时候会发生这样的情况,就是说,你的 root 密码忘记了!要怎么办?重新安装吗?另外, 有的时候是被入侵了, root 的密码被更动过,该如何是好?
    For:
    1、先建立 ken3 文件: # useradd ken3       并设置密码:# passwd ken3   
    2、查看 ken3 的密码: # tail /etc/shadow   确认存在加密后的 ken3 密码。
       当 # su ken7  ,然后再 # su ken3  需要输入密码。然后 # exit  退出,然后删掉 ken3 的密码。
      有两种办法:
      1、在 root 下 # vim /etc/shadow    ,找到 ken3 的密码,然后删掉(保留最后两个冒号结尾)。
        :wq  保存退出。
      2、# passwd -d ken3   # tail /etc/shadow    ken3 的密码已不存在。
    3、然后 # su ken7   ,再 # su ken3,,此时无输入密码的提示,可直接登陆。
    4、# passwd ken3 ,为ken3重新设置密码。
      这个时候就必须要使用到 /etc/shadow 这个资料了!我们刚刚知道密码是存在这个档案中的, 所以只要你能够以各种可行的方法开机进入 Linux ,例如单人维护模式,或者是以 live CD (KNOPPIX) 来进入 Linux 系统。之后,将硬碟顺利挂载,然后进入 /etc/shadow 这个档案中,将 root 的密码这一栏全部清空!然后再登入 Linux 一次,这个时候 root 将不需要密码 (有的时候需要输入空白字元) 就可以登入了!这个时候请赶快以 passwd 设定 root 密码即可。 

    Usermod命令

    usermod [options] username   (修改用户信息)

    options

    -g, --gid GROUP: 更 新 使 用 者 新 的 起 始 登 入 群 组 。 群 组 名 须 已 存 在 。

    -G, --groups GROUP1[,GROUP2,...[,GROUPN]]]: 定  义  使 用 者 为 一 堆 groups 的 成 员 。 每 个 群 组 使 用 ,区 格 开 来

    -u, --uid UID: 用 者 ID 值 。必 须 为 唯 一 的 ID 值 

    -s, --shell SHELL: 指 定 新 登 入 shell 。 如 此 栏 留 白 , 系 统 将 选 用 系 统 预 设 shell 。

    -L, --lock: 锁定用户的密码

    -U : 解锁用户的密码

    -l, --login NEW_LOGIN : 变 更 使 用 者 login 时 的 名 称 为 login_name 。

    -e, --expiredate EXPIRE_DATE:加 上 使 用 者 帐 号 停 止 日 期 。 日 期 格 式 为 MM/DD/YY. 如十月一日: -e 10/1

    -d, --home HOME_DIR:更 新 使 用 者 新 的 登 入 目 录 。

    -m, --move-home:移动用户家目录至新的位置

    查看有哪些组:# tail /etc/group

    查看有哪些用户: # tail -5 /etc/passwd 

    更改用户信息:# usermod -u 1020 -g 1010 -s /sbin/nologin -e 10/1 ken11

           # tail /etc/shadow

    (在更改用户信息前,已经存在 ken11 用户,并且已设置其uid,主组,登录方式等)

        默认的过期时间是以天为单位的,如需计算,可建计算器。# bc  安装过程:

        # yum install bc -y

        # mount /dev/cdrom /mnt

        # yum install bc -y    至出现complete。

      计算过程:# bc    回车。用倒数第二个冒号后的数字减去第二个冒号后的数字,回车,就是距离到期日还有多少天。 快捷键 Ctrl + C 退出。

    id命令

    作用:用来查看指定的用户的信息(或判断用户是否存在)

    格式:id [-u|-g|-G] username

    选项

    -u:仅仅显示用户uid,最大为60000

    -g:仅仅显示用户gid(主组)

    -G:仅仅显示用户全部组id (属组)

    直接 # id username  就可以全部显示。

    su命令(switch user) 

    作用:进行切换用户

    格式:su - 目标用户

    su命令和su -命令最大的本质区别就是:

    前者只是切换了 root 身份,但Shell环境仍然是普通用户的 Shell;而后者连用户和Shell环境一起切换成 root 身份了。只有切换了 Shell 环境才不会出现PATH环境变量错误。su 切换成 root 用户以后,pwd一下,发现工作目录仍然是普通用户的工作目录;而用 su - 命令切换以后,工作目录变成 root 的工作目录了。用 echo $PATH命令看一下 su 和 su - 以后的环境变量有何不同。以此类推,要从当前用户切换到其它用户也一样,应该使用 su - 命令

    For :在 root 下# su ken8   ,然后查看 # pwd   用户此时依然在 /root 目录下。# exit

        加“-” 可以彻底转换 :# su - ken8 ,然后# pwd  用户此时在 /home/ken8 下。# exit

    删掉 ken8 目录后怎样重新恢复 ken8 目录??

    1、# rm -rf /home/ken8/

    2、# su - ken8   出现 “-bash” :提示用户家目录及模板已被删除。# exit  此时,

    3、# ls /etc/skel/ -la 查看隐藏文件。需要复制隐藏文件。

    4、# mkdir /home/ken8   重建ken8文件,

    5、# cp /etc/skel/.bash*  /home/ken8    复制 .bash 开头的所有文件到 ken8

    6、# su ken8

    .......懒人回复方式,请不要重复点击,以免页面崩溃......


    作者:WIU1905
    出处:http://www.cnblogs.com/WIU1905/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    swoole 安装方法 使用即时聊天
    git的介绍以及简单应用
    curl的应用
    linux下监听和同步代码配置
    mac skim 修改背景色
    php 编译安装的一个 configure 配置
    mac mysql error You must reset your password using ALTER USER statement before executing this statement.
    yii2 控制器里 action 大小写组合造成的路由问题
    warning : json_decode(): option JSON_BIGINT_AS_STRING not implemented in xxx
    redis 自启动脚本
  • 原文地址:https://www.cnblogs.com/WIU1905/p/10653817.html
Copyright © 2011-2022 走看看