예전 qmail 을 설정할 때 가상계정으로 mysql 을 사용하였다.
vpopmail 에서 계정확인을 mysql 을 이용하는 방법이었다.

proftpd 도 비슷하게 가상계정으로 사용자 인증을 할 수 있다.
가상계정의 이점은 콘솔상에서 유저를 생성하지 않고, 웹에서 처리할 수 있다.
웹프로그램으로 DB 에 계정정보를 넣으면 된다.

어디를 설정해 줘야 하나?

/etc/proftpd/proftpd.conf 를 수정(추가)한다.

Include /etc/proftpd/sql.conf

그리고 sql.conf 를 생성한다.(이미있는 경우 수정)

<IfModule mod_sql.c>
SQLBackend      mysql

SQLAuthenticate users* groups*

SQLAuthTypes Crypt Plaintext

SQLConnectInfo {디비명}@localhost {유저명} {암호}

SQLUserInfo ftpusers userid passwd uid gid homedir shell
SQLGroupInfo ftpgroups groupname gid members

</IfModule>

그리고, 위의 디비명, 유저명, 암호에 맞게 가상계정정보를 넣을 디비를 설정한다.(자세한 사항 생략)

계정정보를 넣는 테이블 구조는 어떻게 되나?

마지막으로 계정정보를 넣을 테이블을 만들어준다.

CREATE TABLE ftpgroups (
        groupname varchar(16) NOT NULL default '',
        gid smallint(6) NOT NULL default '2001',
        members varchar(16) NOT NULL default '',
        KEY groupname (groupname)
) TYPE=MyISAM COMMENT='ProFTP group table';

CREATE TABLE ftpusers (
        id int(10) unsigned NOT NULL auto_increment,
        userid varchar(32) NOT NULL default '',
        passwd varchar(32) NOT NULL default '',
        uid smallint(6) NOT NULL default '2001',
        gid smallint(6) NOT NULL default '2001',
        homedir varchar(255) NOT NULL default '',
        shell varchar(16) NOT NULL default '/bin/false',
        count int(11) NOT NULL default '0',
        accessed datetime NOT NULL default '0000-00-00 00:00:00',
        modified datetime NOT NULL default '0000-00-00 00:00:00',
        PRIMARY KEY (id),
        UNIQUE KEY userid (userid)
) TYPE=MyISAM COMMENT='ProFTP user table';

가상계정용 공통 유저/그룹을 생성한다.

groupadd -g 2001 ftpgroup
useradd -u 2001 -s /bin/false -d /bin/null -c "proftpd user" -g ftpgroup ftpuser

uid/gid 는 적절하게 바꿔서 넣어줘도 된다.
shell 의 경우  /bin/false 로 했는데, Centos 의 경우는 디폴트인 /sbin/nologin 으로 해주면 된다.

테스트로 계정을 만들고 접속을 시도해 본다.

INSERT INTO `ftpgroups` (`groupname`, `gid`, `members`) VALUES ('ftpgroup', 2001, 'ftpuser');

INSERT INTO `ftpusers` (`id`, `userid`, `passwd`, `homedir`, `count`, `accessed`, `modified`) VALUES (1, 'testuser', 'testpass', '/var/FTPuser/testuser', 0, '', '');

파일질라 등으로 테스트 해본다.
접속해서 파일을 업로드 해보면, 설정한 uid/gid 로 파일이 생성된다.
웹상의 파일로 연동을 시키기 위해 아파치계정인  apache 나 www-data 등으로 uid/gid 를 설정해 주어도 될 것이다.

[추가]
기본 ftpuser / ftpgroup 은 고정인 것 같다. 아파치계정과 연동을 시킬려고 시도 해봤는데, 안되네.
proftpd 쪽에서 바꾸지 않고, 아파치쪽에서 바꿔야 겠다.(퍼미션 조정으로..)

[추가2] ubuntu 에서 sql / mysql mod 적용

apt-get install proftpd-mod-mysql

/etc/proftpd/modules.conf 에서 모듈 활성화

LoadModule mod_sql.c
LoadModule mod_sql_mysql.c

 

[추가3] Invalid shell: '/bin/false'

로그인시 위와 비슷한 메시지가 나오는 경우 /etc/shells 에 등록해준다.

# cat /etc/shells 
# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
/bin/false

 

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,
카스퍼스키 안티바이러스를 깔아 쓰고 있는데.
svchost 경고를 내보낸다. 뭐지? 괜찮은 건가? 뭔가 이상이 있는 것인가?
이런 메세지가 나온다. 무슨 경고일까?
svchost 가 뭔가 변했다는 것 같은데.
바이러스나 스파이웨어 같은 것이 돌고 있는 것일까?

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,
바코드 출력할 일이 있어서 보고 있는데.
바코드가 한두개가 아니구나!
일반적으로 대여점. 상점등에서는 어떤 종류를 쓰지?
아무거나 해도 상관없을까?
일단 Code 93 Standard ( code 39 / standard,extended ) 로 하긴 했는데, 테스트 해봐야 겠다.
바코드 리더기는 저 종류를 다 인식하겠지?


# 종류가 나뉘는 것은 허용되는 문자, 갯수 등의 차이인 것 같다.
http://www.jlabel.kr/board/board.php?board=Customer&page=2&command=body&no=14
http://www.qtec.co.kr/customer/customer_01_020.htm
http://barkorea.co.kr/data_barko_03.php

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,
어떤 서비스를 하던간에 고객대응을 하게 된다.
고객센터라고 하는 곳의 목적이 뭘까?

그저 업무매뉴얼에 맞게 고객을 대하면 끝일까?
고객센터라고 하면 고객의 이야기를 들어주는 것이 아닐까?
무리한 요구(업무매뉴얼에 없는)라고
"업무매뉴얼대로 해야합니다."
개선사항을 말해도
"업무내뉴얼대로 하세요."

답답한 마음이 든다.
내가 무리한 요구를 하는 것일까? 정말 그런가?
다시 한번 생각해 본다.

그래, 괜히 창의적인 생각을 해봐야 이득볼 것 없다. 라는 그런 매너리즘에 빠져있나보다.
난 그저 업무 처리를 할뿐 고객과 대화하고 싶지 않다.  그런 말처럼 들린다.

왠지 공허하다. 내가 그들의 서비스를 개선시켜봤자 뭐하나!


반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,
백업할때 rsync 를 많이 쓴다.

보통 이런식이다.
rsync -avzrt -e 'ssh -p 2222 '  {SRC} {DEST}

그런데, 서버측과 백업측의  uid , gid 가 동일 하지 않으면 백업측의 전송된 파일이 바뀌는 경우가 있다.
즉, 서버측의 mysql 의 uid , gid 가 각각 27  이고, 백업측은 55 라고 하면.
rsync 로 백업이 되면서 27 에서 55 로 자동 변환되어 백업된다.

서버측의 uid/gid 를 그대로 가져오고 싶다면 다음과 같은 옵션을 추가해 준다.
rsync -avzrt --numeric-ids -e 'ssh -p 2222 '  {SRC} {DEST}
그러면 uid,gid 가 유지된채 백업이 된다.

uid, gid 에 엄격한  mysql , named 등을 rsync 로 백업할 때 주의한다.

반응형

WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

,