• 用户和用户组的管理命令


    用到的命令主要有:

    组命令groupaddgroupdelgroupmodgpasswdgroupmems、 newgrp

    用户命令useradduserdelusermodpasswd

    其他相关命令

    • getentgetent passwd USERNAMEgetent shadow GROUPNAME
    • chage
    • chsh
    • id
    • su

    用户组命令:

    groupadd

    groupadd GROUP_NAME:创建新组

    可选参数:

    • -g GID:手动指定GID,默认是上一个组的GID+1
    • -r:创建系统组

    groupmod

    groupmod GROUP_NAME 修改组信息

    • -g GID:修改GID
    • -n NEW_NAME OLD_NAME:修改组名

    groupdel

    groupdel GROUP_NAME:删除组

    例子:

    1
    2
    3
    4
    5
    6
    7
    8
    groupadd grp
    groupadd -g 2000 grp1
    groupadd -r sysgrp
    groupadd -r -g 306 sysgrp1
    groupmod -g 702 sysgrp1
    groupmod -n newsysgrp1 sysgrp1
     
    groupdel grp

    gpasswd

    gpasswd GROUP_NAME:给组加密码,一般默认不加,不加的话,用户就不能用newgrp切换属组(组密码那里是两!!,表示无密码,无密码的组,用户也不能临时切换到这个组。)

    groupmems

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    用法:groupmems [选项] [动作]
     
    选项:
    -g, --group groupname 更改组 groupname,而不是用户的组(只 root)
     
    动作:
    -a, --add username 将用户 username 添加到组成员中
    -d, --delete username 从组的成员中删除用户 username
    -p, --purge 从组中移除所有成员
    -l, --list 列出组中的所有成员

    比如下面,就是列出admins组里的所有成员,然后删除其中的一个成员natasha

    1
    2
    3
    4
    [root❄centos7 skel]☭ groupmems -g admins -l
    natasha harry
    [root❄centos7 skel]☭ groupmems -g admins -l
    harry

    newgrp

    newgrp GROUPNAME

    临时切换主组,如果切换不属于的组,要输入组密码。如果不属于的组而且没有设置组密码,则无法切换。


    用户命令

    useradd

    useradd :创建新用户或者更新默认新用户信息

    • -u:指定UID
    • -g:指定基本组GID,组名必须存在才行,不能用来新建GID。
    • -G GROUP1[,GROUP2,...[GROUPN]]:指定GID,指明用户的附加组,多个组之间用逗号分隔。
    • -c COMMENT:注释信息
    • -d HOME_DIR:指定家目录(本质是通过复制/etc/skel目录并重命名实现的),如果目录路径本身就存在,则不会为用户复制/etc/skel下的内容。
    • -s SHELL: 指定用户的默认shell,可用于所有shell列表存在的shell(shell列表:/etc/shells)
    • -r :创建系统用户
    • -D:修改创建用户时候的默认选项(man useradd可以看一下详情,,其实更改的就是/etc/default/useradd
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    useradd docker
     
    useradd -u 3000 openstack
     
    useradd -u 3001 -g 3001 openshift
     
    useradd -g cloudgroup cloudstack
     
    useradd -G grp,grp1 archlinux
     
    useradd -c "Hacker Linux" kalilinux
     
    useradd -d /opt/sybase sybase
     
    mkdir /tmp/test1
    useradd -d /tmp/test1 test1
     
    useradd -s /bin/csh test2
     
    useradd -s /sbin/nologin test3

    tips:要查看useradd的默认规则,可以查看/etc/default/useradd文件。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    [root❄centos7 default]☭ cat /etc/default/useradd
    # useradd defaults file
    GROUP=100
    HOME=/home
    INACTIVE=-1
    EXPIRE=
    SHELL=/bin/bash
    SKEL=/etc/skel
    CREATE_MAIL_SPOOL=yes

    我们可以看到有个SKELskel里存放的是环境变量文件,当创建新用户时候,会复制一份到用户家目录里面。

    1
    2
    3
    [root❄centos7 default]☭ cd /etc/skel/
    [root❄centos7 skel]☭ ls -a
    . .. .bash_logout .bash_profile .bashrc .mozilla

    usermod

    usermod:修改用户属性

    -u UID:修改用户的UID
    -g:修改用户所属的基本组
    -G :修改用户的附加组,原来的附加组会被覆盖掉
    -a:append,和-G结合使用,表示新添加的组,兵不会覆盖掉原来的组
    -c COMMENT:修改注释信息
    -d:修改用户的家目录,用户原有的文件不会被转移到新位置。
    -m:move-home,更改用户主目录,和-d配合使用,会移动原来家目录的文件。
    -l:修改用户名

    • -s SHELL: 修改用户的默认shell,可用于所有shell列表存在的shell(shell列表:/etc/shells)
    • -L:Lock,锁定用户密码(在原来的密码字符串之前加一个!
    • -U:unlock,解锁用户的密码(删掉!

    userdel

    userdel:删除用户
    -r:删除用户并删除其家目录mail spool

    passwd

    passwd修改用户自己的密码
    passwd USERNAME修改其他用户的密码(root有此权限)

    • -- stdin 参数
      echo ‘test2' | passwd --stdin test2
      记住echo后面的字符串要用弱引用,强引用的话如果密码串里有特殊字符,就会不是原始密码了。

    其他相关命令

    chage

    chage:change age 更改用户密码过期时间

    chage USERNAME不跟参数,会进入一个交互式的模式来修改各个时间,如下面:设置最短修改密码时间为0;最长密码时间为92天过期,上次更改密码时间保持默认那天(20170526),快过期的开始警告设置的在快过期前7天开始,密码过期后,7天内要修改密码,否则变为不活动(Inactive,即锁住),最后一条是设置账号过期时间,设置为默认不过期(-1)。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    [root❄centos7 skel]☭ chage gentoo
    Changing the aging information for gentoo
    Enter the new value, or press ENTER for the default
     
    Minimum Password Age [0]: 0
    Maximum Password Age [99999]: 92
    Last Password Change (YYYY-MM-DD) [2017-05-26]:
    Password Expiration Warning [7]: 7
    Password Inactive [-1]: 7
    Account Expiration Date (YYYY-MM-DD) [-1]:

    带参数,下面是参数设置,和上面类似,就是把交互式变成了参数选项:

    chage [option] USERNAME

    -d LAST_DAY -d 0:第一次登陆,强制让你该口令。

    -E –expiredate EXPIRE_DATE

    -I –inactive INACTIVE

    -m –mindays MIN_DAYS

    -M –maxdays MAX_DAYS

    -W –warndays WARN_DAYS

    –l 显示密码策略

    示例:

    1
    2
    3
    4
    5
    chage -d 0 tom #下一次登录强制重设密码
     
    chage -m 0 –M 42 –W 14 –I 7 tom
     
    chage -E 2016-09-10 tom

    id

    id [USERNAME]:显示用户的uidgidUSERNAME省略的话表示只显示当前用户的id信息。

    • -u显示用户id
    • -g显示基本组id
    • -G显示所有组id
    • -n显示名字而不是id

    su

    su命令:switch user,切换用户

    • 登录式切换:会通过读取目标用户的配置文件来重新初始化
      • su - USERNAME
        *su -l USERNAMEl就表示login
    • 非登陆式切换:不会读取目标用户的配置文件来进行初始化
      • su USERNAME

    Note:管理员可无密码切换到其他任意用户。

    参数:
    -c 'COMMAND':仅以目标用户登录,后执行后面的命令,然后就退出

    示例:su -test -c 'whoami'

    getent

    get entries from Name Service Switch libraries
    从命名服务切换库获得条目

    getent passwd [USERNAME]:不输入USERNAME默认是全部用户,如果输入了,就是指定的那个

    1
    2
    [root❄centos7 skel]☭ getent passwd gentoo
    gentoo:x:1001:1001:Gentoo Distribution:/home/gentoo:/bin/csh

    getent shadow [GROUPNAME]:不输入GROUPNAME默认是全部用户组信息,如果输入了,就是指定的那个

    1
    2
    [root❄centos7 skel]☭ getent shadow gentoo
    gentoo:!!:17312:0:92:7:7::

    finger

    查看用户信息

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    [root❄ centos7 ~]☭ finger root
    Login: root Name: root
    Directory: /root Shell: /bin/bash
    On since Sun May 28 16:17 (CST) on pts/0 from 172.17.251.64
    4 seconds idle
    On since Wed May 24 20:40 (CST) on :0 from :0 (messages off)
    On since Wed May 24 20:40 (CST) on pts/2 from :0
    3 days 19 hours idle
    No mail.
    No Plan.
  • 相关阅读:
    实习日记11
    实习日记10
    实习日记9
    实习日记7
    我自己的颜色库
    实习日记5
    实习日记4
    算法导论2:几个习题 2016.1.2
    算法导论1:插入排序和归并排序 2016.1.1
    和算法导论没什么关系0.手电筒过桥问题详解
  • 原文地址:https://www.cnblogs.com/momenglin/p/8532504.html
Copyright © 2020-2023  润新知