Linux WEB基础 学习笔记

目录

系统版本选择

  • 根据不同发行版本的特性

red hat 企业(付费)

ubuntu 跨设备:服务器,台式,笔记本,嵌入式设备

debian 稳定可靠,但更新周期长

Mint 台式机用户并支持专利性媒体

Core OS 容器化应用程序的计算机集群建设

系统路径

pwd

返回当前的目录位置

/表示系统的根目录,可以进入的最高位置

所有Linux系统中都可以找到/home这样的目录,除少数例外情况,home目录可以容纳每个用户的所有主目录

ls -a

显示所有文件包括隐藏文件

任何前缀是.的文件都是会被系统隐藏的

ls -al

以长格式打印所有文件信息

linux-format

drwxr-xr-x 4 root root 4096 Jul 2 21:00 ..

首字符为d,代表这个结果是目录,-代表文件

后面的每三个分割开来看,分别对应所有者owner,组group,所有人everyone

分别是读,写和是否为可执行文件对应字母为r,w,x

后面紧接着就是所有者和组,linux在创建用户的时候会自动创建相同名字的组

根目录常用文件夹

etc 存储配置文件,配置服务器的时候就会修改其中的文件

var 存储可变的文件,里面的文件一般会随着时间的推移而变大,可找到系统日志和应用程序日志

bin 用于存储可执行的二进制文件,所有用户都可以访问,一般在启动时和系统维护进程中用到

sbinbin类似除了其中的可执行文件只能被root用户用于系统管理和维护

lib 存储支持系统中存储的二进制文件的库文件

usr 用于存储用户程序

命令的运行过程

  1. 输入ls
  2. 系统在$path中按顺序寻找路径下名称为ls的可执行文件
  3. 找到在bin

Linux 安全

使用最少权限

超级用户root

通常情况下,我们禁用root的可远程访问权限,用自己创建的身份登录,然后通过其他命令,我们也可以以root身份运行超级用户的命令,使服务器在用户名及密码未知的情况下被攻破的可能性得到降低

普通用户可以在命令前面加上sudo来以root的身份运行命令,其中的好处是会出现警告,提前预知危险

使用包管理软件

所有可用的程序包来源都会列在/etc/apt/sources.list文件中

sudo apt-get update

更新仓库源,并不会对系统进行更改

真正升级包要使用

sudo apt-get upgrade

包finger的使用

用途:用于查询用户的各种信息打印成易于阅读的格式

Command

finger
finger 用户名

用户信息大部分都存储在/etc/passwd中,用cat打开如下

linux-cat

文件中的每一行代表一个单独的用户,每个条目包含数个由冒号隔开的字段

第一个字段是指用户名,第二个用于存储加密的密码,第三和第四字段分别存储用户的ID和组ID,第五个字段用于存储更多说明,最后两个是用户的主目录和用户默认的shell,可以看到,linux的root用户的组ID和用户ID都是0

用户权限

  • 创建新用户
sudo adduser student
  • 远程SSH登录
ssh [email protected] -p 2222

用户名@IP地址

-p 端口号

  • 赋予sudo权限

有sudo权限的用户登录执行

cat /etc/sudoers

ubuntu中有sudo权限的用户都在/etc/sudoers.d

可使用已有的用户进行cp成用户名,然后用nano进行编辑

将名字改为用户名保存

  • 强制下次登录时重置密码
sudo passwd -e 用户名

基于密钥的身份验证

公共密钥加密

服务器发送任意消息至客户端,客户端用私有密钥进行加密,再将加密后的消息发送给服务器,服务器用公共密钥进行解密,如果与服务器发送的值相等,那么通过

私有密钥要自己保留

在本地生成密钥对

ssh-keygen

为密钥添加密码

生成的.pub文件就是放在服务器上用于密码身份验证的文件

将公钥放在服务器上

登录

mkdir .ssh
touch .ssh/authorized_keys

拷贝本地的密钥内容至服务器更创建的文件中,并为文件设置权限

chmod 700 .ssh
chmod 644 .ssh/authorized_keys

使用ssh密钥登录

ssh [email protected] -p 2222 -i ~/.ssh/密钥名称

禁用密码登录

  • 编辑SSHD配置文件

SSHD: 运行于服务器上监听SSH连接的服务

sudo nano /etc/ssh/sshd_config

PasswordAuthentication设置为no保存

然后重启服务,让它重新读取配置文件

sudo service ssh restart

文件权限

linux-permission

数字与权限的关系

r = 4

w = 2

x = 1

无需权限,值为0

加在一起即为要进行应用的全部权限数量(注意只是对于一种用户)

系统需要一次处理三个权限,以一次设置用户,组和所有人的权限

更改文件权限

chmod 数字 文件夹或文件 //改权限
chown 所有者 文件 //更改所有者
chgrp 组名 文件名 //更改组

防火墙

端口

每个应用程序都会被分配端口来处理各自的请求

常见端口如下图

linux-permission

通过防火墙,可以控制服务器允许哪个端口接受请求

只开放让应用程序行使正常功能的端口

ubuntu ufw 防火墙

激活ufw

sudo ufw status //查看状态

写入防火墙规则并开启防火墙

sudo ufw default deny incoming  //阻止所有 default allow outgoing 允许所有
sudo ufw allow ssh	//允许开放SSH连接端口
sudo ufw allow www 	//允许HTTP请求
sudo ufw enable		//开启防火墙