1.安装环境\n操作系统:Red Hat Linux Enterprise AS 4.0\n数据库:MySQL 5.0.24\nWeb服务器:Apache 2.2.3\n脚本语言:PHP 5.1.6\n\n2.安装MySQL 5.0.24\n————-下载软件包mysql-5.0.24.tar.gz,地址http://www.mysql.com————-\n# tar zvxf mysql-5.0.24.tar.gz //解压缩\n# cd mysql-5.0.24 //进入解压缩后的文件目录\n# ./configure –prefix=/usr/local/mysql //设定安装目录\n–enable-thread-safe-client //编译线程安全版的客户端库\n–without-debug //关闭debug功能\n–localstatedir=/data/mysqldata //设定数据库文件目录\n# make //编译\n# make install //安装\n# /usr/local/mysql/bin/mysql_install_db //初始化授权\n# chown –R root:root /usr/local/mysql //文件属性改为root用户\n# cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf //复制配置文件\n———————————-启动MySQL服务———————————-\n# /usr/local/mysql/bin/mysqld_safe –user=root & //启动MySQL\n———————————-修改MySQL密码———————————-\n# /usr/local/mysql/bin/mysqladmin -uroot password mysqlsecret //修改密码\n———————————-关闭MySQL服务———————————-\n# /usr/local/mysql/bin/mysqladmin -uroot -pmysqlsecret shutdown //关闭MySQL\n 继续阅读
分类目录归档:Linux
【Linux服务器配置】FTP服务|vsftpd配置
【Linux服务器配置】FTP服务|vsftpd配置
\n
安装
\nrpm -qa|gerp vsftpd //查找vsftpd有没有安装
\n如果没有安装就
\n1、yum install vsftpd
\n2、vsftpd-2.0.1-5.i386.rpm (在第一张光盘)
\n在linux中有一个非常重要的一点就是要挂载光驱 mount /media/cdrom
\n在这里我们就不用源代码安装了。用的是rpm安装
\n#rpm -ivh vsftpd-2.0.1-5.i386.rpm
\n这里就安装好了。
\n
预配置
\nservice vsftpd start 启动vsftpd服务
\n如果在不设置任何的情况下,可以以匿名的方式访问该ftp。
\n注.如果访问不了的时候请大家要把linux的防火墙也要关闭:
\niptables -F 清除防火墙
\n在安装好ftp会产生几个文件:
\n/etc/vsftpd/vsftpd.conf 主配置文件
\n/etc/vsftpd.ftpusers 指定哪些用户不能访问FTP服务器
\n/etc/vsftpd.user_list 文件中指定的用户是否可以访问ftp服务器由vsftpd.conf文件中的userlist_deny的取值来决定。
\n
\n
\nvsftpd配置参数详细整理
\n
/etc/vsftpd/vsftpd.conf 配置
\n#接受匿名用户
\nanonymous_enable=YES
\n#匿名用户login时不询问口令
\nno_anon_password=YES
\n#匿名用户主目录
\nanon_root=(none)
\n#接受本地用户
\nlocal_enable=YES
\n#本地用户主目录
\nlocal_root=(none)
\n#如果匿名用户需要密码,那么使用banned_email_file里面的电子邮件地址的用户不能登录
\ndeny_email_enable=YES
\n#仅在没有pam验证版本时有用,是否检查用户有一个有效的shell来登录
\ncheck_shell=YES
\n#若启用此选项,userlist_deny选项才被启动
\nuserlist_enable=YES
\n#若为YES,则userlist_file中的用户将不能登录,为NO则只有userlist_file的用户可以登录
\nuserlist_deny=NO
\n#如果和chroot_local_user一起开启,那么用户锁定的目录来自/etc/passwd每个用户指定的目录(这个不是很清楚,很哪位熟悉的指点一下)
\npasswd_chroot_enable=NO
\n#定义匿名登入的使用者名称。默认值为ftp。
\nftp_username=FTP
\n
#################用户权限控制###############
\n#可以上传(全局控制).
\nwrite_enable=YES
\n#本地用户上传文件的umask
\nlocal_umask=022
\n#上传文件的权限配合umask使用
\n#file_open_mode=0666
\n#匿名用户可以上传
\nanon_upload_enable=NO
\n#匿名用户可以建目录
\nanon_mkdir_write_enable=NO
\n匿名用户其它的写权利(更改权限?)
\nanon_other_write_enable=NO
\n如果设为YES,匿名登入者会被允许下载可阅读的档案。默认值为YES。
\nanon_world_readable_only=YES
\n#如果开启,那么所有非匿名登陆的用户名都会被切换成guest_username指定的用户名
\n#guest_enable=NO
\n所有匿名上传的文件的所属用户将会被更改成chown_username
\nchown_uploads=YES
\n匿名上传文件所属用户名
\nchown_username=lightwiter
\n#如果启动这项功能,则所有列在chroot_list_file之中的使用者不能更改根目录
\nchroot_list_enable=YES
\n#允许使用"async ABOR"命令,一般不用,容易出问题
\nasync_abor_enable=YES
\n管控是否可用ASCII 模式上传。默认值为NO。
\nascii_upload_enable=YES
\n#管控是否可用ASCII 模式下载。默认值为NO。
\nascii_download_enable=YES
\n#这个选项必须指定一个空的数据夹且任何登入者都不能有写入的权限,当vsftpd 不需要file system 的权限时,就会将使用者限制在此数据夹中。默认值为/usr/share/empty
\nsecure_chroot_dir=/usr/share/empty
\n
###################超时设置##################
\n#空闲连接超时
\nidle_session_timeout=600
\n#数据传输超时
\ndata_connection_timeout=120
\n#PAVS请求超时
\nACCEPT_TIMEOUT=60
\n#PROT模式连接超时
\nconnect_timeout=60
\n
################服务器功能选项###############
\n#开启日记功能
\nxferlog_enable=YES
\n#使用标准格式
\nxferlog_std_format=YES
\n#当xferlog_std_format关闭且本选项开启时,记录所有ftp请求和回复,当调试比较有用.
\n#log_ftp_protocol=NO
\n#允许使用pasv模式
\npasv_enable=YES
\n#关闭安全检查,小心呀.
\n#pasv_promiscuous+NO
\n#允许使用port模式
\n#port_enable=YES
\n#关闭安全检查
\n#prot_promiscuous
\n#开启tcp_wrappers支持
\ntcp_wrappers=YES
\n#定义PAM 所使用的名称,预设为vsftpd。
\npam_service_name=vsftpd
\n#当服务器运行于最底层时使用的用户名
\nnopriv_user=nobody
\n#使vsftpd在pasv命令回复时跳转到指定的IP地址.(服务器联接跳转?)
\npasv_address=(none)
\n
#################服务器性能选项##############
\n#是否能使用ls -R命令以防止浪费大量的服务器资源
\n#ls_recurse_enable=YES
\n#是否使用单进程模式
\n#one_process_model
\n#绑定到listen_port指定的端口,既然都绑定了也就是每时都开着的,就是那个什么standalone模式
\nlisten=YES
\n#当使用者登入后使用ls -al 之类的指令查询该档案的管理权时,预设会出现拥有者的UID,而不是该档案拥有者的名称。若是希望出现拥有者的名称,则将此功能开启。
\ntext_userdb_names=NO
\n#显示目录清单时是用本地时间还是GMT时间,可以通过mdtm命令来达到一样的效果
\nuse_localtime=NO
\n#测试平台优化
\n#use_sendfile=YES
\n
################信息类设置################
\n#login时显示欢迎信息.如果设置了banner_file则此设置无效
\nftpd_banner=欢迎来到湖南三辰Fake-Ta FTP 网站.
\n#允许为目录配置显示信息,显示每个目录下面的message_file文件的内容
\ndirmessage_enable=YES
\n#显示会话状态信息,关!
\n#setproctitle_enable=YES
\n
############## 文件定义 ##################
\n#定义不能更改用户主目录的文件
\nchroot_list_file=/etc/vsftpd/vsftpd.chroot_list
\n#定义限制/允许用户登录的文件
\nuserlist_file=/etc/vsftpd/vsftpd.user_list
\n#定义登录信息文件的位置
\nbanner_file=/etc/vsftpd/banner
\n#禁止使用的匿名用户登陆时作为密码的电子邮件地址
\nbanned_email_file=/etc/vsftpd.banned_emails
\n#日志文件位置
\nxferlog_file=/var/log/vsftpd.log
\n#目录信息文件
\nmessage_file=.message
\n
############## 目录定义 #################
\n#定义用户配置文件的目录
\nuser_config_dir=/etc/vsftpd/userconf
\n#定义本地用户登陆的根目录,注意定义根目录可以是相对路径也可以是绝对路径.相对路径是针对用户家目录来说的.
\nlocal_root=webdisk #此项设置每个用户登陆后其根目录为/home/username/webdisk
\n#匿名用户登陆后的根目录
\nanon_root=/var/ftp
\n
#############用户连接选项#################
\n#可接受的最大client数目
\nmax_clients=100
\n#每个ip的最大client数目
\nmax_per_ip=5
\n#使用标准的20端口来连接ftp
\nconnect_from_port_20=YES
\n#绑定到某个IP,其它IP不能访问
\nlisten_address=192.168.0.2
\n#绑定到某个端口
\n#listen_port=2121
\n#数据传输端口
\n#ftp_data_port=2020
\n#pasv连接模式时可以使用port 范围的上界,0 表示任意。默认值为0。
\npasv_max_port=0
\n#pasv连接模式时可以使用port 范围的下界,0 表示任意。默认值为0。
\npasv_min_port=0
\n
##############数据传输选项#################
\n#匿名用户的传输比率(b/s)
\nanon_max_rate=51200
\n#本地用户的传输比率(b/s)
\nlocal_max_rate=5120000
\n
########################################
\n别外,如果要对每个用户进行单独的控制,只需要在user_config_dir中建立username文件,内容为数据传输和用户权利里面设置个人的合适的选项,用户自定义文件同样适合用pam支持的虚拟用户
\n附: FTP 数字代码的意义
\n110 重新启动标记应答。
\n120 服务在多久时间内ready。
\n125 数据链路埠开启,准备传送。
\n150 文件状态正常,开启数据连接端口。
\n200 命令执行成功。
\n202 命令执行失败。
\n211 系统状态或是系统求助响应。
\n212 目录的状态。
\n213 文件的状态。
\n214 求助的讯息。
\n215 名称系统类型。
\n220 新的联机服务ready。
\n221 服务的控制连接埠关闭,可以注销。
\n225 数据连结开启,但无传输动作。
\n226 关闭数据连接端口,请求的文件操作成功。
\n227 进入passive mode。
\n230 使用者登入。
\n250 请求的文件操作完成。
\n257 显示目前的路径名称。
\n331 用户名称正确,需要密码。
\n332 登入时需要账号信息。
\n350 请求的操作需要进一部的命令。
\n421 无法提供服务,关闭控制连结。
\n425 无法开启数据链路。
\n426 关闭联机,终止传输。
\n450 请求的操作未执行。
\n451 命令终止:有本地的错误。
\n452 未执行命令:磁盘空间不足。
\n500 格式错误,无法识别命令。
\n501 参数语法错误。
\n502 命令执行失败。
\n503 命令顺序错误。
\n504 命令所接的参数不正确。
\n530 未登入。
\n532 储存文件需要账户登入。
\n550 未执行请求的操作。
\n551 请求的命令终止,类型未知。
\n552 请求的文件终止,储存位溢出。
\n553 未执行请求的的命令,名称不正确。
\n
2、VSFTPD官方资料翻译版(不完整版)—摘自中国Linux公社
\n翻译了部分VSFTPD的官方资料。
\n有些知道是什么意思,但难于翻译。有些涉及专业的知识,我自己也不懂,只好按字面翻译。有些我自己看不懂,只好尽量翻译。
\n如果看了其中一部分觉得糊涂,请参阅官方文挡。
\n
安装篇
\n===============
\n这个文件详细介绍了如何从VSFTPD的.tar.gz分发包开始,建立和安装并运行VSFTPD。
\n
1)建立VSFTPD
\n先进入解压.tar.gz文件后产生的目录内。如下:
\ncd vsftpd-2.0.1
\n
编辑"builddefs.h"以操作compile-time设定。(tcp_wrappers build,等)
\n
输入make,回车(如果它不工作请发邮件通知我 .
\n这将产生一个二进制文件,你可以验证一下。如下:
\n[chris@localhost vsftpd]$ ls -l vsftpd
\n-rwxrwxr-x 1 chris chris 61748 Sep 27 00:26 vsftpd
\n
2)满足VSFTPD安装所需的一些条件
\nVSFTPD默认设置需要一个"nobody"用户,如果这个用户不存在,那么添加它。如下:
\n[root@localhost root]# useradd nobody
\nuseradd: user nobody exists
\n
VSFTPD默认设置需要一个空目录:/usr/share/empty.增加这个目录,如果它还不存在的话。如下:
\n[root@localhost root]# mkdir /usr/share/empty/
\nmkdir: cannot create directory `/usr/share/empty’: File exists
\n
如果容许匿名用户(anonymous),那么你将需要一个"ftp"用户和其home目录(这个home目录不属于“ftp”用户,而且“ftp"用户也对其没有写权限)在你的系统中存在。
\n以下命令用来创建一个"ftp"用户,如果它还不存在的话。
\n[root@localhost root]# mkdir /var/ftp/
\n[root@localhost root]# useradd -d /var/ftp ftp
\n
(即使你的"ftp"用户已经存在,完成以下这两步也是很有好处的:)
\n[root@localhost root]# chown root.root /var/ftp
\n[root@localhost root]# chmod og-w /var/ftp
\n
3)安装VSFTPD的配置、执行和帮助文件。
\n输入"make install"后会将二进制文件和帮助文件拷贝到适当的目录。
\n你也可以手工拷贝这些文件:
\ncp vsftpd /usr/local/sbin/vsftpd
\ncp vsftpd.conf.5 /usr/local/man/man5
\ncp vsftpd.8 /usr/local/man/man8
\n
"make install"不会拷贝默认的配置文件,所以建议你手工拷贝:
\ncp vsftpd.conf /etc
\ndaidong注:根据你系统版本的不同,也可能是 cp vsftpd.conf /etc/vsftpd
\n
\n
4)测试 (无inetd影响)
\nVSFTPD能运行在独立模式(standalone)或者通过inetd(xinetd)来启动。
\n你能通过inetd来运行vsftpd以更好地控制它。但我们在首次运行时不这么做,以便检查系统是否现在配置正常。
\n编辑/etc/vsftpd.conf(daidong注:也可能是/etc/vsftpd/vsftpd.conf),并在最下面加入以下这一行:
\nlisten=YES
\n
这将告诉VSFTPD不要从inetd启动。
\nOK,现在试着启动FTP。
\n以ROOT登录。
\n确定你没有运行其他FTP服务(否则VSFTPD不能占用FTP所需的21端口)。
\n运行那个二进制文件,如下:
\n[root@localhost root]# /usr/local/sbin/vsftpd &
\n[1] 2104
\n
如果一切正常,那么你将连上FTP服务器,如下:
\n
[chris@localhost chris]$ ftp localhost
\nConnected to localhost (127.0.0.1).
\n220 (vsFTPd 1.1.1)
\nName (localhost:chris): ftp
\n331 Please specify the password.
\nPassword:
\n230 Login successful. Have fun.
\nRemote system type is UNIX.
\nUsing binary mode to transfer files.
\nftp> ls
\n227 Entering Passive Mode (127,0,0,1,229,133)
\n150 Here comes the directory listing.
\nd–x–x–x 2 0 0 4096 Jan 14 2002 bin
\nd–x–x–x 2 0 0 4096 Apr 21 20:52 etc
\ndrwxr-xr-x 2 0 0 4096 Apr 21 20:52 lib
\ndrwxr-sr-x 2 0 50 4096 Jul 26 22:58 pub
\n226 Directory send OK.
\nftp>
\n
5)从inetd或者类似方式启动(官方推荐使用standalone方式)
\n你也许想通过inetd或者类似方式启动VSFTPD,因为这能给你更多的感受。例如xinetd就有很多的设置。
\n(注意:VSFTPD的内在机制屏蔽了xinetd的大多数的有用的设置)。
\n
如果使用标准的"inetd",你需要编辑/etc/inetd.conf,在其中加入以下一行:
\nftp stream tcp nowait root /usr/sbin/tcpd /usr/local/sbin/vsftpd
\n
(确定你删除或者注释掉一些已存在的FTP服务配置行。如果你没有安装tcp_wrappers,或者不想使用它们,那么请去掉/usr/sbin/tcpd part).
\n
inetd需要指定并重新载入它的配置文件:
\nkill -SIGHUP `pidof inetd`
\n
如果你想使用"xinetd",请参阅我们提供的范例 /EXAMPLE/INTERNET_SITE/README. 而其他范例文件将告诉你如何调配出更强大的xinetd功能。
\n
6)为本地登录配置PAM文件(可选)
\n如果你在一台激活了PAM的设备上运行VSFTPD,你需要提供一个 /etc/pam.d/ftp 文件。否则非匿名用户将无法登录服务器。
\n(注:如果你的PAM版本比较老,那么这个文件也许是 /etc/pam.conf).
\n
做为一个标准设置,你可以拷贝一个已提供的范例文件,如下:
\ncp RedHat/vsftpd.pam /etc/pam.d/ftp
\n
7)自定义你的配置文件
\n完成以上的配置后,建议你安装一个配置文件。默认的配置文件位置是/etc/vsftpd.conf. 在VSFTPD软件分发包内有一个范例配置文件。
\n你可以拷贝其为/etc/vsftpd.conf以做进一步修改。
\ncp vsftpd.conf /etc
\n(daidong注:也可能是 cp vsftpd.conf /etc/vsftpd ).
\n
这个默认配置即不容许本地登录也不容许匿名用户上传,也许你希望更改这个配置。
\n
\n其它
\n===================
\n测试平台 (已通过)
\n-流行的,功能完善的平台都能测试通过。在以下平台的较新版本,VSFTPD工作得很好。在其大部分较早的版本下,也运行正常。
\n- RedHat Linux
\n- RedHat Enterprise Linux
\n- Solaris / GNU tools (Solaris 8 or newer)
\n- SuSE Linux
\n- Debian Linux
\n- OpenBSD
\n- FreeBSD
\n- NetBSD
\n- HP-UX / GNU tools
\n- IRIX / GNU tools
\n- Mac OS X (note; older versions have setgroups() problem. 10.3.4 reported OK)
\n虚拟用户1
\n=============
\n这个例子示范了如何为虚拟用户设置VSFTPD/PAM。
\n虚拟用户是一个在系统中并不作为一个登录实体而存在的用户。使用虚拟用户比使用真实的用户更安全,因为这个账号只能用于FTP服务器。
\n
虚拟用户经常用来提供给不大可信任的用户访问某些资源,而这些资源通常是其他普通用户不能访问的。
\n
1)创建虚拟用户数据库
\n我们将使用pam_userdb来认证虚拟用户。这需要提供一个“db"格式(一种通用数据库格式)的用户名/密码文件。
\n创建一个"db"格式的文件,首先要创建一个标准文本文件,并把用户名,密码以竖直排列方式输入。如logins.txt:
\ntom
\nfoo
\nfired
\nbar
\n这个例子中,tom用户的密码是foo.fired用户的密码是bar.
\n以ROOT登录,创建一个数据库文件,如下:
\ndb_load -T -t hash -f logins.txt /etc/vsftpd_login.db
\n(这要求berkeley db程序已经安装)
\n(注:一些系统也许安装了多个版本的"db",所以某些情况下你可能使用"db3_load"才是正确的。对于一些 Debian系统就是这样。
\n关键在于要让pam_userdb相信它的登录数据库是哪一个db版本所产生(一般都是db3,尽管你的系统里可能安装的是db4).)
\n
这将创建/etc/vsftpd_login.db文件。显然,你希望设定这个文件的权限:
\nchmod 600 /etc/vsftpd_login.db
\n
要了解更多关于维护你的登录数据库的信息,请在"berkeley DB"察看相关文档:
\nhttp://www.sleepycat.com/docs/utility/index.html
\n
2)用你的新数据库创建一个PAM文件
\n请参考范例vsftpd.pam,它包含2行:
\nauth required /lib/security/pam_userdb.so db=/etc/vsftpd_login
\naccount required /lib/security/pam_userdb.so db=/etc/vsftpd_login
\n
这是告诉PAM用新的数据库去验证用户。把这个PAM文件拷贝到PAM目录,一般是/etc/pam.d
\ncp vsftpd.pam /etc/pam.d/ftp
\n
3)为虚拟用户设置home目录
\n
useradd -d /home/ftpsite virtual
\nls -ld /home/ftpsite
\n(which should give):
\ndrwx—— 3 virtual virtual 4096 Jul 30 00:39 /home/ftpsite
\n
\n我们已经创建了一个名叫"virtual"的用户,home目录是"/home/ftpsite".
\n我们拷贝一些东西到这个下载目录:
\ncp /etc/hosts /home/ftpsite
\nchown virtual.virtual /home/ftpsite/hosts
\n
4)创建你的vsftpd.conf配置文件
\n请参考这个目录下的例子。让我们一行行地看一看这些配置:
\nanonymous_enable=NO
\nlocal_enable=YES
\n
安全起见,屏蔽了匿名用户,只启用了非匿名用户(即虚拟用户使用的账号)
\n
write_enable=NO
\nanon_upload_enable=NO
\nanon_mkdir_write_enable=NO
\nanon_other_write_enable=NO
\n
为了安全请确认这几个配置,这将关闭写的权限。
\n
chroot_local_user=YES
\n
这将把虚拟用户锁定在我们在以上设置的/home/ftpsite目录内。
\n
guest_enable=YES
\nguest_username=virtual
\n
guest_enable非常重要-它激活了虚拟用户!而guest_username说明所有的虚拟用户都对应我们在上面设置的真实用户:“virtual".
\n这同时确定了虚拟用户在文件系统中的位置,也就是说,虚拟用户的home目录即"virtual"用户的home目录:/home/ftpsite。
\n
listen=YES
\nlisten_port=10021
\n
这让VSFTPD以独立模式(standalone)运行,而不是从inetd方式启动。也就是说,你运行VSFTPD可执行文件就启动了FTP服务。
\n同时也让VSFTPD启用非标准端口10021来监听FTP请求(FTP一般使用21端口)。
\n
pasv_min_port=30000
\npasv_max_port=30999
\n
这设定了被动模式的FTP请求端口。当你配置了一个防火墙的时候,这个配置就很好用。
\n
拷贝范例配置文件到/etc
\ncp vsftpd.conf /etc/
\n(daidong注:也可能是/etc/vsftpd)
\n
5)启动VSFTPD
\n到VSFTPD二进制文件所在的目录,输入:
\n./vsftpd
\n
如果一切正常,这个命令将生效。否则,你将会看到一些错误信息的反馈。
\n
6)测试
\n启动另一个会话。(或者ctrl-z,再输入"bg",让VSFTPD在后台运行)。
\n这是一个FTP会话的例子:
\n
#ftp localhost 10021
\n#Connected to localhost (127.0.0.1).
\n#220 ready, dude (vsFTPd 1.1.0: beat me, break me)
\n#Name (localhost:chris): tom
\n#331 Please specify the password.
\n#Password:
\n#230 Login successful. Have fun.
\n#Remote system type is UNIX.
\n#Using binary mode to transfer files.
\n#ftp> pwd
\n#257 "/"
\n#ftp> ls
\n#227 Entering Passive Mode (127,0,0,1,117,135)
\n#150 Here comes the directory listing.
\n#226 Transfer done (but failed to open directory).
\n#ftp> size hosts
\n#213 147
\n#ftp>
\n
注释:
\n密码是"foo"
\n出现”failed to open directory“的话,别担心。这是因为/home/ftpsite目录不容许被任意浏览。
\n(我们可以更改anon_world_readable_only=NO以消除告警,但为了安全,还是保留这个配置)。
\n我们能通过size命令看到我们已经访问了被我们拷贝到这里的"hosts"文件。
\n
vsftpd.conf
\nanonymous_enable=NO
\nlocal_enable=YES
\nwrite_enable=NO
\nanon_upload_enable=NO
\nanon_mkdir_write_enable=NO
\nanon_other_write_enable=NO
\nchroot_local_user=YES
\nguest_enable=YES
\nguest_username=virtual
\nlisten=YES
\nlisten_port=10021
\npasv_min_port=30000
\npasv_max_port=30999
\n虚拟用户2
\n
===============
\n这个例子将演示如何扩展“VIRTUAL_USERS”那个范例,从而实现更复杂一点的配置。
\n
让我们假定我们需要2种不同的虚拟用户:一种只能浏览并下载资源,另一种能上传文件并浏览站内资源。
\n
要激活这个设置,我们将使用VSFTPD的强大的“单个用户配置”功能(是V1.1.0后出现的新功能)。
\n
在前一个虚拟用户范例中,我们创建了2个用户-tom和fred.
\n我们将实现fred有写权限以上传新文件,同时tom只能下载文件。
\n
1)激活单个用户配置功能。
\n要激活这个功能,需要增加以下配置行到配置文件:
\n
user_config_dir=/etc/vsftpd_user_conf
\n
并且创建目录:
\n
mkdir /etc/vsftpd_user_conf
\n
2)授予tom读取所有文件和目录的权限
\n在上一个例子的最后,我们注意到虚拟用户只能浏览所有的完全可读属性的目录和文件。我们使/home/ftpsite完全可读,而且被上传的文件也
\n赋予了完全可读的权限(daidong注:意思是说这样虚拟用户就能读取所有的文件了)。但实现这个目的的另一个方法是授权tom能下载那些非完全可读的文件。
\n
对于tom,他的配置文件中需要修改一个设置:
\nanon_world_readable_only:
\n
设为"anon_world_readable_only=NO" > /etc/vsftpd_user_conf/tom
\n(daidong注:既把默认配置修改了anon_world_readable_only后,复制到/etc/vsftpd_user_conf下,名字为tom)
\n
验证一下结果-以tom登录,“ls”将返回一个目录列表。如果以fred登录将不会如此。
\n
注意:重启VSFTPD以启用配置文件/etc/vsftpd.conf(高级用户也可以发送SIGHUP给VSFTPD的监听进程).
\n
3)授予freg读取所有文件/目录并创建新文件/目录的权限,但让他不能对已存在的文件/目录进行操作.
\n
echo "anon_world_readable_only=NO" > /etc/vsftpd_user_conf/fred
\necho "write_enable=YES" >> /etc/vsftpd_user_conf/fred
\necho "anon_upload_enable=YES" >> /etc/vsftpd_user_conf/fred
\n
验证一下-以tom登录,将不能上传,而fred就可以.
\n试图删除一个文件–噢,你们俩都不行!
【Linux基础】常用配置命令
一、RPM命令
\n-i 安装所选择的一个或多个软件包
\n-q 查询软件包系统或所选择的一个或多个软件包
\n-e 删除所有选择的一个或多个软件包
\n-u 把一个已经安装好的软件包升级到新版本
\n-v 验证已安装或已选择的一个或多个软件包
\n
\n 1、安装RPM软件包的命令格式如下:
\n rpm -i 【安装选项】【软件包名字】 安装选项一般选择“–nodeps” e.g:#rpm -ivh –nodeps mplayer-1.0-0.2.pre2.fr.i386.rpm
\n 2、删除安装的RPM软件包 rpm -e 【删除选项】【软件包名字】 e.g #rpm -e mplayer
\n 3、升级 e.g:#rpm -uvh –nodeps mplayer-1.0-0.2.pre2.fr.i386.rpm
\n 4、刷新 e.g:#rpm -Fvh –nodeps mplayer-1.0-0.2.pre2.fr.i386.rpm
\n 5、查询 1.查看系统中所有已经安装的包,要加参数-a : e.g #rpm -qa
\n 2.查询系统中已经安装的软件: e.g rpm -q【软件名】
\n
\n
二、tar命令
\n格式: tar 选项 文件目录列表
\n功能: 对文件目录进行打包备份
\n选项:
\n-c 建立新的归档文件
\n-r 向归档文件末尾追加文件
\n-x 从归档文件中解出文件
\n-O 将文件解开到标准输出
\n-v 处理过程中输出相关信息
\n-f 对普通文件操作
\n-z 调用gzip来压缩归档文件,与-x联用时调用gzip完成解压缩
\n-Z 调用compress来压缩归档文件,与-x联用时调用compress完成解压缩
\n例如:
\n1.将当前目录下所有.txt文件打包并压缩归档到文件this.tar.gz,我们可以使用
\ntar czvf this.tar.gz ./*.txt
\n2.将当前目录下的this.tar.gz中的文件解压到当前目录我们可以使用
\ntar xzvf this.tar.gz ./
\n
\n
三、chmod命令
\n使用权限 : 所有使用者
\n使用方式 : chmod [-cfvR] [–help] [–version] mode file…
\n说明 : Linux/Unix 的档案调用权限分为三级 : 档案拥有者、群组、其他。利用 chmod 可以藉以控制档案如何被他人所调用。
\n参数 :
\nmode : 权限设定字串,格式如下 : [ugoa…][[+-=][rwxX]…][,…],其中
\nu 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
\n+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
\nr 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。
\n-c : 若该档案权限确实已经更改,才显示其更改动作
\n-f : 若该档案权限无法被更改也不要显示错误讯息
\n-v : 显示权限变更的详细资料
\n-R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)
\n–help : 显示辅助说明
\n–version : 显示版本
\n范例 :将档案 file1.txt 设为所有人皆可读取 :
\nchmod ugo+r file1.txt
\n将档案 file1.txt 设为所有人皆可读取 :
\nchmod a+r file1.txt
\n将档案 file1.txt 与 file2.txt 设为该档案拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入 :
\nchmod ug+w,o-w file1.txt file2.txt
\n将 ex1.py 设定为只有该档案拥有者可以执行 :
\nchmod u+x ex1.py
\n将目前目录下的所有档案与子目录皆设为任何人可读取 :
\nchmod -R a+r *
\n此外chmod也可以用数字来表示权限如 chmod 777 file
\n语法为:chmod abc file
\n其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。
\nr=4,w=2,x=1
\n若要rwx属性则4+2+1=7;
\n若要rw-属性则4+2=6;
\n若要r-x属性则4+1=7。
\n范例:
\nchmod a=rwx file
\n和
\nchmod 777 file
\n效果相同
\nchmod ug=rwx,o=x file
\n和
\nchmod 771 file
\n效果相同
\n若用chmod 4755 filename可使此程序具有root的权限
\n
\n
4、 chkconfig命令
\n语法:chkconfig [–add][–del][–list][系统服务]或
\nchkconfig [–level<等级代号>][系统服务][on/off/reset]
\n
\n补充说明:这个是redhat公司遵循gpl规则所开发的程序,它可以查询操作系统在每一个执行等级(runlevel)中,会执行哪些系统服务,其中包括各种daemon。
\n
\nlinux os 将操作环境分为以下7个等级:
\n0:关机(请不要切换到此等级)
\n1:单人使用者模式的文字界面
\n2:多人使用者模式的文字界面,不具有网络档案系统(NFS)功能
\n3:多人使用者模式的文字界面,具有网络档案系统(NFS)功能
\n4:某些发行版的linux使用此等级进入x windows system
\n5:某些发行版的linux使用此等级进入x windows system
\n6:重新启动
\n
\n参数: –add 新增所指定的系统服务
\n–del 删除所指定的系统服务
\n–level 指定该系统服务要在哪个执行等级中开启或关闭
\n–list 列出当前可从chkconfig指令管理的所有系统服务和等级代号
\non/off/reset 在指定的执行登记,开启/关闭/重置该系统服务
\n
\nchkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息。谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接。
\n语法:
\nchkconfig –list [name]
\nchkconfig –add name
\nchkconfig –del name
\nchkconfig [–level levels] name <on|off|reset>
\nchkconfig [–level levels] name
\nchkconfig 没有参数运行时,显示用法。如果加上服务名,那么就检查这个服务是否在当前运行级启动。如果是,返回true,否则返回false。如果在服务名后面指定 了on,off或者reset,那么chkconfi 会改变指定服务的启动信息。on和off分别指服务被启动和停止,reset指重置服务的启动信息,无论有问题的初始化脚本指定了什么。on和off开 关,系统默认只对运行级3,4,5有效,但是reset可以对所有运行级有效。
\n–level选项可以指定要查看的运行级而不一定是当前运行级。
\n需要说明的是,对于每个运行级,只能有一个启动脚本或者停止脚本。当切换运行级时,init不会重新启动已经启动的服务,也不会再次去停止已经停止的服务。
\nchkconfig –list :显示所有运行级系统服务的运行状态信息(on或off)。如果指定了name,那么只显示指定的服务在不同运行级的状态。
\nchkconfig –add name:增加一项新的服务。chkconfig确保每个运行级有一项启动(S)或者杀死(K)入口。如有缺少,则会从缺省的init脚本自动建立。
\nchkconfig –del name:删除服务,并把相关符号连接从/etc/rc[0-6].d删除。
\nchkconfig [–level levels] name <on|off|reset>:设置某一服务在指定的运行级是被启动,停止还是重置。例如,要在3,4,5运行级停止nfs服务,则命令如下:
\nchkconfig –level 345 nfs off
\n
\n运行级文件:
\n每个被chkconfig管理的服务需要在对应的init.d下的脚本加上两行或者更多行的注释。第一行告诉chkconfig缺省启动的运行级以及启动 和停止的优先级。如果某服务缺省不在任何运行级启动,那么使用 – 代替运行级。第二行对服务进行描述,可以用 跨行注释。
\n例如,random.init包含三行:
\n# chkconfig: 2345 20 80
\n# description: Saves and restores system entropy pool for
\n# higher quality random number generation.
\n
\n附加介绍一下Linux系统的运行级的概念:
\nLinux中有多种运行级,常见的就是多用户的2,3,4,5 ,很多人知道5是运行X-Windows的级别,而0就是关机了。运行级的改变可以通过init命令来切换。例如,假设你要维护系统进入单用户状态,那 么,可以使用init1来切换。在Linux的运行级的切换过程中,系统会自动寻找对应运行级的目录/etc/rc[0-6].d下的K和S开头的文件, 按后面的数字顺序,执行这些脚本。对这些脚本的维护,是很繁琐的一件事情,Linux提供了chkconfig命令用来更新和查询不同运行级上的系统服 务。
\n
\n范例:
\n
\n1.查看在各种不同的执行等级中,各项服务的状况:
\n$chkconfig –list
\n2.列出系统服务vsftpd在各个执行等级的启动情况:
\n$chkconfig –list vsftpd
\n3.在执行等级3,5时,关闭vsftpd系统服务:
\n$chkconfig –level 35 vsftpd off
\n4.在执行等级2,3,5时,开启 vsftpd系统服务:
\n$chkconfig –level 235 vsftpd on
\n5.关闭一些自己不需要的服务 ->
\n如果没有打印机:
\nchkconfig –level 235 cups off
\n如果没有局域网:
\nchkconfig –level 235 smb off
\n如果不需要远程用户登录的:
\nchkconfig –level 235 sshd off
\n如果不需要定时任务的:
\nchkconfig –level 235 crond off
\n如果不需要添加新硬件的:
\nchkconfig –level 235 kudzu off
\n
\n
yum—自动下载并安装软件
\n例如:要安装APACHE,则:yun install -y httpd
\n
\n
\n wget—从指定地址下载文件
\n例如:wget ftp://vsftpd.beasts.org/users/cevans/vsftpd-2.2.1.tar.gz 就会下载到当前目录
\n
(注意:如果您的系统使用最小安装时,可能没有该软件。需要单独安装,可以上网的话就直接使用yun命令就可以方便的安装了。命令如下:yun install -y wget)
\n
\n
rm—文件删除
\n
用法:rm [选项]… 文件…
\n删除指定的<文件>。
\n-d, –directory 删除<文件>,即便该文件可能是非空目录
\n(只限超级用户;仅当您的系统支持“unlink”非空目录
\n时才有效)
\n-f, –force 略过不存在的文件,决不提示
\n-i, –interactive 进行任何删除操作前必须先确认
\n–no-preserve-root 不特殊对待“/”(默认值)
\n–preserve-root 不允许在“/”上递归操作
\n-r, -R, –recursive 递归删除目录及其内容
\n-v, –verbose 详细显示进行的步骤
\n–help 显示此帮助信息并退出
\n–version 输出版本信息并退出
\n
\n默认情况下,rm 不删除目录。使用 –recursive (-r 或 -R)选项可以删除每个列出的
\n目录及其下面的内容。
\n
\n要删除第一个字符为“-”的文件 (例如“-foo”),请使用以下其中一种方法:
\n rm — -foo
\nrm ./-foo
\n
\n请注意,如果使用 rm 来删除文件,通常仍可以将该文件恢复原状。如果想保证
\n该文件的内容无法还原,请考虑使用 shred。
\n
【Linux服务器配置】yum安装WEB服务器|LAMP v1.1
yum安装Linux+apache+Mysql+PHP详细配置
\n
-----------------------
\n
\n
-----------------------------------------------
\n
#为了避免出错,先关掉防火墙:service iptables stop或/etc/init.d/iptables stop
\n
-----------------------------------------------
\n
使用一下命令下载并安装Linux+apache+Mysql+PHP。
\n yum install httpd mysql-server php php-devel php-mysql php-mbstring php-mcrypt php-gd
\n设置开机自动运行服务
\nchkconfig –level 235 httpd on
\nchkconfig –level 235 mysqld on
\n现在运行HTTP和数据库服务
\nservice httpd start
\nservice mysqld start
\n
\n下面这些都是重要的配置文件或位置
\napache的
\n /etc/httpd/conf/httpd.conf
\n/var/www/html/
\n/var/www/error/
\n/var/log/httpd/
\n初步配置:vi /etc/httpd/conf/httpd.conf
\n1、修改 ServerName localhost:80
\n2、修改 DirectoryIndex 添加几个默认文档如index.htm和index.php
\n3、修改 AddDefaultCharset GB2312
\n
\nMySQL的
\n/etc/my.cnf
\n/var/lib/mysql/ 数据库放置位置
\n开启MySQL的服务。方法1、service mysqld start 方法2、/etc/init.d/mysqld start
\n测试MYSQL运行是否正常
\n[root@CentOS-Josen cache]# netstat -tuln | grep ‘:3306’
\ntcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
\n进入mysql,第一次进入不需要密码,然后设置密码
\nmysql -u root 然后退出quit
\nmysqladmin -u root password ‘yourpassword’
\n用刚才设置的密码进入:mysql -u root -p
\n
让不同的用户管理不同的数据库(例如:用户testdb管理testdb用户)
\n[注意,进入数据库后,所有命令后面必须跟一个分号,否则操作无效并报错!]
\nmysql>create database testdb;
\nmysql>grant all privileges on testdb.* to testdb@localhost indentified by ‘yourpassword’;
\n测试一下:用testdb进入数据库:mysql -u testdb -p 进去后用:mysql>show databases;看是否有数据库
\n
\n
\nPHP的配置文件和测试
\n/usr/lib/httpd/modules/libphp4.so
\n/etc/httpd/conf.d/php.conf
\n/etc/php.ini
\n/etc/hphp.d/mysql.ini /usr/lib/php4/mysql.so
\n
vi /var/www/html/info.php
\n<?php
\nphpinfo();
\n?>
\n
\n
安装phpmyadmin(php5.2+才能使用phpMyAdmin3)
\n下载phpmyadmin包:http://www.phpmyadmin.net/home_page/downloads.php
\nwget http://nchc.dl.sourceforge.net/project/phpmyadmin/phpMyAdmin/2.11.10/phpMyAdmin-2.11.10-all-languages.tar.gz
\n
\n然后解压 tar zxvf phpmyadmin*.tar.gz
\n改名( mv phpMyAdmin-3.3.0-all-languages phpmyadmin)并放到/var/www/html/phpmyadmin
\n拷贝配置文件phpmyadmin/libraries/config.default.php 到phpmyadmin/config.inc.php
\nvi /var/www/html/phpmyadmin/config.inc.php
\n 1、$cfg[‘PmaAbsoluteUri’] = ‘http://192.168.1.6/phpmyadmin/’;
\n2、查找 $cfg[‘Servers’][$i][‘password’] = ”;填上自己的MYSQL密码
\n 3、$cfg[‘Servers’][$i][‘auth_type’] =‘cookie’ 设置为cookie
\n保存并对出。
\n
如果没有权限执行,则给phpmyadmin目录的所有文件夹上755属性。chmod -R 755 phpmyadmin
\n到此就配置完成,在浏览器里输入地址查看是否可以浏览。注意,不要是777。否则可能出现以下错误:"配置文件错误的权限,不应该是可写的!"
\n
常见问题:
\n1、出现“配置文件现在需要绝密的短语密码”的解决方法:在 $cfg[‘blowfish_secret’] = ‘ ‘ 里随便填个字符串即可
【LINUX安装部署】 从PXE网络安装Linux
【Linux视频教程】赶星作品:Linux实战工程师系列 – 从PXE网络安装Linux
http://www.boobooke.com/v/bbk1604/video.swf
IT视频教程 IT播吧最新最全视频教程在线观看
http://itboba.com/
Linux培训,嵌入式Linux培训,Oracle培训_Linux认证,OCP,RHCE认证培训,嵌入式培训,软件测试_尚观高端Linux培训机构.mht
http://www.uplooking.com/