14.1 前言
前面我们已经大概了解了Linux的网络链接,今天我们来看看Linux用户管理的一些基础操作,话不多说,我们来开始吧!!
14.2 用户的基础知识
我们先了解一些有关linux用户的一些基础知识,我们从Linux用户开始来给大家进行讲解吧
14.2.1 Linux用户及用户组
什么是用户?
用户,也就是登陆系统的用户名,就是用来标识计算机上的资源归属,可以这样说,不管是Windows还是Linux,没有用户就无法登录系统;因此用户是必须存在的!
用户通常由以下几个要素构成:
- 用户
- 密码
- 用户uid
什么是用户组?
而在Linux中,我们不仅仅通过用户来区分资源的归属及文件的权限,也通过用户组来进行区分,一般来说,用户组是多个用户的集合,通常用于方便多个用户的批量管理,以便让多个用户拥有相同的文件操作权限。
用户组通常由以下几个要素构成
- 用户组id
- 用户组名称
- 用户组密码
- 用户组所属用户
在大概了解用户及用户组之后,我们来大概看看Linux中存储用户信息的相关文件
保存用户及用户组信息的文件:
/etc/passwd <<<< 保存系统中全部的用户名 /etc/shadow <<<< 保存各个用户的密码 /etc/group <<<<保存系统中全部的用户组名 /etc/gshadow <<<<保存各个用户组的密码
/etc/passwd文件详解
我们最常用的用户便是/etc/passwd,因此我们来通过/etc/passwd文件对用户进行详细说明
如下图
这是笔者的 etc/passwd文件,可以看到有很多行,在该文件中,每一行均为一个用户
因此:在统计有多少个用户可以登陆系统时,我们可以通过以下代码来进行操作
grep "/bin/bash$" /etc/passwd |wc -l
我们随便拿出一行来进行解释
可以看到,在该文件中,我们看到比较多的符号是冒号(:),因为在该文件中,用户之间的功能和作用通过冒号(:)进行分隔,分隔为七段,这七段作用分别如下:
第一段:用户名 第二段:密码占位符,为了安全,放到了另一文件(/etc/shadow) 第三段:用户的uid 第四段:gid 第五段:用户描述信息 第六段:用户的家目录 第七段:用户的shell类型
这里我们看到一个新的东西,uid和gid,我们来大概解释一下
用户uid
也是用户的身份标识,是计算机为用户设置的一个唯一的数字,当计算机识别用户的时候,就是通过该数字进行识别的,因此,uid不可以重复!!!
用户gid
这是用户组的身份标识,与uid一样,这是唯一的标识,当计算机识别用户组的时候,就是通过该数字进行识别的,因此,gid也不可以重复!!!
用户的描述信息
一般为用户名称,可以后面去进行自定义,这里不做解释!
用户的家目录
这里有两种分类,
- 管理员家目录
- 存放于/的root下
- 用户家目录
- 存放于/home下于用户名同名的家目录中
用户的shell类型:
常见的shell类型有两种:
- /bin/bash <<< 默认shell类型,可以登录系统
- /sbin/nologin <<<无法登入系统
在Linux中,用户大致分为以下三类:
- 管理员用户
- uid:0
- 特点:
- 默认只有一个,就是root
- 该类用户是没有任何权限约束,可以对整个系统进行任意操作!!
- 系统用户
- uid:1-999(也有一说为1-500,)
- 特点:
- 在Linux安装完成后或者安装了某个程序自动生成的用户
- 这类用户是默认不能登入系统的
- 普通用户
- uid:1000+
- 特点:
需要运行命令来创建- 普通用户权限非常小的,通常仅仅能在自己的家目录下进行操作
- 默认该用户的家目录是在/home下的和用户同名的目录
用户组的分类:
- 用户的基本组
- 在/etc/passwd中第四段gid,所指的就是用户的基本组
- 用户的附加组
- 除了主组以外的组,就是附加组
注意:
- 一个用户可以属于多个组
- 一个用户只能有一个主组,其他就是附加组
- 在用命令创建完用户的时候,默认的会创建一个组,这个组名和用户名是相同的(默认该组就是用 户的主组)
14.2.2 Linux的文件属性
我们前面知道,不论是Linux用户还是用户组,都是为了标识计算机上的资源归属,说到底是对文件进行操作的,那么问题来了,怎么查看用户在该文件下拥有什么权限呢?
查看Linux的文件属性
命令如下
ls- l 文件名
我们来随便看一个文件名并对其进行讲解,如下图
我们通过ls-l查看该文件得到上图反馈,我们来逐一进行了解,如下图
从左往右十个框,意思如下:
第一列:表示文件属性,”-“为一般文件,”d“为目录文件,“l”为链接文件 第二列:这三个为用户属主执行权限,从左到右依次为r=可读,w=可写,x可执行;-表示无此权限 第三列:这列为用户属组执行权限,从左到右依次为r=可读,w=可写,x可执行;-表示无此权限 第四列:表示除文件属主属组外其他用户的执行权限,从左到右依次为r=可读,w=可写,x可执行;-表示无此权限 第五列:代表这个目录下还有几个目录,若为一般文件时则显示为.1 第六列:为文件所属用户名称 第七列:文件所属用户组名称 第八列:文件大小,单位为字节 第九列:文件上次修改日期的时间 第十列:文件名称
这里了解一下文件属主及属组:
- 属主:文件属于谁,谁创建的文件,文件的属主就是谁
- 属组:设置文件对一个特定用户组所有的权限
注意:
- 属主、属组默认只有一个的
- 如果这个用户不属于属主和属组,那么这个用户就是属于“其他用户”
文件所属只有三类用户:
- 属主
- 属组
- 其他用户
关于用户的基础及文件属性的相关知识我们就讲到这里了,接下来我们开始了解相关命令操作
14.3 用户相关命令操作:
14.3.1 创建用户
命令:useradd
格式:
useradd [选项] 用户名
(这里默认直接创建用户,无密码但无法直接登录,需设置密码才可以通过其他终端进行登录,否则只能通过root权限去su至相关用户名!)
选项:
- -c “string” :设置新用户的描述信息
举例:
创建用户user1,描述信息为ch225
useradd -c ch225 user1
我们通过passwd来看结果
- -d /path/to/dir :设置用户的家目录
默认为/home下的与用户同名的家目录中,可通过该选项进行设置
举例:
创建用户user2,目录在/
useradd -d /user2 user2
看结果:
- -g设置用户的gid:
举例:
创建用户user3,gid为5
useradd -g 5 user3
看结果
- -G gid:指定用户的附加组
举例:
创建用户user4,附加gid为1005
useradd -G 1005 user4
看结果
- -m:在创建用户的时候,如果家目录不存在,则创建用户的家目录(默认使用该选项,不做演示)
- -M:不自动创建家目录
举例:
创建用户user5,不创建家目录
useradd -M user5
看结果:
- -r:创建系统用户
- 用此选项创建用户特点:
默认该用户能登录系统 默认用户无家目录 默认用户uid<999 默认 shell 类型是 /bin/bash举例:
创建用户user6,为系统用户
useradd -r user6
看结果
- -s shType :指定用户的shell类型
/bin/bash /sbin/nologin举例:
创建用户user7,shell类型为/sbin/nologin
useradd -s /sbin/mologin user7
看结果
- -u uid:指定用户的uid
举例:
创建用户user8,用户uid为9999
useradd -u 9999 user8
看结果
注意:(uid默认于gid为同一id,因此会出现两个9999)
14.3.2 groupadd命令
作用 : 新建用户组格式:groupadd 组名:
例子:新建一个组名是 a1 的组groupadd a1
(这里通过/etc/group来看结果,因篇幅问题,这里不做演示!)
选项:
- -g :指定用户组的组id
举例:
新建一个组名是 a2 ,组 id 是 1080 的组groupadd -g 1080 a2
14.3.3 id命令
作用:显示指定用户的 id 信息格式:id [选项] 用户名
默认选项查看所有信息,具体反馈结果如下:
选项:
- -u:显示用户的uid
例子:显示ch225 的 uidid -u ch225
- -g:显示用户的gid
例子:显示ch225的 gidid -g ch225
-G:显示用户的全部组id
例子:
显示user4的全部组id
id -G user4
看结果
14.3.4 passwd命令
作用:修改用户的密码(给用户设置密码)格式:passwd [选项] 用户名
- passwd 用户 --修改指定用户的密码
- passwd --修改当前用户的密码
- 默认root能修改其他用户的密码,其他用户只能修改自己的密码
选项:
- -l:锁定用户(只有root用户才能进行操作)
- -u:解锁用户(只有root用户才能进行操作)
14.3.5 userdel命名
作用:删除用户格式:userdel [选项] 用户名
选项:
- -r:在删除用户的时候,同时删除用户的家目录
例子:删除用户 aa1 的同时删除其家目录userdel -r aa1
14.3.6 chsh命令
作用:修改用户的 shell 类型格式:chsh [-s type] 用户名
例子:修改tom的shell类型为/bin/bashchsh -s /bin/bash tom
14.3.7 usermod 命令作用:修改用户的基本信息格式:usermod [选项] 用户名
选项:
- g:修改基本组(组不存在,现创建组)
- 例子:usermod -g 1080 ch225
- -G:修改附加组
- 例子:usermod -G 2226 user4
- -u:修改uid
- 例子:usermod -u 0 aa2
- (这里需要注意,uid只能有一个,因此需修改root的uid)
- -c:修改用户的描述信息
- 例子:usermod -c "aaaaaaaaaaaa2" ch225
- -d:修改用户的家目录
- 例子:usermod -d /ch225 ch225
- -s:修改用户的shell类型
- 例子:usermod -s /sbin/nologin ch226
- -l:修改用户名
- 例子:usermod -l ch2254 ch225
14.3.7 su命令
作用:切换用户格式:su 用户名
选项:
- -c:普通用管理员身份执行命令
例子:su -c "mkdir /a66" root
注意:苏切换用户后,返回需要输出命令:exit
好了,今天的内容就先到这里了,如果由错误或者疏漏还请各位大佬指正,感谢各位观看,我们下期再见0..0