Author Archives: 小f

网站迁移常用命令

假期将网站迁移到新服务器同时对系统进行了升级,并做了部分安全维护,整理一下。

数据库导出:mysqldump -uusername -p dbname > /home/admin/name.sql
导出指定数据表:mysqldump -uusername -p dbname table1 table2 > /home/admin/name.sql
数据库导入:mysql -uusername -p dbname < /home/admin/name.sql
文件压缩:zip -r  zipname.zip  filename     zip -r zipname.zip *
文件解压:unzip zipname.zip
文件下载:wget fileurl
返回上级目录:cd ../
修改文件所属用户组:chown -R username.groupname filename
修改文件属性为777:chmod -R 777 filename

以上命令基本即可就可以完成网站的迁移,数据库备份,网站文件打包备份,下载到新的服务器,还原数据库和网站文件,重新配置数据库帐号 密码等信息,修改相关文件属性及所属用户组,更新缓存即可完成网站的迁移。

完成以上迁移后,对不需要php权限的相关目录(图片、模板、附件等目录)进行限制,提高安全性,简单的做法通过htacess文件进行限制:

RewriteEngine on RewriteCond % !^$
 RewriteRule images/(.*).(php)$ – [F]
 RewriteRule uploadfile/(.*).(php)$ – [F]
 RewriteRule templates/default/(.*).(php)$ –[F]

 

在 ProFTPD 中限速、限制连接数、限制用户读取、写入权限

DA面板默认使用的ftp是proftpd,需要对一些ftp帐号进行限速、限制连接数、限制用户读取、写入权限以避免影响服务器上网页访问速度。

 

设置如下:

MaxClients 10 #表示FTP连接数最大为10
MaxClientsPerHost 10 #表示每个客户端到FTP服务器的连接数为10
MaxClientsPerUser 10 #表示每个Userid到FTP服务器的连接数为10
<Limit WRITE> #不允许写
 DenyUser down
 </Limit>
 <Limit RMD RNFR DELE RETR> #不允许删除,改名,下载
 DenyUser upload
 </Limit>
 TransferRate RETR 100 user down #下载限速100KB/S
 TransferRate STOR 300 user upload #上传限速300KB/S
 TransferRate RETR 100:52428800  #表示对下载50M以下的文件不限速,超过50M了才限速。这里,52428800的单位是Byte。

我们用到的比较多的可能是Limit的使用,Limit大致有以下动作,基本能覆盖全部的权限了,大家灵活使用就是了。

CMD:Change Working Directory 改变目录
MKD:MaKe Directory 建立目录的权限
RNFR: ReName FRom 更改目录名的权限
DELE:DELEte 删除文件的权限
RMD:ReMove Directory 删除目录的权限
RETR:RETRieve 从服务端下载到客户端的权限
STOR:STORe 从客户端上传到服务端的权限
READ:可读的权限,不包括列目录的权限,相当于RETR,STAT等
WRITE:写文件或者目录的权限,包括MKD和RMD
DIRS:是否允许列目录,相当于LIST,NLST等权限,还是比较实用的
ALL:所有权限
LOGIN:是否允许登陆的权限

针对上面这个Limit所应用的对象,又包括以下范围

AllowUser 针对某个用户允许的Limit
DenyUser 针对某个用户禁止的Limit
AllowGroup 针对某个用户组允许的Limit
DenyGroup 针对某个用户组禁止的Limit
AllowAll 针对所有用户组允许的Limit
DenyAll 针对所有用户禁止的Limit

关于限制速率的参数为:

TransferRate STOR|RETR 速度(Kbytes/s) user 使用者

 

linux命令行下的FTP 客户端推荐:NcFTP


ncftp与传统的ftp相比,主要有以下改进或变化:详细内容见其官方网站:http://www.ncftp.com/
(1) 子目录下载,采用递归的方法,下载整个目录及其子目录。
(2) 支持断点续传。一次传输没有完成,下次可以接着传输未完成的文件。
(3) 匿名ftp自动登录。目前大部分ftp站点都可以匿名登录,ncftp可以自动登录(默认方式)。
(4) 支持通过防火墙传输和代理服务器。
(5) 支持书签功能,可以将某个位置存在书签中方便以后直接跳转。
(6) 可以显示下载进度。
(7) 显示传输速率。
(8) 文件列表自动满页暂停。当ls文件列表超过一屏,ncftp会自动暂停,等待任意键继续。
(9) 默认是以binary方式传输数据。
(10) 支持文件名自动完成。例如服务器上有文件download.list,您只要输入get down<TAB>,系统可以自动填充文件名为download.list。
(11) 自动记忆站点的离开时的目录,下次登录会自动进入那个目录。

安装ncftp

# apt-get install ncftp
 编译安装:
 # wget ftp://ftp.ncftp.com/ncftp/ncftp-3.2.5-src.tar.gz
 # tar zxvf ncftp-3.2.5-src.tar.gz
 # cd ncftp-3.2.5/
 # ./configure --prefix=/usr/local/ncftp
 # make && make install
 # ln -s /usr/local/ncftp/bin/ncftp /usr/bin/ncftp

Continue reading

centos用户&组权限&添加删除用户问题详解

1.Linux操作系统是多用户多任务操作系统,包括用户账户和组账户两种
细分用户账户(普通用户账户,超级用户账户)除了用户账户以为还有组账户所谓组账户就是用户账户的集合,centos组中有两种类型,私有组和标准组,当创建一个新用户时,若没有指定他所属的组,centos就建立以个和该用户相同的私有组,此私有组中只包括用户自己。标准组可以容纳多个用户,如果要使用标准组,那创建一个新的用户时就应该指定他所属于的组,从另外一方面讲,同一个用户可以属于多个组,例如某个单位的领导组和技术组,lik是该单位的技术主管,所以他就是属于领导组和技术组。当一个用户属于多个组时,其登录后所属的组是主组,其它组为附加组。

2.Linux环境下的账户系统文件主要在/etc/passwd, /etc/shadow,/etc/group,和/etc/gshadow四个文件。基本含义就不多说了重点说一下,root的uid是0,从1-499是系统的标准账户,普通用户从uid 500开始。

3.使用命令管理账户
useradd 选项  用户名//添加新用户

usermod 选项  用户名//修改已经存在的用户

userdel -r    用户名//删除用户表示自家目录一起删除。

groupadd 选项  组名// 添加新组

groupmod 选项  组名//修改已经存在的组

groupdel 组名  //删除已经存在的特定组。

Continue reading

linux 技巧:使用 screen 管理你的远程会话

你是不是经常需要 SSH 或者 telent 远程登录到 Linux 服务器?你是不是经常为一些长时间运行的任务而头疼,比如系统备份、ftp 传输等等。通常情况下我们都是为每一个这样的任务开一个远程终端窗口,因为他们执行的时间太长了。必须等待它执行完毕,在此期间可不能关掉窗口或者断开连接,否则这个任务就会被杀掉,一切半途而废了。

元凶:SIGHUP 信号

让我们来看看为什么关掉窗口/断开连接会使得正在运行的程序死掉。

在Linux/Unix中,有这样几个概念:

  • 进程组(process group):一个或多个进程的集合,每一个进程组有唯一一个进程组ID,即进程组长进程的ID。
  • 会话期(session):一个或多个进程组的集合,有唯一一个会话期首进程(session leader)。会话期ID为首进程的ID。
  • 会话期可以有一个单独的控制终端(controlling terminal)。与控制终端连接的会话期首进程叫做控制进程(controlling process)。当前与终端交互的进程称为前台进程组。其余进程组称为后台进程组。

根据POSIX.1定义:

  • 挂断信号(SIGHUP)默认的动作是终止程序。
  • 当终端接口检测到网络连接断开,将挂断信号发送给控制进程(会话期首进程)。
  • 如果会话期首进程终止,则该信号发送到该会话期前台进程组。
  • 一个进程退出导致一个孤儿进程组中产生时,如果任意一个孤儿进程组进程处于STOP状态,发送SIGHUP和SIGCONT信号到该进程组中所有进程。

Continue reading