Home操作系统linux:This account is currently not available.

linux:This account is currently not available.

问题:

用户存在但无效

~# useradd www
useradd:用户“www”已存在
~# su www
This account is currently not available.
~# cat /etc/passwd | grep www
www:x:1001:1001::/home/www:/sbin/nologin

解决方法:

~# vipw /etc/passwd

root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:997:User for polkitd:/:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
nscd:x:28:28:NSCD Daemon:/:/sbin/nologin
mysql:x:1000:1000::/home/mysql:/sbin/nologin
www:x:1001:1001::/home/www:/sbin/nologin

将www:x:1001:1001::/home/www:/sbin/nologin改成 www:x:1001:1001::/home/www:/bin/bash
保存退出

[root@~]# su www
[www@~ root]$

OK!


/etc/passwd中每列的含义

列,含义
1,用户名
2,用户的密码原来直接存储在第二字段,但是为了安全,最后专门有了/etc/shadow文件,现在默认用x替代
3,用户的uid,一般情况下root为0,1-499默认为系统账号,有的更大些到1000,500-65535为用户的可登录账号,有的系统从1000开始。
4,用户的gid,linux的用户都会有两个ID,一个是用户uid,一个是用户组id,在我们登录的时候,输入用户名和密码,其实会先到/etc/passwd查看是否有你输入的账号或者用户名,有的话将该账号与对应的UID和GID(在/etc/group中)读出来。然后读出主文件夹与shell的设置,然后再去检验密码是否正确,正确的话正常登录。
5,用户的账号说明解释
6,用户的家目录文件夹
7,用户使用的shell,如果换成/sbin/nologin/就是默认没有登录环境的。

上文提到/etc/shadow的每列的含义

~# cat /etc/shadow
root:$6$/3qoezj7NJPvOJN7C1:17704:0:99999:7:::
daemon:*:17677:0:99999:7:::
bin:*:17677:0:99999:7:::
sys:*:17677:0:99999:7:::
sync:*:17677:0:99999:7:::
games:*:17677:0:99999:7:::
man:*:17677:0:99999:7:::
lp:*:17677:0:99999:7:::
mail:*:17677:0:99999:7:::
news:*:17677:0:99999:7:::
messagebus:*:17704:0:99999:7:::
sshd:*:17704:0:99999:7:::
www:!:17708:0:99999:7:::
redis:*:17708:0:99999:7:::
mysql:!:17708:0:99999:7:::
列,含义
1,用户名
2,用户的密码加密字段
3,密码已经使用的日期(从1970-01-01开始,为什么?因为unix1969年发布雏形,基于当时对系统的考虑,就这样了)
4,密码最少多少天之后可以修改(例子中是3天之后,也就是修改一次3天之后才能再次修改)
5,密码多少天之后必须修改(例子中99999就是表明可以一直不用修改密码)
6,密码修改之前几天提醒我修改(例子中是7天之前)
7,要是没有修改延长几天(例子中延长3天)
8,要是没有修改延长几天(例子中延长3天)
9,保留字段,目前无含义
打赏

1 thought on “linux:This account is currently not available.

发表评论

电子邮件地址不会被公开。