zoukankan      html  css  js  c++  java
  • 用户管理下

    第1章 批量添加3个用户stu01-stu03,设置密码为123456.

    1.1 预备知识

    前的产生的命令通过管道后可以交给bash运行

    [root@znix ~]# echo pwd |bash
    /root

    1.2 命令的样子

    目标命令的形状,想让命令变成这个样子执行。

    useradd stu01 ;echo 123456|passwd --stdin stu01
    useradd stu02 ;echo 123456|passwd --stdin stu02
    useradd stu03 ;echo 123456|passwd --stdin stu03

    1.3 命令的生成

    1.3.1 第一步 生成名字

    [root@znix ~]# echo stu{01..3}|xargs -n1
    stu01
    stu02
    stu03

    1.3.2 第二步 拼接出想要的形状

    两条命令之间用 表示前面的命令执行了执行后面的

    两条命令之间用 &&  表示前面的执行对了执行后面的

    [root@znix ~]# echo stu{01..3}|xargs -n1|sed -r 's#(.*)#useradd 1;echo 123456|passwd --stdin 1#g'
    useradd stu01;echo 123456|passwd --stdin stu01
    useradd stu02;echo 123456|passwd --stdin stu02
    useradd stu03;echo 123456|passwd --stdin stu03

    1.3.3 第三步 交给bash执行

    使用bash执行的时候,要先确认命令是正确的。

    [root@znix ~]# echo stu{01..3}|xargs -n1|sed -r 's#(.*)#useradd 1;echo 123456|passwd --stdin 1#g'|bash
    Changing password for user stu01.
    passwd: all authentication tokens updated successfully.
    Changing password for user stu02.
    passwd: all authentication tokens updated successfully.
    Changing password for user stu03.
    passwd: all authentication tokens updated successfully.

    1.3.4 第四步 检查结果

    [root@znix ~]# grep "stu" /etc/passwd
    stu01:x:889:889::/home/stu01:/bin/bash
    stu02:x:890:890::/home/stu02:/bin/bash
    stu03:x:891:891::/home/stu03:/bin/bash
    
    [root@znix ~]# grep "stu" /etc/shadow
    stu01:$6$7XjTYZn2$aVGsKaJDjKD0eKlRoWkxbKePEFF0Vopot5nw1dxCmzaeQ3ZYDDhmuoKHif9avWb/l06xzeUfj2I6HMPOBHr0e.:17422:0:99999:7:::
    stu02:$6$6tLZy0ua$erjJFSLK7qiYgXKE3fkLyjAgsY23elGDiUvJwHHrkw9kUTQbGeDqQAc6X1MXmuv2pwQY9qbpO7DAICxgDXh0Y0:17422:0:99999:7:::
    stu03:$6$a3FCqg//$WS9kjhD62naNSl1oRupYO/2DTNRN38j97wVSz4oNvlqAAYgZe.UzcDdUOx/DSpW93Q070Sdmmls7t9RBDR82D1:17422:0:99999:7:::

    1.3.5 第五步 密码验证

    [root@znix ~]# su - stu01
    [stu01@znix ~]$ su - stu02
    Password:
    
    [stu02@znix ~]$ su - stu03
    Password:
    
    [stu03@znix ~]$ su - stu01
    Password:
    
    [stu01@znix ~]$

    1.4 简化命令

    1.4.1 预备知识

    &表示匹配前面所找到的内容

    [root@znix ~]# echo 123456|sed 's#.*#<&>#g'
    <123456>
    
    [root@znix ~]# echo 123456|sed 's#.#<&>#g'
    <1><2><3><4><5><6>

    1.4.2 简化命令

    上面的命令就可以简写,而且& 属于基础正则,sed可以直接使用。

    [root@znix ~]# echo stu{01..3}|xargs -n1|sed  's#.*#useradd & ;echo 123456|passwd --stdin & #g'
    useradd stu01 ;echo 123456|passwd --stdin stu01
    useradd stu02 ;echo 123456|passwd --stdin stu02
    useradd stu03 ;echo 123456|passwd --stdin stu03

    第2章 用户管理

    2.1 相关命令

    2.1.1 chown  修改文件的所有者或属组

     -R    递归修改文件或目录的的所有者或组(很危险)

    [root@znix tmp]# ll data/
    total 4
    drwxr-xr-x 78 root root 4096 Aug 24 10:28 etc
    [root@znix tmp]# chown -R znix.znix data/
    [root@znix tmp]# ll data/
    total 4
    drwxr-xr-x 78 znix znix 4096 Aug 24 10:28 etc

    2.1.2 groupadd 添加用户组

    -g 指定用户组的gid

    [root@znix ~]# groupadd mysql -g 999
    [root@znix ~]# grep mysql /etc/group
    mysql:x:999:

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

    2.2.1 注意 useradd -g -u

    -g 指定用户组 gid这里指定gid的时候,这个组必须是存在的

    2.2.2 先创建组,再进行创建用户,指定gid

    [root@znix ~]# groupadd mysql -g 999
    [root@znix ~]# useradd -u 999 -g mysql -s /sbin/nologin -M mysql
    [root@znix ~]# id mysql
    uid=999(mysql) gid=999(mysql) groups=999(mysql)

    2.2.3 默认添加的时候uidgid相同

    [root@znix ~]# useradd -u 999 -s /sbin/nologin -M mysql
    [root@znix ~]# id mysql
    uid=999(mysql) gid=999(mysql) groups=999(mysql)

    2.3 用户查询命令

    2.3.1 w 显示谁远程登陆了系统,在做什么

    查看用户是以什么身份登陆到系统。

    [root@znix ~]# w
     10:25:35 up  1:02,  2 users,  load average: 0.00, 0.00, 0.00
    USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
    root     tty1     -                10:37    2:21m  0.00s  0.00s -bash
    root     pts/0    10.0.0.1         09:23    0.00s  0.12s  0.00s w
    root     pts/1    10.0.0.1         09:23    1:01m

           登陆是指使用 ssh 远程里连接时使用的用户。登陆后切换用户不会显示。

           本地用户登陆 FROM 显示为tty登陆

    2.3.2 last 显示系统用户的登陆信息

    last 命令与 /var/log/secure 文件记录的信息大致相同,文件更为详细

    [root@znix ~]# last
    root     tty1                          Wed Sep 13 10:37   still logged in  
    root     pts/1        10.0.0.1         Wed Sep 13 09:23   still logged in  
    root     pts/0        10.0.0.1         Wed Sep 13 09:23   still logged in 

    last保存的文件位置:

    [root@znix ~]# ll /var/log/wtmp /var/log/btmp
    -rw-------  1 root utmp   1536 Sep 13 10:37 /var/log/btmp
    -rw-rw-r--. 1 root utmp 122496 Sep 13 10:37 /var/log/wtmp

    2.3.3 lastlog  显示系统中用户最近一次的登陆信息

    lastlog命令会显示相同中所有的用户,最近一次登陆状态

    [root@znix ~]# lastlog
    Username         Port     From             Latest
    root             tty1                      Wed Sep 13 10:37:46 +0800 2017
    bin                                        **Never logged in**

    lastlog保存文件位置

    [root@znix ~]# ll /var/log/lastlog
    -rw-r--r--. 1 root root 292000 Sep 13 10:37 /var/log/lastlog

    2.3.4 查看日志的方式

    尽量精确的查找,避免使用cat/vim 等命令就行查看。

    tail /head
    less
    grep

    第3章 sudo 临时让用户获得root权限

    3.1 su su - 的区别

     -   su命令的参数 相当于 -, -l, --login  

           在切换用户的时候,更新与用户有关的环境变量

    使用su 进行用户切换的时候不会切换环境变量

    [root@znix ~]# su znix  
    [znix@znix root]$ env |grep root
    PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
    MAIL=/var/spool/mail/root
    PWD=/root

    使用su - 进行用户切换的时候会切换环境变量

    [root@znix ~]# su - znix
    [znix@znix ~]$ env |grep root
    [znix@znix ~]$

    3.2 znix用户查看日志的权限。

    [root@znix ~]# ll /var/log/secure
    -rw------- 1 root root 25317 Sep 13 15:21 /var/log/secure

    3.2.1 其他方法(不安全)

    1、修改文件的归属(不可取)

    2、修改文件的权限,为文件添加上其他用户可读权限(不安全)

    3、为命令特殊权限 suid (运行命令的时候 相当于是命令的所有者)其他的用户也都可用,不安全。

    3.2.2 使用sudo znix用户临时获得root权限

    [znix@znix ~]$ sudo tail -1  /var/log/secure
    Sep 13 15:59:05 znix sudo:     znix : TTY=pts/0 ; PWD=/home/znix ; USER=root ; COMMAND=/usr/bin/tail -1 /var/log/secure

    3.3 sudo权限的配置

    3.3.1 查看当前有什么特权

    [znix@znix ~]$ sudo -l
    Matching Defaults entries for znix on this host:
        ……
    User znix may run the following commands on this host:
        (ALL) NOPASSWD: ALL

    3.3.2 第一次使用sudo的时候会提示设置密码,并告知没有可用命令。

    [znix@znix ~]$ sudo -l
     
    We trust you have received the usual lecture from the local System
    Administrator. It usually boils down to these three things:
    
        #1) Respect the privacy of others.
    
        #2) Think before you type.
    
        #3) With great power comes great responsibility.
    
    [sudo] password for znix:  设置密码为znix用户
    Sorry, user znix may not run sudo on znix.
    
    抱歉, 用户 znix 没有 可以使用的  sudo 在znix

    3.3.3 znix用户添加sudo 命令

    visudo  进入编辑即编辑 /etc/sudoers 文件。直接编辑该文件需要强制保存。

    92gg   92行,放在这里是为了有个对比

    i      进行编辑 

         90 ## Allow root to run any commands anywhere

         91 root    ALL=(ALL)       ALL

         92 znix    ALL=(ALL)       /bin/ls, /bin/touch

    3.3.4 查看现在znix用户的sudo权限

    [znix@znix ~]$ sudo -l
    [sudo] password for znix:
    Matching Defaults entries for znix on this host:
     ……

     znix用户可以以root用户的身份运行下面的命令

    User znix may run the following commands on this host:
        (ALL) /bin/ls, (ALL) /bin/touch

    3.3.5 测试znix用户的sudo权限

    znix用户再/root 目录中可以进行操作.

    [znix@znix ~]$ ls /root/
    ls: cannot open directory /root/: Permission denied
    
    [znix@znix ~]$ sudo ls /root/
    1       dir035   install.log         clsn.txt       test.txt
    123     ett.txt  install.log.syslog  passwd.txt       test.txt-hard
    
    [znix@znix ~]$ sudo touch /root/znix.txt
    [znix@znix ~]$ sudo ls /root/znix.txt
    /root/znix.txt

    3.3.6 znix用户 sudo所有命令

    [root@znix ~]# grep znix /etc/sudoers
    znix    ALL=(ALL)       ALL

    实例3-1        使用sudo 命令 切换到root用户不需要密码

    [root@znix ~]# su - znix
    [znix@znix ~]$ sudo su -
    [root@znix ~]#

    注意: sudo ALL 权限很危险

        ##给自己使用。

        ##给其他的用户使用:需要用什么给什么,不能给过多的权限.保证安全。

    3.3.7 znix用户 sudo所有命令,并且使用的时候不用密码

    查看znix用户拥有的sudo 命令 

    [znix@znix ~]$ sudo -l|tail -2
    User znix may run the following commands on this host:
        (ALL) NOPASSWD: ALL

           查看配置文件 /etc/sudoers

    [znix@znix ~]$ sudo grep znix /etc/sudoers
    #znix    ALL=(ALL)      /bin/ls, /bin/touch
    #znix    ALL=(ALL)       ALL
    #znix    ALL=(ALL)       /bin/*
    znix    ALL=(ALL)       NOPASSWD: ALL

    第4章 行为日志审计

    4.1 行为日志审计的概念

     

    4.2 商业产品,硬件产品

    齐治的堡垒机

    4.3 python开源产品

    getone web跳板机

    jump sever

    crazyEYE

    4.4 shell跳板机

    第5章 在系统中安装一个软件 htop

    5.1 方法一 yum 安装

    5.1.1 先配置上 epel 软件源

    EPEL yum的一个软件源,里面包含了许多基本源里没有的软件。

     

    [root@znix ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo

     

    5.1.2 使用 yum 即可安装

    [root@znix ~]# yum install htop -y
  • 相关阅读:
    Asynchronous AOF fsync is taking too long (disk is busy?). Writing the AOF buffer without waiting for fsync to complete, this may slow down Redis.
    DHCP "No subnet declaration for xxx (no IPv4 addresses)" 报错
    Centos安装前端开发常用软件
    kubernetes学习笔记之十:RBAC(二)
    k8s学习笔记之StorageClass+NFS
    k8s学习笔记之ConfigMap和Secret
    k8s笔记之chartmuseum搭建
    K8S集群集成harbor(1.9.3)服务并配置HTTPS
    Docker镜像仓库Harbor1.7.0搭建及配置
    Nginx自建SSL证书部署HTTPS网站
  • 原文地址:https://www.cnblogs.com/clsn/p/7639786.html
Copyright © 2011-2022 走看看