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. Centos7 使用 Supervisor 守护进程 Celery

    一.Supervisor 安装(centos7 还有另一个进程守护命令 Systemd ) Centos 7 安装 Supervisord 二.Supervisor 守护进程 Centos7 使用 S ...

  2. ASP.NET下调用ffmpeg与mencoder实现视频转换截屏

    最近要做一个视频播放的系统,用到了ffmpeg和mencoder两个工具,查了一些资料,发现这方面的资料还挺多的,但是就是乱了一点,我自己从头整理了一下,和大家分享一下: 1.ffmpeg实现视频(a ...

  3. Linux之如何进行固定IP、DNS等设置

    前提:虚拟机Linux centOS6.6 Linux如何设置固定IP.dns.网关 1.切换到root账号 2.#cd  /etc/sysconfig/network-scripts 进入网卡的设置 ...

  4. java面向对象之关键字,权限修饰符

    1.关键字:this,static,package,importthis:1.表示对当前对象的引用!2.表示用类的成员变量,而非函数参数,注意在函数参数和成员变量同名是进行区分!其实这是第一种用法的特 ...

  5. 在windows64位上安装Python3.0

    1.下载安装包 下载地址:https://www.python.org/downloads/ 如果要下载帮助文件:Download Windows help file 如果要下载基于网页的安装程序: ...

  6. VMSAv8-64 translation table format descriptors

    通常情况下,一个 descriptor 可能是以下的几种 entry: 非法或者异常的 entry. Table entry, 指向 next-level translation table. Blo ...

  7. zookeeper 下载安装

    下载:wget https://www-us.apache.org/dist/zookeeper/zookeeper-3.4.13/zookeeper-3.4.13.tar.gz 解压:tar -zx ...

  8. win7删除一个空白文件夹总是显示:“找不到该项目,该项目不在E盘中,请确认该项目的位置,重试”的解决办法

    把下面的代码复制粘贴到一新建的txt记事本文档中,并另存为del.bat文件(或者你喜欢的名字),注意扩展名为批处理文件bat:           DEL /F /A /Q \\?\%1 RD /S ...

  9. react自定义组件属性类型检测

    react当中的props-type用来检测传入组件当中的数据是否符合组件的要求,但是之前的只是能做些简单常规的判断,如果需要做复杂的判断,就需要使用到自定义函数来做类型检测了. 下面是官网的例子 c ...

  10. pat甲级 团体天梯赛 L2-022. 重排链表

    L2-022. 重排链表 时间限制 500 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 给定一个单链表 L1→L2→...→Ln-1→Ln,请 ...