AIX 限制ftp用户只能访问其主目录

更新时间:2023-05-05 08:32:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

AIX 限制ftp用户只能访问其主目录

aix 新建个普通用户test,想让此用户只能ftp到指定的目录下/backup,权限只读;不能进入到其他目录下。如何能实现呢?

1.创建并编辑ftpaccess.ctl

#touch /etc/ftpaccess.ctl

#vi /etc/ftpaccess.ctl------>添加useronly: test

创建用户test,并把其主目录设置为/backup

2. Copy the "ls" binary to /test:

# cd /backup

#mkdir bin

# chown root bin

# cp /bin/ls /test/bin/ls

# chmod 111 /test/bin/ls

# chmod 555 /test/bin

# chgrp system /test/bin

3. Copy the required libraries:

# mkdir lib

# chmod 555 lib

# chgrp system /test/lib

# cp /lib/libc.a lib/libc.a

# cp /lib/libcurses.a lib/libcurses.a

# cp /lib/libcrypt.a lib/libcrypt.a

4.重启ftp服务:

#stopsrc -t ftp

#startsrc -t ftp

-----------------------------

上述步骤实现了/backup显示为/目录,用户不能进入其他目录。

至于权限只读,把用户主目录设置为/bakcup后,设置一下目录权限不就好了。

空间管理您的位置: ITPUB个人空间? hrb_qiuyb的技术空间? 日志

姓名:杨宝秋,OCM,ACE。9年的TB级数据库设计、建设、管理、运行维护、调优经验,也做了7年的Hp和IBM Rs6000的系统管理员,而且是获得了BCFP 认证的SAN管理员,现为中国联通黑龙江分公司数据库主管。

Aix 5.3 ftp其它主机报530 Login incorrect处理

上一篇 / 下一篇 2008-07-29 14:01:51 / 个人分类:Unix

查看( 967 ) / 评论( 0 ) / 评分( 0 / 0 )

1、问题描述

Aix 5.3 level07的操作系统,以root登陆后ftp其它的主机没有任何问题,以非root的任何用户登陆ftp其它主机键入用户名、口令回车后报如下的报错:

$ ftp 192.168.1.10

Connected to 192.168.1.10.

220 sd11 FTP server (Version 1.1.214.4(PHNE_27765) Wed Sep 4 05:59:34 GMT 2002) ready.

Name (192.168.1.10:root): oracle

331 Password required for oracle.

530 Login incorrect.

Login failed.

ftp>

2、问题诊断

检查过 /etc/ftpusers file format, /etc/inetd.conf等配置文件及用户的设置均未发现问题。google了一下也未发现相似问题的处理。

为细查一下产生问题的原因,决定用truss跟踪一下。

2.1 首先开一个ftp的交乎进程:

oracle>ftp 192.168.1.10

2.2 再改一个窗口以truss进程跟踪

# ps -ef|grep ftp

root 311514 463062 0 09:00:20 pts/2 0:00 grep ftp

oracle 413866 487606 0 08:59:40 pts/1 0:00 ftp 192.168.1.10

# truss -p 446626

ftp窗口报错后,truss捕获到如下信息:

kread(0, 0x00000000, 0) (sleeping...)

kread(0, 0x00000000, 0) = 10

_sigaction(2, 0x2FF1FAB0, 0x2FF1FAC0) = 0

kwrite(4, " U S E R r o o t", 11) = 11

_sigaction(2, 0x2FF1A9E0, 0x2FF1A9F0) = 0

kread(4, " 3 3 1 P a s s w o r d".., 4096) = 33

kwrite(1, " 3 3 1 P a s s w o r d".., 32) = 32

kfcntl(1, F_GETFL, 0x2FF22FFC) = 2

_sigaction(2, 0x2FF1A9E0, 0x2FF1A9F0) = 0

_sigaction(2, 0x2FF1FAB0, 0x2FF1FAC0) = 0

_getpid() = 446626

open("/dev/tty", O_RDWR) Err#13 EACCES

_sigaction(2, 0x2FF22310, 0x2FF22320) = 0

_sigaction(2, 0x2FF1FAB0, 0x2FF1FAC0) = 0

kwrite(4, " P A S S ", 7) = 7

_sigaction(2, 0x2FF1A9E0, 0x2FF1A9F0) = 0

kread(4, " 5 3 0 L o g i n i n".., 4096) = 22

kwrite(1, " 5 3 0 L o g i n i n".., 21) = 21

kfcntl(1, F_GETFL, 0x2FF22FFC) = 2

_sigaction(2, 0x2FF1A9E0, 0x2FF1A9F0) = 0

_sigaction(2, 0x2FF1FAB0, 0x2FF1FAC0) = 0

_getpid() = 446626

kwrite(1, " L o g i n f a i l e d".., 14) = 14

seteuid(0) = 0

_getpid() = 446626

sigprocmask(0, 0x2FF222A0, 0x2FF222A8) = 0

auditlog("TCPIP_access", -1, "TCP/IP", 56) Err#22 EINVAL sigprocmask(2, 0x2FF222A0, 0x2FF222A8) = 0

seteuid(202) = 0

_sigaction(2, 0x2FF225E0, 0x2FF225F0) = 0

_sigaction(13, 0x2FF225E0, 0x2FF225F0) = 0

_getpid() = 446626

kwrite(1, " f t p > ", 5) = 5

kfcntl(1, F_GETFL, 0x00000020) = 2

kread(0, " u s e r r o o t\n\0\0".., 4096) (sleeping...)

2.3 问题分析

看一下标红的部分,报EACCES错,表明/dev/下的tty设备的权限位设置有问题。确认一下:

#ls -l /dev/tty*

crwxr-xr-x 1 root system 1, 0 Jul 29 14:09 tty crwxr-xr-x 1 root system 18, 0 Jun 23 11:57 tty0 crw-r--r-- 1 root system 30, 0 Jun 23 12:45 ttyp0 crwxr-xr-x 1 root system 30, 1 Jun 23 12:45 ttyp1 crwxr-xr-x 1 root system 30, 2 Jun 23 12:45 ttyp2 crwxr-xr-x 1 root system 30, 3 Jun 23 12:45 ttyp3 crwxr-xr-x 1 root system 30, 4 Jun 23 12:45 ttyp4 crwxr-xr-x 1 root system 30, 5 Jun 23 12:45 ttyp5 crwxr-xr-x 1 root system 30, 6 Jun 23 12:45 ttyp6 crwxr-xr-x 1 root system 30, 7 Jun 23 12:45 ttyp7 crwxr-xr-x 1 root system 30, 8 Jun 23 12:45 ttyp8 crwxr-xr-x 1 root system 30, 9 Jun 23 12:45 ttyp9 crwxr-xr-x 1 root system 30, 10 Jun 23 12:45 ttypa crwxr-xr-x 1 root system 30, 11 Jun 23 12:45 ttypb crwxr-xr-x 1 root system 30, 12 Jun 23 12:45 ttypc crwxr-xr-x 1 root system 30, 13 Jun 23 12:45 ttypd crwxr-xr-x 1 root system 30, 14 Jun 23 12:45 ttype crwxr-xr-x 1 root system 30, 15 Jun 23 12:45 ttypf

可以看到除root用户外其它用户对tty设备没有写的权限。

3 问题的处理

明白了报错的原因,处理起来非常容易了,tty设备加上写权限就可以了: #chmod g+w tty*

#chmod o+w tty*

4 测试一下发现问题正是源于此,问题解决了。

<全文完>

AIX下的FTP配置笔记

昨天用户提需求,说要在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

发表于:2002/04/02 06:32pm

[这个贴子最后由liangweijun在2002/04/02 06:33pm 编辑]

我想到的方法就是:

1.建立目录(最好是独立的文件系统)/ftphome

2.建立组ftpgrp

#mkgroup ftpgrp

3.建立用户myftp

#mkuser home=/ftphome shell=/usr/bin/mysh su=false myftp

4.设定目录属性

#chown -R myftp:ftpgrp /ftphome

#chmod 755 /ftphome

5.激活用户

#passwd myftp

当文件拷入/ftphome后记得重新做chown -R动作。

上面方法就是指定的shell不存在,用户无法登陆,但是可以ftp.

不知有无更好方法,请指教,谢谢

发表于: 2002/04/02 09:55pm

最近刚刚做过一个有关AIX下匿名ftp的设置工作,设置步骤倒是也很简单。步骤如下:

1. 设置匿名FTP用户,用vi编辑文件/etc/passwd,加入下面一行信息:ftp:*:2121:21:Anonymous FTP User:/home/ftp:

2. 设置FTP目录

事实上在上一步操作中已经为用户ftp设置了用户主目录以及匿名 FTP时用户的顶层目录。

3. 一旦分配好了空间,就可以创建 FTP目录。这个目录的所有者必须是 root 和一个其组员中不包括用户ftp的组:

# mkdir /home/ftp

# chown root /home/ftp

# chgrp bin /home/ftp

# chmod 755 /home/ftp

接下来的工作是创建 FTP目录之下的子目录,如 bin、etc和 pub等。FTP目录下的这些子目录每个都有专门用途:

bin FTP服务器运行的辅助程序(ls)所在目录。

etc FTPD及其支持程序所需信息表(passwd、group)所在目录。

pub FTP文档目录内所有可供用户公开访问的文件所在目录。

所有这些目录的所有者必须是 root和一个其组员中不包括用户 ftp的组。完成上述操作之后,这些目录的权限等信息如下所示:

drwxr-xr-x 7 root bin 512 Apr 5 15:17 ./

drwxr-xr-x 25 root bin 512 Jul 13 11:30 ../

drwxr-xr-x 2 root bin 512 Aug 28 15:43 bin/

drwxr-xr-x 2 root bin 512 Jun 22 16:23 etc/

drwxr-xr-x 10 root bin 512 Jan 14 10:54 pub/

·各目录的拥有者中均包含 root。

·除用户 ftp外,所有目录都至少有一个不同的组用户。

·任意目录的写权限都不能向所有用户开放。

·bin目录只能包括由所有用户执行的可执行文件。

总之,用户 ftp不得拥有匿名 FTP空间内的任何文件和目录。匿名 FTP用户只能用这种权限对文件进行操作。

4. 为使匿名 FTP用户能够显示目录清单,FTP服务器必须有一个1s命令的拷贝。把系统命令1s的一份拷贝复制到 FTP目录的步骤如下:

# cp /bin/ls /home/ftp/bin

# chown root /home/ftp/bin/ls

# chgrp bin /home/ftp/bin/1s

# chmod 111 /home/ftp/bin/ls

这些命令还确保了复制的拷贝有一个正确的权限,并且不能由任意用户读写。5. 现在必须复制口令文件和组文件的一个“假”备份,并把它放在

~ftp/etc(FTP匿名登录后根下的目录)目录。虽然进行权限检查时并不需要使用这些文件,但如果希望用 ls命令列举目录内容时能够显示拥有者信息和组信息,那么这些文件将是必需的。应切记不要把系统的实际口令和组文件拷贝到这儿,否则非法入侵者可能由此而访问到你系统的口令信息。

这里制作的/etc/passwd拷贝应包含root和ftp的条目,这两者的口令域均包括了一个星号( *)。同时,这里还可包括那些负责维护匿名 FTP文件的所有用户的条目。这虽然不是必需的,但在列举目录内容时可使用户根据拥有者名(而不是根据 UID)来显示文件权限。在这些条目中,你同样应该用星号替换加密后的口令。

对于这里复制的/etc/group文件,其中只能包括在 FTP档案中出现的组的条目。比如,上面提到的 bin组就应该包括在这儿。对于各组所对应的条目,应当删除组的成员信息,并确保在加密的口令宇段显示的是一个星号( *)

最后,请确保和~ftp/etc/passwd和~ftp/etc/group文件的拥有者中包括 root,并且不是所有用户可写。

6. 在目前的所有 UNIX系统上,FTP服务器都是从 inetd运行的。除非你取消了这个进程,否则 FTP服务器肯定已在/etc/inetd.conf中配置就绪。不过无论如何你都应检查一下这个条目。

如果一切正常,则在/etc/services应该有两个与 FTP相关的条目(如果使用NIS,则这些条目应该在 NIS服务器的 services图上),如下所示:

ftp-date 20/tcp

ftp 21/tcp

(注:以上内容可以用命令 grep ftp /etc/services 来查看。)

请确认已定义了上面两项。

在/etc/inetd.conf应该可以找到类似下面这样的对应 FTP的条目:ftpstreamtcp6nowait root /usr/sbin/ftpd ftpd

(注:以上内容可以用命令 grep ftp /etc/inetd.conf 来查看。)

7. 最后,应该使AIX内核重新读取系统配置文件,使FTP生效。

# refresh -s inetd

0513-095 The request for subsystem refresh was completed successfully. 如果看到上面的提示信息,就意味着配置好了inetd,匿名FTP应该算完全就绪了。

8. 直接ftp yourhost试一试,用ftp用户登录,应该是不需要什么口令就可以的了。

发表于:2002/04/03 04:29pm

楼上的讲的不错!

我通过资料发现IBM提供了建立匿名FTP服务的脚本,目录是:/usr/samples/tcpip/anon.ftp 执行该脚本看看,嘿嘿,然后用ftp用户来进行ftp登陆,好了。

AIX中使用FTP服务

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

本文来源:https://www.bwwdw.com/article/k61e.html

Top