定时任务权限控制

指对各用户执行定时任务权限上的管理
 
禁止某个用户执行定时任务:
/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

  

原文地址:https://www.cnblogs.com/The-day-of-the-wind/p/12063841.html