linux学习之路-用户管理
注: 文章仅为作者学习笔记,不足之处请多指教
一、用户概念及作用
用户: 指的是Linux操作系统中用于管理系统或者服务的人
Linux下一切皆文件 所以用户管理的是相应的文件
管理方式:
(1)文件基本管理;如:创建、删除、复制、查找、打包、压缩等,文件的权限增加减少等。
(2)文件高级管理;如:程序文件的安装,卸载,配置等。终极目的是对外提供稳定的服务。
二、用户的分类
1、超级用户
- 超级用户,也叫管理员,root,该用户具有所有权限,UID = 0 并且绝对只能是0
2、系统用户
- 系统用户,也叫程序用户。一般是由程序创建,用于程序或者服务运行时候的身份。
- 默认不允许登录系统。 1<=UID<=999
- 如web服务的管理用户apache,文件共享ftp服务的管理用户ftp等
3、普通用户
- 普通用户,一般都是由管理员创建,用于对系统进行有限的管理维护操作。
- 默认可以登录系统。1000<=UID<=60000
ps:
- 用户指的是操作系统或服务的人,是人,就有相关的属性信息
- 用户的属性信息包括但不限于,家目录,唯一身份标识(UID)、所属组(GID)等
三、用户的基本管理
1、创建用户(useradd)
useradd [选项] 用户名
常用选项:
-u 指定用户uid,唯一标识,必须唯一
-g 指定用户的默认组(主组)
-G 指定用户附加组(一个用户可以加入多个组,但是默认组只有一个)
-d 指定用户家目录(每个用户都有一个自己的家,并且默认在/home/xxx)
-s 指定用户默认shell
查看系统支持的shell(命令解释器)
[root@server29~]# cat /etc/shells
/bin/sh 软连接文件
/bin/bash 系统默认的解释器
/usr/bin/sh 软连接文件
/usr/bin/bash 系统默认的解释器
其他shell:
/sbin/nologin 不能登录操作系统,也叫非交互式shell
/bin/dash
/bin/tcsh
/bin/csh
举个栗子:
①创建默认用户
#创建一个用户
useradd stu1
#查看用户信息
id stu1

#当创建一个默认用户时,系统会给该用户以下东西,以stu1为例
# su1)用户的UID(唯一标识) 501(系统自动分配)
# 2)用户的默认组(主组) stu1组,默认跟该用户的用户名一致;组ID(501),默认和用户UID一致
# 3)用户的家目录 /home/stu1
# 4)拷贝相应的文件到用户的家里
#切换用户
su - stu1
#查看家目录
ls -a

②根据需求创建用户
需求1:创建用户stu2,但是不能登录操作系统
#-s 指定用户的默认shell,/sbin/nologin表示不能登录系统,也叫非交互
exit
useradd -s /sbin/nologin stu2
id stu2
su - stu2

需求2:创建用户stu3,同时制定该用户的家目录为/rhome/stu3
#注意:-d 指定用户的家目录,前提该用户家目录的上一级目录/rhome必须存在
mkdir /rhome
# 指定stu3家目录/rhome/stu3时,只需要/rhome存在即可,系统会默认在/rhome下创建stu3目录
useradd -d /rhome/stu3 stu3
id stu3
su - stu3
pwd

2、用户密码设置(passwd)
passwd 用户名 #表示给指定用户修改密码
passwd 直接回车 #表示给当前用户修改密码
#说明:
#1、管理员root可以给任何yoghurt修改密码
#2、普通用户只能给自己修改密码,并且密码的复杂程度要符合规范
passwd stu1
passwd

注:密码输入时不显示
#这里使用了管道和标准输入
echo 123456|passwd --stdin stu3
#这种方法不用交互时可以直接设置成功,可用于脚本中

①保存用户信息的文件
#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
#密码的宽限期;如果3表示允许密码过期3天,3天内还能登录系统,但是要求修改密码。3天后(密码过期3天后账户被封锁, 需要联系管理员)
account expiration date
#账户过期的时间,账户过期的用户不能登录;密码过期用户不能用原来的密码登录。以1970年1月1日算起。
reserved field
#保留
②更改用户的账号信息(chage)
chage --help
-d 修改用户最后一次更改密码的时间
-m 修改密码的最小存活期(几天后才能修改密码)
-M 修改密码的最大存活期(每隔多少天更新一次密码)
-W 修改密码过期前警告(过期前几天发出警告)
-I 修改允许密码过期几天
-E 修改账户过期时间
-l 列出账户的信息
#再举个栗子
#查看用户账号的相关信息
chage -l stu1
#修改用户账号的过期时间:2020-08-13过期
chage -E '2020-08-13' stu1
#修改用户账号过期时间为10天后
chage -E $(date +%F -d '+10days') stu1

3、修改用户的信息(usermod)
①基本语法选项
usermod [选项] 用户名
常用选项:
-u 指定用户uid,唯一标识,必须唯一
-g 指定用户的默认组(主组)
-G 指定用户附加组(一个用户可以加入多个组,但是默认组只有一个)
-d 指定用户家目录(每个用户都有一个自己的家,并且默认在/home/xxx)
-s 指定用户默认shell
-m 移动用户家目录,和-d一起使用
②举个栗子
#修改stu1用户的UID为1100
usermod -u 1100 stu1
tail -5 /etc/passwd

#修改stu2用户的默认shell为可登录系统
su - stu2
usermod -s /bin/sh stu2
tail -5 /etc/passwd

#修改stu4用户的家目录
useradd -d /rhome/stu4 stu4
usermod -md /home/stu4 stu4

4、删除用户(userdel)
①基本语法选项
userdel [选项] 用户名
常用选项:
-r 删除用户并且移除其家目录和邮箱
-f 强制删除正在登录的用户
②举个栗子
#说明: 创建完用户后,家目录默认在/home/用户名下;用户的邮箱在/var/spool/mail/用户名
#1、删除stu4用户以及家目录
userdel -r stu4
id stu4
#2、强制删除一个正在登录的用户
#用标签多打开一个界面用stu3登录
userdel -r stu3
id stu3
userdel -rf stu3
id stu3
#只删除stu2用户,不删除其家目录
userdel stu2

本文深入解析Linux用户管理,涵盖用户概念、分类、创建、密码设置、信息修改及删除等核心操作,适合初学者和进阶用户掌握系统管理技能。
2351

被折叠的 条评论
为什么被折叠?



