Linux下用户管理

(一) 用户概念及作用(了解)

用户:指的是Linux操作系统中用于管理系统或者服务的人
管理系统到底在管理什么?
答:Linux下一切皆文件,所以用户管理的是相应的文件

如何管理文件呢?

文件基本管理和程序文件管理:

1.文件基本管理,比如文件的创建、删除、复制、查找、打包压缩等;文件的权限增加、减少等;

2.文件高级管理,比如程序文件的安装、卸载、配置等,终极目的是对外提供特定的服务。

用户的分类(了解):

1.超级用户
• 超级用户,也叫管理员、root,该用户(root)具有所有权限,UID=0并且绝对只能是0。

2.系统用户
• 系统用户,也叫程序用户,一般都是由程序创建,用于程序或者服务运行时的身份。默认不允许登录系统。<UID<499。比如后面要学习的web服务的普通用户apache,文件共享ftp服务的管理用户ftp等。注意:Centos7/RHEL8中,系统用户UID范围:1<=UID<=999。

3.普通用户
• 普通用户,一般是由管理员创建,用于对系统进行有限的管理维护操作。默认可以登录系统。500<=UID<=60000。注意:Centos7/RHEL8中,普通用户UID范围:1000<=UID<=60000。

特别说明:

1.用户的描述是操作系统、获取系统服务的人,是人,故有相关的属性信息。

2.用户信息包括但不限于用户名、家目录、唯一身份标识识别(UID)、所属组(GID)等。

3.今天讲的是普通用户和管理员用户,即由管理员创建的用户。

用户的基本管理(掌握):

1.创建用户(useradd)
(1)基本语法和选项
useradd [选项] 用户名。常用选项: -u 指定用户id,唯一标识,必须唯一; -g 指定用户属于组(一个用户可以加入多个组,但是默认组只有一个); -d 指定用户的家目录(每个用户都有一个自己的家,并且默认在/home/xxx); -s 指定用户默认shell。

查看系统支持的shell(命令解释器):
[root@heima ~]# cat /etc/shells
/bin/sh 交互式解释器
/bin/bash 系统默认的解释器
/usr/bin/sh 系统默认解释器
/usr/bin/bash 系统默认解释器
其它 shell1: /sbin/nologin 需要权限登录系统,也叫非交互式shell

设置默认shell:
/bin/dash
/bin/tcsh
/bin/csh

举例说明:
创建一个用户stu1
[root@heima ~]# useradd stu1
查询用户信息
[root@heima ~]# id stu1
uid=501(stu1) gid=501(stu1) groups=501(stu1)

当创建一个默认用户时,系统会给该用户以下东西,以stu1为例说明:

1.用户的UID(唯一标识) 501(系统自动分配)

2.用户的默认组(主组) stu1组,默认跟该用户的用户名一致;组ID(501), 默认和用户UID一致

3.用户的家目录 /home/stu1

4.默认值的文件复制用户的家里 . . . .bash_logout .bash_profile .bashrc .gnome2 .mozilla
[root@heima ~]# su - stu1
[stu1@localhost ~]$ ls -a
.bash_logout .bash_profile .bashrc .gnome2 .mozilla ...

根据需求创建用户:
创建不可登录系统用户步骤:

1.创建用户stu2,但是不能登录操作系统
注意:-s 指定用户的默认shell,/sbin/nologin表示不能登录系统,也叫非交互
[root@heima ~]# useradd -s /sbin/nologin stu2
验证:
[root@heima ~]# id stu2
uid=502(stu2) gid=502(stu2) groups=502(stu2)
切换用户失败,说明该用户不能登录系统
[root@heima ~]# su - stu2
This account is currently not available.

创建指定家目录用户步骤:
2. 创建用户stu2, 且将指定用户的家目录为/rhome/stu2
注意: -d 指定用户的家目录,前提是用户家目录的上一级目录/rhome必须存在
[root@heima ~]# mkdir /rhome
[root@heima ~]# useradd -d /rhome/stu2 stu2
[root@heima ~]# id stu2
uid=502(stu2) gid=502(stu2) groups=502(stu2)
说明:指定stu2家目录为/rhome/stu2时,只需要/rhome存在即可,系统会默认在/rhome下创建stu2目录

用户密码设置(passwd):
passwd 用户名 表示给指定用户修改密码
passwd 表示给当前用户修改密码
[root@heima ~]# passwd stu1

Changing password for user stu1.
New password: 密码不显示
BAD PASSWORD: it is WAY too short
BAD PASSWORD: is too simple
Retype new password: 密码不显示
passwd: all authentication tokens updated successfully.

说明:
1.管理员(root)可以给任何用户修改密码
2.普通用户可以自己修改密码,但是密码复杂度要符合规范

[root@heim ~] # echo 123|passwd --stdin stu2
更改用户stu2的密码。
passwd:所有的身份验证令牌已经成功更新。

说明:使用这种方法不用交互可以直接设置成功,一般用于脚本中。

保存用户信息的文件

1.用户信息保存文件/etc/passwd
了解相关配置文件内容,可以通过man文档解读,即man 5 passwd

以冒号":"分割为7列,如下:
account --> stu1 用户名称
password --> x 密码,密码单独保存放在另外一个文件中
UID --> 501 用户ID
GID --> 501 组ID
GECOS --> 用户信息字段,描述说明
directory -->/home/stu1 用户的家目录
shell -->/bin/bash用户默认shell,其中/sbin/nologin表示不让交互,不能登录系统

2.用户密码信息保存文件/etc/shadow
了解相关配置文件内容,可以通过man文档解读,即man 5 shadow

以冒号":"分割为9列,如下:
login name 登录名称
encrypted password 加密后的密码;!表示没有设置密码
date of last password change 最后一次更改密码的天数(距离1970年的1月1日到现在的天数)
minimum password age 密码的最小生存周期;0表示可以立刻修改密码;如果是3,则表示3天后才能更改密码
maximum password age 密码的最大生存周期;如果30表示密码30天需要更新一次密码
password warning period 密码过期的提前几天发出警告;7表示过期前7天开始警告
password inactivity period 密码的宽限期;如果密码过期时间是7天,3天内还能够登录系统,但是要关修改密码。3天后,密码过期3天后账号被封锁,不能登录系统
account expiration date 账号过期的时间。账号过期的用户不能登录;密码过期用户不能使用原有密码登录。以1970年1月1日算起
reserved field 保留

2.更改用户的账户信息(chage)
命令:chage --help
描述:
-d 修改用户最后一次改密码的时间
-m 修改密码的最小天数间隔(几天后才能修改密码)
-M 修改密码的最大存活时间(每隔多少天更新一次密码)
-W 修改密码到期时的警告(进到期几天发出警告)
-I 修改允许空闲过期几天
-E 修改账户过期时间
-l 列出账户的信息

示例说明:查看用户账户的信息命令: chage -l stu1
命令:[root@heima ~]# chage -l stu1
输出:
Last password change : Mar 04, 2019
Password expires : never
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7

修改用户账户的过期时间: 2019-03-10过期
命令:[root@heima ~]# chage -E '2019-03-10' stu1
命令:[root@heima ~]# chage -l stu1
输出:
Last password change : Mar 04, 2019
Password expires : never
Password inactive : never
Account expires : Mar 10, 2019
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7

修改用户账户的过期时间为10天以后:
命令:[root@heima ~]# chage -E $(date +%F -d '+10days') stu1

3.修改用户信息(usermod)
基本语法选项:usermod [选项] 用户名
常用选项:
-u 指定用户uid, 唯一标识, 必须唯一
-g 指定用户的默认组(必须已存在)
-G 指定用户附加组(-G 一个用户可以加入多个组, 但是默认组只有一个)
-d 指定用户家目录(每个用户都有自己的家, 并且默认在/home/xxx)
-s 指定用户默认shell
-m 移动用户家目录, 和-d一起使用

示例说明:修改stu3用户的UID为1100
命令:[root@heima ~]# usermod -u 1100 stu3

四、总结

1.创建用户 (useradd)

1.useradd 用户名——>家目录/home/用户名,邮箱, UID, 默认组 (GID) [用户主组]

2.useradd [选项] 用户名——>常用选项: -d/-s/-u/-g/-G

2.设置用户密码 (passwd)

1.passwd 用户名——>给指定的用户(管理员可以给任何人设置任何密码)

2.echo 密码 | passwd --stdin 用户名——>非交互式(用于脚本中)

3.用户基本信息和用户密码信息保存文件——>/etc/passwd和/etc/shadow

4.扩展chage命令——>用来修改用户密码的信息(账号过期时间,密码最小生存周期等)

3.修改用户信息 (usermod)

1.usermod [选项] 用户名——>usermod -md 新家 用户名

4.删除用户 (userdel)

1.userdel 用户名——>只删除用户,不删除用户家目录、邮箱等信息

2.userdel -r 用户名——>删除用户以及用户其他信息

3.userdel -f 用户名——>强制删除用户(删除正在登录的用户)

二、Linux下组管理
(一) 组和用户的关系 (理解)

1.创建组 (groupadd)
基本语法:

  • groupadd [选项] 组名
    常用选项:-g 指定组的GID(编号), 默认唯一

举例说明:

  • 创建一个组admin
    • 命令:[root@heima ~]# groupadd admin
  • 查看组信息
    • 命令:[root@heima ~]# tail -1 /etc/group
    • 结果:admin:x:1005:
    • 说明:关于/etc/group配置文件说明,可以man 5 group找help
  • 创建一个组sysadmin, 指定组的GID为1111
    • 命令:[root@heima ~]# groupadd -g 1001 sysadmin
    • 命令:[root@heima ~]# tail -1 /etc/group
    • 结果:admin:x:1005: sysadmin:x:1111:

2.删除组 (groupdel)
基本语法:

  • groupdel 组名

举例说明:

  • 删除组admin
    • 命令:[root@heima ~]# groupdel admin
  • 删除组stu2
    • 命令:[root@heima ~]# groupdel stu2
  • 结果:groupdel: cannot remove the primary group of user 'stu2'
  • 说明:以上信息说明不能删除属于其他用户的主组

3.组成员管理 (gpasswd)
基本语法:

  • gpasswd [选项] 组名
    常用选项:
  • -a 添加用户到组
  • -d 从组中删除成员
  • -A 指定管理员
  • -M 指定组成员,可以批量添加用户到组中
  • -r 删除密码

举例说明:

添加用户到组里

三、编辑户设置密码
命令:

passwd lidaman

echo 123|passwd --stdin wangergou

扩展补充
一、文件编辑工具(vim)
Linux平台下的文本编辑器: emacs, nano, gedit, vi, vim
vi (visual editor) 编辑器通常被高阶办公人员,与基Linux和Unix系统上最基本的文本编辑器, 类似于Windows 系统下的记事本。学会它后,我们将在Linux 的世界里游刃有余。
为什么要学习vim?
所有的Unix like系统都会内置vi文本编辑器, 其他的文本编辑器则不一定会存在
很多软件的编辑设口都会去劫持vi
vim具有超强编辑能力, 可以上动状况横纵驾驭语言的正确性, 方便程序设计
有深浅难, 是由浅径深
vim是vi的开放版

(二) vim编辑器三种模式

1.命令行模式
命令行可以干什么?
可以进行一些基本的复制、删除、粘贴、搜索、移动等操作

O(open for Read-only): 打开但只读文件。
E(edit): 通常为对打开要编辑的文件,并不会载入新存文件内容,这很容易出现视用户书由相互交叉对方的文件问题。
R(recover): 加载备份文件的内容。
D(delete): 如果你确定这个新存文件是没有用的,则可以删除。
Q(quit): 不进行任何编辑作,你即可离开。
A(abort): 忽略这个编辑行为,和类似。
需要注意的是:这个暂存文件不会因为你结束vim后台删除,必须要手动删除,否则每次打开放对的文件时都会出现这样的提示。

可视化模式理解:
说明:按键: ctrl+v(可视块) 或(i 可视行),然后按下↑↓←→方向键来选中需要复制的文本, 按 Ty 继续行复制 (不要按下yy),最后按下p 键粘贴。
退出可视模式:退出可视模式按下Esc。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Phettro

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值