• Linux用户和组的概念


    1 用户和组存在的关系    1

    1.1 我们现在所使用的操作系统都是多用户操作系统    1

    1.2 id命令查看当前登陆的用户信息    1

    1.3 用户UID的分类    1

    1.4 组类别    1

    2 用户管理*****    1

    2.1 配置文件    1

    2.1.1 用户的账户文件    1

    2.1.2 用户的密码文件    1

    2.1.3 使用chage更改用户密码使用情况    1

    2.1.4 练习    1

    3 Linux用户命令****    1

    3.1 使用useradd命令新增账户,注意:adduser命令软链接指向useradd命令    1

    3.2 使用usermod命令修改用户组    1

    4 用户创建的原理***    1

    5 密码管理***    1

    5.1 密码的设置    1

    5.2 需要注意:    1

    6 组命名管理**    1

    7 身份切换*****    1

    8 sudo提升权限*****    1

    1. 用户和组存在的关系

    2.     我们现在所使用的操作系统都是多用户操作系统

              1、系统上的每一个进程(运行程序)都需要特定的用户运行=

              2、每一个文件都有特定的用户拥有

              3、访问文件或目录受用户限制

              3、进程能够以任何方式访问某个文件或者目,进程所关联的用户有关

    3. id命令查看当前登陆的用户信息

    [root@majinhai ~]# id root

    uid=0(root) gid=0(root) 组=0(root)

     

    1. 用户UID的分类

      1. UID范围是0-65535216次方
      2. 超级管理员的UID0
      3. 1-200是系统用户,有系统分配给进程使用
      4. 201-999是系统用户,用来运行服务账户,不需要登录系统(动态分配)
      5. 1000-65535是普通用户
      6. 注意:Linux7之前的惯例是UID1-499是系统用户,UID500+是普通用户
    2. 组类别

      1. 基本组:优先使用基本组,由系统分配给系统进程使用
      2. 附加组:基本组不能满足授权要求,创建附加组,用户可以属于多个附加组
      3. 私有组:创建用户时如果没有指定属组,系统会创建同名的组
    3. 用户管理*****

    4. 配置文件

        用户信息存放在/etc/passwd文件中,账户密码信息保存在/etc/shadow这个文件中,这两个文件是Linux系统中最重要的文件之一。如果这两个文件损坏或者丢失,将导致用户无法登陆Linux系统。

    1. 用户的账户文件

        账户文件路径/etc/passwd

    [root@majinhai ~]# head -1 /etc/passwd

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

    账户信息是由:分割成7个字段,每个字段的含义如下:

    序号

    字段名称

    注释说明

    1

    用户名称

    用户的账户名称

    2

    密码占位符

    存放账户的口令,暂时是x表示,密码保存在/etc/shadow

    3

    用户的UID

    用户标识号

    4

    用户基本组GID

    组标识号

    5

    用户注释

    用户的详细信息

    6

    用户家目录

    用户家目录,root家目录是/root普通用户的家目录在/home/username,可自定义

    7

    用户登陆的shell

    用户登陆的linux使用的shell cat/etc/shells

     

    1. 用户的密码文件

    密码文件路径/etc/shadow

    [root@majinhai ~]# head -1 /etc/shadow

    root:$6$xX6yVcKAazqMGA77$.bKMJECopM3l4CvaS8::0:99999:7:::

     

        密码文件由:分割成9段,每个字段具体含义如下:

    序号

    字段名称

    注释说明

    1

    用户登录名

    用户的账户名称

    2

    加密后的密码

    用户密码,这是加密过的口令(未设置密码为!!)

    3

    最后一次密码更改时间

    1970年到最近一次更改密码时间之间过了多少天

    4

    密码最少使用几天

    密码最少使用几天才可以更改密码(0表示无限制)

    5

    密码最长使用几天

    密码使用多少天需要修改密码(默认99999永不过期)

    6

    密码到期前警告期限

    密码过期前多少天提醒用户更改密码(默认过期提前7天警告)

    7

    密码到期后保持活动的天数

    在此期限内, 用户依然可以登陆系统并更改密码, 指定天数过后, 账户被锁定

    8

    账户到期时间

    1970年起,账户在这个日期前可使用,到期后失效

    9

    标志

    保留

    密码格式$a$b$c

    a:表示加密算法

    b:表示salt 随机值

    c:表示加密后的值

    1. 使用chage更改用户密码使用情况

        -d 设置最近一次更改密码时间, 0下次登陆系统强制修改密码

        -m 设置用户两次改变密码之间使用"最小天数"

        -M 设置用户两次改变密码之间使用"最大天数"

        -W 设置密码更改警告时间 将过期警告天数设为"警告天数"

        -I 设置密码过期天数后, 密码为失效状态

        -E 设置用户过期时间, 账户失效后无法登陆

        -l 显示用户信息

    1. 练习

    设置时间为2010年5月15日

    [root@majinhai ~]# date -s 20100515

    2010年 05月 15日 星期六 00:00:00 CST

    新建一个普通用户admin

    [root@majinhai ~]# useradd admin

    设置密码为123456

    [root@majinhai ~]# echo "123456" | passwd --stdin admin

    更改用户 admin 的密码 。

    passwd:所有的身份验证令牌已经成功更新。

    查看admin的密码信息

    [root@majinhai ~]# tail -1 /etc/shadow

    admin:$6$f11exkhB$8e. 9KZkJ2p9MZiFQLC9DCvS/K2U1:14743:0:99999:7:::

    设置最近一次修改密码时间

    [root@majinhai ~]# chage -d 2010-05-18 admin

    [root@majinhai ~]# tail -1 /etc/shadow

    admin:$6$f11exkhB$8e.MCZkzHDqrqrTeHSAJXUmlbPsiWIYnHXphdm2tjjoNFHvinyq0AMlRfAsyj9KZkJ2p9MZiFQLC9DCvS/K2U1:14747:0:99999:7:::

    设置最短使用密码时间

    [root@oldboy ~]# chage -m 1 admin

    [root@oldboy ~]# tail -1 /etc/shadow

    admin:$6$cpHfgk6q$BJp0n.gIT4T1pI7vKDeM9xeEsLBov4d36u/whLWxXHh6xjoJdQ.AOwERGS5b1seQ4BvkGUbERGFVN4JLkOWLo1:17757:1:99999:7:::

    WARNING: Your password has expired.        #警告:你的密码已过期

    You must change your password now and login again!    #您必须立即修改密码并重新登录

    更改用户 admin 的密码 。

    为 admin 更改 STRESS 密码。

    (当前)UNIX 密码:

    设置最长时间

    [root@oldboy ~]# chage -M 20 admin

    [root@oldboy ~]# tail -1 /etc/shadow

    admin:$6$cpHfgk6q$BJp0n.gIT4T1pI7vKDeM9xeEsLBov4d36u/whLWxXHh6xjoJdQ.AOwERGS5b1seQ4BvkGUbERGFVN4JLkOWLo1:17757:1:20:7:::

    设置密码警告时间

    [root@oldboy ~]# chage -W 1 admin

    [root@oldboy ~]# tail -1 /etc/shadow

    admin:$6$cpHfgk6q$BJp0n.gIT4T1pI7vKDeM9xeEsLBov4d36u/whLWxXHh6xjoJdQ.AOwERGS5b1seQ4BvkGUbERGFVN4JLkOWLo1:17757:1:20:1:::

    设置密码过期后使用时间

    [root@oldboy ~]# chage -I 1 admin

    [root@oldboy ~]# tail -1 /etc/shadow

    admin:$6$cpHfgk6q$BJp0n.gIT4T1pI7vKDeM9xeEsLBov4d36u/whLWxXHh6xjoJdQ.AOwERGS5b1seQ4BvkGUbERGFVN4JLkOWLo1:17757:1:20:1:1::

    设置用户过期时间

    [root@oldboy ~]# chage -E 2018-8-13 admin

    [root@oldboy ~]# tail -1 /etc/shadow

    admin:$6$cpHfgk6q$BJp0n.gIT4T1pI7vKDeM9xeEsLBov4d36u/whLWxXHh6xjoJdQ.AOwERGS5b1seQ4BvkGUbERGFVN4JLkOWLo1:17757:1:20:1:1:17756:

    显示用户信息

    [root@oldboy ~]# chage -l admin

    最近一次密码修改时间                    :8月 14, 2018

    密码过期时间                    :9月 03, 2018

    密码失效时间                    :9月 04, 2018

    帐户过期时间                        :8月 13, 2018

    两次改变密码之间相距的最小天数        :1

    两次改变密码之间相距的最大天数        :20

    在密码过期之前警告的天数    :1

    1.     Linux用户命令****

    添加用户前需要确定

        确定用户的默认组是否有特殊要求

        确定用户是否允许登陆

        确定用户的密码策略

        确定用户的有效期

        确定用户的uid是否有特殊要求

    1. 使用useradd命令新增账户,注意:adduser命令软链接指向useradd命令

        '-u' 指定用户的UID,不能和现有ID冲突

        '-g' 指定用户用户默认基本组

        '-G' 指定用户附加组,用逗号隔开添加多个附加组

        '-d' 指定用户家目录

        '-c' 指定用户注释信息

        '-M' 不建立家目录

        '-s' 指定用户默认shell

        '-r' 创建系统账户, 没有家目录

        创建一个名为oldboy的用户,指定UID5001,基本组为students,附加组为sa,dba,注释信息为:2018 new student ,shell为bash

    [root@oldboy ~]# groupadd students

    [root@oldboy ~]# groupadd sa

    [root@oldboy ~]# groupadd dba

    [root@oldboy ~]# useradd -u 5001 -g students -G sa,dba -c "2018 new student" -d /home/oldboy -s /bin/bash oldboy

    正在创建信箱文件: 文件已存在

     

    //创建系统用户,-M不建立用户家目录 -s指定nologin使其用户无法登陆系统

    [root@oldboy ~]# useradd -M -s /sbin/nologin mysql

    [root@oldboy ~]# useradd -r -s /sbin/nologin dba

    1. 使用usermod命令修改用户组

        '-u' 修改用户的UID

        '-g' 修改用户所属的基本组GID

        '-G' 修改用户附加组, 使用逗号隔开多个附加组, 覆盖原有的附加组

        '-a' 追加更多的附加组, 必须和-G使用: -aG 追加附加组

        '-md' 家目录迁移, 必须和-d一起使用, 移动用户的家目录到新的位置

        '-d' 指定用户的家目录新位置

        '-c' 修改用户的注释信息

        '-s' 更改用户使用的shell

        '-l' 更改用户登录名

        '-L' 锁定用户

        '-U' 解锁用户

    1、更改oldboy的UID为6001,基本组为network,附加组为devops

    [root@oldboy ~]# groupadd -g 5008 network

    [root@oldboy ~]# guoupadd -g 5009 devops

    [root@oldboy ~]# usermod -u 6001 -g network -a -G devops -c "2019 new student" -md /home/oldstudent -s bin/sh -l oldstudent oldboy

    [root@oldboy ~]# tail -1 /etc/passwd

    oldstudent:x:6001:5008:2019 new student:/home/oldstudent:bin/sh

    [root@oldboy ~]# id oldstudent

    uid=6001(oldstudent) gid=5008(network) 组=5008(network),1003(sa),1004(dba),5009(devops)

    2、锁定用户

    [root@oldboy ~]# echo "123" |passwd --stdin oldstudent

    [root@oldboy ~]# usermod -L oldstudent

    //无法正常登录系统

    ~ ssh oldstudent@10.0.0.200

    oldstudent@10.0.0.200's password:

    Permission denied, please try again.

     

    3、解锁用户

    [root@oldboy ~]# usermod -U oldstudent

    //正常登录系统

    4、使用finger命名查询用户信息以及登录信息

    //安装finger命令

    [root@oldboy ~]# finger oldstudent

    Login: oldstudent             Name: 2019 new student

    Directory: /home/oldstudent     Shell: bin/sh

    Never logged in.

    No mail.

    No Plan.

    1. 使用finger修改用户信息

    [root@oldboy ~]# chfn oldstudent

    Changing finger information for oldstudent.

    名称 [2019 new student]: hellow i am 2020 student

    办公 []: 13369565161

    办公电话 []: 6465135

    住宅电话 []: 165465

    Finger information changed.

    验证修改过的用户信息

    [root@oldboy ~]# finger oldstudent

    Login: oldstudent             Name: hellow i am 2020 student

    Directory: /home/oldstudent     Shell: bin/sh

    Office: 13369565161, 646-5135        Home Phone: 165465

    Never logged in.

    No mail.

    No Plan.

    1. 使用chsh命令更改用户登录shell

    New shell [bin/sh]: /bin/bash

    Shell changed.

    [root@oldboy ~]# tail -1 /etc/passwd

    oldstudent:x:6001:5008:hellow i am 2020 student,13369565161,6465135,165465:/home/oldstudent:/bin/bash

    6、使用userdel删除用户

        语法:userdel [-r] username

            -r:同时删除用户家目录

    1. 用户创建的原理***

    Linux创建用户默认会读取/etc/defaults/useradd的配置文件,如果当我指定参数时,使用指定参数,如果不指定参数,默认使用/etc/defaults/useradd中的配置。当我们使用useradd命令新建用户时,用户家目录下会产生相应的.bash_*文件,这些文件默认是从/etc/skel目录中复制。如需变更环境拷贝目录站点可修改:/etc/defaults/useradd的配置文件。

    注意:如果执行useradd命令新建用户时,指定了参数,就会覆盖/etc/default/useradd默认的配置。

    两个配置文件 第一个

    [root@student ~]# egrep -v "^#|^$" /etc/login.defs

    MAIL_DIR /var/spool/mail

    PASS_MAX_DAYS 99999

    PASS_MIN_DAYS 0

    PASS_MIN_LEN 5

    PASS_WARN_AGE 7

    UID_MIN 1000

    UID_MAX 60000

    SYS_UID_MIN 201

    SYS_UID_MAX 999

    GID_MIN 1000

    GID_MAX 60000

    SYS_GID_MIN 201

    SYS_GID_MAX 999

    CREATE_HOME yes

    UMASK 077

    USERGROUPS_ENAB yes

    ENCRYPT_METHOD SHA512

    第二个

    [root@student ~]# cat /etc/default/useradd

    GROUP=100

    HOME=/home //把用户的家目录建在/home中。

    INACTIVE=-1 //是否启用账号过期停权,-1表示不启用。

    EXPIRE= //账号终止日期,不设置表示不启用。

    SHELL=/bin/bash //新用户默认所有的shell类型。

    SKEL=/etc/skel //配置新用户家目录的默认文件存放路径。

    CREATE_MAIL_SPOOL=yes //创建mail文件。

     

     

    //用户登录linux操作系统,环境变量被误删,出现-bash-4.2$,如何解决!

    -bash-4.2$ cp -a /etc/skel/.bash* ./

    -bash-4.2$ exit

     

    [root@student ~]# su - oldboy

    [oldboy@student ~]$

    1. 密码管理***

    创建完账户后,默认是没有设置密码的,所以该账户是没有办法登陆操作系统。只有使用passwd设置好密码后方可登录系统。

    使用passwd为用户创建密码时,为了安全起见,请尽量设置复杂一些。可以按照如下规则设置密码:

    1. 密码的设置

    1.长度大于10位字符;

    2.密码中包含大小写字母数字以及特殊字符 '!','@','$'等;

    3.不规则性(不要出现自己名字、公司名字、自己电话、等等简单的密码)

     

    1. 需要注意:

    1.普通用户只能更改自己的密码

    2.管理员root能更改任何人密码

    使用passwd命令修改用户密码

    语法 : passwd [username]

     

    // 'passwd' 后面不加username则是修改当前账户的密码。

    //如果你登陆的是root账户,后面可以指定要修改密码的账户。

    //只有root才可以修该其他账户的密码,普通账户只能修改自己的密码,普通用户没有修改其他用户的权限

     

     

    //root用户登陆,修改root账户密码

    [root@oldboy ~]# passwd

    更改用户 root 的密码 。

    新的 密码:

    重新输入新的 密码:

    passwd: 所有的身份验证令牌已经成功更新。

     

    //root用户登陆,修改oldboy1账户密码

    [root@oldboy ~]# passwd oldboy

    更改用户 user11 的密码 。

    新的 密码:

    重新输入新的 密码:

    passwd: 所有的身份验证令牌已经成功更新。

     

     

    //普通用户修改root密码

    [oldstudent@oldboy ~]$ passwd root

    passwd: Only root can specify a user name.

     

    //无需用户交互修改密码, 将前者的输出结果, 成为后者的输入

    [root@oldboy ~]# echo "123" | passwd --stdin oldstudent

    Changing password for user oldstudent.

    passwd: all authentication tokens updated successfully.

     

     

    随机密码生成工具几种方式

    //1.系统内置变量生成随机密码

    [root@oldboy ~]# echo $RANDOM|md5sum|cut -c 1-10

    d09fe9b1xs

     

    //2.mkpasswd密码生成工具

    //-l密码长度默认7位, -d数字, -c小写字母,-C大写字母

    [root@oldboy ~]# yum install -y expect //需要安装扩展包

    [root@oldboy ~]# mkpasswd -l 15 -d 3 -C 5

    yB7LpqIM31>ktpB

    推荐密码保存工具客户端,支持windows、MacOS、手机、以及浏览器插件

    Lastpass官方网站

    1. 组命名管理**

    2. 身份切换*****

    3. sudo提升权限*****

     

  • 相关阅读:
    Flutter图片选择 image_picker(官方)插件使用详解
    androidstudo如何跨越这个厚厚的墙,亲测有效 Could not resolve com.android.tools.build:gradle:
    qwq。。胡诌qwq
    关于很狗的军训qwq
    Leetcode每日一题 503.下一个更大元素II
    C++ 关于volatlie
    C++虚成员函数与动态联编
    graphics pipeline
    pointer or function
    线段树
  • 原文地址:https://www.cnblogs.com/majinhai/p/9534074.html
Copyright © 2020-2023  润新知