Monthly Archives: 1月 2012

在 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

CentOS用户和组管理

一.组管理

1. 添加用户组

groupadd

2. 删除用户组

groupdel

3. 修改用户组

groupmod

4. 切换用户组

newgrp <groupname>

如果一个用户同时属于多个用户组,可以用 newgrp 命令切换至目的组,以便能够拥有该组的权限。

Continue reading