1.5 -用户管理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1.5 -用户管理相关的知识,希望对你有一定的参考价值。
1.5
用户管理
内容:
1. 设置命令和脚本开机自启动
2. 用户相关的配置文件和目录
3. 用户管理命令
4. sudo临时为普通用户提权
5. yum相关知识
让一个命令或脚本开机自启动的方法
1) 脚本放在/etc/rc.local
2) chkconfig
让一个命令或脚本用chkconfig开机自启动的方法
(1) 这个脚本 存放在 /etc/init.d下面
(2) 脚本要有x(执行)权限
(3) 脚本开始必须有可以被chkconfig识别的标记
(4) 把脚本加入到chkconfig管理
[[email protected] init.d]# cat gao.sh 脚本存放在/etc/init.d下
date +%F
[[email protected] init.d]# chmod +x gao.sh 给脚本x权限
[[email protected] init.d]# ls -l gao.sh
-rwxr-xr-x. 1 root root 9 Jan 5 02:44 gao.sh
[[email protected] init.d]# chkconfig --add gao.sh 将脚本添加自启动
service gao.sh does not support chkconfig 报错:chkconfig命令不支持
脚本必须有可以被chkconfig识别的标记
[[email protected] init.d]# head /etc/init.d/iptables 找chkconfig管理命令的特点(以iptables为例)
#!/bin/sh
#
# iptables Start iptables firewall
#
# chkconfig: 2345 08 92 将此行添加至脚本
# description: Starts, stops and saves iptables firewall
[[email protected] init.d]# cat gao.sh
date +%F
# chkconfig: 2345 08 92 - -del 删除自启动任务
[[email protected] init.d]# chkconfig - -add gao.sh 添加自启动任务
[[email protected] init.d]# chkconfig |grep "gao.sh" 查看
gao.sh 0:off 1:off 2:on 3:on 4:on 5:on 6:off
# chkconfig: 2345 08 92
2345运行级别 启动顺序 关闭顺序
小结
1.必须放在/etc/init.d 并且有执行权限
2.开头要有chkconfig要求格式
# chkconfig: 2345 99 99 (系统命令启动顺序有要求,自己创建的一般没事)
3.添加到chkconfig管理
忘记密码系列
root用户忘记密码如何解决
1. 单用户模式
http://blog.51cto.com/lidao/1932128
2. 救援模式
普通用户忘记密码
1. root用户修改
2. /etc/passwd 把第二列密码占位符删掉
用户相关的配置文件
如何知道用户属于那些组
id
如何知道一个用户组里有哪些用户
cat /etc/passwd
与用户有关的目录
/etc/skel 新用户老家的模板
创建一个用户 useradd oldboy
cp /etc/skel/* /home/oldboy 系统相当于会执行这个操作
ls -la /etc/skel
~/.bash_logout 用户退出系统的时候 Ctrl +d 会运行这个文件的内容
~/.bash_profile 作用同/etc/profile
~/.bashrc 作用同/etc/bashrc
扩展:
1. sh 与 bash区别
[[email protected] ~]# useradd test -s /bin/sh
[[email protected] ~]# su - test
-sh-4.1$
2. 查看隐藏文件
[[email protected] ~]# cd /etc/skel/
[[email protected] skel]# ls .[^.]*
.bash_logout .bash_profile .bashrc
3. CentOs6.9下的shell
[[email protected] skel]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/bin/dash
/bin/tcsh
/bin/csh
故障:
1.如下登录环境故障的原因及解决办法
-bash-4.1# cp /etc/skel/.bash* ~
-bash-4.1# logout
原因:这个用户家目录下面与环境变量有关的文件 没了
模拟:
[[email protected] ~]# rm -rf .bash*
[[email protected] ~]# logout
[[email protected] /]# su - root
-bash-4.1#
解决:
[[email protected] ~]#cp /etc/skel/.bash* ~
[[email protected] ~]#logout
[[email protected] /]#su - oldboy
[[email protected] ~]$
2.oldboy用户的登录环境故障,复制家目录模板权限不够
用户管理命令:
用户相关命令
useradd -u 指定用户的uid
-s 指定用户的使用shell /bin/bash 默认 /sbin/nologin 添加虚拟用户
-M 不创建家目录 (虚拟用户)
-g 指定用户属于的组
-c 指定用户说明信息
userdel 删除用户 默认不删除用户家目录和邮箱
-r 连窝端 删除与用户有关的所有信息(家目录)
在工作中,不要删除用户,可能会误删除用户数据
方法:在/etc/passwd 对应用户前加注释#
usermod 修改用户信息(这个用户已存在) --和uaeradd用法差不多
-c 指定说明信息
-s 修改用户登录shell
-g 属于的家庭 用户的名字 --基本组
-G 属于多的家庭 --附加组
passwd +用户名 修改用户密码
--stdin 从管道中获取用户的密码 (非交互式)
echo ‘123456’ |passwd --stdin oldboy 非交互式
企业场景:用户及密码管理
1.密码复杂 12位以上字母数字特殊字符
2.保存密码
keepass 软件,密码存放在本地,,本地保险柜
lastpass 在线版本,,银行的保险柜
3.大的企业用户和密码统一管理(相当于活动目录(AD),openldap域)
4.动态密码:动态口令,第三方提供自己的开发也很简单
给重要的文件或命令做一个指纹
文件的内容变化 === 指纹变化
文件的内容变化 === 指纹变化
(1)给这个文件创建指纹
md5sum oldboy.txt
(2)如何快速的对比指纹
1)把你的指纹记录下来 md5sum oldboy.txt >finger.txt finger.txt是指纹库
2)如何进行对比 md5sum -c finger.txt
(3)定时任务+md5sum定时检查
chown 修改文件或目录的所有者和属组 可以只修改所有者或属组,,也可以同时修改
-R 递归修改文件或目录的所有者和用户组
实例1-1 添加一个用户alex指定uid为888 禁止用户登录系统 不创建家目录,用户说明信息为nologin CentOs
[[email protected] skel]# useradd alex -u 888 -s /sbin/nologin -M -c "nologin CentOs"
[[email protected] skel]# tail -1 /etc/passwd
alex:x:888:888:nologin CentOs:/home/alex:/sbin/nologin
实例1-2 企业场景:用户及密码管理 --指纹
方法:给重要的文件或命令,做一个指纹
原理:文件内容变化,指纹就会变化
步骤:
1. 创建指纹
[[email protected] oldboy]# touch gao.txt
[[email protected] oldboy]# md5sum gao.txt 为文件创建指纹
d41d8cd98f00b204e9800998ecf8427e gao.txt
2. 记录指纹
[[email protected] oldboy]# md5sum gao.txt >police.log 将指纹记录到指纹库中
[[email protected] oldboy]# echo 'I am a student'>gao.txt 改变文件内容
[[email protected] oldboy]# md5sum gao.txt 再生成指纹
553ae6494e59791c64771d6e4ac36786 gao.txt
3. 根据指纹库指纹对比 -c = = = - -check
[[email protected] oldboy]# md5sum -c police.log 指纹与指纹库对比,不匹配
gao.txt: FAILED
md5sum: WARNING: 1 of 1 computed checksum did NOT match
[[email protected] oldboy]# md5sum gao.txt>police.log 将新指纹输入到指纹库
[[email protected] oldboy]# md5sum -c police.log 指纹与指纹库对比,匹配
gao.txt: OK
[[email protected] oldboy]# >gao.txt 再次清空文件
[[email protected] oldboy]# echo 'd41d8cd98f00b204e9800998ecf8427e gao.txt'>police.log
[[email protected] oldboy]# md5sum -c police.log 将最开始指纹输入到指纹库,对比,匹配
gao.txt: OK
文件的指纹随内容的变化而变化
用户组相关
groupadd 创建用户组
-g 指定用户组的gid
例:添加一个虚拟用户用户 mysql 指定用户的uid gid都是999
linux中新创建用户默认uid=gid
[[email protected] oldboy]# useradd -u 666 -s /sbin/nologin -M mysql
[[email protected] oldboy]# id mysql
uid=666(mysql) gid=666(mysql) groups=666(mysql)
用户查询命令
id 1.查看用户uid,gid 2.查看用户是否存在 3.查看用户属于哪个组
w 1.显示系统中已经远程登录的用户 在干什么 (直接登录 切换用户不算)
w每部分的含义
[[email protected] oldboy]# w 最近1分钟 5 15 分钟
06:36:45 up 22:31, 2 users, load average: 0.00, 0.00, 0.00
错误 25 column window is too narrow 窗口太小
查看系统性能命令
w
uptime
top 1.-P /默认按CPU排序 2.-M 按内存使用率排序
htop 增强版的top命令
iotop 显示系统中每个进程使用的磁盘io
iftop 显示系统网络流量
ps aux cpu与内存的使用率 默认不排序
和sort -rnk2搭配 增加sort -h参数
sort -h 以人类可读的形式进行排序
-r 倒序/逆序 -n 把内容当做数字 进行排序
-k 指定某一列进行排序
例:查看占地大的文件或目录并按大小顺序排序
du -sh /*|sort -rhk1
last 哪个用户 在什么时候 从哪里 远程登陆你的系统 用户登录的信息
lastlog 显示Linux中所有用户最近一次远程登录的信息
模拟占用CPU
dd if=/dev/zero of=/tmp/100 bs=1k count=10000000
查看占地大的文件或目录并按大小顺序排序
du -sh /*|sort -rhk1
扩展:
history -c 清除命令行 历史记录
历史记录还被保存在日志里
总结:
1. 面试题-让一个脚本开机自启动?
2. 如何让一个脚本被chkconfig管理
3. 与用户有关的文件和目录
4. 案例提示:-bash-4.1$原因及解决过程
5. 一堆命令
6. 添加虚拟用户
7. 查看系统性能命令 系统管理命令 进程管理命令
题目:
root用户密码忘记如何解决
1.单用户模式 √
http://blog.51cto.com/lidao/1932128
2.救援模式
2.批量添加3个用户stu01,stu02....stu10,并设置8位密码(禁止使用for,while等循环)
批量添加10个用户stu01,stu02....stu10,并设置8位随机密码(禁止使用for,while等循环)
sudo 临时让用户获得root权限
/root目录给其他用户加上权限,所有用户都可以查看root目录,权限太大
给cat命令加上suid特殊权限
sudo
sudo 让普通用户临时拥有root权限
visudo root授予尚方宝剑
sudo -l 普通用户查看尚方宝剑
例:授予oldboy用户ls,touch命令
root用户操作
visudo ==vim /etc/sudoers visudo命令授予普通用户权限
92gg 切换到文件的第92行
oldboy ALL=(ALL) /bin/ls,/bin/touch,/usr/bin/vim 授予用户命令权限
ALL授予所有权限 oldboy前加% 表示授予oldboy组权限
oldboy用户操作
sudo -l 查看拥有的尚方宝剑
输入oldboy密码
sudo ls /root 使用尚方宝剑
sudo 权限的一些注意
vim权限的隐患--推翻root
1./etc/passwd把root 密码占位符x删去,普通用户就可以随意登录root
2.修改sudo 配置文件
被授权用户使用权限不需要密码
oldboy ALL=(ALL) NOPASSWD: /bin/ls,/bin/touch,/usr/bin/vim
NOPASSWD ; (冒号空格)
sudo -k 清除密码缓存
企业中进制root用户远程服务器
visudo 授予oldboy用户权限
管理员登录oldboy用户
sudo su - 切换到root身份
授权某一目录所有命令
oldboy ALL=(ALL) /bin/*
授权所有 ---排除某一个命令
oldboy ALL=(ALL) /bin/*, ! /bin/vi
su su- 区别
su 切换用户的时候不更新环境变量
env 显示当前的环境变量
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
MAIL=/var/spool/mail/root
PWD=/root
su - 切换到root用户并更新环境变量
MAIL=/var/spool/mail/oldboy
PATH=/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oldboy/bin
PWD=/home/oldboy
记录下用户操作 行为 /日志审计
分类:
1.齐治的堡垒机:商业产品
2.gateone web 跳板机
3.python开发的开源的跳板机产品
开源跳板机(堡垒机) Jumpserver部署详解
alex写的crazyEYE
4.shell跳板机
跳板机/堡垒机
日志,行为记录在本地 --谁什么时间对服务器进行什么命令
跳板机官网 (了解)
http://liftoffsoftware.com/Products/GateOne
http://demo.jumpserver.org
跳板机可以实现 sudo的功能
yum相关知识
特点:
yum从网上下载
yum下载软件的地方===yum源(软件仓库)
yum repolist 查看系统所有的yum源
系统默认(三个)
base CentOS-6 - Base 6,706
extras CentOS-6 - Extras 47
updates CentOS-6 - Updates 857
增加一个新的yum源
epel系统yum源的扩展 Extra Packages for Enterprise Linux 6 - x86_64 12,447
增加epel源方法:
mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup
mv /etc/yum.repos.d/epel-testing.repo /etc/yum.repos.d/epel-testing.repo.backup
备份
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
下载
epel源地址
http://mirrors.aliyun.com/help/epel 阿里云
https://mirror.tuna.tsinghua.edu.cn/help/epel/ 清华
http://ftp.sjtu.edu.cn/fedora/epel/ 上海交大
yum配置文件所在目录: /etc/yum.repos.d/
问题:有时候yum安装不流畅,卡顿
1. 网络问题,,慢
2. epel源是阿里
base extra updates 默认是国外的
解决:
更新默认yum源 到阿里找centos的软件包
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
小结:
1. yum源(软件仓库)
2. 如何更新base源 如何添加epel源
3. 常见的yum源 阿里 清华 网易 搜狐
直接下载软件
https://mirrors.aliyun.com/centos/6.9/os/x86_64/Packages/lrzsz-0.12.20-27.1.el6.x86_64.rpm
以上是关于1.5 -用户管理的主要内容,如果未能解决你的问题,请参考以下文章