首页 > 代码库 > Linux 用户和组 (2) useradd

Linux 用户和组 (2) useradd

linux下useradd命令详解


   1、作用


  useradd命令用来建立用户帐号和创建用户的起始目录,使用权限是超级用户


  2、格式


  useradd [-d home] [-s shell] [-c comment] [-m [-k template]] [-f inactive] [-e expire ] [-p passwd] [-r] name

    usermod [-LU][-c <备注>][-d <登入目录>][-e <有效期限>][- f <缓冲天数>][-g <群组>][-G <群组>][-l <帐号名称>][-s ][-u ] [用户帐号] 


  3、主要参数


  -c:加上备注文字,备注文字保存在passwd的备注栏中。

  -d:指定用户登入时的启始目录。

  -D:变更预设值。

  -e:指定账号的有效期限,缺省表示永久有效。

  -f:指定在密码过期后多少天即关闭该账号。

  -g:指定用户所属的群组。

  -G:指定用户所属的附加群组。

  -m:自动建立用户的登入目录。

  -M:不要自动建立用户的登入目录。

  -n:取消建立以用户名称为名的群组。

  -r:建立系统账号。

  -s:指定用户登入后所使用的shell。

  -u:指定用户ID号。


  4、说明


  useradd可用来建立用户账号,它和adduser命令是相同的。账号建好之后,再用passwd设定账号的密码。使用useradd命令所建立的账号,实际上是保存在/etc/passwd文本文件中。。


参数名描述
-u后面接UID,是一组数字。直接给这个账号指定一个特定的UID。
-g后面接的用户组名称就是之前提到的初始用户组。
该group ID(GID)会放置到 /etc/passwd 的第四个字段内。
-G后面接的用户组名称是这个账号还可以属于哪些用户组。
此参数会修改 /etc/group 内的相关数据。
-M强制不创建家目录。
-m强制必须创建家目录。
-c就是 /etc/passwd 第五栏的用户说明信息,可以随便设置,各位随意。
-d用此参数后面指定的路径做为新账号的家目录,而不使用默认值。
-r创建的账号为系统账号:该账号的UID会有限制(/etc/login.defs)
-s指定新账号的默认shell

id 范围 ID 使用者特性 



0(系统管理员)

当 UID 是 0 时,代表这个帐号是‘系统管理员’! 所以当你要让其他的帐号名称也具有 root 的权限时,将该帐号的 UID 改为 0 即可。 这也就是说,一部系统上面的系统管理员不见得只有 root 喔! 不过,很不建议有多个帐号的 UID 是 0 






1~499(系统帐号)

保留给系统使用的 ID,其实除了 0 之外,其他的 UID 权限与特性并没有不一样。预设 500 以下的数字让给系统作为保留帐号只是一个习惯。


由于系统上面启动的服务希望使用较小的权限去运作,因此不希望使用 root 的身份去执行这些服务, 所以我们就得要提供这些运作中程式的拥有者帐号才行。这些系统帐号通常是不可登入的, 所以才会有我们在第十一章提到的 /sbin/nologin 这个特殊的 shell 存在。


根据系统帐号的由来,通常系统帐号又约略被区分为两种:

1~99:由 distributions 自行建立的系统帐号;

100~499:若使用者有系统帐号需求时,可以使用的帐号 UID。

500~65535(可登入帐号)给一般使用者用的。事实上,目前的 linux 核心 (2.6.x 版)已经可以支援到 4294967295 (2^32-1) 这么大的 UID 号码!

范例一:完全参考预设值建立一个使用者,名称为 vbird1

[root@www ~]# useradd  vbird1

[root@www ~]# ll  -d  /home/vbird1

drwx------ 4 vbird1 vbird1 4096 Feb 25 09:38 /home/vbird1

# 预设会建立使用者家目录,且权限为 700 !这是重点!


[root@www ~]# grep  vbird1  /etc/passwd  /etc/shadow  /etc/group

/etc/passwd:vbird1:x:504:505::/home/vbird1:/bin/bash

/etc/shadow:vbird1:!!:14300:0:99999:7:::

/etc/group:vbird1:x:505:    <==预设会建立一个与帐号一模一样的群组名


范例二:假设我已知道我的系统当中有个群组名称为 users ,且 UID 700 并不存在,

        请用 users 为初始群组,以及 uid 为 700 来建立一个名为 vbird2 的帐号

[root@www ~]# useradd   -u   700  -g  users  vbird2

[root@www ~]# ll  -d  /home/vbird2

drwx------ 4 vbird2 users 4096 Feb 25 09:59 /home/vbird2


[root@www ~]# grep  vbird2  /etc/passwd  /etc/shadow  /etc/group

/etc/passwd:vbird2:x:700:100::/home/vbird2:/bin/bash

/etc/shadow:vbird2:!!:14300:0:99999:7:::

# 看一下,UID 与 initial group 确实改变成我们需要的了!

 

范例三:建立一个系统帐号,名称为 vbird3

[root@www ~]# useradd  -r  vbird3

[root@www ~]# ll  -d  /home/vbird3

ls: /home/vbird3: No such file or directory  <==不会主动建立家目录


[root@www ~]# grep  vbird3  /etc/passwd  /etc/shadow  /etc/group

/etc/passwd:vbird3:x:100:103::/home/vbird3:/bin/bash

/etc/shadow:vbird3:!!:14300::::::

/etc/group:vbird3:x:103:

 



本文出自 “Dragon” 博客,请务必保留此出处http://1208073155.blog.51cto.com/9039381/1432780