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