目录
学习Linux用户操作,分为用户操作和用户组操作,今天我们学习的是用户操作。
- 再此之前,我们要先用CentOS 7克隆一个集群。
- CentOS 7右键,点击管理,找到克隆。
- 点击下一页
- 选择克隆自虚拟机中的当前状态(C),然后点击下一页。
- 选择克隆类型:创建完整克隆
- 更改虚拟机名称以及存储位置,在此,我的虚拟机名称为ied-2,目的能够更快跟上老师的进度。
- 点击完成
- 点击关闭,克隆成功!
- 由于是克隆,所以ied-2与CentOS 7配置完全相同,所以在ssh工具中,连接时,主机与其相同。
所以,接下来我们正式进入Linux用户操作的学习。
- 用户与用户组文件
在Linux系统当中,默认情况下:
所有用户信息保存在/etc/passwd文件内(包括root用户);
用户密码信息保存在/etc/shadow文件内;
所有用户组信息保存在/etc/group文件内,
用户组密码信息保存在/etc/gshadow文件内。
这四个文件非常重要,不要轻易做变动。
文件 | 作用 |
---|---|
/etc/passwd | 用户帐户信息 |
/etc/shadow | 帐户密码信息 |
/etc/group | 组帐户信息 |
/etc/gshadow | 组密码信息 |
/etc/login.defs | 设置用户帐号限制的文件,但配置对root用户无效 |
- 用户操作
- 切换用户
- 查看用户
- 添加用户
- 修改用户
-
删除用户
(一)用户操作
- 以root用户登录虚拟机
1.切换用户
由root用户切换到普通用户,无须输入密码,但是由普通用户切换到root用户或其它用户,就需要输入密码。
(1)语法输入:su <用户名>
(2)切换到普通用户
- 我们在安装CentOS时,创建普通用户 - lym
- 执行命令:
su lym
,切换到lym
普通用户,由于输入sushi错误,所以出现鉴定故障,重新输入即可!
- 现在就是howard普通用户操作环境了,提示符由
#
变成$
符号
(3)切换到root用户
- 现在有两种方式切换到root用户,一个是执行
exit
命令,一个是执行su root
- 执行命令:
su root
,需要输入密码
首先我们使用 su root
切换到root
用户。
然后由于现在的情况是root——lym——root,所以要执行两次exit,才能返回到最初的root用户环境 。
(4)查看环境变量
- 执行命令:env,查看环境变量
- 首先查看root用户的环境变量
- 其次切换到普通用户lym,再次查看环境变量,同样执行命令:env
- 退出lym普通用户
2、查看用户
(1)查看全部用户
执行命令:cat /etc/passwd
- /etc/passwd文件是Linux中的重要系统文件之一,主要作用是存储系统用户的信息。文件中的每一行表示一个用户信息,有多少行就表示多少个用户信息。仔细观察其中的一行,可以清晰地看出,各内容之间通过“:”号划分成了多个字段,共7部分,这7部分分别定义了用户的不同属性。
- 以passwd文件中lym一行为例介绍各个字段作用
lym | :x | :1000 | :1000 | :lym | :/home/lym | :/bin/bash |
---|---|---|---|---|---|---|
用户名称 | :用户密码 | :用户UID | :用户组GID | :用户说明 | :用户家目录 | :shell解释器 |
(2)系统内置用户与新增用户
- 用户id在1000以前的都是系统内置用户,包括不能登录的伪用户(/sbin/nologin)。
- root用户的用户id是0,bin用户的用户id是1,daemon用户的用户id是2……
- 执行命令:cat /etc/passwd | head -3
说明:|是管道命令,加上head -3,表示显示前3条记录
- 新增用户的id必然大于或等于1000
- lym用户的用户id是1000,不是系统内置用户,而是新增用户
- 说明:|是管道命令,加上tail -3,表示显示末尾3条记录
(3)查看不能登录的伪用户
执行命令:cat /etc/passwd | grep nologin
- |是 管道命令,grep是抓取命令 (可使用通配符*),合在一起就是抓取前一个命令的结果中满足条件的信息。
(4)查看指定某个用户信息
- 执行命令:cat /etc/passwd | grep lym
3、添加用户
(1)语法格式
- useradd [选项] 用户名
(2)选项说明
参数 | 说明 |
---|---|
-g | 主组(group) |
-G | 附加组(Group) |
-d | 主目录(directory) |
-s | 指定用户登录后使用的shell,默认值是/bin/bash |
-c | 注释(comment) |
-u | 用户ID(user) |
-p | 密码(password) |
使用老师的用户(howard2005)的图片。
(3)注意事项
- 添加用户,不设置主组,会默认创建同名的主组。
- 增加用户账号就是在/etc/passwd文件中为新用户增加一条记录,同时更新其他系统文件/etc/shadow,/etc/group等。
(4)案例演示
- 任务:创建用户mike
- 创建用户mike,主目录为/home/mike,用户id为1010,密码为12345,注释my workmate
- 执行命令:useradd -d /home/mike -u 1010 -p 12345 -c 'my workmate' mike
- 说明,以上错误是mike前面应该空格,所以导致错误。
- 正确演示,如下:
- 在四个文件中查看刚才创建的新用户信息
- 查看mike用户的主目录
说明,蓝色部分为主目录
4、修改用户
- 创建用户帐户后,在一些需要更改现有用户属性的场景中,例如更改用户的主目录、登录名、登录shell、密码到期日期等,在这种情况下使用usermod命令。
(1)语法格式
- usermod [选项] 用户名
- 说明:mod是单词modify的前三个字母
(2)选项说明
参数 | 说明 |
-a | –append ##把用户追加到某些组中,仅与-G选项一起使用 |
-c | –comment ##修改/etc/passwd文件第五段comment |
-d | –home ##修改用户的家目录通常和-m选项一起使用 |
-e | –expiredate ##指定用户帐号禁用的日期,格式YY-MM-DD |
-f | –inactive ##用户密码过期多少天后采用就禁用该帐号,0表示密码已过期就禁用帐号,-1表示禁用此功能,默认值是-1 |
-g | –gid ##修改用户的gid,改组一定存在 |
-G | –groups ##把用户追加到某些组中,仅与-a选项一起使用 |
-l | –login ##修改用户的登录名称 |
-L | –lock ##锁定用户的密码 |
-m | –move-home ##修改用户的家目录通常和-d选项一起使用 |
-s | –shell ##修改用户的shell |
-u | –uid ##修改用户的uid,该uid必须唯一 |
-U | –unlock ##解锁用 户的密码 |
(3)案例演示
- 任务:修改用户mike
- 修改用户mike,主目录改为/home/dear-mike,密码改为903213,注释改为my friend
- 执行命令:usermod -m -d /home/dear-mike -p 903213 -c 'my friend' mike (注意一定要加-m,否则主目录名不会被修改)
- 在/etc/passwd和etc/shadow文件里查看更改后的用户信息
- 可以看到,mike用户的主目录、注释和密码都被修改了。
- 查看mike用户的主目录

5、删除用户
(1)语法格式
- userdel [选项] 用户名
- 说明:del是单词delete的前三个字母
(2)选项说明
选项 | 说明 |
---|---|
-f | (forcible) 强制删除用户,即使用户当前已登录 |
-r | (recursive) 删除用户的同时,删除与用户相关的所有文件 |
(3)案例演示
- 任务:强制彻底删除用户mike
- 执行命令:userdel -rf mike
- 查看是否还有mike用户
- 可以看到,四个文件里都没有mike的踪迹,该用户被彻底删除了。
- 再次执行删除mike的命令,会提示用户“mike”不存在。
- 因为是彻底删除,mike用户的主目录也被删除掉了的,/home目录里没有dear-mike目录
好啦!今天的课程就到这里啦!
解决问题:
配置静态IP地址。
登录root用户后:
- 修改网卡配置:vi /etc/sysconfig/network-scripts/ifcfg-ens33
然后使用enter键,跳到下一列,使用insert输入更改的配置文件
在上一节课中,讲到的修改,出现了一定的错误,以下为上节课错误点;
修改后:
- 重启网络服务后,查看IP地址:
为了操作需要,重新创建一个mike用户,执行命令:useradd -d /home/mike -u 1010 -p 903213 -c 'my friend' mike
(二)用户组操作
1、增删改用户组
操作 | 语法格式 |
---|---|
添加用户组 | groupadd -g 用户组id 用户组名 |
修改用户组 | groupmod -g 用户组id 用户组名 |
删除用户组 | groupdel 用户组名 |
2、用户组里增删改用户
操作 | 语法格式 |
---|---|
用户组里添加用户 | useradd -G 用户组 用户名 |
用户组里修改用户 | usermod -G 用户组 用户名 usermod -a -G 用户组 用户名 |
用户组里删除用户 | gpasswd -d 用户名 用户组 |
3、简单说明
- 每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。用户组的管理涉及用户组的添加、删除和修改,实际上就是对
/etc/group
文件的更新。
4、案例演示
我们在安装CentOS时创建了一个普通用户lym
(看看你当时创建的普通用户名),前面我们又利用命令创建了一个普通用户mike
。
任务1创建用户组并添加用户
-
创建一个用户组
lzy
,组id是666
-
将已有用户
mike
添加到该用户组
-
添加用户
alice
,密码123456
,主目录/home/alice
,加入lzy
组
-
查看组
lzy
的情况,目前该组有两个用户:mike和alice
-
查看
/home
目录下的三个用户目录
任务2、建一个新用户组,用户实现组迁移
- 创建一个组
luzhou
,组编号777
- 将用户
mike
从lzy
组迁移到luzhou
组
- 查看两个用户组里的用户情况,用户alice在lzy用户组里,用户mike在luzhou用户组里
任务3:创建新用户,同时加入两个组
- 创建一个用户smith,密码111111,加入lzy组和luzhou组(注意:逗号后面不能有空格)
- 查看用户smith的情况,lzy与luzhou两个组里都有smith,正所谓脚踏两只船。
- 说明:用户smith属于一个主组smith,另外还属于两个附加组lzy和luzhou
- 问题:为什么smith的用户id是1012?
- 回答:创建mike用户时,设置了用户id - 1010,然后创建alice时,没有设置用户id,那就自动编号1011,最后创建smith时,也没有设置用户id,那也是自动编号1012
任务4、已有用户同时加入另一个组
- 让lzy组的alice同时加入luzhou组,注意有两个选项参数:-a -G(说明:a - append)
- 查看alice用户的情况,在lzy与luzhou两个组里都有她的踪迹
- 说明:用户alice属于一个主组alice,另外还属于两个附加组lzy和luzhou
任务5、从组里移除用户
- 让用户
mike
从luzhou
组里移除,执行命令:gpasswd -d mike luzhou
(说明:d - delete) - 查看用户组
luzhou
,看还有没有mike
用户
- 从组里删除一个不存在的用户(转载老师的图片)
任务6、删除用户组
- 删除
luzhou
用户组,执行命令:groupdel luzhou
- 删除用户组
luzhou
,并不会连带删除里面的用户smith
和alice
- 为了后续章节的需要,再次创建
luzhou
用户组
Linux命令结构
- 命令动词 + [选项参数] + 操作对象,按这个结构分析我们前面学习的Linux用户和用户组操作命令
1、只有命令动词的情况
- 查看当前目录详情,其实相当于执行命令:ll .(.代表当前目录)
2、只有命令动词和选项参数的情况
- 执行命令:ls -a(说明:a - all)
3、只有命令动词和操作对象的情况
- 执行命令:ll /home,查看指定目录下的内容
4、包含命令动词、选项参数和操作对象的情况
- 执行命令:ls -a /etc/sysconfig(转载howard2005图片)
好啦!本章节补充内容就到此结束啦!!!!