• Linux基础学习4


    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停止
     
     
  • 相关阅读:
    chrony软件使用说明
    使用cobbler批量安装操作系统(基于Centos7.x )
    kickstart模式实现批量安装centos7.x系统
    uCGUI字符串显示过程分析和uCGUI字库的组建
    Network boot from AMD Am79C970A
    关于TFTLCD硬件接口和驱动的问题
    (转)关于模拟地和数字地分开的问题解释!
    获取单片机代码运行时间的方法
    stm32类型cl、vl、xl、ld、md、hd的含义
    RS232转RS485电路图分析
  • 原文地址:https://www.cnblogs.com/Aiapple/p/4899949.html
Copyright © 2020-2023  润新知