企业场景:用户及密码管理
1,密码要复杂:8位以上字母数字特殊字符
2.大企业的用户和密码是统一管理的(活动目录,openLDAP)
chage 设置或修改用户密码对应权限
-d --lastday最近日期 将最近一次密码设置时间设为“最近日期”
-h --help 显示此帮助信息并退出
-I --inactive 失效密码 在密码过后过期多少天,用户被禁掉,仅能以root操作
-l --list 显示账户年龄信息
-m -mindays 最小天数 将两次改变密码之间相距的最小天数设为“最小天数”
-M --maxdays 最大天数 将两次修改密码之间相距的最大天数设为“最大天数”
-W -warndays 警告天数 将过期警告天数设为“警告天数”
小结
/etc/skel
/etc/login.defs
/etc/default/useradd
命令
useradd(/etc/passwd /etc/shadow /etc/group /etc/gshadow)
passwd (/etc/shadow)
groupadd (/etc/group)
chage (/etc/shadow)
useradd 删除用户
-r 连同家目录一起删除
一般不能确认用户相关目录有没有重要数据就不能用-r。
删除经验:
1.vi/etc/passwd 注释掉用户,观察一个月,出现问题还原。操作前备份
2.把登录shell改成/etc/login。
3.ldap(类似活动目录)账号统一管理的,库里干掉用户。全部都没了
usermod 修改用户信息
-l login_name 变更用户login时的名称login_name.其余信息不变
-u uid 指定用户uid值 除非接-o参数(如:usermod -u 505 -o oldboy)
-L 冻结用户的密码,使之无法登陆,实际上就是间接修改/etc/shadow密码栏。
在密码栏的开头加上“!”号,即使之冻结。这个密码冻结功能和usermod -e
useradd -e chage -E 或 passwd -I 等命令参数都有类似的功效,那就是让用户无法正常登陆
-U 取消冻结用户的密码。使之恢复,实际情况是修改/etc/shadow的密码栏。在密码栏的开头取消“!”号,即表示恢复
w 显示谁登陆,并且在做什么
who 显示谁登陆
last 显示登录的列表(查询该文件/var/log/wtmp)
lastlog (/var/log/lastlog) 查询所有计算机用户最近登录的情况
users 显示一个用户对应的组信息
groups 打印用户在哪个组里
su 切换用户身份命令
-,-l,--login make the shell a login shell
是一个shell成为登录的shell,如执行su-oldboy时,表示该用户想改变身份为oldboy,并且使用oldboy
用户使用oldboy用户的环境变量配置,如:/home/oldboy.bash_profile等。
-c,--command=COMMAND 切换到一个shell下,执行一个命令,然后退出所切换的用户环境
-m --perserve-environment 切换用户时,不重置用户环境变量,-p的功能同-m,这个参数为su的默认值,一般很少用
sudo 可以让普通用户可以拥有root权限去执行命令
作用:
1.普通用户必须知道root密码才能切换到root,这样root密码就泄露了。
2.使用su命令切换身份,无法对切换后的身份做精细的控制,拿到超级权限的人可以为所欲为。甚至可以改掉root密码,
让真正的管理员无法再拥有root权限
流程:
普通用户运行sudo-->检查/var/db/sudo下是否有时间戳文件,并检查是否已超过5分钟-->如果时间戳已超过5分钟-->输入用户自己的口令
-->如果时间戳未超过5分钟-->检查/etc/sudoers配置文件是否有运行
sudo和执行相应命令的权限-->有权限-->执行命令并返回结果-->退出sudo
-->无权限-->退出sudo
visudo=vim /etc/sudoers(440最安全)
改98行
## Allow root to run any commands anywhere
用户和组 机器=(授权角色) 可执行的命令
root ALL=(ALL) ALL
oldboy ALL=(ALL) /bin/sbin/useradd
如果只针对用户组,则对应的授权命令如下:
%用户组 机器=(授权使用哪个角色的权限) /usr/sbin/useradd
visudo -c 检查语法
/bin/sed 危险命令
领取专属 10元无门槛券
私享最新 技术干货