第玖四节 用户管理初级(上)

标签(空格分隔): Linux实战教学笔记-陈思齐

—更加多材质点小编查看

Linux用户管理-中,Linux用户管理-

 

 添加用户组命令groupadd

提示:
groupadd命令的施用格外不难,但在生育条件中央银行使的不多,由此,会不难利用即可。

与groupadd命令有关的文件有:
/etc/group :用户组相关文件
/etc/gshadow :用户组加密相关文书

groupadd命令语法

澳门金沙国际 1澳门金沙国际 2

[root@chensiqi ~]# man groupadd #查看groupadd命令的帮助信息
名称:
    groupadd -建立新的用户组
语法:
    groupadd 【-g gid [-o][-r][-f]】 groupname
描述:
    groupadd可指定用户组名称来建立新的用户组账号。需要时可从系统种取得新用户组值。

View Code

为了方便阅读和查占星关参数,笔者依然用表格的章程把groupadd参数选项呈现给我们如下所示:
|groupadd参数选项|注释表明(带特殊颜色的代表首要,须要理解)|
|–|–|
|-g
gid|指定用户组GID值。除非接-o参数(如:groupadd -g 1234 -o chensiqi),否则ID值必须是唯一的数字(不能负数)。如果不指定-g参数,则预设值会从500开始|
|-r|建立连串用户组。GID值会比/etc/login.defs中定义的UID_MIN值小。|
|-f|新增二个账户,强制覆盖一个早已存在的用户组账号|

 添加用户组命令groupadd

提示:
groupadd命令的利用分外简单,但在生养环境中选择的不多,由此,会不难利用即可。

与groupadd命令有关的文本有:
/etc/group :用户组相关文件
/etc/gshadow :用户组加密相关文件

groupadd命令语法

澳门金沙国际 3澳门金沙国际 4

[root@chensiqi ~]# man groupadd #查看groupadd命令的帮助信息
名称:
    groupadd -建立新的用户组
语法:
    groupadd 【-g gid [-o][-r][-f]】 groupname
描述:
    groupadd可指定用户组名称来建立新的用户组账号。需要时可从系统种取得新用户组值。

View Code

为了便于阅读和查占星关参数,作者仍旧用表格的点子把groupadd参数选项呈现给大家如下所示:
|groupadd参数选项|注释说明(带特殊颜色的意味首要,须求控制)|
|–|–|
|-g
gid|指定用户组GID值。除非接-o参数(如:groupadd -g 1234 -o chensiqi),否则ID值必须是唯一的数字(不能负数)。如果不指定-g参数,则预设值会从500开始|
|-r|建立种类用户组。GID值会比/etc/login.defs中定义的UID_MIN值小。|
|-f|新增2个账户,强制覆盖一个早已存在的用户组账号|

1,账号管理

 添加用户组命令groupadd

提示:
groupadd命令的应用非常简单,但在生产环境中利用的不多,因而,会简单利用即可。

与groupadd命令有关的文本有:
/etc/group :用户组相关文件
/etc/gshadow :用户组加密相关文件

groupadd命令语法

澳门金沙国际 5[[email protected]
~]# man groupadd #翻开groupadd命令的支援音讯 名称: groupadd
-建立新的用户组 语法: groupadd 【-g gid [-o][-r][-f]】 groupname
描述:
groupadd可钦命用户组名称来建立新的用户组账号。需求时可从系统种得到新用户组值。
View Code

为了有利于阅读和查阅相关参数,作者照旧用表格的方法把groupadd参数选项呈现给我们如下所示:
|groupadd参数选项|注释表达(带特殊颜色的表示首要,供给控制)|
|–|–|
|-g
gid|指定用户组GID值。除非接-o参数(如:groupadd -g 1234 -o chensiqi),否则ID值必须是唯一的数字(不能负数)。如果不指定-g参数,则预设值会从500开始|
|-r|建立系统用户组。GID值会比/etc/login.defs中定义的UID_MIN值小。|
|-f|新增贰个账户,强制覆盖一个业已存在的用户组账号|

groupadd命令实例

在生育环境中,一般扩展用户组的用法都以非凡不难的,比如上边包车型地铁例证,添加GID为802的用户组chensiqi

[root@chensiqi ~]# groupadd -g 802 chensiqi #未必一定要指定GID。一般需求不加也可以

即使不供给钦点用户组ID值,可以一向执行

[root@chensiqi ~]# groupadd chensiqi

唤醒:未涉及的groupadd的参数,我们能够权且忽略掉,在骨子里工作中用的比较少。

 

groupadd命令实例

在生育条件中,一般扩展用户组的用法都以卓殊不难的,比如上边包车型大巴例子,添加GID为802的用户组chensiqi

[root@chensiqi ~]# groupadd -g 802 chensiqi #未必一定要指定GID。一般需求不加也可以

假定不供给钦赐用户组ID值,能够直接执行

[root@chensiqi ~]# groupadd chensiqi

提醒:未涉嫌的groupadd的参数,咱们可以一时半刻忽略掉,在其实工作中用的可比少。

 

1.1 管理用户命令汇总

命令 注释说明(特殊颜色的必须掌握)
useradd增 同adduser命令,执行此命令可在系统中添加用户。(更改4个用户文件)
userdel删 执行此命令可删除用户及相关用户的配置或文件(更改4个用户文件)
passwd 执行此命令可为用户设置或修改密码。更改/etc/shadow文件
chage 修改用户密码属性。管理/etc/shadow文件
usermod改 修改用户信息的命令,可以通过usermod来修改登录名,用户的家目录等等
id查 查看用户的UID,GID及所归属的用户组
su 用户角色切换工具。su -
sudo sudo是通过另一个用户来执行命令,su 是用来切换用户,然后通过切换到的用户来完成相应的任务,但sudo能在命令后面直接接命令执行,比如sudo ls /root,不需要root密码就可以执行只有root才能执行的相应命令或具备的目录权限;这个权限需要通过visudo命令或者直接编辑/etc/sudoers来实现
visudo visudo配置sudo权限的编辑命令;也可以不用这个命令,直接用vi来编辑/etc/sudoers实现。但推荐用visudo来操作(会自动检查语法)
pwcov 同步用户从/etc/passwd到/etc/shadow
pwck pwck是校验用户配置文件/etc/passwd和/etc/shadow文件内容是否合法或完整
pwunconv 是pwcov的立逆向操作,是从/etc/shadow和/etc/passwd创建/etc/passwd,然后会删除/etc/shadow文件
finger 查看用户信息工具

groupadd命令实例

在生养环境中,一般扩展用户组的用法都是十三分不难的,比如下边包车型大巴事例,添加GID为802的用户组chensiqi

[[email protected] ~]# groupadd -g 802 chensiqi #未必一定要指定GID。一般需求不加也可以

假定不要求钦点用户组ID值,能够直接执行

[[email protected] ~]# groupadd chensiqi

唤醒:未涉及的groupadd的参数,我们能够临时忽略掉,在其实工作中用的相比少。

 

用户密码相关命令passwd

前文大家已经学会如何添加用户和用户组了,本节大家来上学设置或涂改用户的密码。passwd命令的用户很多,但多数用法在日常工作中都不日常使用,那里大家选择部分生产条件工作中常用的用法加以印证。

passwd命令介绍

普通用户和最佳用户都能够运行passwd命令,但普通用户只可以改变本身的用户密码,一流用户root则足以安装或涂改全数用户的密码。

当直接实施passwd命令后边不接任何参数或用户名时,则表示修改当前登录用户的密码,请看上边的例证:

[root@chensiqi1 ~]# passwd #root用户下直接执行passwd,后面不接任何用户表示修改root用户的密码:下面也有提示。
Changing password for user root.
New password:  #输入新密码 
Retype new password:  #再次输入新密码
passwd: all authentication tokens updated successfully. #成功修改root密码

提示:
普通用户只好修改自己的密码。假诺想改变自身的密码,同样是直接运营passwd命令;比如当前操作系统用户是chensiqi:

[chensiqi@chensiqi1 ~]$ passwd #普通用户也输入passwd修改密码
Changing password for user chensiqi.
Changing password for chensiqi.
(current) UNIX password: #普通用户必须先输入旧密码才能更改
New password: 
Password unchanged #新密码不能和旧密码相同。
New password: 
Password unchanged
New password: 

passwd 命令参数选项

澳门金沙国际 6澳门金沙国际 7

[chensiqi@chensiqi1 ~]$ passwd --help
Usage: passwd [OPTION...] <accountName>
  -k, --keep-tokens       keep non-expired authentication tokens
                          #保留即将过期的用户在期满后仍能使用
  -d, --delete            delete the password for the named account (root only)
                          #删除用户密码,仅能以root权限操作
  -l, --lock              lock the password for the named account (root only)
                          #锁住用户无权更改密码,仅能通过root权限操作。
  -u, --unlock            unlock the password for the named account (root only)
                          #解除锁定;
  -f, --force             force operation
                          #强制操作:仅root权限才能操作
  -x, --maximum=DAYS      maximum password lifetime (root only)
  #两次密码修正的最大天数,后面接数字:仅root权限操作
  -n, --minimum=DAYS      minimum password lifetime (root only)
  #两次密码修改的最小天数,后面接数字,仅能root权限操作
  -w, --warning=DAYS      number of days warning users receives before password expiration (root only)     #在距多少天提醒用户修改密码:仅能root权限操作
  -i, --inactive=DAYS     number of days after password expiration when an account becomes disabled(root only) #在距多少天提醒用户修改密码:仅能root权限操作
  -S, --status            report password status on the named account (root only)                 #查询用户的密码状态,仅能root用户操作。

View Code

为了便于查看,大家用表格格局把passwd命令的常用参数选项列表展现,如下表所示:

 

passwd参数 注释说明(带特殊颜色的表示重要,需要掌握)
-k –keep-tokens 保留即将过期的用户在期满后仍能使用
-d –delete 删除用户密码,仅能以root权限操作
-l, –lock 锁住用户无权更改密码,仅能通过root全县操作
-u, –unlock 解除锁定
-f, –force 强制操作:仅root权限才能操作
-x,–maximum=DAYS 两次密码修改的最大天数,后面接数字:仅能root权限操作
-n –minimum=DAYS 两次密码修改的最小天数,后面接数字,仅能root权限操作
-w –warning=DAYS 在距多少天提醒用户修改密码:仅能root权限操作
-l –inactive=DAYS 在密码过期后多少天,用户被禁掉,仅能以root操作
-S –status 查询用户的密码状态,仅能root用户操作
–stdin 从stdin读入密码

 

以身作则1:我们用-l参数来锁定chensiqi用户,使之不能够改改密码,然后再用-u参数来清除锁定。

澳门金沙国际 8澳门金沙国际 9

 1 [zcl@chengliang ~]$ passwd -S zcl
 2 Only root can do that.
 3 [zcl@chengliang ~]$ su - root
 4 Password: 
 5 [root@chengliang ~]# passwd -S zcl  #锁定前zcl用户的状态信息
 6 zcl PS 2016-11-19 0 99999 7 -1 (Password set, SHA512 crypt.)
 7 [root@chengliang ~]# grep zcl /etc/shadow  # 查看密码加密文件zcl用户信息的变化
 8 zcl:$6$X.mR9wCK$J3VXtMEZ9jK0t1xgFKT3J1Yb6uD/hRAlqIG83PDDlViHA4abbwT0p3ay9jAHU1LgODr1bycXd8GaL3IVUBjdG.:17124:0:99999:7:::
 9 [root@chengliang ~]# passwd -l zcl  # 锁定用户zcl, 使之不能更改密码。
10 Locking password for user zcl.
11 passwd: Success  # 锁定成功
12 [root@chengliang ~]# grep zcl /etc/shadow
13 zcl:!!$6$X.mR9wCK$J3VXtMEZ9jK0t1xgFKT3J1Yb6uD/hRAlqIG83PDDlViHA4abbwT0p3ay9jAHU1LgODr1bycXd8GaL3IVUBjdG.:17124:0:99999:7:::
14 # 密码信息前边多了两个叹号!
15 [root@chengliang ~]# passwd -S zcl   #查看用户状态
16 zcl LK 2016-11-19 0 99999 7 -1 (Password locked.)
17 [root@chengliang ~]# su - zcl
18 [zcl@chengliang ~]$ passwd
19 Changing password for user zcl.
20 Changing password for zcl.
21 (current) UNIX password: 
22 passwd: Authentication token manipulation error  # 失败不让修改
23 [zcl@chengliang ~]$ exit
24 logout
25 [root@chengliang ~]# passwd -u zcl  # 通过-u参数,解除对用户zcl的锁定。
26 Unlocking password for user zcl.
27 passwd: Success
28 [root@chengliang ~]# passwd -S zcl
29 zcl PS 2016-11-19 0 99999 7 -1 (Password set, SHA512 crypt.)
30 [root@chengliang ~]# grep zcl /etc/shadow
31 zcl:$6$X.mR9wCK$J3VXtMEZ9jK0t1xgFKT3J1Yb6uD/hRAlqIG83PDDlViHA4abbwT0p3ay9jAHU1LgODr1bycXd8GaL3IVUBjdG.:17124:0:99999:7:::
32 # 感叹号消失
33 [root@chengliang ~]# 

View Code

演示2:举四个组合参数-x-n-w-i控制密码时效的事例

[root@chensiqi1 ~]# date +%F    #显示当前系统时间
2017-02-16
[root@chensiqi1 ~]# chage -l chensiqi  #查看当前账户状态
Last password change                    : Feb 12, 2017
Password expires                    : Apr 13, 2017   
Password inactive                   : May 13, 2017
Account expires                     : never      #从不
Minimum number of days between password change      : 7   #7天后才能修改密码
Maximum number of days between password change      : 60 #60天后必须再次修改密码
Number of days of warning before password expires   : 10 #快过期提前10天通知用户

示范3:下边须要chensiqi用户7天内无法更改密码,60天过后必须修改密码,过期前10天布告用户,过期后30天禁止用户登录

[root@chensiqi1 ~]# passwd -n 7 -x 60 -i 30 -w 10 chensiqi
Adjusting aging data for user chensiqi.
passwd: Success
#chage -m 7 -M 60 -W 10 -I 30 chensiqi 命令也可以实现同样功能,只是参数的写法不同。
[root@chensiqi1 ~]# chage -l chensiqi  #查看修改后的结果
Last password change                    : Feb 12, 2017 #最后一次修改密码
Password expires                    : Apr 13, 2017  #密码过期时间
Password inactive                   : May 13, 2017 #密码被禁用
Account expires                     : never
Minimum number of days between password change      : 7   #7天内禁止修改密码
Maximum number of days between password change      : 60 #60天以后必须修改新密码
Number of days of warning before password expires   : 10 #密码过期前10天开始提醒

示例4:【必会】我们用–stdin参数实现非交互式的批量装置或改动密码

[root@chensiqi1 ~]# useradd chensiqi2   #创建用户
Creating mailbox file: File exists
[root@chensiqi1 ~]# echo "123123" | passwd --stdin chensiqi2
Changing password for user chensiqi2. #免交互输出设置chensiqi2密码
passwd: all authentication tokens updated successfully.
[root@chensiqi1 ~]# history -c
#将上面历史命令清空,上面设置密码虽然不需要交互了,但是密码会以明文的方式保存在历史记录里,这点需要大家注意一下。一般批量设置密码分发给管理员后,有强制大家更改密码。

落到实处批量开立用户,且批量开立用户自由密码的例证。

澳门金沙国际 10澳门金沙国际 11

#!/bin/env bash
# -*- conding:utf-8 -*-
# author:chensiqi
# qq:215379068

Userchars="chensiqi"    #用户字符串,就是用户名的前面部分。
for num in `seq 3`      #seq 3 表示1-3即,用户名后缀为1,2,3来区分不同用户
do
    useradd $Userchars$num   #创建用户的命令
    passwd=`echo $RANDOM|md5sum|cut -c3-20`     #按照随机数(RANDOM)的md5加密取3-20之间的字符做为用户密码。此处要注意,密码部分应该事先定义好变量,否则取值变化,导致密码生成错误。
    echo "$passwd"|passwd --stdin $Userchars$num    #这行就是利用--stdin无交互设置密码的参数
    echo -e "user:$userchars$num\tpasswd:$passwd">>/tmp/user.log    #输出创建的用户和密码到user.log文件
done
---------------------------分界线
[root@chensiqi1 ~]# cat /tmp/user.log  #查看用户的账号和密码
user:chensiqi1  passwd:0e07e85b8ff84f04d9
user:chensiqi2  passwd:2362c5ade9629b2782
user:chensiqi3  passwd:7f17100a32ddf668f3

#提示:有关shell编程,后面的章节会详细讲解,这里不太理解也没关系

View Code

 

用户密码相关命令passwd

前文我们早就学会怎么着添加用户和用户组了,本节大家来学习设置或修改用户的密码。passwd命令的用户很多,但抢先八分之四用法在平时干活中都不日常采用,那里大家挑选部分生育环境工作中常用的用法加以证实。

passwd命令介绍

普通用户和特等用户都得以运作passwd命令,但普通用户只好变更本人的用户密码,顶尖用户root则能够安装或修改全体用户的密码。

当间接实施passwd命令前面不接任何参数或用户名时,则象征修改当前报到用户的密码,请看下边包车型大巴事例:

[root@chensiqi1 ~]# passwd #root用户下直接执行passwd,后面不接任何用户表示修改root用户的密码:下面也有提示。
Changing password for user root.
New password:  #输入新密码 
Retype new password:  #再次输入新密码
passwd: all authentication tokens updated successfully. #成功修改root密码

提示:
普通用户只好修改自己的密码。如若想更改自身的密码,同样是直接运营passwd命令;比如当前操作系统用户是chensiqi:

[chensiqi@chensiqi1 ~]$ passwd #普通用户也输入passwd修改密码
Changing password for user chensiqi.
Changing password for chensiqi.
(current) UNIX password: #普通用户必须先输入旧密码才能更改
New password: 
Password unchanged #新密码不能和旧密码相同。
New password: 
Password unchanged
New password: 

passwd 命令参数选项

澳门金沙国际 12澳门金沙国际 13

[chensiqi@chensiqi1 ~]$ passwd --help
Usage: passwd [OPTION...] <accountName>
  -k, --keep-tokens       keep non-expired authentication tokens
                          #保留即将过期的用户在期满后仍能使用
  -d, --delete            delete the password for the named account (root only)
                          #删除用户密码,仅能以root权限操作
  -l, --lock              lock the password for the named account (root only)
                          #锁住用户无权更改密码,仅能通过root权限操作。
  -u, --unlock            unlock the password for the named account (root only)
                          #解除锁定;
  -f, --force             force operation
                          #强制操作:仅root权限才能操作
  -x, --maximum=DAYS      maximum password lifetime (root only)
  #两次密码修正的最大天数,后面接数字:仅root权限操作
  -n, --minimum=DAYS      minimum password lifetime (root only)
  #两次密码修改的最小天数,后面接数字,仅能root权限操作
  -w, --warning=DAYS      number of days warning users receives before password expiration (root only)     #在距多少天提醒用户修改密码:仅能root权限操作
  -i, --inactive=DAYS     number of days after password expiration when an account becomes disabled(root only) #在距多少天提醒用户修改密码:仅能root权限操作
  -S, --status            report password status on the named account (root only)                 #查询用户的密码状态,仅能root用户操作。

View Code

为了有利于查看,大家用表格方式把passwd命令的常用参数选项列表展现,如下表所示:

 

passwd参数 注释说明(带特殊颜色的表示重要,需要掌握)
-k –keep-tokens 保留即将过期的用户在期满后仍能使用
-d –delete 删除用户密码,仅能以root权限操作
-l, –lock 锁住用户无权更改密码,仅能通过root全县操作
-u, –unlock 解除锁定
-f, –force 强制操作:仅root权限才能操作
-x,–maximum=DAYS 两次密码修改的最大天数,后面接数字:仅能root权限操作
-n –minimum=DAYS 两次密码修改的最小天数,后面接数字,仅能root权限操作
-w –warning=DAYS 在距多少天提醒用户修改密码:仅能root权限操作
-l –inactive=DAYS 在密码过期后多少天,用户被禁掉,仅能以root操作
-S –status 查询用户的密码状态,仅能root用户操作
–stdin 从stdin读入密码

 

示范1:大家用-l参数来锁定chensiqi用户,使之无法改改密码,然后再用-u参数来扫除锁定。

澳门金沙国际 14澳门金沙国际 15

 1 [zcl@chengliang ~]$ passwd -S zcl
 2 Only root can do that.
 3 [zcl@chengliang ~]$ su - root
 4 Password: 
 5 [root@chengliang ~]# passwd -S zcl  #锁定前zcl用户的状态信息
 6 zcl PS 2016-11-19 0 99999 7 -1 (Password set, SHA512 crypt.)
 7 [root@chengliang ~]# grep zcl /etc/shadow  # 查看密码加密文件zcl用户信息的变化
 8 zcl:$6$X.mR9wCK$J3VXtMEZ9jK0t1xgFKT3J1Yb6uD/hRAlqIG83PDDlViHA4abbwT0p3ay9jAHU1LgODr1bycXd8GaL3IVUBjdG.:17124:0:99999:7:::
 9 [root@chengliang ~]# passwd -l zcl  # 锁定用户zcl, 使之不能更改密码。
10 Locking password for user zcl.
11 passwd: Success  # 锁定成功
12 [root@chengliang ~]# grep zcl /etc/shadow
13 zcl:!!$6$X.mR9wCK$J3VXtMEZ9jK0t1xgFKT3J1Yb6uD/hRAlqIG83PDDlViHA4abbwT0p3ay9jAHU1LgODr1bycXd8GaL3IVUBjdG.:17124:0:99999:7:::
14 # 密码信息前边多了两个叹号!
15 [root@chengliang ~]# passwd -S zcl   #查看用户状态
16 zcl LK 2016-11-19 0 99999 7 -1 (Password locked.)
17 [root@chengliang ~]# su - zcl
18 [zcl@chengliang ~]$ passwd
19 Changing password for user zcl.
20 Changing password for zcl.
21 (current) UNIX password: 
22 passwd: Authentication token manipulation error  # 失败不让修改
23 [zcl@chengliang ~]$ exit
24 logout
25 [root@chengliang ~]# passwd -u zcl  # 通过-u参数,解除对用户zcl的锁定。
26 Unlocking password for user zcl.
27 passwd: Success
28 [root@chengliang ~]# passwd -S zcl
29 zcl PS 2016-11-19 0 99999 7 -1 (Password set, SHA512 crypt.)
30 [root@chengliang ~]# grep zcl /etc/shadow
31 zcl:$6$X.mR9wCK$J3VXtMEZ9jK0t1xgFKT3J1Yb6uD/hRAlqIG83PDDlViHA4abbwT0p3ay9jAHU1LgODr1bycXd8GaL3IVUBjdG.:17124:0:99999:7:::
32 # 感叹号消失
33 [root@chengliang ~]# 

View Code

演示2:举叁个结合参数-x-n-w-i控制密码时效的事例

[root@chensiqi1 ~]# date +%F    #显示当前系统时间
2017-02-16
[root@chensiqi1 ~]# chage -l chensiqi  #查看当前账户状态
Last password change                    : Feb 12, 2017
Password expires                    : Apr 13, 2017   
Password inactive                   : May 13, 2017
Account expires                     : never      #从不
Minimum number of days between password change      : 7   #7天后才能修改密码
Maximum number of days between password change      : 60 #60天后必须再次修改密码
Number of days of warning before password expires   : 10 #快过期提前10天通知用户

示范3:上边供给chensiqi用户7天内无法改变密码,60天之后必须修改密码,过期前10天通报用户,过期后30天禁止用户登录

[root@chensiqi1 ~]# passwd -n 7 -x 60 -i 30 -w 10 chensiqi
Adjusting aging data for user chensiqi.
passwd: Success
#chage -m 7 -M 60 -W 10 -I 30 chensiqi 命令也可以实现同样功能,只是参数的写法不同。
[root@chensiqi1 ~]# chage -l chensiqi  #查看修改后的结果
Last password change                    : Feb 12, 2017 #最后一次修改密码
Password expires                    : Apr 13, 2017  #密码过期时间
Password inactive                   : May 13, 2017 #密码被禁用
Account expires                     : never
Minimum number of days between password change      : 7   #7天内禁止修改密码
Maximum number of days between password change      : 60 #60天以后必须修改新密码
Number of days of warning before password expires   : 10 #密码过期前10天开始提醒

示例4:【必会】大家用–stdin参数完毕非交互式的批量安装或改动密码

[root@chensiqi1 ~]# useradd chensiqi2   #创建用户
Creating mailbox file: File exists
[root@chensiqi1 ~]# echo "123123" | passwd --stdin chensiqi2
Changing password for user chensiqi2. #免交互输出设置chensiqi2密码
passwd: all authentication tokens updated successfully.
[root@chensiqi1 ~]# history -c
#将上面历史命令清空,上面设置密码虽然不需要交互了,但是密码会以明文的方式保存在历史记录里,这点需要大家注意一下。一般批量设置密码分发给管理员后,有强制大家更改密码。

兑现批量创造用户,且批量创办用户私下密码的例子。

澳门金沙国际 16澳门金沙国际 17

#!/bin/env bash
# -*- conding:utf-8 -*-
# author:chensiqi
# qq:215379068

Userchars="chensiqi"    #用户字符串,就是用户名的前面部分。
for num in `seq 3`      #seq 3 表示1-3即,用户名后缀为1,2,3来区分不同用户
do
    useradd $Userchars$num   #创建用户的命令
    passwd=`echo $RANDOM|md5sum|cut -c3-20`     #按照随机数(RANDOM)的md5加密取3-20之间的字符做为用户密码。此处要注意,密码部分应该事先定义好变量,否则取值变化,导致密码生成错误。
    echo "$passwd"|passwd --stdin $Userchars$num    #这行就是利用--stdin无交互设置密码的参数
    echo -e "user:$userchars$num\tpasswd:$passwd">>/tmp/user.log    #输出创建的用户和密码到user.log文件
done
---------------------------分界线
[root@chensiqi1 ~]# cat /tmp/user.log  #查看用户的账号和密码
user:chensiqi1  passwd:0e07e85b8ff84f04d9
user:chensiqi2  passwd:2362c5ade9629b2782
user:chensiqi3  passwd:7f17100a32ddf668f3

#提示:有关shell编程,后面的章节会详细讲解,这里不太理解也没关系

View Code

 

1.2 管理用户组命令汇总

命令 注释说明(特殊颜色标记需要掌握)
groupadd 添加用户组
groupdel 删除用户组
groupmod 修改用户组信息
gpasswd 为用户组设置密码
groups 显示用户所属的用户组
newgrp 更改用户所属的有效用户组

用户密码相关命令passwd

前文大家已经学会怎么添加用户和用户组了,本节大家来读书设置或涂改用户的密码。passwd命令的用户很多,但多数用法在日常做事中都不平时选拔,这里大家选择部分生育环境工作中常用的用法加以证实。

passwd命令介绍

普通用户和超级用户都可以运行passwd命令,但普通用户只能更改自身的用户密码,超级用户root则可以设置或修改所有用户的密码。

当间接执行passwd命令前面不接任何参数或用户名时,则象征修改当前报到用户的密码,请看下边包车型大巴例子:

[[email protected] ~]# passwd #root用户下直接执行passwd,后面不接任何用户表示修改root用户的密码:下面也有提示。
Changing password for user root.
New password:  #输入新密码 
Retype new password:  #再次输入新密码
passwd: all authentication tokens updated successfully. #成功修改root密码

提示:
普通用户只可以修改自己的密码。如若想改变本身的密码,同样是一向运转passwd命令;比如当前操作系统用户是chensiqi:

[[email protected] ~]$ passwd #普通用户也输入passwd修改密码
Changing password for user chensiqi.
Changing password for chensiqi.
(current) UNIX password: #普通用户必须先输入旧密码才能更改
New password: 
Password unchanged #新密码不能和旧密码相同。
New password: 
Password unchanged
New password: 

passwd 命令参数选项

澳门金沙国际 18[[email protected]
~]$ passwd –help Usage: passwd [OPTION…] <accountName> -k,
–keep-tokens keep non-expired authentication tokens
#保留即将过期的用户在期满后还可以运用 -d, –delete delete the password
for the named account (root only) #剔除用户密码,仅能以root权限操作 -l,
–lock lock the password for the named account (root only)
#锁住用户无权更改密码,仅能透过root权限操作。 -u, –unlock unlock the
password for the named account (root only) #排除锁定; -f, –force
force operation #强制操作:仅root权限才能操作 -x, –maximum=DAYS
maximum password lifetime (root only)
#四回密码校对的最流年气,前边接数字:仅root权限操作 -n, –minimum=DAYS
minimum password lifetime (root only)
#五次密码修改的十分的小天数,前边接数字,仅能root权限操作 -w,
–warning=DAYS number of days warning users receives before password
expiration (root only) #在距多少天提示用户修改密码:仅能root权限操作
-i, –inactive=DAYS number of days after password expiration when an
account becomes disabled(root only)
#在距多少天提醒用户修改密码:仅能root权限操作 -S, –status report
password status on the named account (root only)
#查询用户的密码状态,仅能root用户操作。 View Code

为了便于查看,大家用表格情势把passwd命令的常用参数选项列表展现,如下表所示:

 

passwd参数 注释说明(带特殊颜色的表示重要,需要掌握)
-k –keep-tokens 保留即将过期的用户在期满后仍能使用
-d –delete 删除用户密码,仅能以root权限操作
-l, –lock 锁住用户无权更改密码,仅能通过root全县操作
-u, –unlock 解除锁定
-f, –force 强制操作:仅root权限才能操作
-x,–maximum=DAYS 两次密码修改的最大天数,后面接数字:仅能root权限操作
-n –minimum=DAYS 两次密码修改的最小天数,后面接数字,仅能root权限操作
-w –warning=DAYS 在距多少天提醒用户修改密码:仅能root权限操作
-l –inactive=DAYS 在密码过期后多少天,用户被禁掉,仅能以root操作
-S –status 查询用户的密码状态,仅能root用户操作
–stdin 从stdin读入密码

 

示范1:我们用-l参数来锁定chensiqi用户,使之不能改改密码,然后再用-u参数来清除锁定。

澳门金沙国际 19 1
[[email protected]
~]$ passwd -S zcl 2 Only root can do that. 3
[[email protected]
~]$ su – root 4 Password: 5
[[email protected]
~]# passwd -S zcl #锁定前zcl用户的图景音信 6 zcl PS 二〇一四-11-19 0
99999 7 -1 (Password set, SHA512 crypt.) 7
[[email protected]
~]# grep zcl /etc/shadow # 查看密码加密文件zcl用户消息的变化 8
zcl:$6$X.m奥德赛9wCK$J3VXtMEZ9jK0t1xgFKT3J1Yb6uD/hRAlqIG83PDDlViHCRIDERabbwT0p3ay9jAHU1LgODr1bycXd8GaL3IVUBjdG.:17124:0:99999:7:::
9
[[email protected]
~]# passwd -l zcl # 锁定用户zcl, 使之不可能更改密码。 10 Locking
password for user zcl. 11 passwd: Success # 锁定成功 12
[[email protected]
~]# grep zcl /etc/shadow 13
zcl:!!$6$X.mR9wCK$J3VXtMEZ9jK0t1xgFKT3J1Yb6uD/hRAlqIG83PDDlViHA4abbwT0p3ay9jAHU1LgODr1bycXd8GaL3IVUBjdG.:17124:0:99999:7:::
14 # 密码新闻后面多了三个叹号! 15
[[email protected]
~]# passwd -S zcl #翻开用户情状 16 zcl LK 二零一六-11-19 0 99999 7 -1
(Password locked.) 17
[[email protected]
~]# su – zcl 18
[[email protected]
~]$ passwd 19 Changing password for user zcl. 20 Changing password for
zcl. 21 (current) UNIX password: 22 passwd: Authentication token
manipulation error # 战败不让修改 23
[[email protected]
~]$ exit 24 logout 25
[[email protected]
~]#【澳门金沙国际】用户管理初级,Linux用户管理。 passwd -u zcl # 通过-u参数,解除对用户zcl的锁定。 26 Unlocking
password for user zcl. 27 passwd: Success 28
[[email protected]
~]# passwd -S zcl 29 zcl PS 2016-11-19 0 99999 7 -1 (Password set,
SHA512 crypt.) 30
[[email protected]
~]# grep zcl /etc/shadow 31
zcl:$6$X.mR9wCK$J3VXtMEZ9jK0t1xgFKT3J1Yb6uD/hRAlqIG83PDDlViHA4abbwT0p3ay9jAHU1LgODr1bycXd8GaL3IVUBjdG.:17124:0:99999:7:::
32 # 感叹号消失 33
[[email protected]
~]# View Code

演示2:举3个组合参数-x-n-w-i控制密码时效的事例

[[email protected] ~]# date +%F    #显示当前系统时间
2017-02-16
[[email protected] ~]# chage -l chensiqi  #查看当前账户状态
Last password change                    : Feb 12, 2017
Password expires                    : Apr 13, 2017   
Password inactive                   : May 13, 2017
Account expires                     : never      #从不
Minimum number of days between password change      : 7   #7天后才能修改密码
Maximum number of days between password change      : 60 #60天后必须再次修改密码
Number of days of warning before password expires   : 10 #快过期提前10天通知用户

示范3:上面要求chensiqi用户7天内不可能改变密码,60天过后必须修改密码,过期前10天布告用户,过期后30天禁止用户登录

[[email protected] ~]# passwd -n 7 -x 60 -i 30 -w 10 chensiqi
Adjusting aging data for user chensiqi.
passwd: Success
#chage -m 7 -M 60 -W 10 -I 30 chensiqi 命令也可以实现同样功能,只是参数的写法不同。
[[email protected] ~]# chage -l chensiqi  #查看修改后的结果
Last password change                    : Feb 12, 2017 #最后一次修改密码
Password expires                    : Apr 13, 2017  #密码过期时间
Password inactive                   : May 13, 2017 #密码被禁用
Account expires                     : never
Minimum number of days between password change      : 7   #7天内禁止修改密码
Maximum number of days between password change      : 60 #60天以后必须修改新密码
Number of days of warning before password expires   : 10 #密码过期前10天开始提醒

示例4:【必会】大家用–stdin参数实现非交互式的批量设置或修改密码

[[email protected] ~]# useradd chensiqi2   #创建用户
Creating mailbox file: File exists
[[email protected] ~]# echo "123123" | passwd --stdin chensiqi2
Changing password for user chensiqi2. #免交互输出设置chensiqi2密码
passwd: all authentication tokens updated successfully.
[[email protected] ~]# history -c
#将上面历史命令清空,上面设置密码虽然不需要交互了,但是密码会以明文的方式保存在历史记录里,这点需要大家注意一下。一般批量设置密码分发给管理员后,有强制大家更改密码。

落到实处批量创立用户,且批量成立用户专断密码的事例。

澳门金沙国际 20#!/bin/env
bash # -*- conding:utf-8 -*- # author:chensiqi # qq:215379068
Userchars=”chensiqi” #用户字符串,正是用户名的前边部分。 for num in
`seq 3` #seq 3 表示1-3即,用户名后缀为1,2,3来差异分歧用户 do
useradd $Userchars$num #创造用户的吩咐 passwd=`echo $RANDOM|md5sum|cut
-c3-20`
#依照随机数(RANDOM)的md5加密取3-20之间的字符做为用户密码。此处要留心,密码部分应该先行定义好变量,不然取值变化,导致密码生成错误。
echo “$passwd”|passwd –stdin $Userchars$num
#那行正是应用–stdin无交互设置密码的参数 echo -e
“user:$userchars$num\tpasswd:$passwd”>>/tmp/user.log
#出口创造的用户和密码到user.log文件 done
—————————分界线
[[email protected]
~]# cat /tmp/user.log #翻看用户的账号和密码 user:chensiqi1
passwd:0e07e85b8ff84f04d9 user:chensiqi2 passwd:2362c5ade9629b2782
user:chensiqi3 passwd:7f17100a32ddf668f3
#唤醒:有关shell编制程序,前边的章节会详细讲解,那里不太明了也没涉及 View Code

 

passwd特殊权限表达

[root@chensiqi1 ~]# which passwd #查看passwd完成路径
/usr/bin/passwd
[root@chensiqi1 ~]ls -l /usr/bin/passwd 
-rwsr-xr-x. 1 root root 30768 Nov 23  2015 /usr/bin/passwd #发现属主权限位带了个s(setuid位)
[root@chensiqi1 ~]# ls -l /etc/passwd
-rw-r--r--. 1 root root 1301 Feb 17 21:41 /etc/passwd #/etc/passwd从权限上看仅允许root用户更改。
为什么其他用户可以更改/etc/passwd自己的密码呢?

笔者们看出/usr/bin/passwd文件的属主权限里呆了s权限,那是setuid权限位,那表示同意普通用户以/usr/bin/passwd属主root的权限来执行普通用户本来无法推行的作用。比如:普通用户是未曾权限修改/etc/passwd的(从上文可以见见)。因为/usr/bin/passwd命令文件已经设置了setuid权限位(约等于-rwsr-xr-x中的s),所以普通用户在履行/usr/bin/passwd命令时亦可利用root用户的权位,直接的改动/etc/passwd文件,以完毕修改自个儿口令的目标。

总结:

  • 有关passwd命令的用法一时半刻就介绍这么些,在事实上海工业作中,最常用的用法就是直接利用passwd加用户名设置和改动密码,其次是加–stdin参数批量无交互设置密码,别的的参数用的很少(包括-l-u-S等),大家只要想打听更加多参数,可参照man
    passwd或passwd –help
  • 末段提示下同学们,在生产环境中,我们设置密码时应尽恐怕的复杂性且无规律,但又利用用户本人记念。相比较好的密码是数字字母(包涵大小写)及特殊符号的构成,并且6人以上。

 

passwd特殊权限表达

[root@chensiqi1 ~]# which passwd #查看passwd完成路径
/usr/bin/passwd
[root@chensiqi1 ~]ls -l /usr/bin/passwd 
-rwsr-xr-x. 1 root root 30768 Nov 23  2015 /usr/bin/passwd #发现属主权限位带了个s(setuid位)
[root@chensiqi1 ~]# ls -l /etc/passwd
-rw-r--r--. 1 root root 1301 Feb 17 21:41 /etc/passwd #/etc/passwd从权限上看仅允许root用户更改。
为什么其他用户可以更改/etc/passwd自己的密码呢?

大家看看/usr/bin/passwd文件的属主权限里呆了s权限,那是setuid权限位,那意味同意普通用户以/usr/bin/passwd属主root的权柄来推行普通用户本来不可能实施的遵从。比如:普通用户是没有权力修改/etc/passwd的(从上文能够看到)。因为/usr/bin/passwd命令文件已经安装了setuid权限位(约等于-rwsr-xr-x中的s),所以普通用户在实践/usr/bin/passwd命令时能够使用root用户的权柄,直接的改动/etc/passwd文件,以高达修改自身口令的目标。

总结:

  • 至于passwd命令的用法临时就介绍这个,在实质上中国人民解放军海军事工业程高校业作中,最常用的用法就是直接行使passwd加用户名设置和改动密码,其次是加–stdin参数批量无交互设置密码,其余的参数用的很少(包蕴-l-u-S等),我们只要想询问越多参数,可参考man
    passwd或passwd –help
  • 终极提醒下同学们,在生养环境中,我们设置密码时应尽量的错综复杂且无规律,但又采纳用户自身记念。比较好的密码是数字字母(蕴含大小写)及特殊符号的整合,并且五人以上。

 

1.3 /etc/skel目录

/etc/skel目录是用来存放在新用户环境变量文件的目录,当咱们添加新用户时,那一个目录下的有所文件会自动被复制到新加上的用户的家目录下:暗许情状下,/etc/skel目录下的装有文件都以逃匿文件(以.点伊始的公文);通过修改,添加,删除/etc/skel目录下的文件,我们可为新创造的用户提供联合的,标准的,起先化用户环境。

下边我们就看下/etc/skel目录的始末:

[root@chensiqi1 ~]# ls -al /etc/skel/
total 20
drwxr-xr-x.  2 root root 4096 Dec 23 20:25 .
drwxr-xr-x. 78 root root 4096 Feb  4 09:13 ..
-rw-r--r--.  1 root root   18 May 10  2016 .bash_logout
-rw-r--r--.  1 root root  176 May 10  2016 .bash_profile
-rw-r--r--.  1 root root  124 May 10  2016 .bashrc

[root@chensiqi1 ~]# cd /etc/skel/
[root@chensiqi1 skel]# touch readme
[root@chensiqi1 skel]# ls -la
total 20
drwxr-xr-x.  2 root root 4096 Feb 11 02:21 .
drwxr-xr-x. 78 root root 4096 Feb  4 09:13 ..
-rw-r--r--.  1 root root   18 May 10  2016 .bash_logout
-rw-r--r--.  1 root root  176 May 10  2016 .bash_profile
-rw-r--r--.  1 root root  124 May 10  2016 .bashrc
-rw-r--r--.  1 root root    0 Feb 11 02:21 readme
[root@chensiqi1 skel]# useradd chensiqi2
[root@chensiqi1 skel]# su - chensiqi2
[chensiqi2@chensiqi1 ~]$ ls -la
total 20
drwx------. 2 chensiqi2 chensiqi2 4096 Feb 11 02:22 .
drwxr-xr-x. 5 root      root      4096 Feb 11 02:22 ..
-rw-r--r--. 1 chensiqi2 chensiqi2   18 May 10  2016 .bash_logout
-rw-r--r--. 1 chensiqi2 chensiqi2  176 May 10  2016 .bash_profile
-rw-r--r--. 1 chensiqi2 chensiqi2  124 May 10  2016 .bashrc
-rw-r--r--. 1 chensiqi2 chensiqi2    0 Feb 11 02:21 readme

命令说明:
在/etc/skel/目录下创建一个文件readme,然后我们创建一个新用户,发现在用户的家目录里也默认有一个readme。因此,得出结论,/etc/skel/目录下的所有文件都会默认出现在新建用户的家目录里。

passwd特殊权限表明

[[email protected] ~]# which passwd #查看passwd完成路径
/usr/bin/passwd
[[email protected] ~]ls -l /usr/bin/passwd 
-rwsr-xr-x. 1 root root 30768 Nov 23  2015 /usr/bin/passwd #发现属主权限位带了个s(setuid位)
[[email protected] ~]# ls -l /etc/passwd
-rw-r--r--. 1 root root 1301 Feb 17 21:41 /etc/passwd #/etc/passwd从权限上看仅允许root用户更改。
为什么其他用户可以更改/etc/passwd自己的密码呢?

我们来看/usr/bin/passwd文件的属主权限里呆了s权限,那是setuid权限位,那表示同意普通用户以/usr/bin/passwd属主root的权位来执行普通用户本来无法推行的功能。比如:普通用户是没有权力修改/etc/passwd的(从上文能够看到)。因为/usr/bin/passwd命令文件已经安装了setuid权限位(也正是-rwsr-xr-x中的s),所以普通用户在推行/usr/bin/passwd命令时能够使用root用户的权能,直接的改动/etc/passwd文件,以达到修改本人口令的目标。

总结:

  • 至于passwd命令的用法一时就介绍那些,在实质上中国人民解放军海军事工业程大学业作中,最常用的用法就是直接行使passwd加用户名设置和修改密码,其次是加–stdin参数批量无交互设置密码,其余的参数用的很少(包罗-l-u-S等),大家只要想询问越多参数,可参照man
    passwd或passwd –help
  • 最终提示下同学们,在生养环境中,大家设置密码时应尽量的错综复杂且无规律,但又选择用户本身记念。相比好的密码是数字字母(包罗大小写)及特殊符号的组成,并且伍个人以上。

 

修改用户密码有效期限相关命令chage

chage命令是用来修改用户密码有效期限的。(chage – change user password
expiry information)

chage命令的用法很多,和passwd等一声令下作用也有好多是再一次的,那里大家照旧选拔部分行事中常用的用法加以申明;

chage语法

[root@chensiqi ~]# chage --help
用法:chage [选项] 用户名

为了有利于同学们查看,我们用表格的点子把chage命令的常用参数列表呈现,如下表所示:
|chage 参数选项|注释表达(带特殊颜色的表示主要,须要掌握)|
|–|–|
|-d,–lastday 最目前期|将最近二次密码设置时间设为“近年来期子”|
|-E,–expiredate过期日期|将账户过期时间设为“过期日期”|
|-h,–help|突显此帮忙消息并退出|
|-l,–inactive失效密码|在密码过期后有点天,用户被禁掉,仅能以root操作|
|-l,–list|显示账户年龄信息|
|-m,–mindays最小天数|将三遍变动密码之间距离的小不点儿天数设为“最小天数”|
|-M,–maxdays最大天数|将五遍变动密码之间间距的最大天数设为“最命宫气”|
|-W,-warndays警告天数|将过期警告天数设为“警告天数”|

澳门金沙国际 21澳门金沙国际 22

示例1:chage -l 查看账户信息

[root@chensiqi1 ~]# chage -l chensiqi
Last password change                : Feb 12, 2017 #对应参数-d
Password expires                    : Apr 13, 2017 
Password inactive                   : May 13, 2017 #对应参数-I
Account expires                     : never #对应-E参数
Minimum number of days between password change      : 7 #对应m参数
Maximum number of days between password change      : 60 #对应M参数
Number of days of warning before password expires   : 10 #对应W参数
示例2:举一个组合参数-m,-M,-W,-I控制密码时效的例子(同passwd命令示例)

[root@chensiqi1 ~]# chage -l chensiqi
Last password change                    : Feb 12, 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 #99999天后必须修改密码
Number of days of warning before password expires   : 7 #过期前提前7天提醒chensiqi用户
示例3:下面求chensiqi用户7天内不能更改密码,60天后必须修改密码,过期前提前10天通知chensiqi用户,过期后30天后禁止用户登录。

[root@chensiqi1 ~]# chage -m 7 -M 60 -W 10 -I 30 chensiqi
[root@chensiqi1 ~]# chage -l chensiqi #查看修改后的结果
Last password change                    : Feb 12, 2017
Password expires                    : Apr 13, 2017
Password inactive                   : May 13, 2017
Account expires                     : never
Minimum number of days between password change      : 7 #7天内禁止修改密码
Maximum number of days between password change      : 60 #60天内必须修改新密码
Number of days of warning before password expires   : 10 #密码过期前10天开始提醒
提示:经过对比,我们发现修改后和前面讲解的passwd -n 7 -x 60 -W 10 -i 30 chensiqi命令修改结果一摸一样

View Code

总结:

在平常添丁情况工作中,偶尔会用到chage的-l和-E参数,其余的参数,使用就很少了,那里不多介绍(知识是最好的,对于初学者,学会正确的抉择知识很关键)。当然,假若想询问越来越多,请参考man
chage和chage
–help。此外,有关账户实际过期的实际结论,在前文讲解useradd命令时就详细讲解过了,那里就不介绍了。

有关用户密码时效

  • 依据前文的教学,大家领略passwd和chage等均可以安装或改动钦定账户密码的安全音信(有效期等),大家也得以由此/etc/login.defs配置文件或/etc/default/useradd针对富有账户全局修改。
  • 安装用户密码的时效有利有弊:优点是能够预防运营职员离职一段时间后意识用户仍可以够登录(也只怕不是祥和的用户),倘使设置了账户有效期,尽管用户未被清理,那么,一段时间内也会因为过期而不可能登陆了,其余,在服务器数量很多的处境,更改密码是非常大的工作量。所以,对于用户密码的时效功用,大家依据实际的做事须要,综合应用。在大规模的运维环境中,使用LDAP服务(微软活动目录)对linux账户统一验证,批量管制,也是正确的不二法门。

 

修改用户密码有效期限相关命令chage

chage命令是用来修改用户密码有效期限的。(chage – change user password
expiry information)

chage命令的用法很多,和passwd等一声令下功效也有不少是双重的,那里大家依然选拔部分工作中常用的用法加以申明;

chage语法

[root@chensiqi ~]# chage --help
用法:chage [选项] 用户名

为了有利于同学们查看,大家用表格的点子把chage命令的常用参数列表显示,如下表所示:
|chage 参数选项|注释表明(带特殊颜色的表示主要,需求精通)|
|–|–|
|-d,–lastday 方今年来期|将方今2次密码设置时间设为“最近期子”|
|-E,–expiredate过期日期|将账户过期时间设为“过期日期”|
|-h,–help|展现此支持新闻并退出|
|-l,–inactive失效密码|在密码过期后有点天,用户被禁掉,仅能以root操作|
|-l,–list|显示账户年龄信息|
|-m,–mindays最小天数|将一遍变动密码之间间隔的矮小天数设为“最小天数”|
|-M,–maxdays最大天数|将四遍变动密码之间距离的最大天数设为“最流年气”|
|-W,-warndays警告天数|将过期警告天数设为“警告天数”|

澳门金沙国际 23澳门金沙国际 24

示例1:chage -l 查看账户信息

[root@chensiqi1 ~]# chage -l chensiqi
Last password change                : Feb 12, 2017 #对应参数-d
Password expires                    : Apr 13, 2017 
Password inactive                   : May 13, 2017 #对应参数-I
Account expires                     : never #对应-E参数
Minimum number of days between password change      : 7 #对应m参数
Maximum number of days between password change      : 60 #对应M参数
Number of days of warning before password expires   : 10 #对应W参数
示例2:举一个组合参数-m,-M,-W,-I控制密码时效的例子(同passwd命令示例)

[root@chensiqi1 ~]# chage -l chensiqi
Last password change                    : Feb 12, 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 #99999天后必须修改密码
Number of days of warning before password expires   : 7 #过期前提前7天提醒chensiqi用户
示例3:下面求chensiqi用户7天内不能更改密码,60天后必须修改密码,过期前提前10天通知chensiqi用户,过期后30天后禁止用户登录。

[root@chensiqi1 ~]# chage -m 7 -M 60 -W 10 -I 30 chensiqi
[root@chensiqi1 ~]# chage -l chensiqi #查看修改后的结果
Last password change                    : Feb 12, 2017
Password expires                    : Apr 13, 2017
Password inactive                   : May 13, 2017
Account expires                     : never
Minimum number of days between password change      : 7 #7天内禁止修改密码
Maximum number of days between password change      : 60 #60天内必须修改新密码
Number of days of warning before password expires   : 10 #密码过期前10天开始提醒
提示:经过对比,我们发现修改后和前面讲解的passwd -n 7 -x 60 -W 10 -i 30 chensiqi命令修改结果一摸一样

View Code

总结:

在平日生育情状工作中,偶尔会用到chage的-l和-E参数,其余的参数,使用就很少了,那里不多介绍(知识是无与伦比的,对于初学者,学会科学的挑选知识很重庆大学)。当然,要是想询问愈来愈多,请参考man
chage和chage
–help。此外,有关账户实际过期的其实结论,在前文讲解useradd命令时就详细讲解过了,那里就不介绍了。

有关用户密码时效

  • 依照前文的讲授,大家了然passwd和chage等均能够设置或变更钦定账户密码的平安新闻(有效期等),大家也足以因而/etc/login.defs配置文件或/etc/default/useradd针对富有账户全局修改。
  • 设置用户密码的时效有利有弊:优点是能够预防运行职员离职一段时间后发觉用户还足以登录(也也许不是自身的用户),要是设置了账户有效期,固然用户未被清理,那么,一段时间内也会因为过期而无法登陆了,此外,在服务器数量很多的处境,更改密码是十分的大的工作量。所以,对于用户密码的时效功用,大家根据实际的劳作需求,综合使用。在周边的运维环境中,使用LDAP服务(微软活动目录)对linux账户统一验证,批量管理,也是毋庸置疑的措施。

 

1.4 集团面试题:请问如下登录故障的规律及化解办法?

-bash-4.1$
-bash-4.1$

解答:

[root@chensiqi1 ~]$su - chensiqi2
[chensiqi2@chensiqi1 ~]$ rm -rf /*
[chensiqi2@chensiqi1 ~]$ exit
logout
[root@chensiqi1 ~]# su - chensiqi2
-bash-4.1$ 

命令说明:普通用户强制删除了家目录里的变量文件就会出现这种问题。

恢复:

[chensiqi2@chensiqi1 ~]$ exit
logout
[root@chensiqi1 ~]# su - chensiqi2
-bash-4.1$ cp /etc/skel/.bash* ~
-bash-4.1$ exit
logout
[root@chensiqi1 ~]# su -chensiqi2
bash: hensiqi2: command not found
[root@chensiqi1 ~]# su - chensiqi2
[chensiqi2@chensiqi1 ~]$ 

命令说明:
我们去把/etc/skel/目录下的变量文件复制回来就好了

知识扩充*和.*的问题

[root@chensiqi1 ~]# cp /etc/skel/* /tmp/
[root@chensiqi1 ~]# ls /tmp/
readme
[root@chensiqi1 ~]# ls -la /tmp/
total 12
drwxrwxrwt.  3 root root 4096 Feb 11 02:39 .
dr-xr-xr-x. 27 root root 4096 Feb 10 02:32 ..
drwxrwxrwt.  2 root root 4096 Jan 11 22:07 .ICE-unix
-rw-r--r--.  1 root root    0 Feb 11 02:39 readme
[root@chensiqi1 ~]# ls -la /etc/skel/
total 20
drwxr-xr-x.  2 root root 4096 Feb 11 02:21 .
drwxr-xr-x. 78 root root 4096 Feb 11 02:22 ..
-rw-r--r--.  1 root root   18 May 10  2016 .bash_logout
-rw-r--r--.  1 root root  176 May 10  2016 .bash_profile
-rw-r--r--.  1 root root  124 May 10  2016 .bashrc
-rw-r--r--.  1 root root    0 Feb 11 02:21 readme
[root@chensiqi1 ~]# #cp /etc/skel/.*  

命令说明:
*不复制隐藏文件,那么在运行cp /etc/skel/.*之前,我们先看看.*里都有什么东西?

[root@chensiqi1 ~]# ls /etc/skel/.*
/etc/skel/.bash_logout  /etc/skel/.bash_profile  /etc/skel/.bashrc

/etc/skel/.:
readme

/etc/skel/..:
ConsoleKit               inputrc                       quotatab
DIR_COLORS               iproute2                      rc
DIR_COLORS.256color      issue                         rc.d
DIR_COLORS.lightbgcolor  issue.bak                     rc.local
NetworkManager           issue.net                     rc.sysinit
X11                      issue.net.bak                 rc0.d
abrt                     kdump-adv-conf                rc1.d
acpi                     kdump.conf                    rc2.d
adjtime                  krb5.conf                     rc3.d
aliases                  latrace.conf                  rc4.d
aliases.db               latrace.d                     rc5.d
alsa                     ld.so.cache                   rc6.d
东西太多以下省略....


命令说明:
我们可以发现,.*连etc下的东西都复制出来了,这是为什么呢?别忘了,目录下都还有些什么东西,还有.和..

[root@chensiqi1 ~]# ls -la /etc/skel
total 20
drwxr-xr-x.  2 root root 4096 Feb 11 02:21 .
drwxr-xr-x. 78 root root 4096 Feb 11 02:22 ..
-rw-r--r--.  1 root root   18 May 10  2016 .bash_logout
-rw-r--r--.  1 root root  176 May 10  2016 .bash_profile
-rw-r--r--.  1 root root  124 May 10  2016 .bashrc
-rw-r--r--.  1 root root    0 Feb 11 02:21 readme

命令说明:
.代表当前目录,..代表上级目录。因此.*就把上级目录的所有文件也复制了。所以我们在复制隐藏文件的时候不能用.*来代表所有。

修改用户密码有效期限相关命令chage

chage命令是用来修改用户密码有效期限的。(chage – change user password
expiry information)

chage命令的用法很多,和passwd等一声令下功效也有成都百货上千是再一次的,那里大家依旧选取部分行事中常用的用法加以注解;

chage语法

[[email protected] ~]# chage --help
用法:chage [选项] 用户名

为了有利于同学们查看,我们用表格的措施把chage命令的常用参数列表彰显,如下表所示:
|chage 参数选项|注释表明(带特殊颜色的表示首要,须求通晓)|
|–|–|
|-d,–lastday 最近日期|将方今三遍密码设置时间设为“近年来来子”|
|-E,–expiredate过期日期|将账户过期时间设为“过期日期”|
|-h,–help|呈现此支持音信并退出|
|-l,–inactive失效密码|在密码过期后有点天,用户被禁掉,仅能以root操作|
|-l,–list|显示账户年龄信息|
|-m,–mindays最小天数|将两遍变动密码之间距离的小不点儿天数设为“最小天数”|
|-M,–maxdays最大天数|将三遍变动密码之间间距的最大天数设为“最大运气”|
|-W,-warndays警告天数|将过期警告天数设为“警告天数”|

澳门金沙国际 25以身作则1:chage
-l 查看账户音讯
[[email protected]
~]# chage -l chensiqi Last password change : Feb 12, 2017 #对应参数-d
Password expires : Apr 13, 2017 Password inactive : May 13, 2017
#对应参数-I Account expires : never #对应-E参数 Minimum number of days
between password change : 7 #对应m参数 Maximum number of days between
password change : 60 #对应M参数 Number of days of warning before
password expires : 10 #对应W参数
示例2:举一个组成参数-m,-M,-W,-I控制密码时效的例证(同passwd命令示例)
[[email protected]
~]# chage -l chensiqi Last password change : Feb 12, 2017 Password
expires : never #从不 Password inactive : never #从不 Account expires
: never #从不 Minimum number of days between password change : 0
#无时无刻能够改密码 马克西姆um number of days between password change : 99999
#99999天后务必修改密码 Number of days of warning before password
expires : 7 #逾期前提前7天提示chensiqi用户
示例3:下边求chensiqi用户7天内不能够更改密码,60天后务必修改密码,过期前提前10天通知chensiqi用户,过期后30天后不准用户登录。
[[email protected]
~]# chage -m 7 -M 60 -W 10 -I 30 chensiqi
[[email protected]
~]# chage -l chensiqi #翻看修改后的结果 Last password change : Feb
12, 2017 Password expires : Apr 13, 2017 Password inactive : May 13,
2017 Account expires : never Minimum number of days between password
change : 7 #7天内禁止修改密码 马克西姆um number of days between password
change : 60 #60天内必须修改新密码 Number of days of warning before
password expires : 10 #密码过期前10天发轫提醒提醒:经过比照,大家发现修改后和前面讲解的passwd -n 7 -x 60 -W 10 -i 30
chensiqi命令修改结果一摸一样 View
Code

总结:

在平时生产场景工作中,偶尔会用到chage的-l和-E参数,其他的参数,使用就很少了,这里不多介绍(知识是无限的,对于初学者,学会科学的取舍知识很重要)。当然,如果想了解更多,请参考man chage和chage --help。另外,有关账户实际过期的实际结论,在前文讲解useradd命令时就详细讲解过了,这里就不介绍了。

关于用户密码时效

  • 遵照前文的上课,大家理解passwd和chage等均能够安装或改动钦命账户密码的安全消息(有效期等),大家也得以通过/etc/login.defs配置文件或/etc/default/useradd针对具有账户全局修改。
  • 安装用户密码的时效有利有弊:优点是足防止止运转人士离职一段时间后发现用户还足以登录(也恐怕不是投机的用户),假诺设置了账户有效期,纵然用户未被清理,那么,一段时间内也会因为过期而一筹莫展登陆了,其余,在服务器数量过多的景观,更改密码是非常的大的工作量。所以,对于用户密码的时效功用,我们依照实际的办事急需,综合使用。在广泛的运营环境中,使用LDAP服务(微软活动目录)对linux账户统一验证,批量管理,也是不易的艺术。

 

删去用户相关命令userdel

从userdel命令名称就能够清楚,它的效率正是删除用户及用户相关的音信,与那一个命令有关的公文有:

  • /etc/passwd :用户账号资料文件
  • /etc/shadow
    :用户账号资源新闻加密文件
  • /etc/group : 用户组资源音讯文件
  • /etc/gshadow :用户组密码资源消息文件

1)userdel 语法

[root@chensiqi ~]# man userdel
名称:
    userdel -删除系统用户账号及相关目录及文件
语法:
    userdel [-r] 用户名
    userdel 用户名,用户名必须是系统已存在的
    -r 用户目录下的档案一并移除。在其他位置上的相关文件也将一一找出并删除。
相关文件
    /etc/passwd : 用户账号资料文件
    /etc/shadow : 用户账号咨询加密文件
    /etc/group : 用户组资讯文件
提示:使用userdel命令的结果实际上就是在更改维护以上的文件。

删除用户相关命令userdel

从userdel命令名称就足以明白,它的效率正是剔除用户及用户相关的信息,与那个命令有关的文书有:

  • /etc/passwd :用户账号资料文件
  • /etc/shadow
    :用户账号资源音信加密文件
  • /etc/group : 用户组资源音讯文件
  • /etc/gshadow :用户组密码资源消息文件

1)userdel 语法

[root@chensiqi ~]# man userdel
名称:
    userdel -删除系统用户账号及相关目录及文件
语法:
    userdel [-r] 用户名
    userdel 用户名,用户名必须是系统已存在的
    -r 用户目录下的档案一并移除。在其他位置上的相关文件也将一一找出并删除。
相关文件
    /etc/passwd : 用户账号资料文件
    /etc/shadow : 用户账号咨询加密文件
    /etc/group : 用户组资讯文件
提示:使用userdel命令的结果实际上就是在更改维护以上的文件。

2,用户管理命令详解

除去用户相关命令userdel

从userdel命令名称就足以知道,它的作用便是删除用户及用户相关的新闻,与这一个命令有关的文书有:

  • /etc/passwd :用户账号资料文件
  • /etc/shadow :用户账号资源讯息加密文件
  • /etc/group : 用户组资讯文件
  • /etc/gshadow :用户组密码资源新闻文件

1)userdel 语法

[[email protected] ~]# man userdel
名称:
    userdel -删除系统用户账号及相关目录及文件
语法:
    userdel [-r] 用户名
    userdel 用户名,用户名必须是系统已存在的
    -r 用户目录下的档案一并移除。在其他位置上的相关文件也将一一找出并删除。
相关文件
    /etc/passwd : 用户账号资料文件
    /etc/shadow : 用户账号咨询加密文件
    /etc/group : 用户组资讯文件
提示:使用userdel命令的结果实际上就是在更改维护以上的文件。

 公司情形删除用户处理措施:

一般不能够肯定用户相关目录有没有关键数据就不能够用-r
剔除经验:

  1. vi
    /etc/passwd,然后注释掉用户,观看贰个月,那样出问题得以还原。也等于操作前备份。
  2. 把登录shell /bin/bash 改成 /sbin/nologin.
  3. openldap(类似活动目录)账号统管的,ldapCurry干掉用户。全部服务器全体都没了。
    唤醒:只要修改和删除都要深谋远虑!

userdel实例

以身作则1:删除钦命账户hah

[root@chensiqi1 ~]# grep chensiqi2 /etc/passwd 
chensiqi:x:808:808:num3 chensiqi:/chensiqi2017-02-11:/bin/bash
chensiqi2:x:810:810::/home/chensiqi2:/bin/bash
[root@chensiqi1 ~]# userdel chensiqi2 #删除账户,但不删除家目录
[root@chensiqi1 ~]# ls /home  #家目录仍旧存在
chensiqi  chensiqi1  chensiqi2  chensiqi3  mysql
[root@chensiqi1 ~]# grep chensiqi2 /etc/passwd  #账户已经没了
chensiqi:x:808:808:num3 chensiqi:/chensiqi2017-02-11:/bin/bash

总结:

  • 行使“userdel 用户名”,那样的办法删除用户时,仅会去除用户本身,其家目录及有关文件并不会被删除。一般生产场景种,当不能显明被剔除用户家目录是还是不是有用或许有不三不四用户已在家目录下跑了本子或程序的时候,就毫无接纳“userdel
    -r 用户名”那样的义务险命令,而直白运用”userdel 用户名“命令删除即可。
  • 自然,大家还足以一向动用vi编辑/etc/passwd,找到要拍卖的用户,先注释一段时间,确认真的没难题了,然后在清理其家目录,注释的效劳和userdel命令删除的效劳等同,正是兑现了被诠释的用户不能登录了(注释掉用户眼下行即可),注释有类似回收站的效应,一旦发现难题,大家可以举行恢复生机工作。当然对于对门户上千台服务器大规模运行的事态,我们可以动用ldap等劳务完结账户合并验证,批量的丰硕删除管理。

以身作则2:userdel -r 用户名 情势删除
一经在userdel命令后加参数-r,表示在剔除该用户的同时,一并把用户的家目录及本地邮件存款和储蓄的目录和文书也一同删除。因而,要审慎运用。

[root@chengliang ~]# ls /home/
cheng  chengliang  hah  student  teacher  test  test2  zcl
[root@chengliang ~]# userdel -r test  # 删除用户包含它的家目录
[root@chengliang ~]# ls /home  #用户家目录已经被删除
cheng  chengliang  hah  student  teacher  test2  zcl
[root@chengliang ~]# grep "test" /etc/passwd
test2:x:812:812::/home/test2:/bin/bash
[root@chengliang ~]# 

 

 集团意况删除用户处理办法:

诚如不能够认可用户相关目录有没有至关心珍爱要数据就无法用-r
剔除经验:

  1. vi
    /etc/passwd,然后注释掉用户,观望3个月,那样出标题能够回复。也就是操作前备份。
  2. 把登录shell /bin/bash 改成 /sbin/nologin.
  3. openldap(类似活动目录)账号统一保管的,ldapCurry干掉用户。全体服务器全体都没了。
    提示:只要修改和删除都要小心翼翼!

userdel实例

演示1:删除内定账户hah

[root@chensiqi1 ~]# grep chensiqi2 /etc/passwd 
chensiqi:x:808:808:num3 chensiqi:/chensiqi2017-02-11:/bin/bash
chensiqi2:x:810:810::/home/chensiqi2:/bin/bash
[root@chensiqi1 ~]# userdel chensiqi2 #删除账户,但不删除家目录
[root@chensiqi1 ~]# ls /home  #家目录仍旧存在
chensiqi  chensiqi1  chensiqi2  chensiqi3  mysql
[root@chensiqi1 ~]# grep chensiqi2 /etc/passwd  #账户已经没了
chensiqi:x:808:808:num3 chensiqi:/chensiqi2017-02-11:/bin/bash

总结:

  • 运用“userdel 用户名”,这样的情势删除用户时,仅会删除用户自个儿,其家目录及相关文书并不会被删去。一般生产场景种,当无法鲜明被删除用户家目录是还是不是有用大概有不专业用户已在家目录下跑了本子或程序的时候,就不用接纳“userdel
    -r 用户名”那样的危急命令,而直白动用”userdel 用户名“命令删除即可。
  • 理所当然,我们还足以直接选用vi编辑/etc/passwd,找到要拍卖的用户,先注释一段时间,确认真的没难题了,然后在清理其家目录,注释的成效和userdel命令删除的成效等同,正是落到实处了被诠释的用户不能登录了(注释掉用户日前行即可),注释有近似回收站的效果,一旦发现标题,咱们能够展开复原工作。当然对于对门户上千台服务器大规模运转的动静,大家可以运用ldap等劳务完结账户合并验证,批量的丰富删除管理。

示范2:userdel -r 用户名 形式删除
假如在userdel命令后加参数-r,表示在剔除该用户的同时,一并把用户的家目录及地点邮件存款和储蓄的目录和文书也共同删除。因而,要严酷选拔。

[root@chengliang ~]# ls /home/
cheng  chengliang  hah  student  teacher  test  test2  zcl
[root@chengliang ~]# userdel -r test  # 删除用户包含它的家目录
[root@chengliang ~]# ls /home  #用户家目录已经被删除
cheng  chengliang  hah  student  teacher  test2  zcl
[root@chengliang ~]# grep "test" /etc/passwd
test2:x:812:812::/home/test2:/bin/bash
[root@chengliang ~]# 

 

2.1 添加用户命令useradd

  • 加上用户的命令有useradd和adduser,那三个指令所能达到的功用是相同的。当然除了useradd和adduser命令以外,大家仍是能够经过改动用户配置文件/etc/passwd和/etc/group及手动创建文件的方法来一贯抬高用户,然而那里并不推荐,那里建议我们统一使用useradd命令,本文也仅会指向useradd命令进行举例讲解。
  • 当使用useradd命令不加参数选项,后边一贯跟所添加用户名时,系统率先会读取配置文件/etc/login.defs和/etc/default/useradd中所定义的参数或规则,按照设置的条条框框添加用户,同时会向/etc/passwd和/etc/group文件内添加新建用户和用户组记录。
  • 理所当然/etc/passwd和/etc/group的加密资源音讯文件/etc/shadows和/etc/gshadow也会联手转移记录,同时系统还会依据/etc/default/useradd文件中所配置的消息建立用户的家目录,并复制/etc/skel中的全数文件(包含隐藏的环境安顿文件)到新用户的家目录中。

useradd语法:

[root@chensiqi ~]# man useradd #下面的内容源于此命令帮助的结果,对于部分地方做了修改
名称:
    useradd - 账号建立或更新新用户资讯的工具
语法:
    useradd [-c comment] [-d home_dir]
            [-e expire_date] [-f inactive_time]
            [-g initial_group] [-G group[,....]]
            [-m [-k skeleton_dir] | -M] [-s shell]
            [-u uid[-o][-n][-r] login]

    useradd -D  [-g default_group] [-b default_home]
                [-f default_inactive] [-e default_expire_date]
                [-s default_shell]

描述:
    新账号建立
    当不加-D 参数时,useradd指令使用命令列来指定新账号的设定值和使用系统上的预设值(指前文提到的/etc/login.defs和/etc/default/useradd等配置文件)。新用户账号将产生一些系统档案,如用户目录的建立,拷贝起始档案等,这些均可以利用命令列选项指定。此版本为Red Hat Linux 提供,可帮每个新加入的用户建立和用户同名的group,要达到这个目的,不能添加-n选项。

为了便利查看,我们用表格的法门把useradd可利用的参数选项呈现给大家如下所示:
|useradd 参数选项|注释表明(特殊颜色的要求精晓)|
|–|–|
|-c comment|新账号password档的表明栏|
|-d
home_dir|新账号每趟登入时所利用的home_dir.预设值为default_home内login名称,并不失为登入时目录名称|
|-e
expire_date|账号终止日期。日期的指定格式为MM/DD/YY或者YYYY-MM-DD|
|-f
inactive_day|账号过期几日后永久停权。当值为0时账号则马上被停权。而当班值日为-1时则关闭此效率,预设值-1|
|-g
initial_group|group 名称以数字来作为用户登入起始用户组(group)。用户组名须为系统现有存在的名称。用户组数字也须为现有存在的用户组,预设的用户组数字为1.|
|-G
group,[…]|定义此用户为多少个例外groups的积极分子,各样用户组使用“,”逗号分隔。用户组名同-g选项的限制。私下认可值为用户的序幕用户组。|
|-m|用户目录如不存在则自动建立。|
|-M|不建立用户家目录,优先于/etc/login.defs文件的设定。一般创虚拟用户时不建立家目录,部署服务时需要创建虚拟用户。|
|-n|暗许情状用户的用户组与用户的称谓会一如既往。假若命令加了-n参数,就不会转变和用户同名的用户组了。|
|-r| 此参数是用来建立类别账号。|
|-s
shell|用户登入后使用的shell名称。默认值不填写,这样系统会帮你指定预设的登入shell(根据/etc/default/useradd预设的值)。cat /etc/shells系统支持的shell|
|-u uid|用户的ID值。这个值必须是唯一的,除非用-o选项。数字不可为负值|

演示1:useradd -c,-u,-G,-s,-d,-m多少个参数组合例子,自定义用户家目录。

澳门金沙国际 26

示范2:新建用户默许的账号终止日期

澳门金沙国际 27

示范3:添加用户时的默许shell类型/bin/bash改为/bin/sh

[root@chensiqi1 ~]# cat /etc/shells #查看当前系统支持的shell种类 
/bin/sh
/bin/bash
/sbin/nologin
/bin/dash
/bin/tcsh
/bin/csh
[root@chensiqi1 ~]# grep SHELL /etc/default/useradd #查看当前默认的shell配置
SHELL=/bin/bash
[root@chensiqi1 ~]# useradd -D -s /bin/sh  #修改为/bin/sh
[root@chensiqi1 ~]# grep SHELL /etc/default/useradd #查看修改结果
SHELL=/bin/sh #修改成功

专程提醒,这里仅改变了配备文件的暗许值,仅对之后建立的新用户生效,和老用户无关。

 公司情形删除用户处理情势:

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

userdel实例

示范1:删除钦点账户hah

[[email protected] ~]# grep chensiqi2 /etc/passwd 
chensiqi:x:808:808:num3 chensiqi:/chensiqi2017-02-11:/bin/bash
chensiqi2:x:810:810::/home/chensiqi2:/bin/bash
[[email protected] ~]# userdel chensiqi2 #删除账户,但不删除家目录
[[email protected] ~]# ls /home  #家目录仍旧存在
chensiqi  chensiqi1  chensiqi2  chensiqi3  mysql
[[email protected] ~]# grep chensiqi2 /etc/passwd  #账户已经没了
chensiqi:x:808:808:num3 chensiqi:/chensiqi2017-02-11:/bin/bash

总结:

  • 动用“userdel
    用户名”,那样的艺术删除用户时,仅会去除用户本身,其家目录及有关文件并不会被剔除。一般生产场景种,当不能明确被去除用户家目录是不是有用或许有不标准用户已在家目录下跑了本子或程序的时候,就不用选择“userdel
    -r 用户名”那样的危急命令,而直接运用”userdel 用户名“命令删除即可。
  • 自然,大家还足以一向动用vi编辑/etc/passwd,找到要拍卖的用户,先注释一段时间,确认真的没难点了,然后在清理其家目录,注释的功力和userdel命令删除的效劳等同,就是贯彻了被诠释的用户不能登录了(注释掉用户日前行即可),注释有像样回收站的效应,一旦发现难点,我们得以举行理并答复苏工作。当然对于对门户上千台服务器大规模运营的图景,大家能够动用ldap等劳务实现账户合并验证,批量的充足删除管理。

示范2:userdel -r 用户名 格局删除
若是在userdel命令后加参数-r,表示在剔除该用户的还要,一并把用户的家目录及本地邮件存款和储蓄的目录和文件也一路删除。由此,要小心采取。

[[email protected] ~]# ls /home/
cheng  chengliang  hah  student  teacher  test  test2  zcl
[[email protected] ~]# userdel -r test  # 删除用户包含它的家目录
[[email protected] ~]# ls /home  #用户家目录已经被删除
cheng  chengliang  hah  student  teacher  test2  zcl
[[email protected] ~]# grep "test" /etc/passwd
test2:x:812:812::/home/test2:/bin/bash
[[email protected] ~]# 

 

剔除用户组相关命令groupdel

groupdel是用来删除用户组的,须求用户组必须是已存在的。用groupdel删除用户组实际正是修改/etc/group(用户组文件)和/etc/gshadow(用户组加密文件)文件。

语法格式:groupdel 用户组

[root@chensiqi1 ~]# groupadd zhangsan #创建用户组
[root@chensiqi1 ~]# grep zhangsan /etc/group  #查看文件有记录
zhangsan:x:810:
[root@chensiqi1 ~]# grep zhangsan /etc/gshadow #查看文件有记录
zhangsan:!::
[root@chensiqi1 ~]# groupdel zhangsan #删除用户组
[root@chensiqi1 ~]# grep zhangsan /etc/group #无记录
[root@chensiqi1 ~]# grep zhangsan /etc/gshadow #无记录

groupdel 比较简单,工作中动用的功用11分少,大家会以上简单利用就能够了。

 

剔除用户组相关命令groupdel

groupdel是用来删除用户组的,需求用户组必须是已存在的。用groupdel删除用户组实际正是修改/etc/group(用户组文件)和/etc/gshadow(用户组加密文件)文件。

语法格式:groupdel 用户组

[root@chensiqi1 ~]# groupadd zhangsan #创建用户组
[root@chensiqi1 ~]# grep zhangsan /etc/group  #查看文件有记录
zhangsan:x:810:
[root@chensiqi1 ~]# grep zhangsan /etc/gshadow #查看文件有记录
zhangsan:!::
[root@chensiqi1 ~]# groupdel zhangsan #删除用户组
[root@chensiqi1 ~]# grep zhangsan /etc/group #无记录
[root@chensiqi1 ~]# grep zhangsan /etc/gshadow #无记录

groupdel 比较简单,工作中运用的效用万分少,大家会以上简单利用就足以了。

 

2.2 添加用户组命令groupadd

前问大家上课了丰裕用户的命令useradd的施用,本节我们来熟谙下添加用户组的吩咐groupadd,groupadd前边可内定用户组名称来确立新的用户组。

提示:
groupadd命令的应用极度简单,但在生养条件中应用的不多,因而,会简单利用即可。

与groupadd命令有关的文书有:
/etc/group :用户组相关文件
/etc/gshadow :用户组加密相关文书

groupadd命令语法

[root@chensiqi ~]# man groupadd #查看groupadd命令的帮助信息
名称:
    groupadd -建立新的用户组
语法:
    groupadd 【-g gid [-o][-r][-f]】 groupname
描述:
    groupadd可指定用户组名称来建立新的用户组账号。需要时可从系统种取得新用户组值。

为了方便阅读和查六柱预测关参数,笔者仍旧用表格的措施把groupadd参数选项彰显给咱们如下所示:
|groupadd参数选项|注释表达(带特殊颜色的代表主要,需求明白)|
|–|–|
|-g
gid|指定用户组GID值。除非接-o参数(如:groupadd -g 1234 -o chensiqi),否则ID值必须是唯一的数字(不能负数)。如果不指定-g参数,则预设值会从500开始|
|-r|建立种类用户组。GID值会比/etc/login.defs中定义的UID_MIN值小。|
|-f|新增三个账户,强制覆盖三个一度存在的用户组账号|

删除用户组相关命令groupdel

groupdel是用来删除用户组的,须求用户组必须是已存在的。用groupdel删除用户组实际正是修改/etc/group(用户组文件)和/etc/gshadow(用户组加密文件)文件。

语法格式:groupdel 用户组

[[email protected] ~]# groupadd zhangsan #创建用户组
[[email protected] ~]# grep zhangsan /etc/group  #查看文件有记录
zhangsan:x:810:
[[email protected] ~]# grep zhangsan /etc/gshadow #查看文件有记录
zhangsan:!::
[[email protected] ~]# groupdel zhangsan #删除用户组
[[email protected] ~]# grep zhangsan /etc/group #无记录
[[email protected] ~]# grep zhangsan /etc/gshadow #无记录

groupdel 相比不难,工作中动用的频率非凡少,我们会以上简单利用就足以了。

 

用户新闻修改有关命令usermod

usermod命令功效相当无敌,在生产场景中使用频率固然不是无数,但要么比较主要的。它不仅能改变用户的shell类型,所归属用户组,还是能改用户密码的有效期,登录名等许多用户的音信。
与usermod命令有关的文书有:

/etc/passwd :用户账号资料文件
/etc/shadow :用户账号资源信息加密文件
/etc/group :用户组资源音讯文件
/etc/gshadow :组密码文件

澳门金沙国际 28澳门金沙国际 29

1)usermod语法
|usermod参数选项|注释说明(带特殊颜色的表示重要,需要掌握)|
|--|--|
|-c comment|增加用户账号/etc/passwd中的注解说明栏(第5栏)。这个-c参数功能也可以使用chfn命令来修改,当然也可以手工修改/etc/passwd文件来实现|
|-d home_dir|更新用户新的家目录。如果给定-m选项,用户旧的家目录会搬到新的家目录去,如旧的家目录不存在则建个新的。|
|-e expire_date|加上用户账号停止日期。日期格式为:MM/DD/YY|
|-f inactive_days|账号过期几日后永久停权。当值为0时账号则立刻被停权。而当值为-1时则关闭此功能。预设值-1|
|-g initial_group|更新用户新的起始登入用户组。用户组名需已存在。用户组ID必须参照既有的用户组。用户组ID预设值为1|
|-G group【...】|定义用户为一堆groups的成员。每个用户组使用“,”逗号隔开。用户组名同-g选项的限制|
|-l login_name|变更用户login时的名称为login_name.其余信息不变|
|-s shell|指定新登入shell。如此栏留白,系统将选用系统预设shell。这个-s参数功能也可以使用chsh命令来修改。当然也可以手工修改/etc/passwd文件来实现|
|-u uid|指定用户UID值。除非接-o参数,否则ID值必须是唯一的数字(不能是负数)|
|-L|冻结用户的密码,使之无法登录,实际就是间接修改/etc/shadow的密码栏。在密码栏的开头加上“!”号,即表示冻结。这个冻结密码的功能和usermod -e,useradd -e,chage -E或passwd -l等命令参数都有类似的功效,那就是让用户无法正常登陆。|
|-U|取消冻结用户的密码,使之恢复登录,实际同样是修改/etc/shadow的密码栏。在密码栏的开头取消“!”号,即表示恢复。|

2)usermod实例

实例1:使用不同的方法修改/etc/passwd中用户的说明栏

[root@chensiqi1 ~]# tail -1 /etc/passwd #修改前查看一下
chensiqi1:x:809:809::/home/chensiqi1:/bin/bash
[root@chensiqi1 ~]# usermod -c 00chensiqi1 chensiqi1 #修改账户的注释说明信息
[root@chensiqi1 ~]# tail -1 /etc/passwd #查看修改结果
chensiqi1:x:809:809:00chensiqi1:/home/chensiqi1:/bin/bash
[root@chensiqi1 ~]# chfn -f information chensiqi1  #chfn也可以修改
Changing finger information for chensiqi1.
Finger information changed.
[root@chensiqi1 ~]# tail -1 /etc/passwd 
chensiqi1:x:809:809:information:/home/chensiqi1:/bin/bash
提示:实例1的用法,仅在这里说明用,真正工作中使用的不多,属于了解内容。

由于有前面useradd命令的讲解基础了,这里就不过多演示了。

View Code

 

用户音信修改相关命令usermod

usermod命令成效十三分强有力,在生产场景中使用频率就算不是许多,但要么比较重庆大学的。它不光能改变用户的shell类型,所归属用户组,还能改用户密码的有效期,登录名等很多用户的新闻。
与usermod命令有关的文本有:

/etc/passwd :用户账号资料文件
/etc/shadow :用户账号资源音讯加密文件
/etc/group :用户组资源消息文件
/etc/gshadow :组密码文件

澳门金沙国际 30澳门金沙国际 31

1)usermod语法
|usermod参数选项|注释说明(带特殊颜色的表示重要,需要掌握)|
|--|--|
|-c comment|增加用户账号/etc/passwd中的注解说明栏(第5栏)。这个-c参数功能也可以使用chfn命令来修改,当然也可以手工修改/etc/passwd文件来实现|
|-d home_dir|更新用户新的家目录。如果给定-m选项,用户旧的家目录会搬到新的家目录去,如旧的家目录不存在则建个新的。|
|-e expire_date|加上用户账号停止日期。日期格式为:MM/DD/YY|
|-f inactive_days|账号过期几日后永久停权。当值为0时账号则立刻被停权。而当值为-1时则关闭此功能。预设值-1|
|-g initial_group|更新用户新的起始登入用户组。用户组名需已存在。用户组ID必须参照既有的用户组。用户组ID预设值为1|
|-G group【...】|定义用户为一堆groups的成员。每个用户组使用“,”逗号隔开。用户组名同-g选项的限制|
|-l login_name|变更用户login时的名称为login_name.其余信息不变|
|-s shell|指定新登入shell。如此栏留白,系统将选用系统预设shell。这个-s参数功能也可以使用chsh命令来修改。当然也可以手工修改/etc/passwd文件来实现|
|-u uid|指定用户UID值。除非接-o参数,否则ID值必须是唯一的数字(不能是负数)|
|-L|冻结用户的密码,使之无法登录,实际就是间接修改/etc/shadow的密码栏。在密码栏的开头加上“!”号,即表示冻结。这个冻结密码的功能和usermod -e,useradd -e,chage -E或passwd -l等命令参数都有类似的功效,那就是让用户无法正常登陆。|
|-U|取消冻结用户的密码,使之恢复登录,实际同样是修改/etc/shadow的密码栏。在密码栏的开头取消“!”号,即表示恢复。|

2)usermod实例

实例1:使用不同的方法修改/etc/passwd中用户的说明栏

[root@chensiqi1 ~]# tail -1 /etc/passwd #修改前查看一下
chensiqi1:x:809:809::/home/chensiqi1:/bin/bash
[root@chensiqi1 ~]# usermod -c 00chensiqi1 chensiqi1 #修改账户的注释说明信息
[root@chensiqi1 ~]# tail -1 /etc/passwd #查看修改结果
chensiqi1:x:809:809:00chensiqi1:/home/chensiqi1:/bin/bash
[root@chensiqi1 ~]# chfn -f information chensiqi1  #chfn也可以修改
Changing finger information for chensiqi1.
Finger information changed.
[root@chensiqi1 ~]# tail -1 /etc/passwd 
chensiqi1:x:809:809:information:/home/chensiqi1:/bin/bash
提示:实例1的用法,仅在这里说明用,真正工作中使用的不多,属于了解内容。

由于有前面useradd命令的讲解基础了,这里就不过多演示了。

View Code

 

2.2.1 groupadd命令实例

在生产条件中,一般增添用户组的用法都以至极简单的,比如下边包车型地铁例证,添加GID为802的用户组chensiqi

[root@chensiqi ~]# groupadd -g 802 chensiqi #未必一定要指定GID。一般需求不加也可以

只要不须求钦定用户组ID值,能够直接执行

[root@chensiqi ~]# groupadd chensiqi

提醒:未涉嫌的groupadd的参数,大家能够暂且忽略掉,在骨子里工作中用的可比少。

用户新闻修改有关命令usermod

usermod命令成效13分强有力,在生产场景中使用效用即便不是许多,但依旧相比较重庆大学的。它不只好更改用户的shell类型,所归属用户组,仍是能够改用户密码的有效期,登录名等很多用户的信息。
与usermod命令有关的文本有:

/etc/passwd :用户账号资料文件
/etc/shadow :用户账号资源音信加密文件
/etc/group :用户组资源新闻文件
/etc/gshadow :组密码文件

澳门金沙国际 321)usermod语法
|usermod参数选项|注释表明(带特殊颜色的代表主要,须求精晓)| |–|–| |-c
comment|扩充用户账号/etc/passwd中的注演表达栏(第肆栏)。那么些-c参数成效也能够行使chfn命令来修改,当然也得以手工业修改/etc/passwd文件来促成|
|-d
home_dir|更新用户新的家目录。假设给定-m选项,用户旧的家目录会搬到新的家目录去,如旧的家目录不存在则建个新的。|
|-e expire_date|加上用户账号结束日期。日期格式为:MM/DD/YY| |-f
inactive_days|账号过期几日后永久停权。当班值日为0时账号则立刻被停权。而当班值日为-1时则关闭此功能。预设值-1|
|-g
initial_group|更新用户新的开场登入用户组。用户组名需已存在。用户组ID必须参照既有的用户组。用户组ID预设值为1|
|-G
group【…】|定义用户为一堆groups的积极分子。每一种用户组使用“,”逗号隔绝。用户组名同-g选项的限定|
|-l login_name|变更用户login时的名称为login_name.别的新闻不变| |-s
shell|内定新登入shell。如此栏留白,系统将选择系统预设shell。这几个-s参数功效也足以选用chsh命令来修改。当然也能够手工修改/etc/passwd文件来落到实处|
|-u
uid|钦命用户UID值。除非接-o参数,不然ID值必须是唯一的数字(无法是负数)|
|-L|冻结用户的密码,使之不能够登录,实际就是直接修改/etc/shadow的密码栏。在密码栏的启幕加上“!”号,即表示冻结。这几个冻结密码的功效和usermod
-e,useradd -e,chage -E或passwd
-l等一声令下参数都有像样的效益,那就是让用户不可能符合规律登陆。|
|-U|撤废冻结用户的密码,使之苏醒登录,实际同样是修改/etc/shadow的密码栏。在密码栏的发轫打消“!”号,即表示恢复。|
2)usermod实例 实例1:使用区别的法门修改/etc/passwd中用户的证实栏
[[email protected]
~]# tail -1 /etc/passwd #修改前查看一下
chensiqi1:x:809:809::/home/chensiqi1:/bin/bash
[[email protected]
~]# usermod -c 00chensiqi1 chensiqi1 #修改账户的注演讲明新闻
[[email protected]
~]# tail -1 /etc/passwd #查阅修改结果
chensiqi1:x:809:809:00chensiqi1:/home/chensiqi1:/bin/bash
[[email protected]
~]# chfn -f information chensiqi1 #chfn也能够修改 Changing finger
information for chensiqi1. Finger information changed.
[[email protected]
~]# tail -1 /etc/passwd
chensiqi1:x:809:809:information:/home/chensiqi1:/bin/bash
提醒:实例1的用法,仅在那里说明用,真正行事中动用的不多,属于明白内容。
由于有眼下useradd命令的上课基础了,那里就只是多演示了。 View Code

 

2.3 用户管理命令小结

1,和用户相关的安顿文件知识点:
/etc/passwd 账号文件及差异列内容
/etc/shadow 账号密码文件及差别列内容
/etc/group 组的文书及区别列内容
/etc/gshadow 组密码文件及分化列内容
2,用户管理命令
useradd -u -g -G -s -M -e -c -d
发轫化用户对应的多少个公文/etc/skel,/etc/default/useradd,/etc/login.defs
userdel -r
usermod -L -U
chage -l(小写) -E
passwd –stdin
3,组管理命令
groupadd -g

 

2.3 用户管理命令小结

1,和用户相关的布署文件知识点:
/etc/passwd 账号文件及不相同列内容
/etc/shadow 账号密码文件及不一致列内容
/etc/group 组的文件及差异列内容
/etc/gshadow 组密码文件及差异列内容
2,用户管理命令
useradd -u -g -G -s -M -e -c -d
伊始化用户对应的多少个文件/etc/skel,/etc/default/useradd,/etc/login.defs
userdel -r
usermod -L -U
chage -l(小写) -E
passwd –stdin
3,组管理命令
groupadd -g

 

2.2.2 用户密码相关命令passwd

前文大家已经学会怎么添加用户和用户组了,本节我们来读书设置或改动用户的密码。passwd命令的用户很多,但大部分用法在常常工作中都不平日选取,这里大家采用部分生育环境工作中常用的用法加以证实。

passwd命令介绍

普通用户和极品用户都得以运作passwd命令,但普通用户只可以改成本人的用户密码,一流用户root则能够安装或修改所有用户的密码。

当直接执行passwd命令前面不接任何参数或用户名时,则代表修改当前登录用户的密码,请看上面包车型大巴事例:

[root@chensiqi1 ~]# passwd #root用户下直接执行passwd,后面不接任何用户表示修改root用户的密码:下面也有提示。
Changing password for user root.
New password:  #输入新密码 
Retype new password:  #再次输入新密码
passwd: all authentication tokens updated successfully. #成功修改root密码

提示:
普通用户只可以修改自个儿的密码。如若想改变自身的密码,同样是一向运维passwd命令;比如当前操作系统用户是chensiqi:

[chensiqi@chensiqi1 ~]$ passwd #普通用户也输入passwd修改密码
Changing password for user chensiqi.
Changing password for chensiqi.
(current) UNIX password: #普通用户必须先输入旧密码才能更改
New password: 
Password unchanged #新密码不能和旧密码相同。
New password: 
Password unchanged
New password: 

passwd 命令参数选项

[chensiqi@chensiqi1 ~]$ passwd --help
Usage: passwd [OPTION...] <accountName>
  -k, --keep-tokens       keep non-expired authentication tokens
                          #保留即将过期的用户在期满后仍能使用
  -d, --delete            delete the password for the named account (root only)
                          #删除用户密码,仅能以root权限操作
  -l, --lock              lock the password for the named account (root only)
                          #锁住用户无权更改密码,仅能通过root权限操作。
  -u, --unlock            unlock the password for the named account (root only)
                          #解除锁定;
  -f, --force             force operation
                          #强制操作:仅root权限才能操作
  -x, --maximum=DAYS      maximum password lifetime (root only)
  #两次密码修正的最大天数,后面接数字:仅root权限操作
  -n, --minimum=DAYS      minimum password lifetime (root only)
  #两次密码修改的最小天数,后面接数字,仅能root权限操作
  -w, --warning=DAYS      number of days warning users receives before password expiration (root only)     #在距多少天提醒用户修改密码:仅能root权限操作
  -i, --inactive=DAYS     number of days after password expiration when an account becomes disabled(root only) #在距多少天提醒用户修改密码:仅能root全县操作
  -S, --status            report password status on the named account (root only)                 #查询用户的密码状态,仅能root用户操作。

为了便利查看,大家用表格格局把passwd命令的常用参数选项列表呈现,如下表所示:

passwd参数 注释说明(带特殊颜色的表示重要,需要掌握)
-k –keep-tokens 保留即将过期的用户在期满后仍能使用
-d –delete 删除用户密码,仅能以root权限操作
-l, –lock 锁住用户无权更改密码,仅能通过root全县操作
-u, –unlock 解除锁定
-f, –force 强制操作:仅root权限才能操作
-x,–maximum=DAYS 两次密码修改的最大天数,后面接数字:仅能root权限操作
-n –minimum=DAYS 两次密码修改的最小天数,后面接数字,仅能root权限操作
-w –warning=DAYS 在距多少天提醒用户修改密码:仅能root权限操作
-l –inactive=DAYS 在密码过期后多少天,用户被禁掉,仅能以root操作
-S –status 查询用户的密码状态,仅能root用户操作
–stdin 从stdin读入密码

2.3 用户管理命令小结

1,和用户相关的配备文件知识点:
/etc/passwd 账号文件及区别列内容
/etc/shadow 账号密码文件及差别列内容
/etc/group 组的文书及分裂列内容
/etc/gshadow 组密码文件及差异列内容
2,用户管理命令
useradd -u -g -G -s -M -e -c -d
初叶化用户对应的多少个公文/etc/skel,/etc/default/useradd,/etc/login.defs
userdel -r
usermod -L -U
chage -l(小写) -E
passwd –stdin
3,组管理命令
groupadd -g

 

添加用户组命令groupadd 提醒:
groupadd命令的运用相当简单,但在生养条件中行使的不多,因而,会简单应…

2.2.3 passwd命令实例

  • 以身作则1:大家用-l参数来锁定chensiqi用户,使之不可能修改密码,然后再用-u参数来清除锁定。

    [root@chensiqi1 ~]# passwd -S chensiqi   #锁定前chensiqi用户的状态信息
    chensiqi PS 2017-02-11 0 99999 7 -1 (Password set, SHA512 crypt.)
    [root@chensiqi1 ~]# grep chensiqi /etc/shadow #查看密码加密文件chensiqi用户信息的变化
    chensiqi:$6$pvpd8XR8$20OnOjqQNLhQMEURXxCmF9VzGMv4tA8hXo5WTQzko7DiwFVrv8wNIXY3gId0b..OrbYf/lOgBCgkxtStY4b3M.:17209:0:99999:7:::
    [root@chensiqi1 ~]# passwd -l chensiqi #锁定用户chensiqi, 使之不能更改密码。
    Locking password for user chensiqi.
    passwd: Success   #锁定成功
    [root@chensiqi1 ~]# grep chensiqi /etc/shadow
    chensiqi:!!$6$pvpd8XR8$20OnOjqQNLhQMEURXxCmF9VzGMv4tA8hXo5WTQzko7DiwFVrv8wNIXY3gId0b..OrbYf/lOgBCgkxtStY4b3M.:17209:0:99999:7:::     #密码信息前边多了两个叹号!
    [root@chensiqi1 ~]# passwd -S chensiqi  #查看用户状态
    chensiqi LK 2017-02-11 0 99999 7 -1 (Password locked.)
    [root@chensiqi1 ~]# su - chensiqi #切到chensiqi下更改密码测试
    [chensiqi@chensiqi1 ~]$ passwd
    Changing password for user chensiqi.
    Changing password for chensiqi.
    (current) UNIX password:    #输入旧密码
    passwd: Authentication token manipulation error  #失败不让修改
    [chensiqi@chensiqi1 ~]$ exit
    logout
    [root@chensiqi1 ~]# passwd -u chensiqi #通过-u参数,解除对用户chensiqi的锁定。
    Unlocking password for user chensiqi.
    passwd: Success   #接触成功
    [root@chensiqi1 ~]# passwd  -S chensiqi
    chensiqi PS 2017-02-11 0 99999 7 -1 (Password set, SHA512 crypt.)
    [root@chensiqi1 ~]# grep chensiqi /etc/shadow  #查看密码文件chensiqi用户信息
    chensiqi:$6$pvpd8XR8$20OnOjqQNLhQMEURXxCmF9VzGMv4tA8hXo5WTQzko7DiwFVrv8wNIXY3gId0b..OrbYf/lOgBCgkxtStY4b3M.:17209:0:99999:7:::   #叹号消失
    
  • 示范2:举1个结缘参数-x-n-w-i控制密码时效的例子

    [root@chensiqi1 ~]# date +%F    #显示当前系统时间
    2017-02-16
    [root@chensiqi1 ~]# chage -l chensiqi  #查看当前账户状态
    Last password change                    : Feb 12, 2017
    Password expires                    : Apr 13, 2017   
    Password inactive                   : May 13, 2017
    Account expires                     : never      #从不
    Minimum number of days between password change      : 7   #7天后才能修改密码
    Maximum number of days between password change      : 60 #60天后必须再次修改密码
    Number of days of warning before password expires   : 10 #快过期提前10天通知用户
    
  • 以身作则3:上边须要chensiqi用户7天内无法改变密码,60天过后必须修改密码,过期前10天通报用户,过期后30天禁止用户登录

[root@chensiqi1 ~]# passwd -n 7 -x 60 -i 30 -w 10 chensiqi
Adjusting aging data for user chensiqi.
passwd: Success
#chage -m 7 -M 60 -W 10 -I 30 chensiqi 命令也可以实现同样功能,只是参数的写法不同。
[root@chensiqi1 ~]# chage -l chensiqi  #查看修改后的结果
Last password change                    : Feb 12, 2017 #最后一次修改密码
Password expires                    : Apr 13, 2017  #密码过期时间
Password inactive                   : May 13, 2017 #密码被禁用
Account expires                     : never
Minimum number of days between password change      : 7   #7天内禁止修改密码
Maximum number of days between password change      : 60 #60天以后必须修改新密码
Number of days of warning before password expires   : 10 #密码过期前10天开始提醒
  • 示例4:【必会】我们用–stdin参数达成非交互式的批量装置或改动密码

    [root@chensiqi1 ~]# useradd chensiqi2   #创建用户
    Creating mailbox file: File exists
    [root@chensiqi1 ~]# echo "123123" | passwd --stdin chensiqi2
    Changing password for user chensiqi2. #免交互输出设置chensiqi2密码
    passwd: all authentication tokens updated successfully.
    [root@chensiqi1 ~]# history -c
    #将上面历史命令清空,上面设置密码虽然不需要交互了,但是密码会以明文的方式保存在历史记录里,这点需要大家注意一下。一般批量设置密码分发给管理员后,有强制大家更改密码。
    

贯彻批量创办用户,且批量创办用户自由密码的例证。

#!/bin/env bash
# -*- conding:utf-8 -*-
# author:chensiqi
# qq:215379068

Userchars="chensiqi"    #用户字符串,就是用户名的前面部分。
for num in `seq 3`      #seq 3 表示1-3即,用户名后缀为1,2,3来区分不同用户
do
    useradd $Userchars$num   #创建用户的命令
    passwd=`echo $RANDOM|md5sum|cut -c3-20`     #按照随机数(RANDOM)的md5加密取3-20之间的字符做为用户密码。此处要注意,密码部分应该事先定义好变量,否则取值变化,导致密码生成错误。
    echo "$passwd"|passwd --stdin $Userchars$num    #这行就是利用--stdin无交互设置密码的参数
    echo -e "user:$userchars$num\tpasswd:$passwd">>/tmp/user.log    #输出创建的用户和密码到user.log文件
done
---------------------------分界线
[root@chensiqi1 ~]# cat /tmp/user.log  #查看用户的账号和密码
user:chensiqi1  passwd:0e07e85b8ff84f04d9
user:chensiqi2  passwd:2362c5ade9629b2782
user:chensiqi3  passwd:7f17100a32ddf668f3

#提示:有关shell编程,后面的章节会详细讲解,这里不太理解也没关系

2.2.4 passwd特殊权限表达

[root@chensiqi1 ~]# which passwd #查看passwd完成路径
/usr/bin/passwd
[root@chensiqi1 ~]ls -l /usr/bin/passwd 
-rwsr-xr-x. 1 root root 30768 Nov 23  2015 /usr/bin/passwd #发现属主权限位带了个s(setuid位)
[root@chensiqi1 ~]# ls -l /etc/passwd
-rw-r--r--. 1 root root 1301 Feb 17 21:41 /etc/passwd #/etc/passwd从权限上看仅允许root用户更改。
为什么其他用户可以更改/etc/passwd自己的密码呢?

大家见到/usr/bin/passwd文件的属主权限里呆了s权限,那是setuid权限位,那象征同意普通用户以/usr/bin/passwd属主root的权能来执行普通用户本来不能实施的机能。比如:普通用户是绝非权力修改/etc/passwd的(从上文能够见到)。因为/usr/bin/passwd命令文件已经设置了setuid权限位(也正是-rwsr-xr-x中的s),所以普通用户在举行/usr/bin/passwd命令时亦可接纳root用户的权柄,直接的修改/etc/passwd文件,以高达修改本身口令的指标。

总结:

  • 至于passwd命令的用法暂且就介绍那些,在实质上工作中,最常用的用法正是直接行使passwd加用户名设置和改动密码,其次是加–stdin参数批量无交互设置密码,其余的参数用的很少(蕴涵-l-u-S等),大家只要想询问越来越多参数,可参考man
    passwd或passwd –help
  • 最终提示下同学们,在生产条件中,大家设置密码时应尽大概的错综复杂且无规律,但又利用用户自身回想。相比好的密码是数字字母(包蕴大小写)及特殊符号的三结合,并且陆个人以上。

2.2.5 修改用户密码有效期限相关命令chage

前文大家在治本用户和用户组时,曾使用过chage命令,chage命令是用来修改用户密码有效期限的。(chage

  • change user password expiry information),本节大家来学习那个命令。

1)chage说明

chage命令的用法很多,和passwd等一声令下效能也有好多是再度的,那里大家依然采取部分做事中常用的用法加以印证;尽管想驾驭越多,请执行man
chage 或chage –help

2)chage语法

[root@chensiqi ~]# chage --help
用法:chage [选项] 用户名

为了有利于同学们查看,我们用表格的点子把chage命令的常用参数列表展现,如下表所示:
|chage 参数选项|注释表明(带特殊颜色的表示首要,必要通晓)|
|–|–|
|-d,–lastday 最近年来期|将近来一回密码设置时间设为“近日年来子”|
|-E,–expiredate过期日期|将账户过期时间设为“过期日期”|
|-h,–help|展现此扶助音信并退出|
|-l,–inactive失效密码|在密码过期后有点天,用户被禁掉,仅能以root操作|
|-l,–list|显示账户年龄信息|
|-m,–mindays最小天数|将一次变动密码之间距离的细微天数设为“最小天数”|
|-M,–maxdays最大天数|将三回变动密码之间间距的最大天数设为“最小运气”|
|-W,-warndays警告天数|将过期警告天数设为“警告天数”|

3)chage 实例

演示1:chage -l 查看账户音讯

[root@chensiqi1 ~]# chage -l chensiqi
Last password change                : Feb 12, 2017 #对应参数-d
Password expires                    : Apr 13, 2017 
Password inactive                   : May 13, 2017 #对应参数-I
Account expires                     : never #对应-E参数
Minimum number of days between password change      : 7 #对应m参数
Maximum number of days between password change      : 60 #对应M参数
Number of days of warning before password expires   : 10 #对应W参数

演示2:举一个重组参数-m,-M,-W,-I控制密码时效的事例(同passwd命令示例)

[root@chensiqi1 ~]# chage -l chensiqi
Last password change                    : Feb 12, 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 #99999天后必须修改密码
Number of days of warning before password expires   : 7 #过期前提前7天提醒chensiqi用户

以身作则3:下边求chensiqi用户7天内不能改变密码,60天后必须修改密码,过期前提前10天通报chensiqi用户,过期后30天后不准用户登录。

[root@chensiqi1 ~]# chage -m 7 -M 60 -W 10 -I 30 chensiqi
[root@chensiqi1 ~]# chage -l chensiqi #查看修改后的结果
Last password change                    : Feb 12, 2017
Password expires                    : Apr 13, 2017
Password inactive                   : May 13, 2017
Account expires                     : never
Minimum number of days between password change      : 7 #7天内禁止修改密码
Maximum number of days between password change      : 60 #60天内必须修改新密码
Number of days of warning before password expires   : 10 #密码过期前10天开始提醒
提示:经过对比,我们发现修改后和前面讲解的passwd -n 7 -x 60 -W 10 -i 30 chensiqi命令修改结果一摸一样

总结:

在日常生产场景工作中,偶尔会用到chage的-l和-E参数,其余的参数,使用就很少了,这里不多介绍(知识是极致的,对于初学者,学会正确的选取知识很关键)。当然,假设想打听愈多,请参考man
chage和chage
–help。别的,有关账户实际过期的莫过于结论,在前文讲解useradd命令时就详细讲解过了,那里就不介绍了。

4)有关用户密码时效

  • 依照前文的执教,我们领略passwd和chage等均可以设置或变更内定账户密码的平安音讯(有效期等),大家也足以因而/etc/login.defs配置文件或/etc/default/useradd针对富有账户全局修改。
  • 安装用户密码的时效有利有弊:优点是可防止止运行职员离职一段时间后发觉用户还是能够登录(也只怕不是和谐的用户),假设设置了账户有效期,固然用户未被清理,那么,一段时间内也会因为过期而一筹莫展登陆了,此外,在服务器数量过多的景色,更改密码是相当的大的工作量。所以,对于用户密码的时效效用,大家遵照实际的劳作供给,综合应用。在科普的运营环境中,使用LDAP服务(微软活动目录)对linux账户统一验证,批量管理,也是不错的办法。

2.2.6 删除用户相关命令userdel

从userdel命令名称就足以清楚,它的功用就是剔除用户及用户相关的消息,与这几个命令有关的文书有:

  • /etc/passwd :用户账号资料文件
  • /etc/shadow :用户账号资源音讯加密文件
  • /etc/group : 用户组资讯文件
  • /etc/gshadow :用户组密码资源音信文件

1)userdel 语法

[root@chensiqi ~]# man userdel
名称:
    userdel -删除系统用户账号及相关目录及文件
语法:
    userdel [-r] 用户名
    userdel 用户名,用户名必须是系统已存在的
    -r 用户目录下的档案一并移除。在其他位置上的相关文件也将一一找出并删除。
相关文件
    /etc/passwd : 用户账号资料文件
    /etc/shadow : 用户账号咨询加密文件
    /etc/group : 用户组资讯文件
提示:使用userdel命令的结果实际上就是在更改维护以上的文件。

2.2.7 集团景况删除用户处理办法:

诚如无法认同用户相关目录有没有至关心注重要数据就没办法用-r
剔除经验:

  1. vi
    /etc/passwd,然后注释掉用户,观望一个月,那样出标题能够回复。也就是操作前备份。
  2. 把登录shell /bin/bash 改成 /sbin/nologin.
  3. openldap(类似活动目录)账号统一保管的,ldapCurry干掉用户。全数服务器全体都没了。
    提示:只要修改和删除都要战战兢兢!

2)userdel实例

示范1:删除钦定账户ett

[root@chensiqi1 ~]# grep chensiqi2 /etc/passwd 
chensiqi:x:808:808:num3 chensiqi:/chensiqi2017-02-11:/bin/bash
chensiqi2:x:810:810::/home/chensiqi2:/bin/bash
[root@chensiqi1 ~]# userdel chensiqi2 #删除账户,但不删除家目录
[root@chensiqi1 ~]# ls /home  #家目录仍旧存在
chensiqi  chensiqi1  chensiqi2  chensiqi3  mysql
[root@chensiqi1 ~]# grep chensiqi2 /etc/passwd  #账户已经没了
chensiqi:x:808:808:num3 chensiqi:/chensiqi2017-02-11:/bin/bash

总结:

  • 行使“userdel
    用户名”,那样的法门删除用户时,仅会删除用户本人,其家目录及有关文书并不会被删去。一般生产场景种,当不可能明显被删除用户家目录是或不是有用也许有不专业用户已在家目录下跑了剧本或程序的时候,就无须选择“userdel
    -r 用户名”那样的危急命令,而直接使用”userdel 用户名“命令删除即可。
  • 当然,大家还足以一向运用vi编辑/etc/passwd,找到要拍卖的用户,先注释一段时间,确认真的没难点了,然后在清理其家目录,注释的功力和userdel命令删除的效劳同样,正是促成了被诠释的用户不恐怕登录了(注释掉用户日前行即可),注释有相近回收站的效应,一旦发现难点,大家得以实行复苏工作。当然对于对门户上千台服务器大规模运行的事态,大家能够动用ldap等服务完毕账户合并验证,批量的增进删除管理。

演示2:userdel -r 用户名 方式删除
假诺在userdel命令后加参数-r,表示在剔除该用户的同时,一并把用户的家目录及当地邮件存款和储蓄的目录和文书也一块儿删除。因而,要当心使用。

[root@chensiqi1 ~]#  grep chensiqi3 /etc/passwd  
chensiqi3:x:811:811::/home/chensiqi3:/bin/bash
[root@chensiqi1 ~]# ll /home/chensiqi3
total 0
-rw-r--r--. 1 chensiqi3 chensiqi3 0 Feb 11 02:21 readme
[root@chensiqi1 ~]# userdel -r chensiqi3  #删除用户包含它的家目录
userdel: /var/spool/mail/chensiqi3 not owned by chensiqi3, not removing
[root@chensiqi1 ~]# ll /home/chensiqi3  #用户家目录已经被删除
ls: cannot access /home/chensiqi3: No such file or directory

总结:

  • 直白在/etc/passwd中注释或删除想要删除用户的笔录的章程也是生产条件中常用的措施,不过在操作时必然要小心,/etc/passwd是至极首要的系统文件,借使相当大心操作失误,就会滋生众多劳神,采纳先注释而不删除用户记录在工作情景也是个明智选项,注释有相近回收站的效劳,那样不但落得了指标,而且在出标题时得以展开复原(那种操作方法并不专业,一般适合中型小型型集团接纳)。当然,操作前备份也是要求的。操作前备份在其余场所都是二个运转职员能够的习惯。
  • 本来对于门户网上上千台服务器以上的广泛运维中,大家能够运用ldap等劳务实现账户合并验证,批量的丰裕删除管理用户。
  • 如上三个实例的用法,在生养环境中都有利用,请大家在接纳前,多钻探,操作前备份文件及数量,终归有关账户的操作都以很要紧主要的。

2.2.8 删除用户组相关命令groupdel

groupdel是用来删除用户组的,须要用户组必须是已存在的。用groupdel删除用户组实际就是修改/etc/group(用户组文件)和/etc/gshadow(用户组加密文件)文件。

语法格式:groupdel 用户组

[root@chensiqi1 ~]# groupadd zhangsan #创建用户组
[root@chensiqi1 ~]# grep zhangsan /etc/group  #查看文件有记录
zhangsan:x:810:
[root@chensiqi1 ~]# grep zhangsan /etc/gshadow #查看文件有记录
zhangsan:!::
[root@chensiqi1 ~]# groupdel zhangsan #删除用户组
[root@chensiqi1 ~]# grep zhangsan /etc/group #无记录
[root@chensiqi1 ~]# grep zhangsan /etc/gshadow #无记录

总结:
groupdel
比较简单,工作中是啊用的频率1相当少,大家会以上简单利用就足以了。

2.2.9 用户音信修改相关命令usermod

usermod命令成效尤其强劲,在生产场景中使用效用即使不是众多,但要么相比较首要的。它不但能改变用户的shell类型,所归属用户组,仍是能够改用户密码的有效期,登录名等许多用户的新闻。
与usermod命令有关的文书有:

  • /etc/passwd :用户账号资料文件
  • /etc/shadow :用户账号资源新闻加密文件
  • /etc/group :用户组资源音信文件
  • /etc/gshadow :组密码文件

1)usermod语法
|usermod参数选项|注释表明(带特殊颜色的意味首要,需求领悟)|
|–|–|
|-c
comment|扩充用户账号/etc/passwd中的注演表达栏(第伍栏)。那个-c参数作用也得以应用chfn命令来修改,当然也足以手工业修改/etc/passwd文件来落实|
|-d
home_dir|更新用户新的家目录。倘诺给定-m选项,用户旧的家目录会搬到新的家目录去,如旧的家目录不存在则建个新的。|
|-e expire_date|加上用户账号停止日期。日期格式为:MM/DD/YY|
|-f
inactive_days|账号过期几日后永久停权。当班值日为0时账号则立刻被停权。而当班值日为-1时则关闭此功效。预设值-1|
|-g
initial_group|更新用户新的起始登入用户组。用户组名需已存在。用户组ID必须参照既有的用户组。用户组ID预设值为1|
|-G
group【…】|定义用户为一堆groups的积极分子。各样用户组使用“,”逗号隔绝。用户组名同-g选项的界定|
|-l login_name|变更用户login时的称号为login_name.别的消息不变|
|-s
shell|指定新登入shell。如此栏留白,系统将选用系统预设shell。这个-s参数功能也可以使用chsh命令来修改。当然也可以手工修改/etc/passwd文件来实现|
|-u
uid|指定用户UID值。除非接-o参数,否则ID值必须是唯一的数字(不能是负数)|
|-L|冻结用户的密码,使之不能登录,实际就是直接修改/etc/shadow的密码栏。在密码栏的始发加上“!”号,即表示冻结。这几个冻结密码的功力和usermod
-e,useradd -e,chage -E或passwd
-l等一声令下参数都有接近的遵从,那正是让用户一点都不大概平常登陆。|
|-U|裁撤冻结用户的密码,使之复苏登录,实际同样是修改/etc/shadow的密码栏。在密码栏的始发撤销“!”号,即意味着恢复生机。|

2)usermod实例

实例1:使用差异的措施修改/etc/passwd中用户的表明栏

[root@chensiqi1 ~]# tail -1 /etc/passwd #修改前查看一下
chensiqi1:x:809:809::/home/chensiqi1:/bin/bash
[root@chensiqi1 ~]# usermod -c 00chensiqi1 chensiqi1 #修改账户的注释说明信息
[root@chensiqi1 ~]# tail -1 /etc/passwd #查看修改结果
chensiqi1:x:809:809:00chensiqi1:/home/chensiqi1:/bin/bash
[root@chensiqi1 ~]# chfn -f information chensiqi1  #chfn也可以修改
Changing finger information for chensiqi1.
Finger information changed.
[root@chensiqi1 ~]# tail -1 /etc/passwd 
chensiqi1:x:809:809:information:/home/chensiqi1:/bin/bash

晋升:实例1的用法,仅在那边表明用,真正行事中选取的不多,属于领会内容。

出于有前方useradd命令的授课基础了,那里就不过多演示了。

2.3 用户管理命令小结

1,和用户相关的布署文件知识点:
/etc/passwd 账号文件及区别列内容
/etc/shadow 账号密码文件及差异列内容
/etc/group 组的文本及差别列内容
/etc/gshadow 组密码文件及分化列内容
澳门金沙国际 ,2,用户管理命令
useradd -u -g -G -s -M -e -c -d
初步化用户对应的多少个文件/etc/skel,/etc/default/useradd,/etc/login.defs
userdel -r
usermod -L -U
chage -l(小写) -E
passwd –stdin
3,组管理命令
groupadd -g

相关文章