首先,确认系统是否识别了新硬盘。
sudo fdisk -l
这将列出所有硬盘,找到新 SSD 的设备名(如 /dev/sdb
)。
/dev/nvme0n1p4
/dev/sda1
/dev/sdb
如果硬盘未格式化或需要重新格式化,可以使用以下命令:
sudo mkfs.ext4 /dev/sdb
假设你要格式化为 ext4
文件系统,且分区为 /dev/sdb
。
选择一个目录作为挂载点,例如 /mnt/ssd
:
sudo mkdir /mnt/ssd
将硬盘挂载到刚创建的目录:
sudo mount /dev/sdb /mnt/ssd
编辑 /etc/fstab
文件,添加以下内容:
/dev/sdb /mnt/ssd ext4 defaults 0 2
保存并退出。 sudo cp '/home/yqh/ 桌面 /fstab' /etc/fstab
使用以下命令确认挂载成功:
df -h
你应该能看到 /dev/sdb
挂载在 /mnt/ssd
。
现在,你可以通过 /mnt/ssd
访问和使用新硬盘。
/dev/sdb
/mnt/ssd
完成这些步骤后,新 SSD 就可以正常使用了。
/mnt/ssd/ftp
,同时支持开机自启动,可以使用 vsftpd
(Very Secure FTP Daemon)vsftpd
打开终端,运行以下命令安装 vsftpd
:
sudo apt update
sudo apt install vsftpd
vsftpd
编辑 vsftpd
的配置文件:
sudo nano /etc/vsftpd.conf
在文件中找到或添加以下配置:
# 禁止匿名登录
anonymous_enable=NO
# 允许本地用户登录
local_enable=YES
# 允许写入
write_enable=YES
# 设置本地用户的根目录
chroot_local_user=YES
# 指定根目录
local_root=/mnt/ssd/ftp
# 限制用户只能访问其根目录
allow_writeable_chroot=YES
# 启用被动模式(如果需要)
pasv_enable=YES
pasv_min_port=10000
pasv_max_port=10100
保存并退出编辑器( Ctrl+O
保存, Ctrl+X
退出)。
创建 /mnt/ssd/ftp
目录,并设置权限:
sudo mkdir -p /mnt/ssd/ftp
sudo chown -R ftp:ftp /mnt/ssd/ftp
sudo chmod 755 /mnt/ssd/ftp
vsftpd
服务应用配置并重启服务:
sudo systemctl restart vsftpd
确保 vsftpd
服务已启用开机自启动:
sudo systemctl enable vsftpd
如果启用了防火墙(如 ufw
),需要允许 FTP 端口:
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 10000:10100/tcp
sudo ufw reload
使用 FTP 客户端(如 FileZilla
)或命令行工具测试连接:
ftp localhost
输入本地用户的用户名和密码,确认可以访问 /mnt/ssd/ftp
目录。
如果需要为 FTP 创建专用用户:
sudo adduser ftpuser
将该用户的根目录设置为 /mnt/ssd/ftp
:
sudo usermod -d /mnt/ssd/ftp ftpuser
/mnt/ssd/ftp
/etc/vsftpd.conf
systemctl enable vsftpd
启用完成以上步骤后,FTP 服务即可正常运行并支持开机自启动。
vsftpd
创建两个 FTP 账号,一个只读账号,一个支持读写的账号,可以按照以下步骤操作:vsftpd
如果尚未安装 vsftpd
,先安装:
sudo apt update
sudo apt install vsftpd
创建两个用户,例如 ftp_readonly
(只读)和 ftp_readwrite
(读写):
sudo adduser ftp_readonly # 35218764
sudo adduser ftp_readwrite # 54219863
按照提示设置密码和其他信息。
将两个用户的根目录设置为 /mnt/ssd/ftp
:
sudo usermod -d /mnt/ssd/ftp ftp_readonly
sudo usermod -d /mnt/ssd/ftp ftp_readwrite
vsftpd
编辑 vsftpd
的配置文件:
sudo nano /etc/vsftpd.conf
确保以下配置已启用或添加:
# 禁止匿名登录
anonymous_enable=NO
# 允许本地用户登录
local_enable=YES
# 允许写入
write_enable=YES
# 设置本地用户的根目录
chroot_local_user=YES
# 允许可写根目录
allow_writeable_chroot=YES
# 启用被动模式(如果需要)
pasv_enable=YES
pasv_min_port=10000
pasv_max_port=10100
保存并退出编辑器。
sudo cp '/home/yqh/ 桌面 /vsftpd.conf' /etc/vsftpd.conf
ftp_readonly
)将 /mnt/ssd/ftp
目录的权限设置为只读:
sudo chown ftp_readonly:ftp_readonly /mnt/ssd/ftp
sudo chmod 755 /mnt/ssd/ftp
ftp_readwrite
)将 /mnt/ssd/ftp
目录的权限设置为读写:
sudo chown ftp_readwrite:ftp_readwrite /mnt/ssd/ftp
sudo chmod 755 /mnt/ssd/ftp
为了确保只读用户无法写入,可以通过 vsftpd
的配置文件限制其权限。
编辑 /etc/vsftpd.conf
,添加以下内容:
# 限制只读用户
user_config_dir=/etc/vsftpd/user_conf
然后创建用户配置文件目录:
sudo mkdir /etc/vsftpd
sudo mkdir /etc/vsftpd/user_conf
为只读用户 ftp_readonly
创建配置文件:
sudo nano /etc/vsftpd/user_conf/ftp_readonly
添加以下内容:
write_enable=NO
保存并退出。
vsftpd
服务应用配置并重启服务:
sudo systemctl restart vsftpd
使用 FTP 客户端(如 FileZilla
)或命令行工具测试连接:
ftp_readonly
ftp_readwrite
确保 vsftpd
服务已启用开机自启动:
sudo systemctl enable vsftpd
ftp_readonly
,只能读取文件。ftp_readwrite
,可以读取和写入文件。/mnt/ssd/ftp
/etc/vsftpd.conf
和 /etc/vsftpd/user_conf/ftp_readonly
systemctl enable vsftpd
启用完成以上步骤后,两个 FTP 账号即可正常运行,分别支持只读和读写权限。
要查看当前 vsftpd
服务中有哪些 FTP 账户,以及是否屏蔽了匿名登录,可以按照以下步骤操作:
vsftpd
本身没有直接列出所有 FTP 账户的命令,但可以通过以下方法间接查看:
vsftpd
默认允许本地系统用户登录。可以通过查看 /etc/passwd
文件来列出所有系统用户:
cat /etc/passwd
如果只想查看可能用于 FTP 的用户,可以过滤出普通用户(UID ≥ 1000):
awk -F: '$3 >= 1000 {print $1}' /etc/passwd
vsftpd
用户列表文件(如果配置了)如果配置了 userlist_file
或 userlist_enable
,可以通过以下命令查看允许或禁止登录的用户:
cat /etc/vsftpd/user_list
打开 vsftpd
的配置文件 /etc/vsftpd.conf
,查看以下配置项:
sudo nano /etc/vsftpd.conf
找到以下行:
anonymous_enable=NO
anonymous_enable=NO
,则表示匿名登录已被禁用。anonymous_enable=YES
,则表示匿名登录已启用。保存并退出编辑器。
vsftpd
的运行状态可以通过以下命令查看 vsftpd
的运行状态,确认配置是否已生效:
sudo systemctl status vsftpd
如果仍然不确定匿名登录是否被禁用,可以尝试使用匿名账户登录 FTP 服务器:
ftp localhost
输入用户名 anonymous
,密码可以为空或任意邮箱地址。如果登录失败,说明匿名登录已被禁用。
/etc/passwd
或 /etc/vsftpd/user_list
查看。/etc/vsftpd.conf
中的 anonymous_enable
配置。ftp localhost
尝试匿名登录。通过这些步骤,你可以确认当前 FTP 服务的账户列表以及匿名登录是否被禁用。
假设读写账户为 ftp_readwrite
,目标目录为 /mnt/ssd/ftp
。
确保 /mnt/ssd/ftp
目录的权限允许 ftp_readwrite
用户写入:
ls -ld /mnt/ssd/ftp
输出示例:
drwxr-xr-x 2 ftp_readwrite ftp_readwrite 4096 Oct 10 12:34 /mnt/ssd/ftp
ftp_readwrite
drwxr-xr-x
(所有者有读写执行权限,其他用户只有读和执行权限)如果权限不正确,可以使用以下命令修复:
sudo chown ftp_readwrite:ftp_readwrite /mnt/ssd/ftp
sudo chmod 755 /mnt/ssd/ftp
sudo chown ftp_readonly:ftp_readonly /mnt/ssd/ftp sudo chmod 755 /mnt/ssd/ftp
vsftpd
配置允许写入编辑 vsftpd
的配置文件 /etc/vsftpd.conf
,确保以下配置已启用:
write_enable=YES
保存并退出编辑器,然后重启 vsftpd
服务:
sudo systemctl restart vsftpd
/mnt/ssd/ftp
的所有者为 ftp_readwrite
,权限为 755
。vsftpd
配置** :确保 write_enable=YES
。完成以上步骤后, ftp_readwrite
账户应具备文件创建权限。
ftp_readonly
用户分配文件夹列举权限,需要确保该用户对目标目录具有 读取 和 执行 权限确保 /mnt/ssd/ftp
目录的权限允许 ftp_readonly
用户读取和列举文件。
运行以下命令检查目录权限:
ls -ld /mnt/ssd/ftp
输出示例:
drwxr-xr-x 2 ftp_readwrite ftp_readwrite 4096 Oct 10 12:34 /mnt/ssd/ftp
ftp_readwrite
drwxr-xr-x
(所有者有读写执行权限,其他用户只有读和执行权限)如果权限不正确,可以使用以下命令修复:
sudo chmod 755 /mnt/ssd/ftp
sudo chown ftp_readonly:ftp_readonly /mnt/ssd/ftp sudo chmod 755 /mnt/ssd/ftp
vsftpd
配置允许读取编辑 vsftpd
的配置文件 /etc/vsftpd.conf
,确保以下配置已启用:
sudo nano /etc/vsftpd.conf
local_enable=YES
write_enable=YES
local_enable=YES
:允许本地用户登录。write_enable=YES
:允许写入(即使只读用户不需要写入权限,此选项也需要启用以支持其他功能)。保存并退出编辑器,然后重启 vsftpd
服务:
sudo systemctl restart vsftpd
为了确保 ftp_readonly
用户只能读取文件而不能写入,可以通过 vsftpd
的用户配置文件限制其权限。
编辑 ftp_readonly
的用户配置文件:
sudo nano /etc/vsftpd/user_conf/ftp_readonly
添加以下内容:
write_enable=NO
保存并退出。
sudo cp '/home/yqh/ 桌面 /vsftpd_readonly.conf' /etc/vsftpd/user_conf/ftp_readonly
vsftpd
使用用户配置文件编辑 /etc/vsftpd.conf
,确保以下配置已启用:
user_config_dir=/etc/vsftpd/user_conf
sudo nano /etc/vsftpd.conf
保存并退出,然后重启 vsftpd
服务:
sudo systemctl restart vsftpd
/mnt/ssd/ftp
的权限为 755
。vsftpd
配置** :确保 local_enable=YES
和 write_enable=YES
。ftp_readonly
的写入权限。完成以上步骤后, ftp_readonly
用户应具备文件夹列举权限,但无法写入文件。
假设新用户名为 ftp_readonly_user
,运行以下命令创建用户:
sudo deluser ftp_readonly_user
sudo adduser ftp_readonly_user
按照提示设置密码和其他信息。 7123854796
将新用户的根目录设置为 /mnt/ssd/ftp
:
sudo usermod -d /mnt/ssd/ftp ftp_readonly_user
确保 /mnt/ssd/ftp
目录的权限允许 ftp_readonly_user
读取和列举文件。
运行以下命令检查目录权限:
ls -ld /mnt/ssd/ftp
输出示例:
drwxr-xr-x 2 ftp_readwrite ftp_readwrite 4096 Oct 10 12:34 /mnt/ssd/ftp
drwxr-xr-x
(所有者有读写执行权限,其他用户只有读和执行权限)如果权限不正确,可以使用以下命令修复:
sudo chmod 755 /mnt/ssd/ftp
vsftpd
编辑 vsftpd
的配置文件 /etc/vsftpd.conf
,确保以下配置已启用:
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
local_enable=YES
:允许本地用户登录。write_enable=YES
:允许写入(即使只读用户不需要写入权限,此选项也需要启用以支持其他功能)。chroot_local_user=YES
:将用户限制在其根目录内。allow_writeable_chroot=YES
:允许可写根目录(即使只读用户不需要写入权限,此选项也需要启用)。保存并退出编辑器。
为了确保 ftp_readonly_user
用户只能读取文件而不能写入,可以通过 vsftpd
的用户配置文件限制其权限。
编辑 ftp_readonly_user
的用户配置文件:
sudo nano /etc/vsftpd/user_conf/ftp_readonly_user
添加以下内容:
write_enable=NO
保存并退出。
vsftpd
使用用户配置文件编辑 /etc/vsftpd.conf
,确保以下配置已启用:
user_config_dir=/etc/vsftpd/user_conf
保存并退出,然后重启 vsftpd
服务:
sudo systemctl restart vsftpd
使用 ftp_readonly_user
账户登录 FTP 服务器,测试其权限:
/mnt/ssd/ftp
目录中的文件和子目录。使用 ftp
命令行工具测试:
ftp localhost
输入用户名 ftp_readonly_user
和密码,然后尝试列举目录:
ftp> ls
尝试上传文件:
ftp> put testfile.txt
如果文件上传失败并返回 550 Permission denied
,说明只读权限配置正确。
ftp_readonly_user
,可以读取和列举目录,但不能写入或创建文件。/mnt/ssd/ftp
的权限为 755
。vsftpd
配置** :通过用户配置文件限制 ftp_readonly_user
的写入权限。完成以上步骤后, ftp_readonly_user
用户将具备除了创建文件和写入文件之外的所有权限。
sudo chown ftp_readwrite:ftp_group /mnt/ssd/ftp/ sudo chmod 755 /mnt/ssd/ftp/
sudo systemctl restart vsftpd
sudo groupadd ftp_group sudo usermod -aG ftp_group ftp_readwrite sudo usermod -aG ftp_group ftp_readonly sudo usermod -aG ftp_group ftp_readonly_user sudo chown -R :ftp_group /mnt/ssd/ftp sudo chmod -R 775 /mnt/ssd/ftp sudo chmod g+s /mnt/ssd/ftp ls -ld /mnt/ssd/ftp
(base) yqh@yqh-Z790-UD:~$ ls -ld /mnt/ssd/ftp drwxrwsr-x 4 ftp_readonly ftp_group 4096 2 月 19 17:14 /mnt/ssd/ftp
ls -ld /mnt/ssd/ftp
ls -ld /mnt/ssd/ftp/gitremote
ls -ld /mnt/ssd/ftp/_md5dir
在 /etc/vsftpd.conf 中,设置 local_umask 来为文件和目录设置默认权限: sudo nano /etc/vsftpd.conf 确保 umask 设置合适,确保文件和目录的权限对于组成员是可读写的。 local_umask=022
sudo chmod g+s /mnt/ssd/ftp
sudo setfacl -m g:ftp_group:rwx /mnt/ssd/ftp sudo setfacl -d -m g:ftp_group:rwx /mnt/ssd/ftp
sudo chmod -R 775 /mnt/ssd/ftp sudo chown -R :ftp_group /mnt/ssd/ftp