zoukankan      html  css  js  c++  java
  • 定时任务权限控制

    指对各用户执行定时任务权限上的管理
     
    禁止某个用户执行定时任务:
    /etc/cron.deny
    在该文件中,添加该用户名,即可禁止该用户执行定时任务
     
    把该用户从/etc/crond.deny删除,即允许该用户执行定时任务
     
    --------------------------------------------------
     
    用户的管理
     
    用户的类型:
       超级用户: root  UID=0
       系统用户         UID=1-499
       普通用户   UID >= 500
     
     用户组:
       1个用户组,可以包含多个用户
       1个用户,又可以属于多个用户组
      
    每个用户有两类用户组
       初始组(基本组,主组):就是这个用户创建时所属的组。
             一个用户,只有1个初始组
       附加组
     
    相关的配置文件:
       /etc/passwd
       存放用户帐号和其他基本信息
     
       /etc/shadow
       存放用户的密码(加密后的密码)
              
       /etc/group
       存放用户组的基本信息
     
       /etc/gshadow
       存放用户组的密码
     
       /etc/login.defs 了解即可
     
       /etc/skel目录
       当创建1个新用户时,就会自动把/etc/skel目录中的所有(包括以.开头的隐藏文件)
       都拷贝都该用户的家目录。
        
       可以把一些必要的文件保存到/etc/skel目录。
       实现创建用户时的自动拷贝。
     
       为什么在用户创建时,会自动拷贝/etc/skel目录下的文件呢?
           原因:/etc/default/useradd
           解析:
    -------------------------
    GROUP=100               默认的组ID
    HOME=/home              默认的家目录
    INACTIVE=-1
    EXPIRE=                 默认的账户过期时间
    SHELL=/bin/bash         用户登录后的默认shell
    SKEL=/etc/skel          创建用户时,自动拷贝该目录下的所有文件
    CREATE_MAIL_SPOOL=yes   创建用户后,是否自动为他创建邮箱目录
    ------------------------
     
    用户的常见命令:
    1. useradd
       添加用户
        
      补充:man useradd 来查看帮助
            可以切换到中文
            # cat /etc/sysconfig/i18n
            LANG="zh_CN.UTF-8"
            # LANG="zh_CN.UTF-8"
             
       useradd 
          -c 用户的描述信息
          -d 指定该用户的家目录(该目录不能已经存在)
             当切换到该用户,或登录该用户时,就会自动进入这个家目录
          -e 设置帐号的过期时间
             格式: MM/DD/YY 即,月/日/年
          -f 设置该账户过期几天之后,就“停权”,即禁用
          -g 设置用户的起始组(主组)
             如果没有-g, 那么就会自动的创建一个同名的用户组,作为他的主组。
    n/sh         # groupadd market  
               创建用户组market 
             # useradd xiaozhang  -g  market
               创建用户xiaozheng, 同时指定market作为他的主组
        
          -G 设置用户的附加组
             注意,可同时指定多个附加组,但是用,分隔
          -m 如果家目录不存在,那自动创建,-m选项之后不需要参数
          -M 不创建家目录                  -M选项之后不需要参数
          -s 指定该用户登录后的shell
          -u 指定用户的UID
     
       改变创建用户时的默认配置
           useradd -D
     
           即改变/etc/default/useradd文件
           使用useradd -D 效果等同于直接编辑/etc/default/useradd
     
           useradd -D 
                      -b  修改家目录的上一级目录
                      -e  帐号的截至时间
                      -f  帐号过期几天后停权
                      -g  帐号的主组
                      -s  帐号登录后的shell
                           当使用 # useradd -s 的优先级更高
           实例:
             # useradd -D -b /tmp  -s /bin/bash  -e 10/01/16
              
     
    groupadd 
       创建用户组
       -g 指定组ID
        
       # groupadd develop -g 1000
     
    groupdel
       删除用户组
       # groupdel  develop
     
    passwd 
       修改密码
       注意:普通用户只能修改自己的密码
                 $ passwd
             root用户可以修改任意用户的密码
                 # passwd  用户名
        
       非交互式修改秘密
       实例:
       # echo "123456" | passwd zhangfei --stdin
     
       锁定密码
       # passwd -l 用户名
       锁定指定用户的密码,使其不能修改
     
       # passwd -u 用户名
       解锁用户的密码,就是可以允许该用户来修改自己的密码
     
       查看密码的状态:
       # passwd -s 用户名
     
       常用选项:
          -n 修改密码的最小时间间隔
          -x 修改密码的最大时间间隔
         -w 在过期的前几天给用户发信
         -i 过期多少天,帐号将被停权
     
    修改liubei的密码,同时设置为7天内不能再修改,60天后必须修改,
             该密码过期前10天通知liubei, 
             密码过期30天,就禁止liubei登录
       # echo "1qaz2wsx" | passwd liubei -n 7 -x 60 -w 10 -i 30
     
    chage 
       用来管理密码的生命周期
     
       -d 修改密码的最近修改时间
          # chage liubei -d 2015/01/31
     
       -E 修改账户的过期时间
          # chage liubei -E 2016/12/31
     
       -I 密码过期多少天,帐号停权
     
       -l 显示账户的生命周期信息
     
       -m 修改密码的最小时间间隔
       -M 修该密码的最大时间间隔
       
       -W 密码过期前的多少天,发送警告信给用户
        
    修改liubei的密码时间信息:  
              7天内不能修改密码,60天以后必须修改密码
              过期前10天发送通知給liubei
              过期30天后禁止用户登录。
       # chage liubei  -m 7 -M 60 -w 10 -I 30 
     
    userdel
       删除用户
        
      # userdel 用户名
        该用户的家目录和邮件目录不被删除。
       
      # userdel -r 用户名
        该用户的家目录和邮件目录都被删除。
     
      注意:删除用户的小技巧,
           直接用vi在/etc/passwd中把该用户行注释!
           如果以后又需要使用这个帐号,那再把注释去掉
     
    groupdel
       # groupdel develop
     
    usermod
       修改用户信息
       用法:man usermod
     
    id
      # id
       显示当前用户的信息
      # id 用户名
       显示指定用户的信息
     
    w
      # w
      显示已经登录的用户,以及他们正在做什么
     
    who 
      # who
      显示已经登录的用户
     
    lastlog
      显示用户的最近的登录信息
     
    groups
      显示当前用户组
     
    newgrp
      用来临时加入另1个用户组
      很少使用。
     
    用户的切换
       # su
       切换到root
    groups
      显示当前用户组
     
    newgrp
      用来临时加入另1个用户组
      很少使用。
     
    用户切换
     $ su
     $ su root
     切换到root用户
     需要输入root的密码
     
     #su  zhangfei
     切换到指定用户
     root用户切换到普通用户,不需要输入密码
     普通用户切换到任意其他用户,都需要输入目标用户的密码
     
     # su  -  zhangfei
     切换时,使用-
     表示,切换后,使用目标用户的环境变量
     如果不使用 - ,
     表示,切换后,环境变量不变!
      
     环境变量:$PATH,  当前目录等。
      
     注意:在切换用户时,最后使用 -
     
    su的-c选项的用法:
       # su -liubei  -c  ls 
       切换到liubei,并执行 -c 后面的命令
       但是,执行完之后,再回到原来的用户。
     
       应用场合:
       在实际的生产环境中,为了提高安全性,
       系统常常在系统启动时,使用普通用户的角色来启动系统的服务
       此时就可以使用-c
      
    su的缺点:
       su可以让普通用户切换到root用户,所以不安全!
       解决方案:使用sudo
     
    sodu的用法
       执行流程:见图
     
       分析 /etc/sudoers/配置文件
       /etc/sudoers文件:
       1)定义别名
          可以省略
        
       2)定义规则
          必须。
          就是用来定义用户执行命令的权限
     
    /etc/sudoers中规则的定义方法
        执行sodu的用户    主机名=(目标用户名)   能执行的命令
        ---------------------------------------------
        xiaoming          ALL=(ALL)               ALL
        MARKET            SOUTH(OP)               SOFTSETUP     
        ---------------------------------------------
       
        ALL就表示所有
     
    /etc/sudoers中的别名定义
    1)用户别名
    User_Alias  MARKET = zhangfei,guanyu,zhaoyun,%CanMou
    MARKET代表了zhangfei, guanyu, zhaoyun, 以及CanMou用户组中的所有人员
         
    2) 主机别名
    Host_Alias SOUTH = shenzheng,guangzhou,changsha
    SOUTH就表示3台主机:shenzheng, guangzhou, changsha
     
    3) 角色别名
    Runas_Alias  OP = root
     
    4) 命令别名
    Cmnd_Alias SOFTSETUP = /bin/rpm,/usr/bin/yum
    

      

  • 相关阅读:
    一篇文章读懂JSON
    不该被忽视的CoreJava细节(四)
    Java面试题总结(二)
    Java面试题总结(一)
    不该被忽视的CoreJava细节(三)
    不该被忽视的CoreJava细节(一)
    逐步解读String类(一)
    JSP注释格式
    命令行启动mysql服务
    经典进程的同步问题之——生产者&&消费者
  • 原文地址:https://www.cnblogs.com/The-day-of-the-wind/p/12063841.html
Copyright © 2011-2022 走看看