今早试着为我的机子添加一个guest账户,以便方便其他同学的使用。因此我用useradd命令来创建一个guest账户:
edsionte@edsionte-desktop:~$ sudo useradd -d /home/test test
上述命令在系统中创建了一个test用户,并且通过-d选项为该用户指定了登录后的主目录/home/test。创建成功后,该用户的账户信息会保存在/etc/passwd文件当中。/etc/passwd文件用来保存系统中当前所有的用户信息,该文件对所有用户都可见。比如:
…… edsionte:x:1000:1000:edsionte,,,:/home/edsionte:/bin/bash guest:x:1001:1001:guest,,,,:/home/guest:/bin/bash test:x:1002:1002::/home/test:/bin/sh ……
在该文件中,每行信息代表一个用户。每个用户的信息由7部分组成:
用户名:加密后的用户密码:用户ID(UID):用户所在组ID(GID):用户全名以及用户信息:用户主目录:该用户登录时所用的命令解释器
从上面test用户的信息可以看到,除了我们显式指定的用户主目录,其余信息都是系统默认的。比如UID和GID相同,test用户的命令解释器选用sh。
用户创建后,还必须为test指定一个登录密码。指定和修改用户密码的命令是passwd。普通用户使用该命令只能对自己修改密码,而超级用户则可以对任何用户修改密码。我们当前的用户为edsionte,通过下面的命令即可为test指定密码:
edsionte@edsionte-desktop:~$ sudo passwd test 输入新的 UNIX 密码: 重新输入新的 UNIX 密码: passwd:已成功更新密码
由于我们在edsionte用户下去修改test用户的密码,因此必须加sudo使用超级用户权限。
到此位置,test用户就创建完毕了,可是登录到test用户下,打开终端后却出现了以下几个问题:
1.打开终端后,提示信息仅为“$”,并不想通常我们所见到的“edsionte@edsionte-desktop:~$”;
2.在终端使用TAB键后不能自动补全命令,而是TAB健本身的效果;
原来这两个问题与我们刚才指定的命令解释器有关,通常我们使用的shell为bash,而useradd命令默认指定的shell为sh。通过usermod命令可以修改一个用户的相关信息,因此我们在test用户下通过下面的命令修改shell即可:
usermod -s /bin/bash
注销并重新登录test后就可以看到我们通常所熟悉的终端。