大数据学习第四天

目录

Linux的网络信息

用户组权限

管道和重定向


Linux的网络信息

  一、修改主机名称

        在Windows里面,主机名称可以在控制面板里修改,在Linux里,主机名可以用hostname命令去修改,但这种修改只是临时有效。想要修改主机名长久有效,需要到hostname文件中去修改

临时修改
    hostname bdp

长久修改
    vi /etc/hostname

        

  二、DNS解析

      域名解析服务 :可以将域名转换为IP地址

       第一天学习的时候 要在 vi /etc/sysconfig/network-scripts/ifcfg-ens33 文件中修改IP

        这里可以 可以配置hosts文件 来修改主机域名

vi /etc/hosts
    将来我们需要把所有的虚拟机IP都配置hosts文件

  三、网络相关命令

        这里介绍几个常用的命令:ifconfig  、netstat  、ping  、telnet 、curl

ifconfig
    查看当前网卡的配置信息
    这个命令属于 net-tools中的一个命令,但是Centos7中minimal版并没有集成这个包
    所以7的时候需要自己手动安装
    如果没有ifconfig ,可以使用ip addr 临时代替

netstat
    查看当前网络的状态信息
    一个机器默认有65536个端口号[0,65535]
    这是一个逻辑的概念,将来我们需要使用程序监听指定的端口,等待别人的访问
    一个端口只能被一个程序所监听, 端口已经被占用

netstat -anp
    netstat -r 核心路由表 == route

ping
    查看与目标IP地址是否能够连通

telnet
    查看与目标IP的指定端口是否能够连通
    yum install telnet -y
    telnet 192.168.31.44 22

curl
    restful 我们所有的资源在网络上中都有唯一的定位
    那么我们可以通过这个唯一定位标识指定的资源

  四、主机间相互免密钥

        在两个虚拟机之间要经常互相访问、传递文件。每次访问都需要经过防火墙或者密码验证。 Z在同一公司的内网环境下,这种验证很繁琐的。这里可以用公私钥的方法让不同的虚拟机之间相互免密钥。

        每个虚拟机都会生成一对公钥、私钥。私钥自己保留,公钥发送出去。其他的虚拟机使用对应的虚拟机公钥对传输的文件进行加密,这样加密后的数据只有与其公钥对应的私钥才能解开。

  服务器间免密钥 

        下面是实现流程:

        1.生成密钥

                通过命令~/.ssh/ 目录下生成一对密钥对

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa



密钥对:id_rsa id_rsa.pub known_hosts

        2.拷贝公钥

                要想免密登录谁,就把公钥拷贝给对方即可,这个公钥文件必须放在对方主机的

~/.ssh/authorized_keys 文件中。可以使用命令将公钥文件自动传递过去
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.88.102

root:对方的用户名
192.168.88.102:对方的主机IP
注意:第一次建立连接时会弹出一个警告,需要输入 yes 将该主机添加到当前设备的已知主机列表中。这个警告是可以忽略的

  3.忽略主机名校验和host校验

本次生效: ssh -o StrictHostKeyChecking=no root@node01 。
永久生效:修改 /etc/ssh/ssh_config 文件的配置

        想要永久生效,需要Host * 节点下配置以下信息

# 严格的密钥检查 no
StrictHostKeyChecking no

# 如果不希望生成已知主机列表文件,可以将已知主机列表文件信息写入黑洞(不会再生成 known_hosts 文件)
#UserKnownHostsFile /dev/null

        注意:SSH 对主机公钥的检查等级是根据 StrictHostKeyChecking 变量来配置的

StrictHostKeyChecking=no :最不安全的级别,当然也没有那么多烦人的提示了,相对安全的内网建议使用。如果访问的计算机的公钥在本地不存在,会自动添加到文件中(默认是 known_hosts ),并且给出一个警告。

StrictHostKeyChecking=ask :默认的级别,就是出现刚才的提示。如果连接和公钥不匹配,给出提示,并拒绝登录。

StrictHostKeyChecking=yes :最安全的级别,如果连接和公钥不匹配,拒绝连接,不会提示详细信息。

用户组权限

        还是拿Windows系统举例,Windows系统里除了管理员用户,还可以创建其他用户,这些用户的权限都没有管理员高。同样的,Linux里也可以创建权限低一些的用户。

  一、用户

  useradd 命令可以用来创建新的用户或更改用户的信息。帐号建好之后,再用 passwd 设定帐号的密码。使用 useradd 指令所建立 的帐号,实际上是保存在 /etc/passwd 文本文件中
[root@node01 ~]# useradd [选项] [用户名]



可选项:
  -D :改变新建用户的预设值
  -c :添加备注文字
  -d :新用户每次登陆时所使用的家目录
  -e :用户终止日期,日期的格式为 YYYY-MM-DD
  -f :用户过期几日后永久停权。当值为 0 时用户立即被停权,而值为 -1 时则关闭此功能,预设值为 -1
  -g :指定用户对应的用户组
  -G :定义此用户为多个不同附属组的成员
  -m :用户目录不存在时则自动创建
  -M :不建立用户家目录,优先于 /etc/login.defs 文件设定
  -n :取消建立以用户名称为名的群组
  -r :建立系统帐号
  -u :指定用户 id


新增用户默认会创建同名的组和家目录

        然后是设置密码:

[root@node01 ~]# passwd zhangsan

        创建完后可以通过用户名查看用户:

[root@node01 ~]# id zhangsan
uid=1000(zhangsan) gid=1000(zhangsan) groups=1000(zhangsan)

        查看用户名和密码:

[root@node01 ~]# cat /etc/shadow

        也可以修改用户:

# 修改用户名(组名称和家目录是不会被修改的)
usermod -l newname oldname

# 锁定用户(禁止登录)
usermod -L zs

# 解锁用户
usermod -U zs

# 删除用户(默认会删除组和家目录)
userdel -r zs

# 添加用户并指定组
useradd -g zhangsan zhangsan

# 添加用户并指定附属组
useradd zhangsan -g zhangsan -G zs,zhangs

# 切换用户
su - lisi

        复杂一点的,可以设置过期时间:

# 添加新用户 lisi,设置家目录为 /tmp/lisi ,用户过期时间为 2022/06/01 过期后两天停权
useradd -e '2022/06/01' -f 2 -d /tmp/lisi lisi

  二、组

        groupadd 命令用于创建一个新的工作组,新工作组的信息将被添加到系统文件中

        对应的组创建、修改、查看、删除:

# 创建组
groupadd java

# 修改组
groupmod -n newgroup oldgroup
groupmod -n bigdata java

# 查看用户对应的组
groups

# 查看其他用户对应的组
groups zhangsan

# 修改用户的组
# -g 修改主组(只能修改一个)
usermod zhangsan -g bigdata
groups zhangsan

# -G 修改附属组(可以修改多个)
groupadd c
groupadd python
usermod zhangsan -G c,p
groups zhangsan

# 删除组
groupdel python

三、权限

        权限在 ll 查询文件详细信息里的第一列就是

[root@node01 ~]# ll /
total 16
lrwxrwxrwx. 1 root root 7 May 1 21:18 bin -> usr/bin
dr-xr-xr-x. 5 root root 4096 May 1 21:22 boot
drwxr-xr-x 20 root root 3220 May 2 10:52 dev
drwxr-xr-x. 74 root root 8192 May 2 11:40 etc
drwxr-xr-x. 2 root root 6 Apr 11 2018 home
lrwxrwxrwx. 1 root root 7 May 1 21:18 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 May 1 21:18 lib64 -> usr/lib64
drwxr-xr-x. 2 root root 6 Apr 11 2018 media
drwxr-xr-x. 2 root root 6 Apr 11 2018 mnt
drwxr-xr-x. 2 root root 6 Apr 11 2018 opt
dr-xr-xr-x 109 root root 0 May 2 10:52 proc
dr-xr-x---. 2 root root 135 May 2 14:50 root
drwxr-xr-x 22 root root 620 May 2 10:52 run
lrwxrwxrwx. 1 root root 8 May 1 21:18 sbin -> usr/sbin
drwxr-xr-x. 2 root root 6 Apr 11 2018 srv
dr-xr-xr-x 13 root root 0 May 2 17:45 sys
drwxrwxrwt. 7 root root 132 May 2 11:47 tmp
drwxr-xr-x. 13 root root 155 May 1 21:18 usr
drwxr-xr-x. 19 root root 267 May 1 21:25 var
        在文件的详细信息中显示的这7列的含义如下:

       
 第 1 列:规定了不同的用户对文件所拥有的权限,第 1 列的第一个字符又表示了当前文件的类型:
    - :普通文件
    d :文件夹
    l :软链接
第 2 列:引用计数,文件的引用计数代表该文件的硬链接个数,而目录的引用计数代表该目录有多少个一级子目录。
第 3 列:所有者,也就是这个文件属于哪个用户。默认所有者是文件的建立用户。
第 4 列:所属组,默认所属组是文件建立用户的有效组,一般情况下就是建立用户的所在组。
第 5 列:文件大小,默认单位是字节。
第 6 列:文件修改时间,文件状态修改或文件数据修改时间都会更改,注意这个时间不是文件的创建时间。
第 7 列:文件名或目录名,如果是软链接会显示软链接真正的地址

        这里面第 1 列中的权限信息可以看下面这张图:

                ​​​​​​​        

        将 rwx 看做二进制数,有权限表示 1,没有表示 0。那么 rwx 就可以表示为:111,二进制 111 就是十进制 7

         第 1 列信息被分为四部分,分别是:    
                
文件的类型:第 1 个字符。
文件所有者的权限:第 2~4 个字符,分别对应 rwx ,没有权限用 - 表示。
文件所属组用户的权限:第 5 ~ 7 个字符,分别对应 rwx ,没有权限用 - 表示。
其他用户的权限:第 8~10 个字符,分别对应 rwx ,没有权限用 - 表示。
        修改权限

         修改权限所属的信息权限分别对应了用户、组、其他,那我们就可以直接修改文件所属信息来达到权限的控制

         修改文件所属用户和组信息命令为: chown 用户:组 文件名

        赋予权限
          在某些情况下我们可以赋予普通用户一些超级用户的命令,例如创建用户的命令我们可以交给一个特定的用户去操作。但是默认情况下是不允许的,因为这个命令属于 sbin 命令即超级用户才可以使用的命令

           

           可以通过修改 /etc/sudoers 配置文件的方式来赋予普通用户这个权限

        但是赋予权限后,需要在命令前加上 sudo。

管道和重定向

  管道

        管道 | 就是将前面命令的结果作为参数传递给后面的命令,例如:

ping -c 1 baidu.com | grep from | cut -d ' ' -f 4

# 指管道读取一次百度链接,获取链接中的 from 行内容,根据空格剪切第4段内容

  重定向

         Linux 中的重定向就是将原本要输出到屏幕中的数据信息,重新指向某个特定的文件中,或者定向到黑洞(/dev/null)中

        输入重定向

           如果想收集这些内容或者不希望它输出干扰到终端,可以使用重定向将其进行处理:

> :将输出内容追加到目标文件,如果文件不存在,就创建文件;如果文件存在,就将其清空。例如: echo > .bash_history ,将文件内容清空(文件大小变成 0 字节)。


>> :将输出内容追加到目标文件,如果文件不存在,就创建文件;如果文件存在,则将新的内容追加到文件末尾,该文件中的原有内容不受影响。
        输出重定向

           输入重定向,即原本从键盘等设备上获得的输入信息,重定向由命令的输出作为输入

# 将指定文件作为命令的输入设备
命令 < 文件

# 将文件1作为命令的输入设备,该命令的执行结果输出到文件2中
命令 < 文件1 > 文件2 

# 表示从标准输入设备(键盘)中读入,直到遇到分界符才停止(读入的数据不包括分界符)
命令 << 分界符 

        命令太多了,今天就总结了一些可能会=经常用到的做个笔记。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值