• linux基础学习-15.5-用户管理的命令


    1、管理用户命令汇总 {#121-管理用户命令汇总}

    命令注释说明
    useradd增 #-->※同adduser命令,执行此命令可在系统中添加用户(更改四个用户文件)
    userdel删 执行此命令可删除用户及相关用户的配置或文件(更改四个用户文件)
    passwd #-->※执行此命令可为用户设置或修改密码。更改/etc/shadow文件
    change 修改用户密码属性。管理/etc/shadow文件
    usermod修改 #-->※修改用户信息的命令,可以通过usermod来修改登录名、用户的家目录等等
    id查 #-->※查看用户的UID、GID及所归属的用户组
    su #-->※用户角色切换工具。su -
    sudo #-->※sudo是通过另一个用户来执行命令(execute a command as another user),su是用来切换用户,然后通过切换到的用户来完成相应的任务,但sudo能在命令后面直接跟命令执行,比如sudo ls /root,不需要root密码就可以执行只有root才能执行相应的命令。或具备的目录权限;这个权限需要通过visudo命令或直接编辑/etc/sudoers来实现
    visudo #-->※visudo配置sudo权限的编辑命令;也可以不用这个命令,直接用vi来编辑/etc/sudoers实现。但推荐用visudo来操作(会自动检查语法)

    2、管理用户组命令汇总 {#122-管理用户组命令汇总}

    命令注释说明
    groupadd #-->※添加用户组
    groupdel 删除用户组
    groupmod 修改用户组信息
    gpasswd 为用户组设置密码
    groups 显示用户所属的用户组
    newgrp 更改用户所属的有效用户组

    {#126-etclogindefs(了解)}

    3、useradd 添加用户命令 {#128-useradd-添加用户命令}

    useradd参数选项注释说明
    -c comment #comment===#注释说明--->新账号password档的说明栏
    -d home_dir #-->新账号每次登入时所使用的home_dir。预设值为default_home内login名称,并当成登入时目录名称
    -e expire_date #-->※※账号终止日期(账号过期日期)。日期的指定格式为MM-DD-YY或者YYYY-MM-DD
    -g initial_group #-->※※group名称或以数字来做为用户登入起始用户组(group)主要的组。用户组名必须为系统现有存在的名称。用户组数字也须为现有存在的用户组,预设的用户组数字为1
    -G group,[...] #--->附加组,定义此用户为多个不同groups的成员。每个用户组使用“,”逗号隔开。用户组名同-g选项的限制。默认值为用户的起始用户组
    -M #-->※※不建议用户家目录,优先于/etc/login.defs文件的设定。一般创建虚拟用户时不建立家目录,部署服务时需要创建虚拟用户
    -s shell #--->※※用户登入后使用的shell名称。默认值为不填写,这样系统会帮你指定预设的登入shell(根据/etc/default/useradd预设的值)cat /etc/shells系统支持的shell
    -u uid #-->用户的ID值。这个值必须是唯一的,除非用-o选项,数字不可为负值

    4、添加一个虚拟用户mysql {#添加一个虚拟用户mysql}

    [root@oldboyedu35-nb ~]# #

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

    [root@oldboyedu35-nb ~]# ll /home/mysql

    ls: cannot access /home/mysql: No such file or directory

    [root@oldboyedu35-nb ~]# su - mysql

    su: warning: cannot change directory to /home/mysql: No such file or directory

    This account is currently not available.

    5、useradd小结 {#129-useradd小结}

    添加用户alex666,UID指定为999,归属为用户组 root、oldboy、sa成员,并设置其用户注释信息为HandsomeBoy,设置家目录为/alex666,其shell类型为/bin/sh

    [root@oldboyedu35-nb ~]# #添加用户alex666,UID指定为999,归属为用户组 root、oldboy、sa成员,并设置其用户注释信息为HandsomeBoy,设置家目录为/alex666,其shell类型为/bin/sh。

    [root@oldboyedu35-nb ~]# groupadd oldboy

    groupadd: group 'oldboy' already exists

    [root@oldboyedu35-nb ~]# groupadd sa

    [root@oldboyedu35-nb ~]#

    [root@oldboyedu35-nb ~]# useradd -u 999 -G root,oldboy,sa -c "HandsomeBoy" -d /alex666 -s /bin/sh alex666

    [root@oldboyedu35-nb ~]# id alex666

    uid=999(alex666) gid=999(alex666) groups=999(alex666),0(root),500(oldboy),511(sa)

    [root@oldboyedu35-nb ~]#

    [root@oldboyedu35-nb ~]# grep alex666 /etc/passwd

    alex666x999:999:HandsomeBoy:/alex666:/bin/sh

    [root@oldboyedu35-nb ~]# ll -d /alex666/

    drwx------ 2 alex666 alex666 4096 Apr 5 11:39 /alex666/

    6、userdel 删除用户相关命令 {#1210-userdel-删除用户相关命令}

    -r 连窝端了 {#r-连窝端了}

    7、usermod用户信息修改相关命令 {#1211-usermod用户信息修改相关命令}

    必须是唯一的数字(不能为负数)

    [root@oldboyedu-35 ~]# grep oldboy /etc/sudoers

    %oldboy ALL=(ALL) /bin/touch, /bin/mkdir, /bin/ls

    [root@oldboyedu-35 ~]# usermod -G oldboy oldgirl

    [oldgirl@oldboyedu-35 ~]$ whoami

    oldgirl

    [oldgirl@oldboyedu-35 ~]$ sudo -l

    Matching Defaults entries for oldgirl on this host:

    !visiblepw, always\_set\_home, env\_reset, env\_keep="COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS\_COLORS",

    env\_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC\_ADDRESS LC\_CTYPE", env\_keep+="LC\_COLLATE LC\_IDENTIFICATION

    LC\_MEASUREMENT LC\_MESSAGES", env\_keep+="LC\_MONETARY LC\_NAME LC\_NUMERIC LC\_PAPER LC\_TELEPHONE", env\_keep+="LC\_TIME

    LC\_ALL LANGUAGE LINGUAS \_XKB\_CHARSET XAUTHORITY", secure\_path=/sbin:/bin:/usr/sbin:/usr/bin

    User oldgirl may run the following commands on this host:

    (ALL) /bin/touch, (ALL) /bin/mkdir, (ALL) /bin/ls

    1.2.12 groupadd 添加用户组的命令 {#1212-groupadd-添加用户组的命令}

    groupadd 注释说明

    -g gid 指定用户组GID值。除非接-o 参数(groupadd -g 1234 -o oldboy),否则ID值必须是唯一的数字(不能为负数)。如果不指定-g参数,则预设值会从500开始

    [root@oldboyedu35-nb ~]# groupadd -g 1000 jason007

    [root@oldboyedu35-nb ~]# grep jason /etc/group

    jasonx507:

    jason888x508:

    jason007x1000:

    [root@oldboyedu35-nb ~]# useradd -u 1000 -g jason007 jason007

    [root@oldboyedu35-nb ~]# id jason007

    uid=1000(jason007) gid=1000(jason007) groups=1000(jason007)

    [root@oldboyedu35-nb ~]# useradd -u 2000 oldboy888

    [root@oldboyedu35-nb ~]# id oldboy888

    uid=2000(oldboy888) gid=2000(oldboy888) groups=2000(oldboy888)

    1.2.13 企业场景删除用户处理方法 {#1213-企业场景删除用户处理方法}

    一般不能确认用户相关目录有没有重要数据就不能用-r

    删除经验:

    1、vi /etc/passwd ,然后注释掉用户,观察1个月,这样出问题可以还原。相当于操作前备份。

    2、把登录shell/bin/bash 改成 /sbin/nologin

    3、openldap(类似活动目录)账号统一管理的,ldap库里干掉用户。所有服务器全部都没了。

    提示:只要删除和修改都要小心谨慎,不需要的请注释

    1.2.14 内容小结 {#1214-内容小结}

    useradd

    /etc/default/useradd 文件作用

    /etc/skel目录作用

    /etc/login.defs 文件作用

    1.2.15 档案 {#1215-档案}

    /etc/passwd 使用者账号资讯

    /etc/shadow 使用者账号资讯加密

    /etc/group 用户组资讯

    /etc/gshadow

    /etc/default/useradd 定义资讯

    /etc/skel 内含定义档的目录

    /etc/login.defs 系统广义设定

    1.2.16 passwd 用户密码相关 修改用户密码 {#1216-passwd-用户密码相关-修改用户密码}

    [root@oldboyedu35-nb ~]# echo 123456 |passwd --stdin oldboy

    Changing password for user oldboy.

    passwd: all authentication tokens updated successfully.

    例子:

    ###添加一个用户 oldboy666 指定他的uid是666 设置密码为123456

    [root@oldboyedu-35 ~]# useradd -u 666 oldboy666

    [root@oldboyedu-35 ~]# echo 123456|passwd --stdin oldboy666

    Changing password for user oldboy666.

    passwd: all authentication tokens updated successfully.

    [root@oldboyedu35-nb ~]# useradd -u 666 oldboy666

    [root@oldboyedu35-nb ~]# id oldboy666

    uid=666(oldboy666) gid=666(oldboy666) groups=666(oldboy666)

    [root@oldboyedu35-nb ~]# echo 123456|passwd --stdin oldboy666

    Changing password for user oldboy666.

    passwd: all authentication tokens updated successfully.

    [root@oldboyedu35-nb ~]# su - oldboy

    [oldboy@oldboyedu35-nb ~]$ su - oldboy666

    Password:

    [oldboy666@oldboyedu35-nb ~]$ whoami

    oldboy666

    [oldboy666@oldboyedu35-nb ~]$

    1.2.17 chage 修改用户密码有效期限change age(密码年纪 密码相关的时间) {#1217-chage-修改用户密码有效期限change-age密码年纪--密码相关的时间)}

    [root@oldboyedu35-nb ~]# chage -l oldboy666

    Last password change : Apr 06, 2017

    Password expires : never

    Password inactive : never

    Account expires : never

    Minimum number of days between password change : 0

    Maximum number of days between password change : 99999

    Number of days of warning before password expires : 7

    [root@oldboyedu35-nb ~]# chage -E "2017-04-14" oldboy666

    [root@oldboyedu35-nb ~]# chage -l oldboy666

    Last password change : Apr 06, 2017

    Password expires : Jun 05, 2017

    Password inactive : Jul 05, 2017

    Account expires : Apr 14, 2017

    Minimum number of days between password change : 7

    Maximum number of days between password change : 60

    Number of days of warning before password expires : 10

    [root@oldboyedu35-nb ~]# date -s "10 day"

    Sun Apr 16 10:06:33 CST 2017

    [root@oldboyedu35-nb ~]# chage -E "30 day" oldboy666

    [root@oldboyedu35-nb ~]# chage -l oldboy666

    Last password change : Apr 16, 2017

    Password expires : Jun 15, 2017

    Password inactive : Jul 15, 2017

    Account expires : May 16, 2017

    Minimum number of days between password change : 7

    Maximum number of days between password change : 60

    Number of days of warning before password expires : 10

    [root@oldboyedu35-nb ~]# date

    Sun Apr 16 10:09:12 CST 2017

    [root@oldboyedu-35 ~]# passwd --minimum=7 --maximum=60 --warning=10 --inactive=30 oldboy

    Adjusting aging data for user oldboy.

    passwd: Success

    [root@oldboyedu-35 ~]# chage -l oldboy

    Last password change : Apr 07, 2017

    Password expires : Jun 06, 2017

    Password inactive : Jul 06, 2017

    Account expires : never

    Minimum number of days between password change : 7

    Maximum number of days between password change : 60

    Number of days of warning before password expires : 10

    [root@oldboyedu-35 ~]#

    1.2.18 企业场景:用户密码管理 {#1218-企业场景:用户密码管理}

    1、 密码要复杂8/12位以上字母数字页数字符-keepass(软件,密码存放在本地)lastpass(在线版本)

    2、 大的企业用户和密码统一管理(相当于活动目录(AD),openldap)

    3、 动态密码:动态口令,第三方提供自己开发也很简单

    4、 /var/log/secure

    5、 指纹(find+md5sum+定时任务)

    6、 锁头chattr+i +a lsattr

    1.2.19 示例 下面要求oldboy666用户7天内不能更改密码,60天以后必须修改密码,过期前10天通知oldboy666用户,过期后30天后禁止用户登陆。 {#1219-示例-下面要求oldboy666用户7天内不能更改密码,60天以后必须修改密码,过期前10天通知oldboy666用户,过期后30天后禁止用户登陆。}

    [root@oldboyedu35-nb ~]# passwd --minimum=7 --maximum=60 --warning=10 --inactive=30 oldboy666

    Adjusting aging data for user oldboy666.

    passwd: Success

    [root@oldboyedu35-nb ~]# grep oldboy666 /etc/shadow

    oldboy666:$6$EkqgoRmJ$dc46Ck1D8Jg22NyrRe4ZagIzcvxLquq4bKWD3eVDVdklO7qFraFsLkUbeJX2o0UeFhu9sdp8f4SLBQ5aG3VF9.:17262:7:60:10:30::

    [root@oldboyedu35-nb ~]# chage -l oldboy666

    Last password change : Apr 06, 2017

    Password expires : Jun 05, 2017

    Password inactive : Jul 05, 2017

    Account expires : never

    Minimum number of days between password change : 7

    Maximum number of days between password change : 60

    Number of days of warning before password expires : 10

    [root@oldboyedu35-nb ~]# passwd -n 7 -x 60 -w 10 -i 30 oldboy666

    Adjusting aging data for user oldboy666.

    passwd: Success

    1.2.20 用户查询命令小结 {#1220-用户查询命令小结}

    需要知道:id w who list lastlog

    了解:users groups newgrp

    1.2.21 查看用户信息 {#1221-----查看用户信息}

    [root@oldboyedu35-nb ~]# id

    uid=0(root) gid=0(root) groups=0(root)

    [root@oldboyedu35-nb ~]# w

    10:31:44 up 1 day, 22:19, 2 users, load average: 0.00, 0.01, 0.05

    USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT

    root pts/0 192.168.56.1 05Apr17 0.00s 1.12s 0.05s w

    root pts/1 192.168.56.1 06Apr17 10days 0.09s 0.09s -bash

    [root@oldboyedu35-nb ~]# uptime

    10:34:02 up 1 day, 22:22, 2 users, load average: 0.00, 0.01, 0.05

    [root@oldboyedu35-nb ~]#

    [root@oldboyedu35-nb ~]# who

    root pts/0 2017-04-05 12:15 (192.168.56.1)

    root pts/1 2017-04-06 08:52 (192.168.56.1)

    [root@oldboyedu35-nb ~]# lastlog

    Username Port From Latest

    root pts/1 192.168.56.1 Sun Apr 16 10:37:58 +0800 2017

    bin **Never logged in**

    daemon **Never logged in**

    adm **Never logged in**

    lp **Never logged in**

    sync **Never logged in**

    shutdown **Never logged in**

    halt **Never logged in**

    mail **Never logged in**

    uucp **Never logged in**

    operator **Never logged in**

    games **Never logged in**

    gopher **Never logged in**

    ftp **Never logged in**

    nobody **Never logged in**

    dbus **Never logged in**

    vcsa **Never logged in**

    abrt **Never logged in**

    haldaemon **Never logged in**

    ntp **Never logged in**

    saslauth **Never logged in**

    postfix **Never logged in**

    sshd **Never logged in**

    tcpdump **Never logged in**

    oldboy **Never logged in**

    junge **Never logged in**

    alex **Never logged in**

    oldgirl **Never logged in**

    test **Never logged in**

    kevin **Never logged in**

    jason **Never logged in**

    jason888 **Never logged in**

    mysql **Never logged in**

    alex666 **Never logged in**

    jason007 **Never logged in**

    oldboy888 **Never logged in**

    oldboy666 **Never logged in**

    [root@oldboyedu35-nb ~]# ####登录----本地登录(输入用户名密码)或者远程登录 (xshell crt putty)

    练习题:

    1、说出5个和用户相关的命令

    2、下面要求oldboy666用户7天内不能更改密码,60天以后必须修改密码,过期前10天通知oldboy666用户,过期后30天后禁止用户登陆。

    3、如何正确删除用户?

  • 相关阅读:
    forEach
    Apache localhost和局域网ip地址访问
    数据库基础知识(必读)
    设计模式其他常见面试题
    设计模式学习
    简历书写注意事项
    计算机网络常见面试题二
    计算机网络常见面试题一
    分布式系统中的CAP 理论
    多线程常见面试题一
  • 原文地址:https://www.cnblogs.com/Klanti/p/9143522.html
Copyright © 2020-2023  润新知