본문 바로가기
Linux

linux sftp umask 변경

by 도경다경 2024. 5. 27.
반응형

고객사에서 권한 문제료 umask를 변경해달라길래 터미널 접속인가? 하고 profile에 umask 설정을 해줬더니

안된다고 프로그램 화면을 보여주는데

 

아뿔싸...

sftp네?

 

sftp 는 ssh와 같은 port를 쓰지만(분리도 가능) umask는 따로 설정해줘야 한다.

 

설정파일은 /etc/ssh/sshd_config

파일 맨 하단에

# Example of overriding settings on a per-user basis
이하 부분 활용하면 된다.

 sftp 의 기본 umask 는 022로 파일 생성 시 644 로 생성된다.

예를 들어 A라는 계정만 sftp의 664로 생성하고 싶으면 다음과 같이 세팅하고 저장, sshd restart 해주면 된다.
....

==============================================================
Match User A
        ForceCommand internal-sftp -u 002
==============================================================

라고 인터넷에 나와 있을거다.

결론만 말하면 Fake다... 이 좌식들이...

ForceCommand를 사용하면 원칙적으로 SFTP 밖에 안된다.
SSH 접속이 안되고 SFTP 사용만 강제된다.

이를 회피하기 위해서는 아래처럼 입력해야 한다.
중요한 건 sftp-server 파일이 서버마다 다를 수 있어서 
find /usr -name "sftp-server" 로 명령어 위치 확인해야 한다.
찾이 않아도 /etc/ssh/sshd_config 파일 하단에 명시되어 있기는 하다.
( package 는 openssh-clients )

==============================================================
Match User A
        ForceCommand /bin/bash -c 'if [ -z "$SSH_ORIGINAL_COMMAND" ]; then exec /bin/bash; else exec /usr/libexec/openssh/sftp-server -u 0002; fi'
==============================================================

설정하고 systemctl restart sshd

ssh, sftp 둘 다 정상동작하는지 반드시 확인하자.

반응형

댓글