学习Linux的第一天(用户和组的一些基础知识和基本操作)

学习linux基础的第一天


用户和组


超级用户root 其他用户 可以有上千个 只是权限

用户:
任何一个用户都会被分配一个ID
UID 0 标识超级用户root
一般的其他用户 redhat UID是从1000开始的
0-1000是系统默认存在的用户 系统已经占用
/etc/passwd 文件存储了所有用户的信息,千万不可以直接修改

// A code block
var foo = 'bar';
```redhat:x:1000:1000:redhat:/home/redhat:/bin/bash
dnsmasq:x:984:984:Dnsmasq DHCP and DNS server:/var/lib/dnsmasq:/sbin/nologin  

```javascript

linux系统文件用:来分割字段
字段1:用户名称 redhat
字段2:密码占位符 x
字段3:UID 1000
字段4:用户的私有组 1000
字段5:用户描述信息 redhat
字段6:用户的家目录 /home/redhat
字段7:登陆的shell信息 /bin/bash 可以使用命令功能
/sbin/nologin 不可以使用命令功能

id用于显示用户的ID,以及所属群组的ID

组 :
用户必须属于一个组 我们在创建用户的时候 默认会创建一个组 组名和用户名完全相同
每个组也都被分了一个组ID
/etc/group 存放组信息
可以将用户添加到某个组
同一个组的所有用户,是可以共享这个组的文件的

wheel 如果某个普通用户 想通过sudo提权来完成某些命令
要把这个用户加入到 wheel这个组里面 wheel组是系统管理员组
提权 sudo + 某些命令 就可以以root用户来执行这个命令
在某些情况下 需要提供root密码
su - 是直接切换到root用户
sudo 和 su - 区别
sudo全称: substitute user do 允许用户做
su - 切换到root用户的传统命令

redhat❌1000:
字段1:组名称
字段2:密码占位符
字段3:组的id

**

用户和组的创建:

**
useradd
-u: uid
-g: 用户组的名称
-d: 家目录
-G: 附加组 (wheel)
-s: 指定shell文件

usermod可用来修改用户帐号的各项设定
-d<登入目录>:修改用户登入时的目录。
-e<有效期限>:修改帐号的有效期限。
-f<缓冲天数>:修改在密码过期后多少天即关闭该帐号。
-g<群组>:修改用户所属的群组。
-G<群组>:修改用户所属的附加群组。
-l<帐号名称>:修改用户帐号名称。
-L:锁定用户密码,使密码无效。
-s 修改用户登录后的shell功能
-u 修改用户uid
-U:解除密码锁定

groupadd 增加组 -g 组id
groupadd workgroup -g 1001
groupmod 命令用于更改群组识别码或名称
groupmod [选项] 组

选项
-g:将组 ID 改为 GID
-n:改名为 NEW_GROUP

用户和组的删除
-f 删除用户家目录及邮箱 目录名还在
userdel
groupdel

密码
passwd test 可以给test赋值密码
输入密码:

Redhat@123 passwd赋值密码会对密码有要求
通常来说 都会通过管道符来赋值
echo 输出
echo redhat | passwd --stdin test
把redhat这个密码 赋值给用户 test

/etc/shadow 这个文件存放了所有的用户密码信息

redhat: 6 6 6HHmrlnNuP4wOvb5.$l.opck2FlwyQluRsSAS2VOGl1qY79x4UB2YKK2F7pIlx8GRn1VZV7LHiXKMvzKcQCtC/eklaIiz8TeEhsNPWQ/::0:99999:7:::

字段1:用户账户名称
字段2:加密秘钥字符串信息 一般都是sha或md5加密
字段3:最近一次修改密码的时间,表示从1970.1.1 到至今的天数
字段4:密码的最短使用天数
字段5:密码最长有效天数 默认99999
字段6:密码即将到期警告天数 默认7
字段7:在密码过期后账号保持活跃的天数,指天数之后账号被锁定,无效 表示从1970.1.1 到至今的天数
字段8:账号失效时间,默认也是为空

chage 配置密码相关
-m 最小期限
-M 最大期限
-W 警告周期
-I 失效周期
-d 强制要求用户在下一次登陆时更新密码
-l 显示秘密信息
-E 用户将于2020-12-30到期(XXXX-DD-YY)

chage -m 0 -M 30 -W 7 -I 14 test
chage -E 2022-12-30 test
chage -d test 下次登录必须要修改密码

/etc/login.defs 这个文件是用来创建用户时进行一定的限制,但是优先级低于/etc/passwd
和/etc/shadow

[root@localhost ~]# vi /etc/login.defs
MAIL_DIR /var/spool/mail # 系统消息(邮件)文件夹
PASS_MAX_DAYS 99999 # 密码有效最大天数
PASS_MIN_DAYS 0 # 密码有效最小天数
PASS_MIN_LEN 5 # 密码长度
PASS_WARN_AGE 7 # 密码失效警告倒计时
UID_MIN 1000 # 用户UID最小1000
UID_MAX 60000 # 用户UID最大60000
SYS_UID_MIN 201 # 系统用户UID最小201
SYS_UID_MAX 999 # 系统用户UID最大999
GID_MIN 1000 # 用户组GID最小1000
GID_MAX 60000 # 用户组GID最大60000
SYS_GID_MIN 201
SYS_GID_MAX 999
CREATE_HOME yes # 创建家目录
UMASK 077 # 创建文件/目录的权限掩码
USERGROUPS_ENAB yes # 创建用户时同时生成组是 如果此处是no 创建的用户 会是gid=100(users)groups=100(users)
ENCRYPT_METHOD SHA512 # 加密 方法 sha 512 这个方法生成的密码在/etc/shadow里面的第二列会以 6 6 6开头

sudo命令执行过程
1.当用户执行sudo,系统会主动寻找 /etc/sudoers文件,判断该用户是否有执行sudo权限
2.确认用户具有可执行sudo权限后,让用户输入自己的密码确认
3.若密码输入成功,才可以执行sudo后续命令

赋予用户sudo操作权限?
通过useradd添加的用户,并不具备sudo权限。在ubuntu/centos等系统下, 需要将用户加入admin组或者wheel组或者sudo组。以root用户身份执行如下命令, 将用户加入wheel/admin/sudo组。

usermod -a -G wheel 用户名

sudo yum repolist all 尝试执行一下只有root才能运行的命令

/etc/sudoers 是可以让整个组 完成sudo提权 且不许要密码
%wheel ALL=(ALL) ALL 例如wheel组
官方文档推荐的做法,不是直接修改/etc/sudoers文件,而是将修改写在/etc/sudoers.d/目录下的文件中。

加密算法md5 sha
MD5加密算法 密码 + 随机数+ id 通过md5算法 最后变成128位字符
1.等长原则 不管加密内容有多少字符,最后加密输出都是等长的
2.雪崩效应 只要两个文件有一个字符不一样 那整个秘钥输出也是完全不同的
3 MD5不可逆 无法通过加密后字符 来得出之前原来的密码

md5加密所谓破解完全不是靠逆推,靠撞库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值