linux安装ftp并对用户设置只能访问某一个文件夹的权限 您所在的位置:网站首页 怎么建立一个ftp服务器用户 linux安装ftp并对用户设置只能访问某一个文件夹的权限

linux安装ftp并对用户设置只能访问某一个文件夹的权限

2024-07-10 21:05| 来源: 网络整理| 查看: 265

1.查看ftp是否安装

rpm -qa |grep vsftp

2.ftp卸载命令

yum remove vsftpd

3.安装ftp

yum install vsftpd

4.ftp服务的开启与关闭命令

// 开启 service vsftpd start //关闭 service vsftpd stop //设置为开机启动 chkconfig vsftpd on

5.创建用户ftpuser (可随意起名)

useradd -d /home/ftpuser ftpuser // 指定此用户的主目录即家目录。(可直接设置成目标权限目录) passwd ftpuser //为ftpuser 设置密码 // 可更改主目录 usermod -d /opt/FTP ftpuser //更改用户ftpuser的主目录为/opt/FTP // 更改用户相应的权限设置 // 限定用户ftpuser不能telnet,只能ftp usermod -s /sbin/nologin ftpuser //当然如果想恢复为正常用户,可以执行以下命令: usermod -s /sbin/bash ftpuser

6.限制用户只能访问/opt/FTP,不能访问其他路径

修改/etc/vsftpd/vsftpd.conf如下: anonymous_enable=NO //不允许匿名用户访问,默认是允许。 chroot_local_user=NO chroot_list_enable=YES // 打开此注释 chroot_list_file=/etc/vsftpd/chroot_list // 加入限制目录地址 (可不加) local_root = /opt/FTP

7.编辑文件chroot_list,没有则创建此文件

touch chroot_list

把用户名加进去 ,每个用户名一行 8.重启vsftpd服务器,完成。

service vsftpd restart

在这里插入图片描述 如果用户不能上传文件,记得修改文件夹权限

chmod -R 777 /file

/etc/vsftpd/vsftpd.conf 整体配置示例参考:

anonymous_enable=no chroot_local_user=yes local_enable=YES write_enable=YES allow_writeable_chroot=YES local_umask=022 chown_uploads=YES chown_username=ftpuser dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES listen=NO listen_ipv6=YES pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES

六、说明:

anonymous_enable=YES #设置是否允许匿名用户登录 local_enable=YES #设置是否允许本地用户登录 local_root=/home #设置本地用户的根目录 write_enable=YES #是否允许用户有写权限 local_umask=022 #设置本地用户创建文件时的umask值 anon_upload_enable=YES #设置是否允许匿名用户上传文件 anon_other_write_enable=YES #设置匿名用户是否有修改的权限 anon_world_readable_only=YES #当为YES时,文件的其他人必须有读的权限才允许匿名用户下载,单单所有人为ftp且有读权限是无法下载的,必须其他人也有读权限,才允许下载 download_enbale=YES #是否允许下载 chown_upload=YES #设置匿名用户上传文件后修改文件的所有者 chown_username=ftpuser #与上面选项连用,表示修改后的所有者为ftpuser ascii_upload_enable=YES #设置是否允许使用ASCII模式上传文件 ascii_download_enable=YES #设置是否允许用ASCII模式下载文件

FTP 用户指定目录禁用上级目录:

在默认配置下,本地用户登入FTP后可以使用cd命令切换到其他目录,这样会对系统带来安全隐患。可以通过以下三条配置文件来控制用户切换目录。 chroot_list_enable=YES/NO(NO) 设置是否启用chroot_list_file配置项指定的用户列表文件。默认值为NO。 chroot_list_file=/etc/vsftpd.chroot_list 用于指定用户列表文件,该文件用于控制哪些用户可以切换到用户家目录的上级目录。 chroot_local_user=YES/NO(NO) 用于指定用户列表文件中的用户是否允许切换到上级目录。默认值为NO。 通过搭配能实现以下几种效果: ①当chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd.chroot_list文件中列出的用户,可以切换到其他目录;未在文件中列出的用户,不能切换到其他目录。 ②当chroot_list_enable=YES,chroot_local_user=NO时,在/etc/vsftpd.chroot_list文件中列出的用户,不能切换到其他目录;未在文件中列出的用户,可以切换到其他目录。 ③当chroot_list_enable=NO,chroot_local_user=YES时,所有的用户均不能切换到其他目录。 ④当chroot_list_enable=NO,chroot_local_user=NO时,所有的用户均可以切换到其他目录。

 

七:相关命令:

0、查看FTP账户情况 : tail -1 /etc/passwd

1、useradd命令加参数-D查看系统创建账户的默认值

[root@localhost hcy]# useradd -D GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/bash SKEL=/etc/skel CREATE_MAIL_SPOOL=yes

解释: 1)新用户添加到GID为100的公共组 2)新用户的HOME目录将会位于/home/username 3)新用户账户密码在过期后不会被禁用 4)新用户账户未被设置为某个日期后就过期 5)新用户账户将bash shell作为默认shell 6)系统会将/etc/skel目录下的内容复制到用户的HOME目录下 7)系统为该用户账户在mail目录下创建一个用于接收邮件的文件

可以用-D参数后面跟一个要修改的值的参数,来修改系统默认的新用户值。这些参数如下表:

-b default_home 更改默认的创建用户HOME目录的位置 -e expiration_date 更改默认的新账户的过期日期 -f inactive_days 更改默认的新用户从密码过期到账户被禁用的天数 -g group 更改默认的组名称或GID -s shell 更改默认的登录shell

2、useradd添加账户和userdel删除账户

[root@localhost ~]# useradd test useradd: warning: the home directory already exists. Not copying any file from skel directory into it. Creating mailbox file: File exists [root@localhost ~]# tail -1 /etc/passwd ftpuser:x:500:500::/home/ftpuser:/bin/bash [root@localhost ~]# userdel -r ftpuser [root@localhost ~]# useradd test [root@localhost ~]# tail -1 /etc/passwd ftpuser:x:500:500::/home/ftpuser:/bin/bash

由于我之前创建过ftpuser账户,删除账户的时候没有加-r参数,所以再次创建相同账户的时候会提示文件目录或者邮箱文件夹已存在。加-r参数重新删除账户再创建不会出现任何提示,然后在/etc/passwd下查看账户基本信息。

 PS:加上参数-r,userdel会删除用户的HOME目录以及mail目录。

userdel删除账户时可能会遇到以下问题:

[root@localhost /]# userdel ftpuser userdel: user ftpuseris currently logged in

提示ftpuser账户当前状态是已登录,因此需要退出账户才能够userdel删除,退出用exit或者logout。

 

3、useradd参数

在创建用户时,可以使用下面的命令行参数改变默认值或默认行为:

-c comment 给新用户添加备注 -d home_dir 为主目录指定一个名字(如果不想用登录名作为主目录名的话) -e expire_date 用YYYYY-MM-DD格式指定一个账户过期的日期 -f inactive_days 指定这个帐户密码过期后多少天这个账户被禁用;0表示密码一过期就立即禁用,-1表示禁用这个功能 -g initial_group 指定用户登录组的GID或组名 -G group ... 指定用户除登录组之外所属的一个或多个附加组 -k 必须和-m一起使用,将/etc/skel目录的内容复制到用户的HOME目录 -m 创建用户的HOME目录 -M 不创建用户的HOME目录(当默认设置里指定创建时,才用到) -n 创建一个同用户登录名同名的新组 -r 创建系统账户 -p passwd 为用户账户指定默认密码 -s shell 指定默认登录shell -u uid 为账户指定一个唯一的UID  

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有