Linux:详解 用户,用户组的解释创建等。

Linux中用户和组的类型

1、Linux下的用户可以分为三类

超级用户——用户名为root,它具有一切权限,只有进行系统维护(例如:建立用户等)或其他必要情形下才用超级用户登录,以避免系统出现安全问题。

系统用户(伪用户)——是Linux系统正常工作所必需的用户。主要是为了满足相应的系统进程对文件属主的要求而建立的,例如:bin、daemon、adm、lp等用户。系统用户不能用来登录。

普通用户——是为了让使用者能够使用Linux系统资源而建立的,我们的大多数用户属于此类。

2、Linux中的组有以下两类

基本组(私有组):建立账户时,若没有指定账户所属的组,系统会建立一个和用户名相同的组,这个组就是基本组。附加组(公有组):可以容纳多个用户,组中的用户都具有组所拥有的权利。

3、Linux中用户和用户组的配置文件

在Linux中,用户账号、密码、用户组信息和用户组密码均是存放在不同的配置文件中的。

在这里插入图片描述

(1)用户账号文件——/etc/passwdpasswd

是一个文本文件,用于定义系统的用户账号,由于所有用户都对passwd有读权限,所以该文件中只定义用户账号,而不保存口令。

如下命令可以查看用户账号文件

[root@node13 ~]# head -1 /etc/passwd        head命令显示第一行
root:x:0:0:root:/root:/bin/bash

上面输出的结果是用户的账号信息,以 隔离,有7个字段,对于字段的解释如下:

第一个字段:
账号名称:用户登录Linux系统时使用的名称。

第二个:
密码:以前是以加密格式保存密码的位置,此处只是密码占位符“x”或“*”。若为“x”,说明密码经过了shadow的保护。

第三个:
UID:用户的标识,是一个数值,用它来区分不同的用户,每个用户都有一个UID数值:

 超级用户的UID——0 
 系统用户的UID——1~999 
 普通用户的UID——≥1000

第四个:
GID:用户所在基本组的标识,是一个数值,用它来区分不同的组,相同的组具有相同的GID。

第五个:
个人资料:可以记录用户的完整姓名、地址、办公室电话、家庭电话等个人信息。

第六个:
主目录:类似Windows 的个人目录,通常是/home/username,这里username是用户名,用户执行“cd~”命令时当前目录会切换到个人主目录。

第七个:
Shell:定义用户登录后激活的Shell,默认是Bash Shell

(2)用户密码文件——/etc/shadow

如下命令查看字段:

[root@node13 ~]# head -1 /etc/shadow
root:$6$3EZ8vA1hgB3VTWb0$IlamoUyDh1RS.wftgz4qj0kmVrka7Yi6SgIo1aM6eu8nbFM9haOVRTtNDDfkix8MCugx8p8lufmItgsOsu1rl1:19083:0:99999:7:::

可以知道有9个字段,含义分别如下:

在这里插入图片描述

(3)用户组账号文件——/etc/group

系统中的每个组,在/etc/group文件中有一行记录,任何用户均可以读取用户组账户信息配置文件。

字段依次说明:
在这里插入图片描述

用户管理

添加用户

命令格式: useradd [选项] <username>

常用选项如下:
在这里插入图片描述
示例1:新建一个用户zhang3,查看passwd、shadow文件中的变化,并确认该用户的家目录中的初始配置文件。

[root@localhost ~]# useradd zhang3
[root@localhost ~]# tail -1 /etc/passwd
zhang3:x:1001:1001::/home/zhang3:/bin/bash
[root@localhost ~]# tail -1 /etc/shadow
zhang3:!!:16925:0:99999:7:::       //注意密码字段的内容为“!!”,表示密码尚未设置
[root@localhost ~]# ls -ld /home/zhang3
drwx------. 3 zhang3 zhang3 74 11月   4 15:58 /home/zhang3
[root@localhost ~]# ls -A /home/zhang3
.bash_logout .bash_profile .bashrc .mozilla

注意密码字段的内容为“!!”,表示密码尚未设置

示例2:新建一个用户wang5,指定其UID为1005、登录Shell为/bin/bash,账号永不过期
命令如下:

[root@localhost ~]# useradd -u 1005 -s /bin/bash -e -1 wang5

修改用户信息—usermod命令

命令格式:usermod [选项] username

常用的选项包括 -c,-d,-m,-g,-G,-s,-u 等,
这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值。
另外,还可以使用如下选项:

 -l 新用户名—更改账户的名称,必须在该用户未登录的情况下才能使用。
 -L—锁定(暂停)用户账户,使其不能登录使用。
 -U—解锁用户账户。

示例:将用户wang5的名称修改为wangwu,并暂停使用该账号。

[root@localhost ~]# usermod -l wangwu -L wang5

为用户账号设置密码—passwd命令

Linux的账户必须设置密码后,才能登录系统

命令格式:passwd [账户名]

常用选项:

在这里插入图片描述
示例1:修改wangwu密码

[root@localhost ~]#  passwd wangwu
Changing password for user wangwu.
New password: 
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 
passwd: all authentication tokens updated successfully.
[root@localhost ~]# 

删除用户账号—userdel命令

命令格式:userdel [-r] 账户名

-r—在删除该账户的同时,一并删除该账户对应的主目录。

例:删除wang5用户:

[root@localhost ~]# userdel -r wangwu

用户间切换—su(substitute user)命令

命令格式:su [用户名]

从root用户切换到任何用户不需要密码验证,而从普通用户到root或其他普通用户均需要输入目标用户的密码且验证成功后才可切换。

su和su -命令区别就是加载的配置文件不一样:

su切换方式加载的文件:~/.bashrc,/etc/bashrc
su -切换方式加载的文件:/etc/bashrc,/etc/profile,~/.bashrc,~/.bash_profile

控制用户对系统命令的使用权限

使用sudo命令可以提高普通用户的操作权限,不过这个权限需要root用户进行配置/etc/sudoers文件才可使用。

sudo的执行流程如下(默认只有root用户能使用):
当用户执行sudo时,便会让用户输入自己的密码来确认(root执行sudo时不需要输入密码);若欲切换的身份与执行者身份相同,那也不需要输入密码。若密码输入成功,系统会去/etc/sudoers文件中查找该用户是否有执行sudo的权限;若用户具有执行sudo的权限,便开始sudo后续接的命令;

sudo -l:列出当前用户可以执行的命令。只有在sudoers里的用户才能使用该选项。
sudo -u 用户名 命令:以指定用户的身份执行命令。后面的用户是除root以外的

用户组管理

创建用户组命令格式: 
groupadd   [-r]   用户组名称

常用选项:

-g GID——指定新用户组的组标识号(GID),默认值是已有的最大的GID加1。
-r——建立一个系统组账号,与-g不同时使用时,则分配一个1~999的GID。

创建用户组

示例:向系统中添加一个组ID为1001,组名为group1的新组。

[root@localhost ~]# groupadd -r group1 -g 1001

修改用户组属性

命令格式: 
groupmod  选项  用户组

常用选项:

 -g  GID——为用户组指定新的组标识号。 
 -n  新用户组——将用户组的名字改为新名字修改用户组的名称和用户组的GID值。

示例:将组group1的GID修改为2000,组名修改为group11。

[root@localhost ~]# groupmod -n group11 -g 2000 group1 

添加/删除组成员

命令格式: 
gpasswd  [选项]  [用户]  [组]

注意:只有root用户和组管理员才能够使用该命令。

选项:

 -r 删除组密码 
 -a——把用户加入组 
 -d——把用户从组中删除。 
 -M——可同时添加多个用户 
 -A——给组指派管理员。

示例:将zhang3、li4用户同时加入group1组,并指派zhang3为管理员。

[root@localhost ~]# gpasswd -M zhang3,li4 group1 -A zhang3

删除组账户

命令格式: 
groupdel   用户组名

示例:从系统中删除组group11
被删除的组若是基本组,则必须先删除引用该基本组的用户,然后再删除该基本组。

[root@localhost ~]# groupdel group11

查询用户和组信息

[root@node13 ~]# id 用户名  显示出某个用户的详细信息
[root@node13 ~]# groups 用户名   显示出用户的所属组信息

查询li4信息:

[root@localhost ~]# id li4
uid=1002(li4) gid=1002(li4) groups=1002(li4),2001(group1)
[root@localhost ~]# groups li4
li4 : li4 group1

查看用户登录系统的情况

1,users,查看当前登录系统的用户

查看当前登录系统的用户:

[root@localhost ~]# users
redhat root

2,,last:列出目前与过去登入系统的用户相关信息

该命令默认会去读取/var/log/wtmp文件,并把该文件记录的登入系统的用户名单全部显示出来。

[root@node13 ~]# last -2  显示最近的两条登录信息
[root@node13 ~]# last -f /var/log/wtmp  -n 3 显示/var/log/wtmp文件中最近的两条登录信息

3、如果想要知道每个账号的最近登录时间,则可使用lastlog查看,该命令会读取/var/log/lastlog文件。

[root@node13 ~]# lastlog

4、w:显示登录到系统的用户信息。

[root@localhost ~]# w
19:03:58 up  6:51,  2 users,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.107.1    12:12    0.00s  0.30s  0.01s w
redhat   pts/1    192.168.107.1    12:33    3:14m  0.06s  0.06s -bash

参数解释:

TTY:表示用户使用的TTY名称    
FROM:表示用户从哪里登录进来
idle:表示空闲时间    
JCPU:在某段时间内所有与该终端相关的进程任务所耗费的cpu时间    	
PCPU:当前活动进程使用的系统时间    
WHAT:表示当前用户执行的进程名称和选项

5、who:显示目前登录到系统的用户

who通常通过/var/run/utmp文件来获取信息 。

[root@localhost ~]# who
[root@localhost ~]# who -a 所有信息
[root@node13 ~]# who -r  显示当前系统的运行级别
[root@node13 ~]# who -u  显示当前每个用户的用户名、登录终端、登录时间、终端活动、进程和主机名
[root@node13 ~]# who -T  显示tty终端的状态,“+”表示对任何人可写,“-”表示仅对root用户或所有者可写,“?”表示遇到终端故障
### VMware 虚拟机中配置静态IP地址及管理用户用户组 #### 一、VMware虚拟机内网络设置为静态IP地址: **步骤说明** 1. **进入系统网络配置界面** - 对于基于Linux系统的虚拟机:一般可以使用命令行工具如`nmcli`, `nmtui` 或者编辑网卡配置文件 `/etc/sysconfig/network-scripts/ifcfg-eth0`(对于CentOS/RHEL) 来进行更改;对于Debian/Ubuntu等发行版,则可能是通过 `/etc/netplan/*.yaml` 文件来进行相应调整。 - Windows系统则可以在“控制面板” -> “网络和共享中心”的适配器属性里找到IPv4/TCPv6协议项,并选择其属性按钮。 2. **指定固定IP信息** - 在上述提到的位置输入您希望分配给该虚拟机的固定IP地址及其相关信息(例如子网掩码、默认网关以及DNS服务器)。确保所设值不会与其他设备冲突并且属于正确范围之内。 3. **保存并重启服务** - Linux下需要重启networking服务 (`service network restart`) 或直接重启机器; - Windows则只需点击确定即可生效新设定。 4. **验证连通性和解析功能是否正常工作** - 使用ping测试到其他主机或外部网站确认连接状况良好;尝试访问域名检查DNS配置无误。 #### 二、增加、编辑或移除用户账号与权限分组 **针对Linux环境的操作指南:** 1. **创建新的普通账户** ```bash sudo adduser 用户名 ``` 2. **建立自定义的角色集合(即用户组)** ```bash sudo groupadd 组名称 ``` 3. **将现有成员加入特定组织** ```bash sudo usermod -aG 目标群组 成员名字 ``` 4. **更新个人信息资料(比如全称显示)** ```bash sudo chfn 登录标识符 ``` 5. **变更登录口令强度** ```bash passwd 指定ID ``` 6. **从系统中彻底清理不再使用的身份记录** ```bash sudo deluser --remove-all-files 用户标识; sudo delgroup 群体标签 ``` 7. **修改密码策略限制规则** 进入/etc/login.defs文档,根据实际需求定制最小长度、最长有效期之类的条款内容 8. **赋予管理员级别的特权** 编辑sudoers文件(`visudo`) 添加对应条目授予超级用户权利给非root人员 9. **定期审查活动日志保证安全合规性** 查看/var/log/auth.log等相关路径下的历史动作跟踪数据排查异常行为模式 请注意,在执行以上任一步骤之前,请确保拥有足够的权限(通常要求root权限),并谨慎处理以免造成不必要的损害影响业务运作。如果不确定如何操作某些高级特性建议先查阅官方手册获取更详细的指导方针。
评论 28
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员Fy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值