목차

     

     

     

     

    1. 사용자(user), 슈퍼 사용자(super user)란?

    사용자(user) 란?

     윈도우처럼 리눅스에서도 여러 사용자를 만들어 사용할 수 있다.

    다음은 리눅스 환경에서 기본적으로 생성되어 있는 사용자들이다. 첫 번째  :  을 기준으로 왼쪽에 있는 값들이 사용자들(users)이다.
    기본적으로  root , daemon, bin, sys 등 다양한 사용자가 이미 생성되어 있다. 여러 사용자들 중에서 가장 위에 있는  root  와 가장 아래에 있는  ubuntu  만 거의 사용하니 이 두 가지 사용자만 기억해두자.

    리눅스 사용자

     

    리눅스에서 사용자 유형

    1. 슈퍼 사용자 (관리자) : 시스템의 모든 권한을 가진 계정
      • 어떠한 제한도 없이 모든 명령어를 실행시킬 수 있으며 모든 파일을 조작할 수 있다.
      • 실수로 중요한 시스템 파일을 지우는 것도 가능하므로, 안전을 위해 평소에는 일반 사용자 계정을 사용하는 것을 추천한다.
      • 일반적으로  root  계정이 슈퍼 사용자로 설정되어 있다.
    2. 일반 사용자
      • 권한이 허용된 명령어만 실행시킬 수 있고, 권한이 허용된 파일만 조작할 수 있다.
      • 실수로 중요한 시스템 파일을 지우는 것이 불가능하다.
      • ex)  ubuntu 
    3. 시스템 사용자
      • 사람이 직접 로그인해서 쓰는 계정이 아닌, 운영체제나 서비스(데몬, 서비스 프로그램)가 동작하기 위해 만들어진 계정이다.
      • 보안 강화 : 보안 취약점이 뚫렸을 때, root 권한이 아닌 시스템 사용자로 실행된다면 피해를 제한할 수 있다.
      • 권한 분리 : 서비스별로 계정을 나누어 간섭을 피하고 권한을 분리한다.
      • 관리 편의성 : 로그 파일이나 실행 파일, 설정 파일의 소유권을 해당 시스템 사용자로 두면, 관리가 깔끔해진다.

    이 3가지 중 자주 사용하게 되는 슈퍼 사용자와 일반 사용자만 일단 기억하고 가자.

     

     

    현재 접속한 계정은

    1. 터미널 창에서  왼쪽에 있는 이름이 현재 접속해있는 사용자 계정이다.

    현재 접속 계정

     

     

    2. 명령어로  whoami 라고 입력하면 현재 접속해있는 사용자 계정을 알려준다.

    현재 접속 계정 명령어 whoami

     

     

    다른 사용자로 접속하려면 어떻게 할까?

    슈퍼 사용자 (root 계정) 로 접속하는 방법 : $ sudo su 

    $sudo su

    •  root  라는 사용자로 변경되었다.
    • 슈퍼 사용자로 전환되면 입력창에서  가  로 바뀐다.
      •  #  으로 바뀌는 이유는 슈퍼 사용자임을 직관적으로 알려주기 위함이다.

    일반 사용자 (ubuntu 계정) 으로 접속하는 방법 : $ su ubuntu 

     

    su ubuntu

     

     


     

    2. 그룹(group) 이란?

    그룹(group)이란?

    리눅스에서 그룹(group) 이란 사용자 계정을 묶어서 관리하기 위한 단위이다. 
    여러 사용자에게 공통된 권한을 한번에 부여하고 관리할 때 유용하게 사용된다.

     

     

    그룹(group) 의 특징

    • 한 사용자는(user) 는 반드시 하나의 그룹(group) 에 속해야 한다.
    • 한 사용자(user)는 여러 그룹(group) 에 속할 수 있다.

     

     

    특정 계정이 어떤 그룹(group)에 속해 있는 지 확인하는 방법

    group 을 확인하는 명령어  :  $ groups [사용자명] 

    $ groups ubuntu, $ groups root

    • ubuntu 사용자는 ubuntu, adm, cdrom, sudo, dip, lxd 라는 그룹에 속해있다.
    • root 사용자는 root 라는 그룹에만 속해있다.

     


     

    3. 권한(Permission) 이란?

    권한(Permission)이란

     리눅스에서는 여러 사용자 계정을 만들어 사용할 수 있다고 했다. 그러다보니 특정 사용자가 다른 사용자의 파일을 마음대로 접근하는 걸 막기 위해 권한(Permission) 이라는 기능을 추가했다.
    권한(Permission) 을 활용하면 특정 사용자에 대해서만 특정 파일 또는 디렉터리에 접근할 수 있게 만들 수 있다.

     

     

    권한(Permission) 확인 방법

     리눅스의 모든 파일에는 '누구에게 어떤 권한까지 허용할 지''소유자''소유 그룹'이 설정되어 있다. 직접 확인해 보자.

    • 먼저 노란 박스에 표시된 계정은 소유자를 의미한다. 파일을 생성한 사용자가 자동으로 소유자가 된다. (변경 가능하다.)
    • 그 다음 하늘색 박스에 표시된 이름은 소유 그룹을 의미한다. 파일을 생성한 사용자의 기본 그룹(primary group)으로 자동 설정 된다. (변경 가능하다.)
    • 그 다음 보라색 박스를 보자. 보라색 박스의 문자는 아래와 같이 총 10개의 문자로 이루어져있다. 
      여기서 각 문자의 의미는 아래와 같다.      

     

    1. 1번째 문자 : 파일 유형(File Type)

    •  -  : 일반 파일
    •  d  : 디렉토리
    •  l  : 심볼릭 링크

    2. 2~4번째 문자 : 소유자에게 허용된 권한

        [일반 파일인 경우]

    •  r  (read) : 파일을 읽을 수 있다. (파일 내부 내용 확인 가능)
    •  w  (write) : 파일을 수정할 수 있다.
    •  x  (execute) : 파일을 실행할 수 있다. (실행 파일 또는 쉘 스크립트인 경우)

        [디렉토리인 경우]

    •  r  : 디렉토리 내부 파일 조회 ( ls ) 가 가능하다.
    •  w  : 디렉토리 내부에 파일을 생성/삭제할 수 있다.
    •  x  : 디렉토리 내부로 접근 ( cd ) 할 수 있다.

    3. 5~7번째 문자 : 소유 그룹에게 허용된 권한을 의미

    4. 8~10 번째 문자 : 그 외의 사용자에게 허용된 권한을 의미

     

     


     

    4. 권한 변경하는 방법 (chmod)

     chmod  라는 명령어를 이용하면 파일에 권한을 변경할 수 있다. 숫자 3개를 활용해서 변경할 권한을 설정한다.
    각 권한은 아래와 같이 해당하는 숫자에 있다. 이 숫자를 더해서 소유자, 그룹, 다른 사용자에 대한 권한을 설정할 수 있다.

     

    예시1

     어떤 파일에 소유자, 소유 그룹, 그 외의 사용자 에게 모든 권한을 부여하고 싶다고 가정하다. 그러면 아래와 같이 권한을 부여해야 한다. 어떤 계정에 모든 권한을 주고싶다면 4(r) + 2(w) +1(x) 를 더하여 7이라는 숫자를 주면 된다.
    이 때, 소유자, 소유 그룹, 그 외의 사용자 에게 모든 권한을 주려면  chmod 777  하여  rwxrwxrwx  라는 권한을 부여할 수 있다.

     

    예시2

     이번에는 파일에  rw-r--r--  라는 권한을 부여하고 싶다고 가정하자.
    rw- 권한은 4(r) + 2(w) +0(-) = 6 으로 주고 r-- 권한은 4(r) + 0(-) + 0(-) = 4 로 주면 된다.

    그래서  chmod 644  하여  rw-r--r--  권한을 줄 수 있다.

     

     


     

    5. 관리자 권한 (sudo)

    관리자 권한

     root  사용자는 슈퍼 사용자이다. 슈퍼 사용자는 시스템의 모든 권한을 가진 계정이다. 슈퍼 사용자는 파일에 설정된 권한과 별개로 모든 권한을 가지고 있기 때문에 어떠한 조작이든 전부 다 가능하다.

     

     

    root 사용자가 아니더라도 권한이 없는 파일에 접근하는 방법

     일반 사용자가 슈퍼 사용자처럼 명령어를 실행하거나 파일에 접근할 수 있는 방법이 있다. 그것이 바로  sudo  라는 명령어이다.

    아래에서 sudoers 라는 파일은 root계정외에는 어떠한 권한도 없다는 것을 알 수 있다.

    sudoers 파일에 대한 권한
    Permission denied

    실제로 ubuntu 계정으로 조회하려고 하면 Permission denied 가 뜬다.

     sudo  를 이용하여 관리자 권한으로 파일 내용을 출력해보자.

    $ sudo cat sudoers

     sudo  명령어를 활용하면 권한이 없어도 조회가 가능하다.

     

     

     root  사용자로 로그인  vs  sudo  명령어 활용

     권한이 없을 때, 이를 해결하는 방법 2가지를 학습했다.

    1. 슈퍼 사용자( root ) 로 접속해서 명령어 실행
      • 명령어를 입력할 때마다 sudo 를 붙이지 않아도 되서 편리하다.
      • 하지만 실수로 시스템에 치명적인 명령어를 입력해 시스템이 손상될 가능성이 있다.
    2. 명령어 앞에 sudo 를 붙여서 명령어 실행
      • 명령어를 입력할 때마다 sudo 를 붙여야 한다.
      • root 계정을 이용하는 것보다 안전한방식이고 추천되는 방식이다.

    + Recent posts