useradd------• 相关设定档

useradd

[root@linux ~]# useradd [-u UID] [-g initial_group] [-G other_group] \

> -[Mm] [-c 说明栏] [-d home] [-s shell] username

参数:

-u :后面接的是 UID ,是一组数字。直接指定一个特定的 UID 给这个账号;

-g :后面接的那个群组名称就是我们上面提到的 initial group 啦~

该 group ID (GID) 会被放置到 /etc/passwd 的第四个字段内。

-G :后面接的群组名称则是这个账号还可以支持的群组。

这个参数会修改 /etc/group 内的相关资料喔!

-M :强制!不要建立使用者家目录

-m :强制!要建立使用者家目录!

-c :这个就是 /etc/passwd 的第五栏的说明内容啦~可以随便我们设定的啦~

-d :指定某个目录成为家目录,而不要使用默认值;

-r :建立一个系统的账号,这个账号的 UID 会有限制 (/etc/login.defs)

-s :后面接一个 shell ,预设是 /bin/bash 的啦~

范例:

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

[root@linux ~]# useradd vbird1

[root@linux ~]# ls -l /home

drwxr-xr-x 3 vbird1 vbird1 4096 Aug 30 17:33 vbird1

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

/etc/passwd:vbird1:x:502:502::/home/vbird1:/bin/bash

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

/etc/group:vbird1:x:502:

# 做这个范例只是想要让您了解,其实系统已经规范好了一些新增使用者时的参数了!

# 因此,当我们使用 useradd 时,系统会主动的去修改 /etc/passwd 与 /etc/shadow,

# 而这两个档案内的相关字段参考值,则会以一些设定档的内容来规范喔!

# 同时也要注意到,使用 useradd 新增使用者时,这个使用者的 /etc/shadow

# 密码栏会是不可登入的 (以 !! 为开头),因此还需要使用 passwd

# 来给予 vbird1 密码后,才算新增完毕!

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

请用这两个参数给予 vbird2 建立一个账号!

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

[root@linux ~]# ls -l /home

drwxr-xr-x 3 vbird2 users 4096 Aug 30 17:43 vbird2

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

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

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

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

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

[root@linux ~]# usradd -r vbird3

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

/etc/passwd:vbird3:x:101:102::/home/vbird3:/bin/bash

/etc/shadow:vbird3:!!:13025::::::

/etc/group:vbird3:x:102:

# 很重要喔!您会发现, UID 竟然是 101 ,而 GID 怎么会是 102,

# 并且与 /etc/group 有对应的关系喔!有没有加 -r 差很多ㄟ!

我的天吶!这个指令更动的档案怎么怎么多啊?对啊!你才知道啊~ 这也是为啥我们说账号管理是很复杂的啦~而且他参考的设定档才更多哩! 这个指令至少可能会更动到的地方有:

• /etc/passwd

• /etc/shadow

• /etc/group

• /etc/gshadow

• /home/username

那请教一下,您有没有想过,以上述的第一个范例一好了,为何 useradd vbird1 他会主动在 /home/vbird1 建立起使用者的家目录?家目录内有什么数据且来自哪里? 为何预设使用的是 /bin/bash 这个 shell ?呵呵!这就得要说明一下 useradd 所使用的参考档案啰!

• 相关设定档

我们使用 useradd 去新增使用者时,一些在 /etc/passwd 当中的值会去参考『 /etc/default/useradd 』 ,这个档案的内容有点像这样:

GROUP=100 <==预设的群组

HOME=/home <==预设的家目录所在目录

INACTIVE=-1 <==在 /etc/shadow 内的第 7 栏

EXPIRE= <==在 /etc/shadow 内的第 8 栏

SHELL=/bin/bash <==预设的 shell

SKEL=/etc/skel <==使用者家目录的内容数据参考目录

关于群组的建立机制: 当我们直接使用 useradd 来新增账号时,在预设的情况下,相关的信息都是参考 /etc/default/useradd 这个档案内容的设定的。不过,对于使用者群组的建立机制中, 则有两种不一样的机制存在的:

• 以 FC4 为代表,新建使用者时,若无指定 initial group , 则系统会主动建立一个与账号相同的群组名称,以该群组作为使用者的 initial group;

• 以 SuSE 9 为代表,新建使用者时,预设不会建立新群组,而以 /etc/default/useradd 内的 GROUP 设定值作为使用者的 initial group 。

关于使用者家目录的参考:/etc/skel/* 在这个档案当中,比较奇怪的是 SKEL 这个玩意儿了,他是啥? 其实,这个咚咚就是使用者家目录的参考目录啰~举我们的范例一为例,我利用 useradd vbird1 时,他在 /home/vbird1 这个使用者家目录内的各项数据,都是由 /etc/skel 所复制过去的~所以呢,未来如果我想要让新增使用者时,该使用者的环境变量 ~/.bashrc 就设定妥当的话,您可以到 /etc/skel/.bashrc 去编辑一下,也可以建立 /etc/skel/public_html 这个目录,那么未来新增使用者后,在他的家目录下就会有 public_html 那个目录了!这样瞭呼? 关于使用者 UID/GID 的设定: 另外,与密码还有 UID/GID 有关的设定档则是在 /etc/login.defs 里面, 这个档案有点像这样:

MAIL_DIR /var/spool/mail <==使用者预设邮件信箱放置目录

PASS_MAX_DAYS 99999 <==/etc/shadow 内的第 5 栏

PASS_MIN_DAYS 0 <==/etc/shadow 内的第 4 栏

PASS_MIN_LEN 5 <==密码最短的字符长度,建议可以改到 6 以上

PASS_WARN_AGE 7 <==/etc/shadow 内的第 6 栏

UID_MIN 500 <==使用者最小的 UID,意即小于 500 的 UID 为系统保留

UID_MAX 60000 <==使用者能够用的最大 UID

GID_MIN 500 <==使用者自订群组的最小 GID,小于 500 为系统保留

GID_MAX 60000 <==使用者自订群组的最大 GID

CREATE_HOME yes <==在不加 -M 及 -m 时,是否主动建立使用者家目录?

看到这个档案后,您应该晓得的是,为何新建的使用者的 UID 都会大于 500 了吧? 而且某些版本的 distributions (例如 SuSE server 9) 则是将 UID_MIN 设定为 1000 , 所以,他的一般身份使用者的 UID 就会从 1000 起跳啰~这样了解吗?! 那如果我现在新增一个使用者,这个使用者的 UID 会是多少?答案是:『 如果 /etc/passwd 里面的账号所属的 UID 没有大于 /etc/login.defs 里头的 UID_MIN (在本例中是 500)时,则以 UID 500 来作为一个新账号的 UID。 如果 /etc/passwd 已有大于 500 以上的 UID 时,则取 /etc/passwd 内最大的那个 UID + 1 作为新设帐号的 UID。』而如果我是想要建立系统用的账号,所以使用 useradd -r sysaccount 这个 -r 的参数时,就会找『比 500 小的最大的那个 UID + 1 』就是了。 ^_^ 关于家目录预设是否建立: 另外也要注意那个 CREATE_HOME 的设定值,这个设定值也很重要。一般来说,在 FC4 的环境下, 我们使用 useradd useraccount 时,预设是会主动的建立家目录的,除非使用 -M 这个参数~ 至于 SuSE server 9 这个版本来说,嘿嘿!他预设是不建立家目录的,除非使用 -m 这个参数呢! 因此,在这里鸟哥也要建议您,如果肯定要建立家目录的话,不论在那个版本, 你最好还是加上 -m 这个参数来强制建立家目录吧! ^_^ 那么您就能知道啰, useradd 这支程序在建立 Linux 上的账号时,至少会参考:

• /etc/default/useradd

• /etc/login.defs

• /etc/skel/*

这些档案,不过,最重要的其实是建立 /etc/passwd, /etc/shadow, /etc/group, /etc/gshadow 还有使用者家目录就是了~所以,如果您了解整个系统运作的状态, 也是可以手动直接修改这几个档案就是了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值