基于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分析也可以给一些思路。会提问确实很省事。

相关推荐
叫我龙翔1 小时前
【Linux】进程间关系与守护进程
linux·运维·服务器·计算机网络
S hh2 小时前
【Linux】进程地址空间
java·linux·运维·服务器·学习
萧鼎3 小时前
Python调试技巧:高效定位与修复问题
服务器·开发语言·python
GodK7773 小时前
IP 数据包分包组包
服务器·网络·tcp/ip
梁诚斌3 小时前
VSOMEIP代码阅读整理(1) - 网卡状态监听
运维·服务器·网络
深情废杨杨3 小时前
服务器几核几G几M是什么意思?如何选择?
运维·服务器
康熙38bdc3 小时前
Linux 进程优先级
linux·运维·服务器
Web极客码3 小时前
常见的VPS或者独立服务器的控制面板推荐
运维·服务器·控制面板
只是有点小怂4 小时前
parted是 Linux 系统中用于管理磁盘分区的命令行工具
linux·运维·服务器
代码雕刻家4 小时前
数据结构-3.10.队列的应用
服务器·数据结构