9.3.1 使用命令行工具:useradd和groupadd
在默认情况下,不带-m参数的useradd命令不会为新用户建立主目录。在这种情况下,用户可以登录到系统的Shell,但不能够登录到图形界面。这是因为桌面环境无论是KDE还是GNOME,需要用到用户主目录中的一些配置文件。例如,以下面的方式使用useradd命令添加一个用户nox。
$ useradd nox
$ passwd nox ##设置nox用户的口令
输入新的UNIX口令:
重新输入新的 UNIX 口令:
passwd:已成功更新密码
当使用nox用户账号登录GNOME时,系统会提示无法找到用户主目录,并拒绝登录,如图9.1和图9.2所示。
图9.1 无法找到用户主目录 图9.2 无法登录图形界面
如果在字符界面的2号控制台(可以使用快捷键Ctrl+Alt+F2进入。)使用nox账号登录,系统会引导nox用户进入根目录。此后,用户可以继续操作,如图9.3所示。
图9.3 登录2号控制台
useradd命令中另一个比较常用的参数是-g。该参数用于指定用户所属的组。下面这条命令建立名为mike的用户账号,并指定其属于users组。
$ sudo useradd -g users mike
在用户建立的时候为其指定一个组看上去是一个很不错的想法,但遗憾的是,这样的设置增加了用户由于不经意地设置权限而能够彼此读取文件的可能性,尽管这通常不是用户的本意。因此一个好的建议是,在新建用户的时候户单独创建一个同名的用户组,然后把用户归入这个组中——这正是不带-g参数的useradd命令的默认行为。
useradd的-s参数用于指定用户登录后所使用的Shell。下面的命令建立名为mike的用户账号,并指定其登录后使用bash作为Shell。
$ sudo useradd -s /bin/bash mike
可以在/bin目录下找到特定的Shell。常用的有BASH、TCSH、ZSH(Z-Shell)、SH(Bourne Shell)等。如果不指定-s参数,那么默认将使用sh(在大部分系统中,这是指向BASH的符号链接)登录系统。
添加组可以使用groupadd命令,下面这条命令在系统中添加一个名为newgroup的组。
$ sudo groupadd newgroup