linux 系统中的用户管理


1.用户存在的意义

系统资源是有限的,如何合理分配系统资源?
在这个问题解决时必须要有连个资源配合
1.身份 account(用户名)
2.授权 author
3.认证 auth (密码)

3A机制,3A机制组成系统中最底层的安全架构

2、用户组存在意义

用户组是一个逻辑容器
对用户进行归类和统一授权

3、用户及用户组在系统中的存在方式

用户就是/etc/passwd 文件中的一行字符,用户属性
用户组存在的方式就是/etc/group 文件中的一行字符,用户组的属性
/etc/shadow 用户认证属性
用户存放方式就是文件里的字符串加字符串指定的系统其他文件

4、用户的查看

命令用户
whoami##查看当前用户
id##查看用户id信息 (后面跟的谁就是看谁,不跟就是看自己)
-u##查看用户的用户id
-g##查看用户主组id
-G##查看用户所有的组的id
-n##显示名称

-nG -ng -nu 显示对应的名称而不再显示数字

[root@foundation50 Desktop]# whoami
root
[root@foundation50 Desktop]# id -u westos  
1000
[root@foundation50 Desktop]# id -g westos 
1000
[root@foundation50 Desktop]# id -G westos 
1000 72
[root@foundation50 Desktop]# id -Gn westos 
westos tcpdump

用户id范围:
0-65535
0: Linux超级用户ID
1-999: Liunx系统自用ID
1000-65535: 用户级ID
以上ID设定规则都被记录在/etc/login.defs

5、用户切换

su - username
— 表示切换用户环境,不加-表示只切换用户不切换环境
注意:在作用户切换时当使用完毕身份及时退出,不要在一个shell反复执行su命令
在一个shell中反复执行su命令会导致环境错乱

gnome-session-quit ==force 图形命令用户切换

6 、用户涉及到的配置文件

/etc/passwd ##用户身份信息文件
7列:#用户名称:用户密码(密码放在这不安全):用户id:主组id:用户说明:用户家目录:用户默认shell 在这里插入图片描述

/etc/group ##组身份信息文件
#组名称:组密码:组id:组的附加成员有那些
在这里插入图片描述

/etc/skel/.* ##用户环境配置文件模板 (在建立用户时会把这个文件的 信息复制到自己的家目录中去)

/etc/shadow ##用户认证信息文件(密码以及密码的期限等)
/home/username ##用户家目录 (进入系统时默认所在位置)
/var/spool/mail/username ##用户邮箱文件那个用户就是那个名称

7、监控用户建立的命令

[root@foundation50 Desktop]# watch -n 1 tail -n 3 /etc/passwd /etc/group 
watch是监控命令,-n 1的意思是隔一秒更新一次结果。
Every 1.0s: tail -n 3 /etc/passwd...  foundation50.ilt.example.com: Mon Aug  9 22:13:30 2021
[root@foundation50 Desktop]# watch -n 1 "tail -n 3 /etc/passwd /etc/group ;ls -l /home"   监控 多个命令用分号隔开
==> /etc/passwd <==
tcpdump:x:72:72::/:/sbin/nologin
westos:x:1000:1000::/home/westos:/bin/bash
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin

==> /etc/group <==
tcpdump:x:72:westos
westos:x:1000:
apache:x:48:

8、用户和用户组的建立及删除

命令用途
useradd username##用户建立
-u id username##指定uid
userdel username删除用户,则只会删除用户的信息,并不会删除用户的家目录(系统配置文件)
userdel -r username删除用户并且删除用户系统配置文件
groupadd username组的建立
groupdel username组的删除
groupadd -g id指定组id,切记指定组id时用户不能存在,若存在需要删除用户重新建立
[root@foundation50 Desktop]# useradd linux 
[root@foundation50 Desktop]# userdel -r linux
[root@foundation50 Desktop]# groupadd linux
[root@foundation50 Desktop]# groupdel linux
[root@foundation50 Desktop]# groupadd -g 666 linux
[root@foundation50 Desktop]# groupadd -g 888 linux    
groupadd: group 'linux' already exists   ##linux已经存在则需要删除
[root@foundation50 Desktop]# groupdel linux    
[root@foundation50 Desktop]# groupadd -g 888 linux  删除后可以指定

id范围表示名称
0表示超级用户
1-200系统预留id
01-999系统用户
1000-60000用户级用户
etc/login.defs记录用户建立的默认规则
命令用途
useradd username用户建立
-u id username指定uid
-g id username指定组id
-G id username指定附加组id
-d dir username指定用户家目录
-M usernamej建立用户时不指定用户家目录
-c word username指定用户说明
-s shell username指定用户shell
[root@foundation50 Desktop]# useradd -u 666 linux  指定uid
[root@foundation50 Desktop]# userdel -r linux  
[root@foundation50 Desktop]# useradd -g 666 linux  指定组id时组必须存在
useradd: group '666' does not exist
[root@foundation50 Desktop]# groupadd -g 666 linux   建立组
[root@foundation50 Desktop]# useradd -g 666 linux   指定组id
[root@foundation50 Desktop]# useradd -G 72 linux  指定附加组
[root@foundation50 Desktop]# id linux
uid=1001(linux) gid=1001(linux) groups=1001(linux),72(tcpdump)
[root@foundation50 Desktop]# userdel -r linux 
[root@foundation50 Desktop]# useradd -G 72,1000 linux  可以指定多个附加组
[root@foundation50 Desktop]# id linux
uid=1001(linux) gid=1001(linux) groups=1001(linux),72(tcpdump),1000(westos)
[root@foundation50 Desktop]# userdel -r linux 
[root@foundation50 Desktop]# useradd -c 'linux user' linux  指定用户说明
[root@foundation50 Desktop]# userdel -r linux 
[root@foundation50 Desktop]# useradd  -M linux    不指定家目录
[root@foundation50 Desktop]# userdel -r linux 
userdel: linux home directory (/home/linux) not found
[root@foundation50 Desktop]# useradd  -d /home/haha  linux  指定家目录
[root@foundation50 Desktop]# userdel -r linux  
[root@foundation50 Desktop]# useradd -s /sbin/nologin linux  指定用户shell   /sbin/nologin表示不可登陆shell
[root@foundation50 Desktop]# su -linux
This account is currently not available.
[root@foundation50 Desktop]# userdel -r linux 
[root@foundation50 Desktop]# cat /etc/shells  查看系统中有哪些shell
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash

9、用户和用户组的管理

命令用途
usermodusermod
-l更改用户名称
-u更改用户id
-g更改组id
-G更改用户附加组身份
aG添加用户附加组身份
-c更改用户说明
-d#更改家目录指向字符,但是真实的目录名称并不改变 ( -d 更改的是/etc/passwd 家目录中的指向字符,但是真实目录名称并不会改变)
-md#更改家目录指向字符同时更改家目录名称 (md 两个字符不能互换)
-s#更改默认shell
-L#冻结账号
-U#解锁
[root@foundation50 Desktop]# groupmod -g 666 linux  更改用户组id
[root@foundation50 Desktop]# groupmod -g 1001 linux
[root@foundation50 Desktop]# useradd linux   
[root@foundation50 Desktop]# usermod -l redhat linux   更改用户名
[root@foundation50 Desktop]# usermod -l linux redaht     更改用户名
usermod: user 'redaht' does not exist
[root@foundation50 Desktop]# usermod -l linux redhat   
[root@foundation50 Desktop]# usermod -u 666 linux    更改用户id
[root@foundation50 Desktop]# usermod -u 1001 linux  
[root@foundation50 Desktop]# usermod -g 1000 linux   更改组id
[root@foundation50 Desktop]# id linux
uid=1001(linux) gid=1000(westos) groups=1000(westos)
[root@foundation50 Desktop]# usermod -g 1001 linux
[root@foundation50 Desktop]# id linux
uid=1001(linux) gid=1001(linux) groups=1001(linux)
[root@foundation50 Desktop]# usermod -G 1000 linux   更改附加组id
[root@foundation50 Desktop]# id linux
uid=1001(linux) gid=1001(linux) groups=1001(linux),1000(westos)
[root@foundation50 Desktop]# usermod -G 72 linux 更改附加组id
[root@foundation50 Desktop]# id linux
uid=1001(linux) gid=1001(linux) groups=1001(linux),72(tcpdump)
[root@foundation50 Desktop]# usermod -aG 1000 linux  添加附加组id
[root@foundation50 Desktop]# id linux
uid=1001(linux) gid=1001(linux) groups=1001(linux),72(tcpdump),1000(westos)
[root@foundation50 Desktop]# usermod  -G "" linux  清空所有附加组
[root@foundation50 Desktop]# id linux
uid=1001(linux) gid=1001(linux) groups=1001(linux)
[root@foundation50 Desktop]# usermod -c "linux user" linux   更改用户说明
[root@foundation50 Desktop]# usermod -c "" linux   清空用户说明
[root@foundation50 Desktop]# usermod -d /home/lee linux    更改用户家目录指向 ,而不是更改家目录文件名称
[root@foundation50 Desktop]# usermod -d /home/linux linux 
[root@foundation50 Desktop]# usermod -md /home/lee linux 即更改家目录指向,也更改家目录文件名词
[root@foundation50 Desktop]# usermod -md /home/linux linux
[root@foundation50 Desktop]# usermod -s /sbin/nologin linux  更改用户的shell
[root@foundation50 Desktop]# usermod -s /bin/bash linux

10、用户认证信息管理

/etc/shadow
在这里插入图片描述

命令功能
/dev/random加密字符串设备

10、1更改密码

超级用户改密码

1、 passwd lee        ##只有root可以执行   
2、超级用户可以用非交互式改密码:
 “echo 123 | passwd --stdin lee”    (stdin  表示采集标准 输入给 lee)
3、超级用户也可以 如下改密码:
   passwd  << EOF
    lee
    lee
    EOF
    

普用用户改密码

[lee@foundation50 Desktop]$ passwd   普通用户修改密码只能修改自己用户密码
Changing password for user lee.
Current password:        需要输入原始密码
New password:             密码必须是8位以上并且是数字加字符无序的组合
Retype new password: 
passwd: all authentication tokens updated successfully.

11、查看密码状态

命令功能
passwd -S lee查看密码状态
root@foundation50 Desktop]# passwd -S lee
lee PS 2021-08-11 0 99999 7 -1 (Password set, SHA512 crypt.)

12、冻结账号和解锁账号

命令功能
usermod -L lee冻结账号
usermod -U lee解锁账号
passwd -l lee冻结账号
passwd -u lee解锁账号
[root@foundation50 Desktop]# usermod -L lee  加密字符串前面加一个!
[root@foundation50 Desktop]# usermod -U lee
[root@foundation50 Desktop]# passwd -l lee  加密字符串前面加一个!!
Locking password for user lee.
passwd: Success
[root@foundation50 Desktop]# passwd -u lee
Unlocking password for user lee.
passwd: Success

13、密码删除

命令用户
passwd -d lee密码删除
[root@foundation50 Desktop]# passwd -d lee
Removing password for user lee.
passwd: Success

14 、密码使用天数

从1970-1-1算其到今天的时间

命令
passwd -e lee修改默认使用时间为0 (用户在登陆系统完成认证之后,被强制的修改一次密码,否则登陆不了系统.)
chage -d 0 lee##账号必须改密码才能登陆系统, ( passwd -e 只能修改为0, 而 chage -d 0 可以修改为其他指定都行,但是意义不大,一般都是0)
[root@foundation50 Desktop]# passwd -e lee  只能修改为0 ,修改后必须强制修改一次密码,否则无法登陆
Expiring password for user lee.
passwd: Success
[root@foundation50 Desktop]# chage -d 11 lee   可以修改为除了0的其他数字 ,但是意义不大
[root@foundation50 Desktop]# chage -d 0 lee  

15、 密码最短有效期

命令功能
passwd -n 1 lee密码最短有效期
chage -m 1 lee密码最短有效期
[root@foundation50 Desktop]# passwd -n 1 lee  设置密码最短有效期
Adjusting aging data for user lee.
passwd: Success
[root@foundation50 Desktop]# su -- lee
[lee@foundation50 Desktop]$ passwd  
Changing password for user lee.
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.
[lee@foundation50 Desktop]$ passwd
Changing password for user lee.
Current password: 
You must wait longer to change your password    至少需要等24小时后才能修改密码
passwd: Authentication token manipulation error
[root@foundation50 Desktop]# chage -m 0 lee  设置密码最短有效期

16、 密码最长有效期

命令用户
passwd -x 30 lee密码最长有效期
chage -M 40 lee密码最长有效期
[root@foundation50 Desktop]# chage -M 40 lee
[root@foundation50 Desktop]# passwd -x 30 lee
Adjusting aging data for user lee.
passwd: Success

17、 警告期

命令用户
passwd -w 2 lee警告期
chage -W 7 lee警告期
[root@foundation50 Desktop]# passwd -w 2 lee
Adjusting aging data for user lee.
passwd: Success
[root@foundation50 Desktop]# chage  -W 7 lee

18、 非活跃天数

命令用户
passwd -i 1 lee非活跃天数
chage - I 2 lee非活跃天数
[root@foundation50 Desktop]# passwd -i 1 lee
Adjusting aging data for user lee.
passwd: Success
[root@foundation50 Desktop]# chage -I 2 lee

19、 账号到期时间

命令用户
chage - E “2020-11-11” lee账号到期时间
[root@foundation50 Desktop]# chage -E "2020-11-11" lee

练习:
在这里插入图片描述
答案:
在这里插入图片描述

20 、用户权力下放

在系统中普通用户时无法执行系统管理命令的
如果需要普通用户执行系统管理动作那么需要oot用户来进行授权

命令功能
hoStname查看当前系统的主机名
which查看命令绝对路径
命令用户
普通用户授权方式 “sudo”可以使普通用户使用指定的用户身份来运行命令

授权方法:visudo

命令功能
visudo此命令作用是编辑/etc/sudoers并提供语法检测(之前讲到的 vim 可以编辑,但是不会提示语法报错) 语法检测只能确保语法正确,不能表示设定是合理的或者单词拼写错误。退出时提示错误,按e 继续进行编辑。

在文件的100行左右 ##代码规范性 ****ALL (全部,但是很危险)

  username       hostname=(newusername)          [NOPASSWD:] /command, /command1

    #lee用户    在linux.wesots.com主机=(用超级用户身份)            执行useradd命令
     lee           linux.westos.com=(root)                   /usr/sbin/useradd
#westos用户     在linux.wesots.com主机   使用超户      免密    执行useradd 和 userdel
    westos          linux.wesots.com = (root)   NOPASSWD: /usr/sbin/useradd, /usr/sbin/userdel
[root@foundation50 Desktop]# useradd westoslinux   建立用户
[root@foundation50 Desktop]# echo westos | passwd --stdin westoslinux 修改密码
Changing password for user westoslinux.
passwd: all authentication tokens updated successfully.
[root@foundation50 Desktop]# hostname  查看主机名
foundation50.ilt.example.com
[root@foundation50 Desktop]# visudo  编辑/etc/sudoers并提供语法检测
## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
westoslinux foundation50.ilt.example.com=(root) NOPASSWD:/usr/sbin/useradd, /usr/sbin/userdel
[root@foundation50 Desktop]# su -- westoslinux 登陆普通用户
[westoslinux@foundation50 Desktop]$ sudo  useradd linux   可以建立用户
Creating mailbox file: File exists
[westoslinux@foundation50 Desktop]$ id linux
uid=1002(linux) gid=1002(linux) groups=1002(linux)
[westoslinux@foundation50 Desktop]$ sudo userdel -r linux   普通用户删除
userdel: /var/spool/mail/linux not owned by linux, not removing
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小莫细说linux

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

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

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

打赏作者

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

抵扣说明:

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

余额充值