天天看点

Linux-用户

一、用户理解

用户就是系统使用者的身份

在系统中用户存储为若干窜字符+若干个系统配置文件

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

/etc/passwd               ###用户信息

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

/etc/shadow  ###用户认证信息

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

/etc/group                 ###组信息

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

/etc/gshadow               ###组认证信息

/home/username          ###用户家目录

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

<a href="https://s3.51cto.com/oss/201710/24/4caf6a159f5922d84a45fd12440149b9.png-wh_500x0-wm_3-wmp_4-s_3108616266.png" target="_blank"></a>

<a href="https://s2.51cto.com/oss/201710/24/8cbfd1f265f8e30346c7fd4fe5d74160.png-wh_500x0-wm_3-wmp_4-s_13013664.png" target="_blank"></a>

二.用户管理

1.用户建立

useradd  参数  用户名字

  -u ##指定用户uid

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

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

  -c ##用户说明

  -d ##用户家目录

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

2.用户删除

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

3.组的建立

groupadd -g ##建立组

groupdel 组名字 ##删除组

作以上实验的监控命令:

watch -n 1 'tail -n 3 /etc/passwd /etc/group;echo ====;ls -l /home;echo ===;ls -l /mnt'

4.用户id信息查看

id 参数 用户

 -u ##用户uid

 -g ##用户初始组id

 -G ##用户所有所在组id

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

 -a ##显示所有信息

5.用户信息更改

usermod 参数 用户

 -l ##更改用户名称

 -u ##更改uid

 -g ##更改gid

 -G ##更改附加组

 -aG ##添加附加组

 -c ##更改说明

 -d ##更改家目录指定

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

 -s ##更改shell

 -L ##冻结帐号

 -U ##解锁

<a href="https://s2.51cto.com/oss/201710/24/e2b6f7f1998bf8a6f8e16f3ec8164547.png-wh_500x0-wm_3-wmp_4-s_1990757749.png" target="_blank"></a>

三.用户权力下放

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

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

<a href="https://s1.51cto.com/oss/201710/24/5543d2f03f700920a893625afbbde238.png-wh_500x0-wm_3-wmp_4-s_4255510516.png" target="_blank"></a>

2.下放权力的方法

*)超级用户执行visudo进入编辑/etc/sudoers模式

*)格式:

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

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

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

<a href="https://s3.51cto.com/oss/201710/24/9517577985891addb3520e0d1e37e17b.png-wh_500x0-wm_3-wmp_4-s_520135372.png" target="_blank"></a>

3.执行下放权限命令

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

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

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

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

<a href="https://s2.51cto.com/oss/201710/24/6af7e392a443076908f4ec4b5f11c875.png-wh_500x0-wm_3-wmp_4-s_4134898833.png" target="_blank"></a>

<a href="https://s1.51cto.com/oss/201710/24/40f9c35ed4d50da9126ccd0a108933b0.png-wh_500x0-wm_3-wmp_4-s_3295112320.png" target="_blank"></a>

四.用户认证信息的控制

chage  参数 用户

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

 -m ##最短有效期

 -M ##最长有效期

 -W ##警告期

 -I ##用户非活跃天数

 -E ##帐号到期日格式 -E "YYYY-MM-DD"

root密码忘记

1.重新启动系统

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

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

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

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

6.进入系统后执行chroot /sysroot切换到真实的系统环境

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

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

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

<a href="https://s3.51cto.com/oss/201710/24/9517577985891addb3520e0d1e37e17b.png-wh_500x0-wm_3-wmp_4-s_520135372.png" target="_blank"> 本文转自 huanzi2017 51CTO博客,原文链接:http://blog.51cto.com/13362895/1975714</a>

继续阅读