• Unix + OS IBM Aix FTP / wuftp / proftp


    ftp://ftp.software.ibm.com/aix/freeSoftware/

    http://www.bullfreeware.com/

    Linux / Unix系统 umask 命令

    http://www.ixpub.net/thread-1031627-1-1.html

    A 什么是umask?
    当我们登录系统之后创建一个文件总是有一个默认权限的,那么这个权限是怎么来的呢?这就是umask干的事情。umask设置了用户创建文件的默认 权限,它与chmod的效果刚好相反,umask设置的是权限“补码”,而chmod设置的是文件权限码。一般在/etc/profile、$ [HOME]/.bash_profile或$[HOME]/.profile中设置umask值。
    你的系统管理员必须要为你设置一个合理的 umask值,以确保你创建的文件具有所希望的缺省权限,防止其他非同组用户对你的文件具有写权限。在已经登录之后,可以按照个人的偏好使用umask命 令来改变文件创建的缺省权限。相应的改变直到退出该shell或使用另外的umask命令之前一直有效。一般来说,umask命令是在/etc /profile文件中设置的,每个用户在登录时都会引用这个文件,所以如果希望改变所有用户的umask,可以在该文件中加入相应的条目。如果希望永久 性地设置自己的umask值,那么就把它放在自己$HOME目录下的.profile或.bash_profile文件中。
    B 如何计算umask值
    umask 命令允许你设定文件创建时的缺省模式,对应每一类用户(文件属主、同组用户、其他用户)存在一个相应的umask值中的数字。对于文件来说,这一数字的最 大值分别是6。系统不允许你在创建一个文本文件时就赋予它执行权限,必须在创建后用chmod命令增加这一权限。目录则允许设置执行权限,这样针对目录来 说,umask中各个数字最大可以到7。
    该命令的一般形式为:
    umask nnn
    其中nnn为umask置000-777。
    让我们来看一些例子。
    计算出你的umask值:
    可以有几种计算umask值的方法,通过设置umask值,可以为新创建的文件和目录设置缺省权限。下表列出了与权限位相对应的umask值。
    在计算umask值时,可以针对各类用户分别在这张表中按照所需要的文件/目录创建缺省权限查找对应的umask值。
    例如,umask值002 所对应的文件和目录创建缺省权限分别为6 6 4和7 7 5。
    还有另外一种计算umask值的方法。我们只要记住umask是从权限中“拿走”相应的位即可。
    umask值与权限
    umask          文件      目录
        0             6          7
        1             6          6
        2             4          5
        3             4          4
        4             2          3
        5             2          2
        6             0          1
        7             0          0
    例如,对于umask值0 0 2,相应的文件和目录缺省创建权限是什么呢?
    第一步,我们首先写下具有全部权限的模式,即777 (所有用户都具有读、写和执行权限)。
    第二步,在下面一行按照umask值写下相应的位,在本例中是0 0 2。
    第三步,在接下来的一行中记下上面两行中没有匹配的位。这就是目录的缺省创建权限。
    稍加练习就能够记住这种方法。
    第四步,对于文件来说,在创建时不能具有文件权限,只要拿掉相应的执行权限比特即可。
    这就是上面的例子,   其中u m a s k值为0 0 2:
    1) 文件的最大权限        rwx rwx rwx      (777)
    2) umask值为0 0 2        --- --- -w-
    3) 目录权限              rwx rwx r-x        (775) 这就是目录创建缺省权限
    4) 文件权限              rw- rw- r--        (664) 这就是文件创建缺省权限
    下面是另外一个例子,假设这次u m a s k值为0 2 2:
    1) 文件的最大权限        rwx rwx rwx      (777)
    2 ) u m a s k值为0 2 2   --- -w- -w-
    3) 目录权限              rwx r-x r-x        (755) 这就是目录创建缺省权限
    4) 文件权限              rw- r-- r--        (644) 这就是文件创建缺省权限
    C 常用的umask值
    下表列出了一些umask值及它们所对应的目录和文件权限。
    常用的umask值及对应的文件和目录权限
    umask 值         目录         文件
    0 22                    7 5 5           6 4 4
    0 27                    7 5 0           6 4 0
    0 02                    7 7 5           6 6 4
    0 06                    7 7 1           6 6 0
    0 07                    7 7 0           6 6 0
    D umask命令
    如果想知道当前的umask 值,可以使用umask命令:
    $umask
    如果想要改变umask值,只要使用umask命令设置一个新的值即可:
    $ umask 002
    确认一下系统是否已经接受了新的u m a s k值:
    $umask
    002
    $touch testfile
    $ls -l testfile
       rw- rw- r--  
    在使用umask命令之前一定要弄清楚到底希望具有什么样的文件/目录创建缺省权限。否则可能会得到一些非常奇怪的结果;例如,如果将umask值设置为6 0 0,那么所创建的文件/目录的缺省权限就是0 6 6!

    aix关于ftp的问题

    http://host.iteye.com/blog/181807

    今天,在aix上装测试环境应用时,ftp总登录不上去,郁闷了半天,看了下系统服务,ftp是开着的,新装的机器,装的时候默认都装了。检查/etc/ftpusers文件,其中屏蔽的只有guest用户,正常。

    用root用户try,提示:

    Login failed.

    换一个用户pub try,提示:

    530-[files]: 3004-610 You are required to change your password.
            Please choose a new one.

    后查找资料发现,通过root创建的用户,并且最后一次修改密码是root帮忙修改的,那么在/etc/security/password中会带 一个ADMCHG的标志,这个标志设置后,系统便会要求用户下次登录时重置密码,但是ftp用户不能修改自己密码,就导致root新建用户不能ftp的问 题。

    解决办法:在控制台上输入 pwdadm -c ftpUser ,就可以将root创建标志去掉,边可以ftp登录了;或者手动修改/etc/security/passwd文件,将对应用户的flags标志置空,再 或者每个用户自己telnet 或者通过其他终端登录上去后修改下密码即可。

    呵呵,如果每次root自己修改了密码,也一样不能ftp,非得要pwdadm -c root   ,其他用户自己修改没问题。

    aix ftp 文件权限问题

    http://www.ajaxstu.com/AIXxitong/63804.html

    http://www.ajaxstu.com/AIXxitong/56245.html

    我建了个FTP服务,目录为/ftptemp,此目录权限为所有用户可读写执行,ftp用户为ftpuser,umask为011但是当我上传文件之后, 新的文件的权限只有ftpuser可读写,组用户可读,其他人无权限.

    我想问一下,如何设置使本组成员对新上传的文件可读写,谢谢!

    有二个办法.
    1. 在上传前使用 site 命令,比方 site umask 011

    2. 使ftpd 用 -u option 起动
    umask 022
    在inetd.conf的启动ftpd的那行后边加上 -u 022(根据自己的需要定)

    Stdbsvr# vi /etc/inetd.conf

    ftp     stream  tcp6    nowait  root    /usr/sbin/ftpd         ftpd -u 002

    Stdbsvr#  refresh -s inetd

    ok
    aix的FTP服务器上传的文件权限都是740,
    我的需要是:
    控制一些目录任何人可以读写;
    控制一些目录部分人可以读写;
    控制一些目录只有单个人可以读写;
    请问该怎么操作?请高手指教,谢谢!

    问题 如何改变上传ftp文件的缺省读写属性?
    解答 在AIX 环境中,当用户从Windows上传文件到AIX 服务器时
    所传文件的缺省读写属性为640(rw-r-----)。如想改变
    缺省读写属性为644,首先用vi 编辑器打开/etc/inetd.conf
    文件,在"ftp"定义行的末尾加上"-u 033",然后刷新inetd 进程:
    refresh -s inetd
    这就改变了ftp文件的缺省属性。
    如果你需要管理AIX上的目录的权限,可以telnet登录进去用变更权限。

    在AIX下启动FTP服务器

    http://blog.chinaunix.net/u1/43842/showart_2150969.html

    ftp这个服务是属于inetd子系统的,在系统启动的时候,执行/etc/inittab,其中有一个
    栏目执行rc.tcpip脚本,该脚本里启动inetd子系统。
    inetd子系统通过/etc/inetd.conf来配置那些子服务需要启动,当然包括ftp,telnet等。
    观看inetd子系统状态用lssrc -ls inetd,可以看到ftp的状态。
    重新启动ftp服务很简单,执行startsrc -t ftp就行了。
    配置好像没什么,就是有拒绝那些用户ftp访问。
    作为ftp客户端还有自动完成ftp的功能。需要编辑 /.netrc文件

    http://aix.chinaunix.net/doc/2006/11/14/1107128.shtml

    在AIX下启动FTP服务器-默认FTP和wu-ftpd
    平台:IBM AIX
    一:默认FTP
    IBM AIX操作系统在安装完之后,查看/etc/inetd.conf文件,会有一行
    ftp stream tcp6 nowait root /usr/sbin/ftpd ftp
    这表明系统会默认启动AIX自带的ftpd,使AIX提供标准的ftp服务。但是AIX提供的ftp服务具有一定的局限性,例如普通用户可以查看到/home下除了该用户目录之外的其他目录以及根文件系统等,对用户的控制不够灵活等等。
    默认ftp 属于inetd内的服务,/etc/initab ->rc.tcpip inetd 通过/etc/inetd.conf来配置是否运行
    lssrc -ls inetd
    startsrc -t ftp     配置没有什么太多说的
    startsrc -s tcpip 把所有tcpip子系统都起来,当然是inetd和inittab没有关闭FTP情况下
    拒绝限制某些用户访问,编辑/etc/ftpusers 添加需要拒绝的用户,每用户一行 For example:
    #more /etc/ftpusers
    guest
    当尝试 ftp 登录时,系统报错:
    Name (localhost:root): guest
    530 User ql access denied.
    Login failed
    在AIX环境中,当用户从Windows上传文件到AIX服务器时所传文件的缺省读写属性为640(rw-r-----)。如想改变缺省读写属性为644,首先用vi编辑器打开/etc/inetd.conf 文件,在"ftp"定义行的末尾加上"-u 033 ",然后刷新inetd进程:
    refresh -s inetd
    这就改变了ftp文件的缺省属性。
    作为客户端,使用ftp自动传输文件
    1. 在用户根目录下创建文件.netrc
    2. 设置.netrc的属性为600,owner 为ftp用户
    3.定制.netrc的内容.如:
    machine  login  password
    macdef init
    get file1
    put file2
    ....
    quit

    注:.netrc必须以一空行结束。
    二:AIX下的wu-ftp
    一个增强的FTP服务器软件——wu-ftpd
    本文向AIX用户介绍了世界上广泛使用的ftp服务器软件wu-ftpd的安装以及系统配置。
    这里推荐一个功能比较强大的ftp服务器端软件wu-ftpd,可以弥补ftpd功能上的不足。 熟悉Linux的用户比较清楚,Linux下默认的ftp服务器软件就是wu-ftpd。这个软件是由华盛顿大学(Washington University-
    http://wuarchive.wustl.edu/
    )开发的。它具有非常强大的功能:
    1) 可以在用户下载文件的同时对文件做自动的压缩或解压缩操作;
    2) 可以对不同网络上的机器做不同的存取限制;
    3) 可以记录文件上载和下载时间;
    4) 可以显示传输时的相关信息,方便用户及时了解目前的传输动态;
    5) 可以设置最大连接数,提高了效率,有效地控制了负载。
    您可以在IBM Linux Toolbox网站上下载到:
    http://www-1.ibm.com/servers/aix/products/aixos/linux/altlic.html
    。IBM提供的wu-ftpd最新版本是2.6.2。
    一、wu-ftpd的安装。
    从IBM网站上下载到的wu-ftpd是rpm格式的,安装前需要安装fileutils包,同样可以从IBM Linux Toolbox网站上下载到。在安装完后,您可以找到文件/usr/sbin/wu.ftpd,这个文件就是用来替换原来的ftpd的ftp服务器进程。 为了在启动inetd的时候自动启动wu-ftpd,需要将/etc/inetd.conf中ftp stream tcp6 nowait root /usr/sbin/ftpd ftp改为ftp stream tcp6 nowait root /usr/sbin/wu.ftpd ftp,然后用refresh -s inetd刷新inetd进程。安装好以后,可以用/usr/sbin/ckconfig命令来检查是否已经正确安装。此时就可以使用wu-ftpd了。 您可以用lssrc -t ftp随时列出wu-ftpd的状态。
    wu.ftpd命令还有一些参数,这里做以简要说明:
    -d 当FTP服务器出错时,将错误入系统的syslog中;
    -l 将每次FTP客户端进行连接的信息记录入系统的syslog中;
    -t 设置FTP客户端连接几分钟无操作就切断连接;
    -a 使wu-ftp使用/etc/ftpaccess的设定;
    -A 使wu-ftp不使用/etc/ftpaccess的设定;
    -L 将FTP客户端登录后所执行的程序记录在系统的syslog中;
    -I 将FTP客户端上载文件的日志记录在/usr/adm.xferlog文件中;
    -o 将FTP客户端下载文件的日志记录在/usr/adm/xferlog文件中。
    二、wu-ftpd的配置。
    wu-ftpd主要有以下6个配置文件:
    ftpaccess(主配置文件,控制存取权限)
    ftpconvertions(配置文件压缩/解压缩转换)
    ftpgroups(设定ftp自己定义的组)
    ftphosts(设定个别的用户权限)
    ftpservers(设定不同IP/Domain Name以对应到不同的虚拟主机)
    ftpusers(设定哪些帐号不能用ftp登录)
    下面就文件中的一些常见参数做以说明。
    1、/etc/ftpaccess(wu-ftpd的主要配置文件)
    class--定义群组,用法如下:
    class[……]
    由class定义的组用户才可以登录进ftp,可以使用多层式的class来限制哪些组的用户能够从哪些地方登录。有三个重要的类,real、 anonymous和guest。real如果没有列在定义中,那么这台机器中任何真实的用户都无法用自己的帐号连上来(真实用户是指在主机上拥有自己帐 号的用户)。anonymous如果没有定义,就表示不让没有帐号的的人连上来。如果有定义guest,那么guest组的人就可以上来。另外是指ftp 上来的用户会用到的IP地址,则可自行设定。
    以下是一些例子:
    class all real,guest,anonymous *
    定义了一个名为all的类,包含三种人,所有IP的登录用户,也就是任何人都可以登录ftp。
    class local real localhost loopback
    local这个类的意思是只有real的用户可以从本机机器连上来 。
    class remote guest,anonymous *
    remote这个类包含了从任何地方上来的guest和anonymous用户,但是real用户不能登录。
    class rmtuser real !*.example.com
    rmtuser这个类包含了任何远程的(除了example.com)真实用户 ,也就是说example.com是在"黑名单"上的。
    autogroup--自动对应组,用法如下:
    autogroup[……]
    因为在UNIX中没有类(class)的概念,只有组(group)的概念。对用户的控制都是基于组的。当定义好的那些同属于一个类的用户,一旦登录上来就会被对应到一个相应的组下面,这样你就可以用Unix的文件权限对某一群人做限制。
    deny--拒绝某些地址登录,用法如下:
    deny
    禁止某些机器登录,并显示。例如:
    deny 210.62.146.*:255.255.255.254 /etc/reject.msg
    在reject.msg中您可以给出拒绝登录的理由等等。
    guestgroup--设定访客群
    guestuser--设定访客帐号
    realgroup--设定真实组
    realuser--设定真实帐号
    defumask--设定某class的umask,用法如下:
    defumask[]
    umask是建立文件时该文件的的权限掩码,这对于上传文件很重要。
    timeout--设定登录超时,用法如下:
    timeout accept
    接受登录超时,预设120秒
    timeout connect
    登录建立超时,预设120秒
    timeout data
    数据传送超时,预设1200秒
    timeout idle
    用户发呆超时,预设900秒
    file-limit--限制某class只能传几个文件,用法如下:
    file-limit[][]
    对某个类用户存取文件的数目,包含了in(上传)、out(下载),total raw代表整个传输的结果,不光是数据文件。例如:
    file-limit out 20 testftp
    限制testftp用户最多只能下载20个文件
    byte-limit--限制某class只能传几个字节,用法跟file-limit相似
    limit-time--限制一个登录只能持续多久,用法如下:
    limit-time{*|anonymous|guest}
    为了避免有人在ftp站上不下来,可以用这个方法限制用户的上线时间,例如:
    limit-time guest 5
    让guest帐号的用户只能用5分钟
    limit--限制某class能同时几人上线,用法如下:
    limit
    设定某个class在某一时间区段内最多能够几人同时上线,后面是当超过登录数目时要显示的信息。例如:
    limit all 32 Any /home/ftp/etc/toomanyuser.msg
    限制所有登录在任何时间只能有32个用户,超过则拒绝登录并显示信息
    limit levellone 5 Any2300-0600 /home/ftp/etc/toomanyuser.msg
    限制levellone这个class的用户在23:00到6:00这段时间内只能有5人登录
    noretrieve--设定哪些文件不可下载
    noretrieve[absolute/relative][class=]…[-][…]
    absolute或relative指文件是用绝对路径还是相对路径
    allow=retrieve--设定哪些文件可以下载
    allow[absolute/relative][class=]…[-][…]
    loginfails--设置登入错误可尝试的次数
    当用户登录时可能输入错误ID或密码,这个设定可以让用户输入错误几次以后就断线。
    greeting--显示Server的版本信息,用法如下:
    greeting
    当用户登入画面显示的server信息,full是预设值,包含版本号以及hostname,brief只有hostname,而terse只有“FTP server ready”的信息。
    barnner--设定未进入Login画面之前用户看到的信息,用法如下:
    banner
    这里叙述了在用户登入时,在还没打ID/Password之前要出现的信息。文件路径指的是相对于真实的路径,而不是相对于ftp的根目录。
    host--设定ftp主机名
    email--指定ftp管理者的email地址
    message--信息文件的设定,用法如下:
    message{{……}}
    这里的文件的路径是相对于ftp的根目录的,“何时”是指当你做了什么动作之后的反应,有几个选择:
    login(登入时)
    cwd=(进入某目录时)
    class 名称是前面已经定义过的,允许你的信息只对哪些人发出。
    而信息文件的内容除了文字以外,还可以使用以下一些事先定义好的代号:
    %T(本机时间)
    %F(目前分区所剩余的空间)
    %C(目前所在的目录)
    %E(管理者的E-mail)
    %R(客户端主机名称)
    %L(本机主机名称)
    %U(用户名称)
    %M(与我相同class用户允许多少人登录)
    %N(与我相同class用户目前有多少人登录)
    %B(绝对磁盘限制大小,目前分区(单位blocks))
    %b(preferred磁盘限制大小,目前分区(单位blocks))
    %Q(目前已使用的blocks)
    %I(最大可使用的inodes(+1))
    %i(Preferred inodes限制)
    %q(目前使用的indoes)
    %H(超量使用磁盘空间的时间限制)
    %h(超量使用文件数目的时间限制)
    readme--通知用户哪些README文件已经更新
    log commands--记录用户所使用过的命令,用法如下:
    log commands
    log transfers--记录用户所传输的文件,用法如下:
    log transfers
    设定有哪些类型的用户传输文件需要记录,包含了inbound(用户上传)和outbound(用户下载),例如:
    log transfers anonymous,guest inbound,outbound
    log security--记录安全性,用法如下:
    log security
    特别用于记录某类用户关于noretrive、notar等有关安全性的记录
    log syslog--记录到系统的syslog文件
    alias--设定目录别名,用法如下:
    alias
    cdpath--设定cd更换目录搜索顺序
    shutdown--通知用户要关站了
    shutdown
    如果信息文件存在的话,当这个文件指定的某时间以后,就会拒绝登录并切断已有的登录,等时间一到就关机。这个信息文件的格式如下:

    chmod--设定是否可以改变文件权限
    delete--设定是否可以删除文件
    overwrite--覆盖文件
    rename--重命名文件
    umask--允许设定umask
    passwd-check--设定anonymous FTP的密码检查程度,用法如下:
    passwd-check()
    设定对anonymous ftp用户的密码是否检查,none表示不检查,trivial为包含@的任意密码,rfc822则表示密码要遵循RFC822格式,enforce表示密码检查不过不允许进入,warn表示密码检查不过只出现警告信息。
    deny=email--拒绝特定的email当密码
    path-filer--摄定哪些文件名不可使用
    path-filer
    upload--设定upload权限
    upload[absloute/relative][class=]…[-] >[dirs/nodirs][d_mode]
    用来对我们要设定的目录做权限设定:
    absoulte/relative使用绝对路径或是相对路径
    class=指定某个class
    root-dir指的是对哪些root-dir的人,也就是chroot后的登入目录,应用这个规则
    设定的目录指的就是我们要限制的目录
    yes/no指得是能否在此目录下开新文件
    owner,group指出是开出来的文件拥有者及组
    Mode指的是文件权限
    dirs/nodirs指的是能否开新目录
    d_mode设定建立新目录时目录的权限,如果不设定会根据mode来设定
    thoughput--控制下载速度
    thoughput
    对远端的地址,控制他抓某个子目录下的某些文件时的速度,例如:
    thoughput /e/ftp * * oo - *
    thoughput /e/ftp /sw* * 1024 0.5 *
    thoughput /e/ftp sw* readme oo - *
    thoughput /e/ftp sw* * oo - *.foo.com
    以上的设定“oo”表示不限制bytes/sec,“-”或是“1.0”都是代表一倍。第一行的意思是说,在/e/ftp下面的文件不限制下载速度;第二行说,在/sw*下面的任何文件限速为1024bytes/sec*
    0.5=512bytes/sec;第三行又把readme文件的限速取消;最后一行则对*.foo.com开放全速。
    anonymous-root--对某class设定匿名用户的根目录
    anonymous-root[]
    guest-root--预设一个guest用户根目录
    guest-root[]
    其中用于指定uid的范围
    deny-uid,deny-gid--拒绝某段UID(GID)范围
    allow-uid,allow-gid--允许某段UID(GID)范围
    restricted-uid,restricted-gid--限制用户不能离开他的登录目录
    unrestricted-uid,unrestricted-gid--用户可以离开他的登录目录
    dns refuse_mismatch--设定DNS查到名称与用户设定不符的动作
    dns refuse_mismatch[override]
    当用户使用未注册IP时,拒绝他的登录,override则是不理会错误而让他登录,信息文件则是我们要给用户看的。
    2、/etc/ftphosts
    ftphosts文件其实跟ftpaccess里面的access,deny很像,它是特别用来设定某些ID的登录,它没有class定义,所以必须是真实用户。
    allow|deny[……]
    以下是一些例子:
    allow rose 140.0.0/8
    deny jack 140.123.0.0:255.255.0.0
    允许rose从140.*.*.*进来,拒绝jack从140.123.*.*上来。
    3、/etc/ftpservers
    这个文件控制了当你有不同的IP/hostname的时候,进来的登录使用哪一个配置文件。例如:
    10.196.145.10 /etc/ftpd/ftpaccess.somedomain/
    10.196.145.200 /etc/ftpd/ftpaccess.someotherdomain/
    some.domain internal
    10.196.145.20 /etc/ftpd/config/faqs.org/
    ftp.some.domain
    /etc/ftpd/config/faqs.org/
    4、/etc/ftpusers
    在这个文件里记录的用户禁止使用FTP。
    5、/etc/ftpgroups。
    给SITE GROUP指令使用,在线切换group。SITE EXEC容易造成安全漏洞,一般不建议开放。
    6、/etc/ftpconversions
    用来做tar、compress、gzip等动作指令配置文件,只要用预设即可,如果你不开放即时压缩打包,也可以把内容清除。
    三、wu-ftpd的一些相关命令。
    安装完wu-ftpd之后,会在/usr/bin下安装几个有关ftp管理的命令:
    ftpcount:
    ftpcount命令可以统计出当前连接到FTP服务器上的用户数目,并且同时列出上限。
    命令输出如下所示:
    Service class local ---0 --Users(20maximum)
    Service class remote --5 --Users(100maximum)
    ftpwho:
    ftpwho命令可以列出当前连接的用户的详细情况。
    ftpshut:
    ftpshut命令用于生成一个在/etc/ftpaccess中设置的shut.msg文件,用于关机设定。ftpshut命令的格式为:
    Ftpshut   time  
    -l 这个参数设定在关闭FTP服务器功能前多少分钟时停止用户的连接;
    -d 这个参数设定在关闭FTP服务器功能前多少分钟时切断用户连接;
    time 指定关闭FTP服务器的时间。例如6:20分则写为0620;
    四、有关wu-ftpd的一些说明。
    wu-ftpd是免费软件,源代码开放,因此IBM公司不负责该软件的维护和技术支持。目前在wu-ftpd上已经发现了一些安全漏洞,wu-ftpd一直在完善中,因此对于使用wu-ftpd造成的一切直接和间接损失,IBM公司不负任何责任。
    参考资料:www.wu-ftpd.org相关文档和
    http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=2311073I23000

    AIX下的FTP配置笔记

    http://www.aixchina.net/?viewnews-16009.html

    昨天用户提需求,说要在AIX上做一个FTP,但是有限制条件。

    原本没有限制条件倒也简单,加了条件就比较麻烦了。

    两个目录的权限如下:

    drwxr-xr-x   2 tkbudget tkbudget        256 Mar 16 17:02 cron_logs
    drwxr-x---   2 tkbudget tkbudget        256 Mar 17 13:33 tk_outline

    用户要求建立一个单独的ftp用户,该用户只对上述两个目录有读写权限。

    实施步骤:

    1> 创建tkbgtftp用户(rlogin=false,限制用户登录)。

    AIX Version 5
    (C) Copyrights by IBM and by others 1982, 2005.
    login: tkbgtftp
    tkbgtftp's Password:
    3004-306 Remote logins are not allowed for this account.

    2> 在/etc/ftpusers文件中加入tkbudget用户,限制OWNER使用FTP服务。

    # more /etc/ftpusers
    tkbudget

    3> 使用/etc/ftpaccess.ctl来控制FTP的访问权限

    # more /etc/ftpaccess.ctl
    readonly: /
    readwrite: /hyperion/tk_outline, /hyperion/corn_logs

    4> 重启FTP服务

    # stopsrc -t ftp
    0513-127 The ftp subserver was stopped successfully.
    # startsrc -t ftp
    0513-124 The ftp subserver has been started.

    实施了上述操作后,基本上实现了用户的需求,同时在安全上也做了相应的限制,但是感觉不是很灵活。但是对于系统自带的FTP服务来说,就算不错了。

    原本打算使用ACL来控制用户访问权限的,但是操作起来对系统修改较多,所以决定还是在FTP服务层面做访问控制。

    下面是关于ACL的相关描述,用于参考。在使用acledit命令前,需要先设置相应的环境变量

    # export EDITOR=/usr/bin/vi

    # aclget tk_outline
    attributes:
    base permissions
        owner(tkbudget):  rwx
        group(tkbudget):  r-x
        others:  ---
    extended permissions
        enabled
        permit   rwx     u:tkbgtftp

    AIX中使用ftp服务(添加ftp用户,权限设置)

    http://fedora.iteye.com/blog/440071

    1.创建目录/icbc

    # mkdir /icbc
    2.建立ftp组 ftpgrp
    # mkgroup ftpgrp
    3.建立用户myftp
    # mkuser home=/icbc shell=/usr/bin/bsh su=false icbc
    4.设定目录属性
    # chown -R icbc:ftpgrp /icbc
    # chmod 755 /icbc
    5.设置用户密码
    # passwd icbc

    6.激活用户

    使用icbc用户登录aix系统,重新设置密码;

    或者直接修改aix配置,不用重置密码即可使用(待查资料)

    7.设置ftp目录权限

    修改/etc/ftpaccess.ctl对目录权限进行控制

    readonly  /

    readwrite /icbc

    writeonly /icbc/data

    aix关于ftp的问题

    http://host.iteye.com/blog/181807

    今天,在aix上装测试环境应用时,ftp总登录不上去,郁闷了半天,看了下系统服务,ftp是开着的,新装的机器,装的时候默认都装了。检查/etc/ftpusers文件,其中屏蔽的只有guest用户,正常。

    用root用户try,提示:

    Login failed.

    换一个用户pub try,提示:

    530-[files]: 3004-610 You are required to change your password.
            Please choose a new one.

    后查找资料发现,通过root创建的用户,并且最后一次修改密码是root帮忙修改的,那么在/etc/security/password中会带 一个ADMCHG的标志,这个标志设置后,系统便会要求用户下次登录时重置密码,但是ftp用户不能修改自己密码,就导致root新建用户不能ftp的问 题。

    解决办法:在控制台上输入 pwdadm -c ftpUser ,就可以将root创建标志去掉,边可以ftp登录了;或者手动修改/etc/security/passwd文件,将对应用户的flags标志置空,再 或者每个用户自己telnet 或者通过其他终端登录上去后修改下密码即可。

    呵呵,如果每次root自己修改了密码,也一样不能ftp,非得要pwdadm -c root   ,其他用户自己修改没问题。

    看到了,记录下一,ftp,主机信任关系

    http://aix.chinaunix.net/doc/2007/07/28/1107908.shtml

    确认看下/etc/inetd.conf和/etc/services里面的配置啊!

    netstat -an|grep 21 看看21端口有没有被监控

    禁止使用FTP用户

    在/etc/ftpuser文件添加/etc/passwd文件中存在的用户名,用来禁止使用FTP的用户


    创建匿名FTP访问

    AIX系统中,默认不启动匿名FTP访问

    运行/usr/samples/tcpip/anon.ftp,可以实现匿名用户anonyone的FTP访问

    实现FTP日志

    1、编辑/etc/syslog.conf文件
      deamon.info [filename]
    2、运行refresh -s syslogd,重启syslogd进程
    3、编辑/etc/inetd.conf文件
       ftp stream .........ftpd ftpd -1
    4、运行refresh -s inetd,重启inetd进程
    这样就实现日志记录在filename中

    信任关系

    信任关系包括两个文件/etc/hosts.equiv和$HOME/.rhosts文件

    一个是主机信任文件,一个是用户信任文件

    #/etc/hosts.equiv
    hostname  [usrname]  
    hostname1 [usrname1]
    ***如果usrname空表示hostname的所有用户都是信任用户
    ***hostanme,表示可以信任的主机名

    #$HOME/.rhosts
    +               表示网络中的所有主机
    hostname        信任该主机上所有用户         

    如:这两个文件在HACMP上的应用

    telnet (p6550b2)192.168.118.168

    AIX Version 5
    ?Copyrights by IBM and by others 1982, 2007.
    login: root
    root's Password:
    *******************************************************************************
    *                                                                             *
    *                                                                             *
    *  Welcome to AIX Version 5.3!                                                *
    *                                                                             *
    *                                                                             *
    *  Please see the README file in /usr/lpp/bos for information pertinent to    *
    *  this release of the AIX Operating System.                                  *
    *                                                                             *
    *                                                                             *
    *******************************************************************************
    Last unsuccessful login: 公元2009年12月06日  星期日  09时33分24秒 on /dev/pts/0 from 192.168.116.28
    Last login: 公元2009年12月09日  星期三  13时52分47秒 on ftp from ::ffff:172.17.25.104

    p6550b2/#cd /etc

    p6550b2/home/wcsuser$oslevel
    5.3.0.0
    p6550b2/home/wcsuser$oslevel -s
    5300-05-06-0000

    proftp

    proftp学习笔记

    http://icarusli.iteye.com/blog/643950

    AIX Proftp配置

    http://blog.chinaunix.net/u/23363/showart_2215598.html

    下载 ftp://ftp.software.ibm.com/aix/f ... .1-2.aix5.1.ppc.rpm
            
    ftp://ftp.software.ibm.com/aix/f ... .8-1.aix5.1.ppc.rpm
     
    安装 :使用 root 登录
         #rpm -ivh coreutils-5.2.1-2.aix5.1.ppc.rpm
         #rpm -ivh proftpd-1.2.8-1.aix5.1.ppc.rpm
    然后:按照你需要修改 /etc/proftpd.conf
    proftpd
    可以在两种模式下运行:
       standalone
        inetd
    下面先说 standalone 模式的配置
          
    使用 standalone 模式进行测试 proftpd 是否可以正常提供服务
          
    检查 /etc/proftpd.conf   确保    ServerType standalone 配置正确
          #netstat -na|grep 21     //
    检查是否已有 ftp 服务占用了 21 端口
     
    如果有,则:修改 /etc/inetd.conf 屏蔽掉 ftp 服务
                  
    /etc/inetd.conf ftp 服务的行前加 #
                 #ftp     stream  tcp6    nowait  root    /usr/sbin/ftpd         ftpd
                 
    然后 refresh -s inetd   确保停掉 ftp 服务
                 #netstat -na|grep 21     //
    重新检查是否已有 ftp 服务占用了 21 端口    
                
    如果仍有,则: ps-ef|grep ftp   查找进程
                      
    将找到的 ftp 服务进程杀掉       #kill -9 pid

    确保 21 端口释放之后:测试 proftpd standalone 模式下是否能正常运行

    确认 /etc/ftpusers 里需要登录的用户已经注释掉
          
          #cd /usr/sbin
          #./proftpd -t        //
    检查配置文件是否有语法错误
          #./proftpd -n -d2    //
    使用 debug proftpd 运行在前台
              
    从客户端登录此 ftp 服务器,进行文件传输测试
              
    测试成功后,即可自己编写脚本进行 proftpd 的启停控制。
          inetd
    模式的配置 :

          修改 /etc/inetd.conf
         
    ftp     stream  tcp6    nowait  root    /usr/sbin/ftpd         ftpd
         
    改为 :
            ftp     stream  tcp    nowait  root    /usr/sbin/proftpd         proftpd   
              
    保存后,重启 inetd 服务
         #refresh -s inetd

    proftp学习笔记

    http://icarusli.iteye.com/blog/643950

    proftp学习笔记(一)
    这几天,公司终于放假了,终于可以安下心来好好学些proftp+mysql+quota。

    安装proftp之前,必须先做一个工作,假如你的mysql是自己编译的,那就必须先修改/etc/ld.so.conf,否则后面运行proftp会报错。
    vi /etc/ld.so.conf

    添加下面一行:

    /usr/local/mysql/lib/mysql


    注意大家如果mysql的安装路径于我不一样,则填写相应的路径,有关mysql的编译安装请参考《Linux+Apache+Mysql+PHP典型配置》。

    1。下载相关软件


    wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.2.9.tar.gz

    下载proftp的最新版本1.2.9 

    wget http://www.castaglia.org/proftpd/modules/proftpd-mod-quotatab-1.2.11.tar.gz

    这是配合proftp的磁盘限额的模块 
    2。解压编译

    tar zvxf proftpd-1.2.9.tar.gz

    tar zvxf proftpd-mod-quotatab-1.2.11.tar.gz

    cp mod_quotatab/*.c proftpd-1.2.9/contrib/

    cp mod_quotatab/*.h proftpd-1.2.9/contrib/


    vi proftpd-1.2.9/contrib/mod_sql_mysql.c
    找到#include 这一行,将mysql.h改成你的系统中此文件所在的路径,如/usr/local/mysql/include/mysql/mysql.h 
    编译:


    ./configure \
    --prefix=/usr/local/proftpd \
    --with-modules=mod_sql:mod_sql_mysql:mod_quotatab\
    :mod_quotatab_sql \
    --with-includes=/usr/local/mysql/include/mysql \
    --with-libraries=/usr/local/mysql/lib/mysql
    make
    make install


    ok, 现在我们可以来启动proftp了,只要


    /usr/local/proftpd/sbin/proftpd

    用你的ftp客户端试验以下,应该可以正常登陆,包括匿名和linux用户名可以。

    其实默认的proftp满足日常的服务器管理用还是绰绰有余的,有个地方还是要修改一下,就是默认proftp的配置文件不支持ftp续传,所以我们只要


    vi /usr/local/proftpd/etc/proftpd.conf

    添加以下两行


    AllowRetrieveRestart on
    AllowStoreRestart on


    重新启动以下proftp,就可以正常续传文件了。

    创建proftpd脚本

    只要在proftp的源代码目录


    cp proftpd-1.2.9/contrib/dist/rpm/proftpd.init.d /etc/rc.d/init.d/proftpd


    记得修改proftpd文件,一般要修改proftpd的实际路径


    chmod 755 /etc/rc.d/init.d/proftpd

    ok

    以后就可以用这个教本来启动,停止,重启proftp

    呵呵,今天就讲这些,明天讲些proftp的一些基础配置:)


    proftp学习笔记(二)
    上次我们讲了proftp的基本安装,由于我们后面有关于mysql和quota的设置,所以编译的时候把相应的模块都编译进去了,如果你不需要mysql和磁盘限额的功能,完全可以不需要这么编译。

    这里要讲一个非常实用的命令,


    /usr/local/proftpd/sbin/ftpshut

    这个命令还是比较实用的,因为你可能需要不断的调整你的服务器,而这个命令就非常灵活,可以在不停止proftpd进程的前提下,定时停止ftp连接,这里将会详细说它是怎么使用的。

    ftpshut [ -l min ] [ -d min ] time [ warning-message ... ]

    -l min: 在ftp关闭服务之前的几分钟内,尝试建立新的ftp连接均不被接受
    -d min: 在ftp关闭服务之前的几分钟内,已经建立的ftp连接将被中止
    time: 在多少时间后,服务器将关闭ftp服务,格式有两种
    +number 经过number分钟后关闭
    MMHH 在今天MM:HH服务器将关闭

    注意,这里我们用这个命令是把ftp服务给停了,但实际的proftpd进程还没停止,所以一般调试ftp会使用到这个命令。

    举例:
    再经过30分钟后,FTP服务将关闭,在这之前的20分钟不可接受任何新的ftp连接,已经建立的在服务关闭前10分钟强制断线,并在客户端显示“FTP Server Will shutdown at time”

    ftpshut -l 20 -d 10 +30 "FTP Server Will shutdown at time"


    其实ftpshut就是产生/etc/shutmsg ,你只要删除这个文件ftp又可以重新服务,或者
    直接

    ftpshut -R


    好了,开始讲一些proftpd的基本配置吧,其实大家如果熟悉apache的配置的话,你会发现proftpd的设置基本都是类似的,它的配置基本格式是


    #全局设置
    设置项目1 参数1
    设置项目2 参数2

    #某个目录的设置
    <Directory "路径名">;
    ...
    ...
    </Directory>;

    #关于匿名用户的设置
    <Anonymous "匿名登陆的目录">;
    ...
    ...
    <Limit 限制动作>;
    ...
    ...
    </Limit>;
    </Anonymous>;

    我们用到的比较多的可能是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 使用者


    下面我们以例子来解说proftp的配置,这样大家可能更加容易理解。

    1。ftp服务器支持断点续传,且最大支持同时10人在线,每个ip只允许一个连接;
    2。允许ftpusers用户组只能访问自己的目录,而不能访问上级或者其他目录;
    3。用户登陆服务器时不显示ftp服务器版本信息,以增加安全性;
    4。建立一个kaoyan的ftp帐户,属于ftpusers组,kaoyan用户只允许下载,没有可写的权限。下载速率限制在50Kbytes/s。
    5。建立一个upload用户,也属于ftpusers组,同kaoyan用户的宿主目录一样,允许upload用户上传文件和创建目录的权限,但不允许下载,并且不允许删除目录和文件的权限,上传的速率控制在100Kbytes/s

    先是前期的用户和组添加以及目录的权限设置


    group add ftpusers
    useradd -d /home/kaoyan -g ftpusers -s /bin/fales kaoyan
    useradd -d /home/kaoyan -g ftpusers -s /bin/fales upload
    chown -R kaoyan:upload /home/kaoyan
    chmod -R 775 /home/kaoyan


    如果你只想ftpusers组的用户访问,可以设置成770都行。
    设置/usr/local/proftpd/etc/proftpd.conf

    注意#表示注释,对设置没影响,可以不写


    ServerName "Frank's FTP Server"
    ServerType standalone
    DefaultServer on
    Port 21
    Umask 022
    MaxInstances 30 #最多有30个proftpd的PID
    User nobody
    Group nobody
    TimeoutStalled 10
    MaxClients 10 #最多允许10个用户在线
    MaxClientsPerHost 1 "对不起,一个IP只允许一个连接"
    AllowStoreRestart on
    #允许断点续传(上传),断点续续(下载)是默认支持的,不用设置
    DisplayLogin welcome.msg #欢迎词文件
    ServerIdent off #屏蔽服务器版本信息
    DefaultRoot ~ ftpusers #设置ftpusers组只能访问自己的目录

    <Directory />;
    AllowOverwrite on
    </Directory>;
    <Directory /home/kaoyan>;
    <Limit WRITE>; #不允许写
    DenyUser kaoyan
    </Limit>;
    <Limit RMD RNFR DELE RETR>; #不允许删除,改名,下载
    DenyUser upload
    </Limit>;
    TransferRate RETR 50 user kaoyan
    TransferRate STOR 100 user upload
    </Directory>;

    我这里实现的方式还可以通过

    <Anonymous ~kaoyan>;

    ...

    ...

    </Anonymous>;

    <>;<Anonymous ~upload>;

    ...

    ...

    </Anonymous>;


    而且更加灵活,具体用那种方式,看大家了,我只是给大家入个门而已

    好了,今天就讲到这里,明天继续讲一些proftp的其他配置


    proftp学习笔记(三)
    前面的两个笔记,我想大家对proftp的设置应该有些认识,是不是跟apache的配置差不多吧。我想配置过Serv_U服务器的,再稍微看一下proftp的配置规则,应该能马上能配置出一个强大的proftp服务器。

    这里我们再讲一些proftp的其他参数配置:

    MaxHostsPerUser 1 "对不起,每个帐户最多允许来源ip为1个"
    #MaxHostsPerUser 对防止ftp帐号还是比较有用的。

    MaxClientsPerUser 1 "对不起,每个帐户在每个客户端最多可以同时登陆1次"
    #这个参数可以防止多线程软件下载对服务器的破坏

    MaxClientsPerHost 1 "对不起,同一个客户端只能最多1个帐号可以登陆"
    #比如ftp服务端有好多帐户你都有,但也只能用1个帐号登陆

    呵呵,这三个Max参数比较容易搞晕,大家可要搞清他们的含义哦:)

    WtmpLog on 
    #是否要把ftp记录在日志中,如果不想可以设置成off屏蔽掉log日志。

    TimeoutIdle 600
    #客户端idel时间设置,默认就是600秒

    DisplayLogin welcome.msg
    #设置ftp登陆欢迎信息文件

    关于欢迎文件的设置包含如下参数

    %T 目前的时间

    %F 所在硬盘剩下的容量

    %C 目前所在的目录

    %R Client 端的主机名称

    %L Server 端的主机名称

    %U 使用者帐户名称

    %M 最大允许连接人数

    %N 目前的服务器连接人数

    %E FTP服务器管理员的 email

    %i 本次上传的文件数量

    %o 本次下载的文件数量

    %t 本次上传+下载的文件数量


    知道这些参数,我们就可以写出一个友好的欢迎语

    vi /home/kaoyan/welcome.msg


    欢迎您%U, 这是Frank的测试FTP服务器;
    目前时间是:%T;
    本服务器最多允许%M个用户连接数;
    目前服务器上已有%N个用户连接数;
    目前你所在的目录是%C;
    目录所在的硬盘还剩下%F字节。


    让proftp支持现在流行的FXP传输方式,默认是不支持的。
    只要在服务端设置

    AllowForeignAddress on

    PassivePorts 49152 65534 #端口也可自己指定喜欢的


    千万别忘了在客户端也要设置成支持FXP哦,否则想我试验了好几次,一直以为服务器没设置好,其实就是客户端没设置,呵呵。


    如何让root能登陆,默认proftp是不支持root登陆,我们可以设置让root也能登陆ftp,不过我在这里还是建议大家最好不要让root能登陆ftp,设置如下


    RootLogin on

    如何禁止某个地址访问ftp
    比如禁止10.1.1网段的机器访问ftp,可以这么设置

    <Limit LOGIN>;
    Order deny,allow
    Deny from 10.1.1.
    Allow from all
    </Limit>;

    虚拟ftp的建立,一般用于一台ftp服务器有好多ip地址,或者ftp用不同的端口,基本设置语法是:

    比如我们要做一个端口是5555的ftp服务器:


    <VirtualHost 210.51.0.124>;
    ServerName "Frank FTP Server"
    Port 5555
    ...
    <Directory 目录>;
    ...
    <Limit 动作>;
    ...
    </Limit>;
    ...
    </Directory>;
    </VirtualHost>;


    至于虚拟主机中的其他设置跟我以前讲的基本差不多

    上传/下载比率设置,我想用过Serv_U的朋友一定知道这个功能的使用,我们这里让proftp也实现这个功能。
    要实现功能注意编译的时候加入ratio模块,否则proftp默认是不支持,假设有个帐户ftp1的ftp目录在/home/kaoyan ,然后我们设置ftp1的上传/下载比率是1:2(即上传1M,就可以下载2M)


    touch /home/kaoyan/ratio.dat
    touch /home/kaoyan/ratio.tmp
    chmod -R 666 /home/kaoyan

    在proftpd.conf设置如下

    Ratios on
    SaveRatios on
    RatioFile /home/kaoyan/ratio.dat
    RatioTempFile /home/kaoyan/ratio.tmp


    在相应的设置项里添加


    UserRatio ftp1 0 0 2 1000
    #UserRatio "使用者帐户" fileratio filequota byteratio bytequota
    #  fileratio :以文件为基础的比率,通常不限制,故为 0
    #  filequota :预设置能下载多少文件,不限制时为 0
    #  byteratio :就是上传/下载的比例,如果数字为2,表示1:2
    #  bytequota :预设置能下载多少 KBytes 的文件
    #上面设置的就是1:2的比率,默认只允许下载1M的文件


    ok,重启一下,以后ftp1就可以启用上传/下载比率了


    proftp学习笔记(四)
    今天我们讲proftp+mysql+quota的应用,我想大家最期待的就是这个了吧

    end

  • 相关阅读:
    skywalking学习
    logstash使用
    AIO编程
    NIO编程
    NIO入门之BIO
    Akka Cluster之集群分片
    Akka Stream之Graph
    【Swift学习笔记-《PRODUCT》读书记录-实现自定义转场动画】
    CoreData 数据模型文件导出NSManagedObject时重复问题
    iOS图片压缩
  • 原文地址:https://www.cnblogs.com/lindows/p/14390403.html
Copyright © 2020-2023  润新知