23-用户管理sudo及定时任务
2019-04-27 本文已影响0人
文娟_狼剩
useradd补充参数:
-o 用户的id,可以不唯一
一、sudo
假设开发人员因为需要,想看一些系统的日志 /var/long/messages,但因为没有权限,无法查看
- 第一种方法:root密码给他,但这个权限太大
- 第二种方法:给查看的命令 suid的权限,但有了这个权限,所有的普通用户都可以查看,权限还是有些大
- 第三种方法:sudo,通过这个可以让指定的用户在执行某一个或几个命令的时候,临时成为root(推荐)
配置sudo
授权oldboy用户可以以root身份运行ls和touch命令
查看当前用户有什么特权(sudo -l)
清空sudo用户的时间戳(sudo -k)
配置命令:visudo相当于vi /etc/sudoers
注:建议用visudo编辑这个文件,因为这个命令有语法检查,否则一旦出错了,普通用户就无法使用sudo了。直接在命令行执行visudo即可自动打开/etc/sudoers文件
sudo练习题 :
给oldboy配置sudo可以查看系统的日志 (思考查看日志有什么命令)
/bin/grep, /bin/head, /bin/tail, /bin/less, /bin/more, /bin/cat
[root@oldboyedu59 ~]# grep oldboy /etc/sudoers
#oldboy ALL=(ALL) /bin/ls, /bin/touch
oldboy ALL=(ALL) /bin/grep, /bin/head, /bin/tail, /bin/less, /bin/more, /bin/cat
给oldboy配置可以运行/bin下面所有命令
oldboy ALL=(ALL) /bin/*
给oldboy配置可以运行/bin下面所有命令但是不能使用vi和su
oldboy ALL=(ALL) /bin/*, !/bin/vi, !/bin/su, !/bin/rm
给oldboy配置可以运行系统中所有命令并且不需要再输入oldboy密码
oldboy ALL=(ALL) NOPASSWD: ALL
二、定时任务
1、什么是定时任务?
设定某个日期或时间周期性执行指令
如:备份
流量低谷期(人少的时候)
脚本/命令
2、定时任务的分类
crontab:(软件包:cronie)工作必会
anacron:非7*24小时运行的服务器
atd:1次性的定时任务
3、crontab分类
1>系统的定时任务
配置文件
/etc/crontab:系统定时任务的配置文件之一
目录
/etc/cron.hourly/:系统定时任务每个小时运行这个目录里的内容
/etc/cron.daily/:系统定时任务每天运行这个目录里的内容
/etc/cron.weekly/:系统定时任务每周运行这个目录里的内容
/etc/cron.monthly/:系统定时任务每月运行这个目录里的内容
定时的切割
系统定时对系统日志,进行切割(日志切割/日志轮询)防止单个日志过大
系统定制任务+logroate(命令)
切割的配置(了解)
[root@oldboyedu59 ~]# ll /etc/cron.daily/
total 8
-rwx------. 1 root root 219 Oct 31 03:12 logrotate
-rwxr-xr-x. 1 root root 618 Oct 30 22:55 man-db.cron
[root@oldboyedu59 ~]# cat /etc/logrotate.d/syslog
/var/log/cron
/var/log/maillog
/var/log/messages
/var/log/secure
/var/log/spooler
{
missingok
sharedscripts
postrotate
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
endscript
}
2>用户的定时任务
crontab -l
查看当前用户的定时任务
相当于cat /var/spool/cron/root
crontab -e
编辑当前用户的定时任务
相当于vi /var/spool/cron/root
tail -f
查看实时更新
4、 定时任务的格式※※※
口诀:分时日月周
![](https://img.haomeiwen.com/i16955089/d815883c47da1146.png)
1>定时任务规则
什么时间做什么
分时日月周 命令/脚本
2>特殊符号
* 每
/ 每个xx分钟
如:*/2 * * * * date>>/tmp/time.log
- 08-11
, 08,09,10,11
3>如何检查结果是否OK
看文件的内容
看定时任务的日志
定时任务的日志文件/var/log/cron
/var/log/cron文件详解.png
注:在定时任务日志中只能显示定时任务是否运行,但无法查看是否出错
小练习:
每天晚上12点带远导去 dbj
00 00 * * * dbj
每个月的1号晚上11点带guoav去看av (kan)
00 23 01 * * kan
0 2 * * 1 /data/postmall/shell/a.sh表示什么含义?
每周1的凌晨2点执行这个脚本
今日提示集合
提示集合:
1.[root@oldboyedu59 ~]# crontab -l
no crontab for root
root用户没有定时任务
2.no crontab for root - using an empty one
root用户没有定时任务 创建1个空的文件
3.crontab: installing new crontab
更新定时任务规则