Skip to main content

sftp 서버 사용자 지정 기능

By 1월 7, 2016February 10th, 2020기능, 팁 & 응용

2016년 1월 7일에 배포한 Xftp 빌드 0830(Xmanager 엔터프라이즈 빌드 0837) 버전에는 sftp 서버를 사용자가 지정할 수 있는 기능이 있습니다.

theOption-kr

이 기능을 이용하여 다른 사용자의 권한으로 작업을 진행할 수 있습니다.

  • sudo 명령을 사용하여 다른 사용자의 권한을 얻는 방법
  • setuid 비트 설정을 통해서 다른 사용자의 권한을 얻는 방법

sudo 명령을 사용하여 다른 사용자의 권한을 얻는 방법 : sudoers를 이용하는 방법

1. sudoers설정
– /etc/sudoers에 등록. NOPASSWD, Defaults !requiretty 설정 필요


# vi /etc/sudoers
...
#Defaults requiretty => 주석 처리 또는
Defaults !requiretty
...
User_Alias     ADMINISTRATOR = user1, user2, ...
ADMINISTRATOR ALL=(ALL) NOPASSWD:/경로/사용자_지정_sftp-server
...

사용자 지정 sftp-server에는 사용자가 실행하고자 하는 sftp-server를 전체 경로와 함께 지정합니다.
Open SSH의 경우는 기본적을 sftp 서브 프로그램(sub system)을 가지고 있습니다.
다음 명령으로 해당 경로와 파일을 알아 볼 수 있습니다.
# cat /etc/ssh/sshd_config |grep sftp
Subsystem sftp /usr/libexec/openssh/sftp-server

기본 sftp-server

CentOS의 경우 : /usr/libexec/openssh/sftp-server
Ubuntu의 경우 :  /usr/lib/openssh/sftp-server

2. Xftp 설정

해당 세션 등록정보에서 sftp 프로토콜 선택 -> 설정 -> 사용자 정의 SFTP 서버 사용

option2

setuid 비트 설정을 통해서 다른 사용자의 권한을 얻는 방법

1. 사용하고자 하는 sftp 서버를 정한 후 setuid 비트를 설정합니다.
# cp /usr/libexec/openssh/sftp-server /home/test
# cd /home/test
# chmod u+s sftp-server
# ls -l sftp-server
-rwsr-xr-x. 1 root root 63544 2016-01-06 16:53 sftp-server

2. Xftp 설정

userDefinedSftpServer-setuid

참고 및 주의 사항

setuid는 파일 실행 시 해당 파일의 소유자의 권한으로 실행하도록 하는 파일 퍼미션 플래그입니다. 그러므로 해당 파일의 소유자가 root일 경우에는 setuid 비트를 설정하는데 주의를 해야 합니다.

sftp-server 등을 root 권한으로 사용해야 할 필요성이 있다면 특정 그룹만이 해당 서버를 구동하도록 하는 설정을 활용해 보세요.

# groupadd admin
# usermod -a -G admin test
# id test
uid=501(test) gid=501(test) groups=501(test),502(admin)
# ls -l /home/test/sftp-server
-rwsr-xr-x. 1 root root 63544 2016-01-06 16:53 sftp-server
# chgrp admin /home/test/sftp-server; chmod o-rx /home/test/sftp-server
# ls -l /home/test/sftp-server
-rwsr-x---. 1 root admin 63544 2016-01-06 16:53 sftp-server

Leave a Reply

19 − 8 =