Linux下强制新用户首次登录时修改密码

如果系统管理员希望添加一个用户以后,让该用户第一次登录以后自己设置自己的密码,那么就要使得用户的初始密码或者空密码立刻过期,强制用户第一次登录后立刻修改密码。

为了强制用户第一次登录时设置一个新密码,请按照下面的指示来做,但是需要的注意的时候如果用户是通过SSH远程登录进去的,那么该方法是不能生效的。

1. 锁定用户密码 - 如果用户不存在,用useradd添加用户,但是不设置密码,使得该帐号仍然处于锁定状态,如果用户密码已经激活,则用下面命令锁定:

     usermod -L username

2. 强制密码立刻过期:

     chage -d 0 username

该命令设置用户上次修改密码的时间为纪元时间(1970年1月1日),这样会使得该命令立刻过期,而不论密码过期策略的设置。

3. 对帐号解锁 - 这里有两个方法来实现,管理员可以设置一个新密码或者设置空密码:

注意:不要使用passwd来设置密码,因为它会使得刚才设置的使密码立刻过期的设置失效。

为了设置初始密码,使用下面步骤:

  • 启动Python:
     # python
     Python 2.3.4 (#1, Feb  6 2006, 10:38:46)
     [GCC 3.4.5 20051201 (Red Hat 3.4.5-2)] on linux2
     Type "help", "copyright", "credits" or "license" for more information.
     >>> 
  • 在提示符>>>后输入下面命令:
           import crypt; print crypt.crypt("userpassword","username")
           输出将会类似是:
           12CsGd8FRcMSM
  • 输入[Ctrl]+[D]退出python。
  • 拷贝刚才的输出密码结果,12CsGd8FRcMSM,用在下面的命令中:
           usermod -p "12CsGd8FRcMSM" username

当然也可以给用户给一个空密码:

     usermod -p "" username

注: 虽然空密码很方便,但是有安全风险。

然后登录该用户,就会提示输入密码。

其他办法:

使用下面方法也可以实现:

1. 使用useradd添加用户 2. 使用passwd设置用户密码 3. 使用usermod -L来锁密码 4. 强制用户帐号过期chage -d 0 username 5. 解锁用户帐号

上面流程的示例:

   # useradd dan
   # passwd dan
   Changing password for user dan.
   New password:
   Retype new password:
   passwd: all authentication tokens updated successfully.
   # usermod -L dan
   # chage -d 0 dan
   # usermod -U dan

当然用户dan第一次登录,就会提示设置密码如下:

   $ su dan
   Password:
   You are required to change your password immediately (root enforced)
   Changing password for dan
   (current) UNIX password:
   New password:
   Retype new password:
本文摘自redhat官方文档!
根据本人理解只需2步:
1、建立用户账户    2、强制用户帐号过期
若需清空账户只需将/etc/shadow中相应用户的密码字段(字段以“:”分隔,第二个字段)清空即可。
时间: 2024-11-01 04:48:15

Linux下强制新用户首次登录时修改密码的相关文章

Linux系统中如何强制新用户首次登陆后修改密码?

Linux系统中如何强制新用户首次登陆后http://www.aliyun.com/zixun/aggregation/6545.html">修改密码? 在管理Linux系统的过程中,我们新增了一个用户,但出于安全的考虑,要求新用户在首次登陆的时候进行密码的修改,我们可以通过以下命令实现: #useradd -p '' testuser; chage -d 0 testuser 示例: [root@localhost software]# useradd -p '' ithov; chag

如何实现共享软件网络授权认证,包括注册新用户、登录、修改密码等操作

开发共享软件,传统的是采用注册码验证方式,这种方式是大多数共享软件采用的方式,另外还有一种常见的验证方式,就是通过网络授权认证的方式,这种方式通过在程序中调用服务器的服务进行.一般具有验证用户名可用.注册新用户.用户登录认证.用户修改密码等操作,另外还需要配备一个网络授权入口给管理员对注册的用户进行授权控制. 这个是为了进行网络授权认证搭建的一个简单的管理后台,用户在共享软件客户端通过调用服务器的服务连接,可以注册一个新用户,或者进行登录获取身份信息(试用.已注册.已禁用等状态),还可以通过服务

Linux中禁止root用户SSH登录及修改SSH端口的方法

  1.禁止root用户登录ssh 代码如下: #vi /etc/ssh/sshd_config 把 代码如下: PermitRootLogin yes 改为 代码如下: PermitRootLogin no 重启sshd服务 代码如下: #service sshd restart 此时再使用root登录就会被提示拒绝: 代码如下: login as: root root@192.168.8.100's password: Access denied 2.修改ssh默认端口 代码如下: vi /

系统管理员-linux中当用户在登录时遇到无法登录的问题,或出现一些预期之外的错误时,会将数据记录在哪里

问题描述 linux中当用户在登录时遇到无法登录的问题,或出现一些预期之外的错误时,会将数据记录在哪里 如题当用户在登录时遇到无法登录的问题,或出现一些预期之外的错误时,会将数据记录在 什么地方,可用于让系统管理员排查问题 解决方案 查看系统log /var/log/syslog 解决方案二: 查看登录日志 命令: tail /var/log/secure 查看登录失败的用户信息 命令: lastb 解决方案三: log 下面没有secure那个文件啊 lastb 我的好像也只打印出了登录日期

自己写的一个java程序,怎么在linux下设置成用户登录后启动?

问题描述 自己写的一个java程序,怎么在linux下设置成用户登录后启动? 我自己目前的办法是自己写了一个脚本,内容是:#!/bin/bashcd /ablationjava -jar newablation130222_fat.jar &然后在桌面终端下vi ~/.bash_profile 按i在文档的最后加入sh /ablation/auto.sh按esc然后按:w 回车键 但是这个办法不是很好,我希望通过纯代码实现,或者写一个脚本让java调用这个脚本在实现,请问各位该怎么办啊

快速浏览Linux下基本的用户和用户组管理命令

Linux是个多用户多任务的分时操作系统,所有一个要使用系统资源的用户都必须先向系统管理员申请一个账号,然后以这个账号的身份进入系统.用户的账号一方面能帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问:另一方面也能帮助用户组织文件,并为用户提供安全性保护.每个用户账号都拥有一个惟一的用户名和用户口令.用户在登录时键入正确的用户名和口令后,才能进入系统和自己的主目录. 实现用户账号的管理,要完成的工作主要有如下几个方面: a.用户账号的添加.删除和修改. b.用户口令的管理. c

linux的tomcat配置-linux下非root用户在MyEclipse2014配置tomcat无法启动的问题!!!

问题描述 linux下非root用户在MyEclipse2014配置tomcat无法启动的问题!!! 我在linux下的MyEcpLise配置类tomcat7,但是启动时却显示: 二月 21, 2015 12:38:08 下午 org.apache.catalina.startup.Catalina load 警告: Unable to load server configuration from [/opt/tomcat7.0/conf/server.xml] 二月 21, 2015 12:3

linux系统中root用户不能登录怎么办?

问题描述 linux系统中root用户不能登录怎么办? 自从我更改了Linux系统的IP地址,root用户就不能登录了,root用户登录提示"鉴定故障".普通用户可以登录,能用su命令登录root用户,但是不能直接登录. 解决方案 如果没有给ROOT设置密码,就用普通用户登录,没有普通用户这是不可能的登录进入终端,直接输入 sudo passwd root输入普通用户密码输入你要设置的root密码重复root密码这样用root就行了 解决方案二: 终端输入:sudo gedit /us

linux下php添加mysqli拓展库时,编译报错

问题描述 linux下php添加mysqli拓展库时,编译报错 php和mysql都是已经编译安装好了,现在想要给php添加mysqli 拓展库,结果在make的时候报错 cd /usr/local/src/php-5.6.19/ext/mysqli /usr/local/php/bin/phpize ./configure --with-php-config=/usr/local/php/bin/php-config --with-mysqli=/usr/local/mysql/bin/mys