일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 어코르계열
- 모더나
- 좋아요~
- 매일매일 일만원 투자
- 오사카
- 코타키나발루
- 샹그릴라 탄중아루
- 유니티소프트웨어
- 샹그릴라
- 포슬린공예
- 노보텔앰버서더
- 탄중아루
- 미국주식투자해보기
- 인텔
- 이비스버짓엠버서더
- 말레이시아
- 구글
- 매일일만원
- 엔비디아
- sagemath
- 드래곤씨티
- 테슬라
- 오사카 관광
- 미니스탁
- 엑손모빌
- 리비안
- 한국투자
- 오사카 스위소텔
- 홍대머큐어
- computer algebra system MAGMA
- Today
- Total
The Hitchhiker's Guide to the Earth
[일반] 리눅스 루트(root)권한 관련 본문
출처 : ko.wikihow.com/리눅스에서-루트(root)권한-얻는-방법
- 터미널에서 루트 권한 얻기
- 루트 계정 잠금을 해제하기(Ubuntu)
- 루트로 로그인하기
- 루트 또는 관리자 비밀번호 재설정하기
리눅스 컴퓨터에서 "루트" 계정은 모든 권한을 가진 계정이다. 리눅스에서 어떤 명령을 수행할 때 루트 권한이 필요한 경우가 종종 있으며, 특히 시스템 파일에 영향을 주는 명령인 경우 그렇다. 루트는 정말 강력하기 때문에 루트 사용자로 로그인하지 말고, 필요한 경우에만 루트를 요청하는 것을 추천한다. 그러면 중요한 시스템 파일이 우연히 손상되는 것을 예방할 수 있다.
방법 1 - 터미널에서 루트 권한 얻기
- 터미널을 연다. 터미널을 아직 안 열었다면, 연다. 대부분 배포판에서 Ctrl+Alt+T를 누르면 열린다.
- su - 를 입력하고 ↵ Enter를 누른다. 그러면 "슈퍼 유저"로 로그인을 할 수 있다. 실제로 이 명령어로 원하는 사용자에 로그인할 수 있지만 칸을 남겨두면 루트 권한으로 로그인 시도를 할 수 있다.
- 실행되면 루트 비밀번호를 입력한다. su - 를 입력하고 ↵ Enter를 누르면 루트 비밀번호 입력해야 한다.
- "authentication error" 메시지가 뜨는 경우, 루트 계정이 잠겼을 확률이 높다. 다음 단계의 설명을 확인하여 잠금을 해제 한다.
- 명령 프롬프트를 확인한다. 루트로 로그인을 한 경우, 명령 프롬프트가 $이 아닌 #으로 끝나야 한다. [2]
- 루트 접근에 필요한 명령어를 입력한다. 루트로 로그인을 하기 위해su -를 이용했다면, 루트 권한이 필요한 어떠한 명령어든 실행할 수 있다. su 명령어는 세션 끝까지 유효하기 때문에, 명령어를 실행하려고 할 때마다 루트 비밀번호를 재입력할 필요는 없다.
- su -대신에 sudo를 사용해본다. sudo ("super user do")는 다른 명령어를 루트로 임시적으로 실행하게 해준다. 루트 환경이 유지되지 않고, 사용자가 루트 비밀번호를 몰라도 되기 때문에 이 방법은 대부분 사용자가 루트 명령어를 실행하기에 가장 좋은 방법이다. 대신, 사용자가 임시 루트 권한에 맞는 자신의 비밀번호를 입력해야 한다.[3]
- sudo command를 입력하고 ↵ Enter를 누른다. (e.g. sudo ifconfig). 비밀번호를 입력하는 게 뜨면, 루트 비밀번호가 아닌, 자신의 "사용자" 비밀번호를 입력한다.
- sudo는 우분투와 같은 배포판에서 많이 쓰이는 방법으로, 루트 계정이 잠긴 경우에도 쓸 수 있는 방법이다.
- 이 명령어는 관리자 권한이 있는 사용자만 쓸 수 있다. /etc/sudoers에서 사용자를 추가하거나 뺄 수 있다.
방법 2 - 루트 계정 잠금을 해제하기(Ubuntu)
- 루트 계정의 잠금을 해제한다(Ubuntu). 우분투(와 다른 몇 가지 배포판)은 루트 계정을 잠궈서 일반 사용자가 접근할 수 없게 한다. sudo 명령어를 사용할 때 루트 권한이 거의 필요하지 않기 때문에(이전 단계 참고) 이렇게 되었다. 루트 계정의 잠금을 해제하면 루트로 로그인할 수 있다.
- 터미널을 연다. 데스크탑 환경의 경우, Ctrl+Alt+T를 눌러 터미널을 열면 된다.
- sudo passwd root 를 입력하고 ↵ Enter를 누른다. 비밀번호를 입력해야 하면, 자신의 "사용자" 비밀번호를 입력하면 된다.
- 새로운 비밀번호를 설정한다. 새로운 비밀번호를 입력해야 하고 두 번 엔터를 친다. 비밀번호가 설정되면 루트 계정이 활성화된다.[4]
- 루트 계정을 다시 잠근다. 루트 계정을 다시 잠그고 싶다면, 다음 명령어를 입력하여 비밀번호를 제거하고 루트를 잠근다:
- sudo passwd -dl root
방법 3 루트로 로그인하기
- 잠시 루트에 접근할 수 있는 다른 방법을 사용해본다. 일반 사용자가 루트로 로그인을 하면 시스템을 수행할 수 없게 만드는 명령어를 수행하기 쉽고, 보안 위험도 있기 때문에 추천하지 않는다. 특히 기기에 SSH 서버를 실행 중인 경우에 말이다. 디스크 오류나 잠긴 계정을 복원하는 등의 응급 상황의 경우에만 루트로 로그인하도록 한다.
- 루트로 로그인하는 대신에 sudo 또는 su를 사용하면 의도하지 않은 손상을 예방할 수 있다. 이런 명령어를 사용하면 서버 손상이 일어나기 전에 사용자가 명령어에 대해 다시 생각해볼 수 있다.
- 우분투와 같은 어떤 배포판에서는 손수 잠금을 해제하기 전까지 루트 계정이 잠겨있다. 이렇게 하면 사용자가 자신도 모르게 루트 계정을 사용해서 일어난 손상을 예방할 수 있으면, 잠재적 해커로부터 시스템을 안전하게 할 수 있다. 루트 계정이 보통 첫 번째 타깃이 되기 대문이다. 루트 계정이 잠겨있으면, 해커가 접근을 할 수 없다. 이전 단계를 읽고 우분투에서 루트의 잠금을 해제하는 방법에 대해 알아보자.
- 사용자가 리눅스에 로그인할 때 .root 를 입력한다. 루트 계정이 잠겨있고 비밀번호를 아는 경우, 사용자 계정으로 로그인하면 루트로 로그인할 수 있다. 로그인을 할 떄 root를 입력한다.
명령어 수행을 위해 루트 접근이 필요하다면 이전 단계의 방법을 사용한다. - 사용자 비밀번호를 루트 비밀번호로 입력한다. 사용자 이름으로 root를 입력하고, 비밀번호를 루트 비밀번호를 입력한다.
대부분의 경우, 루트 비밀번호는 "password"다.
루트 비밀번호를 모르거나, 까먹은 경우, 다음 단계로 넘어가 재설정한다.
우분투에서는, 루트 계정이 잠겨있고 손수 잠금을 풀 때까지 사용할 수 없다. - 루트로 로그인 시에는 복잡한 프로그램을 실행하지 않는다. 루트 권한일 때, 실행하고자 하는 프로그램이 현재 시스템에 부정적인 영향을 미칠 수도 있다. 루트로 로그인 하는 대신에 sudo 또는 su를 사용하는 걸 적극 추천한다.
방법 4 루트 또는 관리자 비밀번호 재설정하기
- 루트 비밀번호를 까먹은 경우 재설정한다. 루트 비밀번호, 자신의 사용자 비밀번호를 까먹은 경우, 복원 모드로 부팅을 해서 변경해야 한다. 사용자 비밀번호를 알고 루트 비밀번호를 변경해야 하는 경우, sudo passwd root를 입력하고 사용자 비밀번호를 입력한 뒤, 새로운 루트 비밀번호를 입력하면 된다.
- 컴퓨터를 재부팅하고 BIOS 화면이 뜬 다음, 왼쪽의-.⇧ Shift 를 누른다. 그러면 GRUB 메뉴가 뜬다. 타이밍을 맞추는 게 어려워서 여러번 해야할 것이다.
- 목록에 있는 첫 번째 .(recovery mode) 를 고른다. 그러면 현재 배포판의 복원 모드가 로드된다.
- 뜨는 메뉴에서 .root 옵션을 선택한다. 그러면 루트 계정으로 로그인된 터미널이 실행된다.
- 쓰기 권한으로 드라이브를 다시 바꾼다. 복원 모드로 부팅 시, 보통 읽기 권한만 있다. 다음 명령어를 입력하여 쓰기 권한을 허용한다:
- mount -rw -o remount /
- 잠긴 계정의 새로운 비밀번호를 입력한다. 루트로 로그인을 하고 권한을 변경했다면, 어떤 계정이든 새로운 비밀번호를 만들 수 있다:
passwd accountName을 입력하고 ↵ Enter를 누른다. 루트 비밀번호 변경을 해야 한다면, passwd root를 입력한다.
실행되면 새로운 비밀번호를 두 번 입력한다. - 비밀번호 재설정 후, 컴퓨터를 재부팅한다. 비밀번호 재설정이 끝나면 컴퓨터를 재부팅하고 평상시처럼 사용하면 된다. 새로운 비밀번호를 바로 쓸 수 있다.[5]
- 경고
- 루트 계정은 꼭 그래야만 하는 경우에만 사용하고, 용건이 끝나면 바로 로그아웃한다.
- 루트 비밀번호는 1)믿을 수 있는 사람, 2)알아야 하는 사람의 경우에만 공유한다.
리눅스에서 루트(root)권한 얻는 방법 - wikiHow
리눅스 컴퓨터에서 "루트" 계정은 모든 권한을 가진 계정이다. 리눅스에서 어떤 명령을 수행할 때 루트 권한이 필요한 경우가 종종 있으며, 특히 시스템 파일에 영향을 주는 명령인 경우 그렇다.
ko.wikihow.com
[LINUX] root와 사용자 계정 개념, 계정 정보 및 계정 전환 방법 정리
출처 :https://smallrich.tistory.com/80
LINUX는 사용자 중심의 시스템으로, 사용자 계정이 있어야 접속할 수 있다.
각 계정은 권한을 부여받는데, 모든 것을 할 수 있는 관리자 권한의 계정을 root라고 한다.
root
시스템을 관리할 수 있는 관리자 권한의 계정이자 슈퍼 유저
리눅스 파일 체제의 최상위 디렉토리( / )로도 표현한다.
root 권한이 있으면 모든 파일과 디렉토리에 대해 읽고 쓸 수 있고, 생성할 수도 있지만 제거할 수도 있다.
시스템 구성을 변경할 수도 있다. 그래서 매우 편하지만 조심히 행동해야 하는 계정이다.
일반 사용자 계정
root가 useradd 명령어를 통해 생성한 모든 계정
root와 달리 권한이 있는 파일과 디렉토리에 대해서만 읽고 쓸 수 있다.
권한도 누가? root가 부여한다.
그냥 쉽게 리눅스라는 집 안에 건물주(root)가 모든 곳을 들락날락 할 수 있지만
세입자(사용자 계정)는 계약한 공간 안에서만 생활할 수 있다고 생각하면 된다. 어디서 자본주의 냄새가..ㅋ..
+ 리눅스 설치 시 기본으로 생성되는 시스템 계정이나, APP 설치 시 필수로 생성해야 하는 솔루션 계정도 있다~
명령어를 통한 계정 전환
윗 줄에 생각없이 써넣은 비유랑은 좀 다르게, root와 일반 사용자 계정은 서로 전환할 수 있다.
ex. 사용자 계정으로 로그인했다가 권한이 필요하면 명령어를 통해 root 권한을 득할 수 있음
su (Switch User)
현재 계정을 로그아웃하지 않고 다른 계정으로 전환하는 명령어
># su [ 계정명 ] // 현재 계정의 환경변수를 유지한 채 전환
># su - [ 계정명 ] // root 계정의 환경변수까지 적용되어 전환
su root 혹은 su - root를 입력하면 현재 계정이 root 계정으로 전환된다.
당연히 그냥은 아니고, 이어서 root 패스워드를 입력해야 한다.
sudo (Superuser DO)
현재 계정에서 일시적으로 root 권한이 필요할 경우에 사용하는 명령어
># sudo [ 명령어 ]
su 명령어는 아예 계정이 전환되지만, sudo 명령어는 그냥 명령어 단위로 root 권한만 빌린다.
마찬가지로 명령어 실행 시 root 패스워드를 입력해야 한다.
이렇게 전환하다 보면 지금 내가 무슨 계정이더라? 까먹을 수 있다.
># whoami // 현재 나의 계정을 알 수 있음
># exit // 전환하기 전의 계정으로 돌아감 (logout도 마찬가지)
계정 정보 한 눈에 보는 법
리눅스는 자신이 갖고 있는 계정 정보를 텍스트 파일에 담아 관리한다.
기본적으로 계정의 목록은 /etc/passwd 파일에 저장되어 있다.
># cat /etc/passwd
예시 1
그럼 계정 정보가 사진처럼 복잡하게 보여질텐데,
이 한 줄 한 줄이 하나의 계정에 대한 설명이라고 보면 된다.
보고싶은 계정만 grep으로 스윽 긁어보면 편하다.
예시 2 : 예시 1의 첫 줄
어려워 보이지만 의미를 알면 구분하기 쉽다.
각 필드는 콜론(:) 으로 구분하고, 사진 속 용어에 대해 간단히 설명을 적자면 아래와 같다.
계정 명
말 그대로 사용자의 계정 명을 의미한다.
ex. root, oracle, ftp 등
패스워드
해당 계정의 패스워드로
당연히 패스워드가 x는 아니고, /etc/shadow 파일에 암호화되어 저장된다.
UID (User IDentifier)
계정을 식별하기 위한 고유 번호.
회사 임직원의 사번이나 대학생의 학번 개념으로 이해하면 된다.
간단히 User ID로 이해하면 되고, root만 0을 가진다.
GID (Group IDentifier)
사용자 계정이 속한 그룹의 고유 번호.
한 그룹에 여러 계정이 담겨있을 수 있으니 /etc/passwd 파일 내에는 번호가 중복되어 보일 수 있다.
하지만 각 그룹끼리는 고유 번호로 나뉜다.
마찬가지로 Group ID로 이해하고, root만 0을 가진다.
계정 설명 (Comment)
해당 계정의 설명 란이라고 보면 된다.
보통 공란이거나 계정 명과 동일하게 적혀 있다.
ex. postgres:x:123:123::/postgres:/bin/bash
혹은 postgres:x:123:123:postgres:/postgres:/bin/bash
홈 디렉토리
계정의 홈 디렉토리로, 개별 사용자가 권한을 갖고 자신의 홈 디렉토리를 관리할 수 있다.
ex. castle5 라는 계정을 만들면 /home/castle5 라는 디렉토리가 castle5 계정 권한으로 생성된다. (변경 가능)
생성 안되어 있으면 홈 디렉토리 경로가 지정되어 있는지 확인이 필요하다.
root는 홈 디렉토리가 /root 경로로 지정되지만, 그 외 계정은 기본적으로 /home 아래로 지정된다.
Shell
계정으로 로그인 시 기본으로 사용할 Shell을 지정할 수 있다.
Shell도 설치를 해야 사용이 가능한데, /etc/shells 파일 내에서 사용 가능한 환경을 확인할 수 있다.
주로 bash, csh, ksh 를 많이 접하는데, bash를 가장 많이 본다.
우리기 사용하기 위한 계정이 아니라 자동으로 생성된(로그인이 불필요한) 시스템 계정은
/usr/sbin/nologin, /bin/false, /sbin/nologin 등 으로도 생성된다.
각 계정의 설정이 담겨있으니, 당연히 root만이 해당 파일을 수정할 수 있다.
사용자 계정 생성
이제 대략적인 의미를 알았으니 사용자 계정 생성하는 방법을 알아보자~
계정 생성은 root 권한을 통해 명령어로 가능하고, 생성 시 /etc/default/useradd 파일의 내용을 참고한다.
명령어는 두 가지다.
adduser
사용자 홈 디렉토리를 포함한 사용자 관련 설정을 자동 생성한다.
사용자가 설정한 기본 쉘을 사용자의 쉘로 지정.
useradd
사용자 홈 디렉토리를 포함한 사용자 관련 설정을 자동생성 하지 않음.
따라서, 홈 디렉토리와 패스워드 그 외에도 여러가지 설정을 따로 해줘야 한다. 기본 쉘인 sh가 할당된다.
사용자 계정 생성 시, 주로 사용하는 옵션은 아래와 같다.
주요 옵션 | 설명 |
-p | 사용자 계정의 암호를 지정 |
-d | 홈 디렉토리를 지정하는 옵션. 최종 디렉토리만 생성하므로 중간 경로가 있는 경우에는 미리 생성해야 한다. |
-g | 그룹 지정하는 옵션. 지정할 그룹은 미리 생성되어 있어야 한다. 미 지정시, 보통 아이디와 동일한 그룹으로 포함시킨다. |
-G | 기본 그룹 이외에 추가로 다른 그룹에 속해야 할 경우에 쓴다. |
-c | 사용자 계정에 대한 설명 지정 |
-s | 사용자 계정 로그인 시 사용할 셸 지정 |
-D | /etc/default/useradd에 설정된 유저 추가와 관련 기본 사항을 보여준다. |
-f | 패스워드의 만기일을 날짜 수로 지정한다. |
-e | 사용자 계정의 만기일을 YYYY-MM-DD 형식으로 지정 |
-u | UID 값을 지정하는 옵션 |
'Computers > Linux' 카테고리의 다른 글
[Docker] Ubuntu 22.04 Docker 설치 (0) | 2023.11.04 |
---|---|
SAGE math 설치 with WSL2 (0) | 2023.05.31 |