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
  • 最后提醒下同学们,在生产环境中,我们设置密码时应尽可能的复杂且无规律,但又利用用户自己记忆。比较好的密码是数字字母(包括大小写)及特殊符号的组合,并且8位以上。

 

新建虚拟机

以下红框表示我的操作和标示,默认操作我会省略图,只给要修改要注意的图。

 图片 1

图片 2

图片 3

 图片 4

图片 5

图片 6

图片 7

图片 8

 

用户信息修改相关命令usermod

usermod命令功能十分强大,在生产场景中使用频率虽然不是很多,但还是比较重要的。它不仅能更改用户的shell类型,所归属用户组,还能改用户密码的有效期,登录名等很多用户的信息。
与usermod命令有关的文件有:

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

图片 9图片 10

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

 

 加载映像文件

图片 11

图片 12

注意驱动器是IDE,不是IDE的可能无法识别映像文件。(如何更改为IDE请看“虚拟机装系统”博文。)

设置完成后要重启网卡,命令是:service network restart

 添加用户组命令groupadd

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

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

groupadd命令语法

图片 13图片 14

[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|新增一个账户,强制覆盖一个已经存在的用户组账号|

安装Debian系统

进入设置的命令是:vi /etc/sysconfig/network-scripts/ifcfg-eth0

 企业场景删除用户处理方法:

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

  1. vi
    /etc/passwd,然后注释掉用户,观察1个月,这样出问题可以还原。相当于操作前备份。
  2. 把登录shell /bin/bash 改成 /sbin/nologin.
  3. openldap(类似活动目录)账号统一管理的,ldap库里干掉用户。所有服务器全部都没了。
    提示:只要修改和删除都要小心谨慎!

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 ~]# 

 

系统正式安装

启动虚拟机进行安装系统

图片 15

以下红框均表示我的操作和标示。

图片 16

 图片 17

图片 18

图片 19

图片 20

图片 21

图片 22

域名随便设置,下面我使用默认的。

图片 23

图片 24

图片 25

 下面是设置普通用户。

图片 26

图片 27

图片 28

图片 29

图片 30

下面就是分区了,我们选择进行手动分区。(当然如果你嫌麻烦或者不会分区的话可以选择第一项:使用整个磁盘分区,它会帮你自动分区的。)

图片 31

图片 32

图片 33

图片 34图片 35

接下来我们先分一个/boot启动分区。

图片 36图片 37

图片 38

按下面的图进行分区设置即可完成/boot分区。

图片 39

即可知道分区情况。

图片 40

同理把以下的也分了,swap分区、/和/home分区自己根据情况分区。(swap分区我分2048MB,/我分10G,/home就分剩下的咯!)

图片 41

注意:swap交换空间的可启动标志是关闭的,不能启动。

图片 42

图片 43

图片 44

以上就是最终分区情况,然后修改写入磁盘即可。

下面我再示范一次自动分区的:

图片 45

图片 46

选择第三项

图片 47

图片 48

自动为你分好了区,修改写入磁盘即可应用。

以下分区是采取我手动分区的。

图片 49

下面正式安装系统。

图片 50

安装完后进行软件包配置。

 图片 51

图片 52

软件包配置过程中需要下载基础软件包。过程比较漫长,大约需要20分钟左右。(注意电脑一定要联网)

图片 53

下面什么都不用填,继续即可。

图片 54

图片 55

图片 56

选否。

图片 57

下面这些根据自己工作需要或者自己需求而定,确定后按Tab键选择继续,回车即可。(这里我选择默认。)

 图片 58

图片 59

 图片 60

图片 61

图片 62

图片 63

之后自动重启电脑,正式进入系统。

图片 64

图片 65

稍等十几秒后进入下面:

图片 66

输入登录密码后进入操作桌面:

图片 67

图片 68

到此,Debian 9.5系统已经安装完毕了。

 

写之不易,请多多支持,若有疑问,可以留言给我或者关注我的微信公众号:qq596044192(本文会同步)。

2018-08-02

这几天白天在公司上班敲代码,晚上回家鼓捣虚拟机下的CentOS上网,还有secureCRT远程管理工具的配置,今天终于都搞好了,记个笔记。

修改用户密码有效期限相关命令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警告天数|将过期警告天数设为“警告天数”|

图片 69图片 70

示例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账户统一认证,批量管理,也是不错的方法。

 

虚拟机装系统

本来我想用PE装系统,不过觉得每次都是那样的步骤(重复起来写的有点烦),所以我就改用虚拟机安装了,现在我们主要用windows,如果你是工作需求主要是用Linux系统的话,就用PE安装吧,但是我觉得虚拟机运行Linux和把Linux装在电脑上,其实操作起来没什么区别,所以我也选择使用虚拟机了。

第三步:在CentOS中设置IP地址,我设置的是192.168.22.3,网关是192.168.22.2,BOOTPROTO=static表示静态地址

groupadd命令实例

在生产环境中,一般增加用户组的用法都是非常简单的,比如下面的例子,添加GID为802的用户组chensiqi

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

如果不需要指定用户组ID值,可以直接执行

[root@chensiqi ~]# groupadd chensiqi

提示:未提到的groupadd的参数,大家可以暂时忽略掉,在实际工作中用的比较少。

 

PE装系统(简单文字叙述)

1.首先分区时记得预留大概至少20G的空闲空间,用于安装Debian 9.5系统。

2.制作法,就是打开最新版(记得一定是最新版的)UItraISO,打开映像文件,点击“启动”下拉菜单中的“写入硬盘映像”,保持U盘插入,然后把映像文件中的文件内容写入到U盘中,写入完毕后,重启计算机,按U盘启动快捷键进入U盘,即可读取映像文件的内容,从而进入系统安装界面,若看不明白请阅读我上一期的博文。

3.直接法:重启计算机后按U盘快捷键进入U盘启动选择菜单中找到“运行自定义映像文件”,点击进入去后会自动识别出映像文件,然后回车确定即可进入系统安装界面,这是直接简单快捷的方法。如果无法识别,则把U盘里的文件拉到硬盘中,详细操作请阅读我上上期的博文。

4.安装系统步骤和个性化设置请看下面“虚拟机装系统”里的内容,步骤和方法是一模一样的。(除了新建虚拟机)

图片 71

 

              这期就安装与Ubantu、Linux
Mint差不多的系统,但是这个Debian系统的话,它安装时却有些不一样,什么不一样,我们接下来看看吧!

第四步:打开CentOS的终端,测试网络是否连通:

删除用户相关命令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命令的结果实际上就是在更改维护以上的文件。

 系统下载

Debian 9.5下载地址:

图片 72

 

用户密码相关命令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 命令参数选项

图片 73图片 74

[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参数来解除锁定。

图片 75图片 76

 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
#将上面历史命令清空,上面设置密码虽然不需要交互了,但是密码会以明文的方式保存在历史记录里,这点需要大家注意一下。一般批量设置密码分发给管理员后,有强制大家更改密码。

实现批量创建用户,且批量创建用户随机密码的例子。

图片 77图片 78

#!/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

 

 

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

 

第一步,在VMware的菜单栏里”编辑”->”虚拟网络编辑器”,NAT模式使用的是VMnet8虚拟网卡,我把子网IP地址设置成192.168.22.0,如图:

删除用户组相关命令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 比较简单,工作中使用的频率非常少,大家会以上简单应用就可以了。

 

我使用的是NAT模式,配置的是静态地址,还有Bridge桥接模式和Host-only仅主机模式,三个模式之间的区别网上有的是,但是我觉得NAT模式更接近现实中的使用。

之前没做成功,可能的原因是没有把VMnet8虚拟网卡和CentOS在同一个网段内,所以secureCRT各种连不上,深层原因也是自己对NAT模式不太熟悉和了解,今天把他们都配置完成,后面继续学习Linux的内容。

发表评论

电子邮件地址不会被公开。 必填项已用*标注