리눅스 고급 관리: alias 설정과 사용자/그룹 체계

alias 별칭 설정

alias 명령어는 시스템에 설정된 모든 별칭을 확인합니다.
alias ll 명령어로 ll 별칭이 실제로 어떤 명령어를 가리키는지 확인할 수 있습니다.

# alias 기본 사용법
alias                     # 모든 별칭 목록 출력
alias ll                  # ll 별칭의 실제 명령 확인

# 임시 별칭 설정 (현재 세션에서만 유효)
alias rm='echo rm command is not found'
alias rm                  # 설정된 alias 확인
rm -fr test.txt           # 실행 결과: "rm command is not found -fr test.txt" 출력

별칭을 영구적으로 적용하려면 ~/.bashrc 또는 /etc/bashrc 파일에 설정을 추가해야 합니다.

사용자 관리

핵심 설정 파일

  • /etc/passwd: 사용자 계정 정보 저장
  • /etc/shadow: 암호화된 패스워드 정보 저장
  • /etc/group: 그룹 정보 저장
  • /etc/gshadow: 그룹 패스워드 정보 (거의 사용되지 않음)

useradd - 사용자 생성

주요 옵션:
-u: UID 지정
-s: 기본 셸 지정 (기본값: /bin/bash)
-M: 홈 디렉터리 생성 생략

# 일반 사용자 생성
useradd user1
grep 'user1' /etc/passwd

# 시스템 계정 생성 예제 (mysql: UID 1314, 로그인 불가, 홈 디렉터리 없음)
useradd -u 999 -s /sbin/nologin -M mysql
grep 'mysql' /etc/passwd /etc/group /etc/shadow
# 출력:
# /etc/passwd:mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/false
# /etc/group:mysql:x:27:
# /etc/shadow:mysql:! 20040::::::

# id 명령어로 확인
id mysql
# 출력: uid=27(mysql) gid=27(mysql) groups=27(mysql)

passwd - 패스워드 설정

--stdin: 비대화형(자동) 패스워드 설정

# 대화형 패스워드 설정
passwd user10

# 비대화형 패스워드 설정 (root만 가능, 대량 계정 관리에 유용)
echo "user_password" | passwd --stdin user10

su - 사용자 전환

su user: 사용자만 전환, 환경 변수는 현재 셸 유지
su - user: 완전한 사용자 환경으로 전환 (권장)

su - user10
# 현재 사용자 로그아웃: Ctrl + D (또는 logout 명령어)

userdel - 사용자 삭제

-r 옵션: 사용자와 홈 디렉터리 함께 삭제

# 사용자만 삭제 (홈 디렉터리 보존)
userdel user10
grep 'user10' /etc/passwd   # 더 이상 출력 없음
ls -la /home/user10         # 홈 디렉터리는 남아 있음

# 완전 삭제 (사용자 + 홈 디렉터리)
userdel -r user11
grep 'user11' /etc/passwd   # 미존재
ls -la /home/user11         # 미존재

usermod - 사용자 속성 수정

# 기존 사용자 정보 확인
useradd user11
grep user11 /etc/passwd
# 출력: user11:x:1005:1007: /home/user11:/bin/bash

su - user11                 # 로그인 성공
Ctrl+D                      # 로그아웃

# 셸 변경 (nologin으로)
usermod -s /sbin/nologin user11
grep user11 /etc/passwd
# 출력: user11:x:1005:1007: /home/user11:/sbin/nologin

su - user11
# 출력: "This account is currently not available."

# 다시 bash 셸로 복구
usermod -s /bin/bash user11
su - user11                 # 정상 로그인

그룹 관리 명령어

groupadd / groupmod - 그룹 생성 및 수정

# 그룹 GID 변경
groupmod -g 223 group2

gpasswd - 그룹 멤버십 관리

-a: 특정 그룹에 사용자 추가
-d: 그룹에서 사용자 제거
-M: 그룹의 멤버 목록 일괄 설정

# 여러 사용자를 한 번에 그룹에 추가
gpasswd -M user0,user1,user2,user3 group2

groupdel - 그룹 삭제

-f 옵션: 사용자의 주 그룹(primary group)까지 강제로 삭제

# 일반 그룹 삭제
groupdel groupname

# 강제 삭제 (주의해서 사용)
groupdel -f groupname

sudo 권한 부여

sudo는 일반 사용자에게 관리자 권한을 부분적으로 위임합니다.

# sudo 설정 파일 편집 (visudo = vim /etc/sudoers)
visudo

# 특정 명령어만 허용하는 예제
# user11 사용자가 파일 확인 명령어들을 sudo로 실행 가능
user11 ALL=(ALL) /bin/cat, /bin/head, /bin/tail, /bin/less, /bin/more, /bin/grep

# 설정 확인
grep user11 /etc/sudoers

# 일반 사용자로 전환 후 sudo 사용
su - user11
sudo head /var/log/secure
# (비밀번호 입력)

# 현재 사용자의 sudo 권한 확인
sudo -l    # 마지막 2줄에 주목

모든 명령어를 비밀번호 없이 실행할 수 있는 설정 (운영 담당자에게 적합):

# /etc/sudoers 또는 /etc/sudoers.d/ 에 추가
user11 ALL=(ALL) NOPASSWD: ALL

# 설정 후 user11은 sudo와 비밀번호 입력 없이 모든 명령어 실행 가능
sudo cat /var/log/messages
sudo systemctl restart nginx

태그: alias useradd userdel usermod passwd

7월 22일 02:49에 게시됨