在Solaris10中用户密码状态主要有四种,分别是PS、NL、LK、NP。
PS:表示用户密码已设置。
NL:表示用户帐号是不可登录帐号。
LK:表示用户已被锁定。
NP:表示用户没有密码,登录时不需要密码认证。
使用passwd -s username 命令可以查看用户帐号的密码状态。
下面看看几种状态的区别:
1. NL与LK的区别
LK是表示用户已被锁定。除了无法登录外,被锁定的用户还无法执行cron等后台任务。
NL表示用户帐号是不可登录的,login, telnet, ftp, ssh等都不能执行。但可以执行后台任务。适合于不允许登录但允许执行cron job的用户。
2. NL与NP的区别
NL是不可登录的账号,但NP是不需要密码就能登录。另外需要说明的是:在建立用户帐号且未设置密码时状态不是NP而是LK。
相关的操作命令:
passwd -s username 查看用户账号状态
passwd -l username 锁定用户账号
passwd -u username 解锁用户账号
passwd -N username 将用户账号变为不可登录账号,但不锁定。相当于将状态变为NL
passwd -d username 删除密码,解锁账号。相当于将状态变为NP
以下是solaris10四种用户密码状态转换图。
用户由PS状态转换为LK状态常见的原因是设置了系统安全策略(如lock_after_retries参数),当条件符合时用户会被系统自动锁定。
另一种方式就是使用passwd –l username命令设置。
root@jumpstart:/ #>passwd -s jyu
jyu PS
root@jumpstart:/ #>
root@jumpstart:/ #>grep jyu /etc/shadow
jyu:02ys0CwD8q0Pk:15383::::::
root@jumpstart:/ #>grep jyu /etc/passwd
jyu:x:100:1::/export/home/jyu:/bin/bash
root@jumpstart:/ #>grep jyu /etc/user_attr
jyu::::type=normal;profiles=Printer Management用户初始状态是PS, 设置了用户密码。
root@jumpstart:/ #>passwd -l jyu
passwd: password information changed for jyuroot@jumpstart:/ #>passwd -s jyu
jyu LKroot@jumpstart:/ #>grep jyu /etc/shadow
jyu:*LK*02ys0CwD8q0Pk:15383::::::
root@jumpstart:/ #>grep jyu /etc/passwd
jyu:x:100:1::/export/home/jyu:/bin/bash
root@jumpstart:/ #>grep jyu /etc/user_attr
jyu::::type=normal;profiles=Printer Management使用命令锁定用户后,用户状态变为LK. 并且/etc/shadow中也增加了LK标志.
LK – > PS :
LK状态一般可分为两种情况,一是锁定的用户原来设过密码,二是锁定的用户无密码。这两种情况可以从/etc/passwd文件分辨出来。方法是看/etc/shadow中是否有加密密码部分,如果有则说明用户原来设过密码,如果没有则说明用户原来未设置过密码。例如:
root@jumpstart:/ #>grep jyu /etc/shadow
jyu:*LK*02ys0CwD8q0Pk:15383::::::用户原来设过密码。其中LK表示用户是“锁定”状态,02ys0CwD8q0Pk是加过密的用户密码
root@jumpstart:/ #>grep jyu /etc/shadow
jyu:*LK*:15383::::::用户原来没设过密码。其中LK表示用户是“锁定”状态,没有加密密码说明用户没设密码。(新建用户未设置密码时就是这种状态)
将用户状态由LK转换为PS一般有两种方法:一是使用passwd -u命令为用户解锁,二是为用户新设密码。方法二与solaris的版本有关。根据我的测试,在Solaris10u9上可以使用方法二,而Solaris10u10上方法二无效。
对于用户原来有密码的情况,建议使用passwd -u命令为用户解锁,解锁后用户密码不改变,用户原密码仍可用。当然也可以为用户重设密码,若新设密码与原密码不一致,设置后还需要通知用户新密码,否则使用原密码无法登录。
对于用户原来没有密码的情况,建议为用户重设密码。如果使用passwd -u为用户解锁,则用户状态会变成NP,即不用密码就可以登录,当用户登录时,系统会提示设置新密码。
root@jumpstart:/ #>passwd -s jyu
jyu LKroot@jumpstart:/ #>grep jyu /etc/shadow
jyu:*LK*02ys0CwD8q0Pk:15383::::::
root@jumpstart:/ #>grep jyu /etc/passwd
jyu:x:100:1::/export/home/jyu:/bin/bash
root@jumpstart:/ #>grep jyu /etc/user_attr
jyu::::type=normal;profiles=Printer Management用户初始状态为LK,且设置过密码
root@jumpstart:/ #>passwd -u jyu
passwd: password information changed for jyu
root@jumpstart:/ #>passwd -s jyu
jyu PS
root@jumpstart:/ #>grep jyu /etc/shadow
jyu:02ys0CwD8q0Pk:15383::::::
root@jumpstart:/ #>grep jyu /etc/passwd
jyu:x:100:1::/export/home/jyu:/bin/bash
root@jumpstart:/ #>grep jyu /etc/user_attr
jyu::::type=normal;profiles=Printer Management使用passwd –u解锁后状态变成PS,用户密码未改变。
PS –> NP:
使用passwd -d命令可以将用户状态由PS转换为NP.
root@jumpstart:/ #>passwd -s jyu
jyu PS
root@jumpstart:/ #>grep jyu /etc/passwd
jyu:x:100:1::/export/home/jyu:/bin/bash
root@jumpstart:/ #>grep jyu /etc/shadow
jyu:TIcJl0DQ58els:15383::::::
root@jumpstart:/ #>grep jyu /etc/user_attr
jyu::::type=normal;profiles=Printer Management用户初始状态为PS
root@jumpstart:/ #>passwd -d jyu
passwd: password information changed for jyu
root@jumpstart:/ #>passwd -s jyu
jyu NP
root@jumpstart:/ #>grep jyu /etc/passwd
jyu:x:100:1::/export/home/jyu:/bin/bash
root@jumpstart:/ #>grep jyu /etc/shadow
jyu::15383::::::
root@jumpstart:/ #>grep jyu /etc/user_attr
jyu::::type=normal;profiles=Printer Management使用passwd -d命令使用用户状态由PS转换为NP. 注意此时/etc/shadow中没有加密密码部分,也说明用户没有密码. 此晨用户登录不需要密码验证。
NP –> PS:
为用户设置密码后,状态即由NP转换为PS.
root@jumpstart:/ #>passwd -s jyu
jyu NP
root@jumpstart:/ #>grep jyu /etc/passwd
jyu:x:100:1::/export/home/jyu:/bin/bash
root@jumpstart:/ #>grep jyu /etc/shadow
jyu::15383::::::
root@jumpstart:/ #>grep jyu /etc/user_attr
jyu::::type=normal;profiles=Printer Management初始状态为NP.
root@jumpstart:/ #>passwd jyu
New Password:
Re-enter new Password:
passwd: password successfully changed for jyu
root@jumpstart:/ #>
root@jumpstart:/ #>passwd -s jyu
jyu PS
root@jumpstart:/ #>grep jyu /etc/passwd
jyu:x:100:1::/export/home/jyu:/bin/bash
root@jumpstart:/ #>grep jyu /etc/shadow
jyu:uHwarumWL5eDA:15383::::::
root@jumpstart:/ #>grep jyu /etc/user_attr
jyu::::type=normal;profiles=Printer Management设置用户密码后,状态由NP转换为PS.
NP –> LK:
使用passwd -l命令可将用户状态由NP转换为LK.
root@jumpstart:/ #>passwd -s jyu
jyu NP
root@jumpstart:/ #>grep jyu /etc/passwd
jyu:x:100:1::/export/home/jyu:/bin/bash
root@jumpstart:/ #>grep jyu /etc/shadow
jyu::15383::::::
root@jumpstart:/ #>grep jyu /etc/user_attr
jyu::::type=normal;profiles=Printer Management用户初始状态为NP.
root@jumpstart:/ #>passwd -l jyu
passwd: password information changed for jyuroot@jumpstart:/ #>passwd -s jyu
jyu LKroot@jumpstart:/ #>grep jyu /etc/passwd
jyu:x:100:1::/export/home/jyu:/bin/bash
root@jumpstart:/ #>grep jyu /etc/shadow
jyu:*LK*:15383::::::
root@jumpstart:/ #>grep jyu /etc/user_attr
jyu::::type=normal;profiles=Printer Management使用passwd -l命令将用户由NP状态变为LK状态。注意此时/etc/shadow中没有加密密码部分,说明用户没有密码。创建用户未设置密码之前,用户就是这种lock且无密码状态。
LK –> NP:
LK分为lock无密码状态和lock有密码状态。两种状态下都可以使用passwd -d命令将用户状态由LK变为NP. 另外在lock无密码状态,还可以使用passwd -u命令将用户状态由LK变成NP.
lock无密码状态:(使用passwd -d命令)
root@jumpstart:/ #>passwd -s jyu
jyu LK
root@jumpstart:/ #>
root@jumpstart:/ #>grep jyu /etc/passwd
jyu:x:100:1::/export/home/jyu:/bin/bash
root@jumpstart:/ #>grep jyu /etc/shadow
jyu:*LK*:15383::::::
root@jumpstart:/ #>grep jyu /etc/user_attr
jyu::::type=normal;profiles=Printer Management初始为LK无密码状态.
root@jumpstart:/ #>passwd -d jyu
passwd: password information changed for jyu
root@jumpstart:/ #>passwd -s jyu
jyu NP
root@jumpstart:/ #>grep jyu /etc/passwd
jyu:x:100:1::/export/home/jyu:/bin/bash
root@jumpstart:/ #>grep jyu /etc/shadow
jyu::15383::::::
root@jumpstart:/ #>grep jyu /etc/user_attr
jyu::::type=normal;profiles=Printer Managementpasswd -d命令将用户由LK状态变为NP状态。
lock无密码状态:(使用passwd -u命令)
root@jumpstart:/ #>passwd -s jyu
jyu LK
root@jumpstart:/ #>grep jyu /etc/passwd
jyu:x:100:1::/export/home/jyu:/bin/bash
root@jumpstart:/ #>grep jyu /etc/shadow
jyu:*LK*:15383::::::
root@jumpstart:/ #>grep jyu /etc/user_attr
jyu::::type=normal;profiles=Printer Management初始状态为LK无密码.
root@jumpstart:/ #>passwd -u jyu
passwd: password information changed for jyu
root@jumpstart:/ #>passwd -s jyu
jyu NP
root@jumpstart:/ #>grep jyu /etc/passwd
jyu:x:100:1::/export/home/jyu:/bin/bash
root@jumpstart:/ #>grep jyu /etc/shadow
jyu::15383::::::
root@jumpstart:/ #>grep jyu /etc/user_attr
jyu::::type=normal;profiles=Printer Management使用passwd -u命令将用户由LK无密码变为NP状态.
lock有密码状态:
root@jumpstart:/ #>passwd -s jyu
jyu LK
root@jumpstart:/ #>grep jyu /etc/passwd
jyu:x:100:1::/export/home/jyu:/bin/bash
root@jumpstart:/ #>grep jyu /etc/shadow
jyu:*LK*fk5mPrjIYPsxc:15383::::::
root@jumpstart:/ #>grep jyu /etc/user_attr
jyu::::type=normal;profiles=Printer Management初始状态为LK有密码.
root@jumpstart:/ #>passwd -d jyu
passwd: password information changed for jyu
root@jumpstart:/ #>passwd -s jyu
jyu NP
root@jumpstart:/ #>grep jyu /etc/passwd
jyu:x:100:1::/export/home/jyu:/bin/bash
root@jumpstart:/ #>grep jyu /etc/shadow
jyu::15383::::::
root@jumpstart:/ #>grep jyu /etc/user_attr
jyu::::type=normal;profiles=Printer Managementpasswd -d命令将用户由LK状态变为NP状态。
NP –> NL:
passwd -N命令可以将用户由NP状态变为NL状态。
root@jumpstart:/ #>passwd -s jyu
jyu NP
root@jumpstart:/ #>grep jyu /etc/passwd
jyu:x:100:1::/export/home/jyu:/bin/bash
root@jumpstart:/ #>grep jyu /etc/shadow
jyu::15383::::::
root@jumpstart:/ #>grep jyu /etc/user_attr
jyu::::type=normal;profiles=Printer Management初始状态为NP.
root@jumpstart:/ #>passwd -N jyu
passwd: password information changed for jyu
root@jumpstart:/ #>passwd -s jyu
jyu NL
root@jumpstart:/ #>grep jyu /etc/passwd
jyu:x:100:1::/export/home/jyu:/bin/bash
root@jumpstart:/ #>grep jyu /etc/shadow
jyu:NP:15383::::::
root@jumpstart:/ #>grep jyu /etc/user_attr
jyu::::type=normal;profiles=Printer Management使用passwd -N将用户状态变为NL. 注意此时/etc/shadow中密码处显示为NP. 此NP与passwd -s显示的NP意义应该是不同的。我理解/etc/shadow中的NP等同于NL,可以理解为No Permission. 用户是否有密码应该是通过/etc/shadow中有无加密密码串来判断,而不是通过“NP”标志。
NL –> NP:
passwd -d命令可以将用户由NL状态变为NP状态。
root@jumpstart:/ #>passwd -s jyu
jyu NL
root@jumpstart:/ #>grep jyu /etc/passwd
jyu:x:100:1::/export/home/jyu:/bin/bash
root@jumpstart:/ #>grep jyu /etc/shadow
jyu:NP:15383::::::
root@jumpstart:/ #>grep jyu /etc/user_attr
jyu::::type=normal;profiles=Printer Management初始为NL状态.
root@jumpstart:/ #>passwd -d jyu
passwd: password information changed for jyu
root@jumpstart:/ #>passwd -s jyu
jyu NP
root@jumpstart:/ #>grep jyu /etc/passwd
jyu:x:100:1::/export/home/jyu:/bin/bash
root@jumpstart:/ #>grep jyu /etc/shadow
jyu::15383::::::
root@jumpstart:/ #>grep jyu /etc/user_attr
jyu::::type=normal;profiles=Printer Managementpasswd -d命令可以将用户变为NP状态.
LK –> NL:
无论用户状态是lock无密码或lock有密码,passwd –N 都可以将用户由LK状态变为NL状态。
lock无密码情况:
root@jumpstart:/ #>passwd -s jyu
jyu LK
root@jumpstart:/ #>grep jyu /etc/passwd
jyu:x:100:1::/export/home/jyu:/bin/bash
root@jumpstart:/ #>grep jyu /etc/shadow
jyu:*LK*:15383::::::
root@jumpstart:/ #>grep jyu /etc/user_attr
jyu::::type=normal;profiles=Printer Management用户初始状态为lock无密码.
root@jumpstart:/ #>passwd -N jyu
passwd: password information changed for jyu
root@jumpstart:/ #>passwd -s jyu
jyu NL
root@jumpstart:/ #>grep jyu /etc/passwd
jyu:x:100:1::/export/home/jyu:/bin/bash
root@jumpstart:/ #>grep jyu /etc/shadow
jyu:NP:15383::::::
root@jumpstart:/ #>grep jyu /etc/user_attr
jyu::::type=normal;profiles=Printer Managementpasswd -N命令将用户变为NL状态.
lock有密码情况:
root@jumpstart:/ #>passwd -s jyu
jyu LK
root@jumpstart:/ #>grep jyu /etc/passwd
jyu:x:100:1::/export/home/jyu:/bin/bash
root@jumpstart:/ #>grep jyu /etc/shadow
jyu:*LK*FSzVP0tNiiXJI:15383::::::
root@jumpstart:/ #>grep jyu /etc/user_attr
jyu::::type=normal;profiles=Printer Management初始状态为lock有密码状态.
root@jumpstart:/ #>passwd -N jyu
passwd: password information changed for jyu
root@jumpstart:/ #>passwd -s jyu
jyu NL
root@jumpstart:/ #>grep jyu /etc/passwd
jyu:x:100:1::/export/home/jyu:/bin/bash
root@jumpstart:/ #>grep jyu /etc/shadow
jyu:NP:15383::::::
root@jumpstart:/ #>grep jyu /etc/user_attr
jyu::::type=normal;profiles=Printer Managementpasswd -N命令将用户状态由lock有密码变为NL状态.
NL –> LK:
目前还没有找到由NL状态直接转换成LK的命令或方法。可以通过PS或NP作为中间状态,间接进行转换。
PS –> NL:
使用passwd -N命令可以将用户由PS状态变为NL状态。
root@jumpstart:/ #>passwd -s jyu
jyu PS
root@jumpstart:/ #>grep jyu /etc/passwd
jyu:x:100:1::/export/home/jyu:/bin/bash
root@jumpstart:/ #>grep jyu /etc/shadow
jyu:qTpgBTG2yIQ8w:15383::::::
root@jumpstart:/ #>grep jyu /etc/user_attr
jyu::::type=normal;profiles=Printer Management初始状态为PS状态.
root@jumpstart:/ #>passwd -N jyu
passwd: password information changed for jyu
root@jumpstart:/ #>passwd -s jyu
jyu NL
root@jumpstart:/ #>grep jyu /etc/passwd
jyu:x:100:1::/export/home/jyu:/bin/bash
root@jumpstart:/ #>grep jyu /etc/shadow
jyu:NP:15383::::::
root@jumpstart:/ #>grep jyu /etc/user_attr
jyu::::type=normal;profiles=Printer Management使用passwd -N命令可以将用户变为NL状态.
NL –> PS:
此转换也与Solaris版本有关,在Solaris10U10上没有找到直接转换的办法,只能通过NP作为中间状态进行间接转换。而在Solaris10U9上可以通过passwd username重设密码的方式直接转换。
备注:根据Solaris10版本的不同,以上有些状态变化可能有所不同。上述示例都是在Solaris10U10上的测试结果。