<返回更多

Linux中用户与组

2023-08-24  微信公众号  凉兮
加入收藏

一、基本概念

1、基本介绍

    linux作为一种多用户的操作系统(服务器系统),允许多个用户同时登录到系统上,并响应每个用户的请求。任何需要使用操作系统的用户,都需要一个系统账号,账号分为:管理员账号与普通用户账号。在Linux中,操作系统根据UID来判断用!根据UID来判断用户!而不是用户名!只要id为0就是管理员,哪怕有多个id为0 的账号;系统在新建账号时,会根据账号类型,自动分配递增账号的UID与GID (用户身份编号,组编号),也可自行分配。通常情况下,应当保证UID与GID唯一且不重复。

2、Linux的单用户任务和多用户任务

    在Linux下,当你登录后,你也可以同时开启很多的服务任务和进程,而各自服务都会跑的很好却对其他任务没有任何影响,这种登录一个用户登录系统执行多个服务任务和进程的情况,就称为单用户多任务。多用户任务——有时可能是很多用户同时用同一个系统,如公司几十个运维人员,每台机器都可以和被若干个运维人员登录部署或解决相关故障问题,但并不是所有的运维人员都要做同一件事,所以就有了多任务、多用户的情况。注:多用户、多任务并不是大家同时挤到一起,在一台机器的键盘和显示器前来操作机器,多用户可能是通过SSH客户端工具等远程工具等远程登录服务器来进行,比如对服务器的运程控制,只要具有相关用户的权限,任何人都是可以上去操作访问服务器。

3、Linux系统用户角色划分

    用户在系统中是分角色的,在Linux系统中,由于角色的不同,权限和所完成的任务也不同;值得注意的是用户的角色是通过UID和GID识别的;特别是UID,在运维工作中,一个UID是唯一标识一个系统用户的账号。

用户账户: 

超级用户root(0) 

 程序用户(1~499) 

普通用户(500~65535)

超级用户:

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

普通用户:

    这类用户一般是由具备系统管理员root的权限的运维人员添加的

程序用户:

    与真实用户区分开来,这类用户的最大特点是安装系统后默认就会存在的,且默认情况不能登录系统,它们是系统正常运行必不可少的,

    他们的存在主要是方便系统管理,满足相应的系统进程的文件属主的要求。例如系统默认的bin、adm、nodoby、mAIl用户等。由于服务器角色的不同,有部分用不到的系统服务被禁止开机执行,因此,在做系统安全优化时,被禁止开机启动了的服务对应的虚拟用户也是可以处理掉的(删除或注释)。

4、用户和用户组介绍

用户—每一个用户都有一个唯一的用户名和用户口令,在登录系统后,只有正确输入了用户名和密码,才能登录系统和相应的目录。
用户组—简单说,linux系统中的用户组(group)就是具有相同特性的用户(user)集合;有时我们需要让多个用户具有相同的权限,比如查看、修改某一个文件或目录,如果不用用户组,这种需求在授权时就很难实现。如果使用用户组就方便多了,只需要把授权的用户都加入到同一个用户组里,然后通过修改该文件或目录的对应的用户组的权限,让用户组具有符合需求的操作权限,这样用户组下的所有用户对该文件或目录就会具有相同的权限,这就是用户组的用途。将用户分组是linux系统中对用户进行管理及控制访问权限的一种手段,通过定义用户组,在很大程度上简化了运维管理工作。
用户和用户组的对应关系有:一对一、一对多、多对一和多对多.
一对一:即一个用户可以存在一个组中,也可以是组中的唯一成员。比如,root
一对多:即一个用户可以存在多个组中,这个用户就具有这些组。
多对一:即多个用户可以存在一个组中,这些用户这些组的共同权限。
多对多:即多用户可以存在于多个组中。并且几个用户可以归属相同的组;其实多对多的关系是前面三条的扩展。

二、用户及用户组配置文件介绍

在Linux中,万物皆文件,所以用户与组也以配置文件的形式保存在系统中,以下为用户和组的主要配置文件详解: -   /etc/passwd:用户及其属性信息(名称、 UID、主组ID等) -   /etc/group:组及其属性信息 -   /etc/shadow:用户密码及其相关属性 -   /etc/gshadow:组密码及其相关属性

1、/etc/passwd详解

作用:用于存储系统上的用户账户信息。每一行代表一个用户账户,包含了一些关于该用户的基本信息。每行格式:username:password:UID:GID:GECOS:home directory:shell解释1.username:用户名,用于识别用户。2.password:加密后的用户密码,现在通常是一个占位符,实际的加密密码保存在 /etc/shadow 文件中。3.UID:用户标识号,是一个唯一的数字,用于标识用户在系统中的身份。4.GID:用户所属的组标识号,指示用户属于哪个主要的用户组。5.GECOS:一般的用户信息,包括用户的全名、电话号码、地址等。6.home directory:用户的主目录,用户登录时所在的默认目录。7.shell:用户登录时使用的默认shell,用于执行命令和交互。每当创建一个新用户时,系统会将该用户的信息添加到 /etc/passwd 文件中。用户可以使用该文件中的信息来验证身份、分配资源和执行其他权限控制操作。

2、/etc/group详解

作用:用于存储系统上的用户组信息。每一行代表一个用户组,包含了一些关于该用户组的基本信息。每行格式:groupname:password:GID:userlist解释:1.groupname:用户组名,用于识别用户组。2.password:用户组密码,现在通常是一个占位符,实际的加密密码保存在 /etc/gshadow 文件中。3.GID:用户组标识号,是一个唯一的数字,用于标识用户组在系统中的身份。4.userlist:属于该用户组的用户列表,多个用户名之间用逗号分隔。每当创建一个新用户组时,系统会将该用户组的信息添加到 /etc/group 文件中。用户组可以用于管理和组织用户,例如分配文件和目录的访问权限,以及在用户之间共享资源。

3、/etc/shadow详解

用于存储系统用户的加密密码。它包含了用户账户的散列密码和其他与安全相关的信息。每行格式:username:password:lastchanged:minage:maxage:warnexpire:inactive:expire:reserved解释:1.username:用户的登录名。2.password:用户的加密密码。现在通常是一个散列值,实际的密码保存在 /etc/passwd 文件中。3.lastchanged:用户密码上次更改的日期,以自UTC 1970年1月1日以来的天数计算。4.minage:用户密码被更改之前必须保持的最小天数。5.maxage:用户密码过期之前的最大天数。6.warnexpire:在密码过期之前给用户的警告天数。7.inactive:在用户账户被禁用之前的非活动天数。8.expire:用户账户的过期日期,以自UTC 1970年1月1日以来的天数计算。9.reserved:保留字段,目前未使用。/etc/shadow 文件通常只对特定的权限用户可读,以保护用户密码的安全性。只有具备特定权限的用户才能修改、查看或操作该文件。

4、/etc/gshadow详解

用于存储系统用户组的加密密码。它类似于 /etc/shadow 文件,但是用于用户组而不是用户。每行格式groupname:encryptedpassword:administrators:members解释:1.groupname:用户组的名称。2.encryptedpassword:用户组的加密密码。通常是一个散列值,实际密码通常不直接存储在此文件中。3.administrators:具有管理权限的用户列表,以逗号分隔。4.members:属于该用户组的用户列表,以逗号分隔。

三、用户管理

1、添加用户

语法:useradd 选项 用户名选项:-u 指定用户的uid-g 指定用户的gid-G 指定附属组,可以有多个, 但是这些附属组必须是系统内已经存在的-c 指定描述-d 指定家目录-M 不建立家目录-s 指定shell-e 指定用户过期时间, 日期-f 指定用户过期时间, 天数注意:若不带任何选项默认创建与用户同名的用户主组和家目录,用户的用户主组在passwd文件查看,用户附加组在group文件查看;

2、修改用户

语法:usermod 选项 用户名选项:-g 指定用户的用户主组,选项值为id号或组名-G 指定用户的用户附加组,选项值为id号或组名-u 指定用户的uid(不指定默认从500开始向后分配)-l 修改用户的用户名

3、设置密码

语法:passwd 用户名   选项:-k,--keep-tokens 保留未过期的认证令牌-d,--delete 删除指定账户的密码(仅限root)-l,--lock 锁定指定帐户的密码(仅限root)-u,--unlock 解锁指定账户的密码(仅限root用户)-e,--expire 指定指定账户的密码过期(仅限root)-f,--force 强制操作-x,--maximum=DAYS 最大密码生存期(仅限root用户)-n,--minimum=DAYS 密码最短生存期(仅限root用户)-w,--warning=DAYS 用户在密码过期前收到警告的天数(仅限root用户)-i,--inactive=DAYS 密码过期后禁用帐户的天数(仅限root用户)-S,--status 报告指定帐户的密码状态(仅限root)      回车后即可输入新密码,需要输入两次密码且没有输入提示,修改密码也是这个语法注意:没有密码的用户是不能登录Linux系统的,没有设置密码的新创建用户处于锁定状态,需要设置密码后才能登录系统;免交互修改密码:echo "密码" | passwd --stdin 用户名

4、切换用户

语法:su [用户名]若不指定用户名,默认切换为root用户注意:root用户切换到其他用户不需要密码,反之需要密码;切换用户前后当前目录不变;普通用户不能进入root用户家目录,反之可以;

5、删除用户

语法:userdel 选项 用户名选项:-r 表示删除用户的同时删除其家目录

四、用户组管理

1、用户组添加

语法:groupadd 选项 用户组名选项:-g 指定用户组的id,若不指定默认从500开始向后分配

2、用户组修改

语法:groupmod 选项 用户组名选项:-g 指定用户组id-n 修改用户组名称

3、用户组删除

语法:groupdel 用户组名注意:若该用户组是某个用户的主组时无法被删除,除非将用户移出该用户组;
关键词:Linux      点击(10)
声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多Linux相关>>>