IT 일기장

[Server] sftpuser.sh 계정 삭제 본문

프로그래밍 언어/Server

[Server] sftpuser.sh 계정 삭제

뽕슈 2022. 10. 4. 12:25
반응형

직원에게 SFTP 접속시 특정 폴더로 접근할 수 있도록 권한을 부여해줘야 했는데,

권한을 부여해주려면 관리자 계정의 sftpuser.sh 파일을 알고있어야 했다. (본인의 경우에는 /data 폴더에 위치)

편집해서 열어봤는데 소스 구조는 다음과 같았다.

#!/bin/bash

COMMAND=${1}
GROUP=sftp
USERNAME=${2}
USERPWD=${3}
USERHOME=/home/${USERNAME}
FTPHOME=data

if [ "$USERPWD" == "" ]; then
	USERPWD=$USERNAME
fi

if [ "$COMMAND" == "add" ]; then

	/usr/sbin/useradd $USERNAME -g $GROUP -d $USERHOME -u 9999 -s /bin/false
	sed -i "s/${USERNAME}:x:9999:/${USERNAME}:x:1002:/g" /etc/passwd
	echo "${USERPWD}" | passwd --stdin $USERNAME
	echo ">>> Created User ${USERNAME}"
	chown -R ${USERNAME}:${GROUP} $USERHOME
	chown root:root $USERHOME
	chmod 755 $USERHOME
	echo ">>> chmod 755 $USERHOME"

	mkdir $USERHOME/$FTPHOME
	mkdir $USERHOME/$FTPHOME/deploy

	chown -R ${USERNAME}:${GROUP} $USERHOME/$FTPHOME
	chmod 755 -R $USERHOME/$FTPHOME
	echo ">>> Created FTPROOT $USERHOME/$FTPHOME"

	mount --bind /data/deploy $USERHOME/$FTPHOME/deploy
 
elif [ "$COMMAND" == "addmkup" ]; then

	/usr/sbin/useradd $USERNAME -g $GROUP -d $USERHOME -u 9999 -s /bin/false
	sed -i "s/${USERNAME}:x:9999:/${USERNAME}:x:1002:/g" /etc/passwd
	echo "${USERPWD}" | passwd --stdin $USERNAME
	echo ">>> Created User ${USERNAME}"
	chown -R ${USERNAME}:${GROUP} $USERHOME
	chown root:root $USERHOME
	chmod 755 $USERHOME
	echo ">>> chmod 755 $USERHOME"

	mkdir $USERHOME/$FTPHOME
	mkdir $USERHOME/$FTPHOME/deploy

	chown -R ${USERNAME}:${GROUP} $USERHOME/$FTPHOME
	chmod 755 -R $USERHOME/$FTPHOME
	echo ">>> Created FTPROOT $USERHOME/$FTPHOME"

	mount --bind /data/deploy/WEB_ROOT/was6 $USERHOME/$FTPHOME/deploy

elif [ "$COMMAND" == "del" ]; then
	umount $USERHOME/$FTPHOME/deploy
	userdel -rf $USERNAME
else
	echo $"Usage: {add|del|status|log} {name} {passwd}"
	exit 1
fi
exit 0

 

이 소스를 참고해서 처음에는 계정을 추가를 해줬는데.. 사용자가 이미 있다며 허가 거부를 뱉어냈다. 

./sftpuser.sh add [id] [password]

 

그럼에도 안되는 이유는 잘 모르겠지만 계정을 삭제하고 다시 추가하면 되겠다고 판단해서 진행했다.

root 계정이 아니여서 sudo 붙이는 시행착오를 한번 겪기도 했고..

sudo ./sftpuser.sh del [id] [password]

반응형
Comments