본문 바로가기
컴퓨터공학기초 개념/시스템 프로그래밍

5. shell - 다중 사용자

by devraphy 2021. 9. 6.

1. shell 이란?

- shell은 사용자와 컴퓨터 하드웨어 또는 운영체제 사이의 interface다. 

- 사용자가 컴퓨터와 소통할 수 있도록 사용자가 입력한 명령어를 해석하여 커널에게 전달하는 역할을 한다.


2. shell의 종류 

a) Bash(Born again shell)

- GNU 프로젝트의 일환으로 개발된 shell

- 리눅스의 기본(default) shell 

 

b) Korn shell

- UNIX에서 가장 많이 쓰이는 shell

 

- 이 외에 C - shell, Bourne - shell 등이 존재한다. 

- shell 마다 명령어의 형식이 조금씩 다르다.

- 하지만 UNIX를 기반에 두고 있기에 어느정도 일맥상통한 부분이 존재한다. 

 


3. Bash의 기본 명령어 - 다중 사용자

- 터미널을 이용해 AWS에 생성한 리눅스 서버에 접속하여 실습해보는 것을 추천합니다.

 

1) whoami

 

2) passwd

- AWS에서 리눅스 서버를 생성할 때, 패스워드를 입력한 적이 없다. 

- AWS 측에서 ubuntu라는 아이디만 생성한 것이다. 

- 그러므로 AWS를 통해 리눅스 서버를 사용한다면, passwd 명령어를 입력하더라도 위의 사진과 같은 결과를 얻을 수 있다. 

 

3) useradd 와 adduser

- 무슨 소리인지 잘 모르겠다. 쉬운 이해를 위해 아래 사진을 참고하자. 

- pwd 명령어를 입력하면 현재 위치한 경로를 알 수 있다. 

- 위의 사진에서 보이는 바와 같이 /home/ubuntu에 위치해 있다. 

- 재미있는 부분은 username과 디렉토리의 이름이 동일하다는 것이다. 

- useradd를 사용하면, 이처럼 username으로 이루어진 디렉토리를 생성한다. 

- adduser를 사용하면, 사용자는 생성되지만 username으로 된 디렉토리는 생성되지 않는다. 

 

- adduser 명령어를 사용하면 위의 사진과 같은 결과가 출력될 것이다. 

- 이는 root(최상위 관리자)가 아니라면 사용할 수 없는 명령어라는 의미다. 

- 그렇다면 어떻게 root 권한을 얻을 수 있을까?

- sudo라는 일종의 지름길이 존재한다.

 

4) sudo

- sudo 라는 명령어를 다른 명령어와 함께 사용하면, root 권한을 얻을 수 있다. 

- 하지만 sudo가 아무나 사용할 수 있는 명령어라면, root가 존재할 이유가 없지 않은가?

- 그러므로 sudo 명령어를 사용할 수 있는 사용자를 관리하는 명부가 따로 존재한다. 

 

- AWS에서 생성한 ubuntu라는 사용자는 sudo 명령어를 사용할 수 있도록 설정이 되어있다.

- 그러므로 sudo 명령어를 사용하여 새로운 user를 생성해보자. 

 

 

5) su

댓글