linux下 ftp服务器如何设置上传文件的权限

linux下 ftp服务器如何设置上传文件的权限,第1张

1、先用vi打开 vsftpd.conf   vsftpd的配置文件

在Ubuntu下是

vi /etc/vsftpd.conf

在centos 下是

vi /etc/vsftpd/vsftpd.conf

这个在不同的系统下可能不同原理一样

2.找到unmsk默认是022 ,修改成你要的权限就可以了。

3.下面说下unmsk的具体含义

umask一般是用在你初始创建一个目录或者文件的时候赋予他们的权限

针对文件的x的权限代表执行,这个风险太高,所以一般权限初始赋值必须去掉x的

  第一个0代表suid 丢弃的权限;(一般省略了)

第二个0代表本文件/目录拥有者什么权限都没丢弃(如果是文件,x权限除外);

第三个2代表本文件/目录的用户组丢弃了w权限(如果是文件那么它的x权限也丢弃);

第三个2代表本文件/目录的其他用户能使用的权限只有有r和x(文件除外)。

综合上面所说如果你新创建一个文件那么它的权限是:-wr-w--w-- 即是:644

如果你新创建一个目录的话那么它的权限是:dwrxw-xw-x 即是:755

4、怎么计算unmsk

1) 目录权限 rwx r-x r-x (755) 这就是目录创建缺省权限

目录权限:777 - unmsk得到的值

2) 文件权限 rw- r-- r-- (644) 这就是文件创建缺省权限

文件权限:666 - unmsk得到的值

Linux下创建用户是很easy的事情了,只不过不经常去做这些 *** 作,时间久了就容易忘记,顺便配置一下FTP。声明:使用Linux版本release 5.6,并以超级管理员root身份运行。

1.创建用户,并指定分组和主目录

useradd -d /home/lch -g root lch

还可以增加其他参数,比如指定用户使用shell等,具体的google一下

2.设定密码

passwd lch

3.查看、改变、添加用户分组

[root@localhost ~]# groups lch

lch : root www

# -G 改变分组

[root@localhost ~]# usermod -G root lch

[root@localhost ~]# groups lch

lch : root

# -g 新增分组

[root@localhost ~]# usermod -g www lch

[root@localhost ~]# groups lch

lch : www root

4.删除用户

# 加上 -r 参数,删除更彻底

userdel -r lch

更改ftp配置文件

修改配置文件/etc/vsftpd/vsftpd.conf并设定或删掉注释:

userlist_enable=NO

anonymous_enable=NO

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list

打开/etc/vsftpd/user_list并增加一行:

lch

新建文件/etc/vsftpd/chroot_list并增加一行

lch

配置用户ftp权限及访问路径限制:

此时用usertest登陆系统ftp,是否可以访问?如果无法访问,说明我们的ftp做了限制。打开/etc/vsftpd /vsftpd.conf,查找userlist_enable、userlist_deny、userlist_file。如果 userlist_deny=NO:只允许userlist_file文件中的用户可访问ftp;如果 userlist_deny=YES:userlist_file文件中列举的用户不能通过ftp访问系统。userlist_enable是该功能的开 关。我们的系统配置如下:

userlist_enable=YES

userlist_deny=NO

userlist_file=/etc/vsftpd/user_list

所以需要把用户加入到/etc/vsftpd/user_list文件中,每个用户一行。

由于该主目录是mpsp用户建的,usertest是mpsp组的成员,所以usertest默认具有增删查改权限;而usertest作为 mpsp组成员,对/home/mpsp下的所有路径具有访问权限(根据各目录的权限设置,默认是这样),登录ftp后会发现,usertest用户可以 访问其他目录,并且具有mpsp组的权限,这样做是不允许的,我们需要将usertest用户的访问范围控制在其主目录下。方法如下:

1. cd /etc/vsftpd 进入ftp配置文件目录

2. vi vsftpd.conf编辑此文件,找到#chroot_list_enable=YES,删除前面的那个#号,表示开启此限制功能

找到chroot_list_file:chroot_list_file=/etc/vsftpd/chroot_list

3. 编辑chroot_list文件,加入你要限制的用户名,一行一个用户。

如果更新了vsftpd.conf,一定要重启ftp,命令如下:

[root@linux sir001 root]# /etc/init.d/vsftpd restart

关闭vsftpd:[ 确定]

为vsftpd 启动vsftpd:[ 确定]

启动FTP服务

service vsftpd start

还有两个参数:stop、restart

需求1: 我记得在VSFTPD中,当你使用了ftp用户登陆默认的就是/var/ftp,因为ftp用户是vsftpd中的匿名用户,默认站点就是这个,而且已经禁锢在了这个目录中,也就是说即使你在vsftpd中使用了cd /这个命令,依然还是在/var/ftp目录中。

需求2和3可以通过以下方式完成。

随便在什么位置建立一个目录,比如你建立了/ftpuser这个目录。

在vsftpd的主配置文件中添加下面的配置语句 user_config_dir=/ftpuser    (=后面就是步骤1中的目录名)

在这个目录中建立两个和本地用户同名的文件,比如user1和user2 (用vi建立最好)

分别编辑这两个文件,里面主要是设置权限,配置项有以下几种

4.1  local_root=                (用来配置访问站点,比如local_root=/home/ftp/user1)

4.2  writable_enable=yes  (或者no,用来配置是否有上传,删除权限)

4.3  download_enable=yes  (或者no,用来配置是否有下载权限)

保存退出,重启服务就可以了。

不过,遗憾的是,上面的配置无法满足你说的user2用户登陆后,可以上传,不能删除这个要求。上面的配置项只能实现本地用户要么能上传就能删除,要么都不能。

 当然,如果你要做虚拟用户的话,那么这些要求都是可以实现的。虚拟用户权限如下

    1.   local_root=

    2.   anon_world_readable_only=NO       可以浏览目录并下载

    3.   anon_mkdir_write_enable=YES       可以建立目录

    4.   anon_upload_enable=YES              可以上传

    5.   anon_other_write_enable=YES       可以删除,重命名

  敬候高人解答。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/9028521.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-24
下一篇2023-04-24

发表评论

登录后才能评论

评论列表(0条)

    保存