用户管理下

第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 默认添加的时候uid与gid相同

[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 oldboyedu-40.

抱歉, 用户 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         oldboy.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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏杨建荣的学习笔记

巧用shell生成数据库检查脚本 (74天)

在生产环境中需要部署大量的数据变更。对于新增的表,需要注意权限和同义词等。但是手动去检查这些变更是否生效就很麻烦。而且也不易维护,比如写好了一个脚本,可能在过一...

2917
来自专栏上善若水

041android初级篇之apk签名key keystore格式转pk8+x509.pem

常用的android的签名工具有两个即jarsigner 和apksigner。这两种使用的key格式不一样,keystore格式转pk8+x509.pem

1184
来自专栏ml

c/c++----网站及其后门(CGI应用程序)

      C/C++学习到这儿,结合自己曾经学过的javasweb知识,现在让我们来看看,如何做一个CGI程序吧!       首先了解一下啥子叫CGI  :...

3034
来自专栏颇忒脱的技术博客

Spring Cloud Config配置文件最佳实践

大多数Spring Cloud项目都会使用Spring Cloud Config来管理应用启动时的配置文件,同时开发人员面临着多样化的程序启动方式:操作系统进程...

162
来自专栏乐沙弥的世界

Linux下基于源码方式安装MySQL 5.6

    MySQL为开源数据库,因此可以基于源码实现安装。基于源码安装有更多的灵活性。也就是说我们可以针对自己的硬件平台选用合适的编译器来优化编译后的二进制代码...

711
来自专栏乐沙弥的世界

ORA-00119,ORA-00132 错误处理

最近系统启动时,收到了ORA-00119以及ORA-00132的错误,该错误实际上跟LISTENER有关,通常的处理办法是将spfile转储为pfile然后从...

742
来自专栏我的博客

TP入门第五天

1、数据库连接 这里说下为和用到配置都是返回数组,$arr=include(‘config.php’);然后你打印出来看看! 配置文件(有两种连接方法) 第一种...

2914
来自专栏生信宝典

Airflow配置和使用

Airflow能做什么 Airflow是一个工作流分配管理系统,通过有向非循环图的方式管理任务流程,设置任务依赖关系和时间调度。 Airflow独立于我们要运行...

1.1K6
来自专栏尚国

利用PowerUpSQL攻击SQL Server实例

这篇博客简述如何快速识别被第三方应用使用的SQL Server实例,该第三方软件用PowerUpSQL配置默认用户/密码配置。虽然我曾经多次提到过这一话题,但是...

573
来自专栏大脸仔的专栏

基于Discuz的Mysql云数据库搬迁实例解析

最近在尝试将创梦者(cm-z.net)数据库搬迁到腾讯云数据库。但是直接导出,然后再导入数据库出现如下错误。下面我就详细阐述下,面对数据库导入出现错误时我的解决...

1.1K1

扫码关注云+社区