linux【第六篇】用户和用户管理及定时任务复习
定时任务复习
1.什么是定时任务?
2.如何编辑查看定时任务(配置文件位置?),语法的特殊字符意义是什么?
- * , /
3.书写定时任务有哪些要领?
4.生产如何调试定时任务
5.生产场景配置定时任务需要注意的问题?
用户和用户管理
linux UID GID
管理员:root oldboy
用户和组的关系:
用户分类:
超级用户:UID = 0 root
普通用户: UID 500起 由超级用户或者具有超级用户权限的用户创造
虚拟用户:UID 1-499 存在满足文件或者服务启动的需要。一般 都不能登录,只是傀儡。
用户关联文件
/etc/passwd/, /etc/shadow, /etc/group , /etc/gshasow
用户管理的命令:
- useradd 添加用户 -u uid,-g指定所属组,-s 登录shell -M -e 指定用户过期时间
- userdel 删除用户
- passwd 改密码
- usermod 修改用户信息, -u uid ,-g 指定所属组,-s 登录shell -e 指定用户过期时间
- chage 查看及修改用户密码相关信息 -l 查看 -E 修改账户
- id 查看用户UID ,GID 及所归属的用户组
- lsattr 查看特殊属性
- chattr 设置特殊属性,例如:+i 不可变
- who 查看谁登录了
- whoami 查看当前用户
- users 只看有谁登录
- su 命令 切换用户角色
- 指定用户执行命令
[root@VM_141_154_centos ~]# su - oldboy -c "touch a.txt"
[root@VM_141_154_centos ~]# ls -l /home/oldboy/a.txt
-rw-rw-r-- 1 oldboy oldboy 0 Apr 9 15:46 /home/oldboy/a.txt
- su 用户角色切换工具,有可能功高盖主
- sudo 提升用户权限
/etc/skel 目录
- 用来存放新用户配置文件的目录,当我们添加新用户时,这个目录下的所有文件会自动被复制到新添加的用户的家目录下
- 默认情况下,/etc/skel 目录下的所有文件都是隐藏文件(以.开头的文件)
- 通过修改,添加,删除/etc/skel 目录下的文件,我们可为新创建的用户提供统一的,标准的,初始化用户环境。
useradd oldboy 系统会自动执行 cp -a /etc/skel/* /home/oldboy
- 企业案例:
当出现-bash-4.1$
cp -a /etc/skel/.bash* /home/oldboy
修改[root@VM_141_154_centos ~]
[root@VM_141_154_centos ~]由set|grep -i ps1控制
如下:想永久生效,放profile下面
[root@VM_141_154_centos ~]# set|grep -i ps1
PS1='[\u@\h \W]\$ '
useradd配置 行为控制
- /etc/default/useradd
- /etc/login.defs
[root@VM_141_154_centos ~]# cat /etc/default/useradd
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
关于useradd的目录:
- /etc/passwd/
- /etc/shadow
- /etc/group
- /etc/gshasow
useradd 参数实战 -c -u -G -s -d 多个参数组合的例子
实例:自定义的家目录,shell类型,所属的用户组等:添加用户oldboy6,
并设置其用户注释信息为Handsomeboy,UID指定为806,归属组为用户组 root,oldboy,sa成员,
其shell类型为/bin/sh,设置家目录为/oldboy6
实际操作结果:
useradd -c "Handsomeboy" -u 806 -G root,oldboy,sa -s /bin/sh -d /oldboy6 oldboy6
查看结果
grep "oldboy6" /etc/passwd/
id oldboy6
groupadd:用户组
重要参数:-g
group sa2 -g 888
查看 grep sa2 /etc/group
passwd修改密码
echo 123456|passwd --stdin oldboy
passwd --stdin oldboy <p.log
[root@VM_141_154_centos ~]# echo 123456|passwd --stdin oldboy
Changing password for user oldboy.
passwd: all authentication tokens updated successfully.
实例:下面要求oldboy用户7天内不能更改密码,60天以后
必须修改密码,过期前10通知,过期后30天后禁止登陆
- 第一种
passwd -n 7 -x 60 -w 10 -i 30 oldboy
查看
change -l oldboy
- 第二种
[root@VM_141_154_centos ~]# chage -m7 -M60 -W10 -I30 oldboy
[root@VM_141_154_centos ~]# chage -l oldboy
Last password change : Apr 09, 2017
Password expires : Jun 08, 2017
Password inactive : Jul 08, 2017
Account expires : never
Minimum number of days between password change : 7
Maximum number of days between password change : 60
Number of days of warning before password expires : 10
passwd 特殊权限说明
[root@VM_141_154_centos ~]# which passwd
/bin/passwd
[root@VM_141_154_centos ~]# ls -l /usr/bin/passwd
-rwsr-xr-x. 1 root root 27832 Jun 10 2014 /usr/bin/passwd
[root@VM_141_154_centos ~]# ls -l /etc/passwd
-rw-r--r-- 1 root root 1592 Apr 5 22:11 /etc/passwd
userdel:删除用户 groupdel:删除用户组
重要参数 -r,一般不用,会把家目录全删掉
[root@VM_141_154_centos ~]# useradd oldboy1
[root@VM_141_154_centos ~]# userdel -r oldboy1 删除用户组相关命令groupdel
[root@VM_141_154_centos ~]# groupadd sa
[root@VM_141_154_centos ~]# groupdel sa
查看当前账户状态chage -l oldboy
[root@VM_141_154_centos ~]# chage -l oldboy
Last password change : Apr 09, 2017
Password expires : never
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7
visudo
98 gg 切换到98行
root ALL=(ALL) ALL在这行下边编辑
oldboy ALL=(ALL) /bin/rm
还可以
[root@VM_141_154_centos ~]# echo "oldboy ALL=(ALL) /bin/rm">>/etc/sudoers
[root@VM_141_154_centos ~]# tail -l /etc/sudoers
## Allows members of the users group to mount and unmount the
## cdrom as root
# %users ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom ## Allows members of the users group to shutdown this system
# %users localhost=/sbin/shutdown -h now ## Read drop-in files from /etc/sudoers.d (the # here does not mean a comment)
#includedir /etc/sudoers.d
oldboy ALL=(ALL) /bin/rm
visudo检查语法错误
[root@VM_141_154_centos ~]# visudo -c
/etc/sudoers: parsed OK
visudo别名
机器别名
Host_Alias FILESERVERS = fs1, fs2
Host_Alias MAILSERVERS = smtp, smtp2 用户别名
User_Alias ADMINS = jsmith, mikem, %sa sa为一个用户组 命令别名
Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/p ing, /sbin/dhclient, /usr/bin/net, /sbin/iptables, /usr/bin/r fcomm, /usr/bin/wvdial, /sbin/iwconfig, /sbin/mii-tool
服务器用户权限管理改造方案与实施项目(root泛滥)
1.问题现状
- 开发,运维,架构,DBA,产品,市场
- 经常导致文件莫名其妙的丢失
- 现提出针对linux服务器用户权限集中管理的解决方案
2.项目要求
- 最小化:安装软件最小化,权限最小化,(目录文件,用户权限,程序运行)
- 需要sudo管理来代替或结合su命令来完成
3.具体实现
- 分等级,分层次的实现对linux服务器管理的权限最小化,规范化。
- 这样既减少了运维管理或成本,又提高了工作效率,还方便日常系统维护
4.实施方案
- 说明:实施方案一般是有积极主动发现问题的运维人员提出问题,然后写好方案,再召集大家讨论可行性,最后确定方案,实施部署,最后后期总结维护。
- 思想:提问题,要有解决方案
- 到此为止:应该已经写完了权限规划文档。
4.1信息采集
- 各个部门人员名单,职位,及负责的业务及权限
- 张三 开发经理 blog业务 要求all,但是不能切入到root
4.2规范化
- 所有员工必须通过《员工Linux服务器管理权限申请表》
- 来申请对应的权限,确定审批流程,规范化管理。
4.3 写操作申明,对各部门人进行操作讲解。
- sudo执行命令,涉及到path变量问题,运维提前处理好。
5.模拟创建用户角色
建立3个初级运维,一个高级运维,一个网络工程师,一个运维经理,密码统一111111
[root@VM_141_154_centos ~]# for user in chuji001 chuji002 chuji003 net001 senior001 manager001
> do
> useradd $user
> echo "111111"|passwd --stdin $user
> done
Changing password for user chuji001.
passwd: all authentication tokens updated successfully.
Changing password for user chuji002.
passwd: all authentication tokens updated successfully.
Changing password for user chuji003.
passwd: all authentication tokens updated successfully.
Changing password for user net001.
passwd: all authentication tokens updated successfully.
Changing password for user senior001.
passwd: all authentication tokens updated successfully.
Changing password for user manager001.
passwd: all authentication tokens updated successfully.
建立5个开发人员,属于phpers组
[root@VM_141_154_centos ~]# groupadd -g 1000 phpers
[root@VM_141_154_centos ~]# for n in `seq 5`
> do
> useradd -g phpers php00$n
> echo "111111"|passwd --stdin php00$n
> done
Changing password for user php001.
passwd: all authentication tokens updated successfully.
Changing password for user php002.
passwd: all authentication tokens updated successfully.
Changing password for user php003.
passwd: all authentication tokens updated successfully.
Changing password for user php004.
passwd: all authentication tokens updated successfully.
Changing password for user php005.
passwd: all authentication tokens updated successfully. [root@VM_141_154_centos ~]# for user in kaifamanager001 seniorphpers
> do
> useradd $user
> echo "111111"|passwd --stdin $user
> done
Changing password for user kaifamanager001.
passwd: all authentication tokens updated successfully.
Changing password for user seniorphpers.
passwd: all authentication tokens updated successfully.
sudo配置注意事项
提示:授权ALL在进行排除是会让我们防不胜防,这种先开后关的策略斌不是好的策略。
- 1.命令别名下的成员必须是文件或目录的绝对路径
- 2.别名名称是包含大写字母,数字,下划线,如果是字母都要大写
- 3.一个别名下有多个成员,成员与成员之间,通过半角","号分隔,成员必须是有效实际存在的。
- 4.别名成员受别名类型 Host_Alias,User_Alias,Runas_Alias,Cmnd_Alias制约定义什么类型的别名,就要有什么类型的成员相配
- 5.别名规则是每行算一个规则,如果一个别名规则一行容不下时,可以通过"\"来续行
- 6.指定切换的用户要用()括起来,如果省略括号,则默认为root用户如果括号里是(ALL),则代表能切换到所有用户
- 7.如果不需要密码直接运行命令的,应该加NOPASSWD:参数
- 8.禁止某类程序或命令执行,要在命令动作前面加上"!"号,并且放在允许执行命令的后面。
- 9.用户组前面必须加%号
服务器日志审计项目
- 1.权限控制后进一步实施对所有用户日志记录方案
- 2.通过sudo和syslog配合实现对所有用户进行日志审计并将记录集中管理
- 3.实施后让所有运维和开发的所有执行的命令都有记录可查,杜绝了内部人员的操作安全隐患。
配置sudo命令用户行为日志审计
说明:所谓sudo命令日志审计,并不记录普通用户的普通操作。而是记录,那些执行sudo命令的用户操作。
生产场景日志审计 sudo配合syslog
安装 sudo syslog
[root@VM_141_154_centos ~]# yum install sudo syslog -y
查看安装了没
[root@VM_141_154_centos ~]# rpm -aq|egrep "sudo|rsyslog"
rsyslog-7.4.7-16.el7.x86_64
sudo-1.8.6p7-21.el7_3.x86_64 配置sudoser
[root@VM_141_154_centos ~]# echo "Defaults logfile=/var/log/sudo.log">>/etc/sudoers
查看配置
[root@VM_141_154_centos ~]# tail -l /etc/sudoers
检查语法
[root@VM_141_154_centos ~]# visudo -c
/etc/sudoers: parsed OK
配置系统日志/etc/syslog.conf
增加配置 local2.debug到/etc/syslog.conf中
[root@VM_141_154_centos ~]# echo "local2.debug /var/log/sudo.log">>/etc/rsyslog.conf
重启rsyslog服务
[root@VM_141_154_centos ~]# systemctl restart rsyslog 执行sudo操作后
[oldboy@VM_141_154_centos ~]$ sudo - root
[sudo] password for oldboy:
oldboy is not in the sudoers file. This incident will be reported.
将sudo操作记录到sudo.log中
[root@VM_141_154_centos log]# ll /var/log/sudo.log
-rw------- 1 root oldboy 111 Apr 10 16:49 /var/log/sudo.log
linux【第六篇】用户和用户管理及定时任务复习的更多相关文章
- 用户管理 之 在Linux系统中,批量添加用户的操作流程
一.阅读此文件您需要掌握的基础知识: <Linux 用户(user)和用户组(group)管理概述><用户(user)和用户组(group)配置文件详解><Linux 用 ...
- Linux系列教程(十四)——Linux用户和用户组管理之相关配置文件
前面我们介绍了软件包管理.首先介绍了rpm包的相关命令,但是我们发现直接安装rpm包会被其依赖性折磨的不行,然后解决办法是yum在线管理,通过yum命令安装rpm包能自动帮助我们解决依赖性.最后又介绍 ...
- linux 用户创建、管理、权限分配
(1)su与sudo su:通过su可以在用户之间切换,如果超级权限用户root向普通或虚拟用户切换不需要密码,什么是权力?这就是!而普通用户切换到其它任何用户都需要密码验证: sudo: sudo扮 ...
- linux用户和组管理,/etc/passwd 、/etc/shadow和/etc/group 文件内容解释
与用户相关的系统配置文件主要有/etc/passwd 和/etc/shadow,其中/etc/shadow是用户资讯的加密文件,比如用户的密码口令的加密保存等: /etc/passwd 和/etc/s ...
- linux系统用户以及用户组管理
本系列的博客来自于:http://www.92csz.com/study/linux/ 在此,感谢原作者提供的入门知识 这个系列的博客的目的在于将比较常用的liunx命令从作者的文章中摘录下来,供自己 ...
- linux入门教程(七) linux系统用户以及用户组管理
关于这部分内容,笔者在日常的linux系统管理工作中用到的并不多,但这并不代表该内容不重要.毕竟linux系统是一个多用户的系统,每个账号都干什么用,你必须了如指掌.因为这涉及到一个安全的问题. [认 ...
- java程序员菜鸟进阶(十五)linux基础入门(三)linux用户和组管理
我们大家都知道,要登录linux操作系统,我们必须要有一个用户名和密码.每一个用户都由一个惟一的身份来标识,这个标识叫做用户ID.系统中的每一个用户也至少需要属于一个"用户分组". ...
- linux内核--用户态内存管理
在上一篇博客“内核内存管理”中,描述的内核内存管理的相关算法和数据结构,在这里简单描述用户态内存管理的数据结构和算法. 一,相关结构体 与进程地址空间相关的全部信息都包含在一个叫做“内存描述符”的数据 ...
- Linux用户和用户组管理总结
Linux下和用户和用户组管理有关的配置文件: /etc/group Group account information. /etc/gshadow Secure group account info ...
随机推荐
- openjudge-4017 爬楼梯
总时间限制: 1000ms 内存限制: 65536kB 描述 树老师爬楼梯,他可以每次走1级或者2级,输入楼梯的级数,求不同的走法数 例如:楼梯一共有3级,他可以每次都走一级,或者第一次走一级,第二次 ...
- Django中的Cookie、Session、Token
Cookie : 指望着为了辨别用户身份.进行会话跟踪而存储在用户本地的数据(通常经过加密),是由服务端生成,发送给客户端浏览器,浏览器会将Cookie以key/value保存,下一请求同一网站是就发 ...
- kvm使用kickstart文件自动安装系统
假定kvm已经准备好 1.创建磁盘 qemu-img create -f qcow2 /kvm/os/vm-01.qcow2 16G 2.上传或下载安装镜像 mkdir -p /kvm/iso cd ...
- MyISAM和InnoDB索引实现对比
MyISAM索引实现 MyISAM引擎使用B+Tree作为索引结构,叶节点的data域存放的是数据记录的地址.如图: 这里设表一共有三列,假设我们以Col1为主键,则上图是一个MyISAM表的主索引 ...
- luogu2633 Count on a tree
主席树放到树上而已 #include <algorithm> #include <iostream> #include <cstdio> using namespa ...
- iframe in ipad safari
http://developer.apple.com/library/safari/#documentation/appleapplications/reference/safariwebconten ...
- Flask设计带认证token的RESTful API接口[翻译]
上一篇文章, 使用python的Flask实现一个RESTful API服务器端 简单地演示了Flask实的现的api服务器,里面提到了因为无状态的原则,没有session cookies,如果访问 ...
- POJ3246-Balanced Lineup,好经典的题,做法和HDU-I hate it 一样~~
Balanced Lineup Time Limit: 5000MS Memory Limit: 65536K Case Time Limit: 2000MS Description For ...
- HDU 4641
动态更新后缀自动机,每次不断依据当前添加的节点不断往前寻找父节点上字符串最多可出现的次数 这里为了减少运算,当父节点已经达到k次就不在往前寻找,因为之前的必然达到k次,也已经统计在内 #include ...
- PHP建立和删除目录
<?php/*linux中的文件权限filedir 用户 组 其它 rwx rwx rwx 读写执行 6 4 6 读写 读 读写 7 7 7 rw_ r__ rw_ r__ _w_ ___ r ...