用户和用户组

(1) 用户存在的意义

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

(2)用户组存在意义

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

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

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

 用户切换

(1)用户查看

whomai        查看当前用户

id                  查看用户id信息

id -u             查看用户的用户id

id -g             查看用户主组id

id -G            查看用户所有的组的id

id -n            显示名称

(2)用户id范围:

0-65535

0:                Linux超级用户ID

1-999:      Liunx系统自用ID

1000-65535: 用户级ID

以上ID设定规则都被记录在/etc/login.defs

(3)用户切换

su – username         用户切换

–                               切换用户环境

username                root 登录普通用户不需要后者密码

普通用户登录root需要密码

普通用户登录普通用户需要密码

注意:在做用户切换时当使用完毕用户身份输入exit及时退出 ,不要在一个shell中反复执行su命令 ,如果在一个shell中反复执行su命令会导致环境错乱

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

/etc/passwd            用户身份信息文件

用户名称:用户密码:用户id:用户主组id:用户说明:用户家目录:用户默认shell /etc/group               组身份信息文件     组名称:组密码:组id:组的附加成员

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

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

/home/username    用户家目录

/var/spool/mail/username         用户邮箱文件

用户和用户组建立及删除

useradd username                   用户建立

useradd -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          指定用户家目录

-M username              建立用户时不建立家目录

-c word username       指定用户说明

-s shell username       指定用shell

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

userdel -r username                用户删除    -r 删除用户的系统配置文件

groupadd groupname             组建立

-g id groupname       指定组名称

groupdel groupname              组删除

用户和用户组的信息管理

usermod   -l             更改用户名称

-u            更改用户id

-g            更改主组id

-G            更改用户附加组身份

-aG          添加用户附加组身份

-c            更改用户说明

-d            更改家目录指向

-md          更改家目录指向同时更改家目录名称

-s            更改默认shell

-L            冻结账号

-U            解锁

groupmod -g          更改用户组id

监控命令:watch -n 1 “tail -n 3 /etc/passwd /etc/group;echo =======;ls -l /home”

 用户认证信息管理

/etc/shadow 文件内容说明

用户名称:用户密码的加密字符:用户密码最后一次被修改时间:密码最短有效期:密码最长有效期:密码过期前警告期: 账号非活跃期:账号到期时间:用户自定义(未使用)

watch -n 1 tail -n1 /etc/shadow       监控命令

1.用户名称

passwd -S westoslee          查看密码状态

2.用户加密字符

更改密码

passwd westoslee             只有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 westoslee           冻结账号认证

passwd -u westoslee          解锁账号认证

密码删除

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 westoslee         40天内lee用户必须更新密码否则会被冻结

chage -M 30 westoslee          密码过期警告

passwd -w 2 westoslee          账号过期前警告时间

chage -W 1 westoslee

认证非活跃天数

passwd -i 2 westoslee        账号认证最大时间超过后还能用多久

chage -I 1 westoslee

账号认证到期时间

chage -E “2020-05-11”  westoslee      到2025-5-11这天账号会被冻结

 3用户权力下放

  • 在系统中普通用户时无法执行系统管理命令的,如果需要普通用户执行系统管理动作,那么需要 root用户来进行授权
  • 普通用户授权方式 “sudo”
  • 作用: 可以使普通用户使用指定的用户身份运行命令
  • 授权方法:
  • visudo          此命令作用是编辑/etc/sudoers并提供语法检测
  • 在文件的100行左右输入更改,代码规范性
  • username              hostname=(newusername)              [NOPASSWD:] /command, /command1
  • 在root用户下输入hostnamectl查询复制主机名称
  • 之后输入visudo权力下放内容进行编辑,在文件的100行左右更改,代码规范性
  • 编写完成后保存
  • su到普通用户,使用编写内容里的权力命令时必须在命令前加sudo命令才可生效

 


云野 » Linux中的系统用户管理

发表回复