• 用户及用户组管理


    本节内容
    useradd
    userdel
    usermod
    groupadd
    groupdel
    用户管理
     
    为什么需要有用户?
    1. linux是一个多用户系统
    2. 权限管理(权限最小化)
    用户:存在的目的是为了对系统中的资源做归属
    密码:存在的目的是为了对用户做身份认证
     
    用户组:在用户组中可以包含一个或者多个用户
    方便对多个用户进行授权操作
     
    用户管理相关文件
     
    /etc/passwd:用户基本信息
    /etc/shadow:用户密码信息、过期时间等
    /etc/group:用户组信息
    /etc/gshadow:用户组密码
    /etc/default/useradd:创建用户的默认配置信息
    /etc/skel/:用户家目录模板
    /etc/login.defs:全局用户设定信息
    /etc/passwd: 每行是一个用户,用来记录用户的基本信息,每行的格式
    account:password:UID:GID:GECOS:directory:shell
     
    accout:用户名
    password:用户密码,密码位置默认是x
    UID:用户身份id,用来唯一的标识一个用户
    GID:用户组id,用来在系统中唯一的标识一个用户组(这里指的是其基本组的组ID)
    GECOS:用户描述信息,可以空白,也可以随意写(useradd -c )
    directory:用户家目录
    shell:用户所使用的shell类型
    /bin/bash-->可以登录系统
    /sbin/nologin-->该用户一定无法登录系统
     
    比如
     root   :   x   :    0    :       0       :   newuser  :  /root  :  /bin/bash
    用户名    密 码    用户id   用户所在组的id  描述信息    家目录    shell类型   
     
    /etc/group:用户组信息
    linux,用户一定是属于一个组的
    在linux中,创建用户的时候,
    会自动创建一个组,组名和组id都和所创建的用户相同
    而且,该用户会自动加入到这个组中
     
    c:x:1007:
    组成:groupname:password:GID: [user1, user2.....]
    groupname:组名
    password:组密码
    GID:组id
    [user1, user2.....]:该组中的用户列表
      
    概念
    用户的基本组(主组):当前用户具有哪个组的权限
    用户的附加组:用户额外属于的组
     
    zx
    主组:gp02
    附加组:gp01、gp03
     
    /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中的用户类别
    可以登录系统的用户
    管理员用户:uid为0的用户
    普通用户:就是可以登录系统,但是没有管理员权限的用户
    不能登录系统的用户:
    系统用户:用来运行一个程序,而不是用来登录系统
     
    各类用户的id
    管理员用户:0
    系统用户:1-999
    普通用户:1000-60000
     
    系统用户的特点
    1. 因为不需要登录,所以shell类型通常为/sbin/nologin
    2. 系统用户没有家目录
    3. 系统用户id通常是小于1000
     
    Useradd命令
     
    useradd [options] username
    options:
    -d, --home HOME_DIR:指定用户家目录(了解)
    -c, --comment COMMENT:用户说明信息(了解)
    -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
    -r, --system:创建一个系统用户
    -s, --shell SHELL:在创建用户的时候,指定用户的shell类型
    (/bin/bash/,/sbin/nlogin)
     
    创建一个系统用户
    # useradd -s /sbin/nologin -M -r ken
    创建用户/shell类型/-M(不自动创建用户家目录)/创建系统用户  用户名
     
    passwd命令
     
    passwd options username
    (如果不指定用户名,那么就是修改当前用户的密码)
    options:
    --stdin
    -l:锁定用户
    -u:解锁用户
    -d:删除用户密码
    -e:让用户密码过期
    echo “ 123“ | passwd --stdin ken
    表示给ken用户设置密码123 (ken用户必须存在)
    设置密码的原则
    1. 长度要够
    2. 密码复杂度(数字+字母+特殊符号)
     
    Userdel命令
     
    删除用户 userdel
    userdel [options] username
    options:
    -r:在删除用户的时候,连同用户数据一并删除
     
    创建用户组 groupadd
    groupadd [options] groupname
    options:
    -g GID:
    查看已创建用户组:tail  -1  /etc/group
     
    删除用户组 groupdel
     
    groupdel groupname
     
    Shadow文件详解  
     
    zxhk:  $6$dgnPoZ0s$6xNKEWz : 17729 : 0 : 99999 :  7  :   :   :    
    第一段:用户名:  
    第二段:加密后的密码      
    第三段:上次修改密码举例元年经过的天数1970年1月1日(如果该字段空,意味着该用户密码被禁用)
    第四段:密码最短使用时间(0表示不限制)
    第五段:密码最长有效期(99999表示不限制)(如果第5的值小于第四段,那么用户无法修改自己的密码)
    第六段:密码到期前几天开始发送告警,提示密码即将过去,请立即修改
    第七段:非活动期间,密码到期后的宽限时间(登录系统的时候必须先修改密码,才能登录)
    第八段:密码过期时间(也是举例计算机元年经过的天数)(这里和前面的几个时间没有联系)
    第九段:保留字段
    常常听到:我的密码忘记或者被更动了?怎么办?
     
      有的时候会发生这样的情况,就是说,你的 root 密码忘记了!要怎么办?重新安装吗?另外, 有的时候是被入侵了, root 的密码被更动过,该如何是好?
     
      这个时候就必须要使用到 /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.
    -d, --home HOME_DIR:更 新 使 用 者 新 的 登 入 目 录 。
    -m, --move-home:移动用户家目录至新的位置
     
    id命令
     
    作用:用来查看指定的用户的信息(或判断用户是否存在)
    格式:id [-u|-g|-G] username
    选项
    -u:仅仅显示用户uid
    -g:仅仅显示用户gid
    -G:仅仅显示用户全部组id
     
    su命令(switch user)
     
    作用:进行切换用户
    格式:su - 目标用户
    su命令和su -命令最大的本质区别就是:
    前者只是切换了root身份,但Shell环境仍然是普通用户的Shell;而后者连用户和Shell环境一起切换成root身份了。只有切换了Shell环境才不会出现PATH环境变量错误。su切换成
    root用户以后,pwd一下,发现工作目录仍然是普通用户的工作目录;而用su -命令切换以后,工作目录变成root的工作目录了。用echo $PATH命令看一下su和su -以后的环境变量有
    何不同。以此类推,要从当前用户切换到其它用户也一样,应该使用su -命令
     
    练习
     
    1. 创建用户java,uid 1000 基本组是gp001 附加组 gp002 gp003 
    2. 修改用户java,
    将名称修改为python,
    将uid修改为 2000,
    修改主组是cats,
    shell类型改为 /sbin/nologin
    让该用户在10月1号到期
     
     
     
    答案:
    1. 
    [root@ken ~] # useradd -u 1000 -g gp001 -G gp002,gp003  java
     
    2.修改用户名
    [root@ken ~]# usermod -l python -u 2000 -g cats -s /sbin/nologin -e 10/01 java

    人生一世,草木一秋。 众生无我,苦乐随缘。
  • 相关阅读:
    [Go] golang http下返回json数据
    [Go] Golang练习项目-邮箱imap网页版客户端工具
    [Go] 提供http服务出现两次请求以及处理favicon.ico
    [Go] 转换编码处理网页显示乱码
    [Go] go转换gbk为utf8
    [Go] golang x.(type) 用法
    [GO] go语言中结构体的三种初始化方式
    [PHP] create_function() 代码注入问题已经被弃用
    [Git] 彻底删除github上的某个文件以及他的提交历史
    [javascript] vuejs的elementui实现父子iframe通信
  • 原文地址:https://www.cnblogs.com/hao6/p/12863283.html
Copyright © 2020-2023  润新知