Linux就该这么学——用户身份与能力

Posted 一条理想的咸鱼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux就该这么学——用户身份与能力相关的知识,希望对你有一定的参考价值。

初识Linux用户

由于Linux系统是一个多用户/多任务的操作信息,具有很好的稳定性与安全性,在幕后保障Linux系统安全的则是一系列复杂的配置工作.

用户身份的种类

管理员UID0 : 系统的管理员用户

系统用户UID1~999: Linux系统为了避免因某个服务程序出现漏洞而被黑客提权之整台服务器,默认服务程序会有独立的系统用户负责运行,进而有效控制被破坏范围

普通用户UID1000开始: 是由管理员创建的用于日常工作的用户

注 :

Linux系统管理员之所以是root,并不是因为它的名字叫root,而是因为该用户的身份号码即UID(User IDentification)的数值为0

在Linux系统中,UID就相当于我们的身份证号码一样具有唯一性.

创建用户

命令 : useradd [选项] 用户名

创建用户命令(useradd命令)中的相关参数及作用

参数

作用

-d

指定用户的家目录(默认为/home/username)

-e

账户的到期时间,格式为YYYY-MM-DD.

-u

指定该用户的默认UID.

-g

指定一个初始的用户基本组(必须存在)

-G

指定一个或多个扩展用户组

-N

不创建与用户同名的基本用户组

-s

指定该用户的默认Shell解释器

 

例子

1.下面我们创建一个普通用户并指定家目录的路径、用户的 UID 以及 Shell 解释器。在下 面的命令中,请注意/sbin/nologin,它是终端解释器中的一员,与 Bash 解释器有着天壤之别。 一旦用户的解释器被设置为 nologin,则代表该用户不能登录到系统中:

 

2.批量化创建用户

 

图 创建用户的命令

 

 

 图 为创建用户账户的脚本

 

 

 图 执行bash createUserAccount.sh命令运行结果

注 :

使用该命令创建用户账户时,默认的用户家目录会 被存放在/home 目录中,默认的 Shell 解释器为/bin/bash,而且默认会创建一个与该用户同名 的基本用户组。这些默认设置可以根据表 5-1 中的 useradd 命令参数自行修改。

创建用户组

命令 : groupadd [选项] 群组名

为了能够更加高效地指派系统中各个用户的权限,在工作中常常会把几个用户加入到同 一个组里面,这样便可以针对一类用户统一安排权限。创建用户组的步骤非常简单,

例如使用如下命令创建一个用户组 ronny:

 

修改用户属性

命令 : usermod [选项] 用户名

修改用户属性(usermod命令)相关参数及作用

参数

作用

-c

填写用户账户的备注信息

-d -m

参数-m 参数-d连用, 可重新指定用户的家目录并自动把旧的数据转移过去

-e

账户的到期时间, 格式为YYYY-MM-DD

-g

变更所属用户组

-G

变更扩展用户组

-L

锁定用户禁止其登录系统

-U

解锁用户,允许其登录系统

-s

变更默认终端

-u

修改用户的UID

例子

大家不要被这么多参数吓坏了。我们先来看一下账户 linuxprobe 的默认信息:

  [root@linuxprobe ~]# id linuxprobe

  uid=1000(linuxprobe) gid=1000(linuxprobe) groups=1000(linuxprobe)

然后将用户 linuxprobe 加入到 root 用户组中,这样扩展组列表中则会出现 root 用户组的 字样,而基本组不会受到影响:

  [root@linuxprobe ~]# usermod -G root linuxprobe

  [root@linuxprobe ~]# id linuxprobe

  uid=1000(linuxprobe) gid=1000(linuxprobe) groups=1000(linuxprobe),0(root)

再来试试用-u 参数修改 linuxprobe 用户的 UID 号码值。除此之外,我们还可以用-g 参数 修改用户的基本组 ID,用-G 参数修改用户扩展组 ID。

  [root@linuxprobe ~]# usermod -u 8888 linuxprobe

  [root@linuxprobe ~]# id linuxprobe

  uid=8888(linuxprobe) gid=1000(linuxprobe) groups=1000(linuxprobe),0(root)

修改用户的密码

passwd 命令用于修改用户密码、过期时间、认证信息等.

命令 : passwd [选项] [用户名]

修改用户的密码(passwd命令)中参数以及作用

参数

作用

-l

锁定用户,禁止其登录

-u

解除锁定,允许用户登录

--stdin

允许通过标准输入修改用户密码,如echo "NewPassWord" | passwd –stdin Username

-d

使该用户可用空密码登录系统

-e

强制用户在下次登录时修改密码

-S

显示用户的密码是否被锁定,以及密码所采用的加密算法名称

例子:

修改当前用户密码

 

修改其他用户密码

 

锁定其他用户并且解锁其他用户

 

 

 

批量化修改其他用户的密码

 

 

 

 

 

 

 

 

 

注 :

普通用户只能使用 passwd 命令修改自身的系统密码,而 root 管理员则有权限修改其他所 有人的密码。更酷的是,root 管理员在 Linux 系统中修改自己或他人的密码时不需要验证旧密 码,这一点特别方便。既然 root 管理员可以修改其他用户的密码,就表示完全拥有该用户的 管理权限。

删除用户

userdel 命令用于删除用户,

格式为“userdel [选项] 用户名”。

userdel 命令的参数以及作用

参数

作用

-f

强制删除用户

-r

同时删除用户及用户家目录

 

例子1

下面使用 userdel 命令将 linuxprobe 用户删除,其操作如下:

  [root@linuxprobe ~]# id linuxprobe

  uid=8888(linuxprobe) gid=1000(linuxprobe) groups=1000(linuxprobe),0(root)

  root@linuxprobe ~]# userdel -r linuxprobe

  [root@linuxprobe ~]# id linuxprobe

  id: linuxprobe: no such user

例子2

获取当前UID大于等于1001的用户并追加到一个user.txt文件中,最后进行批量化删除

 

图 执行cat /etc/passwd | awk –F: ‘$3>=1001’ | cut –f 1 –d: >>user.txt命令的运行结果

 

图为批量化删除用户的脚本

 

图 执行 bash deleteUserAccount.sh命令运行结果

注 :

  如果我们确认某位用户后续不再会登录到系统中,则可以通过 userdel 命令删除该用户的 所有信息。在执行删除操作时,该用户的家目录默认会保留下来,此时可以使用-r参数将其删除

小结:

  在本次学习中学到关于用户的简单管理,比如可以进行创建用户,修改用户属性,删除用户和添加用户群组等操作.

以上是关于Linux就该这么学——用户身份与能力的主要内容,如果未能解决你的问题,请参考以下文章

linux就该这么学——第5章用户身份与文件权限

linux学习第九天 (Linux就该这么学)

linux就该这么学 第五课

Linux就该这么学——su命令与sudo服务

Linux就该这么学--命令集合5

20191209 Linux就该这么学