Linux就该这么学——用户身份与能力
Posted 一条理想的咸鱼
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux就该这么学——用户身份与能力相关的知识,希望对你有一定的参考价值。
初识Linux用户
由于Linux系统是一个多用户/多任务的操作信息,具有很好的稳定性与安全性,在幕后保障Linux系统安全的则是一系列复杂的配置工作.
用户身份的种类
管理员UID为0 : 系统的管理员用户
系统用户UID为1~999: Linux系统为了避免因某个服务程序出现漏洞而被黑客提权之整台服务器,默认服务程序会有独立的系统用户负责运行,进而有效控制被破坏范围
普通用户UID从1000开始: 是由管理员创建的用于日常工作的用户
注 :
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就该这么学——用户身份与能力的主要内容,如果未能解决你的问题,请参考以下文章