在 Linux 系统中,与用户管理有关的文件主要有如下几个:分别是/etc/passwd,/etc/shadow,/etc/gfoup,/etc/gshadow 。它们分别与用户的账号,密码,用户组及用户组密码有关。
语 法 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] username
useradd -D [-g default_group] [-b default_home]
[-f default_inactive] [-e default_expire_date]
[-s default_shell]
首先来说一下这个 -D 参数,如果加上此参数当 useradd 会显示出现创建新账号的一些默认值,或是通过指定参数内容来更新默认值。这个咱们稍候再来讨论,暂且略过。
看其没有-D参数的各个选项,下面简单为大家描述一二,有个印象,一会儿再看我给列位的示例时也不至于头晕。呵呵。
参数名 | 描述 |
---|
-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 |
useradd 示例:
说了这么半天,咱也来动手用 useradd 命令新建几个账号,提升一下咱的动手能力。另外,算是做个演示吧,毕竟实践出真知嘛。呵呵,不过我忘了这是哪位伟人说的话了。嗯。
# 不加任何参数,直接默认创建一个新用户 chongpig
[simaopig@xiaoxiaozi ~]$ useradd chongpig
bash: /usr/sbin/useradd: 权限不够
[simaopig@xiaoxiaozi ~]$ su
密码:
[root@xiaoxiaozi simaopig]# useradd chongpig
[root@xiaoxiaozi simaopig]# ls -l /home/
总计 24
drwx------. 4 chongpig chongpig 4096 07-2121:58 chongpig
drwx------. 2 root root 16384 07-1213:08 lost found
drwxr-xr-x. 44 simaopig simaopig 4096 07-2121:21 simaopig
# 在和用户相关联的几个文件里面搜一下chongpig这个账号
[root@xiaoxiaozi simaopig]# grep chongpig /etc/passwd /etc/shadow /etc/group
/etc/passwd:chongpig:x:501:501::/home/chongpig:/bin/bash
/etc/shadow:chongpig:!!:14446:0:99999:7:::
/etc/group:chongpig:x:501:
# 创建一个新账号 simaopig2 ,且看一下 UID 888 不存在,那么就指定给simaopig2,
# 并且把它加到 mysql 组中
[root@xiaoxiaozi simaopig]# grep 888 /etc/passwd
[root@xiaoxiaozi simaopig]# useradd -u 888 -g mysql simaopig2
[root@xiaoxiaozi simaopig]# grep simaopig2 /etc/passwd /etc/shadow /etc/group
/etc/passwd:simaopig2:x:888:27::/home/simaopig2:/bin/bash
/etc/shadow:simaopig2:!!:14446:0:99999:7:::
# 建立一个系统账号simaopig3 看一下系统账号有啥不同
[root@xiaoxiaozi simaopig]# useradd -r simaopig3
[root@xiaoxiaozi simaopig]# grep simaopig3 /etc/passwd /etc/shadow /etc/group
/etc/passwd:simaopig3:x:490:484::/home/simaopig3:/bin/bash
/etc/shadow:simaopig3:!!:14446::::::
/etc/group:simaopig3:x:484:
系统账号的 UID 与 GID 竟然不同,而且在 /etc/group 里面有对应关系。
细心的同学一定会发现,用 useradd 创建的账号是没有登录功能的,因为其在 /etc/shadow 中的密码栏是不可能登录的,以 ! 开头。所以近日我们还会讨论 Linux 给用户更改密码的方法。
useradd 默认值:
上面的示例可以让我们了解到,系统其实已经规范好了一些新增用户时的参数了,像我没有指定用户的家目录,也没有指定用户的 UID 和 GID 可是系统会帮我们为用户加上,同时其默认shell被设置成了 /bin/bash ,也让我知道了,使用 useradd 命令一定要有 root 权限。那么, useradd 去新增用户时,其默认值是多少呢?
使用上面所说的 useradd 的 -D 参数可以显示出其默认值,各位可以看出,其值完全与 /etc/default/useradd 这个文件里面的内容相同。原来在 linux 中使用 useradd 去新增用户时,一些在 /etc/passwd 中的值是会去参考 /etc/default/useradd 这个文件的。其文件内容基本如下:
# useradd defaults file
# 默认的用户组
GROUP=100
# 家目录的地址
HOME=/home
# 密码过期的宽限时间,对应 /etc/shadow 的第七栏
INACTIVE=-1
# 账号失效日期,对应 /etc/shadow 的第八栏
EXPIRE=
# 默认使用的shell
SHELL=/bin/bash
# 用户家目录里面的内容参照文件(里面基本上全为隐藏文件——>以“.”开头的文件)
SKEL=/etc/skel
# 建立使用者的mailbox
CREATE_MAIL_SPOOL=yes
阅读(1329) | 评论(0) | 转发(0) |