FLAGS and PERMISSIONS

ioFTPD에서 제공되는 Flag은 아래와 같습니다.

M = Master
V = VFS Admin
G = Group Admin / Group Lock
T = Telnet Access
H = HTTP Access
F = FXP Denied (Download)
f = FXP Denied (Upload)
L = Skip Max Users per Service check


ioFTPD는 퍼미션은 4가지 Array로 구성되어 있습니다.

[Ftp-SITE-Permissions]
[Change-Permissions]
[Telnet-Permissions]
[Http-Permissions]

예를들어:
[Ftp-SITE-Permissions]
adduser = 1GM
renuser = 1M
...

'1', 'G' 또는 'M' flag을 가진 유저만이 site adduser를 사용할 권한이 있다는 의미입니다.

'1' flag은 glftpd에서 SiteOp에 붙는 flag으로 ioFTPD에도 기본으로 사용되어지는 flag입니다.

site renuser명령어는 '1'이나 'M' flag을 가지고 있는 유저가 실행할 수 있습니다.

'G' flag은 Group Admin / Group Lock 의미를 가진 flag으로 Group 관리자에게 부여됩니다.

ioFTPD에선 별도로 Group Admin을 지정해줘야 하는데 다음의 site명령어로 지정합니다.

SITE CHANGE <user> ADMINGROUP <group>




Permissions Array외에도 SERVICES Array도 위와 같은 방식으로 flag이 사용됩니다.

[Ftp_Service]
..
Allowed_Users = *
Req_Encrypted_Auth = M !*
Req_Encrypted_Data = !*

Allowed_Users = * <-- 모든 유저에게 허용한다는 의미 ( !* : 모든유저에게 허용하지 않는다는 의미겠죠 )
Req_Encrypted_Auth = M !* <-- Master는 필히 보안Login을 해야하며 그외의 유저는 보안Login을 하지 않아도
                                                 된다는 의미
Req_Encrypted_Data = !* <-- 모든유저가 데이타 전송에 보안 전송을 하지 않아도 된다는 의미


한가지 더 예를 들어보겠습니다.

[Ftp-SITE-Permissions]
tagline = !A *
passwd = !A *
who = !A *
chmod = !A *

위의 예는 Anonymous유저는 위의 명령어를 사용할수 없지만 그외의 모든 유저는 사용가능하다는 의미입니다.

위의 예에서 보듯이 ioFTPD에서는 flag의 순서도 중요합니다.

'!A *' 가 Anoymous를 포함하지 않는 다는 의미의 바른 예이며, '* !A' 로 세팅한다면 Anoymous계정을 포함한 의미로
'*' 가 사용되어서 바른 세팅방법이 아닙니다.


CUSTOM FLAGS

기본으로 제공되는 flag외에도 사용자가 임의로 지정해서 사용하는 flag도 사용이 가능합니다.

예를 들어 Nuke명령어에(아직 ioFTPD에는 Nuke내부 명령어가 없습니다) N이라는 임의의 flag을 부여해서 관리한다면

ioFTPD.ini화일을 수정합니다.
[Ftp-SITE-Permissions]
..
nuke = 1MN
unnuke = 1MN


N을 추가하셨다면 이제 Nuke명령어를 사용 할 Nuker가 될 유저에게 N flag을 추가합니다.

site change <user> flags +N