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. HTML5是什么

    HTML5是目前超文本标记语言 (Hyper Text Markup Language)最新修订版.HTML可以理解为一门程序语言,HTML5字面的意思,这门程序语言的第五次修订,也是HTML的第五个 ...

  2. Qt开发技术:图形视图框架(一)基本介绍

    前话   使用到Qt的视图框架.   Qt视图框架介绍 简介   图形视图框架(The Graphic View Framework)用于管理和与大量定制的二维图形项目交互,以及用于可视化项目的视图小 ...

  3. 2021 年最值得推荐的 7 个 Angular 前端组件库 - DevUI

    摘要:DevUI 是一款面向企业中后台产品的开源前端解决方案,它倡导沉浸.灵活.至简的设计价值观,提倡设计者为真实的需求服务,为多数人的设计,拒绝哗众取宠.取悦眼球的设计.如果你正在开发 ToB 的工 ...

  4. SpringBoot 启动慢?那是因为你不知道它

    前言 在 2021 年这个小学作文中的未来年份,没有想象中的汽车满天飞,也没有实现机器人满地跑.但牛逼的是我们都有一个共识: 知乎达到了人均 "谢邀~ 人在美国刚下飞机"的生活水平 ...

  5. Maven精简笔记

    Maven基本命令 1.mvn complile:编译命令,将src/main目录下的代码以及资源文件进行编译,在项目目录中生成target目录用来存放编译好的 class 文件等等 2.mvn cl ...

  6. 用laravel Maatwebsite\Excel 教你导出漂亮的Excel表单

    先来看效果图 还算是漂亮吧 哈哈哈. 第一步当然是安装包咯 环境要求 PHP: ^7.0Laravel: ^5.5 composer require maatwebsite/excel 目前3.1 只 ...

  7. 将这段美化的css代码

    很多时候如果不是用了很多样式,很难把边框修饰得好看,看了一篇博文,觉得真的挺漂亮,也挺好看. 转载的博文地址 将这段美化的css代码 border:1px solid #96c2f1;backgrou ...

  8. 【CSS】CSS3从入门到深入(复习查漏向

    CSS3从入门到深入(复习查漏向 pre_section CSS:层叠样式表,决定网页表现 网页为多层结构,CSS为每一层设置样式,最后显示最上一层 CSS语句 = 选择器 + 声明块 形式 内联样式 ...

  9. Activity,Tasks

    常见的一些Activity的打开方式: //1.拨打电话 // 给移动客服10086拨打电话 Uri uri = Uri.parse("tel:10086"); Intent in ...

  10. 字符串 前 L的含义

    转自http://blog.csdn.net/whz_zb/article/details/7446901 一. 在字符串前加一个L作用: unicode字符集是两个字节组成的.L告示编译器使用两个字 ...