초코레

다중 사용자 관련 명령어 본문

Linux

다중 사용자 관련 명령어

초코레 2020. 7. 11. 18:40

리눅스 배포판(패키지) : 리눅스 커널 및 다양한 소프트웨어 패키지를 묶어서 배포하는 것 (Red Hat Linux, CentOS, Fedora, ubuntu 등 유명한 배포판 회사들이 있음)

 

윈도우즈는 A 드라이브(A:/), C 드라이브(C:/)와 같이 각각의 공간이 있는 데 리눅스 같은 경우는 전역 네임스페이스를 사용한다. 이는 모든 파일을 디렉토리로 표현하며 맨 앞에도 드라이브가 아니라 루트 디렉토리로 시작한다.(/dir1/dir2/) 또한 별개의 저장매체나 디바이스를 연결해도 루트 디렉토리로부터 시작된 특정 디렉토리로 인식한다. 그렇기 때문에 모든 파일들이 루트 디렉토리 안에 들어가 있다고 하여 전역 네임스페이스라고 한다. 파일은 inode 고유 값과 자료구조에 의해 주요 정보를 관리한다.

 

AWS에서 생성한 인스턴스에 접속하면 쉘에 명령어를 사용해 조작할 수 있다.

쉘(shell) : 사용자와 컴퓨터 하드웨어 또는 운영체제 간의 인터페이스. 사용자의 명령을 해석해서 커널에 명령을 요청해주는 역할. 관련된 시스템콜을 사용해서 프로그래밍이 작성되어 있다.

 

리눅스에는 여러 쉘의 종류가 있다. (쉘 마다 명령어가 조금 다르다)

  • Bourne-Again Shel l (bash) : GNU 프로젝트의 일환으로 개발됨. 리눅스의 디폴트 쉘
  • Bourn Shell (sh)
  • C Shell (csh)
  • Korn Shell (ksh) : 유닉스에서 가장 많이 사용됨

그 중 디폴트 쉘인 bash로 다중 사용자 관련 명령어를 살펴보자.

 

다중 사용자 관련 명령어

로그인한 사용자 ID를 알려준다.

whoami

사용자 ID를 생성한다. (슈퍼관리자인 root 계정만 가능)

어떤 ID를 생성하면 해당 ID에 home 디렉토리가 생성되며 그 아래에 해당 ID 이름의 디렉토리가 생성된다.

useradd는 사용자 기본 설정을 자동으로 하지 않기 때문에 생성한 ID의 디렉토리가 생성되지 않는다.

adduser는 사용자 기본 설정을 자동으로 수행하므로 adduser 명령어를 사용하자.

useradd [ID]
adduser [ID]

해당 명령어를 root 권한으로 실행.

root 계정으로 로그인하지 않은 상태에서 root 권한이 필요한 명령을 실행할 수 있게 해주는 프로그램.

아무나 사용할 수는 없고 sudo를 사용하게 끔 해주도록 권한을 설정하는 설정 파일이 있다.

(ubuntu ID는 디폴트로 설정되어 있어서 사용 가능)

/etc/sudoers 설정 파일에서 설정을 변경할 수 있다. (ID를 넣어주면 sudo에 대한 권한 설정) visudo가 설치되어 있다면 해당 명령을 통해 설정 파일이 오픈되어 바로 수정 가능.
특정 사용자가 sudo를 사용할 수 있도록 설정하려면 userid ALL=(ALL:ALL) ALL 추가.
특정 그룹에 포함된 모든 사용자가 sudo를 사용할 수 있도록 설정하려면 %group ALL=(ALL:ALL) ALL 추가.
사용자 혹은 그룹의 패스워드 생략 설정하려면 userid ALL=(ALL:ALL) ALL NOPASSWD: ALL 혹은 %group ALL=(ALL:ALL) ALL NOPASSWD: ALL 추가.
이처럼 vi로 해당 설정 파일에 들어가면 확인할 수 있다.
sudo를 사용하는 이유는 만약 root 계정 상태에서 파일을 삭제한다거나 기존 내용을 변경했을 때 복원할 수 없다. sudo 권한을 준 계정을 만들어 사용함으로써 명령어를 사용할 때 주의할 수 있다.

sudo [명령어]

해당 ID의 암호 변경(다른 ID의 암호를 변경하므로 앞에 sudo를 붙여야 함).

ID를 생략하면 현재 로그인한 ID의 암호 변경.

[sudo] passwd [ID]

사용자 변경. 보통 su - 와 함께 사용한다.

현재 ID 디렉토리에서 ls -al로 조회할 때 볼 수 있는 .bashrc와 .profile은 중점적으로 사용하는 환경 설정 파일이다. 예를 들어 ubuntu로 로그인하면 ubuntu 디렉토리 안의 .bashrc와 .profile 설정파일대로 환경설정한다.

su root는 현재 사용자의 설정파일대로 환경설정을 하고 root로 변경되는 것이고 (ID만 바뀌는 셈) su - root는 변경되는 사용자(root)의 설정파일대로 환경을 재설정 하고 root로 전환되는 것이다.

su root
su - root