红联Linux门户
Linux帮助

Linux命令行界面下的用户和组的管理

发布时间:2014-07-25 09:35:24来源:linux网站作者:jiazhanwei365

groupadd创建用户组:

# groupadd [-g gid [-o]] [-r] [-f] group

参数:

-g gid: group’s ID 值 .除非使用 -o 参数不然该值必须是唯一, 不可相同.数值不可为负。预设为最小不得小于500而逐次增加。 0~999 传统上是保留给系统帐号使用。

 -r 此 参数是用来建立系统帐号。的 UID 会比定义在系统档上/etc/login.defs. 的 UID_MIN 来的小.注意 useradd 此法所建立的帐号不会建立使用者目录,也不会在乎纪录在 /etc/login.defs. 的定义值 . 如果你想要有使用者目录须额外指定。
-m 参数来建立系统帐号。 这是 Red Hat 额外增设的选项。它会自动帮你选定一个小于999 的 gif 不需要 再加上 -g 参数。这是RED HAT 额外增设的选项。
-f 新增一个已经存在的群组帐号,系统会出现错误讯息然后结束groupadd .如果是这样的情况,不会新增这个群组(如果 是这个情况下,系统不会再新增一次)也可同时加上
-g 选项当你加上一个gid,此时 gid 就不用是唯一值,可不加 -o 参数,建好群组后会显结果。


例子:

1.创建一个GID为5400,组名为testbed的用户组

2.再次创建一个GID为5401,组名为testbed的用户组,由于组名不唯一,创建失败

3.使用 -f 和 -o 选项,系统不提示信息,由于组名不唯一,创建仍然失败

4.创建一个GID为5400,组名为supersun的用户组,由于GID不唯一创建失败

5.使用 -f 选项,创建成功,系统将该GID递增为5041

6.综合使用 -o 和 -f 选项,则创建成功,系统将该GID仍然设置为5401


groupmod修改用户组属性:

# groupmod [-g <群组识别码> <-o>][-n <新群组名称>][群组名称]

参数:

-g gid :群组ID值。必须为唯一的ID值,除非用-o选项。数字不可为负值。预设为最小不得小于99而逐次增加。0~99传统上是保留给系统帐号使用。如果有档案使用旧的群组ID,而这时候你新增的群组ID恰好与旧的相同,这样的话你要手动改一下这些档案的群组ID。

-o:配合上面的-g选项使用,可以设定不唯一的组ID值。

-n group_name:  更改群组名 。


例子:

1.将testbed的名称改为testbed-new

2.将testbed-new的GID改为5404

3.将组testbed-new的GID改为5405,名称改为testbed-old


groupdel删除用户组:

# groupdel [群组名称]

说明:

需要从系统上删除群组时,可用groupdel指令来完成这项工作。倘若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组。


例子:

#cat /etc/group  ===》查看用户组信息

#删除用户组    ====》 mysql用户组还存在用户,所以不能删除。


useradd添加用户:

#  useradd [-c comment] [-d home_dir]

[-e expire_date] [-f inactive_time]  [-g initial_group] [-G group[,...]

[-m [-k skeleton_dir] | -M] [-s shell]

[-u uid [ -o]] [-n] [-r] login

参数:

新帐号建立当不加-D参数,useradd指令使用命令列来指定新帐号的设定值and使用系统上的预设值.新使用者帐号将产生一些系统档案,使用者目录建立,拷备起始档案等,这些均可以利用命令列选项指定。

此版本为RedHatLinux提供,可帮每个新加入的使用者建立个别的group,毋须添加-n选项。useradd可使用的选项为-ccomment新帐号password档的说明栏。-dhome_dir新帐号每次登入时所使用的home_dir。

预设值为default_home内login名称,并当成登入时目录名称。

-e expire_date 帐号终止日期。日期的指定格式为MM/DD/YY。

-f  inactive_days 帐号过期几日后永久停权。当值为0时帐号则立刻被停权。而当值为-1时则关闭此功能,预设值为-1

-g  initial_group group名称或以数字来做为使用者登入起始群组(group)。群组名须为现有存在的名称。群组数字也须为现有存在的群组。预设的群组数字为1。

-G group,[...] 定义此使用者为此一堆groups的成员。每个群组使用","区格开来,不可以夹杂空白字元。群组名同-g选项的限制。定义值为使用者的起始群组。

-m 使用者目录如不存在则自动建立。如使用-k选项skeleton_dir内的档案将复制至使用者目录下。然而在/etc/skel目录下的档案也会复制过去取代。任何在skeleton_diror/etc/skel的目录也相同会在使用者目录下一一建立。The-k同-m不建立目录以及不复制任何档案为预设值。

-M 不建立使用者目录,即使/etc/login.defs系统档设定要建立使用者目录。

-n 预设值使用者群组与使用者名称会相同。此选项将取消此预设值。

-r 此参数是用来建立系统帐号。系统帐号的UID会比定义在系统档上/etc/login.defs.的UID_MIN来的小。注意useradd此用法所建立的帐号不会建立使用者目录,也不会在乎纪录在/etc/login.defs.的定义值。如你想要有使用者目录须额外指定-m参数来建立系统帐号。这是REDHAT额外增设的选项。

-s shell 使用者登入后使用的shell名称。预设为不填写,这样系统会帮你指定预设的登入shell。

-u uid 使用者的ID值。必须为唯一的ID值,除非用-o选项。数字不可为负值。预设为最小不得小于999而逐次增加。0~999传统上是保留给系统帐号使用。改变预设值当-D选项出现时,useradd秀出现在的预设值,或是藉由命令列的方式更新预设值。可用选项为∶

-b default_home 定义使用者所属目录的前一个目录。使用者名称会附加在default_home后面用来建立新使用者的目录。当然使用-d后则此选项无效。

-e default_expire_date 使用者帐号停止日期。

-f default_inactive 帐号过期几日后停权。

-g default_group 新帐号起始群组名或ID。群组名须为现有存在的名称。群组ID也须为现有存在的群组。

-s default_shell 使用者登入后使用的shell名称。往后新加入的帐号都将使用此shell.如不指定任何参数,useradd显示目前预设的值。注记系统管理者有义务在/etc/skel目录下放置使用者定义档。


实例:

1.创建一个用户名为jack,描述信息为Jack,用户组为testbed,登录shell为 /bin/sh ,登录主目录为 /home/jack 的用户。

2.该用户设置密码。

3.创建一个用户名为waston,描述信息为Waston,用户组为testbed,登录shell为 /bin/sh,登录主目录为 /home/waston,用户ID为4800,帐号过期日期为2013.1.30


usermod修改用户信息:

 # usermod [-LU][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-l <帐号名称>][-s <shell>][-u <uid>][用户帐号]
 
参数:
 
-c 更改 /etc/passwd 第5栏用户信息说明的部分,后面接描述信息,可以使用 chfn 命令替代
 
-d 更改 /etc/passwd 第6栏用户的家目录部分,如果再加上 -m 参数(只与-d配合)。则会将现有家目录的地址重命名为新的家目录地址,如原来没有指定家目录地址,则为账号新建一个指定的家目录地址。
-e 更改 /etc/shadow 的第8栏账号的失效日期,后面接日期参数格式为 MM/DD/YY 或 YYYY-MM-DD
-f 更改 /etc/shadow 的第7栏账号过期宽限时间部分,当后面接的值为 0 时,账号立即失效,为 -1 时关闭此功能默认值为 -1
-g 后面接 group name 必须是现有 group 组中的一个,改变用户的初始化用户组 id 对应 /etc/passwd 的第4栏内容
-G 后面接 group name 必须是现有 group 组中存在的组名,改变用户能够支持的用户组,修改的是 /etc/group
-l 后面接账号名称,即更改用户名。对应的是 /etc/passwd 的第一栏
-s 后面接shell的实际文件,即 /bin/bash ,/bin/csh之类,可以使用 chsh 命令替代
-u 更改用户的UID,对应的是 /etc/passwd 的和3栏数据,此 UID 不能与目前系统中已经存在的UID相同
-L 暂将用户的密码冻结,禁止其登录,即更改 /etc/shadow 的密码栏,在其前面加上 !
-U 暂将用户的密码解冻,即去掉其 /etc/shadow 密码栏前面的 !

 
实例:
 
1.将waston的组改为mysql,用户ID改为5600
 
2.将jack的用户名改成honey-jack,登录shell改成 /bin/ash,用户描述改为 honey-jack


userdel删除用户:
 
# userdel [-r][用户帐号]
 
参数:-r 删除用户登入目录以及目录中所有文件。若不加参数,则仅删除用户帐号,而不删除相关文件。