考虑到服务器文件安全性,在此需要开设多类不同权限的账户。

一、用户管理

1. USER

此类用户只具有上传权限,取消下载权限与删除权限。

2. Admin

此类用户具有上传与下载权限,取消删除权限。

二、目录设置

1. USER

Virtuoso工程的建立目录与PDK environment File(JAZZ.cshrc)中$PROJ_ROOT需要统一,因此采取一个用户一个单独目录的方案实现。
系统中建立用户

adduser user1
passwd user1
mkdir /home/user1/project 
mkdir /home/user2/project

project作为工程目录

cp JAZZ.cshrc /home/user1/project
cp JAZZ.cshrc /home/user1/project
vi JAZZ.cshrc

修改user1配置文件中setenv PROJ_ROOT /home/user1/project,在此目录下新建JAZZ工程

2. Admi

Administrator账户用户服务器关键仿真文件的下载与管理,Admin账户能够下载所有USER目录下的文件。
系统中建立用户

adduser admin1
passwd admin1

三、配置vsftpd

1. 安装vsftpd

yum -y install vsftpd
rpm -ql vsftpd

配置文件路径/etc/vsftpd/

service vsftpd start

2. 虚拟用户

首先建立一个本地系统用户同于管理;

useradd -d /home/download abcde -s /sbin/nologin

子目录即为
/home/user1/project/home/user2/project

3. 创建用户数据文件

一行账号一行密码,不能存在空行与空格vi /etc/vsftpd/userlist.txt

user1
123456
user2
123456
admin
12345678

生成数据文件:

yum -y install db4* 
db_load -T -t hash -f /etc/vsftpd/userlist.txt /etc/vsftpd/userlist.db

生成之后userlist.txt可用于备份

4. 修改数据文件权限

chmod 600 /etc/vsftpd/userlist.txt

5. 修改pam配置

vi /etc/pam.d/vsftpd

将文件中内容全部注释加入两行

auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/user_list
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/user_list

64为操作系统文/lib64,32为操作系统为/lib

6.创建系统本地用户abcde对应的虚拟用户

虚拟用户需要通过本地系统用户来实现各种操作,因此要放在系统用户的同名文件夹下。

mkdir /etc/vsftpd/abcde
cd /etc/vsftpd/abcde

修改user1权限:

cat >>user1<<EOF
anon_world_readable_only=NO
write_enable=YES
download_enable=NO
anon_mkdir_write_enable=YES
anon_upload_enable=YES
anon_other_write_enable=YES
cmds_denied=DELE
local_root=/home/user1/project
EOF

修改user2权限:

cat >>user2<<EOF
anon_world_readable_only=NO
write_enable=YES
download_enable=NO
anon_mkdir_write_enable=YES
anon_upload_enable=YES
anon_other_write_enable=YES
cmds_denied=DELE
local_root=/home/user2/project
EOF

修改admin权限:

cat >>admin<<EOF
anon_world_readable_only=NO
write_enable=YES
anon_mkdir_write_enable=YES
anon_upload_enable=YES
anon_other_write_enable=YES
local_root=/home/
EOF

user1与user2均删除下载权限与文件删除权限,admin保留下载权限。

7. 配置文件vsftpd.conf

vi /etc/vsftpd/vsftpd.conf

修改内容如下

listen=YES
listen_ipv6=NO
connect_from_port_20=YES
anonymous_enable=NO
local_enable=YES
write_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
guest_enable=YES
guest_username=abcde
virtual_use_local_privs=YES
allow_writeable_chroot=YES
pam_service_name=vsftpd
user_config_dir=/etc/vsftpd/abcde
local_umask=477
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log

vi /etc/vsftpd/chroot_list空白文件
添加local_umask=477为删除下载权限指令

service vsftpd restart

四、日常维护

1. 更新帐号,先修改userlist.txt,再执行db_load

db_load -T -t hash -f /etc/vsftpd/userlist.txt /etc/vsftpd/userlist.db

2. 更新/etc/vsftpd/abcde/下不同用户对应的权限

3. 重启vsftpd

service vsftpd restart

注:
上述完成后FTP无法按照权限读或写,修改文件夹权限:

chown -R abcde: /home/user1/project
chown -R abcde: /home/user2/project

切记在此不能之间图省事将 /home 权限设置为abcde,会导致无法登录远程桌面;

chmod 755 /home/user1/project
chmod 755 /home/user2/project
最后修改:2022 年 03 月 23 日
如果觉得我的文章对你有用,请随意赞赏