cat /etc/shells —- shells 보기
/bin/sh – 본쉘
/bin/bash – Bourne Again shell
/bin/tcsh – TC쉘
/bin/csh – C쉘
/bin/ksh – 콘쉘
1. nologin의 절대경로를 which 명령어로 찾는다.
# which nologin
/usr/sbin/nologin
2. /etc/passwd 파일에서 FTP만 접속을 허용할 계정의 쉘을 아래와 같이 /usr/sbin/nologin으로 변경을 한다.
foo:x:1000:1000::/home/foo:/usr/sbin/nologin
3. vi 명령어로 /etc/shells 파일을 열어 제일 아래 줄에 /usr/sbin/nologin을 추가한다.
#vi /etc/shells
# /etc/shells: valid login shells
/bin/sh
/bin/dash
/bin/bash
/bin/rbash
/usr/bin/rc
/usr/sbin/nologin
4. 설정이 완료되었으면 SSH와 FTP에 접속하여 FTP만 접속이 되는지 확인해 본다.
CentOS 등에서는 사용자에게 FTP등의 접속권한만 주고
ssh접속등 쉘의 권한은 주고 싶지 않을때 사용자의 쉘을 /bin/false 으로 고쳐주기만 하면 되었다.
sudo chsh -s /bin/false hsc02
sudo chsh -s /usr/sbin/nologin hsc02
useradd -d /path/to/your/dir -s /usr/sbin/nologin ftpuser
passwd ftpuser
chown -R ftpuser /path/to/your/dir
chmod 775 /path/to/your/dir
쉘스크립트:
#!/bin/bash 스크립트에서 명령어 해석기가 bash 쉘 임을 미리 알려주는 것