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. Java(152-170)【继承、super、this、抽象类】

    1.继承的概述 继承是多态的前提 继承主要解决的问题是共性抽取 2.继承的格式 在继承的关系中,子类可以当做父类看待 代码复用的效果 package cn.itcast.day09.demo01; / ...

  2. Horovod Install

    Horovod documentation 安装 [Step1]安装Open MPI 注意: Open MPI 3.1.3 安装有些问题, 可以安装 Open MPI 3.1.2 或者 Open MP ...

  3. 【DB宝49】Oracle如何设置DB、监听和EM开机启动

    目录 一.Windows系统 二.Linux系统 方法1:配置/etc/rc.d/rc.local文件(推荐) 方法2:配置service服务 三.Oracle 18c版本 四.总结 一.Window ...

  4. 读取ini配置文件 及 UI对象库

    读取ini配置文件 配置项 读取API 写入API 实战:UI 对象库 读取ini配置文件 配置项 在每个 ini 配置文件中,配置数据会被分组(比如下述配置文件中的"config" ...

  5. 【DB宝50】Oracle异构平台迁移之完全可传输导出导入(Full Transportable Export & Import)

    目录 一.简介 1.1.使用场景 1.2.限制条件 二.完全可传输操作步骤 三.案例演示 3.1.环境 3.2.源库操作 3.2.1.将需要传输的用户表空间设置为RO状态 3.2.2.使用Data P ...

  6. 【JVM】JVM中的垃圾回收算法

    1.标记 -清除算法 "标记-清除"(Mark-Sweep)算法,如它的名字一样,算法分为"标记"和"清除"两个阶段:首先标记出所有需要回收 ...

  7. 内核模式下的线程同步的分析(Windows核心编程)

    内核模式下的线程同步 内核模式下的线程同步是用户模式下的线程同步的扩展,因为用户模式下的线程同步有一定的局限性.但用户模式下线程同步的好处是速度快,不需要切换到内核模式(需要额外的 CPU 时间).通 ...

  8. Python爬虫 XPath语法和lxml模块

    XPath语法和lxml模块 什么是XPath? xpath(XML Path Language)是一门在XML和HTML文档中查找信息的语言,可用来在XML和HTML文档中对元素和属性进行遍历. X ...

  9. CVE-2017-11826:Office Open XML 标签嵌套解析混淆漏洞

    \x01 前言 CVE-2017-11826 据说是 360 在 2017 年 9 月底发现的一个关于 XML 格式解析的一个漏洞,之后微软在 10 月份发布了关于 CVE-2017-11826 的补 ...

  10. Win64 驱动内核编程-31.枚举与删除映像回调

    枚举与删除映像回调 映像回调可以拦截 RING3 和 RING0 的映像加载.某些游戏保护会用此来拦截黑名单中的驱动加载,比如 XUETR.WIN64AST 的驱动.同理,在反游戏保护的过程中,也可以 ...