管理Linux 系统的用户与用户组

                                                                                           任务五 管理Linux系统的用户与用户组
【任务说明】
           Linux操作系统是多用户多任务操作系统。
用户可分为普通用户和超级用户,除了用户以外还有用户组。所谓用户组就是用户的集合,CentOS组中有两种类型,私有组和标准组。当创建一个新用户时,若没有指定他所

属的组,CcntOS就建立一个和该用户相同的私有组,此私有组中只包括用户自己。标准组可以容纳多个用户,如果要使用标准组,那创建一个新的用户时就应该指定他所属于

的组。另外,同一个用户可属于多个组,例如某个单位的领导组和技术组,lik是该单位的技术主管,所以他就属于领导组和技术组。当一个用户属于多个组时,其登录后所属的组是主组,其他组为附加组。

        Linux 环境下的用户与用户组系统文件主要存放在etc/passwd、/etc/shadow 、/etc/group和/etc/gshadow这4个文件中。其基本含义后面会详细介绍,root1~499是系统一标准

账户,普通用户的UID是从500开始。

        初次接触Linux 的朋友大概会觉得很奇怪,Linux有这么多用户,还要分用户组(又叫做“群组”),有什么用呢? 其实,文件所属的用户与用户组功能是一个相当健全的安全防

护。由于Linux是多人多工的操作系统,因此常常会有多人同时使用过部主机工作,为了考虑每个人的隐私权,因此,“文件所有者”的角色就显得相当重要。例如,当我们将某个

文件放在自己的工作目录下,并且不希望这个文件的内容被别人看到,这时就应该把文件设定成“只有文件拥有者,也即我们自身才能查看和修改该文件的内容”,由于我们设定

了这样的权限,因此其他用户即使知道有这个文件存在,也无法看到该文件的内容。

        那么为什么要为文件设定它所属的用户组呢?其实,用户组最简单的功能之一,就是用于团队开发资源。举例来说,假设主机有两个团体:第一个团体为testgroup ,它的成

员是test1、test2、test3共3个;第二个闭体名称为treatgroup ,它的成员为trea1、treat2、treat3。这两个团体之间是互相有竞争性质的,要比赛看谁做的那份报告最好,然而每组

成员又需要同时能够修改自己的团体内任何人所建立的文件,且不能让非本团体的人看到这些文件内容。这时候就要通过用户组的权限进行设置,禁止非本用户组的用户查看本

组的文件。同时,

        如果成员自己还有私人隐秘的文件,还可以设定文件权限,使本团队其他成员也看不到此文件的内容。另外,如果有一个teacher用户是testgroup 与treatgroup 这两个用户

组的老师,想要同时观察两个组的进度,就要设定teacher用户同时支持testgroup 与treatgroup 这两个用户组,这样就可以查看这两个用户组的文件。也就是说,每个用户还可以

属于多个用户组。

         基于以上考虑,Linux系统中的每个用户都至少属于一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux系统对用户组的规定有所不同,如Linux下

的用户就默认属于与它同名的用户组,这个用户组在创建用户的时候同时创建。

本任务的主要目的是要向由灵活地管理用户以及用户组。

【任务实施】
          
         第1步:查看Linux系统中的用户

系统中所有的用户存放文件为/etc/passwd,可通过【vim /etc/passwd】命令打开查看。Passwd文件由许多条记录组成,每条记录占一行,记录了一个用户账号的所有信息。每

条记录由7个字段组成,字段间用冒号(:)隔开,其格式如图所示。

管理Linux 系统的用户与用户组
管理Linux 系统的用户与用户组
(1)用户名:它唯一地标识了一个用户账号,用户在登录时使用的就是它。

(2)加密口令: Passwd文件中存放的密码是经过加密处理的。Linux 的加密算法很严密,其中的口令几乎是不可能被**的。盗用账号的人一般都借助专门的黑客程序,构造出

无数个密码,然后使用同样的加密算法将其加密,再和本字段进行比较,如果相同的话,就代表构造出的口令是正确的。因此,建议不要使用生日、常用单词等作为口令,它们

在黑客程序面前几乎是不堪一击的。特别是对那些直接连人较大网络的系统来说,系统安全性显得尤为重要。
 
(3)用户ID:用户识别码,简称UID。Linux系统内部使用UID来标识用户,而不是用户名。tilD是一个整数,用户的UID互不相同。普通用户的UID默认是从500开始的。

(4)组ID:用户组识别码,简称GID。不同的用户可以属于同一个用户组,享有该用户组共有的权限. UID类似,GID唯一地标识了一个用户组。普通用户的GID默认是从500开始

的。UID与GID默认情况下是一致的。

(5)用户描述:这是给用户账号做的注解。它一般是用户真实姓名、电话号码、住址等,当然也可以悬空的。

(6)家目录:这个目录属于该账号,当用户登录后,它就会被置于此目录中,就像回到家一样。一般来说,root账号的家目录是/root,其他账号的家目录都在/home目录下,并且和

用户名同名。

⑺登录shell:用户登陆后执行的命令。一般来说这个命令将启动一个shell 程序。

例如,用bbs 账号登录后、会直接进入bbs系统,这是因为bbs账号的login command指向的是bbs 程序,等系统登录到bbs时就自动运行这些命令。

备注:UID 是用户识别码,GID 是用户组识别码。如果把普通用户的UID和GID改成与root 用户的一样,那么此用户就变成了管理员,拥有管理员的权限。

第2步:查看用户密码以及有效期的文件

用户密码以及有效期的存放文件/etc/shadow可通过【vim /etc/shadow】命令打开

查看。

shadow文件由许多条记录组成。每条记录占一行。记录了一个用户账号的所有用户密玛以及有效期等信息。每条记录由8个字段组成,字段间用冒号(: )隔开,其格式如图

管理Linux 系统的用户与用户组
管理Linux 系统的用户与用户组
例如,用bbs 账号登录后、会直接进入bbs系统,这是因为bbs账号的login command指向的是bbs 程序,等系统登录到bbs时就自动运行这些命令。

备注:UID 是用户识别码,GID 是用户组识别码。如果把普通用户的UID和GID改成与root 用户的一样,那么此用户就变成了管理员,拥有管理员的权限。

(1)用户名:灶与/etc /passwd文件中的登录名相一致的用户账号。

⑵加密口令:存放的是加密后的用户口令字符,长度为13个字符。如果为空,则对应用户没有口令,能够登录但是不需要口令;如果是两个感叹号,则表示该用户没有设置密码、

不能登录进系统;如果含有不属于集合{./0-9A-Za-z}中的字符,则对应的用户不能登录。

⑶最后一次修改时间:表示从某个时刻起,到用户最后一次修改口令时的天数。时间起点对不同的系统可能不一样。例如,在SCOLinux 中,这个时间起点足1970年1月1日。

(4)最小时间间隔:指两次修改口令之间所需的最小天数。

(5)最大时间间隔:指口令保持有效的最大天数。

(6)警告时间:表示从系统开始警告用户到用户密码正式失效之间的天数。

(7)不活动时间:表示用户没有登录活动但账号仍能保持有效的最大天数。

(8)失效时间:给出的是一个绝对的天数。如果使用了这个字段,那么就给出相应账号的生存期。期满后,该账号就不再是一个合法的账号,也不能再用来登录。

系统中还有一些默认的账号,如daemon、bin 等。这些账号有特殊的用途,一般用于系统管理。这些账号的口令大部分用(*)号表示,代表它们不能在登录时使用。

【vim /etc/shadow】编辑用户密码的存放文件。把user2所在行的第一个冒号与第二个营 号之间的字符删除掉,设置user2的密码为空。

第3步:查看账号所属组文件

/etc/group 文件是用户组的配置文件,内容包括用户和用户组,并且能显示出用户是归属哪个用户组或哪几个用户组,因为一个用户可以归属一个或多个不同的用户组;同一用户

组的用户之间具有相似的特征。例如,我们把某一用户加入到root用户组,那么这个用户就可以测览rooe用户家目录的文件;如果root用户把某个文件的读写执行权限开放,root用

户组的所有用户都可以修改此文件,如果是可执行的文件(例如脚本),root用户组的用户也是可以执行的。

Linux中每建立一个用户时,同时也建立一个同名的组,此用户默认是加入到此组中。组用户文件存放在/etc/group 里面,可以通过【vim /etc/group 】命令查看,如图所示。

管理Linux 系统的用户与用户组

在图所示的文件中,有4列,每一列对应的释义如下。

第一列:用户组名称

第二列:用户组密码;

第三列: GID,即组ID

第四列:用户列表,每个用户之间用逗号(,)分割;本字段可以为空,如果为空表示用户组为GID的用户名。

第4步:查看用户组密码文件

/etc /gshadow 是/etc /group 的加密资讯文件,例如用户组(Group )管理密码就存放在这个文件中。/etc /group 是互补的两个文件;

对于大型服务器,针对很多用户和组,定制一些关系结构比较复杂的权限模型,设置用户组密码是极有必要的。例如,我们不想让一些非用户组成员永久拥有用户组的权限和特
性,这时可以通过密码验证的方式来让某些用户临时拥有一些用户组特性,这时就要用到用户组密码。

通过【vim /etc/gshadow】命令可以查看用户组密码存放文件,每个用户组独占一行,如图所示。
管理Linux 系统的用户与用户组

在图所示的文件中,有4列,每一列对应的释义如下。

第一列:用户组名称;

第二列:用户组密码,这个段可以是空的或有叹号(!),如果是空的或有叹号(!),表示没有密码;

第三列:用户组管理者,这个字段也可为空,如果有多个用户组管理者,用“,”号分割;

第四列:组成员,如果有多个成员,用逗号(,)分割。

第5步:建立与删除用户 的主要命令以及释义如下:

CentOS中,建立与删除用户的主要命令以及释义如下。

【useradd yhy】新建yhy用户。

【passwd yhy】为yhy用户设置密码,密码输入时无任何显示。

【useradd ybs-d /home/y】新建ybs用户,并指定家目录为/home/y。

【useradd user1-d / home/userl】此处可以不加-d 参数,因为用户的默认家目录就在/home下与用户名相同的目录下。

【useradd user2】增加新用户user2,用户默认家目录为/ home/user2。

【userdel yhy】删除用户,但不删除家目录。

【userdel-r ybs】删除ybs用户,并删除用户家目录。

【usermod-I user2 user1】修改用户user1名称为user2。

【usermod-L user2】锁定用户名user2,锁定后user2不能登录。

【usermod-U user2】解锁用户名user2。

【su-user1】root用户切换到普通用户,不需要密码。

【su-roof】普通用户切换到root用户,需要root密码。

备注:【su】命令后加“-”横杆,切换用户时切换到用户的家目录,否则,不改变当前路径

管理Linux 系统的用户与用户组
管理Linux 系统的用户与用户组管理Linux 系统的用户与用户组管理Linux 系统的用户与用户组

第6步:建立与管理用户组

CentOS中,建立与管理用户组的主要命令以及释义如下。

【groupadd grp 1】新建用户组grp1

【grouPdei grp1】删除用户组grp1

【groupmod grp2 grp1】修改用户组名称grp1为grp2。

【gpasswd-a user2 grp2】把用户user2加人到用户组grp2中

【gpasswd-d user2 grp2】把用户user2从用户组grp2中删除。

第7步:几个重要的命令补充

有关用户的操作还有以下命令,详细释义如下。

[who am i 】显示当前以哪个用户登录。

【w】显示目前登人系统的用户详细信息,包括登录IP地址等。

【who】显示目前登入系统的用户简要信息。

【last】记录每个用户的登录次数和持续时间等信息。

【finger】查找并显示用户信息如【finger zhangs】表示查看zhangs用户信息。

【su user]切换用户但不切换当前目录。

【su - userl】切换用户并切换到user的家目录。

【ntsysv】启动/关闭系统中的服务。

【setup】设置系统运行参数。
管理Linux 系统的用户与用户组