본문 바로가기

Language/Linux

Linux 사용자 및 파일 권한 설정

  • 사용자와 그룹은 시스템에서 필수적인 요소이다.
  • 사용자가 없으면 시스템에 로그인할 수도 없고 사용할 수도 없음.

사용자

  • 로그인 대상
  • 접근 제어 기준으로 분류(1차적)
  • 다른 사용자와 명령을 실행할 수 있는 프로그램 간의 보안 경계 제공
  • 일반 사용자로 root 디렉토리 내 파일 리스트나 /etc/shadow 파일 내용을 볼 수 없음
  • 사용자 종류
    • 0번 : root
    • 1~999번 : 시스템 사용자, 프로세스에서 사용. 각각의 프로세스에 맞춰 시스템에 대한 엑세스 제한
    • 1000번 : 일반 사용자

그룹

  • 각 사용자에게 권한 부여를 하기엔 작업이 많다
  • 사용자들의 집합, 접근 제어기준으로 분류(2차적)

사용자 및 그룹 확인

  • cat /etc/passwd | grep root
    • root:x:0:0:root:/root:/bin/bash
    1. 사용자의 이름 로그인 시 사용
    2. 패스워드 - (/etc/shadow 파일에 저장)
    3. 사용자의 UID, 시스템에서 사용자 식별 번호
    4. 그룹의 GID, 시스템에서 그룹 식별 번호
    5. 메모 or 코멘트
    6. 사용자의 홈디렉토리
    7. 사용중인 쉘
  • cat /etc/group | grep root
    • root:x:0:
    1. 그룹이름
    2. 그룹패스워드 - (/etc/shadow 파일에 저장)
    3. GID, 시스템에서 그룹 식별 번호
    4. 이 그룹을 보조적으로 사용하고 있는 사용자들의 목록
  • id - 사용자의 정보 확인

슈퍼유저(root)

  • 다양한 권한 가진 사용자
  • uid가 0번으로 고정
  • 일반 사용자에서 root 사용자로 로그인할 때 → “su -” 사용한다.
  • sudo → 관리자 권한으로 명령 실행
  • sudo 사용 시 /var/log/secure 파일에 로그가 남는다, 관리자 권한이 있는 사용자만 사용 가능

사용자제어 - 관리자권한 필요

useradd user1 - 일반 사용자 생성시 그룹도 같이 생성된다.

  • u number → 사용자의 아이디를 지정한다(UID), 똑같은 GID생성됌. 마지막 생성된 번호 뒤 번호를 준다.
  • g number → u는 자동생성이지만, g옵션은 이미 있는 그룹만 설정할 수 있다.
  • G number → 보조그룹
  • s /bin/sh → 쉘 설정
  • D x → 사용자 생성 시 디폴트 값 확인

usermod - 사용자 변경

  • u → 유저아이디 변경 ex) usermod -u 1111 user1
  • g → 유저그룹 변경 ex) usermod -g 1004 user1
  • s → 쉘변경 ex) usermod -s /bin/bash user3
    • /sbin/nologin → 쉘 필요없는 경우

userdel - 사용자 제거

  • ex) userdel user5 → uesr5가 속한 그룹에 다른 사용자가있다면 그룹은 유지된다.
  • 사용자 홈 디렉토리는 그대로 남아있다.
  • r → 사용자 홈 디렉토리도 전부 삭제한다.

groupadd - 그룹 생성

  • ex) groupadd group1
  • ex) groupadd -g 2000 group2 2000번 그룹아이디를 group2를 가진 이름으로

groupmod - 그룹 변경

  • ex) groupmod -g 3000 group2 → 3000번그룹으로 group2 이동
  • ex) groupmod -G 10 user2 → user2를 10번을 보조그룹으로 사용

groupdel - 그룹삭제

  • ex) groupdel group2

su - user1 → 루트에서 일반 사용자로 로그인

su - → 일반사용자에서 루트로 로그인

 

사용자 생성 후 관리자 권한

  1. passwd user1 → 비밀번호 설정 ex)1234
  2. vim /etc/sudoers → user1에게 권한을 준다 or wheel 그룹에게 넣어주기

사용자 암호 관리

head -n 1 /etc/shadow

# 결과
root:
$6 # 해시알고리즘종류, sha512
$HdqWCn3nxMB1TIeB # 추가된 랜덤값(solt값)
$A3PQsDtRV286jKaatpyfyTlfu8mgJe3yI.9IVM1FdJwa7f3AlpIwQE3VH0BxJVzW2yLedMdl7RAZi28EfkLnJ.:  # 결과값
:  # 공백, 암호가 변경된 마지막 날 UTC 시간대로 계산,19700101 이후로 설정 
0:  # 사용자가 암호를 다시 변강하기 위해 경과해야하는 최소 일 수
99999:  # 암호 만기일, 1970년 1월 1일 기준으로 설정
7:  # 암호 민기일 전 경고 기간.
:  # 만기일 이후 로그인 할 수 있는 유예기간.
:  # 계정 만료일
  # 사용 x, 예약

# 2번째 필드
* 패스워드 잠금 상태 별도의 인증 방식
!! 암호 설정 x

chage - 비밀번호와 관련된 설정

  • l → 설정확인
  • m → 암호변경 최소 일 수 설정
  • M → 암호 최대사용기간 설정
  • W → 암호 변경 경고 기간
  • I → 비활성 기간
  • ex) chage -W 30 user1

 

파일의 권한과 사용

linux는 다중 사용자 로그인 지원

퍼미션과 소유권을 통해서 파일에 대한 접근을 제어

 

권한 확인

ls -l로 확인

  • r - 파일 내용 읽기/ 디렉토리 내 파일 정보확인
  • w - 파일 내용 편집/ 디렉토리 파일 생성 및 삭제
  • x - 실행파일 경우에만 실행/ 디렉토리 접근

 

권한 설정

chmod [option] permission File

  • 누가? u g o a → 소유자/소유그룹/기타/모두
  • 어떻게? + - = → 추가/제거/세팅
  • 무엇? r w x → 읽기/쓰기/실행 → 4/2/1
  • ex) chmod g+w file → 소유 그룹에 file에 대한 쓰기 권한 부여 = 심볼릭모드
  • ex) chmod u+x fileA, chmod g+w fileA, chmod o-r fileA → chmod 760 fileA = 8진수모드

 

특수권한 설정

rws이라고 x대신 s, t 기능이 있는 경우가 있다.

  • setuid 소유자에서 s, 본인 비밀번호는 루트가 아니여도 바꿀수있는 개념.
  • setgid 소유그룹에서의 s, 디렉토리에서 설정할 수 있는 기능, 새로 생성된 파일에는 디렉토리 소유그룹이 그대로 상속된다.
  • sticky bit 기타사용자에서 t, 특정 디렉토리를 누구나 자유롭게 사용, 쓰기는 아무나 가능하나 타 사용자가 삭제는 못한다.
  • ex) chmod 3675 dirB → 앞에 3이 setuid, setgid, sticky_bit가 합쳐진 값

 

소유자 및 그룹 변경

[EX]

  • chown user1 fileA → user1에게 fileA의 권한을 준다.
  • chown :user1 fileA → user1의 소유그룹에 fileA의 권한을 준다.
  • chown root:root fileA → root와 root 소유 그룹에 fileA 권한을 준다.

 

초기권한 설정 - umask

  • /etc/profile에 저장되어있음
  • 디렉토리 777-umask
  • 파일 666-umask

'Language > Linux' 카테고리의 다른 글

Linux 네트워크 설정 및 ssh 접속 종류  (0) 2022.03.08
Linux 로그 옵션  (0) 2022.03.08
Linux 서버 통신을 위한 관리  (0) 2022.03.08
Linux 프로세스 관리  (0) 2022.03.08
Linux 아카이브와 압축  (0) 2022.03.08