Linux用户管理.二Day.9

一.为用户添加密码

添加密码

交互式设定密码:passwd  加用户名

非交互式设定密码: echo  “初始密码”  | passwd  --stdin  用户名


shell脚本

修改密码

为自己修改密码

直接使用passwd,注意:密码修改需要复杂一点,并且要达到8位数以上。

如何设置复杂的密码:

echo $RANDOM :(随机生成字符串)

echo $RANDOM | md5sum (随机生成复杂数字串)

mkpasswd(随机生成复杂密码命令)

mkpasswd参数:-l(字符数)-d(几个数字)-c(几个小写字母)-C(几个大写字母)-s(几个特殊符号)

例如:[root@localhost ~]# mkpasswd -l 8 -d 3 -c 1 -C 2 -s 2

:0MX9b6-

yum install -y expect(mkpasswd安装包)

lastpass(密码管理网页插件)

为别人修改密码(只有root才可以修改别人的密码)

总结:

1.为新用户添加新密码只有root权限才可以。

2.为用户变更密码也只有root才可以。

3.普通用户只可以修改自己的密码,无法修改他人密码。

4.密码的修改方式有两种,一种是交互式,一种是非交互式。

二.用户创建流程(PS:在用户创建的过程中需要参考/etc/login.defs和/etc/defaylt/useradd这两个文件默认参考)

/etc/login.defs

MAIL_DIR /var/spool/mail              创建的邮箱所在位置

PASS_MAX_DAYS 99999                  密码最长使用的天数

PASS_MIN_DAYS 0                          密码最短使用的天数

PASS_MIN_LEN 5                          密码的长度

PASS_WARN_AGE 7                  密码到期前7天警告

UID_MIN                  1000                    UID从1000开始

UID_MAX                60000                  UID到6万结束

SYS_UID_MIN              201              系统用户的UID从201开始

SYS_UID_MAX              999              系统用户的UID到999

GID_MIN                  1000                    GID从1000开始

GID_MAX                60000                  GID到6万结束

SYS_GID_MIN              201                系统GID从201开始

SYS_GID_MAX              999              系统GID到999结束

CREATE_HOME yes                      给用户创建家目录,创建在/home 

UMASK          077                             

USERGROUPS_ENAB yes                给用户创建默认组

ENCRYPT_METHOD SHA512         

/etc/default/useradd

GROUP=100                              当用户创建用户时不指定组,并且USERGROUPS_ENAB为no的时候,用户默认创建分配一个GID为100的组。

HOME=/home                          用户默认的家目录

INACTIVE=-1                            用户不失效(-1=不失效)

EXPIRE=                                  过期时间

SHELL=/bin/bash                      默认登录shell

SKEL=/etc/skel                          默认用户拷贝的环境变量

CREATE_MAIL_SPOOL=yes    创建邮箱

三.用户组的管理

没有指定组:默认会创建一个与用户同名的组,简称私有组。

指定组:-g指定一个基本组(基本组必须先存在)

附加组:-G 指定一个附加组(基本组或私有组无法满足需求时,添加一个附加组,继承该组的权限)

/etc/group


/etc/gshadow


创建:

groupadd  组名称

-g参数    指定用户组的GID

-r 参数    创建一个系统组

修改组:

groupmod  -g    要修改的GID  用户组

groupmod    旧的组名称    -n  新的组名称

删除组:(如果要删除基本组,需要先删除基本组中的用户才可以删除该组)

groupdel  -r(删除信息)

用户提权:

su        切换用户  登录式shell (如果切换用户需要输入密码)

su  -  用户名字 非登录式shell (root切换任何用户不需要输入密码)

基本概念:

1.交互式shell  (等待用户输入执行指令,有提示)

非交互式shell  (不需要等待用户输入执行指令,没有提示shell执行结束会自动退出)

登录式shell    (需要输入用户名和密码才可以进入shell)

非登录式shell (不需要输入用户名和密码就可以进入shell,比如运行bash会开启一个新的会话窗口)

2.bash shell配置文件介绍

个人配置文件:~/.bash_profile和~/.bashrc

全局配置文件:/etc/profile,/etc/profile.d/*.sh,/etc/bashrc

(profile类文件,设定环境变量,登录前的运行脚本和命令)

(bashrc类文件,设定本地变量,定义命令别名)

PS:如果全局配置和个人配置冲突,以个人配置为准

3.登录后环境变量配置文件的应用顺序:(验证:在每个文件中输入echo)

登录式shll配置文件应用顺序

1. /etc/profile

2. /etc/profile.d/1.sh

3. ~/.bash_profile

4. ~/.bashrc

5. /etc/bashrc

非登录式shll配置文件应用顺序

1. ~/.bashrc

2. /etc/bashrc

3. /etc/profile.d/1.sh

PS:su  用户名  和  su  -  用户名的区别就在于加载的环境变量不一样。

sudo    提权(root事先分配好权限--关联用户)

当普通用户需要执行一些高级操作的时候就需要加上sudo。(不加sudo还是普通用户的权限)

1.快速提权

直接将普通用户切换至wheel组中 (wheel组是默认拥有sudo权限的)

2.手动提权 sudo  -l  (查看自己有哪些权限)

可使用visudo命令或者vim  /etm/sudoers (visudo有语法检测功能,输入错误无法保存退出)

%(组)wheel(组名)  ALL(主机名)=(ALL)(角色名)      ALL(所有权限) 

例如:


3.限制权限

第一种:使用sudo中自带的别名操作,将多个用户定义成一个组

1.使用sudo定义分组,这个分组和系统分组没有关系

User_Alias  OPS  =  要分配的系统真实用户

User_Alias  DEV  =  要分配的系统真实用户

2.sudo中默认别名

Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/up2date, /usr/bin/yum

Cmnd_Alias LOCATE = /usr/bin/updatedb

Cmnd_Alias STORAGE = /sbin/fdisk, /sbin/sfdisk, /sbin/parted, /sbin/partprobe, /bin/mount, /bin/umount

Cmnd_Alias DELEGATING = /usr/sbin/visudo, /bin/chown, /bin/chmod, /bin/chgrp

Cmnd_Alias PROCESSES = /bin/nice, /bin/kill, /usr/bin/kill, /usr/bin/killall

Cmnd_Alias DRIVERS = /sbin/modprobe

3.分配权限

OPS ALL = (ALL)sudo别名:SOFTWARE, LOCATE ,STORAGE

DEV  ALL =  (ALL)sudo别名  :SOFTWARE,LOCATE

第二种:创建好分配组,将用户添加到创建好的分配组中。

1.添加用户

2.添加密码

3.配置规则

%真实组  ALL=(ALL) 命令或命令别名

四.sudo执行流程

1.普通用户执行sudo命令的时候会检查/var/db/sudo是否错在时间戳缓存。

2.如果存在就不需要输入密码,否则需要输入用户名和密码

3.输入密码会检测是否该用户是否拥有该权限/etc/sudoers

4.如果有就会执行,没有就报错退出

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容