Linux下配置FTP服务器
它可运行在Linux、Solaris等系统中,支持很多其他的FTP 服务器不支持的特征:
非常高的安全性需求
带宽限制
良好的可伸缩性
创建虚拟用户的可能性
分配虚拟IP地址的可能性
一、vsftpd的启动
#service vsftpd start
如果允许用户匿名访问,需创建用户ftp和目录/var/ftp
# mkdir /var/ftp
# useradd –d /var/ftp ftp
二、vsftpd的配置
Vsftpd的配置文件存放在/etc/vsftpd/vsftpdconf 我们可根据实际数要对如下信息进行配置:
1 连接选项
☆监听地址和控制端口
(1) listen_address=ip address
定义主机在哪个IP 地址上监听FTP请求。即在哪个IP地址上提供FTP服务。
(2) listen_port=port_value
指定FTP服务器监听的端口号。默认值为21。
2 性能与负载控制
☆超时选项
(1) idle_session_timeout=
空闲用户会话的超时时间,若是超过这段时间没有数据的传送或是指令的输入,则会被迫断线。默认值是300s
(2) accept_timeout=numerical value
接受建立联机的超时设定。默认值为60s
☆负载选项
(1) max_clients= numerical value
定义FTP服务器最大的兵法连接数。当超过此连接数时,服务器拒绝客户端连接。默认值为0,表示不限最大连接数。
(2) max_per_ip= numerical value
定义每个IP地址最大的并发连接数目。超过这个数目将会拒绝连接。此选项的设置将会影响到网际快车、迅雷之类的多线程下载软件。默认值为0,表示不限制。
(3) anon_max_rate=value
设定匿名用户的最大数据传输速度,以B/s为单位。默认无。
(4) local_max_rate=value
设定用户的最大数据传输速度。以B/s为单位。默认无。此选项对所有的用户都生效。
3 用户选项
vsftpd的用户分为3类:匿名用户、本地用户(local user)及虚拟用户(guest)
☆ 匿名用户
(1) anonymous_enable=YES|NO
控制是否允许匿名用户登录
(2) ftp_username=
匿名用户使用的系统用户名。默认情况下,值为ftp
(3) no_anon_password= YES|NO
控制匿名用户登录时是否需要密码。
(4) anon_root=
设定匿名用户的根目录,即匿名用户登录后,被定位到此目录下。主配置文件中默认无此项,默认值为/var/ftp/
(5) anon_world_readable_only= YES|NO
控制是否只允许匿名用户下载可阅读的文档。YES,只允许匿名用户下载可阅读的文件。NO,允许匿名用户浏览整个服务器的文件系统。
(6) anon_upload_enable= YES|NO
控制是否允许匿名用户上传文件。除了这个参数外,匿名用户要能上传文件,还需要两个条件,write_enable参数为YES;在文件系统上,FTP匿名用户对某个目录有写权限。
(7) anon_mkdir_wirte_enable= YES|NO
控制是否允许匿名用户创建新目录。在文件系统上,FTP匿名用户必须对新目录的上层目录拥有写权限。
(8) anon_other_write_enbale= YES|NO
控制匿名用户是否拥有除了上传和新建目录之外的`其他权限。如删除、更名等。
(9) chown_uploads= YES|NO
是否修改匿名用户所上传文件的所有权。YES,匿名用户上传得文件所有权改为另一个不同的用户所有,用户由chown_username参数指定。
(10) chown_username=whoever
指定拥有匿名用户上传文件所有权的用户。
☆本地用户
(1) local_enable= YES|NO
控制vsftpd所在的系统的用户是否可以登录vsftpd。
(2) local_root=
定义本地用户的根目录。当本地用户登录时,将被更换到此目录下。
☆虚拟用户
(1) guest_enable= YES|NO
启动此功能将所有匿名登入者都视为guest
(2) guest_username=
定义vsftpd的guest用户在系统中的用户名。
4 安全措施
☆用户登录控制
(1) /etc/vsftpdftpusers
Vsftpd禁止列在此文件中的用户登录FTP服务器。此机制是默认设置的。
(2) userlist_enable= YES|NO
此选项激活后,vsftpd将读取userlist_file参数所指定的文件中的用户列表。
(3) userlist_file=/etc/vsftpduser_list
指出userlist_enable选项生效后,被读取的包含用户列表的文件。默认值是/etc/vsftpduser_list
(4) userlist_deny= YES|NO
决定禁止还是只允许由userlist_file指定文件中的用户登录FTP服务器。userlist_enable选项启动后才能生效。默认值为YES,禁止文中的用户登录,同时不向这些用户发出输入口令的指令。NO,只允许在文中的用户登录FTP服务器。
☆目录访问控制
(1) chroot_list_enable= YES|NO
锁定某些用户在自己的目录中,而不可以转到系统的其他目录。
(2) chroot_list_file=/etc/vsftpd/chroot_list
指定被锁定在主目录的用户的列表文件。
(3) chroot_local_users= YES|NO
将本地用户锁定在主目中。
linux怎么给文件夹加存储?
linux给文件夹加大存储空间,方法如下:
1)新建一个有足够空间的分区给你要搬移的目录,比如/home。
2)新建一个目录。
3)把新建的分区挂载到新建的目录下。
4)把整个/home都拷贝过去。
5)卸载。
6)把原来的/home改名。
7)新建一个/home。
8)把分区挂载过来。
9)在“/etc/fstab”file里加上如下代码。/dev/hda5/homeext3nodev,nosuid02#让系统启动的时候就自动挂载。
10)把旧的home删除。
linux如何新建文件夹并设置文件属性?
linux中设置文件属性和文件权限几乎是一会事。用chmoda-r就可以了。
linux怎么在目录下创建文件?
方法:首先打开xshell软件连接linux服务器;然后使用mkdir目录名创建目录并cd到目录下;接着输入指令touch文件名创建一个空文件;最后使用vim文件名创建空文件并打开进入编辑即可。
linux怎么创建文件和文件夹?
1、创建文件,touch加文件名。
2、用ls命令即可查看我们创建的文件。
3、创建文件夹,mkdir加文件夹名字。
4、用ls-l命令即可查看文件夹的属性。
5、命令与文件名之间一定要有空格,完成效果图。
linux虚拟机不能创建文件夹?
你当前不是在管理用户,必须使用root用户下面才能创建,所以要么你sudumkdir,要么你用su命令切换到管理用户
用什么用户登录,即要看使用的ftp软件,又要看对ftp服务器的设置,以vsftp为例。
1、安装完vsftp服务后可以通过如下命令添加ftp用户:
命令格式 :adduser -d /需要的目录(可以自定义) -g ftp -s /sbin/nologin (用户名)
命令示例:#adduser -d /opt/jack -g ftp -s /sbin/nologin jack
上面增加了一个名为jack的用户它的目录属于/opt/jack下面,属于ftp用户组。此用户是不可以登陆我们终端服务器的。
2、给用户添加密码
#passwd jack
New UNIX password:
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password:
passwd: all authentication tokens updated successfully
上面是输入两次相同密码后显示成功。
在Linux操作系统中,其帐号大致可以分为特权帐号与普通帐号两类。其实这跟微软操作系统中的角色非常的想象。只是微软操作系统中的预定义角色比较多,而在Linux操作系统中,只有两类用户。作为Linux系统管理员必须要了解这两列帐户的差异。以及在以后的使用过程中需要注意的地方。
通常情况下,Linux系统安装完毕之后,系统会自动创建一个特权帐户,即root。如需要在Linux操作系统上部署其他应用的时候,笔者建议大家重新创建一个帐户。如要在Linux操作系统上部署邮箱服务器的话,那么最好建立一个mail的帐户。然后利用这个帐户登陆系统,再进行相关的操作。这个绝对不是多次一举。这主要是因为root帐户与普通的帐户具有很大的差异。这主要体现在以下几个方面。
一、磁盘空间上的限制。
通常情况下,root帐户对于操作系统具有最高的权限,其往往没有磁盘空间的限制。即使对其他用户设置了磁盘限额,而往往root帐户不会受到这方面的限制。而普通用户的话,其默认情况下只能够对自己的主目录有存储文件的权限。为此可以通过磁盘限额等手段来限制其磁盘空间的大小。在有些情况下,实现这个磁盘空间的限制是非常重要的。
因为Linux操作系统是一个多用户的操作系统。有可能会在同一个Linux操作系统上同时部署多个应用服务。如可能会同时部署邮件服务器与文件服务器。而他们是分别采用两个不同的帐户名来部署的。那么系统管理员就可以分别为他们设置磁盘限额,防止因为某个应用由于病毒等原因侵蚀了所有硬盘空间,而导致另外一个服务也当机了。如果两个服务都用root帐户部署,或者其中一个服务采用root帐户运行的话,就不能够对其进行磁盘空间限制了。如对邮件服务器使用root帐户部署,万一邮件服务器中了病毒(或者某些客户端有病毒)而狂发垃圾邮件的话,则很有可能在系统管理未发觉之前,这个硬盘的空间就被消耗殆尽了。从而导致服务器的崩溃。而如果采用了分帐号部署的话,那么最多只是邮箱服务器崩溃,而不会影响文件服务器与root帐户的运行,还有挽救的余地。
所以,无论在Linux操作系统上部署多少应用,最好都能够把root 帐户与普通帐户分开来。Root帐户一般情况下只用来做管理,而不用作他用。只有如此,才能够实现磁盘限额。
二、保证相对独立的环境变量。
Linux操作系统跟Windows操作系统类似,环境变量分为用户环境变量与通用环境变量。用户环境变量就只对当前的用户有效;而通用环境变量则对整个操作系统中的用户有效。有时候在部署网络应用,需要让各个环境变量相对的独立。在某个用户下创建的环境变量(用户环境变量),到另外一个帐户那边,就是无效的。为此就可以通过创建多个帐户来保证不同帐户之间环境变量的独立性。如在Linux操作系统中需要部署一个ERP应用,其有数据库服务器与ERP应用服务器两个部分组成,这连个部分是相互独立、又相互联系的两个部分。系统管理员往往会分别设置两个普通的帐户来部署这两个应用。通过这个方法,可以为每个应用分别保存个人的环境变量。从而让多个应用部署在同一台计算机上时,可以相对独立的工作,彼此之间不会相互干扰。
如果把这些应用都部署在同一个帐户下,那么就需要设置很多的环境变量。此时都在一个帐户下进行设置的话,很可能出错,而且也有可能相互冲突。为此为了给某些应用创造一个相对独立的工作环境,笔者建议不要用root帐户在部署这些应用。而且最好为每个应用创建一个普通帐户来管理,以保障环境变量的独立性。
三、方便备份用户的文件。
Root帐户与普通帐户的主目录是不同的。特权用户root其主目录是/root,而普通用户的主目录则为/home/帐号名称。Linux操作系统的这个设置非常的有用。如现在Linux操作系统上有两个用户,一个是特权用户,一个是普通的员工。通常情况下,普通帐户只能够把自己的文件、邮件等等保存在自己的主目录中。那么只需要对这个员工帐户的主目录进行备份,就可以备份用户的私有文件。通过备份用户的主目录,即使当操作系统瘫痪或者员工换电脑时,只需要恢复主目录中的文件,那么就可以还用户一个一模一样的工作环境。为此,把特权用户的目录与普通用户的目录分开设置就变得非常的有用。
另外,各个用户下的主目录也是相对独立的。如在系统中创建了A与B两个普通帐户。则在操作系统根目录下的/home/目录下就会有A与B两个目录。此时默认情况下,用户A只对目录A具有操纵的权限;而用户B也只有对目录B具有操作的权限。也就是说,各个帐户都只能够操作各自目录下的文件。为此,当多个用户共享同一台主机的时候,每个用户就都有一个私人的文件夹,从而可以防止自己的文件被别人无意中修改或则删除。
那如果当某个员工离职了,或则遗忘了密码,那么这个员工的文件就无法阅读了吗这不是会给企业造成很大的损失吗其实不然。因为特权用户root具有无与伦比的权限,为此root 帐户可以访问与修改任何普通帐户的主目录。也就是说,如果某个员工离职了,而其代理人需要这个员工主目录下的文件,则系统管理员仍然可以凭root帐户登陆系统,并把相关的文件复制给其代理人。从这里也可以看出,root帐户其权限是非常庞大的。默认情况下,最好把root帐户与普通的帐户分开来。以保障各个用户之间能够有一个相对独立的个人主目录。
四、文件相关权限不同。
通常情况下,只有文件的所有者可以更改文件的权限。如用户A(普通帐户)其建立另一个文件,其可以设置其它用户是否对这个文件具有读取、或者修改的权利。因为用户A是这个文件的所有者,所以其有权进行这方面的设置。这是Linux操作系统中权限控制的最基本原则。但是root特权用户会打破这个规则。默认情况下,root帐户可以读取、修改系统中的所有文件以及目录,并可修改所有文件的权限。也就是说,root帐户对文件以及目录进行操作,使不受到所有权这个条件的限制的。即使root帐户不是文件的所有者,其也可以把某些权限授权给其它用户。
为此在日常工作中,系统管理员应该限制其它普通用户使用这个账号。俗话说,害人之心不可有,防人之心不可无。如果一些对公司怀有不满的员工,利用root帐号去查看自己无权查看的文件,或者进行修改、删除等等操作,那么就可能会造成比较大的损失。因为root帐户可以对任何用户的文件进行类似的操作。所以在日常工作中,系统管理员要管理好root帐户的口令,不能够泄露。同时在给员工分配帐户的时候,也不要为了省心,而直接把root帐户交给员工使用。不不仅不会省心,而且还会让系统管理员更加的烦心。
总之,root 帐户与普通帐户是两个根本不同的帐户。或者说,root帐户本来就是为管理员而专门设立的,而不是为普通用户所创建。为此笔者强烈建议,无论出于什么目的,最好为Linux操作系统设置独立的普通用户。即使是系统管理员在使用Linux操作系统,也最好为其建立一个普通帐户。当他们需要管理员的权利时,可以非常方便的通过su命令转换到特权模式下。另外就是尽量为不同的员工、不同的应用设置不同的帐户。通过不同的帐户给他们提供一个相对独立的工作环境,减少相互之间的干扰。这可以说是Linux操作系统部署中一个约定俗成的原则。
另外一个例子,pam_limitsso模块也可以使用在对一般应用程序使用的资源限制方面。举例来说,如果需要在SSH服务器上对来自不同用户的ssh访问进行限制,就可以调用该模块来实现相关功能。例如,当需要限制用户admin登录到SSH服务器时的最大连接数(防止同一个用户开启过多的登录进程),就可以在/etc/pamd/sshd文件中增加一行对pam_limitsso模块的调用:
session required pam_limitso
然后在/etc/security/limitsconf文件中增加一行对admin用户产生的连接数进行限定:
admin hard maxlogins 2
完成之后重启服务器端的sshd服务。
之后我们可以看到,从客户端以admin身份登录SSH服务器时,在客户端上可以打开两个控制台登录。但当客户端开启第三个登录窗口的时候会被服务器拒绝,但其它用户不会受到限制。
0条评论