Linux WEB基础 学习笔记
系统版本选择
- 根据不同发行版本的特性
red hat 企业(付费)
ubuntu 跨设备:服务器,台式,笔记本,嵌入式设备
debian 稳定可靠,但更新周期长
Mint 台式机用户并支持专利性媒体
Core OS 容器化应用程序的计算机集群建设
系统路径
pwd
返回当前的目录位置
/
表示系统的根目录,可以进入的最高位置
所有Linux
系统中都可以找到/home
这样的目录,除少数例外情况,home
目录可以容纳每个用户的所有主目录
ls -a
显示所有文件包括隐藏文件
任何前缀是.
的文件都是会被系统隐藏的
ls -al
以长格式打印所有文件信息
drwxr-xr-x 4 root root 4096 Jul 2 21:00 ..
首字符为d,代表这个结果是目录,-
代表文件
后面的每三个分割开来看,分别对应所有者owner
,组group
,所有人everyone
分别是读,写和是否为可执行文件对应字母为r
,w
,x
后面紧接着就是所有者和组,linux在创建用户的时候会自动创建相同名字的组
根目录常用文件夹
etc
存储配置文件,配置服务器的时候就会修改其中的文件
var
存储可变的文件,里面的文件一般会随着时间的推移而变大,可找到系统日志和应用程序日志
bin
用于存储可执行的二进制文件,所有用户都可以访问,一般在启动时和系统维护进程中用到
sbin
与bin
类似除了其中的可执行文件只能被root
用户用于系统管理和维护
lib
存储支持系统中存储的二进制文件的库文件
usr
用于存储用户程序
命令的运行过程
- 输入
ls
- 系统在
$path
中按顺序寻找路径下名称为ls
的可执行文件 - 找到在
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
打开如下
文件中的每一行代表一个单独的用户,每个条目包含数个由冒号隔开的字段
第一个字段是指用户名,第二个用于存储加密的密码,第三和第四字段分别存储用户的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
文件权限
数字与权限的关系
r = 4
w = 2
x = 1
无需权限,值为0
加在一起即为要进行应用的全部权限数量(注意只是对于一种用户)
系统需要一次处理三个权限,以一次设置用户,组和所有人的权限
更改文件权限
chmod 数字 文件夹或文件 //改权限
chown 所有者 文件 //更改所有者
chgrp 组名 文件名 //更改组
防火墙
端口
每个应用程序都会被分配端口来处理各自的请求
常见端口如下图
通过防火墙,可以控制服务器允许哪个端口接受请求
只开放让应用程序行使正常功能的端口
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 //开启防火墙