linux修改密码命令?Linux设置密码
linux passwd命令
linux系统中passwd命令是用来修改用户密码的命令,下面是passwd命令的具体介绍:
1、passwd命令简介:
linux系统中passwd命令是用来修改用户密码的命令。普通用户仅能修改自己的密码,超级用户可以修改任意账户的密码,也可以改变相关账户密码的有效期,超级用户可以不输入待修改用户的密码。
2、语法:
passwd [options] [LOGIN]
3、选项:
-a,--all
与-S搭配使用,显示所有用户状态
-d,--delete
删除用户密码
-e,--expire
使用户密码立即失效,强制用户下次登录时修改密码
-h,--help
显示帮助信息并退出
-i,--inactive INACTIVE
当账户失效INACTIVE天后,用户无法再使用该账户登录
-n,--mindays MIN_DAYS
密码两次修改的时间至少间隔MIN_DAYS天,若MIN_DAYS为0,则表示可在任意时刻进行修改
-S,--status
显示账户状态信息,共有7个字段,分别是登录名、L(P or NP)、上次修改时间、最小年龄、最大年龄、警告期、inactive period。这些ages的单位都是天。
-w,--warndays WARN_DAYS
密码失效前WARN_DAYS天发出警告
-x,--maxdays MAX_DAYS
设置密码最长的有效期
4、文件:
/etc/passwd
用户账户信息
/etc/shadow
加密用户账户信息
/etc/pam.d/passwd
passwd的PAM配置
Linux修改用户密码的命令是
在Unix/Linux系统中,passwd这个指令可以用来变更使用者的密码,对于一般使用者而言(非root),执行passwd之后,会需要输入目前现行的密码,才可以允许密码的变更;而如果是root管理者的话,则可以在不需要现行密码的情况下,变更任何使用者的密码(包含root自己的密码)。
变更使用者密码
一般的使用者执行passwd即可变更自己的密码:
如果是root管理者的话,可以变更任何使用者的密码:
sudo passwd xxx
如果变更root管理者的密码,就跟一般使用者一样直接执行passwd即可。
显示密码状态资讯
若要显示密码的状态资讯,可以加上-S参数:
这个输出包含七个栏位:
帐号名称。
密码状态,状态包含锁定密码(L)、无密码(NP)与可用密码(P)。
上次修改密码的时间。
密码最短使用期限(minimum password age),单位为天。
密码最长使用期限(maximum password age),单位为天。
密码过期前警告期间(password warning period),单位为天。
密码过期后可使用的期间(password inactivity period),单位为天。
如果是root管理者,则可以查看特定使用者的密码资讯:
sudo passwd-S gtwang
root管理者可以使用-aS参数查阅所有使用者的密码状态资讯:
sudo passwd-a
移除使用者的密码
若要移除使用者的密码,可以使用-d参数,并加上使用者的名称:
sudo passwd-d xxxx
移除使用者的密码之后,可以检查一下状态资讯:
sudo passwd-S xxxx
xxxx NP 09/30/2015 0 99999 7-1
在密码被移除之后,该使用者的帐号也会同时被停用,无法登入。
设定密码为过期状态
有时候因为某些原因(像是重新设定密码之后),我们会希望使用者立刻更改自己的密码,这时候我们可以使用-e参数:
sudo passwd-e xxx
passwd: password expiry information changed.
检查一下状态资讯:
sudo passwd-S xxx
xxx P 01/01/1970 0 99999 7-1
这时候如果使用者使用SSH登入的话,系统就会强制变更密码:
详解Linux中的用户密码管理命令passwd和change
passwd
修改用户密码
参数
-k保持未过期身份验证令牌
-l关闭账号密码。效果相当于usermod-L,只有root才有权使用此项。
-u恢复账号密码。效果相当于usermod-U,同样只有root才有权使用。
-g修改组密码。gpasswd的等效命令。
-f更改由finger命令访问的用户信息。
-d关闭使用者的密码认证功能,使用者在登入时将可以不用输入密码,只有具备 root权限的使用者方可使用.
-S显示指定使用者的密码认证种类,只有具备 root权限的使用者方可使用.
passwd是个文本文件,它包含了一个系统帐户列表,给出每个帐户一些有用的信息,比如用户 ID,组 ID,家目录, shell,等.通常它也包含了每个用户经过加密的密码.它通常应该是可读的(许多命令,工具程序,象 ls(1)用它做用户 Id到用户名称的映射),但是只允许超级用户有写方式权限.
在过去美好的日子里,这种一般的读许可没有什么大问题.每个人都能读到加密了的密码,因为硬件太慢以至于不能解开一个精选的密码,另外,这基本假定是为友好的使用团体使用的.现在,许多人运行一些版本的影子密码套件,它们在/etc/passwd的密码域里是*,而不再是加密的口令,加密的口令放在/etc/shadow中,那个文件只有超级用户能读.
不管是否使用了影子密码,许多系统管理员使用一个星号在加密的密码字段以确保用户不能鉴别他(她)自己的密码.(见下面的注意)
如果你建立了一个新的登录,首先放个星号在密码字段,然后使用 passwd(1)设置它.
(密码文件)里每行一条记录,并且每行有这样的格式:
account
password:UID:GID:GECOS:directory:shell(帐号:密码:用户ID:组ID:一般的信息:目录:shell)
字段描述如下:
account
使用者在系统中的名字,它不能包含大写字母.
password
加密的用户密码,或者星号。
UID
用户 ID数。
GID
用户的主要组 ID数。
GECOS
这字段是可选的,通常为了存放信息目的而设的.通常,它包含了用户的全名. GECOS意思是通用电气综合操作系统(General Electric Comprehensive Operating System),当 GE的大型系统部分割售卖给 Honeywell时它被改为 GCOS. Dennis Ritchie作过报告:有时我们发送印刷品或批道作业到 GCOS机器时,gcos字段打断了$IDENT卡的信息,不太美观。(译者:我想是太长吧)
directory
用户的$HOME目录.
shell
登录时运行的程序(如果空的,使用/bin/sh).如果设为不存在的执行(程序),用户不能通过 login(1)登录.
注意
如果你想建立用户组,他们的 GID必须相等并且一定是在/etc/group的一条记录,要不然组就不存在.
如果加密密码设成星号,用户将不能用 login(1)来登录,但依然可以用 rlogin(1)登录,通过 rsh(1)或者 cron(1)或者 at(1)或者 mail过滤器等程序运行已有的进程和开始新的等.试图通过简单改变 shell
字段锁住一个用户结果是一样的,而且还附上了使用 su(1)的权限.
例:
代码如下:
[root@Blackghost~] passwd zhangying #给zhangying修改密码
chage
密码失效是通过此命令来管理的。
参数意思:
-m密码可更改的最小天数。为零时代表任何时候都可以更改密码。
-M密码保持有效的最大天数。
-W用户密码到期前,提前收到警告信息的天数。
-E帐号到期的日期。过了这天,此帐号将不可用。
-d上一次更改的日期
-I停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。
-l例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。
例1:
代码如下:
[root@localhost~]# chage-l zhangy #查看用户密码设定情况
最近一次密码修改时间: 4月 27, 2013
密码过期时间:从不
密码失效时间:从不
帐户过期时间:从不
两次改变密码之间相距的最小天数:-1
两次改变密码之间相距的最大天数:-1
在密码过期之前警告的天数:-1
代码如下:
[root@localhost~]# chage-M 90 zhangy #密码有效期90天
代码如下:
[root@localhost~]# chage-d 0 zhangy #强制用户登陆时修改口令
代码如下:
[root@localhost~]# chage-d 0-m 0-M 90-W 15 zhangy #强制用户下次登陆时修改密码,并且设置密码最低有效期0和最高有限期90,提前15天发警报提示
例2:
代码如下:
# chage-E'2014-09-30' test # test这个账号的有效期是2014-09-30