Linux 用户和组的管理

来自CloudWiki
跳转至: 导航搜索

用户管理

添加用户帐号 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”

Linux3-7.png

阶段练习

  • 主要有哪两个用户帐号文件,各有什么作用?
  • 如何锁定、解锁用户帐号?
  • 在添加用户帐号时,如何设置其失效时间?
  • 用户初始配置文件包括哪些,各有什么作用?
  • 如何设置一个组的多个用户成员?

实验案例:管理用户和组

案例一

现雇用一组顾问从事某一项目。为每位顾问创建用户帐户,并将这些帐户掭加到作为补充组,名为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评估脚本以确定一切已正确完成。