网络服务器配置与管理(第2版)
上QQ阅读APP看书,第一时间看更新

2.4 工作任务5——Linux用户及权限管理

2.4.1 任务目的

Linux操作系统用户也是一些服务的默认本地用户,如FTP、NFS和postfix等服务。新星公司决定搭建属于自己的Linux服务器,信息中心决策层认识到,对于初次接触到服务器技术的管理员来说,必须要熟练掌握Linux用户及权限的管理技能。因此公司决定开展培训,让管理员掌握Linux用户及用户组管理、权限管理的操作技能。

2.4.2 任务规划

新星公司开展Linux用户及用户组管理、权限管理的培训,培训的内容包括:认识RedHat Enterprise Linux 6.4的用户文件、用户组文件,掌握用户及用户组管理工作技能,权限管理工作技能。

2.4.3 Linux用户文件

Linux用户文件包括/etc/passwd、/etc/shadow两个文件。

1./etc/passwd用户账号文件

Linux用户被划分为3类:根用户、系统用户和普通用户。根用户(root用户),也称为超级用户,root用户不允许修改用户名。根用户是系统的所有者,对系统拥有最高的权力,可以对所有文件、目录进行访问,可以执行系统中的所有程序。系统用户是Linux系统正常工作所必需的内建的用户。普通用户是为了让使用者能够使用Linux系统资源而建立的,它的权限由系统管理员规定。

在Linux操作系统中,每一个用户都有一个唯一的身份标识,称为用户ID(UID),root用户的UID为0,普通用户的UID大于等于500,系统用户的UID介于1和499之间。

Linux系统所有用户的信息保存在/etc/passwd文件中,该文件中每个用户占用一行,每行有7个字段,各字段之间用“:”隔开,格式为:

username:即用户名,是用户所在系统的标识,通常长度不超过8个字符,由字母、数字和下划线或句点组成。

password:即密码,该字段存放加密后的用户密码,通常用一个特殊字符“x”表示,真正的密码已转移到/etc/shadow文件中。

UID:即用户标识号,UID是系统中的唯一标识号,必须是整数,通常和用户名一一对应。

GID:即用户组标识号,该字段记录用户所属的基本用户组。

userinfo:即个人信息,该字段记录用户的真实姓名、电话、地址和邮编等个人信息,各项之间用“,”分隔,该字段内容可以为空。

home:即用户属主目录,该目录是用户登录系统后的默认目录,普通用户的属主目录是/home目录下的同名目录,root用户的属主目录为/root。

shell:用户以文本方式登录系统后启动的shell。

2./etc/shadow用户密码文件

操作系统将用户的口令加密之后放在另一个文件/etc/shadow中,并且对该文件设置严格的权限,只有根用户root可以读取该文件。/etc/shadow文件中每个用户密码占用一行,每行有9个字段,各字段之间用“:”分隔,其格式为:

username:该字段是用户的登录名。

encypted password:该字段是已加密的用户口令(即密码)。

number of days:该字段表示从1970年1月1日到上次修改密码的天数。

minimum password life:该字段表示两次修改口令之间至少要经过的天数。

maximum password life:该字段表示口令有效期的最大天数,如果是99999则表示密码永不过期。

warning period:该字段表示在密码失效前,提醒用户密码即将失效的天数。

disable account:该字段表示密码过期之后,停用该账号的天数。

account expiration:该字段表示账号失效、禁止登录的时间。

reserved:该字段暂未使用,系统保留。

2.4.4 Linux用户管理命令

用户管理主要包括用户的添加、修改密码和删除等操作。

1.添加新用户

useradd命令用于创建新用户,只有超级用户root才能使用此命令。使用useradd命令创建用户后,应利用passwd命令为新用户设置密码。例如,添加用户bob、mary的命令如下:

可用cat或tail指令查看用户信息:

可以看到,用户bob、mary添加成功,同时还添加了许多其他的默认设置。

2.修改用户密码

通过passwd命令可以完成为新建用户设置口令。比如要为刚才创建的用户设置口令,命令如下:

修改用户的密码需要两次输入以进行确认。密码是保证系统安全的一个重要措施,在设置密码时,不要使用过于简单的密码。Linux中输入密码的时候,没有任何字符提示,这不同于Windows系统有“*”或其他符号提示。

3.删除用户

userdel命令可删除用户,只有超级用户root才能使用此命令,例如要删除用户bob:

2.4.5 Linux用户组文件

Linux用户组文件是/etc/group文件。用户组的信息保存在/etc/group文件中,所有用户都可读取该文件,该文件存储着用户组的相关信息,/etc/passwd文件中每个组占用一行,每行有4个字段,各字段之间用“:”隔开,格式为:

组名:组密码:用户组标识(GID):组成员列表

组名:是用户组所在系统的标识。

组密码:用户组的密码,由于安全原因,相应内容已转到gshadow文件中,在此用“x”表示。一般不设组密码。

用户组标识(GID):数字在系统内必须唯一,0是root组的组标识,1~499为系统组标识,普通组标识在500~65535之间。

组成员列表:组内的成员,多个成员之间用“,”隔开。

2.4.6 Linux用户组管理

用户组的管理主要包括用户组的添加、修改和删除等操作。这些操作与系统中的/etc/group文件密切相关。

1.添加用户组

groupadd,添加新用户组,其命令格式为:

groupadd用户组名

例如,添加一个新的用户组student,命令如下:

用户组添加成功后,该组的信息将保存在/etc/group文件中。

2.删除用户组

groupdel,删除用户组,命令格式为:

groupdel用户组名

例如,删除用户组student,命令如下:

3.修改组成员

gpasswd,修改组内成员,命令格式为:

gpasswd [选项] 用户名 组名

其中,选项“-a”实现向组内添加用户,选项“-d”实现从组中删除用户。用户必须是系统中已经存在的用户,若用户不存在,必须首先用useradd指令添加。组名也必须是已经存在的组,若组不存在,必须事先用groupadd指令添加。

例如,将用户mary、bob添加到组staff,命令如下:

例如,将用户bob从组staff中删除,命令如下:

需要指出的是,Linux系统在添加用户的时候,会自动生成一个同名用户组。

2.4.7 Linux权限管理

Linux的文件或目录被一个用户拥有时,这个用户称为该文件的所有者,同时该文件还被指定的用户组拥有,这个用户组称为文件所属组。文件的权限由权限标志来决定,权限标志决定了文件的所有者、文件的所属组、其他用户对文件访问的权限。

1.使用ls命令查看目录或文件的权限

使用ls命令加-l参数(或使用ll命令),可以查看目录或文件的参数:

ls-l 文件名或上级目录

普通文件在文本界面下用白色表示,目录文件用蓝色表示。

第一列的第一个字符表示文件的类型,“-”表示普通文件,“d”表示目录,“l”表示链接文件。第2—10个字符表示文件或目录的权限,这9个字符每3个一组。第一组表示目录或文件所有者的权限,r读权限、w写权限、x执行权限和-没有权限;第二组表示所有者同组的用户权限,第三组表示其他用户的权限。

第三列表示所有者,第四列表示文件所属的组。

2.chown命令

Linux为每个文件都分配了一个文件所有者,称为文件主,对文件的控制取决于文件主或超级用户(root)。文件的所有关系是可以改变的,chown命令用来改变某个文件或目录的所有权。chown命令的格式为:

chown 用户:组 文件1 [文件2…]

用户可以是用户名或用户UID,组可以是组名或GID,文件是以空格隔开的文件列表,可以用通配符标识文件名。“:”与组名之间没有空格。

例如:

3.文字表示法修改权限

Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件或目录进行访问与操作。访问权限分为3种不同类型的用户:文件所有者(u)、同组用户(g)和可以访问系统的其他用户(o)。

访问权限规定了3种访问文件或目录的方式:读(r)、写(w)和执行(x)。

chmod命令用于改变文件或目录的访问权限,用户可用该指令控制文件或目录的访问权限。只有文件主或超级用户root才有权用chmod指令改变文件或目录的访问权限。chmod命令的格式为:

chmod [ugoa][+-=][rwxugo] 文件名或目录

其中,u表示文件所有者,g表示同组用户,o表示其他用户,a表示所有用户,+表示增加权限,-表示减掉权限,=表示赋予权限。例如:

4.数字表示法修改权限

指定文件的权限还有一种更方便、更实用的方法,称为数字权限。也就是用0~7这8个数字来表示文件的权限。在Linux中和一个文件相关的有3种类型的用户:u、g、o。而每一类用户又有3种访问权限:r、w、x。把具体的访问权限用二进制数来表示,就可以得到每一类用户的权限的数字化表示形式。举例说明如下:

用ls-l命令查看home目录,显示如下结果:

在上面的信息中,第一列表示了文件abc的权限是“rw-r--r--”,分别表示了u、g、o3类用户的权限。其中所有者权限是“rw-”,同组用户的权限是“r--”,其他用户的权限是“r--”。我们将rwx看成二进制数,如果有则用1表示,没有则用0表示,“rw-r--r--”就可以表示成为:“110100100”。这一串二进制数中每3位数一组,共3组,分别表示了3类用户的权限。将二进制串每3位一组转化为十进制数,就得到“644”。文件abc的权限用数字形式表示就是644。

更简单的表示方法是将r、w、x权限分别用4、2、1来表示,没有权限则是0,上例中每类用户的权限相加也会得到文件abc的权限为644。

用数字来表示文件的权限是非常方便的,特别是体现在命令的书写当中。在上面的例子中,假如要修改文件abc的权限为“rw-rw-r--”,即将文件权限设置为664,则可以用如下命令来修改:

[root@localhost home]#chmod 664 abc

2.4.8 拓展与提高

通过一个综合案例来说明Linux用户管理、权限管理。要求:以root账户登录系统,新建jinan用户、city用户组,将jinan用户添加到city用户组。新建/root/sdcet文件,设置/root/sdcet文件的所有者为jinan、属组为city。设置/root/sdcet文件权限为jinan用户可读、写和执行,city组可读、写,其他成员可读、写。

1.用户及用户组设置

2.更改文件所有者

3.更改文件权限

[root@localhost~]#chmod 766 /root/sdcet //更改sdcet文件的权限

4.列表查看

2.4.9 任务小结

通过本任务,可以掌握Linux系统的用户及用户组管理、目录或文件的权限管理。首先要熟悉有关用户及用户组的相关配置文件,掌握用户及用户组管理的工作技能。其次,熟悉目录或文件权限的表示方法,掌握目录或文件权限设置的技能。