一、新增与移除使用者
我们可以使用useradd来新增使用者,密码的给予则使用passwd这个指令,这两个指令使用方法如下:
1.1 useradd
语法如下:
useradd [-u UID] [-g 初始群组] [-G 次要群组] [-mM] [-c 说明文件] [-d 家目录绝对路径] [-s shell] 使用者账号名
选项与参数:
-u:后面跟的是UID,是一组数字,直接指定一个特定的UID给这个账号
-g:后面接的是初始群组,该群组的GID会被放置到/etc/passwd的第四部分中
-G:后面接的群组名称则是这个账号还可以加入的群组,这个选项会修改/etc/group内的相关资料
-M:强制,不建立使用者家目录(系统账号预设值)
-m:强制,建立使用者家目录(一般账号预设值)
-c:这个就是/etc/passwd第五部分的说明内容,我们可以随意设定
-d:指定某个目录成为家目录,而不要使用预设值,这里一定要使用绝对路径
-r:建立一个系统账号(注意系统账号的UID有限制)
-s:后面接一个shell,如果没有指定则预设/bin/bash
-e:后面接一个日期,格式为[YYYY-MM-DD],这部分内容可写入shadow第八部分,亦即账号失效的设定项目录
-f:后面接shadow的第七部分,指定密码是否会失效。0为立刻失效,-1为永不失效(密码值会过期而登陆时重新设定)
使用例子:
例:完全参考预设值建立一个使用者
[root@study ~]# useradd vbird1
[root@study ~]# ll -d /home/vbird1
drwx------. 3 vbird1 vbird1 74 Jul 20 21:50 /home/vbird1
# 预设会建立使用者家目录,且权限为700,要注意这点
[root@study ~]# grep vbird1 /etc/passwd /etc/shadow /etc/group
/etc/passwd:vbird1:x:1003:1004::/home/vbird1:/bin/bash
/etc/shadow:vbird1:!!:16636:0:99999:7:::
/etc/group:vbird1:x:1004: <==预设会建立一个与账号一摸一样的群组名
从上面的例子可以看出,我们可以简单使用useradd 账号
来建立使用者,系统已经帮我们预设好了很多值。系统这些预设值主要帮我们处理如下部分:
- 在/etc/passwd里面建立一行与账号有关的信息,包括建立UID/GID/家目录等
- 在/etc/shadow里面将此账号的密码相关参数填入,但是此时还没有密码
- 在/etc/group里面加入一个与账号名称一摸一样的群组名称
- 在/home底下建立一个与账号同名的目录作为使用者家目录,且权限为700
由于在/etc/shadow内仅有密码参数而没有加密过的密码信息,因此在我们建立使用者账号时,还需要使用passwd 账号
来给予密码才算是完成了使用者建立的流程。如果由于特殊需求而需要改变使用者相关参数时,就得要透过上述表格中的选项来建立了,参考如下例子:
例:假设我们已经知道系统中有个群组名称为users,且UID1500不存在,现在我们用users为初始群组,以及UID为1500来建立一个名为vbird2的账号
[root@study ~]# useradd -u 1500 -g users vbird2
[root@study ~]# ll -d /home/vbird2
drwx------. 3 vbird2 users 74 Jul 20 21:52 /home/vbird2
[root@study ~]# grep vbird2 /etc/passwd /etc/shadow /etc/group
/etc/passwd:vbird2:x:1500:100::/home/vbird2:/bin/bash
/etc/shadow:vbird2:!!:16636:0:99999:7:::
#可以看到,UID与初始群组确实变为我们所需要的了
了解了一般账号后,我们接下来看下什么是系统账号:
例:建立一个系统账号,名称为vbird3
[root@study ~]# useradd -r vbird3
[root@study ~]# ll -d /home/vbird3
ls: cannot access /home/vbird3: No such file or directorya <==不會主動建立家目錄
[root@study ~]# grep vbird3 /etc/passwd /etc/shadow /etc/group
/etc/passwd:vbird3:x:699:699::/home/vbird3:/bin/bash
/etc/shadow:vbird3:!!:16636::::::
/etc/group:vbird3:x:699:
在Linux账号与群组系统介绍中提到过,一般账号的ID在1000以后,所以使用者建立的自己的系统账号是小于1000的,本例中指定了699作为UID,699作为GID。此外,由于系统账号主要用来进行运作系统所需要的权限设定,所以系统账号预设都不会主动建立家目录。
1.2 useradd参考文件
useradd的预设值可以使用下面的方法显示出来:
[root@study ~]# useradd -D
GROUP=100 <==預設的群組
HOME=/home <==預設的家目錄所在目錄
INACTIVE=-1 <==密碼失效日,在 shadow 內的第 7 欄
EXPIRE= <==帳號失效日,在 shadow 內的第 8 欄
SHELL=/bin/bash <==預設的 shell
SKEL=/etc/skel <==使用者家目錄的內容資料參考目錄
CREATE_MAIL_SPOOL=yes <==是否主動幫使用者建立郵件信箱(mailbox)
这些信息其实储存在/etc/default/useradd中,上面这些设定的意义是:
- GROUP=100:新建账号的初始群组使用GID为100