alamise

Website URL:

centos vsftp 配置

CentOS 5.3建立Vsftpd虚拟用户

我们登录FTP有三种方式,匿名登录、本地用户登录和虚拟用户登录。

匿名登录:在登录FTP时使用默认的用户名,一般是ftp或anonymous。

本地用户登录:使用系统用户登录,在/etc/passwd中。

虚拟用户登录:这是FTP专有用户,有两种方式实现虚拟用户,本地数据文件和数据库服务器。

FTP虚拟用户是FTP服务器的专有用户,使用虚拟用户登录FTP,只能访问FTP服务器提供的资源,大大增强了系统的安全。

本文的Linux系统是CentOS 5.3

yum -y install vsftpd

一、建立Vsftpd虚拟用户:

1、添加虚拟用户口令文件安装Vsftpd

[root@localhost ~]#vi /etc/vsftpd/vftpuser.txt

添加虚拟用户名和密码,一行用户名,一行密码,以此类推。奇数行为用户名,偶数行为密码。

ftp1 #用户名

123456 #密码

ftp2 #用户名

123456 #密码

''这里有个问题,我在创建的时候,在后面的build过程中出现过如下出错提示:
db_load: unexpected end of input data or key/data pair
db_load: odd number of key/data pairs

原因大概是在ftpUserInfo.txt最后需要再加个回车,加回车后,就没问题了,在图形界面的文本编辑器保存默认也会添加一个回车,所以,如果是在图形界面的文本编辑器下直接生成的,不会出现该错误.''

 

2、生成虚拟用户口令认证文件

将刚添加的vftpuser.txt虚拟用户口令文件转换成系统识别的口令认证文件。

 

#####################################################################################

首先查看系统有没有安装生成口令认证文件所需的软件db4-utils。

下面使用db_load命令生成虚拟用户口令认证文件。

[root@localhost ~]# db_load -T -t hash -f /home/vuser.txt /etc/vsftpd_login.db (命令在下面 这是演示)

-bash: db_load: command not found

#####################################################################################

出现没有db_load的提示是因为有些db4的包没有安装,需要安装下列包:

db4-*.rpm

db4-tcl-*.rpm

db4-utils-*.rpm

或者直接: yum -y install db4 db4-tcl db4-utils

db_load命令主要是用来生成db数据库使用的

格式:

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

生成一个hash码型的数据库文件供ftp虚拟用户使用。

#####################################################################################

 

 

[root@localhost ~]#db_load -T -t hash -f /etc/vsftpd/vftpuser.txt

/etc/vsftpd/vftpuser.db

3、编辑vsftpd的PAM认证文件

在/etc/pam.d目录下,

[root@localhost ~]#vi /etc/pam.d/vsftpd

将里面其他的都注释掉,添加下面这两行:

auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vftpuser

account required /lib/security/pam_userdb.so db=/etc/vsftpd/vftpuser

4、建立本地映射用户并设置宿主目录权限

所有的FTP虚拟用户需要使用一个系统用户,这个系统用户不需要密码。

[root@localhost ~]#useradd -d /home/vftpsite -s /sbin/nologin vftpuser

[root@localhost ~]#chmod 755 /home/vftpsite //网上为700,设置为700后FTP用户无上传权限

5、配置vsftpd.conf(设置虚拟用户配置项)

[root@localhost ~]#vi /etc/vsftpd/vsftpd.conf

guest_enable=YES #开启虚拟用户

guest_username=vftpuser #FTP虚拟用户对应的系统用户[useradd -d /home/vftpsite -s

/sbin/nologin vftpuser]

pam_service_name=vsftpd #PAM认证文件

6、重启vsftpd服务

[root@localhost ~]#service vsftpd restart

7、测试虚拟用户登录FTP

C:\Documents and Settings\Administrator>ftp 192.168.2.12

Connected to 192.168.2.12.

220 (vsFTPd 2.0.5)

User (192.168.2.12:(none)): ftp1

331 Please specify the password.

Password:

500 OOPS: cannot change directory:/home/vftpsiteConnection closed by remote host

.//在配置vsftpd的时候连接vsftpd出现了500 OOPS: cannot change directory:/home/vftpsite

的错误,vftpsite为登录时使用的本地用户名。

解决办法:

[root@localhost ~]# setsebool -P ftp_home_dir on

也有网上说在终端输入命令:

setsebool -P ftpd_disable_trans 1

service vsftpd restart

就OK了!

测试:

C:\Documents and Settings\Administrator>ftp 192.168.2.12

Connected to 192.168.2.12.

220 (vsFTPd 2.0.5)

User (192.168.2.12:(none)): ftp1

331 Please specify the password.

Password:

230 Login successful.

二、虚拟用户高级设置:

1、virtual_use_local_privs参数

当virtual_use_local_privs=YES时,虚拟用户和本地用户有相同的权限;

当virtual_use_local_privs=NO时,虚拟用户和匿名用户有相同的权限,默认是NO。

当virtual_use_local_privs=YES,write_enable=YES时,虚拟用户具有写权限(上传、下载、删除

、重命名)。

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=YES,

anon_upload_enable=YES时,虚拟用户不能浏览目录,只能上传文件,无其他权限。

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,

anon_upload_enable=NO时,虚拟用户只能下载文件,无其他权限。

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,

anon_upload_enable=YES时,虚拟用户只能上传和下载文件,无其他权限。

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,

anon_mkdir_write_enable=YES时,虚拟用户只能下载文件和创建文件夹,无其他权限。

当virtual_use_local_privs=NO,write_enable=YES,anon_world_readable_only=NO,

anon_other_write_enable=YES时,虚拟用户只能下载、删除和重命名文件,无其他权限。

2. 建立各个虚拟用户自身的配置文件

[root@localhost ~]#vi /etc/vsftpd/vsftpd.conf

添加:

user_config_dir=/etc/vsftpd/vsftpd_user_conf

[root@localhost ~]#mkdir /etc/vsftpd/vsftpd_user_conf

编辑ftp1的配置文件

[root@localhost ~]#vi /etc/vsftpd/vsftpd_user_conf/ftp1

添加:

anon_world_readable_only=NO #开放ftp1的下载权限(只能下载)。注意这个地方千万不能写成YES

,否则ftp1将不能列出文件和目录。

编辑ftp2的配置文件

[root@localhost ~]#vi /etc/vsftpd/vsftpd_user_conf/ftp2

添加:

write_enable=YES #开放ftp2的写权限

anon_world_readable_only=NO #开放ftp2的下载权限

anon_upload_enable=YES #开放ftp2的上传权限

anon_mkdir_write_enable=YES #开放ftp2创建目录的权限

anon_other_write_enable=YES #开放ftp2删除和重命名的权限

3、所有虚拟用户使用一般配置

[root@localhost ~]#vi /etc/vsftpd/vsftpd.conf

write_enable=YES

anonymous_enable=NO

local_enable=YES

guest_enable=YES

guest_username=vftpuser

virtual_use_local_privs=NO

pam_service_name=vsftpd

anon_world_readable_only=NO #可以下载

anon_upload_enable=NO(默认值) #不能上传

anon_mkdir_write_enable=NO(默认值) #不能新建文件夹

anon_other_write_enable=NO(默认值) #不能删除和重命名文件

ftpd_banner=Welcome to yoozhu FTP server

xferlog_enable=YES

xferlog_file=/var/log/vsftpd.log

xferlog_std_format=YES

ascii_upload_enable=YES

ascii_download_enable=YES

tcp_wrappers=NO

setproctitle_enable=YES

listen_port=21

connect_from_port_20=YES

idle_session_timeout=600

data_connection_timeout=120

max_clients=0

max_per_ip=3

local_max_rate=512000

4、各个虚拟用户使用自身配置

[root@localhost ~]#vi /etc/vsftpd/vsftpd.conf

write_enable=YES

anonymous_enable=NO

local_enable=YES

guest_enable=YES

guest_username=vftpuser

virtual_use_local_privs=NO

pam_service_name=vsftpd

user_config_dir=/etc/vsftpd/vsftpd_user_conf #设定用户配置文件存放目录

ftpd_banner=Welcome to yoozhu FTP server

xferlog_enable=YES

xferlog_file=/var/log/vsftpd.log

xferlog_std_format=YES

ascii_upload_enable=YES

ascii_download_enable=YES

tcp_wrappers=NO

setproctitle_enable=YES

listen_port=21

connect_from_port_20=YES

idle_session_timeout=600

data_connection_timeout=120

max_clients=0

max_per_ip=3

local_max_rate=512000

[root@localhost ~]#mkdir /etc/vsftpd/vsftpd_user_conf

编辑ftp1的配置文件

[root@localhost ~]#vi /etc/vsftpd/vsftpd_user_conf/ftp1

anon_world_readable_only=NO

编辑ftp2的配置文件

[root@CentOS5 /]#vi /etc/vsftpd/vsftpd_user_conf/ftp2

anon_world_readable_only=NO

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

参考Blog:

http://yuanbin.blog.51cto.com/363003/129071

http://blog.163.com/mike_homis/blog/static/20104948200951614143913/

 

引用自 http://yoozhu.com/?p=1469=1

    linux 查找目录

    • July 21, 2010
    • Published in 主机

    查找目录  find / -name ******* -type d
    查找文件  find / -name ******* -print

      centos yum install transmission 启动 设置

      ssh 安装

      yum install transmission -y

      会同时安装很多包



      再來建立 Transmission 的設定檔目錄以及下載目錄(也可自訂啦)

      mkdir -p /usr/local/transmission
      mkdir -p /home/transmission

      啟動Transmission產生Transmission的設定檔 ***此步驟要執行2次***

      /usr/bin/transmission-daemon -g /usr/local/transmission

      这里地址是有区别的 跟据个人不同

      killall transmission-daemon

      編輯Transmission設定檔

      cp /usr/local/transmission/settings.json /usr/local/transmission/settings.json.bak
      vi /usr/local/transmission/settings.json

      比較重要的設定如下:

      "blocklist-enabled": true, // 啟用黑名單
      "dht-enabled": true, // 啟用DHT支援
      "download-dir": "\/home\/transmission", // 下載位置,注意他的格式是\/目錄\/目錄
      "encryption": 1, // 傳輸加密
      "open-file-limit": 64, // 最大開啟檔案數量
      "peer-limit-global": 250, // 最大連接數
      "peer-limit-per-torrent": 100, // 單一任務連接數
      "peer-port": 59999, // Transmission連接使用的port
      "ratio-limit": 2.0000, // 上下傳比例達到多少停止做種
      "ratio-limit-enabled": false, // 啟用上下傳比例
      "rpc-enabled": true, // 啟用網頁管理模組  这个一定要启用
      "rpc-bind-address": "0.0.0.0", // 指定IP位置
      "rpc-port": 5566, // 指定網頁管理模組的port
      "rpc-whitelist-enabled": true, // 啟用IP認證模式
      "rpc-whitelist": "127.0.0.1,192.168.*.*,其他可以連的IP", // 指定認可的IP位置,以,區隔
      "speed-limit-down": 100, // 限制下載速度,以KB/Sec計算
      "speed-limit-down-enabled": false, // 啟用限制下載速度
      "speed-limit-up": 100, // 限制上傳速度,以KB/Sec計算
      "speed-limit-up-enabled": false, // 啟用限制上傳速度
      "upload-slots-per-torrent": 50 // 每個Torrent的上傳連接數量,台灣跛腳的網路請設10

      ############################################################################################################

      需要开启防火墙的话

       

      如果是用在動物機上開啟檔案數量和連接數就不可以調太高,免得負載太高而罷工,

      除了以上的設定值之外其他參數也可以參考官網的維基都有說明

      最後在編輯一下iptables規則

      /etc/init.d/iptables stop
      iptables -A INPUT -p tcp --dport 5566 -j ACCEPT
      iptables -A INPUT -p tcp --dport 59999:61000 -j ACCEPT
      /etc/init.d/iptables save
      /etc/init.d/iptables restart

      全部搞定了,然後進入screen啟動Transmission

      ################################################################################################################################

      启动 transmission

      /usr/bin/transmission-daemon -g /usr/local/transmission

      然後打開瀏覽器輸入http://IP或域名:端口

      就能遠控Transmission

        rc.local

        • July 21, 2010
        • Published in 主机

        /etc/rc.d/rc.local似乎是很多linux系统管理员的偏爱,因为凡是需要随系统自动启动的服务、程序等,只要系统没有提供Sys V风格的启动脚本,就把这些需求都塞到/etc/rc.d/rc.local。

        当然,绝大部分情况下,你会发现这一切都工作得很正常,看上去也很美好。不过,当你遇到了一些诡异的问题的时候,也许你应该好好的去看看/etc/rc.d/rc.local里都写了什么了?

        虽然/etc/rc.d/rc.local 的描述是你可以把你需要的自动启动的程序放到这里,不过那仅仅只是限于没有别的地方可以放置了,或者说系统也没有提供其他办法了,我们才这么干,然而实际 上,我碰到的很多/etc/rc.d/rc.local里放置的内容,其实系统提供了更好的处理方式

          webmin

          • July 21, 2010
          • Published in 主机

          Webmin 是目前功能最强大的基于Web的Unix系统管理工具。管理员通过浏览器访问Webmin的各种管理功能并完成相应的管理动作。目前Webmin支持绝大 多数的Unix系统,这些系统除了各种版本的linux以外还包括:AIX、HPUX、Solaris、Unixware、Irix和FreeBSD等。
          Webmin 让您能够在远程使用支持 HTTPS (SSL 上的 HTTP)协议的 Web 浏览器通过 Web 界面管理您的主机。这在保证了安全性的前提下提供了简单深入的远程管理。这使得 Webmin 对系统管理员非常理想,因为所有主流平台都有满足甚至超出上述需求的 Web 浏览器。而且,Webmin 有其自己的“Web 服务器”,因此不需要运行第三方软件(比如 Web服务器)。万事具备。Webmin 的模块化架构允许您在需要时编写您自己的配置模块。除了在此介绍的模块之外,Webmin 还包括许多模块。尽管目前我们将主要关注网络服务,但是您会看到,几乎您系统的每一部分都能够通过 Webmin 来配置和管理。
          Webmin的另一个可以看成其简化版本的主要针对普通用户的软件就是Usermin
          官方网站:www.webmin.com
          中文网:http://www.webmin.cn/
          Webmin全球镜像中国站:www.webmin.com.cn

            Setup subversion client programs

            • July 21, 2010
            • Published in 主机

            by Børre Gaup

            This document describes how to setup the svn client programs on Mac, Windows and Linux

            Mac

            Download a suitable graphical client: svnX program or RapidSVN. The commandline client program is part of the system if you have installed the Developer tools (included on your installation CD). You may still want to install a newer version if you are using MacOS X 10.4 (Tiger), though.

            Windows

            Download and install TortoiseSVN or RapidSVN.

            Linux

            To install the commandline version of subversion, issue either the command sudo apt-get install subversion or sudo yum install subversion

            There are at least two alternatives if you want a graphical user interface, kdesvn and rapidsvn. Under Debian/Ubuntu: sudo apt-get install rapidsvn or sudo apt-get install rapidsvn

            Under Fedora/CentOS/Red Hat sudo yum install rapidsvn or sudo yum install kdesvn.

            Last modified: $Date: 2008-11-05 18:52:54 +0100 (ons, 05 nov 2008) $

              MYSQL添加新用户和数据库(命令行模式和phpmyadmin)

              • July 21, 2010
              • Published in 主机

              MYSQL添加新用户和数据库(命令行模式和phpmyadmin)

              一、命令行模式

              首先要声明一下:一般情况下,修改MySQL密码,授权,是需要有mysql里的root权限的。
              注:本操作是在WIN命令提示符下,phpMyAdmin同样适用。
              用户:phplamp
              用户数据库:phplampDB

              1.新建用户

              //登录MYSQL
              @>mysql -u root -p
              @>密码
              //创建用户
              mysql> insert into mysql.user(Host,User,Password) values('localhost','phplamp',password('1234'));
              //刷新系统权限表
              mysql>flush privileges;
              这样就创建了一个名为:phplamp  密码为:1234  的用户。

              //退出后登录一下
              mysql>exit;
              @>mysql -u phplamp -p
              @>输入密码
              mysql>登录成功

              2.为用户授权

              //登录MYSQL(有ROOT权限)。我里我以ROOT身份登录.
              @>mysql -u root -p
              @>密码
              //首先为用户创建一个数据库(phplampDB)
              mysql>create database phplampDB;
              //授权phplamp用户拥有phplamp数据库的所有权限
              @>grant all privileges on phplampDB.* to phplamp@localhost identified by '1234';
              //刷新系统权限表
              mysql>flush privileges;
              mysql>其它操作

              //如果想指定部分权限给一用户,可以这样来写:
              mysql>grant select,update on phplampDB.* to phplamp@localhost identified by '1234';
              //刷新系统权限表。
              mysql>flush privileges;

              mysql> grant 权限1,权限2,…权限n on 数据库名称.表名称 to 用户名@用户地址 identified by ‘连接口令’;

              权限1,权限2,…权限n代表select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14个权限。
              当权限1,权限2,…权限n被all privileges或者all代替,表示赋予用户全部权限。
              当数据库名称.表名称被*.*代替,表示赋予用户操作服务器上所有数据库所有表的权限。
              用户地址可以是localhost,也可以是ip地址、机器名字、域名。也可以用’%'表示从任何地址连接。
              ‘连接口令’不能为空,否则创建失败。

              例如:
              mysql>grant select,insert,update,delete,create,drop on vtdc.employee to This email address is being protected from spambots. You need JavaScript enabled to view it. identified by ‘123′;
              给来自10.163.225.87的用户joe分配可对数据库vtdc的employee表进行select,insert,update,delete,create,drop等操作的权限,并设定口令为123。

              mysql>grant all privileges on vtdc.* to This email address is being protected from spambots. You need JavaScript enabled to view it. identified by ‘123′;
              给来自10.163.225.87的用户joe分配可对数据库vtdc所有表进行所有操作的权限,并设定口令为123。

              mysql>grant all privileges on *.* to This email address is being protected from spambots. You need JavaScript enabled to view it. identified by ‘123′;
              给来自10.163.225.87的用户joe分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123。

              mysql>grant all privileges on *.* to joe@localhost identified by ‘123′;
              给本机用户joe分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123。

              3.删除用户

              @>mysql -u root -p
              @>密码
              mysql>DELETE FROM user WHERE User="phplamp" and Host="localhost";
              mysql>flush privileges;
              //删除用户的数据库
              mysql>drop database phplampDB;

              4.修改指定用户密码

              @>mysql -u root -p
              @>密码
              mysql>update mysql.user set password=password('新密码') where User="phplamp" and Host="localhost";
              mysql>flush privileges;
              mysql>quit;

              二、利用phpmyadmin

              1、成功登陆后的首页里填入新建的数据库名"sqlname",点击“创建”来新建数据库(如果创建不能成功,说明你没有管理权限)
              2、然后点击左边工具栏上部的“主目录”,然后点击右边栏里的“权限”
              3、然后点击右边栏里的“添加新用户”
              4、输入数据库用户名username、主机、密码后,点击下部的“执行”(除非你添加的是管理员,否则无需设置下面的“全局权限”)。
              5、然后在“按数据库指定权限”的下拉框中找到刚才添加的数据库"sqlname",选定后自动跳转到下一页面。
              6、在“按数据库指定权限”里全部点选,点击“执行”确定。
              7、下一页面上部出现了“您已经更新了'username'@'localhost'的权限”时,说明操作成功。

                Subscribe to this RSS feed
                Notice: Undefined offset: 1 in /var/www/vhosts/shan.info/httpdocs/templates/gk_publisher/html/pagination.php on line 18

                Notice: Undefined offset: 1 in /var/www/vhosts/shan.info/httpdocs/templates/gk_publisher/html/pagination.php on line 34

                Notice: Undefined offset: 2 in /var/www/vhosts/shan.info/httpdocs/templates/gk_publisher/html/pagination.php on line 34

                Notice: Undefined offset: 3 in /var/www/vhosts/shan.info/httpdocs/templates/gk_publisher/html/pagination.php on line 34

                Warning: count(): Parameter must be an array or an object that implements Countable in /var/www/vhosts/shan.info/httpdocs/templates/gk_publisher/html/com_k2/templates/default/user.php on line 145

                Notice: Undefined offset: 1 in /var/www/vhosts/shan.info/httpdocs/templates/gk_publisher/html/pagination.php on line 18

                Notice: Undefined offset: 1 in /var/www/vhosts/shan.info/httpdocs/templates/gk_publisher/html/pagination.php on line 34

                Notice: Undefined offset: 2 in /var/www/vhosts/shan.info/httpdocs/templates/gk_publisher/html/pagination.php on line 34

                Notice: Undefined offset: 3 in /var/www/vhosts/shan.info/httpdocs/templates/gk_publisher/html/pagination.php on line 34