7.7 chage:修改用户密码有效期

chage命令用于查看或修改用户密码的有效期,有些参数和passwd的功能相同。
 
-d    设置上一次密码更改的日期
-E    账号过期的日期。日期格式为YYYY-MM-DD
-I    设置密码过期多少天后禁用账户
-l    显示账号有效期的信息
-m    密码可更改的最小天数。默认为0,表示任何时候都可以更改密码
-M    密码保持有效的最大天数
-W    密码到期前,提前收到警告信息的天数
 
要求oldboy用户7天之内不能更改密码,60天以后必须修改密码,过期前10天通知oldboy用户,过期后30天后禁止用户登录。
 
[root@cs6 ~]# chage -m 7 -M 60 -W 10 -I 30 lewen
[root@cs6 ~]# chage -m7 -M60 -W10 -I30 lewen
[root@cs6 ~]# chage -l lewen
Last password change : May 11, 2019
Password expires : Jul 10, 2019
Password inactive : Aug 09, 2019
Account expires : never
Minimum number of days between password change : 7
Maximum number of days between password change : 60
Number of days of warning before password expires : 10

7.8 chpasswd:批量更新用户密码

    chpasswd命令用于从标准输入中读取一定格式的用户名、密码来批量更新用户的密码,其格式为“用户名:密码”。
 
-e    默认格式是明文密码,使用e参数则需要加密的密码

命令行批量修改密码

[root@cs6 ~]# chpasswd
root:123456
lewen:123456
[root@cs6 ~]# #<==在新的空行输入Ctrl+D结束输入。

生产案例

范例7-18:批量创建10个用户stu0l-stul0,并且设置8位随机密码,要求不能使用Shell的循环(例如:for、while等),只能用Linux命令及管道实现,此题前面也用passwd的方法实现过,本例将采用chpasswd方法来实现。
 
1)添加10个用户:
[root@cs6 ~]# echo stu{01..10}|xargs -n 1 useradd
[root@cs6 ~]# tail /etc/passwd
stu01:x:1001:1001::/home/stu01:/bin/bash
stu02:x:1002:1002::/home/stu02:/bin/bash
stu03:x:1003:1003::/home/stu03:/bin/bash
stu04:x:1004:1004::/home/stu04:/bin/bash
stu05:x:1005:1005::/home/stu05:/bin/bash
stu06:x:1006:1006::/home/stu06:/bin/bash
stu07:x:1007:1007::/home/stu07:/bin/bash
stu08:x:1008:1008::/home/stu08:/bin/bash
stu09:x:1009:1009::/home/stu09:/bin/bash
stu10:x:1010:1010::/home/stu10:/bin/bash
2)以“用户名:密码”的格式将新添加的用户写入pass.txt文件:
[root@cs6 ~]# echo stu{01..10}:$((RANDOM+10000000))|tr " " "\n" >pass.txt    #将空格变成换行符\n
[root@cs6 ~]# cat pass.txt
stu01:10027070
stu02:10027493
stu03:10013323
stu04:10023959
stu05:10001639
stu06:10003292
stu07:10018430
stu08:10012448
stu09:10022958
stu10:10011925
3)chpasswd将从文件pass.txt中读取相关的数据,为对应的用户设置冒号后面的密码:

[root@cs6 ~]# chpasswd <pass.txt
测试所设置密码的有效性:
[root@cs6 ~]# su - stu08
[stu08@cs6 ~]$ su - stu10
Password:
[stu10@cs6 ~]$ whoami
stu10

7.9 su:切换用户

su命令用于将当前用户切换到指定用户或者以指定用户的身份执行命令或程序。
 
若省略了命令后面的用户名,则默认切换为root用户。
从root用户切换到普通用户时,不需要任何密码;从普通用户切换到root用户时,需要输入root 密码。
 
-,-l,-login    切换用户的同时,将用户的家目录、系统环境等重新按切换后的用户初始化*
-c             向Shell传递单个命令
 
[lewen@cs6 ~]$ whoami
lewen [lewen@cs6 ~]$ su - root
Password:
[root@cs6 ~]# env |egrep "USER|MAIL|PWD|LOGNAME"
USER=root
MAIL=/var/spool/mail/root
PWD=/root
LOGNAME=root
 
从上面的范例可以得出如下结论:
“su 用户名”虽然能够切换到对应的用户,但是登录后的环境变量信息还是切换之前用户的环境变量信息。
“su - 用户名”不但能切换到相应的用户,还能将登录后的环境变量一并切换,这是标准规范的操作方法。
 
如何让系统在每一次开机时都能自动以普通用户启动指定的服务脚本?

[root@cs6 ~]# taiL -1 /ete/rc.local #<==在开机启动文件/etc/rc.local中写入启动命令。
su - lewen -c '/bin/sh /service/scripts/deploy.sh'
    通过普通用户运行服务是一个很好地提升系统安全性的办法,在生产环境中,大多数服务都可以通过普通用户来启动(不用特权端口),而不用root用户启动服务。这样就可以使系统的安全性又提高一个等级,同时管理时使用普通户管理就可以了,管理者不需要有root权限。
 
su命令总结
1)普通用户切换到root用户,可使用su- 或su - root,但必须输入root密码才能完成切换。
2)root用户切换到普通用户,可使用“su - 普通用户名”的写法。不需要输入任何密码就能完成切换。在CentOS5.X系统中,切换到普通用户后,再执行一些命令如ifconfig时,可能会遭遇环境变量PATH的路径问题,也会因此找不到某些系统命令(一般是/sbin,/usr/sbin等下面的命令),这时就需要使用全路径执行或者调整配置普通用户的PATH变量内容,CentOS6和CentOS7不存在这方面的问题。
3)如果仅希望在某用户下执行命令,而不用直接切换到该用户下来操作,可以使用su - 用户名 -c ”命令” 的方式。
 

7.7-9 chage、chpasswd、su的更多相关文章

  1. 第六天、用户、组、权限、grep

    第六天.用户.组.权限.grep 权限总结表 操作 源目录权限 文件权限 目标目录权限 rm删文件 wx - - mv改名 wx - - mv移动文件 wx r wx cp复制文件 x r wx &g ...

  2. Linux 用户篇——用户管理命令之id、whoami、su、chage

    一.浅谈id.whoami.su.chage 本篇是续写上一篇<Linux 用户篇——用户管理命令之useradd.passwd.userdel.usermod>. (1)id命令 命令格 ...

  3. Linux 下以其他用户身份运行程序—— su、sudo、runuser

      本文综合分析了Linux系统下,如何使用runuser命令.su命令和sudo命令以其他用户身份来运行程序,以及这三个命令的运行效率比较. 一.su 命令临时切换用户身份 SU:( Switch ...

  4. Linux常用命令4(grep、df、du、awk、su、ll)

    [grep命令] grep常用用法 [root@www ~]# grep [-acinv] [--color=auto] '搜寻字符串' filename选项与参数:-a :将 binary 文件以 ...

  5. linux初学terminal命令(1)ls、cd、su、man、pwd、useradd、passwd、cat、Ctrl+C、Ctrl+Z、Ctrl+L

    terminal命令(terminal终端对应windows 按下win(linux下叫Super键)+r,输入cmd(command,命令),召唤出来的Dos控制台) 1. ls(英文list):简 ...

  6. su、sudo、su - root的区别

    su和sudo的区别 共同点:都是root用户权限: 不同点:su只获得root权限,工作环境不变,还是在切换之前用户的工作环境:sudo是完全获得root的权限和root的工作环境. sudo:表示 ...

  7. linux命令格式及who、whoami、su和passwd命令

    linux命令格式及who.whoami.su和passwd命令 1. Linux命令的格式 Linux命令的语法格式: 命令 [选项] [参数] 命令格式中命令.选项.参数的具体含义: 命令:告诉L ...

  8. 算法:贪心、回溯(su)、分治、动态规划,思想简要

    贪心算法: 只做出当前看来最好的选择,而不从整体考虑最优,他所作出的是局部最优解.使用该算法的前提是必须具备无后效性,即某个状态以前的选择不会影响以后的状态的选择,只与当前状态有关. 回溯算法: 本质 ...

  9. Linux权限管理(用户、组、文件管理)

    一. Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示. 1. 文件查看类命令cat,tac, head, tail, more, less, ls ,file: -ls : l ...

随机推荐

  1. Spring 学习笔记(二):SpringIoC

    1 IoC与DI IoC是Inversion of Control的简称,也就是控制反转.通常来说,创建对象需要调用者手动创建,也就是new XXX()的方式.当Spring框架出现后,对象的实例不再 ...

  2. https如何使用python+flask来实现

    摘要:一般http中存在请求信息明文传输,容易被窃听截取:数据的完整性未校验,容易被篡改:没有验证对方身份,存在冒充危险.面对这些问题,怎么破? 一.为什么要用https 一般http中存在如下问题: ...

  3. matlab文件管理

    当前文价夹浏览器以及路径管理器   在主页面左侧有单独的窗口进行显示,可以显示当前目录下的文件并提供文件搜索功能. 搜索路径 搜索先后步骤 输入字符串"polyfit" (1)检查 ...

  4. 脱壳——修复加密IAT

    脱壳--修复加密IAT 对两个练手程序进行脱壳修复加密IAT(其实是一个程序,只是用了几种不同的加壳方式) 第一个程序 Aspack.exe 下载链接:https://download.csdn.ne ...

  5. 各种数据类型是否可进入if判断

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. hdu4122 制作月饼完成订单的最小花费

    题意:       有一个加工厂加工月饼的,这个工厂一共开业m小时,2000年1月1日0点是开业的第一个小时,每个小时加工月饼的价钱也不一样,然后每个月饼的保质期都是t天,因为要放在冰箱里保存,所以在 ...

  7. UVA11419 我是SAM

    题意:      给你一个n*m的矩阵,上面有一些格子上有目标,我们可以在格子的外面用枪打目标,一发子弹可以消灭一行或者一列目标,问你最少多少枪能把目标打光,并且输出开枪的位置,题目没说spj(特判) ...

  8. Linux下抓包命令tcpdump的使用

    在linux下,可以使用 tcpdump 命令来抓取数据包. 主要用法如下: 过滤网卡 tcpdump -i eth0 #抓取所有经过网卡eth0数据包 tcpdump -i lo #抓取环回口的数据 ...

  9. MAC地址格式

    随机配置一个mac地址,发现有的会报出Cannot assign requested address. 错误码是EADDRNOTAVAIL. 检查不是组播地址也不是全0地址. 组播地址就是第一个字节最 ...

  10. HR:“最喜欢阿里出来的程序员了,技术又好又耐艹!” 我:???

    面试造火箭,进厂拧螺丝?真的是这样吗? 缘起 估计不少同学都是被标题吸引进来的.事先声明,这句话不是我虚构的,而是我实实在在从同事的口中听到的,而且还不止一次. 当时的场景就是很正常的交谈,别人也并没 ...