Linux之用户管理、超户root 忘记密码

一、用户

1、用户理解

        用户就是系统使用者的身份,在系统中用户存储为若干字符+若干个系统配置文件。

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

/etc/passwd     #用户信息

用户:密码:uid:gid:说明:家目录:用户使用的shell

/etc/shadow    #用户认证信息

用户:密码:最后一次密码修改该时间:最短有效期:最长有效期:警告期:非活跃期:帐号到期日

/etc/group     #组信息

组名称:组密码:组id:附加组成员

/etc/gshadow    #组认证信息

/home/username    #用户家目录

/etc/skel/.*     #用户骨架文件

注意: /etc/skel/ 这个目录中的所有文件或目录在用户新建的过程中会被复制到用户的家目录里,这个目录中默认存在的隐藏文件是用户的默认配置文件。

2、用户管理

1)用户建立

useradd      参数 用户名称

-u    #指定用户uid

-g     #指定用户初始组信息,这个组必须已经存在

-G    #指定附加组,这个组必须存在

-c    #用户说明

-d    #用户家目录

-s    #用户所使用的shell,/etc/shells 记录了用户能使用 shell 的名字

测试:建立 uid 为222,用户说明为 hello 的用户 haha

Linux之用户管理、超户root 忘记密码_第1张图片

2)用户删除

userdel    -r    用户名称    #-r表示删除用户信息及用户的配置系统

测试:删除用户 haha

Linux之用户管理、超户root 忘记密码_第2张图片

3)组的建立    groupadd 组名称

groupadd     -g    #建立组

groupdel    组名称    #删除组

测试:建立组 hello

Linux之用户管理、超户root 忘记密码_第3张图片

测试:建立组 id 为666的组 haha

Linux之用户管理、超户root 忘记密码_第4张图片

测试:删除组 hello

Linux之用户管理、超户root 忘记密码_第5张图片

注:做以上实验的监控命令:

watch -n 1 ' tail -n 5 /etc/passwd /etc/group;  /home'

按“ctrl+c”即可退出监控。

4)用户 id 信息查看

id    参数    用户

-u    #用户 uid

-g    #用户初始组 id

-G    #用户所有所在组 id

-n    #显示名称而不是 id 数字

-a     #显示所有信息

例: -un 是显示用户名称

测试:

Linux之用户管理、超户root 忘记密码_第6张图片

5)用户信息更改

usermod    参数    用户

-l    #更改用户名称

Linux之用户管理、超户root 忘记密码_第7张图片

-u    #更改 uid

-g    #更改gid

Linux之用户管理、超户root 忘记密码_第8张图片

-G    #更改附加组

-aG    #添加附加组

-c    #更改说明

Linux之用户管理、超户root 忘记密码_第9张图片

-d    #更改家目录指定

Linux之用户管理、超户root 忘记密码_第10张图片

-md    #更改家目录指定及家目录名称

-s    #更改shell

-L    #冻结帐号

-U    #解锁

3、用户权力下放

1)在系统中超级用户可以下放普通用户不能执行的操作给普通用户

下放权力配置文件:/etc/sudoers

2)下放权力的方法

普通用户默认不能建立用户,需要进行权力下放才可以。

(1)超级用户执行 visudo 进入编辑 /etc/sudoers 模式(因为visudo在有语法输入错误时会提示,而vim没有提示,一般在100行以后编写)

(2)格式:

主机名称用hostname 查询

获得权限用户 主机名称=(获得到的用户身份) 命令

haha desktop0.example.com=(root) /usr/sbin/useradd

使 haha 用户能在 desktop0.example.com 以超级用户身份执行 /usr/sbin/useradd

(3)执行下放权限命令:

sudo 命令    #如果第一次执行sudo需要输入当前用户密码

在/etc/sudoers中如果设置如下:

haha    desktop0.example.com=(root)     NOPASSWD: /usr/sbin/useradd

NOPASSWD 表示用户 haha 调用sudo命令的时候不需要自己密码

3)用户认证信息的控制

passwd    #修改用户认证信息

passwd haha    #如果是超级用户不许要知道原来密码,直接修改,没密码强度限制

#如果是普通用户需要输入原始密码,密码不能少于8个字符,不能是纯数字,不能是纯字母

passwd -S 用户    #查看用户密码信息

passwd -d 用户    #删除用户密码

passwd -l 用户    #冻结帐号密码(比usermod的冻结强度高)

passwd -u 用户    #解锁用户

passwd -e 用户    #更改密码默认使用天数

passwd -x 用户    #密码最长有效期

passwd -n 用户    #密码最短有效期

passwd -w 用户    #密码过期前警告期

passwd -i 用户    #密码非活跃天数

passwd --stdin 用户    #非交互式更改用户密码

#例如:

echo westos | passwd --stdin lee

显示密码 westos 并给lee

测试:

chage 参数 用户

-d    #用户密码组后一次修改的时间,如果设定成0,用户登陆系统后必须修改自己的密码(相当于passwd -e )

-m    #最短有效期

-M    #最长有效期

-W    #警告期

-I    #用户非活跃天数

-E    #帐号到期日格式 -E "YYYY-MM-DD"(passwd不能改)

二、root密码忘记

1、重新启动系统

2、在系统启动阶段按上下健停止系统系统引导

3、选择启动引导标题,按“E”进行编辑

4、找到linux16引导条目这一行,从这行最后删除到ro选项,并把ro改为rw,然后添加rd.break选项

Linux之用户管理、超户root 忘记密码_第11张图片

5、ctrl+x启动设定过后的系统引导条目

6、进入系统后执行chroot /sysroot切换到真实的系统环境(注意空格)

Linux之用户管理、超户root 忘记密码_第12张图片

7、passwd root修改超级用户密码

8、建立文件/.autorelabel让系统从新扫描所有文件

9、exit两次使系统自动重新启动

你可能感兴趣的:(Linux)