基于AI的centos系统FTP服务器搭建

背景:

公司需要一个ftp的文件服务器来进行文件的上传和下载。利用公司原来的的centos阿里云搭建了一个ftp服务器,最近买了个带gpt4.0的AI工具,想测试以下,能否更高效的辅助我完成服务的搭建。

因为用的centos是服务器,我们服务器很多时候可以做bash脚本来帮我们自动完成一系列的操作,我就直接对AI说帮我做一个bash脚本自动安装配置ftp,AI就自动生成脚本的脚本内容如下:

bash 复制代码
#!/bin/bash

# Update system repositories and packages
echo "Updating system packages..."
yum update -y

# Install vsftpd
echo "Installing vsftpd..."
yum install vsftpd -y

# Backup original vsftpd configuration
echo "Backing up original vsftpd configuration file..."
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.orig

# Disable anonymous FTP access
echo "Disabling anonymous FTP access..."
sed -i 's/anonymous_enable=YES/anonymous_enable=NO/' /etc/vsftpd/vsftpd.conf

# Allow local users to access FTP service
echo "Allowing local users to access FTP service..."
sed -i 's/local_enable=NO/local_enable=YES/' /etc/vsftpd/vsftpd.conf

# Enable write permission
echo "Enabling write permissions for local users..."
sed -i 's/write_enable=NO/write_enable=YES/' /etc/vsftpd/vsftpd.conf

# Set up passive mode options
echo "Setting up passive mode options..."
echo "pasv_min_port=40000" >> /etc/vsftpd/vsftpd.conf
echo "pasv_max_port=40100" >> /etc/vsftpd/vsftpd.conf

# Start and enable vsftpd service
echo "Starting vsftpd service..."
systemctl start vsftpd
systemctl enable vsftpd

# Adjust firewall
echo "Adjusting firewall settings..."
firewall-cmd --zone=public --add-service=ftp --permanent
firewall-cmd --reload

echo "FTP server setup is complete."

看了以下挺全面的就,自己拷贝的空白文件,加上执行权限执行了,执行的时候,貌似很顺利,实际用的时候发现,ftp的用户还没有创建,还需要创建一个ftp用户,这时又让AI做了一个脚本是创建用户名的,内容如下

bash 复制代码
#!/bin/bash

# User and password definitions
FTP_USER="OTA"
FTP_PASSWORD="msbota168" # Replace this with a strong password

# Add system user for FTP access
if ! id "$FTP_USER" &>/dev/null; then
    # Add user with no login shell and specified home directory
    useradd -m -s /sbin/nologin -d /home/$FTP_USER $FTP_USER

    # Set the password for the user
    echo "$FTP_USER:$FTP_PASSWORD" | chpasswd

    echo "User $FTP_USER added successfully."
else
    echo "User $FTP_USER already exists."
fi

# Specific configurations for vsftpd:
# Make sure that vsftpd is installed and the vsftpd.conf configuration file has the following lines:
# local_enable=YES
# chroot_local_user=YES
# This enables local users to log in and confines them to their home directories.

# Restart the vsftpd service to apply changes
systemctl restart vsftpd

echo "FTP user $FTP_USER setup complete."

把内容拷贝到脚本里面,加执行权限,执行也没有太大的问题。但是使用工具来登录ftp的时候你会发现,缺少文件,因为文件路径都是默认的,需要创建对应的文件,

使用工具连的时候你会发现工具报如下问题
1.could not read chroot() list file:/etc/vsftpd/chroot_list

打开vsftpd.conf你会找到chroot_list_file=/etc/vsftpd/chroot_list,这个是默认没有创建的,需要创建,可以用如下命令

sudo touch /etc/vsftpd/chroot_list

sudo chmod 644 /etc/vsftpd/chroot_list

2.vsftpd: refusing to run with writable root inside chroot()

需要在vsftpd.conf最后添加allow_writeable_chroot=YES

3.could not be opened by server: 553 Could not create file.

这个是文件夹权限问题,需要把ftp目录权限目录改为777,方便使用。

成功

总的来说并没有一步到位,应该还是提问方式问题,应该可以持续完善提问,得到一个最终的脚本。一开始只想着建个服务器,忘记说用户名了,这个就没有做ftp用户名添加脚本也遇到了一些小的问题,不过可以把报错内容发给ai分析也可以给一些思路。会提问确实很省事。

相关推荐
xu_yule5 小时前
Linux_12(进程信号)内核态和用户态+处理信号+不可重入函数+volatile
linux·运维·服务器
虾..5 小时前
Linux 环境变量&&进程优先级
linux·运维·服务器
郝学胜-神的一滴8 小时前
Linux命名管道:创建与原理详解
linux·运维·服务器·开发语言·c++·程序人生·个人开发
宾有为8 小时前
【Linux】Linux 常用指令
linux·服务器·ssh
wanhengidc8 小时前
云手机性能如何?
运维·服务器·科技·智能手机·云计算
ajassi20008 小时前
开源 Linux 服务器与中间件(十三)FRP服务器、客户端安装和测试
linux·服务器·开源
Hellc0079 小时前
Docker部署BaGet私有NuGet服务器:从入门到备份恢复完整指南 二
服务器·docker·eureka
会飞的土拨鼠呀10 小时前
通过Linux进程id找到程序路径
linux·服务器·网络
wanhengidc12 小时前
云手机中的数据通常存储在哪里?
运维·服务器·安全·web安全·智能手机
凌寒1113 小时前
Linux(Debain)安装Redis、数据迁移
linux·运维·服务器·redis