SUDO
sudo 执行的重点是:『 能否使用 sudo 必须要看 /etc/sudoers 的设定值, 而可使用 sudo者是透过输入用户自己的密码来执行后续的指令串』由于能否使用与/etc/sudoers 有关, 所以我们当然要去编辑 sudoers 档案啦!不过,因为该档案的内容是有一定的规范的,因此直接使用 vi 去编辑是不好的。 此时,我们得要透过 visudo 去修改这个档案喔!
 
visudo 与 /etc/sudoers
为什么要用visudo,因为/etc/sudoers 有固定语法,如果用vi 编辑 一不小心,语法错误了会导致sudo指令的不良后果;而visudo会检查语法咯;
[root@www ~]# visudo
....(前面省略)....
root ALL=(ALL) ALL <==找到这一行,大约在 76 行左右
vbird1 ALL=(ALL) ALL <==这一行是你要新增的!
....(前面省略)....
visudo 只是利用vi  呼出 /etc/sudoers 来修改,
 
visudo
使用者账号    登入者的来源主机名=(可切换的身份)     可下达的指令
root              ALL=(ALL)                                          ALL <==这是默认值
上面这一行的四个组件意义是:
1. 系统的哪个账号可以使用 sudo 这个指令的意义,默认为 root 这个账号;
2. 当这个账号由哪部主机联机到本 Linux 主机,意思是这个账号可能是由哪一部网路主机联机过来的, 这个设定值可以指定客户端计算机(信任用户的意思)。默认值 root 可来自任何一部网络主机
3. 这个账号可以切换成什么身份来下达后续的指令,默认 root 可以切换成任何人;
4. 可用该身份下达什么指令?这个指令请务必使用绝对路径来写。 预设root 可以切换任何
 
利用群组 处理visudo
简单来讲 就是让 某个群组均支持sudo指令,这样讲需要sudo指令的用户支持这个群组就好了;
[root@www ~]# visudo <==同样的,请使用 root 先设定
....(前面省略)....
%wheel ALL=(ALL) ALL <==大约在 84 行左右,请将这行的 # 拿掉!
# 在最左边加上 % ,代表后面接的是一个『群组』
 
免密码方式使用sudo
[root@www ~]# visudo <==同样的,请使用 root 先设定
....(前面省略)....
%wheel ALL=(ALL) NOPASSWD: ALL <==大约在 87 行左右,请将 # 拿
掉!
# 在最左边加上 % ,代表后面接的是一个『群组』
在可下达指令 ALL前 增加NOPASSWD 即可免密码使用sudo;
 
有限制的指令操作
当一般用户有了root权限,如果他更改了root密码这时候 会很头疼;所以要限制;
[root@www ~]# visudo <==注意是 root 身份
myuser1 ALL=(root) !/usr/bin/passwd, /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd root
 
用! 和 通配符,保证了不能输入 passwd 和 passwd root,保证了不能修改root密码噢;
 
值得研究的一点是,Ubuntu中visudo 并没有做限制,而他的用户却只能修改自身密码;Ubuntu是在哪里做了限制呢?
 
PAM 模块简介
Pluggable Authentication Modules 嵌入式模块
PAM 可以说是一套应用程序编程接口 (Application Programming Interface, API),他提供了一连串的验证机制,只要使用者将验证阶段的需求告知 PAM 后, PAM 就能够回报使用者验证的结果 (成功或失败)。
 
PAM 用来进行验证的数据称为模块 (Modules),每个 PAM 模块的功能都不太相同。举例来说, 我们在本章使用 passwd 指令时,如果随便输入字典上面找的字符串, passwd 就会回报错误信息了!这是为什么呢?这就是 PAM 的 pam_cracklib.so 模块的功能!他能够判断该密码是否在字典里面! 并回报给密码修改程序,此时就能够了解你的密码强度了。
 
主机上用户信息传递
查询使用者: w, who, last, lastlog
使用者对谈: write, mesg, wall
 
大量建账户当然是要用脚本了,关键语句:echo $username | passwd --stdin $username;将用户名作为密码;
 
第十五章,磁盘配额(Quota)与进阶文件系统管理
 
Quota
磁盘容量使用根据公平,举例:/home是独立的partition有10G,而/home 下总共有30个用户,这样每个用户应该333M,偏偏有一个用户在自己家目录里放了很多8G的电影,这样其他用户就很不爽不够用啊;所以Quota就是来处理这个问题的;
 
quota 比较常使用的几个情况是:
 针对 WWW server ,例如:每个人的网页空间的容量限制!
 针对 mail server,例如:每个人的邮件空间限制。
 针对 file server,例如:每个人最大的可用网络硬盘空间 (教学环境中最常见!)
上面是针对网络服务设计的,那么针对Linux系统主机有:
 限制某一群组所能使用的最大磁盘配额 (使用群组限制):
 限制某一用户的最大磁盘配额 (使用用户限制):
 以 Link 的方式,来使邮件可以作为限制的配额 (更改 /var/spool/mail 这个路径):
 
第十六章  例行性工作排程(crontab)
linux 工作排程的种类:at  crontab
at                   :仅执行一次就结束的排程
crontab      :周期性执行指令的排程
 
Linux上常见的例行性工作:
 进行登录档的轮替 (log rotate):
 登录文件分析 logwatch 的任务:
 建立 locate 的数据库:
 whatis 数据库的建立:
 RPM 软件登录文件的建立:
 移除暂存档:
 与网络服务有关的分析行为: 如果你有安装类似 WWW 服务器软件 (一个名为 apache 的软件),那么你的 Linux 系统通常就会主动的分析该软件的登录文件。 同时某些凭证与认证的网络信息是否过期的问题,我们的Linux 系统也会很亲和的帮你进行自动检查!
 
atd 的启动与 at 运作的方式:
atd是at的服务,at是具体指令;
[root@www ~]# /etc/init.d/atd restart
正在停止 atd: [ 确定 ]
正在激活 atd: [ 确定 ]
 
chkconfig :
开机时自启动atd服务
[root@www ~]# chkconfig atd on   
 
at的运作方式:
at产生索要运作的工作,并将这个工作以文本文件的方式写入/var/spool/at目录内,该工作就能够等待atd这个服务取用与执行了;
 
at的限制管理:/etc/at.allow    /etc/at.deny
实际上加上上述两个文档之后,at的工作情况是这样的:
1. 先找寻 /etc/at.allow 这个档案,写在这个档案中的使用者才能使用 at ,没有在这个档案中的使用者则不能使用 at (即使没有写在 at.deny 当中);
2. 如果 /etc/at.allow 不存在,就寻找 /etc/at.deny 这个档案,若写在这个 at.deny 的使用者则不能使用 at ,而没有在这个 at.deny 档案中的使用者,就可以使用 at 咯;
3. 如果两个档案都不存在,那么只有 root 可以使用 at 这个指令。
 
[root@www ~]# at [-mldv] TIME
[root@www ~]# at -c 工作号码
选项与参数:
-m :当 at 的工作完成后,即使没有输出讯息,亦以 email 通知使用者该工作已完成。
-l :at -l 相当与 atq,列出目前系统上面的所有该用户的 at 排程;
-d :at -d 相当与 atrm ,可以取消一个在 at 排程中的工作;
-v :可以使用较明显的时间格式栏出 at 排程中的任务栏表;
-c :可以列出后面接的该项工作的实际指令内容。
TIME:时间格式,即什么时候要进行at这项工作,格式有:
HH:MM                                   ex>04:00
HH:MM YYYY-MM-DD            ex>04:00 2009-03-17
HH:MM[am|pm] [Month] [Date]    ex>04pm March 17
HH:MM[am|pm] + number [minutes|hours|days|weeks]
                                                    ex>now + 5 minutes
                                                    ex>04pm + 3 days
 
注意:在设置完例程之后 ctrl+d 才算真正的设置好了,注意不能用ctrl+c,ctrl+c是用来结束的;
 
实际上 at -c 显示的是 /vat/spool/at目录下面的 一个通常以a开头的可执行文件,当然你也可以把 指令直接写在这个执行文档中,因为at服务会直接拿这个文档执行噢;
 
人性化的batch:系统有空时才进行背景任务;
他会在CPU 工作负载小于0.8的时候才工作;
工作负载说的是CPU单一时间内所负责的工作数量,和CPU使用率不同;负载指的是单一时间CPU负责的任务数量,即单一时间内有多少任务在等待实用CPU;
至于使用方法和at 相同;
 
循环执行的工作排程:
cron(crond)这个服务
crontab          这个指令
 
限制:
 /etc/cron.allow:将可以使用 crontab 的账号写入其中,若不在这个档案内的使用者则不可使用 crontab;
 /etc/cron.deny:将不可以使用 crontab 的账号写入其中,若未记录到这个档案当中的使用者,就可以使用crontab 。
 
用crontab指令建立工作会被记录到  /var/spool/cron里面去,而且是以账号来作为判别的,root使用crontab后,工作记录到/var/spool/cron/root里面去;
但不要使用vi直接编辑,因为若语法作为,会导致corn这个服务无法执行;另外cron自行的每一项工作都会记录到/var/log/cron这个登录档案中,所以可以看看这个档案,来判断自己有没有被黑噢;
看来这个/var/log/corn是很重要的啦;
 
[root@www ~]# crontab [-u username] [-l|-e|-r]
选项与参数:
-u :只有 root 才能进行这个任务,亦即帮其他使用者建立/移除 crontab 工作
排程;
-e :编辑 crontab 的工作内容
-l :查阅 crontab 的工作内容
-r :移除所有的crontab 的工作内容,若仅要移除一项,请用 -e 去编辑。
 
范例一:用 dmtsai 的身份在每天的12:00 发信给自己
[dmtsai@www ~]$ crontab -e
# 此时会进入 vi 的编辑画面让您编辑工作!注意到,每项工作都是一行。
0 12 * * * mail dmtsai -s "at 12:00" < /home/dmtsai/.bashrc
#分 时 日 月 周 |<==============挃令串=======>|
 
特殊字符代表意义:
*(星号)     代表任何时刻都接受的意思!举例来说,范例一内那个日、月、周都是 * , 就代表着『不论何月、何日的礼拜几的 12:00 都执行后续指令』的意思!
,(逗号)     代表分隔时段的意思。举例来说,如果要下达的工作是 3:00 与6:00 时,就会是:0 3,6 * * * command时间参数还是有五栏,不过第二栏是 3,6 ,代表 3 与 6 都适用!
-(减号)    代表一段时间范围内。举例来说, 8 点到 12 点之间的每小时的 20 分都进行一项工作:20 8-12 * * * command仔细看到第二栏变成 8-12 喔!代表 8,9,10,11,12 都适用的意思!
/n(斜线)  那个 n 代表数字,亦即是『每隔 n 单位间隔』的意思,例如每五分钟进行一次,则:*/5 * * * * command 注意此时*/5 是第一栏噢;
 
注意:时间的五栏 均要以空格 分开噢;;
 
anacron
以天为单位或者是开机以后立刻执行anacron,他会侦测停机期间应该进行但是没有进行的crontab任务,并将该任务执行一遍后,anacron就自动停止;
旨在解决关机时没有执行的crontab任务;其实anacron也是透过crontab来运行的,所以其用作时间通常有两个,一个是系统开机期间,一个是写入crontab的排程中。
 
anacron 与 /etc/anacrontab
anacron其实是一支程序并非一个服务,这支程序在centos当中已经写入crontab的进程中;
 
重点回顾
 系统可以透过 at 这个指令来排程单一工作的任务!『 at TIME』为指令下达的方法,当 at 进入排程后, 系统执行该排程工作时,会到下达时的目录进行任务;
 at 的执行必须要有 atd 服务的支持,且 /etc/at.deny 为控制是否能够执行的使用者账号;
 透过 atq, atrm 可以查询与删除 at的工作排程;
 batch 与 at 相同,不过 batch 可在 CPU 工作负载小于 0.8 时才进行后续的工作排程;
 系统的循环例行性工作排程使用 cron 这个服务,同时利用 crontab -e 及 /etc/crontab 进行排程的安排;
 crontab -e 设定项目分为六栏,『分、时、日、月、周、挃令』为其设定依据;
 /etc/crontab 设定分为七栏,『分、时、日、月、周、执行者、指令』为其设定依据;
 anacron 配合/etc/anacrontab 的设定,可以唤醒停机期间系统未进行的 crontab 任务!
 
 
总结
  • sudo

    • visudo进行配置sudo

      • 支持的用户/群组
      • 免密码使用sudo
  • 主机用户信息传递
    • 查询使用者:w,who,last,lastlog
    • 使用者对谈:write,mesg,wall
  • 大量脚本创建用户
    •   echo $username | passwd --stdin $username
  • quota--磁盘容量公平使用
    • www  server ,每个人的网页空间的容量限制
    • mail server,每个人邮件空间限制
    • 限制群组/用户的最大磁盘配额
  • 例行工作
    • at  :仅执行一次就结束

      • atd是at的服务

        • /etc/init.d/atd restart
        • 开机自启动:chkconfig  atd on
      • 运作方式,
        • at产生所要运行的工作,并以文本方式写入/var/spool/at内
        • atd这个服务自动取用与-l执行
      • at使用者限制管理:/etc/at.allow    /etc/at.deny
        • at.allow,存在,则只能是该文件中有的用户才能使用
        • at.allow不存在,则不在/etc/at.deny的用户可以使用
        • 两个文件都不存在,则只有root才能使用
      • at 使用
        • at [-mldv] TIME
        • 以ctrl+d,结束设置
        • batch,可以人性化的在cpu负载较低才启动任务;使用方法和at相同。
    • crontab
      • cron(crond)是服务
      • 运行方式
        • crontab产生的工作写到 /var/spool/cron,且是以账号来分割如root则写到/var/spool/cron/root
        • 一般不要修改/var/spool/cron/root中内容因为,有特殊语法
        • cron每项工作都会记录到/var/log/cron这个档案,所以可以看看这个文案来看看,自己有没有被黑
      • crontab使用者限制:/etc/cron.allow   /etc/cron.deny
        •   与at的限制一样
      • crontab使用
        • crontab [-u username] [-l|-e|-r]
        • 分 时 日 月 周 |<==============指令串=======>|
    • anacron
      • 解决关机时没有执行的crontab任务
      • 每天开机后立即执行anacron,执行crontab后,anacron停止
 
 

Linux基础学习4的更多相关文章

  1. linux基础学习之软件安装以及常用命令

    linux基础学习之软件安装以及常用命令 调用中央仓库: yum install wget 然后下载nodejs: wget https://nodejs.org/dist/v10.14.2/node ...

  2. Linux基础学习系列目录导航

    Linux基础学习-通过VM安装RHEL7.4 Linux基础学习-命令行与图形界面切换 Linux基础学习-基本命令 Linux基础学习-RHEL7.4之YUM更换CentOS源 Linux基础学习 ...

  3. linux基础学习路线&review

    linux基础学习网址: https://www.runoob.com/linux/linux-tutorial.html 比较重点的是这个启动过程的介绍学习:https://www.runoob.c ...

  4. Linux 基础学习1

    目录 Linux 基础学习 用户登录 终端 交互式接口 bash 修改ssh连接慢的步骤 命令提示符 显示提示符格式 命令 别名 命令格式 获取命令的帮助信息 man bash 快捷键 tab 键 引 ...

  5. Linux 基础学习2

    目录 Linux 基础学习2 文件目录结构 文件命名规范 文件系统结构 linux应用程序的组成 绝对路径和相对路径 目录名和基名 切换目录 切换到家目录 切换到上一次的目录 显示当前的工作目录 列出 ...

  6. Linux基础学习(全)

    使用的Linux发行版本为Redhat 1.Linux(RedHat)基础学习-命令行使用入门 2.Linux(RedHat)基础学习-文件寻址与管理 3.Linux(RadHat)基础学习-vim编 ...

  7. Linux基础学习(1)--Linux系统简介

    第一章——Linux系统简介 1.UNIX和Linux发展史: 1.1 unix发展史: (1)1965年,美国麻省理工学院(MIT).通用电气公司(GE)及AT&T的贝尔实验室联合开发Mul ...

  8. Linux 基础学习(第二节)

    free命令用于显示当前系统中内存的使用量信息,格式为:“free [-h]”. 为了保证Linux系统不会突然卡住宕机,因此内存使用量应该是运维人员时刻要关注的数据啦,咱们可以使用-h参数来以更人性 ...

  9. Linux基础学习(二)

    前言: 我们在上一节了解了一下linux的硬件组成,虽然也许对具体的东西还不甚了解,但是我们知道了linux下一切皆文件这一特性 我们装好了CentOS7的虚拟机(这个可以看别人教程来装起来,比较简单 ...

  10. Linux基础学习(一)

    前言:这个学习笔记是为了督促自己能够更好的学习Linux的有关知识. 参考书目 鸟哥的linux私房菜 Chapter 1:入门建议 新手建议:重点 基础一定一定要学好 那么什么是基础呢? 先从Lin ...

随机推荐

  1. csu-2018年11月月赛Round2-div1题解

    csu-2018年11月月赛Round2-div1题解 A(2191):Wells的积木游戏 Description Wells有一堆N个积木,标号1~N,每个标号只出现一次 由于Wells是手残党, ...

  2. Leetcode 514.自由之路

    自由之路 视频游戏"辐射4"中,任务"通向自由"要求玩家到达名为"Freedom Trail Ring"的金属表盘,并使用表盘拼写特定关键词 ...

  3. Leetcode 502.IPO

    IPO 假设 LeetCode 即将开始其 IPO.为了以更高的价格将股票卖给风险投资公司,LeetCode希望在 IPO 之前开展一些项目以增加其资本. 由于资源有限,它只能在 IPO 之前完成最多 ...

  4. gym101532 2017 JUST Programming Contest 4.0

    台州学院ICPC赛前训练5 人生第一次ak,而且ak得还蛮快的,感谢队友带我飞 A 直接用claris的模板啊,他模板确实比较强大,其实就是因为更新的很快 #include<bits/stdc+ ...

  5. EasyUi DataGrid 获取选中行的checkbox

    EasyUi DataGrid 获取选中行的checkbox var checked = $(":checkbox[name=ID]:checked"); console.log( ...

  6. 习题:Wormhole(思路题)

    tyvj1763 描述 一维的世界就是一个数轴.这个世界的狭小我们几乎无法想象.在这个数轴上,有N个点.从左到右依次标记为点1到N.第i个点的坐标为Xi.经过漫长时间的物理变化和化学变化,这个一维世界 ...

  7. [JSOI2012][bzoj4332] 分零食 [FFT]

    题面 传送门 思路 首先,这个数据如果没有这么大,我们还是可以做朋友的...... 设$dp\left[i\right]\left[j\right]$代表前j个零食分给了前i个人的方案数 那么dp方程 ...

  8. BZOJ1415 [Noi2005]聪聪和可可 【SPFA + 期望dp记忆化搜索】

    题目 输入格式 数据的第1行为两个整数N和E,以空格分隔,分别表示森林中的景点数和连接相邻景点的路的条数. 第2行包含两个整数C和M,以空格分隔,分别表示初始时聪聪和可可所在的景点的编号. 接下来E行 ...

  9. 【01】react 之 hello world

    React 起源于 Facebook 的内部项目,因为该公司对市场上所有 JavaScript MVC 框架,都不满意,就决定自己写一套,用来架设 Instagram 的网站.做出来以后,发现这套东西 ...

  10. 前端知识点总结——CSS

    1.CSS的概述 1.什么是CSS? CSS:Cascading Style Sheets层叠样式表,级联样式表(简称:样式表) 2.作用 设置HTML网页元素的样式 3.HTML与CSS的关系 HT ...