用户账户的管理主要涉及用户账户的添加、删除和修改。
添加用户账户就是在系统中创建一个新账户,然后为新账户分配用户号、用户组、主目录和登录shell等资源。
1)添加新账户
添加新的用户账户使用useradd命令,语法如下:
useradd  [选项用户名
其中常用选项含义如下:
-d 目录:指定用户主目录,若此目录不存在,则同时使用-m选项,能创建主目录。
-M :不创建主目录。
-g 组名或组ID:指定用户所属的用户组。该用户组必须已存在。
-G 用户组列表:指定用户所属的附加组,各组用逗号隔开。
-s shell文件:指定用户登录的shell,默认为/bin/bash
-u 用户号:指定用户的用户号。该值必须唯一且大于499的整数。
-p 密码:为新用户指定登录密码。此处设置的密码会被系统进行MD5加密。
例:
#useradd  -d  /tmp/sam  -m  jack
创建一个用户jack,指定其主目录为/tmp/sam
例:
#useradd  -s  /bin/sh  -g  group  -G  adm,root  mike
新建一个用户mike,该用户的登录Shell/bin/sh,它属于group用户组,同时又属于admroot用户组,其中group用户组是主组。
增加用户就是在/etc/passwd文件中为新用户增加一条记录,同时更新一条记录,同时更新其他系统文件,如/etc/shadow,/etc/group等。
2)删除账户
如果一个用户账户不再使用,就要删除该账户。删除用户账户也就是将/etc/passwd文件中该用户的记录删除。删除一个已有的账户使用userdel命令,格式如下:
userdel  [选项用户名
常用选项是-r,作用是删除用户账户的同时把该用户的主目录一起删除。
#userdel  -r  jack
执行完该命令后Jack在相关系统文件(主要是passwdshadowgroup文件)中的记录也一起被删除。同时用户的主目录也被删除。
3)修改账户
修改用户帐户就是根据实际情况更改用户的相关属性,如:用户名、用户主目录、用户组、登录的shell等。可以使用usermod命令来修改。格式如下:
#usermod  [选项]  用户名
部分常见选项同useradd命令选项,如下实例:
#usermod  -s  /bin/ksh  -d  /home/T  -g  market  tom
将用户tom的登录shell修改为ksh,主目录改为/home/T,用户组改为market
其他常用选项实例:
更改用户账户名:
#usermod  -l  jacky  jack
此命令表示将用户名jack改为用户名为jacky
将用户加入其他组:
#usermod  -G  techgroup  mike
此命令是将用户mike追加到techgroup这个组。
4)显示账户属性、所在组信息
格式: id  [选项]  [用户]
例:#id  jack
结果如图4-3所示:
图4-3 id命令用法
系统会显示jack用户的uidgid、所属组的id信息
#groups  jack
结果如图密码修改4-4所示:
图4-4 groups命令用法
显示出用户jack属于本身的jack组和附加组root组。
5)用户密码管理
用户刚被创建时是没有密码的,也无法登录使用,所以必须为其设定密码后才能使用。即使是空密码。
设置用户登录密码:
格式:passwd  [选项用户名
常见选项:
-l:锁定密码,即禁用账户。
-u:密码解锁。
-d:使账户为空密码。
-f:强迫用户下次登陆时修改密码。
如果命令后无用户名,则表示修改当前登录用户密码。超级用户root可以修改任意用户的密码
#passwd  jack
New  password********
Re-enter new password********
普通用户修改自己的密码时,系统先询问原密码,验证后再输两次新密码。而超级用户修改密码时不必知道原密码。为安全起见,可以将密码位数设置成不少于8个字符,其中包含大小写字母、数字以及特殊字符等。
(2)删除账户密码
若要为用户指定空密码时,可使用下列命令形式:
#passwd  -d  用户名
用户密码被设置成空密码。即用户登录进入系统时,登录密码为空。