在Linux下与用户和组管理相关的配置文件都存储在/etc目录下,主要有:
[list]
[*]/etc/passwd:以行分割的用户信息,对所有用户都是可读的。
[*]/etc/shadow:实际存储密码的文件,用户不可读。
[*]/etc/group: 以行分割的用户组信息,对所有用户可读。
[/list]
/etc/passwd是管理用户帐号的基本文件,包含了用户名,用户信息等。如对应root用户行:
root:x:0:0:root:/root:/bin/bash
每一行都以冒号分割成了七个部分,对应上面的root行为:
用户名:加密的密码:用户ID:组ID:用户信息描述:用户主目录:登陆shell
一般在passwd文件的加密密码拦看到的是一个“x”,这是因为实际的密码存储在了/etc/shadow文件中。
/etc/shadow是保存了密码的影子文件,只对root可读,保证系统安全性,仍以root为例:
root:$1$Nm0i1Eva$uUWqQ3cX0VA0a.aB5sMUr1:12357:0:99999:7:::
shadow文件中的每一行被冒号分割成了九段,分别为:
用户名:加密后口令:密码最近修改天数:设定口令多少天内不能修改:口令多少天后必须修改:口令过期多少天后将被禁止:口令到期多少天内给用户警告:口令被禁止的天数:保留域
/etc/group包含了用户组的相关信息,其中每一行以冒号分割成四个域,如:
daemon::2:root,bin,daemon
分别为:
组名称:组密码:组ID:组用户(以逗号分割)
在Linux下添加新用户需要root权限,可以通过useradd或adduser(事实上adduser是指向useradd的链接)命令来添加新用户。
举个例子:
#useradd newuser
在添加了用户后需要用passwd修改初始密码使用户能够登陆,root用户使用passwd UserName修改对应用户的密码,如:
[root@epaul root]# passwd newuser Changing password for user newuser. New UNIX password: ******** Retype new UNIX password: ******** passwd: all authentication tokens updated successfully.
您实际看到的情况与此会有所不同,默认的密码是不显示的,而这里用********表示。
useradd命令还有很多有用的选项,比如我们在添加用户的同时指定其密码为newpasswd:
#useradd magicuser -p newpasswd
这样用户magicuser可以使用密码newpasswd登陆,然后使用passwd命令修改自己的密码。
#useradd mysql -u 3306 -c "MySQL Daemon" -d /usr/local/mysql -g 3306 -s /bin/false;
上面的命令添加了一个用户mysql,指定其用户ID为3306,用户描述信息为“MySQL Daemon”,用户目录为/usr/local/mysql,所属组为3306,登陆shell为/bin/false即不允许登陆。需要注意的是这里的ID为3306的组必须是系统中已经存在的。
将/etc/passwd/或/etc/shadow中关于该用户的passwd域第一个字符前加上一个“*”达到禁止一个用户的目的。在需要恢复的时候只要删除这个“*”。
如果只是禁止一个用户登陆,可以将其登陆shell设置为/bin/false或者是/dev/null。
删除一个用户需要删除/etc/passwd、/etcshadow、/etc/group中与此用户相关的信息,另外还需要删除用户的主目录,属于此用户的其它文件。如删除我们前面添加的newuser以及用户主目录:
[root@epaul root]# userdel -r newuser
评论
建议,把useradd等命令
建议,把useradd等命令的其他参数也尽可能写的详细点,这样用户看起来会有个比较的选择:)