Linux用户与组管理

2021/6/20 7:30:48

本文主要是介绍Linux用户与组管理,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、用户和用户组

1.1 什么是用户:

Linux是多用户多任务的操作系统,也就是说,多个用户可以同时登陆执行不同任务。用户需要使用系统资源则需向系统管理员申请账户进入系统。不同的用户则拥有不同的权限。

多用户的分类:

  1. 超级用户:拥有对系统的最高管理权限,即root用户。
  2. 普通用户:只能对自己目录下的文件进行访问和修改,具有登录系统的权限,www用户、ftp用户等。
  3. 虚拟用户:也叫“伪”用户,这类用户最大的特点是不能登录系统,它们的存在主要是方便系统管理,满足相应的系统进程对文件属主的要求。例如系统默认的bin、adm、nobody用户等,一般运行的web服务,默认就是使用的nobody用户,但是nobody用户是不能登录系统的。

1.2 什么是用户组:

当我们需要让多个用户都拥有某一个权限,就可以把他们放进同一个用户组里,方便集中管理。

用户组的分类:

  1. 主用户组(primary group):主用户组的信息保存在/etc/passwd 文件中
  2. 次用户组(secondary group)次用户组的信息保存在/etc/group 中

当用户被创建之后默认属于同名用户组,即主用户组,后来再将该用户加入其他用户组的话,加入的用户组为该用户的次用户组。

1.3 用户与用户组的关系:

  1. 一对一:一个用户可以存在一个组中,是组中的唯一成员
  2. 一对多:一个用户可以存在多个用户组中,此用户具有这多个组的共同权限
  3. 多对一:多个用户可以存在一个组中,这些用户具有和组相同的权限
  4. 多对多:多个用户可以存在多个组中,也就是以上 3 种关系的扩展

二、用户ID与组ID

在Linux系统中,是通过ID来判断是哪个用户
用户 datawhale 会被赋予一个名为Datawhale 的用户组,且成为该新建用户组的唯一成员,同时UID和GID会被分别写入/etc/passwd和/etc/group中。
UID:User ID
GID:Group ID

通常情况下,UID是递增的,上一个是1000,下一个则是1001。
系统管理员的UID为0

三、用户管理与组命令

3.1 用户的增删和修改

3.1.1 添加用户

useradd 选项 用户名
选项作用
-U手工指定用户的 UID,注意 UID 的范围(不要小于 500)。
-d手工指定用户的主目录。主目录必须写绝对路径,而且如果需要手工指定主目录,则一定要注意权限
-c手工指定/etc/passwd文件中各用户信息中第 5 个字段的描述性内容,可随意配置;
-g手工指定用户的初始组。一般以和用户名相同的组作为用户的初始组,在创建用户时会默认建立初始组。一旦手动指定,则系统将不会在创建此默认的初始组目录。
-G指定用户的附加组。我们把用户加入其他组,一般都使用附加组;
-s手工指定用户的登录 Shell,默认是 /bin/bash;
-e指定用户的失效日期
-o允许创建的用户的 UID 相同。例如,执行 “useradd -u 0 -o usertest” 命令建立用户 usertest,它的 UID 和 root 用户的 UID 相同,都是 0;
-m创建用户时强制建立用户的家目录。在建立系统用户时,该选项是默认的;
-r创建系统用户

3.1.2 删除用户

userdel 选项 用户名

3.1.3 修改用户

usermod 选项 用户名
选项作用
-c用户说明 修改用户的说明信息,即修改 /etc/passwd 文件目标用户信息的第 5 个字段;
-d主目录 修改用户的主目录,即修改 /etc/passwd 文件中目标用户信息的第 6 个字段,需要注意的是,主目录必须写绝对路径;
-e日期 修改用户的失效曰期,格式为 “YYYY-MM-DD”,即修改 /etc/shadow 文件目标用户密码信息的第 8 个字段;
-g组名 修改用户的初始组,即修改 /etc/passwd 文件目标用户信息的第 4 个字段(GID);
-uUID 修改用户的UID,即修改 /etc/passwd 文件目标用户信息的第 3 个字段(UID);
-G组名 修改用户的附加组,其实就是把用户加入其他用户组,即修改 /etc/group 文件;
-l用户名 修改用户名称;
-L临时锁定用户(Lock);
-U解锁用户(Unlock),和 -L 对应;
-sshell 修改用户的登录 Shell,默认是 /bin/bash。

3.1.4 修改用户密码

passwd 选项 用户名
选项作用
-l暂时锁定用户,该选项会在 /etc/shadow 文件中指定用户的加密密码串前添加 “!”,使密码失效。仅 root 用户可用;
-u解锁用户,和 -l 选项相对应,也是只能 root 用户使用;
-d使账号无口令,删除密码
-f强迫用户下次登录时修改口令
-S查询用户密码的状态,显示密码信息,也就是 /etc/shadow 文件中此用户密码的内容。仅 root 用户可用;
-g修改群组密码
-n天数 设置该用户修改密码后,多长时间不能再次修改密码,也就是修改 /etc/shadow 文件中各行密码的第 4 个字段;
-x天数 设置该用户的密码有效期,对应 /etc/shadow 文件中各行密码的第 5 个字段;
-w天数 设置用户密码过期前的警告天数,对于 /etc/shadow 文件中各行密码的第 6 个字段;
-i日期 设置用户密码失效日期,口令过期后多少天停用账户,对应 /etc/shadow 文件中各行密码的第 7 个字段

3.2 用户组管理

3.2.1 添加用户组

groupadd 选项 用户组
选项作用
-gGID 指定组 ID;
-r创建系统群组。

3.2.2 删除用户组

groupdel 组名

3.2.3 修改用户组属性

groupmod 选项 用户组
选项作用
-gGID 修改组 ID
-n新组名 修改组名
-o重复使用群组识别码

3.2.4 切换用户组

newgrp 目标用户组

newgrp 指令类似 login 指令,当它是以相同的帐号,另一个群组名称,再次登入系统。**newgrp 命令可以从用户的附加组中选择一个群组,作为用户新的初始组。**欲使用 newgrp 指令切换群组,您必须是该群组的用户,否则将无法登入指定的群组。单一用户要同时隶属多个群组,需利用交替用户的设置。若不指定群组名称,则 newgrp 指令会登入该用户名称的预设群组。



这篇关于Linux用户与组管理的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程