目录

1.文件管理-压缩与打包

2.用户管理

  用户怎么查

  如何创建用户

  创建的用户信息都存储在哪?

  用户存储密码的文件

  如何为用户设定密码?

3.用户组

4.用户提权相关

5.Extra:额外补充

文件管理-压缩与打包

压缩包的两种格式:zip和tar.gz

1.什么是压缩包?

压缩包是一个特殊的文件,将多个文件和目录整合在一个文件中。

2.为什么要使用压缩包?

1.便于传输

2.压缩后的体积会变小

3.实现打包与压缩有哪些工具

windows: zip和tar

linux:zip和tar.gz

4.压缩包如何实现?

1.gzip:仅针对文件

gzip /etc/yum.repo.d/CentOS-Base.repo  # 压缩,原文件不见了

zcat  /etc/yum.repo.d/CentOS-Base.repo.gz # 查看

gzip -d /etc/yum.repo.d/CentOS-Base.repo.gz # 解压

2.zip:针对文件和目录

yum install zip -y # 安装一下zip

zip -r yum_local.zip  /etc/yum.repo.d # 压缩

yum install unzip -y # 安装一下unzip

unzip yum_local.zip -d /opt # 解压到/opt

3.tar.gz

'''
c:创建
z:压缩类型
f:指定文件名称
x:自动识别文件类型
''' tar czf etc.tar.gz /etc /home/ # 压缩 tar xf etc.tar.gz # 解压 tar xf etc.tar.gz -C /mnt/ /# 指定解压到/mnt/目录

用户管理

1.什么是用户?

指能够正常登陆操作系统

2.为什么要有用户?

1.进程在运行时,需要依赖一个特定用户的身份,才可以正常的运行

2.服务器可能会有多个用户,root权限太大,需要创建一些普通用户

3.用户分类

类型          名称                ID编号
超级管理员      root                   0
系统用户                            1~999 <--为系统正常运转而使用的用户 [ 系统用户 | 虚拟用户 ]
普通用户                            1000+ <--能够正常登陆系统的用户 [ 普通用户 ]

进程能够以什么样的方式去访问一个文件和目录,取决于进程运行的“用户身份”对该文件或目录是否拥有对应的权限。

4.用户怎么查

id root # 查看root用户的信息
'''uid=0(root) gid=0(root) 组=0(root)'''

5.如何创建用户

useradd oldboy # 创建用户
id oldboy # 查看oldboy用户的信息
'''uid=1001(oldboy) gid=1001(oldboy) 组=1001(oldboy)'''

6.创建的用户信息都存储在哪?

存储用户信息以冒号为分隔符,总共有7列

cat /etc/passwd # 查看所有用户信息
root:x:0:0:root:/root:/bin/bash
oldboy:x:1001:1001::home/oldboy:/bin/bash

存储用户信息以冒号为分名称隔符,总共有7列

第一列:用户

第二列:密码占位符,密码存储在/etc/shadow

第三列:用户的UID

第四列:用户的GID

第五列:描述信息 commit

第六列:用户的家目录

第七列:用户登录的bash类型

7.用户存储密码的文件

cat /etc/shadow

8.详细了解下创建用户的一些个参数

-u: 指定用户的UID

-g: 指定用户的基本组 ( 不指定,默认创建与用户同名的组 )

-G: 指定附加组 ( 干爹 )

-c: 指定注释信息

-s: 指定登录的bash类型,默认是 /bin/bash

-r: 指定系统用户

-M: 不创建用户的家目录

例子1

#1.创建oldboyedu用户,UID5001,基本组students,附加组sa 注释信息:2019 new student,登陆shell:/bin/bash
[root@oldboy-pythonedu ~]# groupadd students
[root@oldboy-pythonedu ~]# groupadd sa
[root@oldboy-pythonedu ~]# useradd oldboyedu -u 5001 -g students -G sa -c "2020 new student" -s /bin/bash

例子2

#2.创建mysql系统用户,-M不建立用户家目录 -s指定nologin使其用户无法登陆系统
[root@oldboy-pythonedu ~]# useradd mysql -r -M -s /sbin/nologin

9.如何为用户设定密码?

  1.简单:容易破解

  2.复杂:不好记忆

  建议密码使用工具:lastpass --->windows mac android ios

设定密码的方式

# 交互式:
passwd [username] # 非交互式:
[root@oldboy-pythonedu ~]# echo "12" | passwd --stdin root #固定密码
[root@oldboy-pythonedu ~]# echo $RANDOM | md5sum | cut -c 2-10 | tee 1.txt |passwd --stdin root # 随机密码

批量创建用户,以及设定随机密码

[root@oldboy-pythonedu ~]# cat useradd_2.sh
#!/usr/bin/bash read -p "请输入你要创建的用户名称: " User
read -p "请输入你要创建的用户数量: " Number #1.如何批量创建用户
for i in $(seq $Number)
do
user_name=$User-$i
pass=$(echo $RANDOM | md5sum | cut -c 2-10) # 判断用户是否存在,如果存在则不创建
id $user_name &>/dev/null
if [ $? -eq 0 ];then
continue
else
# 创建用户
useradd $user_name
# 设定密码
echo "$pass" | passwd --stdin $user_name &>/dev/null
echo "Username: $user_name Password: $pass ok.."
echo "Username: $user_name Password: $pass ok.." >> user_password.txt
fi
done

删除用户

userdel -r old-23 # 删除用户
'''不建议加-r:因为很多情况下开发使用的用户家目录下有很多软件和配置文件'''

用户组

1.组基本概念

便于管理

2.组的分类

主组(所属组):当创建一个用户时,如果不指定主组,会默认创建一个同名的组

附加组:创建用户的时候,可以指定我想加入的附加组,此时用户就可以具备附加的组的权限

主组只能有一个,附加组可以有很多个

3.创建组

-g:指定gid,默认不指定,则从1000+开始

groupadd -g 5005 devops

4.删除组

groupdel devops
groupdel students
userdel -r oldboyedu
groupdel students

用户提权相关

1.su切换身份

# 需要知道用户的密码,才可以切换
su -root # 输入root的密码

问题:

  1.不希望给开发root的权限,容易造成故障

  2.不给开发权限,有些任务它需要root权限

2.sudo提权

1.快速给用户分配一个sudo的权限

usermod -G wheel oldxu # 添加用户到组里
echo "123" | passwd --stdin oldxu # 给用户设置密码

2.验证权限

yum install wget -y # 您需要root权限才能执行此命令
sudo yum install wget -y #

3.给不同用户分配不同权限

需求:给公司的运维部门分配一些权限,给开发部门分配一些权限

yum install wget -y # 您需要root权限才能执行此命令
sudo yum install wget -y #

1.定义组名称(sudo里面虚拟的)

User_Alias DEV = kaifa1,kaifa2
User_Alias OPS = ops1,ops2

2.定义权限

Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient, /usr/bin/net, /sbin/iptables, /usr/bin/rfcomm, /usr/bin/wvdial, /sbin/iwconfig, /sbin/mii-tool

## Installation and management of software
Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/up2date, /usr/bin/yum ## Services
Cmnd_Alias SERVICES = /sbin/service, /sbin/chkconfig, /usr/bin/systemctl start, /usr/bin/systemctl stop, /usr/bin/systemctl reload, /usr/bin/systemctl restart, /usr/bin/systemctl status, /usr/bin/systemctl enable, /usr/bin/systemctl disable ## Storage
Cmnd_Alias STORAGE = /sbin/fdisk, /sbin/sfdisk, /sbin/parted, /sbin/partprobe, /bin/mount, /bin/umount ## Processes
Cmnd_Alias PROCESSES = /bin/nice, /bin/kill, /usr/bin/kill, /usr/bin/killall

3.将用户组与权限进行绑定

root    ALL=(ALL)       NOPASSWD:ALL  #可以执行所有的命令,并且无需输入密码
DEV ALL=(ALL) NETWORKING,SOFTWARE,SERVICES
OPS ALL=(ALL) NETWORKING,SOFTWARE,SERVICES,PROCESSES,STORAGE

4.创建用户并设置密码

[root@oldboy-pythonedu ~]# useradd kaifa1
[root@oldboy-pythonedu ~]# useradd kaifa2
[root@oldboy-pythonedu ~]# useradd ops1
[root@oldboy-pythonedu ~]# useradd ops2
[root@oldboy-pythonedu ~]# echo "1" | passwd --stdin kaifa1
[root@oldboy-pythonedu ~]# echo "1" | passwd --stdin kaifa2
[root@oldboy-pythonedu ~]# echo "1" | passwd --stdin ops1
[root@oldboy-pythonedu ~]# echo "1" | passwd --stdin ops2

5.验证开发的权限和运维的权限是否不一致

sudo -l

# 用户 kaifa1 可以在 oldboy-pythonedu 上运行以下命令:
(ALL) /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient, /usr/bin/net, /sbin/iptables,
/usr/bin/rfcomm, /usr/bin/wvdial, /sbin/iwconfig, /sbin/mii-tool, /bin/rpm,
/usr/bin/up2date, /usr/bin/yum, /sbin/service, /sbin/chkconfig, /usr/bin/systemctl start,
/usr/bin/systemctl stop, /usr/bin/systemctl reload, /usr/bin/systemctl restart,
/usr/bin/systemctl status, /usr/bin/systemctl enable, /usr/bin/systemctl disable # 用户 ops1 可以在 oldboy-pythonedu 上运行以下命令:
(ALL) /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient, /usr/bin/net, /sbin/iptables,
/usr/bin/rfcomm, /usr/bin/wvdial, /sbin/iwconfig, /sbin/mii-tool, /bin/rpm,
/usr/bin/up2date, /usr/bin/yum, /sbin/service, /sbin/chkconfig, /usr/bin/systemctl start,
/usr/bin/systemctl stop, /usr/bin/systemctl reload, /usr/bin/systemctl restart,
/usr/bin/systemctl status, /usr/bin/systemctl enable, /usr/bin/systemctl disable,
/bin/nice, /bin/kill, /usr/bin/kill, /usr/bin/killall, /sbin/fdisk, /sbin/sfdisk,
/sbin/parted, /sbin/partprobe, /bin/mount, /bin/umount

Extra:额外补充

1.提取IP地址:grep sed awk

[root@oldboy-pythonedu ~]# ifconfig  ens32 | grep "inet " | grep -Eo "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" | head -1
10.0.0.200 [root@oldboy-pythonedu ~]# ifconfig ens32 | sed -n '2p' | sed -r 's#(^.*inet) (.*) (net.*$)#\2#g'
10.0.0.200 [root@oldboy-pythonedu ~]# ifconfig ens32 | awk 'NR==2 {print $2}'
10.0.0.200

2.提取/etc/passwd 用户名称, uid ,登录bash

[root@oldboy-pythonedu ~]# #awk -F ":" '{print $1,$3,$7}' /etc/passwd

3.统计分析访问中来源做多前10的IP地址:sort uniq awk

'''
3.统计分析访问中来源做多前10的IP地址 sort uniq awk
1.来源的IP地址在第几列
2.对数据进行排序
3.对数据进行去重,统计
4.取出前top10的IP地址
''' [root@oldboy-pythonedu ~]# awk '{print $1}' access.log | sort | uniq -c | sort -nr | head -10 > access_top10.txt
'''
31577 116.211.216.152
25142 222.186.49.194
20841 120.27.74.166
9304 39.105.242.163
8277 61.147.73.164
7805 222.186.49.165
7559 123.156.198.164
7233 61.160.206.107
6596 220.170.48.75
6200 61.147.73.171
''' [root@oldboy-pythonedu ~]# time awk '{ ip[$1]++ } END { for ( i in ip ) print ip[i],i}' access.log | sort -nr | head -10
{
ip[$1]++
}
END{
for ( i in ip) {
print i,ip[i]
} }

day60:Linux压缩与打包&用户管理&用户提权sudo&grep,sed,awk,sort,uniq的更多相关文章

  1. Linux 用户管理和提权

    Linux ⽀持多个⼈使⽤同⼀个⽤户登录系统, Windows 在修改组策略的情况下,也可以多个⼈使⽤同⼀个⽤户登录 远程连接Linux的⽅式:SSH协议 远程连接Windows的⽅式:RDP协议 安 ...

  2. linux用户管理-用户的基本操作

    目录 linux用户管理-用户的基本操作 用户相关的命令 linux用户管理-用户的基本操作 什么是用户 用户指能够正常登录linux或windows系统 区别 本质都是登录系统的,只不过Linux支 ...

  3. NO29 用户提权sudo配置文件详解实践--志行为审计

     用户提权sudo配置文件详解实践: 放到visudo里:  验证权限:

  4. [Win32] UAC用户账户控制 (提权)

    最近写程序时遇到一个问题,就是当一个程序需要管理员权限才能正常运行该怎么办? 通过查阅多方资料,我总结出来几个比较实用的办法(每种办法实现方法不同,同时功能上也有一些小小的差异) 方法一(批处理脚本) ...

  5. Linux三剑客grep/sed/awk

    grep/sed/awk被称为linux的“三剑客” grep更适合单纯的查找或匹配文本: sed更适合编辑匹配到的文本: awk更适合格式化文本,对文本进行较复杂各式处理: Grep --color ...

  6. linux用户管理 用户和用户组信息

    用户管理配置文件 用户信息文件  /etc/passwd 密码文件 /etc/shadow 用户配置文件 /etc/login.defs /etc/default/useradd 新用户信息文件 /e ...

  7. linux用户管理 用户和用户组管理

    用户组的基本命令 groupadd [选项] [参数] -g 指定新建工作的id -r 创建系统工作组,系统工作组的ID小于500,非系统工作组大于500 -K 覆盖配置文件"/etc/lo ...

  8. Linux 用户操作之用户管理 (用户增删改操作)

    目录 添加用户 删除用户 修改用户 切换用户 配置用户密码 查看配置文件 cat /etc/pwsswd 添加用户 可选项 -c comment 指定一段注释性描述. -d 目录 指定用户主目录,如果 ...

  9. 四十四.Linux基本防护 用户切换与提权 SSH访问控制 SELinux安全 、SSH访问控制 SELinux安全

     1.Linux基本防护措施 与用户相关的配置文件 /etc/passwd   /etc/shadow  /etc/group /etc/gshadow  /etc/login.defs /etc/s ...

  10. MVC4做网站后台:用户管理 —用户

    这块进行用户管理,可以浏览.查询已注册的用户,修改用户资料,删除用户等.没有做添加用户,不知是否必要.列表页还是使用easyui的datagrid.这个思路跟用户组的方式差不多. 1.接口Interf ...

随机推荐

  1. ESP32(WeMos D1 R32)开发资料

    1.乐鑫官网 2.ESP32踩坑 ESP32控制摇杆,定义sw的引脚时一定要设置为上拉才行. 3.ESP32入门之arduino IDE环境搭建 4.ESP32 MicroPython编程官网文档 E ...

  2. Java中内部类相关知识

    内部类 1.1内部类概述 内部类就是指在一个类中定义一个类.举例:在一个类A的内部定义了一个类B,类B就称为内部类. 1.1.1内部类的定义格式 格式: ​ public class 类名{ ​ 修饰 ...

  3. weblogic修改jdk版本方法

    首先,得知道JDk 的安装目录: /usr/local/ 第一种方法:weblogic控制台直接指定JDK 版本: 第二种方法:修改weblogic中默认的JDK版本: weblogic/Oracle ...

  4. OpenCV图像拼接函数

    图像拼接函数 第一种方法:通过遍历图像,将待拼接的图像每个像素赋值给输出图像 //图像拼接函数 //imageVector 输入图像数组 //outputImage 输出图像 //colCount_ ...

  5. 用for打印九九乘法表

    package com.jiemo.struct;public class ForShabi4 { public static void main(String[] args) { //1.先打印第一 ...

  6. SpringCloud之旅

    现在大部分公司的项目架构都选择了微服务,我们公司也不例外,那么什么是微服务呢?今天就来开启SpringCloud之旅! SpringCloud是基于SpringBoot的一整套的微服务架构.他提供了微 ...

  7. NET 实现 Cron 定时任务执行,告别第三方组件

    原文连接: (96条消息) NET 实现 Cron 定时任务执行,告别第三方组件_.net 定时任务_Phil Arist的博客-CSDN博客 代码: using System.Globalizati ...

  8. 执行sql语句,查询sql版本

    SELECT VERSION();

  9. 使用Wireshark查看HTTPS中TLS握手过程

    通过使用Wireshark抓包分析TLS握手的过程,可以更容易理解和验证TLS协议,本文将先介绍Wireshark解密HTTPS流量的方法,然后分别验证TLS握手过程和TLS会话恢复的过程. 一.使用 ...

  10. 【学习】蓝牙的一些基础知识or什么是蓝牙

    蓝牙----Bluetooth(短距离无线通信技术)  2022-07-29   14:31:27 蓝牙技术有什么特点(体积小,易集成,低功耗,适用广,抗干扰,成本低,开放性) (1) 蓝牙模块体积很 ...