随笔-49  评论-67  文章-27  trackbacks-0
 

1 .简介

自从 0.99.2 版本开始, pure-ftpd 就开始支持虚拟用户。虚拟用户方式十分类似 /etc/passwd ,将用户的相关信息,如口令、姓名、 uid 、目录等,存入文件。但是该文件只适用于 FTP

这意味着,可以为 FTP 设置虚拟用户,而不需要在系统中添加系统用户。同时,可以为这些用户单独设置配额、 ratio 、带宽等限制。很多虚拟用户可以共享同一个系统用户的属性,因此建议为这些虚拟用户单独创建一个系统用户,从而方便管理。

首先,可以在系统中添加相应的用户和组,如 ftpuser ftpgroup 。如:

groupadd ftpgroup

useradd -g ftpgroup -d /dev/null -s /etc ftpuser

可以使用 ”pure-pw” 来创建虚拟用户。虚拟用户的信息以每个用户一行的方式存放在相应的文件中,其格式如下所示:

<account>:<password>:<uid>:<gid>:<gecos>:<home directory>:<upload bandwidth>:<download bandwidth>:<upload ratio>:<download ratio>:<max number of connections>:<files quota>:<size quota>:<authorized local IPs>:<refused local IPs>:<authorized client IPs>:<refused client IPs>:<time restrictions>

其中,除了帐号、口令、 uid gid home 目录之外,其它的可以是空值。

2 .创建一个用户

接下来,我们来创建一个新的用户。 pure-pw 的语法规范如下:

pure-pw useradd <login> [-f <passwd file>] -u <uid> [-g <gid>]

      -D/-d <home directory> [-c <gecos>]

      [-t <download bandwidth>] [-T <upload bandwidth>]

      [-n <max number of files>] [-N <max Mbytes>]

      [-q <upload ratio>] [-Q <download ratio>]

      [-r <allow client host>[/<mask>][,<allow client host>[/<mask>]]...]

      [-R <deny client host>[/<mask>][,<deny client host>[/<mask>]]...]

      [-i <allow local host>[/<mask>][,<allow client host>[/<mask>]]...]

      [-I <deny local host>[/<mask>][,<deny local host>[/<mask>]]...]

      [-y <max number of concurrent sessions>]

      [-z <hhmm>-<hhmm>] [-m]

假设我们要创建 joe 这样一个虚拟用户,则可以使用如下命令:

pure-pw useradd joe -u ftpuser -d /home/ftpusers/joe

其中, -u 将虚拟用户 joe 同系统用户 ftpuser 关联在一起。 -d 参数使 joe 只能访问其 home 目录。而如果想让他访问整个文件系统,可以用 -D 选项。

这时,如果 pure-ftpd 启动时加入 -j(--createhome) 选项,则不需要创建 /home/ftpuser/joe 目录。系统会在该用户第一次登陆时自动创建。

-z 选项运用用户在一天当中指定的时间段连接服务器。如 -z 0900-1800 ,则该用户只能在上午 9 点到晚上 6 点之间连接服务器。

-r 选项或 -R 选项,可以限制用户从指定 IP 和掩码连入服务器

-y ,用户同一时间的并发连接数。 ’’ 或者 0 意味着不限制

-f ,默认虚拟用户的信息会被存放在 /etc/pureftpd.passwd 文件中,通过该选项可以改变该文件的位置。

用户的口令会根据系统对加密方式的支持情况,选择一个最安全的方式进行加密。

3 .更改一个用户

pure-pw adduser 唯一不同的是,使用 pure-pw usermod 不是创建一个用户,而是更改已经存在用户的某些属性。

重置某些属性的语法如下:

pure-pw usermod <user> -n '' :禁用文件配额

pure-pw usermod <user> -N '' :禁用文件大小配额

pure-pw usermod <user> -q '' -Q '' :禁用 ratio

pure-pw usermod <user> -t '' :禁用下载带宽限制

pure-pw usermod <user> -T '' :禁用上传带宽限制

pure-pw usermod <user> <-i,-I,-r or -R> '' :禁用 IP 过滤

pure-pw usermod <user> -z '' :禁用时间段约束

pure-pw usermod <user> -y '' :禁用并发数限制

4 .删除一个用户

删除一个用的命令语法是:

pure-pw userdel <login> [-f <passwd file>] [-m]

这时,用户的信息会被从指定的 passwd 文件中删除,但是用户的 home 目录会被保留,需要手工删除。

5 .改变用户口令

更改一个用户口令的语法是:

pure-pw passwd <login> [-f <passwd file>] [-m]

6 .显示用户信息

/etc/pureftpd.passwd 文件中记录的信息不方便用户的阅读,因此 pure-ftpd 提供了显示用户信息的命令。其语法是:

pure-pw show <login> [-f <passwd file>]

7 .提交更改

可以通过上面提到的命令,或者以手工方式对 /etc/pureftpd.passwd 文件进行修改,从而创建、修改和删除一个虚拟用户信息。但是,只有提交这些更改时, pure-ftpd 访问才能生效。

提交更改,意味着系统会根据 /etc/pureftpd.passwd (或者指定的其它文件)来创建一个 pure-ftpd 可读的二进制格式的文件 /etc/pureftpd.pdb 。通常,通过下面的命令:

pure-pw mkdb

可以通过 /etc/pureftpd.passwd 文件自动创建 /etc/pureftpd.pbd 文件。但是,如果需要指定特定的文件,可以通过下面的方式来实现:

pure-pw mkdb /etc/accounts/myaccounts.pdb -f /etc/accounts/myaccounts.txt

这时,没有必要去重启 pure-ftpd 服务,对虚拟用户进行的更改可以更新。同时,也可以通过 -m 选项,在对 /etc/pureftpd.passwd 文件进行修改的时候自动进行提交。

8 .打开对虚拟用户的支持

使得 pure-ftpd 支持虚拟用户,需要在编译的时候加入选项 --with-puredb 。这时,可以通过在启动服务是的 ’-l’ 参数来设置。如:

/usr/local/sbin/pure-ftpd -j -lpuredb:/etc/pureftpd.pdb &

可以在后台,以自动创建虚拟用户 home 目录,用 puredb 的方式来支持虚拟用户。

9 .转换系统用户

可以通过如下命令,将系统用户转换为虚拟用户:

pure-pwconvert

如果以 root 用户运行该命令,系统用户的口令一并被转入虚拟用户配置文件。如:

pure-pwconvert >> /etc/pureftpd.passwd

10 .环境变量

默认的情况下,如果指定了环境变量 PURE_PASSWDFILE ,则虚拟用户的 passwd 文件位置由该变量的值指定。否则,默认是 /etc/pureftpd.passwd 。用样, PURE_DBFILE 环境变量用来指定 pdb 文件的位置。默认是 /etc/pureftpd.pdb

posted @ 2006-04-11 00:27 思考 阅读(3758) | 评论 (0)编辑 收藏

转载(http://www.linux-ntfs.org/content/view/127/63/

This documentation should help you choosing the right RPM for your kernel and Linux distribution, and assist you in installing (and testing) it.

Which RPM

It is important to install exactly the same version of NTFS kernel module as the kernel you have installed. Below are some simple instructions to help you find the file you need.

A quick way to find the version is to use the 'whichrpm' script. Save the file and run it. Then go to the install section.

				

    chmod  700  whichrpm
    ./whichrpm


The script, above, just automates what we will do next. First we need to decide which release you have. Run this command:
				

    cat /etc/redhat-release


and you will probably see one of the following responses:
				

    Fedora Core release 
3  (Heidelberg)
    Fedora Core release 
4  (Stentz)
    Fedora Core release 
5  (Bordeaux)
    Red Hat Linux release 
9  (Shrike)


Next find out your kernel version:

				

    uname -r


You should see a response something like one of these:

				

    
2.4.18 - 3    
    
2.4.18 - 17.7 .x
    
2.4.22 - 1.2115 .nptl
    
2.6.8 - 1.521


The version might also have one of the following suffixes:

				

    smp
    bigmem
    hugemem
    BOOT


Note: If the result ends with smp then you have a multi-processor computer (you probably already knew that).

Next find out what sort of processor you have. This command will ask which kernel rpm was installed for you.

Note: If your version number had a suffix, then use it here, e.g. replace kernel with kernel-smp, or kernel-bigmem.

				

    rpm -q --queryformat 
" %{ARCH}\n "  kernel


Most people will have an i686 processor (a recent Pentium computer). Other options are athlon, i586 or i386.

Next download the RPM. Follow the links for

* Fedora 4 (Stentz)
* Fedora 3 (Heidelberg)
* Fedora 2 (Tettnang)
* Fedora 1 (Yarrow)
* RedHat Enterprise 4 (Nahant)
* RedHat Enterprise 3 (Taroon)
* RedHat 9 (Shrike)
* RedHat 8.0 (Psyche)
* RedHat 7.3 (Valhalla)

When you have downloaded the RPM, we will continue with the installation instructions.

Install

You must be root for the rest of the commands. The examples will continue as if you downloaded kernel-ntfs-2.4.18-14.i686.rpm.

Note: Newer NTFS RPMs have names like


    kernel-module-ntfs-
2.6.8-1.541-2.1.17-0.fc.1.2.i586.rpm


Next install the rpm:

    rpm -ihv kernel-ntfs-2.4.18-14.i686.rpm

    Preparing...      ############################### 
[100%]
       
1:kernel-ntfs  ############################### [100%]


There should be no errors, just some '#'-charakters.

Note: newer NTFS RPMs will also print a message telling you if install succeeded.

If something goes wrong see the Help Section.

This is the only command we actually needed, but we'll go on and test what we have done.

Next load the kernel module


    /sbin/modprobe ntfs


There should be no output. If there are a lot of error messages see the Help Section.

The next command, dmesg prints the kernel logs. We search them for NTFS using grep.


    dmesg | grep NTFS

    NTFS driver v1
.1.22 [Flags: R/O MODULE]


We can now check that the kernel really understands NTFS. The output may vary slightly, but you are looking for the entry ntfs.


    cat /proc/filesystems

    nodev   rootfs
    nodev   bdev
    nodev   proc
    nodev   sockfs
    nodev   tmpfs
    nodev   shm
    nodev   pipefs
            ext3
            ext2
    nodev   ramfs
    nodev   devpts
            ntfs


 

Mount

Mounting an NTFS Volume is covered in more detail in Section 4 of the Linux-NTFS FAQ (in the Wiki).

First you need to know which device your NTFS Volume is on and you need to create a directory as a mount point.

    /sbin/fdisk -l


The output might look like:

    Disk /dev/hda: 64 heads, 63 sectors, 4465 cylinders
    Units = cylinders of 4032 * 512 bytes

       Device Boot    Start       End    Blocks   Id  System
       /dev/hda1             1      2125   4283968+  07  NTFS/HPFS
       /dev/hda2          2126     19851  35735616   0f  Win95 Ext'd (LBA)
       /dev/hda5   *      2126      4209   4201312+  83  Linux
       /dev/hda6          4210      4465    516064+  82  Linux swap
          

    mkdir /mnt/windows
    mount /dev/hda1 /mnt/windows -t ntfs -r -o umask=0222
    ls -l /mnt/windows

    ...
    -r-xr--r-- 1 root root  9719 Aug 24 1996 ansi.sys
    -r-xr--r-- 1 root root 15252 Aug 24 1996 attrib.exe
    -r-xr--r-- 1 root root 28096 Aug 24 1996 chkdsk.exe
    -r-xr--r-- 1 root root  5175 Aug 24 1996 choice.com
    ...


Hopefully everything is working for you now.

Note: Now, please read the NTFS FAQ (Frequently Asked Questions, in the Wiki), especially if you want to know:

* How to change the owner or permissions of the mounted partition (Section 4.9) * How to have Linux mount the partition automatically at boot time (Section 4.10)

Uninstall

If you wish to remove the NTFS RPM, first list all the RPMs with ntfs in their name. You output might look something like this:

    rpm -qa | grep -i ntfs

    kernel-module-ntfs-2.6.9-1.667smp-2.1.20-0.fc.1.2


Then, cut and paste the name into the rpm erase command:

    rpm -e kernel-module-ntfs-2.6.9-1.667smp-2.1.20-0.fc.1.2
posted @ 2006-04-06 14:49 思考 阅读(477) | 评论 (0)编辑 收藏

      为了充分教研室服务器的资源,打算在服务器上安装一个流媒体点播系统。为此,选择使用Real公司的Helix产品。只要有合适的License,Helix可以支持绝大多数的流媒体格式,包括:
RealNetworks:          RealAudio (.rm, .ra), RealVideo (.rm, .rmvb), RealPix (.rp),RealText (.rt), Multi-Rate Container (.mrc)
Macromedia:             Flash (.swf)
Microsoft:                 Windows Media (.asf, .wma, .wmv)
Apple:                      QuickTime (.mov)
Standards-Based:      MPEG-4, MP3
Image Formats:         GIF (.gif), JPEG (.jpg, jpeg), PNG (.png)
Other:                      AU (.au), AIFF (.aif, .ief), WAV (.wav)

      教研室的服务器安装的是Fedora Core 4 x86_64系统,开始只找到了Helix Server 9.0.2.794。安装之后,运行时提示错误:

* Heartbeat Failure 1 (Step 3)

-------------------------------------------------------------------------------
*** Helix Server Heartbeat Failure Report
When: 04-Apr-06 14:09:41
Environment: linux-2.2-libc6-i586-server, , 9.0.2.794
* Heartbeat Failure 2 (Step 3)

-------------------------------------------------------------------------------
*** Helix Server Heartbeat Failure Report
When: 04-Apr-06 14:10:04
Environment: linux-2.2-libc6-i586-server, , 9.0.2.794
* Heartbeat Failure 3 (Step 3)


Helix Server not responding normally...
Heartbeat check disabled
* Heartbeat Failure 4 (Step 3)
* Heartbeat Failure 5 (Step 3)
* Heartbeat Failure 6 (Step 3)
* Heartbeat Failure 7 (Step 3)

在网上找了很多相关的资料,都没解决这个问题。后来考虑可能时系统版本的问题,于是下载了Helix Server 11.0.1.1884。在这个版本自带的文档中介绍了遇到上述问题时,可以在配置文件结尾加入如下3行代码:
<List Name="IPBindings">。
      <Var Address_01="any"/>
</List>
其中,any指得是服务器的IP地址。但是,按照这种方式修改,在我们的服务器上依然存在上面的问题,不知道其它版本的Linux系统是否可以解决。遇到相同问题的人可以尝试一下这种办法。

         在11这个版本中,启动时已经不会出现这个问题了。但是当服务启动了之后,我在本地计算机上无法访问。但是在服务器上通过localhost可以正常使用。这个问题可能是防火墙的问题,于是加入了相应的规则,但是依然无法访问。后来,经过翻阅资料,得知如果是服务器上有多个网卡,需要对其进行绑定。否则,只能通过localhost来访问。原来是这样,在服务器上通过浏览器,在管理员界面加入了相应的规则。重启服务,哈哈,终于可以访问了!

         最后,可以在sample页面对支持的流媒体格式进行测试。在测试的时候,还有一些小的插曲。因为我们现在多数人用的是暴风影音,像我就根本没有安装realplayer。所以,开始是出现rmvb格式的媒体无法观看的问题。后来重新安装了realoneplayer之后解决了上述问题。另外一个让我弄了一个多小时的问题是,无法播放MP3格式的文件。最后,把用来播放MP3的插件——mp3fformat.so的文件从Plugins目录移出,重启系统,再移入,重启系统。后来就可以播放了。具体原因还不知道为什么:?不管怎么样,最后是大功告成了,可以正常使用了。

         接下来的任务就是设置加载点,使用ftp目录中的媒体来供教研室的同学访问了。

PS:Helix似乎不支持中文,所以接下来可能要作一件事情,就是如何将中文文件名可以被使用。

posted @ 2006-04-04 14:39 思考 阅读(2401) | 评论 (3)编辑 收藏

dmesg   查看启动信息
chkconfig   配置启动信息
setup         图形化的安装配置信息

makewhatis    为man手册页建立索引
whatis            以完整字符匹配的方式查询man手册页
apropos         查询man手册页

updatedb      建立和更新slocate的数据库
slocate         以更安全的方式向用户提供在整个文件系统中搜索有权限的文件
locate            slocate的符号连接,在GNU Linux下
whereis         定位源文件、二进制文件和手册页

rpm -ivh      安装RPM包
rpm -e         删除RPM包
rpm -qpl      RPM包中的文件内容
rpm -qa      查询系统中已经安装的RPM包信息

ntpdate -u    根据指定网络时间服务器的时间更新系统时间

mount -t vfat -o CHARSET=cp936
                     可以显示Windown FAT32系统中的中文

posted @ 2006-03-31 11:19 思考 阅读(316) | 评论 (0)编辑 收藏
     摘要: F1 打开帮助。 ...  阅读全文
posted @ 2006-03-28 23:12 思考 阅读(261) | 评论 (0)编辑 收藏
前一段时间因为搞鉴定,所以就把手头的工作停了下来,现在搞完了,可以继续写些东西了。
posted @ 2006-03-28 14:29 思考 阅读(144) | 评论 (0)编辑 收藏
昨天同组的在安装GT4后,启动容器时发生上面的错误。
因为我使用相同的方法在另外一台服务器上已经成功安装,并且没有问题。所以这个问题让我们很多人都不知道如何是好。后来用-debug参数启动进行分析,只有可能是数据库的问题。因为两台服务器上mysql的数据库的版本不同。所以我们怀疑是mysql的connector的版本不同造成的。
今天早晨下了一个3.2.0版本的connector,将原先的3.1.10版本的connector替换掉问题就解决了。
但是,后来发现问题不是这个版本造成的。因为3.1.10版本的connector包含了两个文件:
               mysql-connector-java-3.1.10-bin-g.jar
               mysql-connector-java-3.1.10-bin.jar
只要把mysql-connector-java-3.1.10-bin-g.jar的文件删掉也可以成功启动。
后来看了一些connector的说明文档,发现带-g的是用来做debug用的。
posted @ 2005-10-29 16:35 思考 阅读(6051) | 评论 (3)编辑 收藏
刚才在安装mysql之后,用netstat -a |grep 3306来查看mysqld是否已经运行的时候,发现无法查看。
后来高手指点说,应该将命令改为netstat -an |grep 3306。果然,这样一改,可以看到了。原来-n参数是指用数字来代替使用可能的host、port或user name。所以要使用这个参数。相反,如果命令改成这样,也应该可以正确执行:
netstat -a |grep mysql
posted @ 2005-10-27 18:21 思考 阅读(213) | 评论 (0)编辑 收藏

困扰我多久的在SecurityCRT中登录Linux是,有些英文显示出现乱码。
今天无意间发现了SecurityCRT帮助文件中Strip 8 bit的修改。才想到可能是这个问题。
随后,选择在Options->Session Options->Terminal->Advanced下面的Strip 8 bit选项。应用后在此键入可能造成乱码的命令,如man route。发现原先显示乱码的部分变成了英文了:)
分析原因,是因为在纯英文终端上(最原始的终端类型),每个英文字母是用7位表示的。而后来为了增加对其它语言的支持,又加入了第8位。这就是当初使用BBS是,telnet后面要加入-8的参数的原因。但是正是因为这样,我们的Linux服务器没有配置中文的支持,所以以7位方式来传输英文。而这时SecurityCRT安装8位进行解释,可能就造成乱码的错误。

posted @ 2005-10-27 18:05 思考 阅读(1535) | 评论 (1)编辑 收藏

which - shows the full path of (shell) commands.
whereis - locate the binary, source, and manual page files for a command.
slocate - Security Enhanced version of the GNU Locate. 
          Secure  Locate  provides  a  secure  way to index and quickly search for files on your system. It uses
       incremental encoding just like GNU locate to compress its database to make searching faster, but it  will
       also store file permissions and ownership so that users will not see files they do not have access to.

          This  manual page documents the GNU version of slocate.  slocate Enables system users to search entire
       filesystems without displaying unauthorized files.

tee - read from standard input and write to standard output and files
vipw, vigr - edit the password or group files
cat - concatenate files and print on the standard output
cat /etc/passwd

id - print real and effective UIDs and GIDs
who - show who is logged on
users - print the user names of users currently logged in to the current host
finger - user information lookup program

!! - execute the last command

posted @ 2005-10-26 16:25 思考 阅读(273) | 评论 (1)编辑 收藏
仅列出标题
共5页: 上一页 1 2 3 4 5 下一页