杨记

碎片化学习令人焦虑,系统化学习使人进步

0%

Linux搭建服务

Linux实现 ftp服务器搭建,nfs服务器搭建,ssh服务器搭建

Linux配置FTP服务_Ling-cheng的博客-CSDN博客_linux 配置ftp

(一)vsftpd服务配置(匿名,用户,虚拟用户)_Echo flower的博客-CSDN博客_vsftpd

(二)vsftpd服务配置多用户多目录权限_Echo flower的博客-CSDN博客_vsftpd目录权限

Linux搭建httpd服务实例_野原皮皮虾的博客-CSDN博客_linux搭建httpd

ftp服务器

作用:文件的上传和下载

1、服务器端:

  • 修改配置文件 - 如何修改配置文件 — /etc/vsftpd.conf
  • 重启服务 — 什么命令能够重启服务

2、客户端:

  • 实名用户登录:
    • ftp ip
    • 输入用户名
    • 输入密码
    • 上传文件 put file
    • 下载文件 get file
    • 不能操作目录,只能先打包目录
  • 匿名用户登录
    • ftp ip
    • 用户名:anonymous
    • 密码:空
    • 不允许匿名用户在任意目录直接切换,只能在一个指定的目录范围内工作,需要再ftp服务器上创建一个匿名用户的目录 — 匿名用户的根目录

使用vsftpd软件实现

1、下载vsftpd软件:sudo apt-get install vsftpd

2、修改配置文件/etc/vsftpd.conf

1
2
3
4
5
6
anonymous_enable=YES  #允许匿名登录
no_anon_password=YES #匿名登录时不需要密码
anon_umask=022 #匿名用户所上传文件的权限掩码
anon_root=/var/ftp #匿名用户的 FTP 根目录
anon_upload_enable=YES #允许上传文件
anon_mkdir_write_enable=YES #允许创建目录

image-20220523153245285

3、重启vsftpd服务:sudo service vsftpd restart

实名用户登录,用户的权限为该用户在系统中的权限

匿名用户登录

  • 默认根目录/srv/ftp,可以在/etc/passwd文件中看到ftp用户的相关信息
  • 指定匿名用户ftp根目录,在/etc/vsftpd.conf中添加anon_root=/home/yang/myftp
  • 修改根目录权限,供匿名用户使用:sudo chown ftp myftpchmod 755 myftp,记得重启服务

问题:

500 OOPS: vsftpd: refusing to run with writable root inside chroot()

“如果启用chroot, 必须保证ftp根目录不可写, 这样对于ftp根直接为网站根目录的用户不方便, 所以建议假如ftp根目录是/home/${cjh}, 则将访问权限改写chmod a-w /home/cjh

nfs服务器

net file system -> 网络文件系统,它允许网络中的计算机之间通过TCP/IP网络共享资源。

0)安装软件:sudo apt-get install nfs-kernel-server

1)创建共享目录。如:mkdir /home/yang/NfsShare

2)修改配置文件/etc/exports

  • 追加共享目录的绝对路径,ip,权限。如:/home/yang/NfsShare *(rw,sync)
  • 其中 代表一个IP地址段,如:192.168.10. (有的版本这样写有问题,目录无法共享出去)
  • ro -> 只读权限
  • rw -> 读写权限
  • sync -> 资料同步写入到内存与硬盘当中
  • async -> 资料会先暂存于内存当中,而非直接写入硬盘
  • no_root_squash -> 登入NFS主机,使用该共享目录时相当于该目录的拥有者,如果是root的话,那么对于这个共享的目录来说,他就具有root的权 限,这个数『极不安全』,不建议使用
  • root_squash -> 登入NFS主机,使用该共享目录时相当于该目录的拥有者。但是如果是以root身份使用这个共享目录的时候,那么这个使用者(root)的权限将被压缩成为匿名使用者,即通常他的UID与GID都会变成nobody那个身份
  • all_squash -> 不论登入NFS的使用者身份为何,他的身份都会被压缩成为匿名使用者,通常也就是nobody

3)重启服务

  • sudo service nfs-kernel-server restart

客户端访问共享目录:

  • mount serviceIP:/共享目录 挂载目录
  • 如:sudo mount 192.168.32.75:/home/yang/NfsShare /mnt

ssh服务器

Secure Shell

1)安装ssh:sudo apt-get install openssh-server

  • 查看ssh是否安装:sudo aptitude show openssh-server

2)远程登录:ssh userName@serviceIP

  • 确认连接,然后输入密码

scp命令 -> super copy

前提:目标主机已安装openssh-server

使用方法:scp -r userName@serviceIP:目标文件绝对路径 保存至本机的绝对(相对)路径

  • 如:scp -r itcast@192.168.1.100:/home/itcast/QQ_dir/ ./mytest/360
  • 拷贝目录表需要使用参数-r

http服务

安装和启动

1
2
3
yum install httpd  # 安装httpd包
firewall-cmd --permanent --add-port=80/tcp # 开放80端口
systemctl start httpd # 启动httpd服务

httpd主配置文件:/etc/httpd/conf/httpd.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
ServerRoot /etc/httpd   #httpd服务的顶级目录为/etc/httpd
Listen 80 #监听在80端口80为web服务器的默认端口
ServerName 0.0.0.0:80 #匹配任意IP地址,监听端口在80端口
ServerAdmin root@localhost #一般为你的邮箱,有事的时候给你发邮件
User apache
Group apache
DoucumentRoot /var/www/html #网页文件存放的目录
<Directory />
AllowOverride none #目录标记不允许覆盖
Require all/ip/host denied #请求不允许
</Directory>
<Directory /var/wwww/html>
AllowOverride none #目录标记不允许覆盖
Require all/ip/host granted #请求允许
</Directory>
<IfModule dir_module> #加载一个目录模块
DirectoryIndex index.html
</IfModule>

IncludeOptional conf.d/*.conf 加载所有的自配置文件

/etc/httpd/conf.d/*.conf 额外的参数文件。如果你不想要修改原始配置文件httpd.conf的话,那么你可以将你自己的额外参数文件独立出来,例如你想要有自己的额外设置值,可以将它写入/etc/httpd/conf.d/vhosts.conf(注意,扩展名一定是.conf),而启动Apache时,这个文件就会被读入主要配置文件当中了。

/var/www/html/这就是默认的首页所在目录,当输入网址时所显示的数据,就是放在这个目录当中的首页文件(默认为index.html)

浏览器访问:http://ip:80 即可看到index.html文件的内容

访问控制

新建/etc/httpd/conf.d/testCtl.conf,设置只有指定的用户才能访问特定的目录:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<Directory "/var/www/html/testCtl">
# 全部禁用,不显示指定路径的链接文件,指定文件不存在不显示其他所有文件
Options None
#.htaccess 文件无效
AllowOverride None
# 验证类型
AuthType Basic
# 提示信息
AuthName "String"
# 存储账号密码的文件
AuthUserFile  "/etc/httpd/.passwd"
# 允许账号文件中的所有用户登录访问
Require valid-user
# Require user username1 username2 ... 允许文件中指定用户访问
</Directory>

通过httpd服务自带的htpasswd工具来定义存放用户的文件以及用户的账号密码

1
2
3
4
5
6
7
8
9
10
htpasswd [options] /PATH/HTTPD_PASSWD_FILE username password

options:
-c 自动创建文件,仅应该在文件不存在时使用
-b 非交互方式创建用户,命令后面可以接密码
-p 明文密码
-d CRYPT格式加密,默认
-m md5格式加密
-s sha格式加密
-D 删除指定用户
1
2
[root@CentOS conf.d]# htpasswd -c /etc/httpd/.passwd yang  # 创建用户yang
[root@CentOS conf.d]# htpasswd /etc/httpd/.passwd zhang # 创建用户zhang

使用浏览器访问http://ip/testCtl就会提示输入账号和密码

欢迎关注我的其它发布渠道