Linux系统命令——用户及用户组管理基本命令

目录

一、理解用户账户文件和组文件

1.用户账户文件

2.理解组文件

二、管理用户账户

1.新建用户useradd

2.删除用户userdel

3.设置用户账户密码passwd

4. 切换用户su

5.暂时赋予权限sudo

6.维护用户账户

三、管理组

1.创建组

2.删除组

3.修改组

4. 为组添加用户


Linux操作系统是一个多用户、多任务的操作系统,它允许多个用户同时登录到系统,使用系统资源。

在linux系统中用户账户分为两种,普通用户账户和超级管理员用户账户root普通用户只能进行普通工作,只能进行自身拥有或者有权限执行的文件。超级管理员用户它可以对普通用户和整个系统进行管理,对系统具有绝对的控制权!

我们在安装操作系统时,除了创建root用户外也会让我们创建一个普通用户。

用户和组的基本概念:

用户名:用来识别用户的名称,可以是字母、数字组成的字符串,区分大小写。

密码:用于验证用户身份的特殊验证码

用户标识(UID):用来表示用户的数字标识符

用户主目录:用户的私人目录,也是用户登录系统后默认所在的目录

登录shell:用户登录后默认使用的Shell程序,默认是/bin/bash

组:具有相同属性的用户属于同一个组

组标识(GID):用来表示组的数字标识符

centOS 7,UID范围 0-60000:0超级管理员,1-999程序用户,1000-60000普通用户,如果不指定UID,默认从1000开始编号

centOS 6,UID范围 0-60000:0超级管理员,1-499程序用户,500-60000普通用户

一个最高权限的超级管理员不是因为他叫root,是因为他的UID为0。

一、理解用户账户文件和组文件
1.用户账户文件

1.1 /etc/passwd文件

所创建的用户信息都存放在/etc/passwd文件中,我们通过cat查看文件

[root@localhost ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin

. . . . . .

该文件中每一行代表用户账户的资料,一行中共有7段,用:隔开

举例:root:x:0:0:root:/root:/bin/bash

用户名:加密口令:UID:GID:用户描述信息:主目录:命令解释器

1.2 /etc/shadow文件

由于所有用户对/etc/passwd均有读取权限,为了曾强安全性,用户经过加密之后的口令都放在了/etc/shadow文件中,该文件只对root用户可读,大大提高了系统的安全性。

通过cat /etc/shadow打开文件:

root : $6$416.9S5(第二段太长就省略了中间部分)IThqFX92gG/ : : 0 : 99999 : 7 : : : 

该文件中分为9段,用:隔开。

各段的含义:

字段1:用户登录名。字段2:加密后的用户口令,*表示非登录用户,!!表示没设置密码。字段3:从1970年1月1日到用户最近一次口令被修改的天数。字段4:从1970年1月1日到用户可以更改密码的天数。字段5:从1970年1月1日到用户必须更改密码的天数。字段6:口令过期前几天提醒用户更该口令。字段7:口令过期后几天账户被禁用。字段8:口令被禁用的具体日期(从1970年1月1日到禁用时的天数)。字段9:保留段,用于功能扩展。

2.理解组文件
2.1 /etc/group文件

该文件用于存放用户的组账户信息,与用户信息文件一样,任何用户都可以读,该文件每行分为4个段,每段用:隔开。cat查看一下:

[root@localhost ~]# cat /etc/group
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:

. . . . . . 

4个字段分别为:组名称:组口令(一般为空,用x占位):GID:组成员列表

2.2 /etc/gshadow文件

该文件存放组的加密口令、组管理员等信息,只对root用户可以读取。通过cat查看文件:
[root@localhost ~]# cat /etc/gshadow
root:::
bin:::
daemon:::

. . . . . . 

每一行中各段的含义:

组名称:加密后的组口令(没有就!):组的管理员:组成员列表

二、管理用户账户
1.新建用户useradd
useradd [选项] 用户名

新建一个用户:1.自动建立一个同名的基本组;2.自动建立一个同名的家目录,在/home下

一个用户必须有一个基本组,附加组可有可无,也可以有多个。

基本组:一定要有,有且只有一个。

附加组:可有可无,也可以有多个,多个附加组之间用逗号","隔开

选项及解释:

选项    解释
-u    指定uid
-s    指定的登录shell类型
-M    不建立主目录
-d    指定主目录里位置,(可以是不存在的目录)
-e    格式是YYYY-MM-DD,禁用账户的日期
-g    指定基本组
-p    设置密码
-G    指定附加组
-r    随机生成一个uid 1-999的用户,并且不建立家目录
-c    是添加备注信息
-u:指定uid

示例代码如下:

ls /home       # 查看home目录下的文件
useradd myuser1       # 添加myuser1用户
useradd -d /home/myu myuser2  # 在home目录下创建一个名为myuser2的用户,其主目录名为myu
ls /home       # 查看home目录下的文件
如下图所示:

[root@localhost ~]# useradd user1                        # 不加选项会默认从1000编号,安装系统时的普通用户UID为1000
[root@localhost ~]# tail -1 /etc/passwd
user1:x:1001:1001::/home/user1:/bin/bash                # 发现不加选项UID是1001
[root@localhost ~]# useradd -u 1010 user2                #指定UID为1010
[root@localhost ~]# tail -2 /etc/passwd
user1:x:1001:1001::/home/user1:/bin/bash
user2:x:1010:1010::/home/user2:/bin/bash                #发现用户user2的UID是1010了

-s指定的登录shell类型

[root@localhost ~]# useradd user1                              # 不加选项
[root@localhost ~]# tail -1 /etc/passwd 
user1:x:1001:1001::/home/user1:/bin/bash                      # 默认是/bin/bash


[root@localhost ~]# useradd -s /bin/false user2               #加选项,-s,指定登录的shell
[root@localhost ~]# tail -2 /etc/passwd
user1:x:1001:1001::/home/user1:/bin/bash
user2:x:1002:1002::/home/user2:/bin/false                # 发现user2登录的shell为/bin/false

-M不建立主目录

[root@localhost ~]# ls /home
custom  
[root@localhost ~]# useradd user1                # 不加选项
[root@localhost ~]# tail -1 /etc/passwd
user1:x:1001:1001::/home/user1:/bin/bash          #默认有个主目录/home/user1下

[root@localhost ~]# ls /home                         #默认有个主目录/home/user1下
custom  user1


[root@localhost ~]# useradd -M user2                # -M不建立主目录
[root@localhost ~]# tail -2 /etc/passwd                #通过查看,建立了两个用户user1,2
user1:x:1001:1001::/home/user1:/bin/bash
user2:x:1002:1002::/home/user2:/bin/bash              
[root@localhost ~]# ls /home                
custom  user1             # 在/home下只有user1的主目录,由于user2加了-M选项,没有主目录

-d指定主目录里位置,(可以是不存在的目录)

[root@localhost ~]# useradd user1
[root@localhost ~]# tail -1 /etc/passwd
user1:x:1001:1001::/home/user1:/bin/bash                #可以看到,主目录在/home/user1


[root@localhost ~]# useradd -d /home/Linux  user2        # 指定主目录在/home/Linux下
[root@localhost ~]# tail -2 /etc/passwd
user1:x:1001:1001::/home/user1:/bin/bash
user2:x:1002:1002::/home/Linux:/bin/bash                # 可以看到/home/Linux

[root@localhost ~]# ls /home
Linux  custom  user1                         #Linux就是user2的主目录

-e格式是YYYY-MM-DD,禁用账户的日期

[root@localhost ~]# useradd user1
[root@localhost ~]# tail -1 /etc/shadow          
user1:!!:19820:0:99999:7:::


[root@localhost ~]# useradd -e 2024-04-20 user2  ###设置到2024-04-20到期禁用账户##
[root@localhost ~]# tail -2 /etc/shadow                
user1:!!:19820:0:99999:7:::
user2:!!:19820:0:99999:7::19833:    # 也就是在1970-01-01算起,过19833天就禁用账户。

我们来计算下从1970-01-01起,过19833天后是不是2024-04-20

今天是4月7日,再过13天是4月20日。没错。

我们也可以看出1970-01-01起,过19833天是2024-04-20.也就是19833天后到期,即2024-04-20禁用账户。

-g指定基本组

[root@localhost ~]# tail -1 /etc/group     #创建好的一个组,组ID是3001(后面有讲解创建组)
group1:x:3001:
[root@localhost ~]# useradd user1                #不加选项创建user1,
[root@localhost ~]# tail -1 /etc/passwd 
user1:x:1001:1001::/home/user1:/bin/bash                #组ID,默认按顺序是1001
[root@localhost ~]# useradd -g 3001 user2                # 加选项,加入到基本组3001中
[root@localhost ~]# tail -2 /etc/passwd
user1:x:1001:1001::/home/user1:/bin/bash
user2:x:1002:3001::/home/user2:/bin/bash               # 发现基本组ID不是1002 ,而是3001了

2.删除用户userdel
userdel [选项] 用户名 

-r 连家目录一起删除

示例代码如下:

 
  1. userdel myuser1   # 删除用户myuser1

  2. userdel -r myus   # 删除用户myuser2

  3. ls /home       # 查看用户目录

  4. id myuser1    # 查看是否存在myuser1用户

如下图所示:

[root@localhost ~]# ls /home
custom  user1  user2  user3
[root@localhost ~]# userdel user3                 # 不加选项
[root@localhost ~]# ls /home                      # 家目录还在
custom  user1  user2  user3
[root@localhost ~]# userdel -r user2        # 加选项-r
[root@localhost ~]# ls /home                        # 家目录一并删除
custom  user1  user3                

3.设置用户账户口令
passwd命令

选项    说明
-l    锁定用户账户
-u    口令解锁
-d    将用户口令设置为空(可以登录系统),与未设置口令不同(无法登录系统)
 [root@localhost ~]# useradd -p 123456 user1        #设置密码123456

[root@localhost ~]# passwd user1                        # root用户更改user1的密码
更改用户 user1 的密码                                         # 更改为符合要求的密码:
新的 密码:                                                        #大小写字母数字特殊符号等,不少于8位
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# passwd -l user1                # 锁定用户,禁止登录
锁定用户 user1 的密码 。
passwd: 操作成功
[root@localhost ~]# passwd -uf user1                # 解锁用户
解锁用户 user1 的密码。
passwd: 操作成功

示例代码如下:

useradd myuser1     # 创建myuser1用户
useradd myuser2     # 创建myuser2用户
usermod -g mygroup myuser1   # 将用户myuser1添加到mygroup用户组
usermod -g mygroup myuser2   # 将用户myuser2添加到mygroup用户组
id myuser1         # 查看用户信息
id myuser2         # 查看用户信息
如下图所示:

4.切换用户su
使用su命令来切换用户,语法格式如下:

su 用户名
示例代码如下:

su myuser1
注意:同级跳转需要输入密码,root转到普通用户,不需要密码。

可以使用exit跳出上一次用户,当你不知道你用户是谁,可以使用如下命令:

who am i   # 显示第一次登录的用户
whoami    # 显示当前用户名
如下图所示:

5.暂时赋予权限sudo
sudo设置普通用户具有root权限,这里我们使用xjl用户来查看root用户的目录,示例代码如下:

su xjl    # 切换xjl用户
ls        # 查看目录
sudo ls    # 使用root权限查看目录
如下图所示:

发现报错了,这是因为我们的xjl用户不在sudoers文件中,所以在普通用户通过sudo命令获取用户权限之前,需要把该用户添加到sudoers文件中,需要修改/etc/sudoers文件代码,代码如下所示

vim /etc/sudoers     # 进入sudoers文件
 
####修改的内容
root    ALL=(ALL)  ALL
用户名     ALL=(ALL)    ALL
或者配置成采用sudo命令时,不需要输入密码,如下所示:

vim /etc/sudoers     # 进入sudoers文件
 
root   ALL=(ALL)  ALL
用户名     ALL=(ALL)    NOPASSWD:ALL
注意:在修改sudoers文件之前,需要先进入root用户。

修改完毕后,如下图所示:

现在就可以用xjl账号登录,然后用命令sudo,即可获得root权限进行操作,如下图所示:

6. 维护用户账户
 修改用户账户。usermod [选项] 用户名

usermod与useradd大致差不多,就是修改用户账户的。

[root@localhost ~]# useradd user1                        # 创建用户
[root@localhost ~]# useradd user2                      # 创建用户
[root@localhost ~]# groupadd group1 -g 3001              # 创建组,指定组ID 3001
[root@localhost ~]# tail -2 /etc/passwd
user1:x:1001:1001::/home/user1:/bin/bash
user2:x:1002:1002::/home/user2:/bin/bash
[root@localhost ~]# tail -3 /etc/group
user1:x:1001:
user2:x:1002:
group1:x:3001:

-g 变更所属用户组(基本组)

[root@localhost ~]# usermod -g 1002 user1
[root@localhost ~]# tail -2 /etc/passwd
user1:x:1001:1002::/home/user1:/bin/bash                # 组ID变成了1002
user2:x:1002:1002::/home/user2:/bin/bash

-G 变更附加组

[root@localhost ~]# usermod -G group1 user1      #使用组名group1,也可以使用组ID:3001
[root@localhost ~]# tail -3 /etc/group
user1:x:1001:
user2:x:1002:
group1:x:3001:user1                #附加组
[root@localhost ~]# id user1
uid=1001(user1) gid=1001(user1) 组=1001(user1),3001(group1)

-u 指定UID

[root@localhost ~]# usermod -u 1011 user1
[root@localhost ~]# tail -2 /etc/passwd 
user1:x:1011:1001::/home/user1:/bin/bash                # 指定UID1011
user2:x:1002:1002::/home/user2:/bin/bash

-s 指定登录的shell类型

[root@localhost ~]# usermod -s /sbin/nologin user1
[root@localhost ~]# tail -2 /etc/passwd
user1:x:1011:1001::/home/user1:/sbin/nologin
user2:x:1002:1002::/home/user2:/bin/bash

-L锁定用户,-U解锁用户(用户要有密码)可先通过usermod -p 12345678 user1设置密码

[root@localhost ~]# usermod -L user1                                # 锁定用户

[root@localhost ~]# passwd -S user1                        # 查看用户是否被锁定
user1 LK 2024-04-07 0 99999 7 -1 (密码已被锁定。)        

[root@localhost ~]# usermod -U user1                                #解锁用户
[root@localhost ~]# passwd -S user1                       # 查看用户是否被锁定
user1 PS 2024-04-07 0 99999 7 -1 (更改当前使用的认证方案。)

三、管理组
1.创建组
groupadd [选项] 组名

可选参数有:

-g:GID 指定新用户组的组标识号(GID)。

-o:一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。

示例代码如下:

groupadd mygroup   # 创建mygroup用户组
cat /etc/group    # 查看已有的用户组
如下图所示:

创建的用户组GID为1001。

当我们想指定创建的用户组GID时,可以使用如下代码:

2.删除组
groupdel 组名

示例代码如下:

  1. groupdel myuser1

  2. groupdel myuser2

  3. tail -n 5 /etc/group

如下图所示:

3.修改组
groupmod [选项] 组名

-

可选参数有:

-g:GID 为用户组指定新的组标识号;

-o:与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同;

-n:新用户组 将用户组的名字改为新名字。

示例代码如下:

groupmod -n yourgroup mygroup
tail -n 5 /etc/group
如下图所示:

4. 为组添加用户
-a 把用户添加到组中

[root@localhost ~]# tail -2 /etc/group
GROUP1:x:1010:
user1:x:1001:
[root@localhost ~]# gpasswd -a user1 GROUP1         # 将user1 添加到GROUP1中
正在将用户“user1”加入到“GROUP1”组中
[root@localhost ~]# tail -2 /etc/group
GROUP1:x:1010:user1
user1:x:1001:

-d 把用户从组中删除

[root@localhost ~]# tail -2 /etc/group
GROUP1:x:1010:user1
user1:x:1001:

[root@localhost ~]# gpasswd -d user1 GROUP1                # 将user1从GROUP1中删除
正在将用户“user1”从“GROUP1”组中删除
[root@localhost ~]# tail -2 /etc/group
GROUP1:x:1010:
user1:x:1001:

说明:usermod与gpasswd都可以实现将用户添加到组中,usermod是操作用户的,像是把用户推到组中去,gpasswd是操作组,像是把用户拉到组中来。

总结:

Linux系统命令是Linux操作系统的核心,它们为用户提供了一套功能强大的工具集,用于执行各种系统管理和维护任务。

文件管理命令如ls可以列出目录内容,cp用于复制文件或目录,mv移动或重命名文件,rm则用于删除文件或目录。进程管理命令中,ps可以查看当前运行的进程,tophtop提供实时进程监控,而kill命令可以终止指定的进程。

网络配置和诊断方面,ifconfigip命令用于配置网络接口,ping命令用于测试网络连接,netstatss则提供网络连接和套接字统计信息。

用户管理命令包括useradd用于添加新用户,userdel删除用户,passwd修改用户密码,susudo用于切换用户身份或以超级用户权限执行命令。

这些命令功能丰富,是Linux系统高效运行和维护的关键。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值