用户和组管理

用户和组管理


一、用户和组概念

1.用户和组概念
例子
火车站刷脸
上下班刷指纹
天地会接头暗号

用户存在的目的是为了实现资源的分派。

例子
共享单车抱回家
总经理行使权利

Authentication:认证
Authorization:授权
Accouting:审计

2.用户分类

Linux用户分为管理员和普通用户两种:

用户类别用户ID
管理员0
普通用户1-65535

其中普通用户又分为系统用户和登录用户两种:

用户类别用户ID
系统用户1-999(为守护类进程获取系统资源而完成权限指派的用户)
登录用户1000-60000(为了完成交互式登录使用的用户)
3.Linux安全上下文

运行中的程序:进程(process)
以进程发起者的身份运行
root:cat
tom:cat
进程所能够访问的所有资源的权限取决于进程的发起者的身份
Linux通过安全上下文的概念完成用户权限的指派。
先判断用户是否是某文件的属主
再判断用户是否属于某个组
最后定其为其他用户

4.Linux用户组类别
用户组类别特性
私有组创建用户时,如果没有为其指定所属的组,系统会自动为其创建一个与用户名相同的组
基本组用户的默认组
附加组(额外组)默认组以外的其它组

二、Linux用户和组相关的配置文件

1.各配置文件说明
配置文件作用
/etc/passwd用户及其属性信息(名称、uid、基本组id等等)
/etc/group组及其属性信息
/etc/shadow用户密码及其相关属性
/etc/gshadow组密码及其相关属性。在用户执行基本组切换时使用

|配置文件| /etc/passwd| /etc/group|
|:—😐 | |
|第一字段| 用户名 |组名|
|第二字段| 密码占位符| 组密码|
|第三字段| UID |GID|
|第四字段| GID |当前组为附加组的用户列表(分隔符为逗号)|
|第五字段| 用户的描述信息||
|第六字段| 用户家目录 |
|第七字段| 用户的登录shell|

/etc/passwd:
[root@192 ~]# grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash

[root@192 ~]# grep root /etc/group
root:x:0:
配置文件/etc/shadow
第一字段登录名
第二字段加密后的密码
第三字段最近一次更改密码的日期
第四字段密码的最小使用期限
第五字段密码的最大使用期限
第六字段密码警告时间段
第七字段密码禁用期
第八字段帐号的过期日期
第九字段保留字段
[root@192 ~]# grep root /etc/shadow
root:$6$hyfgh043SHOGl3gb$a6kPU8Oo.04J6h.YaJbiPJ17M5jDslQhL.tHXFXQ/nHUgzA/tMI8bPh/woxyqBdeqadnbB/MOWAAqDhrWtD0s/::0:99999:7:::
2.密码复杂性

密码复杂性策略:
使用数字、大写字母、小写字母及特殊字符中至少3种
足够长
使用随机密码,不要使用有意义的单词或数字
定期更换,不要使用最近曾经使用过的密码

用户和组相关的管理命令

一、用户管理

1.用户创建命令useradd
useradd:    //语法:useradd [option] USERNAME

useradd -u UID:      //[UID_MIN,UID_MAX]定义在/etc/login.defs文件中
[root@192 ~]# useradd -u 2022 yy
[root@192 ~]# id yy
uid=2022(yy) gid=2022(yy) groups=2022(yy)

useradd -g GID:      //指定用户所属基本组,可为组名或GID
[root@192 ~]# groupadd -g 2020 admins
[root@192 ~]# useradd -g 2020 yy1
[root@192 ~]# id yy1
uid=2023(yy1) gid=2020(admins) groups=2020(admins)

useradd -G groupname,...:    //附加组,可以有多个,用逗号隔开。组groupname必须事先存在
[root@192 ~]# useradd -G admins yy3
[root@192 ~]# id yy3
uid=2025(yy3) gid=2025(yy3) groups=2025(yy3),2020(admins)

useradd -c "COMMENT":        //注释信息
[root@192 ~]# useradd -c "bass" yy2
[root@192 ~]# grep yy2 /etc/passwd
yy2:x:2024:2024:bass:/home/yy2:/bin/bash

useradd -d /path/to/directory:   //指定用户的家目录。此目录必须不能事先存在,否则将不会从/etc/skel中复制环境设置文件
[root@192 ~]# useradd -d /path/to/directory yy4
useradd: cannot create directory /path/to/directory
[root@192 ~]# grep yy4 /etc/passwd
yy4:x:2026:2026::/path/to/directory:/bin/bash

useradd -s shell:        //这里的shell最好使用/etc/shells里面有的shell   
                         // /etc/shells指定了当前系统可用的安全shell
useradd -M:          //创建用户时不给其创建家目录
useradd -r:          //添加一个系统用户
[root@192 ~]# useradd -r -M -s /sbin/nologin yy5
[root@192 ~]# id yy5
uid=995(yy5) gid=992(yy5) groups=992(yy5)
[root@192 ~]# grep yy5 /etc/passwd
yy5:x:995:992::/home/yy5:/sbin/nologin

useradd -D:          //直接打印/etc/default/useradd文件的内容或配合其它选项 
                     //(例如-s SHELL)直接修改/etc/default/useradd文件中的默认值
2.用户删除命令userdel
userdel:    //语法:userdel [option] USERNAME
[root@192 ~]# userdel  yy
[root@192 ~]# id yy
id: 'yy': no such user

userdel -r:    //删除用户的同时删除其家目录(userdel默认不会删除其家目录)
[root@192 ~]# userdel -r yy4
userdel: yy4 mail spool (/var/spool/mail/yy4) not found
userdel: yy4 home directory (/path/to/directory) not found
3.查看用户帐号的信息命令id
id:     //查看用户的帐号属性信息
[root@192 ~]# id yy2
uid=2024(yy2) gid=2024(yy2) groups=2024(yy2)

id -u:    //查看UID
[root@192 ~]# id -u yy2
2024

id -g:    //查看GID
[root@192 ~]# id -g yy2
2024

id -G:    //查看Groups
[root@192 ~]# id -G yy2
2024
4.修改用户帐号属性的命令usermod
usermod:    //修改用户属性

usermod -u UID:   //更改用户uid
[root@192 ~]# usermod -u 2002 yy2
[root@192 ~]# id -u yy2
2002

usermod -g GID:   //更改用户gid
[root@192 ~]# groupadd call
[root@192 ~]# usermod -g call yy2
[root@192 ~]# id -g yy2
2026

usermod -a -G groupname:    //不使用-a选项,会覆盖此前的附加组
[root@192 ~]# useradd -G call,admins yy4
[root@192 ~]# id yy4
uid=2026(yy4) gid=2027(yy4) groups=2027(yy4),2020(admins),2026(call)
[root@192 ~]# usermod -G call yy4
[root@192 ~]# id yy4
uid=2026(yy4) gid=2027(yy4) groups=2027(yy4),2026(call)

usermod -d -m:   //改变用户家目录的同时把原来家目录的文件移动到新的家目录中
[root@192 ~]# useradd -d /path/to/directory yy6
useradd: cannot create directory /path/to/directory
[root@192 ~]# grep yy6 /etc/passwd
yy6:x:2027:2028::/path/to/directory:/bin/bash
[root@192 ~]# usermod -md /opt/yy yy6
usermod: directory /opt/yy exists
[root@192 ~]# grep yy6 /etc/passwd
yy6:x:2027:2028::/opt/yy:/bin/bash

usermod -L:      //锁定帐号
                 //被锁定的帐号在/etc/shadow文件中密码前面会有一个!感叹号
[root@192 ~]# useradd hzz
[root@192 ~]# echo 123456 | passwd --stdin hzz
Changing password for user hzz.
passwd: all authentication tokens updated successfully.
[root@192 ~]# usermod -L hzz
[root@192 ~]# grep hzz /etc/shadow
hzz:!$6$ZLV.EsYkg3IaNmVz$UkmeYa9xnwm1GR4fVDiSOtZmBBGy8VWwHOcbxlNbyAA4yBOi1Gz3GsR3kgerR8YEJoFMgH7puJsL0us/pc3Rr0:19178:0:99999:7:::

usermod -U:      //解锁帐号
[root@192 ~]# usermod -U hzz
[root@192 ~]# grep hzz /etc/shadow
hzz:$6$ZLV.EsYkg3IaNmVz$UkmeYa9xnwm1GR4fVDiSOtZmBBGy8VWwHOcbxlNbyAA4yBOi1Gz3GsR3kgerR8YEJoFMgH7puJsL0us/pc3Rr0:19178:0:99999:7:::

//chsh  修改用户的默认shell
//语法:chsh [options] [username]
    -s SHELL
5.切换用户命令su
切换用户的方式特点
su USERNAME非登录式切换,即不会读取目标用户的配置文件
su - USERNAME登录式切换,即会读取目标用户的配置文件。完全切换
su -不指定用户时默认切换至root用户

root su至其他用户不需要密码,非root用户su至其他用户时需要输入目标用户的密码

//语法:su [options] [-] [USER [arg]...]
    -c 'COMMAND'    //切换身份执行命令,命令执行结束后又回到原来的身份
su USERNAME:
[root@192 ~]# su yy1
[yy1@192 root]$ exit
exit

su - USERNAME:
[root@192 ~]# su - hzz
Last login: Tue Jul  5 20:23:54 CST 2022 on pts/0
[hzz@192 ~]$ 

su -:
[hzz@192 ~]$ su -
Password: 
Last login: Tue Jul  5 20:25:07 CST 2022 on pts/0
[root@192 ~]# 

bash的配置文件:

配置文件类型配置文件路径
全局配置/etc/profile、/etc/profile.d/*.sh、/etc/bashrc
个人配置~/.bash_profile、~/.bashrc
配置文件类型功能
profile类为交互式登录的shell提供配置,用来设定环境变量、运行命令或脚本
bashrc类为非交互式登录的shell提供配置,用来设定本地变量、定义命令别名

登录式shell如何读取配置文件?
/etc/profile --> /etc/profile.d/.sh --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc
非登录式shell如何读取配置文件?
~/.bashrc --> /etc/bashrc --> /etc/profile.d/
.sh

二、密码管理命令passwd

1.密码管理命令passwd
passwd:   //passwd [options] [USERNAME]
[root@192 ~]# passwd yy
Changing password for user yy.
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.
          
passwd --stdin USERNAME:    //从标准输入获取用户密码, 例:echo "redhat"|passwd --stdin user1
[root@192 ~]# useradd yy
[root@192 ~]# echo 123456 | passwd --stdin yy
Changing password for user yy.
passwd: all authentication tokens updated successfully.
2.密码生成工具openssl
//语法:openssl command [ command_opts ] [ command_args ]
    command     //包含标准命令、消息摘要命令、加密命令
        version     //查看程序版本号
        dgst        //提取特征码
        passwd      //生成密码
        rand        //生成伪随机数

//提取特征码
[root@localhost ~]# openssl dgst -md5 /etc/fstab
MD5(/etc/fstab)= a977cc5e638d779ed880f3fee6d7067e

//生成密码 openssl passwd -1 -salt string        //string一般为8位
[root@localhost ~]# openssl passwd -1 -salt hellotom
Password:
$1$hellotom$HpEDmPGqWwhP/eHg0kJHA0

//生成随机数 openssl rand -base64 NUM
//NUM表示随机数的长度
[root@localhost ~]# openssl rand -base64 20
S/q8tjUSBuUNHb+0cgDX66dbvTQ=

三、组管理

1.创建组命令groupadd
groupadd:    //创建组
[root@192 ~]# groupadd runtime
[root@192 ~]# grep runtime /etc/group
runtime:x:2031:

groupadd -g GID:    //指定GID
[root@192 ~]# groupadd -g 3000 runtime1
[root@192 ~]# grep runtime1 /etc/group
runtime1:x:3000:

groupadd -r GROUPNAME:    //创建系统组
[root@192 ~]# groupadd -r runtime2
[root@192 ~]# grep runtime2 /etc/group
runtime2:x:991:
2. 删除组命令groupdel
groupdel:    //语法:groupdel [options] GROUP
             //删除组时只需要指定组名即可
[root@192 ~]# groupdel runtime 
[root@192 ~]# 

p runtime1 /etc/group
runtime1❌3000:

groupadd -r GROUPNAME: //创建系统组
[root@192 ~]# groupadd -r runtime2
[root@192 ~]# grep runtime2 /etc/group
runtime2❌991:

##### 2. 删除组命令groupdel
```bash
groupdel:    //语法:groupdel [options] GROUP
             //删除组时只需要指定组名即可
[root@192 ~]# groupdel runtime 
[root@192 ~]# 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值