/etc/passwd
root:❌0:0:root:/root:/bin/bash
字段1:用户名
2:密码占位符,存于/etc/shadon文件
3:uid号
4:基本组ID号
5:用户身份信息(废弃)
6:用户家目录
7:命令解释器
/etc/shadow
root:$6$LdIvk5NX$pSl/w.mzim0yv1ETus1ZrKIG1VwDJMpC3ueAB.9MCpiUW0aH7g/::0:99999:7:::
字段1:用户名
2:$6(表示使用sha-512加密)$盐值$密文
3:距离1997年修改时间
4:最短有效期(几天不能修改密码)
5:最长有效期
6:过期几天发警告
爆破密码
import crypt
crypt.crypt("猜测的密码","密码盐值")
#用生成的密文对比真正的密文来判断是否成功
用户操作
用户与组的关系,用户必须有一个组
一个用户可以有个多个附加组
id 用户名 :查看用户Uid和组信息
添加附加组:usermod -G 组名 用户名
删除用户组:
- 先删除用户,当组没有用户时 : userdel -r 用户 删除用户以及家目录
- 然后在删除组: groupdel 组名
练习:
- 建立一个名为2021的组nian,组id为606
groupadd -g 606 2021nian
或者:groupadd 2021nian
groupmod -g 606 2021nian
2.建立一个名字为xiaoming的用户,该用户uid为600,基本组为2021nian
useradd -u 600 -g 2021nian -s /bin/bash xiaoming
或者:
useradd xiaoming
usermod -u 600 xiaoming
usermod -g 2021nian xiaoming
usermod -s /bin/bash xiaoming
- 设置该用户的密码为123456
passwd xiaoming
扩展:
passwd -S xiaoming 查看该用户的密码状态
passwd -l 锁定该用户密码,无法登录
passwd -u xiaoming 解锁该用户密码
- 删除该用户及家目录
userdel -r xiaoming
- 修改该用户密码的有效期为1个月
change -M 30 xiaoming
6.直接添加一个可登录的用户且id为1000
useradd xiaoming -d /home/xiaoming -m -s /bin/bash -u 1001
-m 参数是:设定为用户的主目录,并且创建
-d 创建目录
sudo授权
给普通用户xiaoming授予root用户的命令
终端输入visudo
找到root All=(All) All在这一行下添加
xiaoming All=/sbin/init,/usr/bin/vim NOPASSWD:/sbin/init
解释:用户名为xiaoming,第一个All表示用户可以从哪台主机登录
/sbin/init,/usr/bin/vim表示授予root形式的init和vim命令
NOPASSWD:/sbin/init 表示只有init执行时不用输入密码
sudo -l 查看能使用的root命令
练习,设立man
设立xiaoming用户输入man命令时不需要输密码:
切换用户使用man命令时:
可以修改root用户的密码:
这种也可以:
Linux文件类型
d : 目录
- :文件
l : 链接
c : 设备文件(字符型)
b : block块文件
用户文件权限
d rwx r-x r-x. root root 桌面
- rw- — ---. root root anaconda-ks.cfg
对于目录:
- r :列出目录文件
- w :添加或删除文件
- x :进入目录
对于文件
- r :读操作
- w :写操作
- x :执行操作
解释用户与组:
如果一个文件属于该用户,那么这个文件的权限对于该用户是无效的
而对于该组成员则是按照正常的权限执行
修改文件权限
a :表示所有人
o :表示其他人
u :表示所属者
g :表示所属组
+ :表示加权限
- :表示减权限
= :表示等于
chmod g+rw,o+rx 文件 #对所属组加读写,对其他人执行权限
chmod a=rwx #表示给所有人添加读写执行权限
测试删除用户家目录
useradd -d /home/xiaoming -s /bin/bash -u 1000 xiaoming
删除后终端变样
恢复方法:
在 /etc/skel/目录下有用户家目录模板,只需把该模板拷贝到家目录即可恢复
cp -r /etc/skel/* /home/xiaoming
su xiaoming
发现已经恢复
修改文件所属者和组
原先创建的文件haha所属者和组为root
执行 chown -R xiaoming:xiaoming haha
- chown :修改操作
- -R :表示递归修改
- xiaoming:xiaoming :修改所属者和组为xiaoming
- haha :指定要修改的文件或目录
ls -l haha
发现修改成功!