ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 리눅스5-쉘과 프롬프트
    CS지식/운영체제 2022. 1. 12. 13:21

    쉘(Shell) 이란

    OS와 사용자가 상호작용하기 위해서 사용자와 OS사이의 하나의 층을 만들게 되는데, 이 것을 쉘이라고 한다.

    윈도우즈도 쉘이 있는데 탐색기가 그런 역할을한다.  윈도우즈 같은 경우에는 쉘이 두개 이다. 윈도우 탐색기도 하나의 쉘이고, 또 하나는 cmd(command)로 이것도 또하나의 쉘이다. OS는 쉘을 통해서 사용자에게 어떤 어플리케이션을 실행 할 것인지를 입력 받게된다. 리눅스의 경우 그때 shell은 명령프롬프트 상에서 사용될 수 있는 쉘의 종류가 많다.

     

     

    Shell의 종류

    • bash shell : Bourn Again Shell - Stephen Bourne

         최초의 유닉스 쉘인 Bourne Shell과 호환되도록 만들어진 쉘

    • csh : C shell

        BSD 계열 유닉스 사용자들이 선호하는 쉘

    • ksh : Korn shell

         UNIX System V 계열 유닉스 사용자들이 선호하는 쉘

    • 그 외의 리눅스 쉘

         tcsh : C shell과 호환되는 쉘, ash : Bourne Shell 과 호환되는 또 다른 본쉘

     

    $ => 일반 사용자 권한에서 사용하고 있다는 뜻

     

    근데, 어떤 프로그램 설치 해야 한다거나, 시스템 디렉토리 접근해야 한다거나 할때 permission denied 가 나온다.

    때로 관리자 권한이 계속해서 요구 될 경우에는 아예 관리자로 계정 로그인을 해서 사용할 수 있다

     

    리눅스와 같은 경우도 마찬가지로 관리자 권한이 필요할 때 root관리자를 최고의 권한이 있는 관리자라고 한다.

     

    관리자 권한이 필요할 경우에는 sudo(Super User Do)라는 것을 이용해서 관리자 권한으로 실행할 수 있다.

    그런데 $ 상태에서 매번 관리자 계정이 필요할 때마다 $ sudo reboot와 같은 식으로 명령을 앞에 넣어서 실행한다는것은 불편한 일 일수 있다.

     

    그럴때는 아예 root계정으로 전환해서 실행 할 수 가 있다. su(Switch User)에 줄임말이다.

    su를 한다음에 user명을 적어 주면 되는데, $sudo su - 한다음 아무 것도 적지 않으면 기본이 root로 바뀌게 된다.

    '$sudo su' 이런 식으로 '-' 도 적어 주지 않으면 현재 사용자의 계정에서 root 사용자의 계정으로 완전히 바뀌는 것이 아니라 권한만 바뀌는 것이다. 즉 현재 디렉토리를 유지한 상태에서 권한만 바뀌게 된다.

     

    리눅스는 root 라는 계정이 분명이 있음에도 불구하고, root로 로그인 할 수 없도록 잠가놓았다. root라는 계정이 admin이라는 것을 다 알기 때문에, root라는 계정이름과 비밀번호만 알면 admin 권한에 접근 할 수 있다. 그래서 자꾸 root 계정으로 비밀번호를 알아 내려는 시도가 이루어진다. 그래서 아예 root라는 이름 으로 로그인 할 수 없도록 해두었다.

    일단 일반user 권한으로 들어와서 그 계정이 root 계정으로 전환을 할 수 있는 계정일 경우 root 계정으로 전환해서 쓰는 것이다.

     

    root 계정으로 바꾸게 되니까 dollar sign이 pound sign으로 바뀌었다. #(pound sign)은 현재 사용하고 있는 계정이 root계정이라는 것을 말해준다. 안전하게 시스템을 운영하기 위해서는 관리자 권한은 어떤 특별한 작업을 할 때만 사용하는 것이 좋다.

     

    따라서 exit 명령어를 입력해서 관리자 권한에서 빠져나온다.

     

    [출처 - https://youtu.be/4HuraA6bItU]

    댓글

Designed by Tistory.