1.5 -用户管理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1.5 -用户管理相关的知识,希望对你有一定的参考价值。

1.5

                          用户管理

内容:

1. 设置命令和脚本开机自启动

2. 用户相关的配置文件和目录

3. 用户管理命令

4. sudo临时为普通用户提权

5. yum相关知识

 

让一个命令或脚本开机自启动的方法

1) 脚本放在/etc/rc.local

2) chkconfig

让一个命令或脚本用chkconfig开机自启动的方法

(1) 这个脚本 存放在 /etc/init.d下面

(2) 脚本要有x(执行)权限

(3) 脚本开始必须有可以被chkconfig识别的标记

(4) 把脚本加入到chkconfig管理

[[email protected] init.d]# cat gao.sh                      脚本存放在/etc/init.d下

date +%F

[[email protected] init.d]# chmod +x gao.sh                   给脚本x权限

[[email protected] init.d]# ls -l gao.sh

-rwxr-xr-x. 1 root root 9 Jan  5 02:44 gao.sh

[[email protected] init.d]# chkconfig --add gao.sh              将脚本添加自启动

service gao.sh does not support chkconfig                 报错:chkconfig命令不支持

                        脚本必须有可以被chkconfig识别的标记

[[email protected] init.d]# head /etc/init.d/iptables         找chkconfig管理命令的特点(以iptables为例)

#!/bin/sh

#

# iptables Start iptables firewall

#

# chkconfig: 2345 08 92                               将此行添加至脚本

# description: Starts, stops and saves iptables firewall

[[email protected] init.d]# cat gao.sh

date +%F

# chkconfig: 2345 08 92         - -del             删除自启动任务

[[email protected] init.d]# chkconfig - -add gao.sh          添加自启动任务

[[email protected] init.d]# chkconfig |grep "gao.sh"          查看

gao.sh          0:off 1:off 2:on 3:on 4:on 5:on 6:off

 # chkconfig:  2345              08            92

           2345运行级别     启动顺序      关闭顺序

 

小结
1.必须放在/etc/init.d 并且有执行权限
2.开头要有chkconfig要求格式 
# chkconfig: 2345 99 99  (系统命令启动顺序有要求,自己创建的一般没事)
3.添加到chkconfig管理 

 

 

忘记密码系列

root用户忘记密码如何解决

1. 单用户模式

http://blog.51cto.com/lidao/1932128

2. 救援模式

普通用户忘记密码

1. root用户修改

2. /etc/passwd 把第二列密码占位符删掉

 

用户相关的配置文件

如何知道用户属于那些组

id

如何知道一个用户组里有哪些用户

cat  /etc/passwd

 

与用户有关的目录

/etc/skel 新用户老家的模板

创建一个用户 useradd oldboy

             cp  /etc/skel/*   /home/oldboy   系统相当于会执行这个操作

ls -la  /etc/skel

~/.bash_logout          用户退出系统的时候 Ctrl +d 会运行这个文件的内容

~/.bash_profile          作用同/etc/profile

~/.bashrc              作用同/etc/bashrc

 

扩展:

1. sh bash区别

[[email protected] ~]# useradd test -s /bin/sh

[[email protected] ~]# su - test

-sh-4.1$

2. 查看隐藏文件

[[email protected] ~]# cd /etc/skel/

[[email protected] skel]# ls .[^.]*

.bash_logout  .bash_profile  .bashrc

3. CentOs6.9下的shell

[[email protected] skel]# cat   /etc/shells

/bin/sh

/bin/bash

/sbin/nologin

/bin/dash

/bin/tcsh

/bin/csh

 

故障:

1.如下登录环境故障的原因及解决办法

-bash-4.1# cp /etc/skel/.bash* ~

-bash-4.1# logout

原因:这个用户家目录下面与环境变量有关的文件 没了

 

模拟:

[[email protected] ~]# rm -rf .bash*

[[email protected] ~]# logout

[[email protected] /]# su - root

-bash-4.1#

解决:

[[email protected] ~]#cp  /etc/skel/.bash*  ~

[[email protected] ~]#logout

[[email protected] /]#su - oldboy

[[email protected] ~]$

2.oldboy用户的登录环境故障,复制家目录模板权限不够

技术分享图片 

用户管理命令:

用户相关命令

useradd  -u 指定用户的uid

     -s 指定用户的使用shell     /bin/bash 默认    /sbin/nologin 添加虚拟用户

     -M  不创建家目录  (虚拟用户)

     -g  指定用户属于的组

     -c  指定用户说明信息

 

userdel    删除用户   默认不删除用户家目录和邮箱

  -r   连窝端  删除与用户有关的所有信息(家目录)

   在工作中,不要删除用户,可能会误删除用户数据

   方法:在/etc/passwd 对应用户前加注释#

 

usermod   修改用户信息(这个用户已存在)         --uaeradd用法差不多

      -c   指定说明信息

      -s   修改用户登录shell

      -g   属于的家庭  用户的名字  --基本组

      -G   属于多的家庭            --附加组

 

passwd  +用户名   修改用户密码

    --stdin    从管道中获取用户的密码 (非交互式)

   echo 123456 |passwd --stdin  oldboy     非交互式

企业场景:用户及密码管理

1.密码复杂  12位以上字母数字特殊字符

2.保存密码

keepass      软件,密码存放在本地,,本地保险柜

lastpass      在线版本,,银行的保险柜

3.大的企业用户和密码统一管理(相当于活动目录(AD),openldap)

4.动态密码:动态口令,第三方提供自己的开发也很简单

给重要的文件或命令做一个指纹

文件的内容变化 === 指纹变化

文件的内容变化 === 指纹变化

(1)给这个文件创建指纹

md5sum oldboy.txt

(2)如何快速的对比指纹

1)把你的指纹记录下来    md5sum oldboy.txt >finger.txt     finger.txt是指纹库

2)如何进行对比          md5sum -c finger.txt

(3)定时任务+md5sum定时检查

 

 

chown    修改文件或目录的所有者和属组    可以只修改所有者或属组,,也可以同时修改

-R  递归修改文件或目录的所有者和用户组

 

 

实例1-1 添加一个用户alex指定uid888 禁止用户登录系统 不创建家目录,用户说明信息为nologin CentOs

[[email protected] skel]# useradd alex -u 888 -s /sbin/nologin -M -c "nologin CentOs"

[[email protected] skel]# tail -1 /etc/passwd

alex:x:888:888:nologin CentOs:/home/alex:/sbin/nologin

 

实例1-2 企业场景:用户及密码管理   --指纹

方法:给重要的文件或命令,做一个指纹

原理:文件内容变化,指纹就会变化

步骤:

1. 创建指纹

[[email protected] oldboy]# touch gao.txt

[[email protected] oldboy]# md5sum gao.txt                    为文件创建指纹

d41d8cd98f00b204e9800998ecf8427e  gao.txt

2. 记录指纹

[[email protected] oldboy]# md5sum gao.txt >police.log           将指纹记录到指纹库中

[[email protected] oldboy]# echo 'I am a student'>gao.txt        改变文件内容

[[email protected] oldboy]# md5sum gao.txt                       再生成指纹

553ae6494e59791c64771d6e4ac36786  gao.txt

3. 根据指纹库指纹对比                                   -c = = = - -check

[[email protected] oldboy]# md5sum -c police.log                 指纹与指纹库对比,不匹配

gao.txt: FAILED

md5sum: WARNING: 1 of 1 computed checksum did NOT match

[[email protected] oldboy]# md5sum gao.txt>police.log            将新指纹输入到指纹库

[[email protected] oldboy]# md5sum -c police.log                 指纹与指纹库对比,匹配

gao.txt: OK

 

[[email protected] oldboy]# >gao.txt                             再次清空文件

[[email protected] oldboy]# echo 'd41d8cd98f00b204e9800998ecf8427e  gao.txt'>police.log    

[[email protected] oldboy]# md5sum  -c police.log    将最开始指纹输入到指纹库,对比,匹配

gao.txt: OK

文件的指纹随内容的变化而变化

用户组相关

groupadd            创建用户组

    -g  指定用户组的gid

:添加一个虚拟用户用户 mysql 指定用户的uid gid都是999  

linux中新创建用户默认uid=gid

[[email protected] oldboy]# useradd -u 666  -s /sbin/nologin -M mysql

[[email protected] oldboy]# id mysql

uid=666(mysql) gid=666(mysql) groups=666(mysql)

 

用户查询命令

id      1.查看用户uid,gid        2.查看用户是否存在          3.查看用户属于哪个组

 

w   1.显示系统中已经远程登录的用户   在干什么       (直接登录     切换用户不算)

w每部分的含义

[[email protected] oldboy]# w                    最近1分钟  5     15  分钟

 06:36:45 up 22:31,  2 users,  load average: 0.00, 0.00, 0.00

技术分享图片 

错误      25 column window is too narrow       窗口太小

 

查看系统性能命令

w

uptime

top           1.-P /默认按CPU排序         2.-M 按内存使用率排序

htop         增强版的top命令

iotop          显示系统中每个进程使用的磁盘io

iftop          显示系统网络流量

ps  aux       cpu与内存的使用率      默认不排序

和sort -rnk2搭配         增加sort -h参数

 sort      -h   以人类可读的形式进行排序

-r   倒序/逆序                  -n   把内容当做数字  进行排序

-k   指定某一列进行排序

例:查看占地大的文件或目录并按大小顺序排序

du  -sh /*|sort  -rhk1

last          哪个用户  在什么时候  从哪里  远程登陆你的系统  用户登录的信息

lastlog       显示Linux中所有用户最近一次远程登录的信息

模拟占用CPU

dd if=/dev/zero of=/tmp/100 bs=1k count=10000000

查看占地大的文件或目录并按大小顺序排序        

 du -sh /*|sort -rhk1

扩展:

history     -c     清除命令行 历史记录

      历史记录还被保存在日志里

 

总结:

1. 面试题-让一个脚本开机自启动?

2. 如何让一个脚本被chkconfig管理

3. 与用户有关的文件和目录

4. 案例提示:-bash-4.1$原因及解决过程

5. 一堆命令

6. 添加虚拟用户

7. 查看系统性能命令  系统管理命令  进程管理命令

 

题目:

root用户密码忘记如何解决

1.单用户模式 √

http://blog.51cto.com/lidao/1932128

2.救援模式

 

2.批量添加3个用户stu01,stu02....stu10,并设置8位密码(禁止使用for,while等循环)

批量添加10个用户stu01,stu02....stu10,并设置8位随机密码(禁止使用for,while等循环)

sudo 临时让用户获得root权限

/root目录给其他用户加上权限,所有用户都可以查看root目录,权限太大

cat命令加上suid特殊权限

sudo

sudo 让普通用户临时拥有root权限

visudo       root授予尚方宝剑

sudo  -l     普通用户查看尚方宝剑

 

:授予oldboy用户ls,touch命令

root用户操作

visudo    ==vim /etc/sudoers                                   visudo命令授予普通用户权限

92gg                                                          切换到文件的第92行

oldboy  ALL=(ALL)    /bin/ls,/bin/touch,/usr/bin/vim           授予用户命令权限

ALL授予所有权限                         oldboy前加%    表示授予oldboy组权限                         

oldboy用户操作  

sudo  -l                                                     查看拥有的尚方宝剑

输入oldboy密码   

sudo  ls  /root                                              使用尚方宝剑

 

sudo 权限的一些注意

vim权限的隐患--推翻root

1./etc/passwd把root  密码占位符x删去,普通用户就可以随意登录root

2.修改sudo 配置文件

被授权用户使用权限不需要密码

oldboy  ALL=(ALL)      NOPASSWD: /bin/ls,/bin/touch,/usr/bin/vim

               NOPASSWD ; (冒号空格)

sudo  -k  清除密码缓存

企业中进制root用户远程服务器

visudo 授予oldboy用户权限

管理员登录oldboy用户

sudo su - 切换到root身份

授权某一目录所有命令

oldboy  ALL=(ALL)  /bin/*

授权所有 ---排除某一个命令

oldboy  ALL=(ALL)   /bin/*, ! /bin/vi

su      su-  区别

su         切换用户的时候不更新环境变量

    env       显示当前的环境变量

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

MAIL=/var/spool/mail/root

PWD=/root

su  -        切换到root用户并更新环境变量

MAIL=/var/spool/mail/oldboy

PATH=/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oldboy/bin

PWD=/home/oldboy

 

记录下用户操作 行为 /日志审计

分类:

1.齐治的堡垒机:商业产品

2.gateone web 跳板机

3.python开发的开源的跳板机产品

开源跳板机(堡垒机) Jumpserver部署详解

alex写的crazyEYE

4.shell跳板机

 

跳板机/堡垒机

日志,行为记录在本地  --谁什么时间对服务器进行什么命令

跳板机官网 (了解)

http://liftoffsoftware.com/Products/GateOne

http://demo.jumpserver.org

 

 

跳板机可以实现 sudo的功能

 

yum相关知识

特点:

yum从网上下载

yum下载软件的地方===yum(软件仓库)

 

yum     repolist            查看系统所有的yum

系统默认(三个)

base                       CentOS-6 - Base                                        6,706

extras                     CentOS-6 - Extras                                          47

updates                    CentOS-6 - Updates                                       857

 

增加一个新的yum

epel系统yum源的扩展   Extra Packages for Enterprise Linux 6 - x86_64                 12,447

增加epel源方法:

mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup

mv /etc/yum.repos.d/epel-testing.repo /etc/yum.repos.d/epel-testing.repo.backup

备份

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo

下载

 

epel源地址

http://mirrors.aliyun.com/help/epel                  阿里云

https://mirror.tuna.tsinghua.edu.cn/help/epel/           清华

http://ftp.sjtu.edu.cn/fedora/epel/                  上海交大

 

 

yum配置文件所在目录:   /etc/yum.repos.d/

问题:有时候yum安装不流畅,卡顿

1. 网络问题,,

2. epel源是阿里

 base   extra  updates  默认是国外的

 

解决:

  更新默认yum源   到阿里找centos的软件包

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo

 

小结:

1. yum(软件仓库)

2. 如何更新base源    如何添加epel

3. 常见的yum源  阿里  清华  网易 搜狐

 

直接下载软件

https://mirrors.aliyun.com/centos/6.9/os/x86_64/Packages/lrzsz-0.12.20-27.1.el6.x86_64.rpm

 

 

 

 


以上是关于1.5 -用户管理的主要内容,如果未能解决你的问题,请参考以下文章

Math.round(-1.5) 等于多少?

5V1.5A适配器芯片方案

5V1.5A适配器芯片方案

AngularJS(1.5)依赖注入模型类(打字稿)

将 Android 版本 2.3 转换为 1.5

Django 1.5 版:'url' 需要一个非空的第一个参数。 Django 1.5 中的语法改变