일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 아두이노 DB
- 아두이노 ESP8266
- MariaDB
- js 내부함수
- 아두이노 fingerprint
- redirect
- CentOS8
- 구글 클라우드 플랫폼
- 아두이노 https post
- 리디렉션
- 아두이노 https
- js 내부함수 반복문
- 리다이렉트
- Apache
- 리디렉트
- Raspbian
- js for 반복문
- 라즈베리파이 3b+
- 라즈베리파이
- Centos Node js
- js 반복문
- 아두이노
- Today
- Total
dinist
/etc/passwd에 대하여 알아보기 본문
Linux, UNIX 에서는 사용자 계정을 추가할때 사용자와 관련한 정보를 /etc/passwd 파일에 저장합니다.
아마 보안 업계에 종사하시거나 관련 자격을 준비하시는 분들은 익히 보셨을 내용일 것 입니다.
이 파일은 : (콜론)을 구분자로 하여 각각의 필드를 구분합니다. 필드는 총 7가지로 구성되어있습니다.
구성
①번 항목 : 사용자 계정명을 의미합니다.
②번 항목 : 사용자 패스워드를 의미합니다. 아마 X로 표시될 것입니다. (X는 shadow 패스워드를 사용한다는 뜻입니다.)
③번 항목 : 사용자ID (UID)를 의미합니다.
④번 항목 : 그룹ID (GID)를 의미합니다.
⑤번 항목 : 사용자 관련 정보를 기술합니다. (코멘트 정도로 생각하시면 됩니다.)
⑥번 항목 : 해당 사용자 계정으로 로그인 시 처음 위치할 홈 디렉터리의 경로입니다.
⑦번 항목 : 해당 사용자로 로그인시 사용할 쉘(SHELL)을 의미합니다.
이 사진은 Ubuntu 20.04에서 view /etc/passwd 명령을 입력했을때 표시되는 내용입니다.
root의 UID와 GID가 모두 0입니다. root 이외의 계정에 UID GID 가 0으로 설정되어있다면 root의 권한을 가지게 되므로 잘 확인해야 하며, 로그인 쉘의 경우에도 기본 쉘이 아닌 악의적인 쉘로 설정되어 있는지 확인해야 합니다.
그리고 마지막 필드부분을 보면 /usr/sbin/nologin 또는 /bin/false 라고 작성되어있는 계정들이 있습니다.
공통점은 모두 시스템에 로그인 할 수 없습니다.
하지만 각각의 차이점이 있습니다.
/usr/sbin/nologin (Redhat 계열은 /sbin/nologin일 겁니다.) : 시스템에 로그인 할 수 없습니다. 하지만 로그인 시도시 로그인이 불가능하다는 메시지는 반환합니다. ssh에서는 바로 종료가 되버립니다.
인터넷에서 검색을 해보면 /sbin/nologin의 경우 ftp사용이 가능하다고 나오지만 제가 테스트해본 결과로는 530 에러가 나오면서 ftp 접속이 불가능 했습니다. (레드헷이 아닌 데비안 계열의 운영체제에서 테스트 한것이라 /sbin/nologin이 아닌 /usr/sbin/nologin 이라서 접속이 불가능 한것일 수도 있습니다.)
/bin/false : 이 경우는 로그인도 불가능하고 아무 기능도 이용할 수 없습니다.
즉 /usr/sbin/nologin /bin/false가 기본 쉘인 계정으로는 시스템에 로그인할 수 없습니다.
'리눅스' 카테고리의 다른 글
Apache 웹서버 (수동) 설치하기 (웹 헤더보안 위주) (2) | 2020.11.11 |
---|---|
DNS 서버 구축 [CentOS8, Debian10] (0) | 2020.11.01 |
리눅스 페도라 DHCP서버 설치하기 (0) | 2020.10.23 |