用户和用户管理

1 用户和用户组概述

1.1 用户论述

Linux系统是一个多用户多任务的分时操作系统(服务器系统),允许多个用户同时登陆到系统上,并响应每个用户的请求。

任何需要使用操作系统的用户,都需要一个系统账号。用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。

用户在系统中是分角色的,在Linux系统中,由于角色的不同,权限和所完成的任务也不同。值得注意的是每个用户是通过UID(User ID)来唯一标识的

用户账号类型:

用户账号类型:

1)超级用户:

  • 默认是root用户。在每台unix/linux操作系统中都是唯一且真实存在的,通过它可以登录系统,可以操作系统中任何文件和命令,拥有最高的管理权限。在生产环境,一般禁止root账号远程登录SSH连接服务器,以加强系统安全。
  • 其UID和GID均为0

2)普通用户:

  • 这类用户一般是由具备系统管理员root的权限的运维人员添加的。
  • 在 centos 7中 ,普通用户的UID范围为1000-60000。

3)程序用户:

  • 与真实用户区分开来,这类用户的最大特点是安装系统后默认就会存在,且默认情况不能登录系统。它们是系统正常运行必不可少的,他们的存在主要是方便系统管理,满足相应的系统进程都文件属主的要求。例如系统默认的bin、adm、nodoby、mail用户等。
  • 在centos 7中,系统用户的UID范围为1-999。
  • 由于服务器角色的不同,有部分用不到的系统服务被禁止开机执行,因此,在做系统安全优化时,被禁止开机启动了的服务对应的虚拟用户也是可以处理掉的(删除或注释)。

1.2 用户组介绍

linux系统中的用户组(group)就是具有相同特性的用户(user)集合。

有时我们需要让多个用户具有相同的权限,比如查看、修改某一个文件,只需要把授权的用户都加入到同一个用户组里,然后通过修改该文件对应组的权限,让用户组具有符合需求的操作权限,这样组内所有用户对该文件就会具有相同的权限,这就是用户组的用途。

将用户分组是linux系统中对用户进行管理及控制访问权限的一种手段,通过定义用户组,在很大程度上简化了运维管理工作。

组账号类型:

1)基本组(私有组)

  • 创建用户账号时,如果没有指定用户所属的组,系统会建立一个和用户名相同的组,这个组就是基本组,默认只容纳一个用户。
  • 在用户所属组中的第一个组称为基本组,基本组在/etc/passwd 文件中指定。
  • 基本组有且唯一。

2)附加组(公共组)

  • 在用户所属组中,除了第一个组(基本组)以外的其他组就是附加组,附加组在/etc/group文件中指定。
  • 附加组可有可无,且可以有多个。

2 用户账号管理

用户账号的管理工作主要涉及到用户账号的添加、修改和删除。

2.1 用户信息存储文件

2.1.1 用户账号文件/etc/passwd

用途:保存用户名称、宿主目录、登录shell等基本信息。

文件位置:/etc/passwd。

每行说明:每一行对应一个用户的账号记录。

行内字段含义:

 

 

冒号(:)作为分隔符,将每行分为了7段。以第一行“root:x:0:0:root:/root:/bin/bash”为例,解释每段含义:

  • 字段1:root,用户名。

  • 字段2:x,密码占位符。为保障用户密码的安全性,密码实际存放在/etc/shadow文件中。

  • 字段3:0,用户编号UID。

  • 字段4:0,用户基本组编号GID。

  • 字段5:root,用户描述说明。

  • 字段6:/root,用户家目录。

  • 字段7:/bin/bash,用户的登录shell。

 

 

2.1.2 用户口令文件/etc/shadow

用途:存储用户的密码信息,又称为“影子文件” 。/etc/shadow 文件只有 root 用户拥有读权限,其他用户没有任何权限,这样就保证了用户密码的安全性。

文件位置:/etc/shadow。

每行说明:每一行对应一个用户的密码信息。

查看文件内容:

 

 

/etc/shadow文件也是以冒号(:)作为分隔符,将每行分成了9段,每个字段的含义如下:

  • 字段1:用户名。

  • 字段2:密码加密值。当此字段为*或!!时,表示用户不能登录到此系统。当为空时,表示用户无需密码即可登录。

  • 字段3:上次修改密码时间。从1970/1/1到上次修改密码的天数。 0 有特殊意思,表示用户应该在下次登录系统时更改密码。

  • 字段4:最小修改密码间隔天数,即两次修改口令之间所需的最小天数。若不设置,默认为0,表示当天即可修改。 空字段或 0 都表示当天即可修改。

  • 字段5:密码有效期。若为99999,表示永久有效。

  • 字段6:警告时间。表示从系统开始警告用户到用户密码正式失效之间的天数。空字段或者 0 表示没有密码警告期。

  • 字段7:密码过期后的宽限天数。

    密码过期后,仍然接受使用此密码进行登录的天数(在此期间,用户应该在下次登录时修改密码)。

  • 字段8:账户失效时间。从1970/1/1日起,到用户被禁用的天数。默认为空。

    账户过期不同于密码过期。账户过期后,用户将不被允许登录。密码过期后,用户将不被允许使用此密码登录。

  • 字段9:保留字段。此字段保留作将来使用。


2.2 添加用户账号 useradd

 

 常见类型

-u 指定用户的UID,要求该UID未被其他用户使用
-d 指定用户的宿主目录位置(当与-M一起使用时,-d不生效)。必须使用绝对路径指定目录,且不需要事先创建目录。
-e 指定用户的账户失效时间,可使用YYYY-MM-DD的日期格式
-g 指定用户的基本组名(或使用GID号),对应的组名必须已存在
-G 指定用户的附加组名(或使用GID号),对应的组名必须已存在
-M 不建立宿主目录(一般用于系统用户账号)
-s 指定用户的登录shell(比如/bin/bash为可登陆系统,Isbin/nologin和/bin/false禁止用户登陆系统)

 

 
 
 
 
 
 
 
 
 
示例:

 

 

2.3 设置/更改用户口令 passwd

root用户可以指定用户名作为参数,对指定账号的密码进行管理。不指定用户名时,修改当前账号的密码。

普通用户只能执行单独的passwd命令修改自己的密码。

-d 清空指定用户的密码,仅使用用户名即可登录系统
-l 锁定用户密码,锁定的用户账号将无法再登录系统。(一定要事先设好密码)
-u 解锁用户密码
-s 查看用户账户的状态(是否被锁定)

 

 
 
示例

 2.4usermod命令用于修改已有用户账户的属性

 
-I 修改登录用户名称
-L 锁定用户
-U 解锁用户
-e 指定失效时间
 
 
 
 
 

3 如何给文件与目录设置权限与归属

3.1 我们通过命令可以看到根目录下方目录的权限

 

 

读取r:允许查看文件内容、显示目录列表

写入w:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录

可执行x:允许运行程序、切换目录

归属(所有权)

属主:拥有该文件或目录的用户账号

属组:拥有该文件或目录的组账号

文件夹的最小权限时x,一定要带上否则无法进行任何操作,超级管理员不受影响

3.2 查看文件/目录的归属与权限

 

 

 

 

 

 

posted @ 2022-10-04 22:59  原味苦茶  阅读(207)  评论(0编辑  收藏  举报