Linux 用户和组的管理
用户管理
添加用户帐号 useradd
命令格式:useradd [选项]... 用户名
常用命令选项
-u:指定 UID 标记号 -d:指定宿主目录,缺省为 /home/用户名 -e:指定帐号失效时间 -g:指定用户的基本组名(或UID号) -G:指定用户的附加组名(或GID号) -M:不为用户建立并初始化宿主目录 -s:指定用户的登录Shell
-d,-e,-g,-M重点掌握。
添加用户
[root@iZwz9a4d6crd1w205b54pmZ ~]# useradd flyhorse [root@iZwz9a4d6crd1w205b54pmZ ~]# ls /home flyhorse
添加用户,并设置附属组
[root@iZwz9a4d6crd1w205b54pmZ ~]# useradd littlebird [root@iZwz9a4d6crd1w205b54pmZ ~]# ls /home flyhorse littlebird [root@iZwz9a4d6crd1w205b54pmZ ~]# useradd -G root littlebird2
设置/更改用户口令passwd
命令格式:passwd [选项]... 用户名
常用命令选项
-d:清空用户的密码,使之无需密码即可登录 -l:锁定用户帐号 -S:查看用户帐号的状态(是否被锁定) -u:解锁用户帐号
普通用户只能更改自己的密码:
[fly@iZwz9a4d6crd1w205b54pmZ ~]# passwd Changing password for user fly. New password:
根用户可修改所有人的密码:
[root@iZwz9a4d6crd1w205b54pmZ ~]# passwd flyhorse Changing password for user flyhorse. New password:
锁定用户:
[root@localhost ~]# passwd -l linuxde //锁定用户linuxde不能更改密码; Locking password for user linuxde. passwd: Success //锁定成功; [linuxde@localhost ~]# su linuxde //通过su切换到linuxde用户; [linuxde@localhost ~]$ passwd //linuxde来更改密码; Changing password for user linuxde. Changing password for linuxde (current) UNIX password: //输入linuxde的当前密码; passwd: Authentication token manipulation error //失败,不能更改密码;
切换用户
根用户切换到普通用户:
[root@cloud17 ~]# su fly [fly@cloud17 root]$
普通用户切换到根用户:
[fly@cloud17 root]$ su Password: [root@cloud17 ~]#
修改用户帐号的属性usermod
命令格式:usermod [选项]... 用户名
常用命令选项
-l:更改用户帐号的登录名称 -L:锁定用户账户 -U:解锁用户账户 以下选项与useradd命令中的含义相同 -u、-d、-e、-g、-G、-s
[root@iZwz9a4d6crd1w205b54pmZ ~]# usermod -l horse flyhorse [root@iZwz9a4d6crd1w205b54pmZ ~]# usermod -L horse [root@iZwz9a4d6crd1w205b54pmZ ~]# usermod -U horse
将 newuser2 添加到组 staff 中
usermod -G staff newuser2
删除用户帐号userdel
命令格式:userdel [-r] 用户名
添加 -r 选项时,表示连用户的宿主目录一并删除
[root@localhost ~]# useradd stu01 [root@localhost ~]# ls -ld /home/stu01/ drwx------ 2 stu01 stu01 4096 09-09 12:38 /home/stu01/ [root@localhost ~]# userdel -r stu01 [root@localhost ~]# ls -ld /home/stu01/ ls: /home/stu01/: 没有那个文件或目录
改变用户密码期限chage
命令格式:chage [选项]... 用户帐号名
常用命令选项
-M:密码的最长有效天数 -m:密码的最短有效天数 -W:密码的警告天数 -I:密码的有效天数 -E:密码的过期时间 -l:例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。
我的服务器fly帐户密码策略信息如下:
[root@cloud17 yum.repos.d]# useradd fly
[root@cloud17 yum.repos.d]# passwd fly
[root@cloud17 yum.repos.d]# chage -l fly
Last password change : Jun 18, 2018 Password expires : never Password inactive : never Account expires : never Minimum number of days between password change : 0 Maximum number of days between password change : 99999 Number of days of warning before password expires : 7
设置过期时间:
[root@cloud17 yum.repos.d]# chage -M 60 fly
[root@cloud17 yum.repos.d]# chage -l fly
Last password change : Jun 25, 2018 Password expires : Aug 24, 2018 Password inactive : never Account expires : never Minimum number of days between password change : 0 Maximum number of days between password change : 60 Number of days of warning before password expires : 7
通过如下命令设置密码失效时间:
[root@cloud17 yum.repos.d]# chage -I 5 fly
[root@cloud17 yum.repos.d]# chage -l fly
Last password change : Jun 25, 2018 Password expires : Aug 24, 2018 Password inactive : Aug 29, 2018 Account expires : never Minimum number of days between password change : 0 Maximum number of days between password change : 60 Number of days of warning before password expires : 7
从上述命令可以看到,在密码过期后5天,密码自动失效,这个用户将无法登陆系统了。
参考文档:http://man.linuxde.net/chage
组管理
添加组帐号groupadd
命令格式:groupadd [-g GID] 组帐号名
[root@localhost ~]# groupadd -g 1000 market [root@localhost ~]# tail -1 /etc/group market:x:1000:
添加、删除组成员gpasswd
命令用途:设置组帐号密码(极少用)、添加/删除组成员
格式:gpasswd [选项]... 组帐号名
常用命令选项
-a:向组内添加一个用户 -d:从组内删除一个用户成员 -M:定义组成员列表,以逗号分隔
[root@cloud17 ~]# gpasswd -a fly market Adding user fly to group market [root@cloud17 ~]# gpasswd -a root market Adding user root to group market [root@cloud17 ~]# gpasswd -d root market Removing user root from group market [root@cloud17 ~]# grep "market" /etc/group market:x:1000:fly
删除组帐号groupdel
命令格式:groupdel 组帐号名
[root@localhost ~]# groupdel market [root@localhost ~]# grep "market" /etc/group [root@localhost ~]#
用户和组帐号查询
id命令
用途:查询用户身份标识
格式:id [用户名]
[root@localhost ~]# id
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)
解释:用户root的UID号码 = 0,GID号码 = 0。用户root是下面组的成员:
root组GID号是:0 bin组GID号是:1 daemon组GID号是:2 sys组GID号是:3 adm组GID号是:4 disk组GID号是:6 wheel组GID号是:10
输出特定用户信息,我们可以输出特定的用户信息相关的UID和GID。只需要在id命令后跟上用户名:
[root@localhost ~]# id www uid=500(www) gid=500(www) groups=500(www)
groups命令
用途:查询用户所属的组
格式:groups [用户名]
[fly@cloud17 root]$ groups fly
fly : fly market
finger命令
用途:查询用户帐号的详细信息
格式:finger [-l] [用户名]
users、w 、who命令
用途:查询已登录到主机的用户信息
图形化的用户和组管理工具
打开方式 “系统”“管理”“用户和组群” 按Alt+F2键后,运行“system-config-users”
阶段练习
- 主要有哪两个用户帐号文件,各有什么作用?
- 如何锁定、解锁用户帐号?
- 在添加用户帐号时,如何设置其失效时间?
- 用户初始配置文件包括哪些,各有什么作用?
- 如何设置一个组的多个用户成员?
实验案例:管理用户和组
案例一
现雇用一组顾问从事某一项目。为每位顾问创建用户帐户,并将这些帐户掭加到作为补充组,名为consultants、组id为40000的组中。
这些帐户应在90天后终止时过期,且每个月都必须更改密码。
以下是顾问姓名及其相应用户名的列表,帐户的初始密码均应为default):
Sspade, bboop, dtracy
完成后,运行lab-grade-newusers评估脚本以确定一切已正确完成。
案例二
先建manager组,创建两个用户natasha,harry附属组为manager,创建第三个用户strlt不充许login 。
建一个用户susa,指定UID号为4000
帐户的初始密码均应为default
完成后,运行lab-grade-2和lab-grade-6评估脚本以确定一切已正确完成。