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 ,其他用户自己修改没问题。
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