Linux中用户与用户组管理
Linux中用户与用户组管理
一、用户管理
1.建立用户
Linux中建立用户是通过Useradd(有些系统也成为adduser)实现的。下面举个简单的例子,
建立一个名为testuser1的新用户:
$useradd testuser1
这个命令通过完成下列动作建立新用户:
在/etc/passwd文件中建立没有口令的用户项目;
为用户指定ID;
将用户加入到相应的组中。在Red Hat中,就是对用户生成只有改用户作为唯一成员的组;
对用户建立主目录(大多数Linux版本中为/home/testuser1)并将/etc/skel的内容复制到主目录中。
如果要改变系统缺省的用户ID,可以用-u标志在建立用户时强制指定用户ID ,例如:
$useradd -u 10001 testuser1
指定帐号testuser1的用户ID为10001。
同样,如果要为用户指顶特定组作为缺省组,可以用-g标志在建立用户时指定所属的组,例如:
$useradd -g users testuser1
在建立用户testuser1的同时将其加入到users组中。
进一步假设,如果testuser1除了属于缺省users组外还属于组group1和group2 ,则可以用-G
标志指定在建立帐号时加入新用户的其它组:
$useradd -g users -G group1,group2 testuser1
最后,如果要对用户指定其它主目录,用-d标志:
$useradd -d /testuser1 testuser1
2.改变useradd的缺省设置
useradd使用的一些缺省设置,可以在每次建立用户时改写。这些缺省设置可以用useradd
命令的-D标志和几个补充标志复位。
-D标志要跟补充标志一起使用。下面介绍-b和-g标志,分别复位缺省主目录路径和缺省组。
例如,要设置缺省主目录路径为/users,用下列命令:
$adduser -D -b /users
同样,要设置所有新用户的缺省组为users,用系列命令:
$adduser -D -g users
这两个命令可以合起来用:
$adduser -D -b /users -g users
3.改变口令
改变口令用passwd命令实现。用户要改变口令时,只需在命令提示符下执行这个命令,然后输
入当前口令并输入两次新口令即可。
在许多Linux版本中,passwd命令检查口令是否太短、太简单、太象用户名或太象原口令,
无效的口令会产生错误信息。
根用户有权改变任何用户的口令,可以在passwd命中提供用户名变元。这时 ,只提示输
入新口令两次。例如:
$passwd testuser1
这时只需输入两次新口令,即可改变testuser1的口令。
4.建立缺省主目录
缺省情况下,每个用户都有个主目录,通常在/home目录中。建立用户帐号时,其主目录建
立并放上缺省文件集。这个缺省文件集从/etc/skel目录中复制,其中包含新主目录的目录树。
要把一个文件放进每个新主目录中,只要生成文件并将其按用户主目录中要显示的名称放进
/etc/skel目录中。此后加入的所有用户建立用户帐号时,其主目录中都会有这个文件。
5.删除用户
删除用户与加入用户是平行的过程,用userdel命令实现。例如:
$userdel testuser1
这里有个问题,用户的文件没有删除。要同时删除用户的主目录,用-r标志实现:
$userdel -r testuser1
还有另外一个问题是,如果在系统的其它地方还有属于该用户的文件要删除呢?
这可以在删除用户之后用find命令进行。为此,删除用户之前要从口令文件记下
用户的用户ID(这里假设用户ID为10001),然后用find命令如下:
$find / -type -uid 10001 -print -exec rm {}
二、管理用户组
1.建立组
利用groupadd命令可以将新组加进系统中。例如,要建立名为ye的新组,用groupadd命令如下:
$groupadd ye
如果要指定组ID,可用-g标志,例如
$groupadd -g 503 ye
2.将用户加进组中
没有一个标准程序能方便地将用户加进组中。为此,最简单的办法是直接编辑/etc/group文件。
这个文件中的每一行表示一个组的定义,形式如下:
:::
groupname是组名;password是组的加密口令,组通常不用口令,因此这个字段通常空白;
groupid是组ID;最后,userlist是属于该组的用户清单,用逗号分隔。例如,如果user1,
user2和user3都属于组group1,其组ID为505,则组的项目如下:
group1::505:user1,user2,user3
要将用户加进组中,用任意文本编辑器编辑/etc/group文件,并将用户名加进用户清单末尾,
用逗号分隔。
3.删除组
删除组用groupdel命令进行。这个命令很简单,没有标志也没有选项。例如,要删除上面所
建立的ye组,用groupdel命令如下:
$groupdel ye
尽管这个命令很简单,但是还是有几点要注意。首先,属于组的文件不会删除或改变所属组;
其次,如果组是用户的基础组(即在口令文件中显示为该用户的组),则这个组无法删除。
第一个问题可以象删除用户后删除用户的文件一样处理。首先要记住要删除的组的ID。
用groupdel命令删除组后,可以用find命令改变属于已删除组的所有文件的组所有权(假设要删除的组的ID为503):
$find / -type f -gid 503 -print -exec chgrp newgroupname {}
这个find命令会找出组ID为503的组中的所以文件,然后用chgrp命令改变组中文件的组
所有权为属于另一个newgroup组。
一、用户管理
1.建立用户
Linux中建立用户是通过Useradd(有些系统也成为adduser)实现的。下面举个简单的例子,
建立一个名为testuser1的新用户:
$useradd testuser1
这个命令通过完成下列动作建立新用户:
在/etc/passwd文件中建立没有口令的用户项目;
为用户指定ID;
将用户加入到相应的组中。在Red Hat中,就是对用户生成只有改用户作为唯一成员的组;
对用户建立主目录(大多数Linux版本中为/home/testuser1)并将/etc/skel的内容复制到主目录中。
如果要改变系统缺省的用户ID,可以用-u标志在建立用户时强制指定用户ID ,例如:
$useradd -u 10001 testuser1
指定帐号testuser1的用户ID为10001。
同样,如果要为用户指顶特定组作为缺省组,可以用-g标志在建立用户时指定所属的组,例如:
$useradd -g users testuser1
在建立用户testuser1的同时将其加入到users组中。
进一步假设,如果testuser1除了属于缺省users组外还属于组group1和group2 ,则可以用-G
标志指定在建立帐号时加入新用户的其它组:
$useradd -g users -G group1,group2 testuser1
最后,如果要对用户指定其它主目录,用-d标志:
$useradd -d /testuser1 testuser1
2.改变useradd的缺省设置
useradd使用的一些缺省设置,可以在每次建立用户时改写。这些缺省设置可以用useradd
命令的-D标志和几个补充标志复位。
-D标志要跟补充标志一起使用。下面介绍-b和-g标志,分别复位缺省主目录路径和缺省组。
例如,要设置缺省主目录路径为/users,用下列命令:
$adduser -D -b /users
同样,要设置所有新用户的缺省组为users,用系列命令:
$adduser -D -g users
这两个命令可以合起来用:
$adduser -D -b /users -g users
3.改变口令
改变口令用passwd命令实现。用户要改变口令时,只需在命令提示符下执行这个命令,然后输
入当前口令并输入两次新口令即可。
在许多Linux版本中,passwd命令检查口令是否太短、太简单、太象用户名或太象原口令,
无效的口令会产生错误信息。
根用户有权改变任何用户的口令,可以在passwd命中提供用户名变元。这时 ,只提示输
入新口令两次。例如:
$passwd testuser1
这时只需输入两次新口令,即可改变testuser1的口令。
4.建立缺省主目录
缺省情况下,每个用户都有个主目录,通常在/home目录中。建立用户帐号时,其主目录建
立并放上缺省文件集。这个缺省文件集从/etc/skel目录中复制,其中包含新主目录的目录树。
要把一个文件放进每个新主目录中,只要生成文件并将其按用户主目录中要显示的名称放进
/etc/skel目录中。此后加入的所有用户建立用户帐号时,其主目录中都会有这个文件。
5.删除用户
删除用户与加入用户是平行的过程,用userdel命令实现。例如:
$userdel testuser1
这里有个问题,用户的文件没有删除。要同时删除用户的主目录,用-r标志实现:
$userdel -r testuser1
还有另外一个问题是,如果在系统的其它地方还有属于该用户的文件要删除呢?
这可以在删除用户之后用find命令进行。为此,删除用户之前要从口令文件记下
用户的用户ID(这里假设用户ID为10001),然后用find命令如下:
$find / -type -uid 10001 -print -exec rm {}
二、管理用户组
1.建立组
利用groupadd命令可以将新组加进系统中。例如,要建立名为ye的新组,用groupadd命令如下:
$groupadd ye
如果要指定组ID,可用-g标志,例如
$groupadd -g 503 ye
2.将用户加进组中
没有一个标准程序能方便地将用户加进组中。为此,最简单的办法是直接编辑/etc/group文件。
这个文件中的每一行表示一个组的定义,形式如下:
:::
groupname是组名;password是组的加密口令,组通常不用口令,因此这个字段通常空白;
groupid是组ID;最后,userlist是属于该组的用户清单,用逗号分隔。例如,如果user1,
user2和user3都属于组group1,其组ID为505,则组的项目如下:
group1::505:user1,user2,user3
要将用户加进组中,用任意文本编辑器编辑/etc/group文件,并将用户名加进用户清单末尾,
用逗号分隔。
3.删除组
删除组用groupdel命令进行。这个命令很简单,没有标志也没有选项。例如,要删除上面所
建立的ye组,用groupdel命令如下:
$groupdel ye
尽管这个命令很简单,但是还是有几点要注意。首先,属于组的文件不会删除或改变所属组;
其次,如果组是用户的基础组(即在口令文件中显示为该用户的组),则这个组无法删除。
第一个问题可以象删除用户后删除用户的文件一样处理。首先要记住要删除的组的ID。
用groupdel命令删除组后,可以用find命令改变属于已删除组的所有文件的组所有权(假设要删除的组的ID为503):
$find / -type f -gid 503 -print -exec chgrp newgroupname {}
这个find命令会找出组ID为503的组中的所以文件,然后用chgrp命令改变组中文件的组
所有权为属于另一个newgroup组。