IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Linux学习05--Linux的账号与群组 -> 正文阅读

[系统运维]Linux学习05--Linux的账号与群组

1.使用者标识符:UID和GID

Linux在登入的时候主机并不会直接认识你的【账号名称】,它仅认识ID(一组数字);账户对应的ID存储在etc/passwd中;
每个登入的使用者至少会取得两个ID,一个为使用者(User ID,简写UID),一个为群组ID(Group ID,简称GID)

2.使用者账号

  • /ect/passwd 文件结构
[root@admin ~]# head -n 4 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin

范例:

root:x:0:0:root:/root:/bin/bash
  1. root:账号名称
  2. x:密码‘
  3. 0:uid
  4. 0:gid
  5. root:用户信息说明栏
  6. /root:家目录
  7. /bin/bash:shell
  • /etc/shadow文件结构
    密码有效日期为『更新日期(第3字段)』+『重新变更日期(第5字段)』
[root@admin ~]# head -n 1/etc/shadow
lisi:$1$dD3gZf7X$eSGOJ9KExPwuS80LGgKV2.:18828:0:99999:7:::

范例:

lisi:$1$dD3gZf7X$eSGOJ9KExPwuS80LGgKV2.:18828:0:99999:7:::
  1. 账号名称:list
  2. 密码 1 1 1dD3gZf7X$eSGOJ9KExPwuS80LGgKV2
  3. 改动密码的日期:18828(从1970年1月1日到现在的天数)
  4. 密码不可更动的天数:0 (近一次被更改后需要经过几天才可以再被变更)
  5. 密码需要重新变更的天数:99999 (强制要求用户变更密码,必须在这个天数内更改自己密码)
    必须要在这个天数内重新设定你的密码,否则这个账号的密码将会『变为过期特性』
  6. 密码需要变更期限前的警告天数:7
  7. 密码过期后账号的宽限时间:
    如果密码过期了,你重新登录后需要重新设定密码才能继续使用
    如果没有在宽限时间内更改密码,则这个账户的密码将会失效
  8. 账号失效的日期:使用1970年以来的总天数设定
    账号在此字段规定的日期之后,将无法再使用(不论密码是否过期)
    若直接写数字,则为密码后期后的几天后失效
    例如:网易云年续费
  9. 保留(功能还没有做出来,以后待定)

例子:

dmtsai:$6$M4IphgNP2TmlXaSS$B418YFroYxxmm....:16559:5:60:7:5:16679:   
————————————————————————————————————————————————————————————————————
dmtsai : 账号
$6$M4IphgNP2TmlXaSS$B418YFroYxxmm.... :密码
16559 : 密码变更的时间
5 :密码不可改变的天数
60 : 密码需要重新更改的天数
7 : 密码需要变更前的警告天数
5 : 密码过期后账号的宽限时间
16679 : 密码的失效日期
  • /ect/group 文件结构
[root@study ~]# head -n 4 /etc/group 
root:x:0: 
bin:x:1: 
daemon:x:2: 
sys:x:3: 

范例:

root:x:0:dmtsai,alex

组名:root
群组密码:x
GID:0
此群组支持的账号名称:dmtsai;alex

3.账号管理

3.1.新增和移除用户:useradd,相关配置文件,passwd,usermod,userdel

  • useradd:在系统中增加用户
    写法:
 [root@study ~]# useradd [-u UID] [-g 初始群组] [-G 次要群组] [-mM]\ > [-c 说明栏] [-d 家目录绝对路径] [-s shell] 使用者账号名 

选项加参数:

  • -u:后面接UID,一组数字。指定账户的UID
  • -g:后面接组名设定初始群组(initial group);GID会放置到/etc/passwd第四个字段中
  • -G:后面接组名,添加用户的附加群组,若单独添加会把之前所有附加群组覆盖,所以要配合-a使用
  • -M:强制!不建立用户家目录(系统账号默认值)
  • -m:强制!建立用户家目录(一般账号默认值)
  • -c:后面接“说明文字”,再/etc/passswd的第5号字段
  • -d:后面接家目录绝对路径,设置家目录(使用绝对路径)
  • -r:建立一个系统账号
  • -s:后面接一个shell,若没有设定便是/bin/bash
  • -e:后面接一个日期[YYYY-MM–DD]此项目写入/etc/shadow第八个字段,设定账户的失效日期
  • -f:密码过期后的宽限时间,或为密码是否会失效。0为立刻失效,-1为永远不失效(密码只会过期再在登录时强制修改)
    范例:
    添加一个新用户,使新用户的UID为1500,并将user1指定为他的初始群组:
    使用grep 后面接关键字 搜索目录
[root@admin ~]# grep vbird2 /etc/passwd /etc/shadow /etc/group
/etc/passwd:vbird2:x:1500:1004::/home/vbird2:/bin/bash
/etc/shadow:vbird2:!!:18835:0:99999:7:::

可以使用 useradd -D 查看参考文档

[root@admin ~]# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes

GROUP:新建账号的初始群组使用GID,但Centos创建时会创建一个与账户名相同的群组
私有群组:
系统会建立一个与账号一样的群组给使用者作为初始群组。 这种群组的设定机制会比较有保密性,这是因为使用者都有自己的群组,这个机制将不会参考GROUP=100这个参数

公有群组:
使得每个创建的账户都属于users这个群组

HOME=/home:用户家目录的基准目录(basedir)
INACTIVE=-1:密码过期后是否会失效的设定值
EXPIRE=:账号失效的日期 /etc/shadow的第八字段
SHELL=/bin/bash:默认使用的 shell 程序文件名
SKEL=/etc/skel:用户家目录参考基准目录
用户在创建家目录时会参考的目录,再里面增添新目录/etc/skel/www之后创建的用户的家目录都会带着这个新目录就会有 www
CREATE_MAIL_SPOOL=yes:建立使用者的 mailbox

passwd:更改账户的密码

写法:
第一种:

 passwd [--stdin] [账号名称]
 或
 echo "123456" |  passwd [--stdin] [账号名称]

第二种:

passwd [-l] [-u] [--stdin] [-S] [-n 日数] [-x 日数] [-w 日数] [-i 日期] 账号 <==root 功能 

选项与参数:

  • –stdin:直接来修改账户的密码
  • -l:是Lock的意思,会在/etc/passwd会在第二栏上加上!使密码失效
  • -u:是Unlock
  • -S :列出密码相关参数
  • -n :后面接天数,shadow 的第 4 字段,多久不可修改密码天数
  • -x :后面接天数,shadow 的第 5 字段,多久内必须要更动密码
  • -w :后面接天数,shadow 的第 6 字段,密码过期前的警告天数
    -i :后面接『日期』,shadow 的第 7 字段,密码失效日期 (密码过期后的宽限时间);或者写数字,为该数字天数后失效

范例1:
使用root管理员给vbird2密码:

[root@admin ~]# passwd vbird2
更改用户 vbird2 的密码 。
新的 密码:
重新输入新的 密码:
抱歉,密码不匹配。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

范例2:
切换到vbird2用户后使用passwd更改密码:
直接输入passwd后不接用户则为修改当前用户密码

[vbird2@admin root]$ passwd
更改用户 vbird2 的密码 。
为 vbird2 更改 STRESS 密码。
(当前)UNIX 密码:
新的 密码:
无效的密码: 这个密码和原来的相同
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新

范例3:
使用–stdin设置密码:
方法一

[root@admin ~]# passwd --stdin vbird2
更改用户 vbird2 的密码 。
123456789

方法二:

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

在这里插入图片描述

创建一个用户的流程:

  1. 使用useradd添加用户
  2. 再用passwd更改用户密码

chage:更详细的密码参数显示

写法:
chage [-ldEImMW] 账号名
相关数据和参数:
-l:列出账户详细的密码参数
-d:后面接日期,修改/etc/shadow(最近一次更改密码的日期)第三字段,格式YYYY-MM-DD
-m:后面接天数,修改/etc/shadow第四字段,密码在该天数内不可更改
-M:后面接天数,修改/etc/shadow(密码多久需要必须进行变更,不然会过期)第五字段
-w:后面接天数,修改/etc/shadow(密码过期前的警告日期)第六个字段
-I:后面接天数,修改/etc/shadow(密码过期后的宽限日期)第七个字段
-E:后面接日期,修改/etc/shadow(账号失效日)第八个字段

范例1:
将账户vbird2的更改密码日期变为2021-07-26

[root@admin ~]# chage -d 2021-07-26 vbird2
[root@admin ~]# chage -l vbird2
最近一次密码修改时间					:726, 2021
密码过期时间					:从不
密码失效时间					:从不
帐户过期时间						:从不
两次改变密码之间相距的最小天数		:0
两次改变密码之间相距的最大天数		:99999
在密码过期之前警告的天数	:7

usermod:账号相关数据的微调

写法:
usermod [-cdegGlsuLU] username
选项和参数:
-c:后面接账号说明,即/etc/passwd的第五个字段
-d:后面接账号的家目录,即/etc/passwd的第六个字段
-e:后面接日期,YYYY–MM–DD,即/etc/shadow的制定失效日期字段(-1为永远不过期)
-f:后面接天数,即/etc/shadow的第七个字段,密码过期后的宽限时间
-g:后面接初始群组,修改/etc/passwd的第四个字段GID
-G:后面接附加群组,修改了/etc/group,修改这个使用者支持的群组,单独使用会把之前的所有附加组覆盖
-a:与-G混合使用,会把之前的群组保留
-l:后面接账号名称,即修改该账号的名称,/etc/passwd的第一字段
-s:后面接shell的实际文件,例如/bin/bash
-u:后面接UID数字,即/etc/passwd第三栏账户ID(UID)
-L:冻结用户
-U:解冻用户

范例1:更改vbird2用户的账号说明字段

[root@admin ~]# grep vbird2 /etc/passwd
vbird2:x:1500:1004::/home/vbird2:/bin/bash
[root@admin ~]# usermod -c "Bunny is best" vbird2
[root@admin ~]# grep vbird2 /etc/passwd
vbird2:x:1500:1004:Bunny is best:/home/vbird2:/bin/bash

范例2:将vbird2用户的账号设为2021-08-21号过期

[root@admin ~]# usermod -e 2021-08-20 vbird2
[root@admin ~]# chage -l vbird2
最近一次密码修改时间					:726, 2021
密码过期时间					:从不
密码失效时间					:从不
帐户过期时间						:820, 2021
两次改变密码之间相距的最小天数		:0
两次改变密码之间相距的最大天数		:99999
在密码过期之前警告的天数	:7

**userdel **:

写法:
userdel [-r] username

选项和参数:
-r:连同用户的家目录一起删除

范例1:删除vbird2的家目录和本身

[root@admin ~]# userdel -r vbird2

3.2使用者账号

id:id这个指令可以查询账户的相关信息

写法:
id [username]
范例:

[root@admin ~]# id vbird2
uid=1500(vbird2) gid=1004(user1)=1004(user1)

chsh:改变账户的shell

写法:
chsh [-ls]

选项与参数:
-l:列出系统上可用的shell,其实就是/etc/shells的内容
-s:设定修改自己的shell

范例1:

[root@admin ~]# chsh -l
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
/bin/tcsh
/bin/csh

范例2:

[root@admin ~]# chsh -s /bin/csh vbird2
Changing shell for vbird2.
Shell changed.
[root@admin ~]# grep vbird2 /etc/passwd
vbird2:x:1500:1004:Bunny is best:/home/vbird2:/bin/csh

3.3 新增和移除群组

groupadd:新增群组

写法:
groupadd [-g GID] [-r] 组名

选项与参数:
-g:后面接GID,用来直接给予账户GID
-r:建立系统群组!

范例1:
创建群组,名称为group1

[root@admin ~]# groupadd group1
[root@admin ~]# grep group1 /etc/group
group1:x:1007:

groupmod:更改group当中的参数

写法:
groupmod [-g gid] [-n group_name] 群组名

选项与参数:
-g:修改现有的群组的GID数字
-n:修改群组的名字

范例1:
将现有群组group1更名为mygroup1,GID更为201

[root@admin ~]# groupmod -g 201 -n mygroup1 group1
[root@admin ~]# grep group1 /etc/group
mygroup1:x:201:

groupdel:将群组删除

写法:
groupdel [groupname]

gpasswd:群组管理员功能

写法:

[root@study ~]# gpasswd groupname 
[root@study ~]# gpasswd [-A user1,...] [-M user3,...] groupname 
[root@study ~]# gpasswd [-rR] groupname

选项与参数:
:没有任何参数时表示为groupname设一个密码(/etc/gshadow)
-A:后面接user(用户),表示将groupname的控制权交给user
-M:后面接user1,user2,表示将user1和user2放入groupname
-r:将groupname的密码移除
-R:让groupname的密码栏失效

[someone@study ~]$ gpasswd [-ad] user groupname

选项与参数:
-a:将某位成员加入到 groupname 这个群组当中
-d:将某位成员移除出groupname这个群组当中

范例1:
将vbird2作为群组mygroup1的另一个管理员

[root@admin ~]# gpasswd -A vbird2 mygroup1
[root@admin ~]# grep mygroup1 /etc/group /etc/gshadow
/etc/group:mygroup1:x:201:
/etc/gshadow:mygroup1:$6$VljPUTolOQiuiv2$q/tm6QFX6al7fNVSh4A93OZEpSc0sB8AyVAOyIH4/x3Y9cRwKlio/L/Nr7s24x9an3ShnFDV0TZrl3.A8KknD0:vbird2:

3.4 使用者身份切换

su:最简单的身份切换

写法:
su [-lm] [-c 指令] [username]

范例一:
切换Danboard用户,再退出

[root@admin ~]# su Danboard
[Danboard@admin root]$ exit
exit

退出到的是切换前的用户

重点例题:

例题1:
在这里插入图片描述
例题2:
在这里插入图片描述
重点:如何让用户无法登入系统

  1. usermod -s /sbin/nologin 用户名
  2. 在/etc/passwd内第二字段,在密码前增加一个*号,账号就无法登入
  3. 在/etc/passwd的第八字段,设定一个小于目前日期的数字,便无法登入系统

例题3:在创建用户时自动在家目录中加入一个名称为www的子目录
在这里插入图片描述
例题4:
在这里插入图片描述
例题5:
在这里插入图片描述
useradd -c :添加说明字段
useradd -g:添加初始群组
useradd -G:添加附加群组

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-07-28 16:36:09  更:2021-07-28 16:36:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 16:54:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码