터미널에서 ls -al 명령어를 사용하면 현재 디렉토리에 포함된 모든 파일/디렉토리의 목록과 속성을 볼 수 있다. 좌측에서부터 차례대로 파일 허가권, 링크 수, 소유한 사용자, 소유한 그룹을 의미한다. 리눅스는 다중 사용자 시스템(Multi user system)을 지원하기 때문에, 보안을 위해 파일/디렉토리 별로 사용자 별 접근 권한을 다르게 설정할 수 있다.

 

 

사용자

리눅스를 설치하면 기본적으로 root라는 슈퍼 계정이 생긴다. root로는 시스템의 모든 작업을 실행할 수 있다. 필요에 따라 새로운 사용자를 추가하고 권한을 할당할 수 있다.

  • 모든 사용자는 하나 이상의 그룹에 소속되어야 한다. 사용자마다 권한을 다르게 부여할 수 있다.

  • 사용자 정보가 저장된 경로 : /etc/passwd

  • 그룹 정보가 저장된 경로 : /etc/group

사용자 생성

  • 새로운 사용자 추가 : adduser {사용자명}

  • 사용자 생성 + user ID 지정 : adduser --uid {id 값} {사용자명}

  • 사용자 생성 + 특정 그룹에 포함 : adduser --gid {group id 값} {사용자명}

  • 사용자 생성 + home 디렉토리 지정 : adduser --home {디렉토리명} {사용자명}

사용자 관리

  • 비밀번호 변경 : passwd {사용자명}

  • 사용자 삭제 : userdel {사용자명}

  • 사용자 삭제 + 홈 디렉토리 삭제 : userdel -r {사용자명}

  • 소속된 그룹 확인 : groups {사용자명}

그룹 생성

  • groupadd {그룹 이름}

그룹 관리

  • 그룹 삭제 : groupdel {그룹 이름}

  • 그룹 비밀번호 설정 : gpasswd {그룹 이름}

  • 그룹 사용자 설정 : gpasswd -{옵션} {사용자명} {그룹 이름}

    • A : 관리자로 지정

    • a : 그룹에 사용자 추가

    • d : 그룹에서 사용자를 제거

소유권(ownership)과 허가권(permission)

  • 소유권 : 파일/디렉토리의 생성 및 관리 권한

  • 허가권 : 파일/디렉토리의 읽기, 쓰기, 실행 권한

소유권 변경

chown 명령어를 사용한다.

  • chown {새사용자명}.{새그룹명} {파일/디렉토리 명}

    • ex. chown user-a data.txt : data.txt 파일 소유자를 사용자 user-a로 변경

    • ex. chown user-a.developer data.txt : data.txt 파일 소유자를 사용자 user -a와 그룹 developer로 변경

허가권 변경

chmod {모드} {파일/디렉토리 명} 명령어를 사용한다. (소유권을 가진 user가 실행 가능)
모드로는 user/group/other 세 가지에 대해 각각 권한을 설정할 수 있다. 설정 가능한 권한은 읽기(r), 쓰기(w), 실행(x) 세가지다. 모드는 크게 숫자 모드와 기호 모드로 나뉜다.

  • 숫자 모드 : 숫자를 조합해서 권한을 나타낼 수 있다. 기본적으로 'rw-', 'rwx', 'r--' 이런 식으로 세 자리 단위로 끊어서 보면 된다.

    • ex. rw-rwx--x로 권한을 부여할 거라면 사용자에게 읽기와 쓰기, 그룹에게 읽기, 쓰기, 실행, 그 외에게 실행 권한을 주게 된다. 숫자로 합산하면 (400 + 200) + (40 + 20 + 10) + (1)로 671이 된다. 계산 방법은 아래의 표를 참고하면 된다.

       

      필드

      기호

      숫자

      사용자

      r

      400

       

      w

      200

       

      x

      100

       

      -(없음)

      0

      그룹

      r

      40

       

      w

      20

       

      x

      10

       

      -(없음)

      0

      기타

      r

      4

       

      w

      2

       

      x

      1

       

      -(없음)

      0

       

  • 기호 모드 : 대상(u, g, o, a)에게 어떤 권한(r, w, x)을 줄건지 기호로 설정할 수 있다.

 


apt-get

윈도우에서는 새로운 프로그램을 설치하려면 exe 파일을 다운받고 GUI 환경에서 Next 버튼을 계속 클릭해야 하는데, 리눅스에서는 명령어 한줄로 프로그램을 뚝딱 설치할 수 있다. 이럴때 사용하는게 바로 apt-get으로, 우분투에서 새로운 패키지를 설치할 때 사용하는 명령어다. apt-get은 특정한 패키지를 설치할 때, 의존성이 있는 다른 패키지가 있다면 자동으로 함께 설치해준다는 특징이 있다.

 

기본 명령어

  • 패키지 설치 : apt-get -y install {패키지 이름}

  • 패키지 목록 업데이트 : apt-get update

  • 패키지 삭제 : apt-get remove {패키지 이름}

  • 설치할 때 받은 파일 제거 : apt-get clean 

사용 가능한 패키지 이름은 링크에서 검색이 가능하다.


그동안 항상 root 계정을 벗어나본 적이 없어서 다중 사용자라는게 가능한지도 몰랐다.

앞으로 쓸 일이 생길지는 잘 모르겠지만.. 사용법을 대강 정리해봤다.

apt-get은 node.js의 npm이나 mac os의 homebrew와 비슷한 역할을 해주는 것 같다.


 

참고 자료

이것이 우분투 리눅스다 (한빛미디어)