shell 의 종류 및 추가

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 쉘 임을 미리 알려주는 것