Linux系统对用户进行管理

1 用户及用户组存在的意义

1)用户存在的意义
系统资源是有限的,如何合理分配系统资源?
在这个问题解决时必须要有连个资源配合
1.身份 account
2.授权 author
3.认证 auth
3A 机制,3A 机制组成系统中最底层的安全架构

2)用户组存在意义
用户组是一个逻辑容器
对用户进行归类和统一授权

2.用户及用户组在系统中的存在方式

电脑对数字敏感 id
人类对字符串敏感 名称
id <-------> 名称 必须要记录到文件当中用户才能存在
用户就是/etc/passwd 文件中的一行字符
用户组存在的方式就是/etc/group 文件中的一行字符

3.用户切换

1)用户查看
*whomai  ##查看当前用户
*id      ##查看用户 id 信息
-u       ##查看用户的用户 id
-g       ##查看用户主组 id
-G       ##查看用户所有的组的 id
-n       ##显示名称

2)用户切换
su - username
-  #切换用户环境
username   ##如果 root ----> commonuser 不需要后者密码
           ##commonuser ----> root   需要密码
           ##commonuser ----> commonuser 需要密码
           #
           #注意:在做用户切换时当使用完毕用户身份及时退出
           #不要在一个 shell 中反复执行 su 命令
           #在一个 shell 中反复执行 su 命令会导致环境错乱

4.用户涉及到的系统配置文件

/etc/passwd  ##用户身份信息文件
#用户名称:用户密码:用户 id:用户主组 id:用户说明:用户家目录:用户默认shell

/etc/group   ##组身份信息文件
#组名称:组密码:组 id:组的附加成员

/etc/skel/.* ##用户环境配置文件模板

/etc/shadow  ##用户认证信息文件

/home/username ##用户家目录

5.用户和用户组建立及删除

链接: Linux useradd命令.

监控用户建立的命令
watch -n 1 "tail -n 4 /etc/passwd /etc/group;echo =======;ls -l /home"

useradd  username  ##用户建立
-u id username  ##uid  2**16=0-65535
                ##0    表示超级用户
                ##1-200  系统预留 id
                ##201-999   系统用户
                ##1000-60000 用户级用户
                ##/etc/login.defs 记录用户建立的默认规则
-g id username  ##主组 id
-G id username  ##附加组 id
-d dir username ##指定用户家目录
-c word username ##指定用户说明
-s shell username ##指定用 shell
userdel -r username ##用户删除 -r 删除用户的系统配置文件

groupadd groupname ##组建立
-g id groupname    ##指定组名称
groupdel groupname ##组删除

6.用户和用户组的信息管理

usermod
-l  #更改用户名称
-u  #更改用户 id
-g  #更改主组 id
-G  #更改用户附加组身份
-aG #添加用户附加组身份
-c  #更改用户说明
-d  #更改家目录指向
-md #更改家目录指向同时更改家目录名称
-s  #更改默认 shell
-L  #冻结账号
-U  #解锁

groupmod -g ##更改用户组 id

7.用户认证信息管理

#1.用户名称
passwd -S lee  ##查看密码状态
lee PS 2020-11-23 0 99999 7 -1 (Password set, SHA512 crypt.)
lee:$6$ifuY/M0gaq0qANLZ$44S0jAO0X5vIYKkVOuFGGDmEmSkNwZlF.YQO8kVt/1/fF6TOYRmpAn7r5YRMC/2X09RDzDGL.Kjwfggq/ufkd.:18589:0:99999:7:::

#2.用户加密字符
#更改密码)
passwd lee   ##只有 root 可以执行 “echo 123 | passwd --stdin lee”

passwd  ##普通用户改密码
Changing password for user lee.
Current password: #输入原始密码
New password:     ##输入新密码(8 位以上无序数字+无序字母组合)
Retype new password: ##重复输入
passwd: all authentication tokens updated successfully.

#冻结认证)
passwd -l lee  ##冻结账号认证
passwd -u lee  ##解锁账号认证

#密码删除)
passwd -d lee

#密码使用天数
*从 1970-1-1 算其到今天的时间

passwd -e lee  ##修改默认使用时间为 0
chage -d 0 lee  ##账号必须改密码才能登陆系统

#密码最短有效期
passwd -n 1 lee  ##lee 在 1 天内不能改密码
chage -m 1 lee

#密码最长有效期
passwd -x 40 lee  ##40 天内 lee 用户必须更新密码否则会被冻结
chage -M 30 lee

#密码过期警告
passwd -w 2 lee  ##账号过期前警告时间
chage -W 1 lee

#认证非活跃天数
passwd -i 2 lee  ##账号认证最大时间超过后还能用多久
chage -I 1 lee

#账号认证到期时间
chage -E "2020-05-11"  ##到 2020-5-11 这天账号会被冻结

#未启用功能

8.用户权力下放

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

普通用户授权方式 “sudo”
作用: 可以使普通用户使用指定的用户身份呢运行命令

授权方法:
visudo  ##此命令作用是编辑/etc/sudoers 并提供语法检测

在文件的 100 行左右 ##代码规范性
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

测试:
su - lee
sudo useradd westostest ##在lee第一次使用sudo命令时需要输入lee密码
exit #退出 lee
su - westos
sudo userdel -r westostest  ##westos可以免密执行userdel命令

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值