在linux中,每个普通用户都有一个帐户,包括用户名、密码和主目录等信息。除此之外,还有一些系统本身创建的特殊用户,它们具有特殊的意义。其中最重要的是超级用户,在linux中,它默认用户名是root。
◆基本操作
● 增加一个用户newuser :
useradd newuser
passwd newuser (然后根据提示两次输入新用户的密码。)
注意点 用useradd增加一个用户后应该立刻用passwd给新用户修改密码,没有密码的新帐号将不能使用。在/etc/passwd文件中,没有密码的新用户的记录是如下一行:
newuser:!!:506:506::/home/newuser:/bin/bash
在这一行里,用户的密码域被设置成了“!!”,这就意味着用户口令还没有设置,用户不能登陆。(passwd文件的格式是 用户名:密码:用户ID(UID):组ID(GID):全名:用户目录:外壳脚本)。
当然你可以用-d开关设置新用户的主目录(例如:useradd newuser –d /www),也可以用-g开关为用户指定新组名(例如:useradd newuser –g linuxusers),你还可以用-G开关把新用户设成系统其它一些组的成员(例如:useradd newuser –G users,shutdown)。所有这些,你都可以在本站的命令查询中得到详细信息。
附注:相应的,仅仅增加一个新组可以用命令groupadd。
●修改现有用户的帐号:
1、 修改密码
普通用户可以用passwd修改自己的密码,只有管理员才能用passwd username为其它用户修改密码。
2、 修改用户shell设置
使用chsh命令可以修改自己的shell,只有管理员才能用chsh username为其它用户修改shell设置。注意,指定的shell必须是列入/etc/shells文件中的shell,否则该用户将不能登陆。
你也可以使用usermod命令修改shell信息,如下所示:
usermod –s (new shell path) (username)
其中new shell path和username应取相应的值。
3、 修改主目录设置
usermod –d (new home directory) (username)
如果想将现有主目录的主要内容转移到新的目录,应该使用-m开关,如下所示:
usermod –d –m /www/newuser newuser
4、 修改UID
usermod –u UID username
主目录中所有该用户所拥有的文件和目录都将自动修改UID设置。但是,对于主目录外该用户所拥有的文件,只能手工用chown命令修改所有权设置。
5、 修改默认组设置
username –g (group name) or GID username
6、 修改帐号的有效期
如果使用了影子口令,则可以使用如下命令来修改一个帐号的有效期:
usermod –e MM/DD/YY username
例如把用户newuser的有效期定为12/31/01:
usermod –e 12/31/01 newuser
7、 删除或禁止用户帐号
使用userdel命令删除现有用户。例如,下面的命令将删除bluewind用户:
usedel bluewind
如果想同时删除该用户的主目录以及其中所有内容,要使用-r开关来递归删除。值得注意的是你无法删除已经进入系统的用户,如果想强行完成,需要先killall有关它的进程,然后再运行userdel命令。
如果只是想暂时禁止某个帐号,可以使用下列方法:
a、 使用无效的shell。例如使用usermod –s newshell username将用户的 shell改为/bin/false(最好把它列入/etc/shells文件里)。
b、 使该帐号过期。如果使用影子口令,可使用usermod –e MM/DD/YY username命令使该帐号过期。
如果想禁止所有帐号(root帐号当然除外)的访问,可以创建一个名为/etc/nologin的文件,说明系统暂时不允许访问。注意,确认你还能用root直接登陆才使用这个办法,否则你惨了。
本文中的所有命令都可以在linuxaid获得中文详细的帮助。下一个部分我们讲述用户管理的高级内容。