Linux 사용자 수정

LinuxBeginner
지금 연습하기

소개

사용자 관리는 Linux 시스템 관리의 기본적인 측면입니다. 개인용 컴퓨터를 설정하든, 서버를 관리하든, 또는 다중 사용자 환경에서 작업하든, 사용자 계정을 생성, 수정 및 관리하는 방법을 이해하는 것은 필수적입니다.

이 Lab 에서는 usermod 명령을 사용하여 사용자 이름, 홈 디렉토리, 그룹 멤버십과 같은 사용자 속성을 수정하는 방법을 배우게 됩니다. Linux 에서 사용자 관리에 사용되는 주요 명령에 대한 실질적인 경험을 쌓아, 모든 Linux 환경에서 사용자 계정을 효율적으로 관리하는 데 필요한 기술을 습득할 수 있습니다.

이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 초급 레벨의 실험이며 완료율은 92%입니다.학습자들로부터 100%의 긍정적인 리뷰율을 받았습니다.

사용자 생성 및 이름 변경

이 단계에서는 새 사용자를 생성하고 이름을 변경하는 방법을 배우게 됩니다. 이는 사용자가 역할을 변경하거나 시스템 전체에서 사용자 이름을 표준화해야 할 때 흔히 발생하는 작업입니다.

먼저, 터미널을 엽니다. 이미 ~/project 디렉토리에 있어야 합니다. temporaryuser라는 새 사용자를 생성하는 것으로 시작해 보겠습니다.

sudo useradd temporaryuser

이 명령은 시스템에 새 사용자 계정을 생성합니다. 기본적으로 useradd는 홈 디렉토리를 생성하거나 비밀번호를 설정하지 않습니다.

이제 사용자가 성공적으로 생성되었는지 확인해 보겠습니다.

grep temporaryuser /etc/passwd

출력에 temporaryuser에 대한 항목이 표시되어 사용자가 생성되었음을 확인할 수 있습니다.

다음으로, usermod 명령을 사용하여 이 사용자의 이름을 temporaryuser에서 permanentuser로 변경합니다.

sudo usermod -l permanentuser temporaryuser

-l 옵션은 로그인 이름을 변경하려는 것을 지정합니다. 이 명령을 실행한 후, 이전에 temporaryuser로 알려졌던 사용자는 이제 permanentuser로 알려지게 됩니다.

사용자 이름이 변경되었는지 확인해 보겠습니다.

grep permanentuser /etc/passwd

새 이름 permanentuser로 사용자 항목을 볼 수 있습니다.

이제 이 사용자에 대한 홈 디렉토리를 생성하고 할당해 보겠습니다.

sudo usermod -d /home/permanentuser -m permanentuser

이 명령에서:

  • -d는 새 홈 디렉토리 경로를 지정합니다.
  • -m은 새 홈 디렉토리가 존재하지 않으면 생성하고, 두 디렉토리가 모두 존재하면 이전 홈 디렉토리의 내용을 새 디렉토리로 이동합니다.

홈 디렉토리가 생성되었는지 확인해 보겠습니다.

ls -ld /home/permanentuser

permanentuser에 대해 새로 생성된 홈 디렉토리를 볼 수 있습니다.

사용자를 그룹에 추가

Linux 에서 그룹은 사용자를 구성하고 권한을 관리하는 데 사용됩니다. 사용자를 특정 그룹에 추가하는 것은 특정 리소스 또는 기능에 대한 액세스 권한을 부여하는 필수적인 방법입니다.

먼저, 현재 사용자가 속한 그룹을 확인해 보겠습니다.

groups permanentuser

기본적으로 useradd로 사용자를 생성하면, 사용자는 사용자 이름과 동일한 이름을 가진 기본 그룹에 할당됩니다.

이제 시스템에 sudo 그룹이 존재하는지 확인해 보겠습니다.

grep sudo /etc/group

sudo 그룹에 대한 항목을 볼 수 있습니다. 이 특수 그룹은 멤버가 sudo 명령을 사용하여 슈퍼유저 권한으로 명령을 실행할 수 있도록 합니다.

sudo 그룹에 사용자를 추가해 보겠습니다.

sudo usermod -aG sudo permanentuser

이 명령에서:

  • -a는 "추가 (append)"를 의미하며, 사용자를 다른 그룹에서 제거하지 않고 그룹에 추가합니다.
  • -G는 사용자를 추가할 그룹을 지정합니다.
  • sudo는 그룹의 이름입니다.
  • permanentuser는 우리가 수정하려는 사용자입니다.

사용자가 sudo 그룹에 추가되었는지 확인해 보겠습니다.

groups permanentuser

이제 출력에 그룹 목록에 sudo가 포함되어야 합니다.

/etc/group 파일을 살펴서 그룹 멤버십을 확인할 수도 있습니다.

grep sudo /etc/group

출력에는 permanentuser가 sudo 그룹의 멤버 목록에 포함되어야 합니다.

사용자 쉘 변경

Linux 의 각 사용자는 로그인 시 사용하는 명령줄 인터페이스를 결정하는 기본 셸을 가지고 있습니다. 이 단계에서는 사용자의 로그인 셸을 변경하는 방법을 배우게 됩니다.

먼저, 사용자에게 할당된 현재 셸을 확인해 보겠습니다.

grep permanentuser /etc/passwd

출력의 마지막 필드를 살펴보십시오. 일반적으로 추가 옵션 없이 useradd로 생성된 사용자의 경우 현재 셸이 /bin/sh로 표시됩니다.

이제 셸을 더 많은 기능을 갖춘 셸인 Bash 로 변경해 보겠습니다.

sudo usermod -s /bin/bash permanentuser

-s 옵션은 사용자의 새 로그인 셸을 지정합니다.

셸이 변경되었는지 확인해 보겠습니다.

grep permanentuser /etc/passwd

이제 줄의 끝부분에 permanentuser의 셸로 /bin/bash가 표시되어야 합니다.

다양한 셸은 서로 다른 기능과 사용자 경험을 제공합니다. Bash 는 다음과 같은 고급 기능을 제공하기 때문에 가장 인기 있는 셸 중 하나입니다.

  • 명령 완성 (Command completion)
  • 명령 기록 탐색 (Command history navigation)
  • 사용자 정의 가능한 프롬프트 (Customizable prompts)
  • 함수 및 제어 구조를 사용한 스크립팅 기능 (Scripting capabilities)

Linux 에서 다른 일반적인 셸은 다음과 같습니다.

  • /bin/sh - Bourne Shell, 기본 셸
  • /bin/zsh - Z Shell, Bash 를 넘어선 추가 기능
  • /bin/dash - Debian Almquist Shell, 경량 셸

사용자는 chsh 명령을 사용하여 세션 중에 설치된 셸 간에 전환하거나, 방금 수행한 것처럼 관리자가 usermod를 사용하여 기본 셸을 변경할 수 있습니다.

계정 만료일 설정 및 사용자 정보 확인

시스템 관리자는 종종 임시 계정을 생성하거나 계정을 주기적으로 검토해야 합니다. 이 단계에서는 계정의 만료 날짜를 설정하고 포괄적인 사용자 정보를 보는 방법을 배우게 됩니다.

계정 만료 설정

permanentuser 계정에 대한 만료 날짜를 설정해 보겠습니다. 이는 특정 기간 동안만 액세스 권한이 있어야 하는 임시 사용자 또는 계약자에게 유용합니다.

sudo usermod -e 2023-12-31 permanentuser

-e 옵션은 만료 날짜를 YYYY-MM-DD 형식으로 설정합니다. 이 날짜 이후에는 계정이 자동으로 비활성화됩니다.

만료 날짜가 설정되었는지 확인하려면:

sudo chage -l permanentuser

chage -l 명령은 계정 에이징 정보를 표시합니다. 출력에는 방금 설정한 날짜를 보여주는 "Account expires" 줄이 포함됩니다.

상세 사용자 정보 보기

Linux 에서 사용자 정보를 보기 위한 여러 명령이 있습니다. 이를 살펴보겠습니다.

  1. 사용자 ID, 그룹 ID 및 그룹 멤버십 확인:
id permanentuser

이 명령은 숫자 사용자 ID (UID), 기본 그룹 ID (GID) 및 사용자가 속한 모든 그룹을 표시합니다.

  1. 비밀번호 상태 및 에이징 정보 보기:
sudo passwd -S permanentuser

이 명령은 비밀번호 상태 (잠김, 만료 등) 및 마지막 변경 시기를 표시합니다.

  1. 시스템의 모든 사용자 보기:
cat /etc/passwd | grep -v nologin | grep -v false

이 명령은 로그인할 수 있는 사용자만 표시하도록 비밀번호 파일을 필터링합니다 (시스템 사용자 제외).

  1. 시스템의 모든 그룹 보기:
cat /etc/group

이는 시스템 그룹 및 사용자 그룹을 포함하여 시스템에 정의된 모든 그룹을 표시합니다.

사용자 정보를 효율적으로 검색하는 방법을 이해하는 것은 시스템 관리 및 사용자 액세스 문제 해결에 매우 중요합니다.

요약

이 랩에서는 Linux 에서 필수적인 사용자 관리 작업을 배웠습니다.

  1. usermod -l 명령을 사용하여 사용자를 생성하고 이름을 변경합니다.
  2. usermod -d -m을 사용하여 사용자의 홈 디렉토리를 설정합니다.
  3. usermod -aG를 사용하여 사용자를 보조 그룹에 추가합니다.
  4. usermod -s를 사용하여 사용자의 로그인 셸을 변경합니다.
  5. usermod -e를 사용하여 계정 만료 날짜를 설정합니다.
  6. id, chage와 같은 명령을 사용하고 시스템 파일을 검사하여 사용자 정보를 봅니다.

이러한 사용자 관리 기술은 모든 Linux 관리자에게 기본입니다. usermod 명령은 사용자 계정을 삭제하고 다시 만들 필요 없이 사용자 속성을 수정하기 위한 다재다능한 도구 세트를 제공합니다.

이러한 명령을 숙달함으로써 단일 사용자 워크스테이션, 다중 사용자 서버 또는 다양한 액세스 수준이 필요한 많은 사용자가 있는 엔터프라이즈 환경 등 모든 Linux 환경에서 사용자 계정을 효율적으로 관리할 수 있습니다.