• 用户组管理


     为什么要有用户

    1. Linux系统是一个多用户系统

    2. 权限管理

    用户:为了对系统中的资源做归属

    密码:为了对用户做身份认证

    在用户组中可以包含多个用户

    方面对多个用户进行授权操作

    管理的相关文件

    /etc/passwd:用户基本信息

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

    /etc/group:用户组信息

    /etc/gshadow:用户组密码

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

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

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

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

    /etc/passwd文件解析:

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

    accout:用户名

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

    UID:用户身份id,用来唯一的标识一个用户

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

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

    directory:用户家目录

    shell:用户所使用的shell类型(包括下面2种)

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

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

    /etc/group文件解析

    用户组信息

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

    在linux中,创建用户的时候,

    会自动创建一个组,组名和组id都和所创建的用户相同

    而且,该用户会自动加入到这个组中

    groupname:passwd:GID:{user1,user2}

    组名:密码:组ID:组用户列表

    主组和附加组

    在Linux系统中创建每个用户时,将自动创建一个与其同名的基本用户组,而且这个基本用户组只有该用户一个人。如果该用户以后被归纳入其他用户组,则这个其他用户组称之为扩展用户组。一个用户只有一个基本用户组,但是可以有多个扩展用户组

    用户的基本组(主组):当前用户具有哪个组的权限

    用户的附加组:用户额外属于的组

    /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表示创建

    可以登录系统的用户

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

    普通用户:就是可以登录系统,但是没有管理员权限的用户

    不能登录系统的用户:

    系统用户:用来运行一个程序,而不是用来登录系统

    管理员UID为0:系统的管理员用户。

    系统用户UID为1~999: Linux系统为了避免因某个服务程序出现漏洞而被黑客提权至整台服务器,默认服务程序会有独立的系统用户负责运行,进而有效控制被破坏范围。

    普通用户UID从1000开始:1000-60000(自定义uid最大4294967294)是由管理员创建的用于日常工作的用户。

    系统用户的特点

    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/nologin)

    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:

    -o:

    groupadd命令

    groupdel groupname

    shadow文件解析

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

     第一段:用户名:

    第二段:加密后的密码

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

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

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

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

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

    第八段:密码过期时间(也是举例计算机元年经过的天数)(这里和前面的几个时间没有联系)

    第九段:保留字段

    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命令

    作用:进行切换用户

    格式:su – 目标用户

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

    前者只是切换了root身份,但Shell环境仍然是普通用户的Shell;而后者连用户和Shell环境一起切换成root身份了。只有切换了Shell环境才不会出现PATH环境变量错误。su切换成

    root用户以后,pwd一下,发现工作目录仍然是普通用户的工作目录;而用su -命令切换以后,工作目录变成root的工作目录了。用echo $PATH命令看一下su和su -以后的环境变量有

    何不同。以此类推,要从当前用户切换到其它用户也一样,应该使用su -命令

  • 相关阅读:
    Vue-发布订阅机制(bus)实现非父子组件的传值
    01. jupyter环境安装
    人工智能
    Javascript
    JavaScript
    MongoDB
    MongoDB
    人工智能
    Flask
    Flask
  • 原文地址:https://www.cnblogs.com/1011cjk/p/10839287.html
Copyright © 2020-2023  润新知