TIL

20231213_TIL

i'm suna 2023. 12. 13. 22:40

사용자와 권한 관련 명령어

  • 계정종류 : 
    • root 유저와 사용자 계정
    • 계정 살펴보기 /etc/passwd, /etc/shadow, etc/group
      • 더보기
        - cat /etc/passwd : 사용자 계정 확인
        - cat /etc/shadow : 사용자 암호
        - cat /etc/group : 사용자 그룹 확인
cat /etc/passwd : 사용자 계정 확인
사용자명 패스워드 계정 UID 계정 GUI 이름 홈 디렉토리 로그인 쉘
root x 0 0 root 홈 /root /bin/bash
user1 x 1000 1000 user1,,, /home/user1 /bin/bash
www-data x 33 33 www-data /var/www /user/sbin/noolgin
cat / etc/shadow : 사용자 암호
리눅스(유닉스)의 모든 시간 epoch = 1970년 1월 1일 00:00:00 UTC
사용자명 패스워드 최종
수정일
패스워드
최소 변경일
패스워드
최대 사용일
패스워드 만료
경고기간
패스워드
유예기간
계정 만료
기간
예약필드
root ! 18357 0 99999 7      
user1 $sdfa... 18357 0 99999 7      
www-data * 18357 0 99999 7 7    
  • 내 권한(whoami, id)
  • 그룹 계정 및 권한(sudoer & sudo)
    • 더보기
      슈퍼유저 (superuser)의 권한을 수행 (do)한다.

      권한의 대여 - sudoer (읽기 전용)
      sudo visudo슈퍼 유저의 권한을 편집
      설정 파일을 통한 변경
      - 사용자 권한
      - %그룹 권한

      설정파일 상세 (비추천)
      - 계정명 호스트명 = (실행계정명) 명령어
      - user1 ALL=(ALL) / sbin/ifconfig

      사용자를 sudo 권한에 추가 (추천)- useradd -aG user1 sudo (Ubuntu)
      - useradd -aG user1 wheel (Amazon AMI)
  • 사용자 생성과 그룹 생성 (adduser, useradd, usermod, deluser, userdel, addgroup, delgroup)
    • 더보기
      사용자 추가(adduser - add user)

      adduser [options][--home DIR][--shell SHELL][--disabled-password][--disabled-login]
      user
      새로운 사용자 추가


      사용자 추가(useradd = user add with default (none-dialog방식) /  adduser의 아래 레벨 실행파일)

      useradd [options] user
      사용자 (기본값으로) 추가
      - useradd user3 : 사용자 user3추가
      - useradd -D : 사용자 생성 기본값 확인
      - useradd -D -b/usr : 사용자 기본 홈 디렉토리 /usr로 변경
      - useradd -D -s /bin/bash : 사용자 기본 쉘 bash로 변경
      - useradd -D -e 2020-12-31 : 사용자 계정 만료일 설정

      참고 : 계정 생성시 참조하는 파일들
      - /etc/default/useradd
      - /etc/login.defs
      - /etc/skel/
  • 파일 권한 다루기 (chmod, chown, chgrp, umask)
  • 파일 다루기 상급
    • setuid, setgid
  • 사용자 암호 정책 변경 / 암호 변경(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 [option]user : 암호변경
      - passwd -l user : 계정잠금
      - passwd -u user : 계정잠금 해제
      - passwd -S user : 계정상태 확인
      - passwd -n <mindays>user : 암호최소기간
      - passwd -x <maxdays>user : 암호최대기간
      - man passwd
  • 사용자 삭제 (delusere - delete user)
    • 더보기
      deluser [options]user 사용자 계정 삭제

      - deluser user2
      - deluser user2 --remove-home
      - userdel user2 : 사용자 계정 삭제 (홈삭제)
      - userdel -f user2 : 로그인중이더라도 삭제
  • 그룹생성,삭제 (addgroup = add group, delgroup - delete group)
    • 더보기
      addgroup [options]group
      그룹계정 생성

      delgroup [options]group
      그룹 계정 삭제
  • 그룹계정 / 사용자 할당(또는 사용자 정보 수정)(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 : user2를 sudo그룹에서 제거 (실행후 결과 번역 오류) 

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

      사용방법 : 
      1. su user2
         user2의 id로 로그인한다.(user2의 pw 필요)
      2. su - user2
         user2의 id로 로그인한다.(user2의 pw필요, user2의 home 디렉토리 사용)
      3. su 혹은 su root
         root의 id로 로그인한다.(root의 pw필요. 하지만 우분투는 root 암호 비활성화)
      4. sudo su
         내 권한을 상승하여 root사용자의 권한으로 로그인한다.(현재 디렉토리 사용)
      5. sudo su - 
         내 권한을 상승하여 root사용자의 권한으로 홈디렉토리 사용(root의 home)
      6. sudo su - user2
         user2 사용자 권한으로 홈 디렉토리 사용(sudoer(user1)의 pw필요, user2의 home)

drwxr-xr-x = 디렉토리 755 = 유형:directory, user:읽기+쓰기+실행, group:읽기+실행, other:읽기+실행

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

      소유자(user) / 그룹(group) / 모든 사용자(other)- 리눅스의 기폰파일권한 : 666
      - 리눅스의 기본 디렉토리 권한 : 777
      이 말은, umask가 0일 경우 새로 생성되는 파일의 권한은 666(rw-rw-rw-)을 갖게 됨
                                                             디렉토리 권한은 777(rwxrwxrwx)을 갖게 됨
      여기서,umask가 2(혹은 0002)일경우에는 파일 기본권한 666에서 002를 빼면
      - 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 +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 로변경
  • 파일의 특수 실행 권한(setuid, setgid, sticky bit)
    • 더보기
      파일의 권한을 일시적으로 소유주(setuid)혹은 소유그룹(setgid)의 권한으로 빌려서 실행함
      Sticky