etc

[Linux] 사용자, 그룹 및 권한

inderrom 2023. 11. 8. 17:39

사용자와 권한 관련 명령어

계정종류:

  • root 유저와 사용자 계정
  • 계정 살펴보기 /etc/passwd, /etc/shadow, /etc/group
  • 내 권한 (whoami, id)
  • 그룹 계정 및 권한(sudoer & sudo)
    • sudo visudo - 수펴유저의 권한을 편집
  • 사용자 생성과 그룹 생성 (adduser, useradd, usermod, deluser, userdel, addgroup, delgroup)
  • 파일 권한 다루기 (chmod, chown, chgrp, umask)
  • 파일 다루기 상급

setuid, setgid

 

사용자를 sudo 권한에 추가

  • useradd -aG user1 sudo (Ubuntu)
  • useradd -aG user1 wheel (Amazon AMI)

사용자 계정 - 권한의 대여 - su

su [username]

사용자의 권한을 대여 (, 사용자로 로그인 한 것과 같은 효과)
언제 사용하느냐? 관리자가 사용자 계정을 관리하고 이슈/장애를 분석 할 때

사용방법:
su user2
user2
id로 로그인 한다 (user2pw 필요)
su - user2
user2
id로 로그인 한다 (user2pw 필요, user2 home 디렉토리 사용)
su 혹은 su root
root
id 로 로그인 한다 (rootpw 필요. 하지만 우분투는 root 암호 비활성화.)

sudo su
내 권한을 상승하여 root 사용자의 권한으로 로그인 한다 (현재 디렉토리 사용) sudo su -
내 권한을 상승하여 root 사용자의 권한으로 홈 디렉토리 사용 (roothome)

sudo su - user2
user2
사용자의 권한으로 홈 디렉토리 사용 (sudoer(user1)pw 필요, user2 home)

 

사용자 계정과 그룹 계정

  • cat /etc/passw : 사용자 계정 확인 
  • cat /etc/shadow : 사용자 암호
  • cat /etc/group : 사용자 그룹 확인

사용자 계정과 그룹 계정 - 사용자 계정 (/etc/passwd)

cat /etc/passwd : 사용자 계정 확인

  

 

사용자 계정과 그룹 계정 - 사용자 계정 (/etc/shadow)

  • cat /etc/shadow : 사용자 암호
  • 리눅스(유닉스)의 모든 시간 epoch = 19701100:00:00 UTC

 

 

사용자 추가 (adduser - add user)

 

사용자 암호 정책 변경 / 암호 변경 (chage - change age / passwd)

chage [option] user

사용자암호정책변경

  • chage user2 : 암호 정책 변경
  • chage -l user2 : 암호 정책 확인
  • chage -E 2020-12-31 -m 1 -M 90 -W 7 user2
  • passwd [options] user : 암호변경
  • passwd -l user : 계정 잠금
  • passwd -u user : 계정 잠금 해제
  • passwd -S user : 계정 상태 확인
  • passwd -n <mindays> user : 암호 최소 기간
  • passwd -x <maxdays> user : 암호 최대 기간
  • man passwd

사용자 삭제 (deluser - delete user) deluser [options] user

사용자 계정 삭제

  • deluser user2
  • deluser user2 --remove-home

userdel user
none-interactive
모드로 모두 삭제

  • userdel user2 : 사용자 계정 삭제 (홈 삭제)
  • userdel -f user2 : 로그인 중이더라도 삭제
  • 새로운 사용자를 동일ID 로 만들경우, 이전 디렉토리에 맵핑
 

 

그룹 계정 / 사용자 할당 (또는 사용자 정보 수정) (usermod - user mod)

usermod [options] user
사용자 계정 정보 수정 (moduser 는 없음 (interactive 방식인...)) 사용자를 그룹에 추가

  • usermod -c <name change> user2 : 사용자 이름 수정
  • usermod -a -G sudo user2 : user2 sudo 그룹에 추가
  • adduser user2 sudo : user2 sudo 그룹에 추가
  • deluser user2 sudo : user2sudo 그룹에서 제거ㅇ
  • (실행후 결과 번역 오류)

 

 

파일의 생성 권한 (umask - user mask) 파일/디렉토리 생성 권한의 확인

소유자(User) / 그룹(Group) / 그외 (Other)

  • 리눅스의 기본 파일 권한: 666
  • 리눅스의 기본 디렉토리 권한: 777
    이 말은, umask 0 일 경우 새로 생성되는 파일의 권한은 666 (rw-rw-rw-) 을 갖게 됨) 여기서, umask 2 (혹은 0002) 일 경우에는 파일 기본권한 666 에서 002를 빼면
  • 디렉토리 권한은 777 (rwxrwxrwx) 을 갖게 됨
  • 110 110 110 = 666
  • 000 000 010 = 002
  • 110 110 100 = 664, rw-rw-r-- 로 생성 됨
  • 디렉토리 기본권한 777 에서 002를 빼면
  • 111 111 111 = 777
  • 000 000 010 = 002
  • 111 111 101 = 775, rwxrwxr-x 로 생성 됨

 

파일의 권한 - 권한 변경 (chmod - change mode) chmod [OPTION]... [MODE]... file...

파일/디렉토리 권한의 변경 소유자(User) / 그룹(Group) / 그외 (Other)

  • chmod 777 hello.txt : 숫자값을 통한 user/group/other rwx 권한 부여
  • chmod 700 hello.txt : 숫자값을 통한 user rwx 권한 부여 (group/other 에는 --- 권한 부여)
  • chmod u+x hello.txt : user x(실행) 권한 추가
  • chmod u-x hello.txt : user x(실행) 권한 삭제
  • chmod g+rw hello.txt : group rw(읽기/쓰기) 권한 추가
  • chmod g-rx hello.txt : group rw(읽기/쓰기) 권한 삭제
  • chmod o+rwx hello.txt : other rwx(읽기/쓰기/실행) 권한 추가
  • chmod o-rwx hello.txt : other rwx(읽기/쓰기/실행) 권한 삭제
  • chmod +x hello.txt : user/group/other x(실행) 권한 추가

파일의 권한 - 소유권 변경 (chown - change owner, chgrp - change group) chown [OPTION]... [USER][:GROUP] FILE...

파일/디렉토리의 소유자/그룹 변경 chgrp [OPTION]... [GROUP] FILE...

파일/디렉토리의 그룹 변경 소유자(User) / 그룹(Group) / 그외 (Other)

  • chown user2 hello.txt : 해당 파일(hello.txt) 의 소유자를 user2 로 변경
  • chown user2:user2 hello.txt : 해당 파일(hello.txt) 의 소유자와 그룹을 모두 user2 로 변경
  • chown :user2 hello.txt : 해당 파일(hello.txt) 의 그룹을 user2 로 변경
  • chgrp user2 hello.txt : 해당 파일(hello.txt) 의 그룹을 user2 로 변경

파일의 특수 실행 권한 (setuid, setgid, sticky bit)
파일의 권한을 일시적으로 소유주(setuid) 혹은 소유그룹(setgid)의 권한으로 빌려서 실행함

Sticky bit은 해당 디렉토리에 생성된 파일은 해당 사용자의 소유주로 저장됨 소유자(User) / 그룹(Group) / 그외 (Other)

SetUID 4xxx, SetGID 2xxx , StickyBit 1xxx 로 설정한다. 각각 설정 위치는 rws------, rwxrws---, drwxdrxdwt 로 표시된다.

기존권한의위치에덮어쓰기때문에,해당기능만존재할경우대문자S/S/T로표기된다. 각각 설정 위치는 rwS------, rwxrwS---, drwxdrxdwT 로 표시된다.
기존 권한 (실행권한) 을 포함하고 있는 경우 소문자 s/s/t로 표시된다.

  • chmod u+s filename
  • chmod g+s filename
  • chmod +t directoryname

파일의 특수 실행 권한 (setuid, setgid, sticky bit) (다소 복잡한) 실습

시나리오 : 두명의 사용자가 있고, user1 이 만든 읽기 전용 파일에 user2 setuid 권한을 통해 접근

user1, user2 두명의 사용자

  • user1readonly 파일 생성
  • /bin/cat 을 복사해서 mycat 으로 생성 및 setuid 를 통해 실행 권한을 부여
    • user2 readonly 파일을 직접 읽을 수는 없지만,
    • setuid 가 실행된 파일로는 읽을 수 있음.