第五周-day24-切换 sudo和定时任务

第五周-day24-切换 sudo和定时任务_第1张图片
第五周day24-sudo和定时任务.png

一、sudo 临时让用户获得root权限

第五周-day24-切换 sudo和定时任务_第2张图片
image.png

1. 怎么用su?

 1先登录普通用户,没事不允许登录Root
   只有执行的任务需要root权限的时候才允许你登录Root。
   系统维护通道

      用su管理,必须知道root密码,安全隐患
     10个运维,逗得知道root密码,安全隐患

2. 需求:

  1、不用知道root密码还能管理服务器
  2、最小化管理服务器,想关机,就只给你halt权限
    所以就出来sudo 命令

3. sudo 允许指定用户执行某命令期间拥有root权限

       -l  查看获得的权限
     suid针对命令,任何用户执行命令都有root身份    任何用户执行某个命令,模糊
     sudo 针对用户权限的命令,具体

4. 如何编辑配置sudo?

   sudo 是一个提权的命令(对应的权限通过读取/etc/sudoers(严格语法)文件实现的)
 配置/etc/sudoers可以使用visudo命令。或 vim/etc/sudoers(不推荐)

准备环境
准备两个用户
root
oldboy
给oldboy设置密码123456
useradd oldboy;echo 123456|passwd --stdin oldboy

然后在root下进入"visudo"
100dd切换到100行

##visudo==vim /etc/sudoers

在root用户下进入visudo添加普通用户

## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
oldboy01  ALL=(ALL)     /bin/ls, /bin/touch
oldboy  ALL=(ALL)       /bin/ls, /bin/touch

sudo -l 查看当前用户有哪些权限
第五周-day24-切换 sudo和定时任务_第3张图片
查看当前用户有哪些权限---sudo -l

grep oldboy /etc/sudoers 查看用户有什么权限第二种方法
查看用户有什么权限第二种方法--grep

在visudo下修改的格式:

oldboy ALL=(ALL)  /bin/*
拥有所有命令

oldboy ALL=(ALL)  /bin/ls,/bin/touch,....
添加一些命令

oldboy ALL=(ALL)  /bin/*,!/bin/vi,!/bin/su,!/bin/rm
给所有但排除一些命令  用感叹号!

oldboy ALL=(ALL)  NOPASSWD:ALL
给oldboy配置可以运行系统中所有命令并且不需要再输入oldboy密码
禁止root远程登录的时候这样用。

※sudo有个机制
设定使用sudo的用户每几分钟要输入用户密码
设置NOPASSWD:ALL表示不需要再输入本用户密码

sudo -k 
清除密码缓存

我们设置一下sudo:

第一步:在oldboy用户下查看/root,没有权限

第五周-day24-切换 sudo和定时任务_第4张图片
image.png

第二步 :在root用户下用visudo给oldboy加ls 权限

image.png

3第三步:在oldboy用户下用sudo ls 查看/root

image.png
su 与sudo用户角色切换原理图
sudo的工作原理

visudo 编辑sudo 配置文件的命令

         -c  检查语法

sudo练习题 :
给oldboy配置sudo可以查看系统的日志 (思考查看日志有什么命令)

给oldboy配置可以运行/bin下面所有命令

给oldboy配置可以运行系统中所有命令并且不需要再输入oldboy密码

定时任务

1、什么是定时任务

类似闹钟
Linux下面定时执行任务
    备份 流量低谷期(人少的时候)
    脚本/命令

2.定时任务分类

crontab(cronie) 工作必会
anacron    适用于 服务器7*24小时运行
atd        一次性的定时任务

3.crontab

系统的定时任务
  配置文件  /etc/crontab
  目录
    /etc/cron.hourly      这个目录内容系统定时任务 会小时执行
    /etc/cron.daily       这个目录内容系统定时任务 会每天执行
    /etc/cron.monthly     这个目录内容系统定时任务 会月执行
    /etc/cron.weekly      这个目录内容系统定时任务 会每周执行

>如果中毒了
定时检查
存放开机自启动

4.日志切割

系统定时对系统日志 进行切割(日志切割/日志轮询)防止单个日志过大
系统定时任务+logroate(后期会讲)
无名英雄 --->日志切割
[11:45 root@oldboy ~]# ll /var/log/messages* /var/log/secure* /var/log/cron*
-rw------- 1 root root   4610 Apr 26 11:40 /var/log/cron
-rw------- 1 root root  17622 Apr 21 18:47 /var/log/cron-20190421
-rw------- 1 root root  26236 Apr 24 18:18 /var/log/cron-20190424
-rw------- 1 root root 673675 Apr 26 11:40 /var/log/messages
-rw------- 1 root root 254643 Apr 21 18:47 /var/log/messages-20190421
-rw------- 1 root root 808680 Apr 24 18:18 /var/log/messages-20190424
-rw------- 1 root root 122712 Apr 26 11:17 /var/log/secure
-rw------- 1 root root   3102 Apr 21 17:07 /var/log/secure-20190421
-rw------- 1 root root  44285 Apr 16 15:09 /var/log/secure-20190424

5.用户自己的定时任务※

crontab -l
    list 查看
    查看当前用户的定时任务
crontab -e
    edit 编辑
    修改当前用户的定时任务

查看和修改文件:

crontab -l        cat /var/spool/cron/root
crontab -e        vi /var/spool/cron/root

没有定时任务:

[11:53 root@oldboy ~]# crontab -l
no crontab for root
[11:55 root@oldboy ~]# crontab -e
no crontab for root - using an empty one    没有定时任务,给创建一个 
                                           

保存退出时出现更新定时任务规则:installing new crontab

"/tmp/crontab.gAm8Hw" 1L, 7C written
crontab: installing new crontab
"/tmp/crontab.gAm8Hw":1: bad minute
errors in crontab file, can't install.
Do you want to retry the same edit? 

※定时任务格式

编写定时任务的语法:

* 号

# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  *  (command to be executed)
    * * * * *    (command to be executed)
    第一列:分 minute (0 - 59)
    第二列:时 hour (0 - 23)
    第三列:日 day of month (1 - 31)
    第四列:月 month (1 - 12) OR jan,feb,mar,apr ...
    第五列:周 day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
    第六列:要执行的任务命令或程序

/ 号

    每隔xx分钟
    */2 * * * *  每2分钟
    */1 * * * * date +%F_%T >>/tmp/time.log

每隔1分钟执行一次时间命令追加到time.log中

检查结果

看文件的内容 cat /tmp/time.log
第五周-day24-切换 sudo和定时任务_第5张图片

看日志tail -f /var/log/cron
第五周-day24-切换 sudo和定时任务_第6张图片
image.png

练习:每天晚上12点打包备份/etc目录到/tmp下

周期性的执行任务计划的软件,linux****定时任务的常用软件 crond****。
2****、作用:使用定时任务软件,可以每天、每小时按你需求重复的执行一项任务。
例如:保证数据不丢失,需要备份,都是0点以后,2点爬起来备份,4点以后睡觉。
需要写一个程序实现自动备份,然后让定时任务软件帮你执行
相当于一个闹钟。
3****、怎样用:
(1)系统的定时任务
1.不用管理员干预,系统自动执行。
2.也可以利用系统任务为管理员服务。
 ll /var/log/messages*

cron是定时任务的软件名,
crond是服务进程名,真正实现定时任务服务。

crontab 命令是用来设置定时任务规则的配置命令

要想配置定时任务,首先启动crontab服务。

systemctl start crond.service
systemctl stop crond.service
systemctl status crond.service
开启自启动:
systemctl disable crond.service
systemctl enable crond.service

特殊符号:
*表示 每 的意思
-连续区间 1-10
00 8-23 * * * cmd
列举 1,2,3,4,8
00 1,2,3,4,8 * * * cmd
/n n是数字
n代表自然数字,即“每隔n单位时间”,例如:每10分钟执行一次任务可以写成

============================
磁盘管理:2-3天
三剑客深入:1-2天
Shell基础:2天
进程管理命令、安装命令 1天
============================
Linux网络基础:4天 2天基础 两天实践
第一大阶段结束:
第二大阶段,搭建集群

你可能感兴趣的:(第五周-day24-切换 sudo和定时任务)