zoukankan      html  css  js  c++  java
  • Linux基础-Linux 用户命令

    1. 添加用户前需要确定:
      确定用户的默认组是否有特殊要求
      确定用户是否允许登录
      确定用户的密码策略
      确定用户的有效期
      确定用户的uid是否有特殊要求

    2. 使用useradd命令新增账户,注意adduser命令软链接指向useradd
      [root@localhost ~]# LANG=zh_CN.UTF-8
      [root@localhost ~]# useradd -h
      用法:useradd [选项] 登录
      useradd -D
      useradd -D [选项]

    选项:
    -b, --base-dir BASE_DIR 新账户的主目录的基目录
    -c, --comment COMMENT 新账户的 GECOS 字段
    -d, --home-dir HOME_DIR 新账户的主目录
    -D, --defaults 显示或更改默认的 useradd 配置
    -e, --expiredate EXPIRE_DATE 新账户的过期日期
    -f, --inactive INACTIVE 新账户的密码不活动期
    -g, --gid GROUP 新账户主组的名称或 ID
    -G, --groups GROUPS 新账户的附加组列表
    -h, --help 显示此帮助信息并推出
    -k, --skel SKEL_DIR 使用此目录作为骨架目录
    -K, --key KEY=VALUE 不使用 /etc/login.defs 中的默认值
    -l, --no-log-init 不要将此用户添加到最近登录和登录失败数据库
    -m, --create-home 创建用户的主目录
    -M, --no-create-home 不创建用户的主目录
    -N, --no-user-group 不创建同名的组
    -o, --non-unique 允许使用重复的 UID 创建用户
    -p, --password PASSWORD 加密后的新账户密码
    -r, --system 创建一个系统账户
    -R, --root CHROOT_DIR chroot 到的目录
    -s, --shell SHELL 新账户的登录 shell
    -u, --uid UID 新账户的用户 ID
    -U, --user-group 创建与用户同名的组
    -Z, --selinux-user SEUSER 为 SELinux 用户映射使用指定 SEUSER

    [root@localhost ~]#

    常用参数
    '-u' 指定用户的UID,不能和现有ID冲突
    '-g' 指定用户用户默认基本组
    '-G' 指定用户附加组,用逗号隔开添加多个附加组
    '-d' 指定用户家目录
    '-c' 指定用户注释信息
    '-M' 不建立家目录
    '-s' 指定用户默认shell
    '-r' 创建系统账户, 没有家目录

    创建oldboy用户,指定UID为5001,基本组Students,附加组sa/dba,注释信息2018_new_Student,指定shell为/bin/bash
    [root@localhost ~]# groupadd students
    [root@localhost ~]# groupadd sa
    [root@localhost ~]# groupadd dba
    [root@localhost ~]# useradd -u 5001 -g students -G sa,dba -c "2018_new_Student" -s /bin/bash oldboy
    [root@localhost ~]# tail -2 /etc/passwd
    test2❌1002:1002::/home/test2:/bin/bash
    oldboy❌5001:1003:2018_new_Student:/home/oldboy:/bin/bash
    [root@localhost ~]# id oldboy
    uid=5001(oldboy) gid=1003(students) 组=1003(students),1004(sa),1005(dba)
    [root@localhost ~]#

    创建系统用户,-M不建立用户家目录,-s指定nologin使其用户无法登陆系统
    [root@localhost ~]# useradd -M -s /sbin/nologin mysql
    [root@localhost ~]# useradd -r -s /sbin/nologin dba
    useradd:dba 组已经存在 - 如果您想将此用户加入到该组,请使用 -g 参数。
    [root@localhost ~]# useradd -r -s /sbin/nologin -g dba dba
    [root@localhost ~]# tail -2 /etc/passwd
    mysql❌5002:5002::/home/mysql:/sbin/nologin
    dba❌996:1005::/home/dba:/sbin/nologin
    [root@localhost ~]# ls /home/
    oldboy test test1 test2
    [root@localhost ~]#

    注意:
    -M 指定不建立用户家目录
    -r 创建系统用户,也不会建立用户家目录

    1. 使用usermod命令修改用户组
      [root@localhost ~]# usermod -h
      用法:usermod [选项] 登录

    选项:
    -c, --comment 注释 GECOS 字段的新值
    -d, --home HOME_DIR 用户的新主目录
    -e, --expiredate EXPIRE_DATE 设定帐户过期的日期为 EXPIRE_DATE
    -f, --inactive INACTIVE 过期 INACTIVE 天数后,设定密码为失效状态
    -g, --gid GROUP 强制使用 GROUP 为新主组
    -G, --groups GROUPS 新的附加组列表 GROUPS
    -a, --append GROUP 将用户追加至上边 -G 中提到的附加组中,
    并不从其它组中删除此用户
    -h, --help 显示此帮助信息并推出
    -l, --login LOGIN 新的登录名称
    -L, --lock 锁定用户帐号
    -m, --move-home 将家目录内容移至新位置 (仅于 -d 一起使用)
    -o, --non-unique 允许使用重复的(非唯一的) UID
    -p, --password PASSWORD 将加密过的密码 (PASSWORD) 设为新密码
    -R, --root CHROOT_DIR chroot 到的目录
    -s, --shell SHELL 该用户帐号的新登录 shell
    -u, --uid UID 用户帐号的新 UID
    -U, --unlock 解锁用户帐号
    -Z, --selinux-user SEUSER 用户账户的新 SELinux 用户映射

    [root@localhost ~]#

    常用参数
    '-u' 修改用户的UID
    '-g' 修改用户所属的基本组GID
    '-G' 修改用户附加组, 使用逗号隔开多个附加组, 覆盖原有的附加组
    '-a' 追加更多的附加组, 必须和-G使用: -aG 追加附加组
    '-d' 指定用户的家目录新位置
    '-md' 家目录迁移, 必须和-d一起使用, 移动用户的家目录到新的位置
    '-c' 修改用户的注释信息
    '-s' 更改用户使用的shell
    '-l' 更改用户登录名
    '-L' 锁定用户
    '-U' 解锁用户

    [root@localhost ~]# grep -i oldboy /etc/passwd
    oldboy❌5001:1003:2018_new_Student:/home/oldboy:/bin/bash
    [root@localhost ~]#

    修改用户uid/gid,附加组,注释信息,用户家目录,登陆shell,登陆名

    --建立组,指定gid
    [root@localhost ~]# groupadd -g 5008 newwork_sa
    [root@localhost ~]# groupadd -g 5009 devops
    [root@localhost ~]#

    --修改用户属性
    [root@localhost ~]# usermod -u 5200 -g 5008 -aG 5009 -c "2019_new_students" -md /home/oldgirl -s /bin/bash -l oldgirl oldboy
    --检查是否修改成功
    [root@localhost ~]# grep -i old /etc/passwd
    oldgirl❌5200:5008:2019_new_students:/home/oldgirl:/bin/bash
    [root@localhost oldgirl]# id oldgirl
    uid=5200(oldgirl) gid=5008(newwork_sa) 组=5008(newwork_sa),1004(sa),1005(dba),5009(devops)
    [root@localhost oldgirl]#

    //验证家目录
    [root@oldboy ~]# ll -d /home/oldgirl/
    drwx------. 2 oldstudent network_sa 62 Sep 23 00:07 /oldgirl/

    如果使用的参数是-md,没有事先创建该目录,随后创建了目录

    [root@localhost ~]# su - oldgirl
    Last login: Sat Mar 16 21:51:04 CST 2019 on pts/3
    -bash-4.2$ cp -a /etc/skel/.bash* ./
    -bash-4.2$ ll -a
    total 16
    drwx------ 4 oldgirl newwork_sa 112 Mar 16 21:53 .
    drwxr-xr-x. 6 root root 59 Mar 16 21:50 ..
    -rw------- 1 oldgirl newwork_sa 65 Mar 16 21:52 .bash_history
    -rw-r--r-- 1 oldgirl newwork_sa 18 Apr 11 2018 .bash_logout
    -rw-r--r-- 1 oldgirl newwork_sa 193 Apr 11 2018 .bash_profile
    -rw-r--r-- 1 oldgirl newwork_sa 231 Apr 11 2018 .bashrc
    drwxr-xr-x 3 oldgirl newwork_sa 18 Mar 16 21:51 .cache
    drwxr-xr-x 3 oldgirl newwork_sa 18 Mar 16 21:51 .config
    -bash-4.2$ exit
    logout
    [root@localhost ~]# su - oldgirl
    Last login: Sat Mar 16 21:52:44 CST 2019 on pts/3
    [oldgirl@localhost ~]$

    锁定/解锁用户
    [root@localhost ~]# passwd oldboy
    更改用户 oldboy 的密码 。
    新的 密码:
    无效的密码: 密码少于 8 个字符
    重新输入新的 密码:
    passwd:所有的身份验证令牌已经成功更新。
    [root@localhost ~]# usermod -L oldboy
    [root@localhost ~]# su - oldboy
    上一次登录:六 3月 16 22:07:49 CST 2019pts/2 上
    最后一次失败的登录:六 3月 16 22:08:24 CST 2019tty1 上
    最后一次成功登录后有 2 次失败的登录尝试。
    [root@localhost ~]# su - test
    上一次登录:五 9月 12 00:00:26 CST 2014pts/1 上
    [test@localhost ~]$ su - oldboy
    Password:
    su: Authentication failure
    [test@localhost ~]$ exit
    logout
    [root@localhost ~]# usermod -U oldboy
    [root@localhost ~]# su - test
    上一次登录:六 3月 16 22:10:33 CST 2019pts/3 上
    [test@localhost ~]$ su - oldboy
    Password:
    Last login: Sat Mar 16 22:09:15 CST 2019 on pts/2
    Last failed login: Sat Mar 16 22:10:45 CST 2019 on pts/3
    There were 3 failed login attempts since the last successful login.
    [oldboy@localhost ~]$

    1. 使用finger命令查询用户信息以及登录信息
      [root@localhost ~]# finger -h
      -bash: finger: command not found
      [root@localhost ~]# yum install -y finger

    [root@localhost ~]# finger -l
    Login: root Name: root
    Directory: /root Shell: /bin/bash
    On since 日 3月 17 18:10 (CST) on pts/0 from 192.168.254.1
    7 seconds idle
    On since 日 3月 17 18:13 (CST) on pts/1 from 192.168.254.1
    1 minute 12 seconds idle
    No mail.
    No Plan.
    [root@localhost ~]# finger oldboy
    Login: oldboy Name:
    Directory: /home/oldboy Shell: /bin/bash
    Last login 六 3月 16 22:11 (CST) on pts/3
    No mail.
    No Plan.
    [root@localhost ~]#

    1. 使用chfn修改用户信息
      [root@localhost ~]# finger oldboy
      Login: oldboy Name:
      Directory: /home/oldboy Shell: /bin/bash
      Last login 六 3月 16 22:11 (CST) on pts/3
      No mail.
      No Plan.
      [root@localhost ~]# chfn oldboy
      Changing finger information for oldboy.
      名称 []: 老男孩
      办公 []: 沙河富腾公寓
      办公电话 []: 010-59136921
      住宅电话 []: 177901121859

    Finger information changed.
    [root@localhost ~]# finger oldboy
    Login: oldboy Name: 老男孩
    Directory: /home/oldboy Shell: /bin/bash
    Office: 沙河富腾公寓, 010-59136921 Home Phone: 177901121859
    Last login 六 3月 16 22:11 (CST) on pts/3
    No mail.
    No Plan.
    [root@localhost ~]#

    1. 使用chsh命令更改用户登录shell
      [root@localhost ~]# finger oldboy
      Login: oldboy Name: 老男孩
      Directory: /home/oldboy Shell: /bin/bash
      Office: 沙河富腾公寓, 010-59136921 Home Phone: 177901121859
      Last login 六 3月 16 22:11 (CST) on pts/3
      No mail.
      No Plan.
      [root@localhost ~]# chsh oldboy
      Changing shell for oldboy.
      New shell [/bin/bash]: /sbin/nologin
      Shell changed.
      [root@localhost ~]# finger oldboy
      Login: oldboy Name: 老男孩
      Directory: /home/oldboy Shell: /sbin/nologin
      Office: 沙河富腾公寓, 010-59136921 Home Phone: 177901121859
      Last login 六 3月 16 22:11 (CST) on pts/3
      No mail.
      No Plan.
      [root@localhost ~]# tail -1 /etc/passwd
      oldboy❌5003:5003:老男孩,沙河富腾公寓,010-59136921,177901121859:/home/oldboy:/sbin/nologin
      [root@localhost ~]#

    2. 检查用户登录情况
      [root@localhost ~]# who
      root tty1 2019-03-17 18:26
      root pts/0 2019-03-17 18:10 (192.168.254.1)
      root pts/1 2019-03-17 18:13 (192.168.254.1)
      [root@localhost ~]# w
      18:27:07 up 17 min, 3 users, load average: 0.00, 0.01, 0.05
      USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
      root tty1 18:26 43.00s 0.03s 0.03s -bash
      root pts/0 192.168.254.1 18:10 3.00s 0.16s 0.00s w
      root pts/1 192.168.254.1 18:13 13:24 0.03s 0.03s -bash
      [root@localhost ~]# whoami
      root
      [root@localhost ~]#

    3. 使用userdel删除账户
      [root@localhost ~]# userdel -h
      用法:userdel [选项] 登录

    选项:
    -f, --force force some actions that would fail otherwise
    e.g. removal of user still logged in
    or files, even if not owned by the user
    -h, --help 显示此帮助信息并推出
    -r, --remove 删除主目录和邮件池
    -R, --root CHROOT_DIR chroot 到的目录
    -Z, --selinux-user 为用户删除所有的 SELinux 用户映射

    [root@localhost ~]#

    常用参数
    语法 : userdel [-r] username //-r 同时删除家目录

    [root@oldboy ~]# userdel user1
    [root@oldboy ~]# ll /home/user1/ -d
    drwx------. 3 501 501 4096 2017-11-15 12:40 /home/user1/

    //连同家目录一起删除
    [root@oldboy ~]# userdel -r user1

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

    注意:
    如果执行useradd命令新建用户时,指定了参数,就会覆盖/etc/default/useradd默认配置.
    [root@localhost ~]# cat /etc/default/useradd

    useradd defaults file

    GROUP=100
    HOME=/home
    INACTIVE=-1
    EXPIRE=
    SHELL=/bin/bash
    SKEL=/etc/skel
    CREATE_MAIL_SPOOL=yes

    [root@localhost ~]#

    [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文件。

    /etc/login.defs文件定义了与/etc/password和/etc/shadow配套的用户限制设定。这个文件是需要的,缺失并不会影响系统的使用,但是也许会产生意想不到的错误。
    如果/etc/shadow文件里有相同的选项,则以/etc/shadow里的设置为准,也就是说/etc/shadow的配置优先级高于/etc/login.defs。
    [root@localhost ~]# 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@localhost ~]#

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

    [root@student ~]# su - oldboy
    [oldboy@student ~]$

  • 相关阅读:
    MySQL_创建数据库和表
    MySQL注释的3中方法
    子查询概念和分类
    弱网测试如何进行
    Fiddler_ 移动端抓包配置IOS&Android,Fiddler获取APP端的流量
    Fiddler_HTTPS 如何抓包和浏览器设置
    Fiddler_弱网测试
    Three.js 游戏操作案例
    flex 教程
    JS知识
  • 原文地址:https://www.cnblogs.com/s-sx/p/11913310.html
Copyright © 2011-2022 走看看