ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Linux /etc/passwd 살펴보기
    Engineer information security 2022. 7. 11. 19:12
    반응형

    Linux는 사용자의 정보를 /etc/passwd 파일에 저장하고 있다.

    그리고 이 파일 안에는 사용자의 정보가 자세하게 기록되어 있다.

    구분되어 있는 필드의 값은 무엇을 의미하는지 알아보자. 

     

     

     

     

     

    Ubuntu 20.04 LTS 버전에서 확인한 값이다.

    cat /etc/passwd를 입력하면 passwd에 있는 계정 정보들이 출력된다. 

    root 계정은 시스템에 대한 모든 권한을 가진 super admin 같은 존재 이므로 보안상 원격 접속을 금지시킨다.

    root 계정을 접근할 경우 다른 계정을 이용하여 su(switch user) 명령어를 이용하여 root로 접근할 수 있도록 한다.

    cat /etc/passwd 명령을 이용하여 계정 정보를 확인할 수 있다.

     

     

     

     

     

     

     

    계정 정보를 출력해보면 총 7개의 필드가 존재한다.

    계정 정보 출력

     

     

     

     

     

     

    그리고 각 필드별로 의미하는 값은 아래와 같다.

    /etc/passwd 각 필드 값의 의미

     

     

     

    account : 로그인에 사용하는 계정명이다.

    password : 로그인에 사용하는 암호이다.

    uid : 사용자의 id이다. uid는 중복 사용이 가능. 같은 uid를 가진 경우 같은 권한을 가진다.

    gid : 그룹의 id이다. gid 역시 중복 사용이 가능. 같은 gid를 가진 경우 같은 권한을 가진다.

    commant : 사용자의 기타 정보. 크게 중요한 부분은 아니다.

    home directory : 사용자가 사용할 홈 디렉터리 위치이다.

    login shell : 사용자가 사용할 쉘이다. 보통은 bash shell이다. 

     

     

     

     

     

    보안 관점에서 확인해야 할 사항들은 아래와 같다.

     

    1. root 계정으로 원격 접속이 가능한가?

    이것을 확인해야 하는 이유는 root로 원격 접속이 가능한 경우 바로 root를 접속하여 시스템을 조작할 수 있기 때문이다.

     

    2. root와 동일한 uid 또는 gid를 가지고 있는 계정이 있는가? 

    이것을 확인해야 하는 이유는 root와 동일한 uid, gid를 가지고 있다면 root와 동일한 권한을 사용할 수 있기 때문이다.

     

    3. 로그인이 필요하지 않은 계정 중에 login shell이 존재하는가? 

    이것을 확인해야 하는 이유는 로그인이 필요하지 않은 계정을 이용하여 시스템에 접근할 수 있기 때문이다. 

    예를 들면, testuser는 로그인을 할 이유가 없는 계정이다. 

    그렇다면 vi /etc/passwd를 열어서 해당 계정의 login shell 부분을 /sbin/no login으로 수정하고 저장하면 로그인이 불가능해진다.

    변경전에는 일반 계정과 동일하게 /bin/bash로 bash 쉘을 사용하게 설정되어 있다.

     

     

     

    접근이 불필요한 유저의 login shell을 /sbin/nologin으로 설정하고 저장한다.

     

     

     

    로그인을 시도하면 testuser가 보이지 않는다.

     

    반응형

    댓글

Designed by Tistory.