用户就是系统使用者的身份
在系统中用户存储为若干窜字符+若干个系统配置文件
用户信息涉及到的系统配置文件:
/etc/passwd ###用户信息
用户:密码:uid:gid:说明:家目录:用户使用的shell
-u -g -c -d -s
用户:密码:最后一次密码修改该时间:最短有效期:最长有效期:警告期:非活跃期:帐号到期日
#################这些东西在/etc/login.defs里面也可以设置默认值#########################
组名称:组密码:组id:附加组成员
/home/username ###用户家目录
/etc/skel/ ###用户骨架文件###可以查看到新建立的用户里面的隐藏文件和这里面的一样############
#注意: /etc/skel/ 这个目录中的所有文件或目录在用户新建的过程中会被复制到用户的家目录里
#这个目录中默认存在的隐藏文件是用户的默认配置文件
##用户骨架文件的用法,/etc/skel/.* 就是用户家里的家具,你可以用userdel删除一个用户,这就是暴力删除,而在/home 里面的用户是以文件形式存在的,当直接删除用户家目录时,并没有把用户删除干净,因为此时还可以su到该用户,只不过不能用这个shell而已,这时你可以为用户创建一个家目录,还要chown,,chgrp,chmod,并且把/etc/skel/.*里面的配置文件复制过去,然后这个用户又可以使用了##################################
#####2,用户管理
1.用户建立 ###############一般不用指定就直接 useradd linux 就好了,删除时要用-r#############
useradd 参数 用户名字
-u ##指定用户uid
-g ##指定用户初始组信息,这个组必须已经存在
-G ##指定附加组,这个组必须存在
-c ##用户说明
-d ##用户家目录
-s ##用户所使用的shell,如果指定了 /sbin/nologin ,那么用户就无法登录
/etc/shells记录了用户能使用shell的名字
#######注意用户的添加也可以是直接vim 进入 /etc/passwd直接按照已有的用户格式添加,然后进入 /etc/group直接按照格式添加用户组,然后进入/home/下创建用户家目录,然后chown username.username /home/username 改变权限,再把用户骨架文件复制至家目录cp /etc/skel/.* /home/username就可以用了#####
2.用户删除
userdel -r 用户名称 -r表示删除用户信息及用户的系统配置
3.组的建立
groupadd -g 组id ##建立组
groupdel 组名字 ##删除组
########删除用户时,如果源生组和用户组名字一样,那么源生组也会被删除#########
########删除组时,如果源生组的用户名字就是组的名字,那么组删除不了#########
#####3,watch监控命令
监控命令 watch -n 1 文件 ########每秒钟刷新一次###1可以改成2##########
watch -n 1 'tail -n 3 /etc/passwd /etc/group;echo ====;ls -l /home;echo ===;ls -l /mnt'
########每秒钟刷新一次监控####分别显示/etc/passwd 和 /etc/group/的倒数三行 #######打出分隔符####显示/home下面的内容#########打出分隔符###########显示/mnt下面的内容######################
###多条命令之间用;隔开,可以一次性执行
###监控的对象很多就用' '括起来,监控内容可以是tail , ls ,echo 里面的内容
4.用户id信息查看
id 参数 用户
-u ##用户uid
-g ##用户初始组id
-G ##用户所有所在组id
-n ##显示名称而不是id数字
-a ##显示所有信息
5.用户信息更改
usermod 参数 用户
-l 更改之后名称 用户名称 ##更改用户名称###以名字为名的源生组名称不会改变#####
-u 更改之后id 用户名称 ##更改uid
-g 更改之后id 用户名称 ##更改gid######组id要存在才能修改#########
-G 更改之后id 用户名称 ##更改附加组#####附加组必须要存在才可以
-aG 更改之后id 用户名称 ##添加附加组########注意更改和添加是不一样的###附加组要存在才可以
-c 更改之后说明 用户名称 ##更改说明
-d 更改之后家目录 用户名称 ##更改家目录指定
-md 更改之后家目录 用户名称 ##更改家目录指定及家目录名称
-s ##更改shell
-L ##冻结帐号
-U ##解锁
####3.用户权力下放####
1.在系统中超级用户可以下放普通用户不能执行的操作给普通用户
下放权力配置文件:/etc/sudoers
2.下放权力的方法
*)超级用户执行visudo(直接输入 也可以是vim /etc/sudoers,但是保存是要强制保存退出wq!) 进入编辑/etc/sudoers模式
############大概在100行左右####最好按照格式写上注释##############
*)格式:
获得权限用户 主机名称=(获得到的用户身份) 命令
test desktop0.example.com=(root) /usr/sbin/useradd ###usr 不是 user######
test用户能在desktop0.example.com以超级用户身份执行/usr/sbin/useradd
############hostname可以获得主机名########################
3.执行下放权限命令
sudo 命令(直接useradd就可以或者/usr/sbin/useradd) ##第一次执行sudo需要输入当前用户密码
在/etc/sudoers中如果设置如下: ###############第一次执行sudo不需要输入当前用户密码
test desktop0.example.com=(root) NOPASSWD: /usr/sbin/useradd,/sbin/userdel
表示用户调用sudo命令的时候不需要自己密码
################################注意##################################
新创建的用户如果没有立即设置密码此时/etc/shadow里面密码段会有!!,这个和冻结有密码(usermod -L)的用户有点像(只不过只有一个感叹号),对于新建立的用户可以解锁(usermod -U)一次,第二次就不行,如果使用passwd -d 用户 ##删除用户密码就可以直接去掉其密码,普通用户也可以切入
usermod -L 冻结账户的强度比较轻(!)
passwd -l 冻结账户的强度重(!!)
新创建的没有设置密码的用户默认是处于冻结状态,此时passwd -d 用户 ##删除用户密码和 passwd -f -u 都可以去掉它的密码,使得普通用户也能切入
####4.用户认证信息的控制####
############################
#1.
"passwd" 用来修改用户认证信息
passwd westos ##如果是超级用户修改则不许要知道原来密码
##直接修改,没密码强度限制
##如果是普通用户修改自己的密码需要输入原始密码
##而且密码不能少于8个字符,不能是纯数字,不能是纯字母
passwd -S 用户 ##查看用户密码信息
passwd -d 用户 ##删除用户密码
passwd -l 用户 ##冻结帐号密码
passwd -u 用户 ##解锁用户
passwd -e 天数 用户 ##更改密码默认使用天数
passwd -x 期限 用户 ##密码最长有效期
passwd -n 期限 用户 ##密码最短有效期
passwd -w 期限 用户 ##密码过期前警告期
passwd -i 期限 用户 ##密码非活跃天数
passwd --stdin 用户 ##非交互式更改用户密码(不需要再次输入)
#例如:
echo westos(密码) | passwd --stdin lee(用户) #######管道########
####用户:密码:最后一次密码修改该时间:最短有效期:最长有效期:警告期:非活跃期:帐号到期日###/etc/shadow####
chage 参数 目的 #用户(最后)#
-d ##用户密码组后一次修改的时间,如果设定成0,用户登陆系统后必须修改自己的密码 #######
-m ##最短有效期############passwd也可以改,效果是一样的,都是对文件的更改###后面直接跟数字####
-M ##最长有效期############passwd也可以改,效果是一样的,都是对文件的更改###后面直接跟数字####
-W ##警告期###后面直接跟数字####
-I ##用户非活跃天数###后面直接跟数字####
-E ##帐号到期日格式 -E "YYYY-MM-DD" ##############chage -E "2018-09-22"##
####root密码忘记#####
1.重新启动系统
2.在系统启动阶段按上下健停止系统引导
3.选择启动引导标题,按“E”进行编辑
4.找到linux引导条目这一行,从这行最后删除到ro选项,并把ro改为rw,然后添加rd.break选项
5.ctrl+x启动设定过后的系统引导条目
6.进入系统后执行chroot /sysroot切换到真实的系统环境
7.passwd root修改超级用户密码
8.建立文件/.autorelabel让系统从新扫描所有文件
9.exit两次使系统自动重新启动
##################################
whoami 可以查看用户是谁
##################################
echo $PATH ###可以查看用户的shell是什么
grep bash$ /etc/passwd ###可以查看每个用户的shell