考虑到服务器文件安全性,在此需要开设多类不同权限的账户。
一、用户管理
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