From c85fb3f381a6b1ac0258cec6599fb212df073a36 Mon Sep 17 00:00:00 2001 From: colben Date: Fri, 25 Oct 2024 18:07:02 +0800 Subject: [PATCH] update --- content/post/ftp.md | 82 ++++++++++++++++++++++++--------------------- 1 file changed, 44 insertions(+), 38 deletions(-) diff --git a/content/post/ftp.md b/content/post/ftp.md index 6474957..58c97be 100644 --- a/content/post/ftp.md +++ b/content/post/ftp.md @@ -30,7 +30,7 @@ yum install vsftpd - 服务端从 20 端口连接客户端正在监听的端口,向客户端发送数据 - 相关配置 - ```ini + ``` # 开启主动模式 pasv_enable = no ``` @@ -44,17 +44,17 @@ yum install vsftpd - 客户端连接服务端新监听的端口,下载服务端数据 - 相关配置 - ```ini + ``` # 开启被动模式 pasv_enable = yes # 数据连接可以使用的端口范围的最大端口,0 表示任意端口,默认值为0 - pasv_min_port=30000 - # 数据连接可以使用的端口范围的最小端口,0 表示任意端口,默认值为0 pasv_max_port=30999 + # 数据连接可以使用的端口范围的最小端口,0 表示任意端口,默认值为0 + pasv_min_port=30000 ``` -## 匿名用户配置 -```ini +## 匿名用户相关配置 +``` # 控制是否允许匿名用户登入 # 匿名用户使用的登陆名为 ftp 或 anonymous,口令为空 # 匿名用户不能离开匿名用户家目录/var/ftp,且只能下载不能上传 @@ -102,23 +102,7 @@ chown_username=username anon_umask=077 ``` -## 配置 -### 常用配置 -```ini -#允许匿名用户登陆 -anonymous_enable=YES -#允许本地用户登陆 -local_enable=YES -#允许登陆用户写可访问的目录或文件 -write_enable=YES -#指定用户登陆后直接进入系统的/mnt目录 -local_root=/mnt -chroot_list_enable=YES -#限定登陆用户可访问的目录只有自己的家目录或指定的local_root目录 -chroot_list_file=/etc/vsftpd/chroot_list -``` - -### 允许 vsftpd 匿名用户上传和下载 +## 匿名用户上传下载 - 创建匿名用户登陆目录 ```bash mkdir -p /var/ftp/pub @@ -127,7 +111,7 @@ chroot_list_file=/etc/vsftpd/chroot_list ``` - 修改 vsftpd.conf - ```ini + ``` #允许匿名用户登录FTP anonymous_enable=YES #设置匿名用户的登录目录(如需要,需自己添加并修改) @@ -141,7 +125,18 @@ chroot_list_file=/etc/vsftpd/chroot_list anon_umask=022 ``` -### 本地用户登陆 +## 单用户 +- 创建用户及数据目录 + ```bash + cd /sbin + ln -s nologin ftplogin + echo '/sbin/ftplogin' >> /etc/shells + useradd -M -s /sbin/ftplogin user1 + passwd user1 + mkdir -p -m 0700 /path/to/ftpdata + chown user1:user1 /path/to/ftpdata + ``` + - 修改 vsftpd.conf ``` # 不允许匿名用户登入 @@ -150,35 +145,46 @@ chroot_list_file=/etc/vsftpd/chroot_list local_enable=YES # 当本地用户登入时,将被更换到定义的目录下 # 默认值为各用户的家目录 - local_root=/home/username + local_root=/path/to/ftpdata # 是否允许登陆用户有写权限 # 属于全局设置,默认值为YES。 write_enable=YES/NO(YES) # 本地用户新增档案时的 umask 值,默认值为077 local_umask=022 - # 本地用户上传档案后的档案权限 - # 与chmod所使用的数值相同,默认值为0666 - file_open_mode=0755 - # 指定用户列表文件中的用户不允许切换到上级目录 + # 指定 local_root 为根目录,不允许切换到上级目录 chroot_local_user=YES + # chroot 后可写 + allow_writeable_chroot=YES ``` -### 创建 ftp 专用账户 -- 创建用户 ftpuser1 +## 多用户 +- 创建用户及数据目录 ```bash - useradd -s /sbin/nologin ftpuser1 - passwd ftpuser1 + cd /sbin + ln -s nologin ftplogin + echo '/sbin/ftplogin' >> /etc/shells + useradd -d /ftp_disk/user1 -s /sbin/ftplogin user1 + useradd -d /ftp_disk/user2 -s /sbin/ftplogin user2 + passwd user1 + passwd user2 ``` + - 修改 vsftpd.conf - ```ini + ``` + # 不允许匿名用户登入 anonymous_enable=no + # 允许本地用户登入 local_enable=YES - local_root=/home/ftpuser - write_enable=YES + # 是否允许登陆用户有写权限 + # 属于全局设置,默认值为YES。 + write_enable=YES/NO(YES) + # 本地用户新增档案时的 umask 值,默认值为077 local_umask=022 - file_open_mode=0755 + # 指定家目录为根目录,不允许切换到上级目录 chroot_local_user=YES + # chroot 后可写 + allow_writeable_chroot=YES ``` ## 参考