author:张继飞
最近编译busybox ,使用telnetd 与telnet,本地跑起来telnetd后,远程telnet登录,遇到了用户名密码的问题。这里需要我们在本地添加,方法就是adduser,在Linux系统中,adduser是useradd的虚链接,所以两者是相同的。若要删除用户,使用userdel(groupdel)username。
在本地运行起来telnetd后,添加一个admin用户。
# adduser admin
adduser: /home/admin: No such file or directory
Changing password for admin
New password: //此处根据提示输入密码
Bad password: too weak
Retype password: //重复输入密码
Password for admin changed by root
下面看一下/etc/password里面是否已经添加了刚创建的用户。
# cat /etc/passwd
root:x:0:0:root:/tmp:/bin/sh
admin:x:1000:1000:Linux User,,,:/home/admin:/bin/sh
#
ok,添加成功。下面就可以远程telnet登录我们本机了。
Linux下使用adduser 只添加用户名,(若跟 参数-p 可以添加密码,但密码是明文)。同时,可以使用passwd username添加密码,这里密码是加密的。如下:
[root@localhost ~]# passwd admin
Changing password for user admin.
New UNIX password: //为用户admin输入密码
Retype new UNIX password: //重复输入密码
passwd: all authentication tokens updated successfully.
[root@localhost ~]#
在说说/etc/password,格式是这样子的
LOGNAME:PASSWORD:UID:GID:USERINFO:HOME:SHELL
LOGNAME 用户登录名
PASSWORD 已过时,加密的密码存储在/etc/shadow中,这里都是x
UID 用户ID,任何拥有0值UID的用户都具有根用户(系统管理员)访问权限,通常,UID是这个特殊值的用户的登录名是“root”,500是默认的第一个新建用户的ID
GID 用户组ID,同上
USERINFO 备注信息
HOME 用户home目录路径,即用户的工作目录
SHELL 给用户指定的shell程序
用户账户文件——/etc/passwd文件是Unix安全的关键文件之一。这个文件的每一行保存一个用户的资料。
由于/etc/passwd文件是全局可读的,而且口令加密的算法是公开的,如果有恶意用户取得了/etc/passwd文件,便可以穷举所有可能的明文通过相同的算法计算出密文进行比较,直到相同,从而破解口令。因此,针对这种安全问题,Linux/Unix广泛采用了“shadow(影子)文件”机制,将加密的口令转移到/etc/shadow文件里,该文件只为root超级用户可读,而同时/etc/passwd文件的密文域显示为一个x,从而最大限度地减少了密文泄露的机会。/etc/shadow文件的每行是8个冒号分割的9个域,格式如下。
username: passwd: lastchg: min: max: warn: inactive: expire: flag
其中,各个域表示如下含义: 用户登录名、加密的用户口令、从1970年1月1日起到上次修改口令所经过的天数、两次修改口令之间至少经过的天数、口令还会有效的最大天数(如果是99999则表示永不过期)、口令失效前多少天内系统向用户发出警告、禁止登陆前用户名还有效的天数、用户被禁止登陆的时间、保留字段(暂未使用)。