useradd

  创建用户,更改用户信息

  1.工作原理流程

     使用此命令式,若不加任何参数选项,直接跟用户名,那么系统会首先读取/etc/login.defs(用户定义文件)和/etc/default/useradd(用户默认配置文件)文件中所定义的参数和规则,然后进行添加用户的操作,同时还会读取/etc/passwd(用户文件)和/etc/group(组文件),添加新用户和用户组信息,再向/etc/shadow(用户密码文件)和/etc/gshadow(组密码文件)添加对应的密码信息。同时根据/etc/default/useradd定义的信息简历家目录,并将/etc/skel中的所有文件复制到新用户的家目录中。

  2.useradd加-D参数:改变/etc/default/useradd定义的信息,也可以手动修改

   例如,用户账号的停止日期,过期日期,使用的shell名称等,具体可参考配置文件

  3.useradd不加-D参数:

    -c comment # 用户的说明栏

    -d      # 新用户家目录

    -e      # 用户终止日期

    -f      # 用户过期几日后永久停权,0时,用户立即被停权,-1时,关闭此功能

    -g      # 指定用户的用户组

    -G      # 定义用户多个不同组的成员

    -m      # 用户目录若是不存在,自动简历

    -M      # 布简历用户家目录,一般创建虚拟用户使用

    -s      # 指定用户的shell程序

    -u      # 用户的uid值设定

[root@centos7 ~]# useradd  ett
[root@centos7 ~]# ls -ld /home/ett/
drwx------ ett ett Apr : /home/ett/
[root@centos7 ~]# grep -w ett /etc/passwd
ett:x::::/home/ett:/bin/bash
[root@centos7 ~]# grep -w ett /etc/shadow
ett:!!:::::::
[root@centos7 ~]# grep -w ett /etc/group
ett:x::
[root@centos7 ~]# grep -w ett /etc/gshadow
ett:!:: [root@centos7 ~]# useradd -u -g sa xiaolizi
useradd: group 'sa' does not exist
[root@centos7 ~]# groupadd sa
[root@centos7 ~]# useradd -u -g sa xiaolizi
[root@centos7 ~]# id xiaolizi
uid=(xiaolizi) gid=(sa) groups=(sa) [root@centos7 ~]# useradd -M -s /sbin/nologin xiaolizi2
[root@centos7 ~]# grep -w xiaolizi2 /etc/passwd
xiaolizi2:x::::/home/xiaolizi2:/sbin/nologin

   

usermod

  用于修改系统已经存在的用户的账号信息

  用法参数与useradd类似

  

userdel

  删除用户  # 工作中及你浪不要随意删除用户,请在/etc/passed里面采用注释的方式

    -f  # 强制删除用户,即使用户当前已登录

    -r  # 删除用户的同事,删除与用户相关的所有文件

  

[root@centos7 ~]# tail - /etc/passwd
ett:x::::/home/ett:/bin/bash
xiaolizi:x::::/home/xiaolizi:/bin/bash
xiaolizi2:x::::/home/xiaolizi2:/sbin/nologin
[root@centos7 ~]# userdel -r xiaolizi
[root@centos7 ~]# userdel -r xiaolizi2
userdel: xiaolizi2 home directory (/home/xiaolizi2) not found
[root@centos7 ~]# tail - /etc/passwd
postfix:x::::/var/spool/postfix:/sbin/nologin
chrony:x::::/var/lib/chrony:/sbin/nologin
ett:x::::/home/ett:/bin/bash [root@centos7 ~]# id ett
uid=(ett) gid=(ett) groups=(ett)
[root@centos7 ~]# vim /etc/passwd                # 将用户注释掉
[root@centos7 ~]# tail - /etc/passwd
postfix:x::::/var/spool/postfix:/sbin/nologin
chrony:x::::/var/lib/chrony:/sbin/nologin
#ett:x::::/home/ett:/bin/bash
[root@centos7 ~]# id ett
id: ett: no such user [root@centos7 tmp]#  cat /tmp/xiaolizi.log |awk '{print $1}'|sed -r 's#(.*)#"userdel -r \1";echo -e "`userdel -r \1`">/tmp/userdel.log#g'|bash

groupadd

  用于创建新的用户组,用途一般不多,主要是因为useradd创建用户时会默认创建用户组

  -g gid  # 指定用户组的gid,从500开始

  -f    # 新增一个账户,强制覆盖一个已经存在的组账号

groupdel

  删除用户组

    后面直接跟用户组的名称即可

passwd

  修改用户密码及密码过期时间等内容

    -k  # 为密码已经过期的用户更新有效期

    -l  # 锁定用户,被多订的用户不能登录,,只有root权限才能设置

    --stdin  # 从标准输入读取密码字符串,免交互

    -u  # 解除对用户的锁定,只有root权限才能设置

    -d  # 删除用户密码,使密码为空,仅root用户有权使用该选项

    -e  # 使用户密码立即过期,在用户下次登录时强制要求用户修改密码

    -n  # 设置修改密码最短天数

    -x  # 设置修改密码最长天数

    -w  # 设置用户在密码过期前收到警告信息天数

    -i  # 设置密码过期后多少天后禁用账户

    -S  # 显示用户密码相关的简单描述 

    

[root@centos7 ~]# passwd          # 在当前用户下修改密码
Changing password for user root.
New password:
BAD PASSWORD: The password is shorter than characters    # 设置密码过于简单会警告,不影响
Retype new password:
passwd: all authentication tokens updated successfully.    # 成功设置密码
[root@centos7 ~]# useradd xiaolizi01                # 创建个新用户
[root@centos7 ~]# passwd xiaolizi01            
Changing password for user xiaolizi01.
New password:
BAD PASSWORD: The password is shorter than characters
Retype new password:
passwd: all authentication tokens updated successfully. [root@centos7 ~]# passwd -S xiaolizi01          # 显示账号密码信息
xiaolizi01 PS -- - (Password set, SHA512 crypt.)
[root@centos7 ~]# echo ""|passwd --stdin xiaolizi01  # 免交互式设置密码
Changing password for user xiaolizi01.
passwd: all authentication tokens updated successfully. [root@centos7 ~]# passwd -n -x -w -i xiaolizi01  # 设置用户7天内不能更改密码,60天以后必须修改密码,过期前10天通知用户,过期后30天禁止用户登录
Adjusting aging data for user xiaolizi01.
passwd: Success [root@centos7 ~]# chage -l xiaolizi01              # 查看用户设置的列表
Last password change : Apr ,
Password expires : Jun ,
Password inactive : Jul ,
Account expires : never
Minimum number of days between password change : 7       -n
Maximum number of days between password change : 60      -x
Number of days of warning before password expires : 10      -w
# 批量创建用户,随机设置8位密码--------,拼凑命令,交给bash执行
[root@centos7 tmp]# echo stu{..}|tr " " "\n"|sed -r 's#(.*)#useradd \1;pass=$((RANDOM+10000000));echo "$pass"|passwd --stdin \1;echo -e "\1 `echo "$pass"`">>/tmp/xiaolizi.log#g' |bash
Changing password for user stu01.
passwd: all authentication tokens updated successfully.
Changing password for user stu02.
passwd: all authentication tokens updated successfully.
Changing password for user stu03.
passwd: all authentication tokens updated successfully.
Changing password for user stu04.
passwd: all authentication tokens updated successfully.
Changing password for user stu05.
passwd: all authentication tokens updated successfully.
Changing password for user stu06.
passwd: all authentication tokens updated successfully.
Changing password for user stu07.
passwd: all authentication tokens updated successfully.
Changing password for user stu08.
passwd: all authentication tokens updated successfully.
Changing password for user stu09.
passwd: all authentication tokens updated successfully.
Changing password for user stu10.
passwd: all authentication tokens updated successfully. [root@centos7 tmp]# cat /tmp/xiaolizi.log
stu01
stu02
stu03
stu04
stu05
stu06
stu07
stu08
stu09
stu10

chage

  查看或修改用户密码有效期,有些参数用法与passwd相同

  -l  # 显示账号有效期的信息

  -M -W -X相当于passwd里面对应的小写字母作用

  

chpasswd

  用于从标准输入中读取一定格式的用户名,密码来批量更新用户密码,其格式为“用户名:密码”

  

[root@centos7 tmp]# echo stu{..}:$((RANDOM+))|tr " " "\n" >/tmp/chpasswd.xt
[root@centos7 tmp]# cat /tmp/chpasswd.xt
stu01:
stu02:
stu03:
stu04:
stu05:
stu06:
stu07:
stu08:
stu09:
stu10:
[root@centos7 tmp]# chpasswd </tmp/chpasswd.xt
[root@centos7 tmp]# su - stu01
[stu01@centos7 ~]$ su - stu02
Password:
[stu02@centos7 ~]$ whoami
stu02

su  

  从当前用户切换到指定用户或者以指定用户的身份执行命令或程序

  -c  # 向shell传递单个命令

  -  # 切换用户是,将用户的家目录,系统环境等重新按切换后的用户初始化

  

[stu02@centos7 ~]$ whoami
stu02
[stu02@centos7 ~]$ su - root
Password:
Last login: Thu Apr :: CST from 10.0.0.1 on pts/
[root@centos7 ~]# whoami
root # 使系统在每一次开机时都能自动以普通用户启动指定的服务脚本 [root@centos7 ~]# echo "su - oldboy -c '/bin/sh /service/scripts/deploy.sh'">> /etc/rc.local

visudo

  此命令专门用来编辑/etc/sudoers这个文件的,同时提供语法检查,是sudo命令的配置文件  

   -c  # 手动执行语法检查

    一般用于授权用户权限的

## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL

sudo

  可以让普通用户在执行指定的命令或层序上,拥有超级用户的权限,进行分类,并有针对性的命令授予指定的普通用户

  -l  # 列出当前用户可执行的命令

  -u  # 以指定用户的身份执行命令

  

id

  显示指定用户真实有效的UID和GID等信息

  

[root@centos7 tmp]# id root
uid=(root) gid=(root) groups=(root)
[root@centos7 tmp]# id xiaolizi01
uid=(xiaolizi01) gid=(xiaolizi01) groups=(xiaolizi01)

w

  显示已经登录系统的用户,并显示用户正在执行命令

   -h  # 不显示前两行标题信息

   -u  # 忽略执行程序的名称,以及CPU时间的信息

   -s  # 使用短输出格式

[root@centos7 tmp]# w
:: up :, users, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 : :17m .02s .02s -bash
root pts/ 10.0.0.1 : :43m .29s .02s -bash
root pts/ 10.0.0.1 : .00s .12s .00s w [root@centos7 tmp]# w -h
root tty1 : :19m .02s .02s -bash
root pts/ 10.0.0.1 : :44m .29s .02s -bash
root pts/ 10.0.0.1 : .00s .12s .00s w -h
[root@centos7 tmp]#

  

who

  显示已登录用户的信息,w的精简版

  -a  # 显示所有信息

  -b  # 显示系统的启动时间

  -d  # 显示已死的进程

  -H  # 显示标题,默认不显示

  -l  # 显示登录进程

[root@centos7 tmp]# who
root tty1 -- :
root pts/ -- : (10.0.0.1)
root pts/ -- : (10.0.0.1)
[root@centos7 tmp]# who -b
system boot -- :
[root@centos7 tmp]# who -d
pts/ -- : id=ts/ term=
exit=
[root@centos7 tmp]# who -l
[root@centos7 tmp]# who -H
NAME LINE TIME COMMENT
root tty1 -- :
root pts/ -- : (10.0.0.1)
root pts/ -- : (10.0.0.1)
[root@centos7 tmp]# who -H -a
NAME LINE TIME IDLE PID COMMENT EXIT
system boot -- :
root + tty1 -- : :
run-level -- :
pts/ -- : id=ts/ term= exit=
root + pts/ -- : : (10.0.0.1)
root + pts/ -- : . (10.0.0.1)
[root@centos7 tmp]#

whoami

  显示当前登录的用户名

last

  从日志文件/var/log/wtmp读取信息并显示用户最近的登录列表

  -n num  # 指定显示结果的行数

[root@centos7 ~]# ll /var/log/wtmp
-rw-rw-r--. root utmp Apr : /var/log/wtmp
[root@centos7 ~]# less /var/log/wtmp
"/var/log/wtmp" may be a binary file. See it anyway?
[root@centos7 ~]# last
root pts/ 10.0.0.1 Thu Apr : still logged in
root pts/ 10.0.0.1 Thu Apr : still logged in

lastb

  从/var/log/btmp中读取信息,并显示登录失败的记录,用于发现系统异常登录

  

[root@centos7 ~]# lastb
root tty1 Sat Oct : - : (:)
(unknown tty1 Fri Oct : - : (:) btmp begins Fri Oct ::

lastlog

  显示所有用户的最近登录记录,异常记录,从/var/log/lastlog中读取信息

[root@centos7 ~]# lastlog
Username Port From Latest
root pts/ Thu Apr :: +
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**
operator **Never logged in**
games **Never logged in**
ftp **Never logged in**
nobody **Never logged in**
systemd-network **Never logged in**
dbus **Never logged in**
polkitd **Never logged in**
tss **Never logged in**
abrt **Never logged in**
sshd **Never logged in**
postfix **Never logged in**
chrony **Never logged in**
xiaolizi01 pts/ Thu Apr :: +

Linux用户管理及用户信息查询的更多相关文章

  1. 【Linux学习】Linux用户管理1—用户查询指令、用户切换

    Linux用户管理1-用户查询指令.用户切换 一.用户查询指令 who: 查看当前在线用户情况 -a:显示所有用户的所有信息 -m:显示运行该程序的用户名,和"who am I"的 ...

  2. (四)Linux之用户管理(用户和用户组)

    Linux之用户管理(用户和用户组) 目录 Linux之用户管理(用户和用户组) 一.概述 二.用户和组的关系 三.关于UID和GID(用户ID和组ID) 四.用户和组的数据 /etc/passwd内 ...

  3. linux 用户管理,用户权限管理,用户组管理

    linux 用户管理,用户权限管理,用户组管理 一:ls -l 命令 解释 第个d表示是目录,如果是文件是-,如果是连接是l 第2到4个 rwx 表示创建者的操作权限 r 读,w 写,x 执行 第5到 ...

  4. 【Linux学习】Linux用户管理2—用户配置文件

    Linux用户管理2-用户配置文件 /etc/passwd: 存放系统用户的文件 输入 vi /etc/passwd /etc/shadow: 保存保密文件 /etc/group: 群组文件 输入 v ...

  5. 用户管理 之 用户(User)和用户组(Group)配置文件详解

    用户(User)和用户组(Group)的配置文件,是系统管理员最应该了解和掌握的系统基础文件之一,从另一方面来说,了解这些文件也是系统安全管理的重要组成部份:做为一个合格的系统管理员应该对用户和用户组 ...

  6. linux命令之用户管理及用户信息查询命令(下)

    1.visudo:编辑sudoers文件 该命令专门用来编辑/etc/sudoers文件,同时提供语法检查等功能. 示例: 1)执行visudo对普通用户授权 [root@boxiaoyuan ~]# ...

  7. linux命令之用户管理及用户信息查询命令(上)

    1.useradd:创建用户 该命令用于创建新的用户或者更改用户的信息. 参数 说明 -g 指定用户对应的用户组,用户组 -s 用户登录后使用的Shell名称 -u 用户的ID值 示例: 1)user ...

  8. Linux组管理、用户管理、查看用户信息、usermod、which、切换用户、修改文件具体权限

    组管理 提示:创建组/删除组的终端命令都需要通过sudo执行 序号 命令 作用 01 groupadd组名 添加组 02 groupdel组名 删除组 03 cat/etc/group 确认组信息 0 ...

  9. linux 用户管理修改用户信息、密码状态、删除用户、退出登陆、切换用户

    修改用户信息usermoduseradd支持的选项usermod都支持passwd有两个选项-l(在密码串前面加了两个叹号),-u,usermod有两个选项:-L 临时锁定用户(Lock)(在密码串前 ...

随机推荐

  1. canvas验证码 - 随机字母数字

    基于canvas制作随机生成数字英文组合验证码效果,点击或刷新会自动重组.输入验证码提交验证效果代码. <div class="verification"> <i ...

  2. python 字符串的方法和注释

    capitalize() 把字符串的第一个字符改为大写 casefold() 把整个字符串的所有字符改为小写 center(width) 将字符串居中,并使用空格填充至长度 width 的新字符串 c ...

  3. CSS 小结笔记之选择器

    Css选择器主要分为以下几类 类选择器 ID选择器 通配符选择器 标签选择器 伪类选择器 复合选择器 1.类选择器:通过.classname 来选择 例如 .color2 { color: rebec ...

  4. Problem executing scripts APT::Update::Post-Invoke-Success 'if /usr/bin/test -w /var/cache/app-info -a -e /usr/bin/appstreamcli; then appstreamcli refresh > /dev/null; fi'

    运行sudo apt-get update 时Ubuntu 16.04出现: Problem executing scripts APT::Update::Post-Invoke-Success 'i ...

  5. 回归JavaScript基础(四)

    主题:JavaScript变量.作用域和内存问题 JavaScript的变量和别的语言比起来是与众不同的.说道变量,不得不谈他的作用域.同很多语言一样,JavaScript开发者也不用担心开发中内存的 ...

  6. bootstrap作为mixin库的应用模式

    Bootstrap作为一个非常流行的前端css框架,得到了非常多的应用.一般的使用方法都是直接download bootstrap.css,作为css文件引入到html的markup中,随后直接引用其 ...

  7. MVC 在视图中获取当前的Controller、Action的方式

    在视图中获取Controller和Action的方式: Controller: @ViewContext.RouteData.Route.GetRouteData(this.Context).Valu ...

  8. C++ 类 、构造、 析构、 重载 、单例模式 学习笔记及练习

    一.拷贝构造函数 1.是一种特殊的构造函数,就是用一个已有的对象去构造其同类的副本对象,即对象克隆. class 类名 { 类名(类名& that) { 对类成员挨个赋值 ... } } 练习 ...

  9. 使用 sar 和 kSar 来发现 Linux 性能瓶颈

    作者: Vivek Gite 译者: LCTT qhwdw | sar 命令用用收集.报告.或者保存 UNIX / Linux 系统的活动信息.它保存选择的计数器到操作系统的 /var/log/sa/ ...

  10. 2. 跟踪标记 (Trace Flag) 3604, 3605 输出DBCC命令结果

    跟踪标记:3604 功能: 输出DBCC命令返回结果到查询窗口(通常是SSMS窗口),类似print命令的显示效果: 用途: 常用于获取DBCC IND, DBCC PAGE命令的输出结果,因为这2个 ...