Linux下交互式与非交互式修改用户密码的例子

下面是详细讲解Linux下交互式与非交互式修改用户密码的攻略。

一、修改用户密码的基本命令

Linux下修改用户密码的基本命令为passwd,用法如下:

passwd [选项] [用户名]

其中,[选项]为可选项,常用的选项有:

  • -l:锁定用户账号;
  • -u:解除锁定用户账号;
  • -d:删除用户密码,使其变为无密码状态;
  • -e:让用户下次登录时必须强制修改密码;
  • -S:显示用户密码信息;
  • -n:指定修改密码最短天数限制;
  • -x:指定密码过期天数;

[用户名]为要修改密码的用户账号名称,默认为当前登录用户。

二、交互式修改用户密码

交互式修改用户密码,是指在命令行中输入passwd命令后,系统会通过交互式输入方式来修改用户密码。

示例一:

假设我们要修改用户test的密码,可以执行以下命令:

passwd test

执行上述命令后,系统会提示我们输入两遍新密码。

Changing password for user test.
New password:
Retype new password:

输入两遍新密码后,系统会提示修改密码成功。

passwd: all authentication tokens updated successfully.

示例二:

如果要修改当前用户的密码,可以执行以下命令:

passwd

系统会要求我们输入当前用户的旧密码和两遍新密码。

Changing password for student.
(current) UNIX password: 
Enter new UNIX password: 
Retype new UNIX password: 

输入完密码后,如果旧密码正确,系统就会提示修改密码成功。

三、非交互式修改用户密码

非交互式修改用户密码,是通过编写脚本实现批量修改。

示例一:

假设我们要批量修改所有用户的密码为ABC123,可以先使用awk命令获取所有用户账号名称,再使用循环遍历每个用户账号并修改密码。

#!/bin/bash
for user in $(awk -F ':' '/bash/{print $1}' /etc/passwd)
do
    echo "user = ${user}"
    echo "${user}:ABC123" | chpasswd
done

上述脚本首先使用awk命令从/etc/passwd文件中获取所有用户账号名称,再使用for循环遍历每个用户账号,通过echo命令将用户名:密码格式的字符串输送给chpasswd命令。

示例二:

如果要批量修改指定用户的密码,可以将多个用户名写入文件,然后使用while循环遍历每个用户名并修改密码。

#!/bin/bash
while read user
do
    echo "user = ${user}"
    echo "${user}:ABC123" | chpasswd
done < user_list.txt

上述脚本将用户名列表保存在user_list.txt文件中,使用while循环遍历每个用户,通过echo命令将用户名:密码格式的字符串输送给chpasswd命令。

综上,以上就是关于Linux下交互式与非交互式修改用户密码的攻略介绍,希望能对大家有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Linux下交互式与非交互式修改用户密码的例子 - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • Django QuerySet查询集原理及代码实例

    Django QuerySet查询集原理及代码实例 在Django中,QuerySet是用于执行数据库查询的核心概念。QuerySet可以让开发者轻松地编写复杂的数据库查询,并映射到模型类的对象集合上。 QuerySet是什么 QuerySet是一个懒惰的查询对象,只有当需要访问它的结果时,才会真正地执行查询。这意味着当你调用QuerySet的某个方法时,实…

    database 2023年5月19日
    00
  • SQL 创建表

    下面是SQL创建表的完整攻略。 1. SQL创建表 1.1 语法结构 在使用SQL创建表的时候,需要使用CREATE TABLE语句。语法结构如下: CREATE TABLE table_name ( column1 datatype [ NULL | NOT NULL ], column2 datatype [ NULL | NOT NULL ], ……

    database 2023年3月27日
    00
  • 在C#中使用Redis

    一、下载ServiceStack.Redis   VS2015版本 二、将解压后的文件中下面四个dll引用到项目中 三、用C#对redis来进行简单的读取和写入操作 using System; using System.Collections.Generic; using System.Linq; using System.Text; using Servi…

    Redis 2023年4月12日
    00
  • Mysql索引覆盖

    通常情况下,我们创建索引的时候只关注 where 条件,不过这只是索引优化的一个方向。优秀的索引设计应该纵观整个查询,而不仅仅是 where 条件部分,还应该关注查询所包含的列。索引确实是一种高效的查找数据方式,但是 mysql 也可以从索引中直接获取数据,这样就不在需要读数据行了。 作者:京东零售 孙涛 1.什么是覆盖索引 通常情况下,我们创建索引的时候只…

    MySQL 2023年4月12日
    00
  • thinkPHP简单实现多个子查询语句的方法

    实现多个子查询语句的方法主要涉及到ThinkPHP的链式操作和查询构造器的使用。下面是具体的攻略步骤: 1. 使用链式操作 ThinkPHP的链式操作能够方便地实现多个子查询语句的嵌套,操作步骤如下: 首先使用查询构造器构造一个子查询对象$subQuery1,并设置需要查询的字段和查询条件。 $subQuery1 = Db::table(‘table1’) …

    database 2023年5月22日
    00
  • phpnow重新安装mysql数据库的方法

    下面我将向您详细讲解“phpnow重新安装MySQL数据库的方法”。 准备工作 在进行重新安装之前,我们先需要进行一些准备工作。 备份数据 在重新安装MySQL数据库之前,我们需要先备份数据库中的数据。打开MySQL的命令行窗口,执行以下命令备份数据库中所有数据: mysqldump -u username -p password –all-databas…

    database 2023年5月19日
    00
  • Linux下mysql 8.0.15 安装配置图文教程以及修改密码

    下面是“Linux下mysql 8.0.15 安装配置图文教程以及修改密码”的完整攻略。 安装mysql 8.0.15 1. 下载安装包 首先打开mysql官网,找到对应的版本,下载对应的安装包。 示例:下载MySQL 8.0.15版本 wget https://dev.mysql.com/get/mysql80-community-release-el7-…

    database 2023年5月22日
    00
  • SQL语句实现查询SQL Server内存使用状况

    SQL Server 是一款内存密集型的数据库程序,如果内存使用不当,会导致整个数据库的性能下降。了解SQL Server内存使用状况,可以协助DBA在服务器性能优化和容量规划时做出正确的决策。本文将介绍如何使用 SQL 语句实现查询 SQL Server 内存使用状况,并提供两条示例说明。 实现查询 SQL Server 内存使用状况的 SQL 语句 以下…

    database 2023年5月21日
    00
合作推广
合作推广
分享本页
返回顶部