공부?/국비 지원 일기장

39일차 - 리눅스 계정 공유 및 관리 , 패키지 설치

무무요 2024. 8. 29. 17:47


=======

Linux 계정 및 그룹 관리

계정
- 사용자를 식별하고 인증을 받거나 로컬/네트워크 자원에 접근하는 것을 가능하게 해주는 객체


umask (초기 허가권 관리)

- 리눅스 시스템에서 자원을 생성할 때 설정되는 기본 권한을 통합 관리하기 위해 사용
- 디렉터리는777 권한, 파일은 666 권한에서 umask값을 뺀 값이 기본 권한으로 설정됨
 - 파일은 기본 실행 권한을 빼고 설정됨


리눅스 특수 권한

특수권한(Special Permission)
- 시스템 관리의 효율성을 높이기 위해 사용하는 특별한 권한
- 보안의 취약점이 될 수 있으므로 꼭 필요한 경우가 아니면 사용하지 않는것이 좋음
- 보안의 취약점 때문에 잘 사용하지 않음

특수 권한          절대 모드      상대 모드
 SetUID              4000            u+s
 SetGID              2000            g+s
 Sticky bit           1000            o+t


SetUID ( 4000 = u+s )
- 파일을 실행하는 동안 해당 파일의 소유주의 권한으로 실행
- 일반적인 실행은 파일을 이용하려는 사용자의 소유권에 의해 실행권한이 부여되지만, SetUID 권한이 적용되어 있는 파일은 실행되는 동안은 사용자가 아닌 파일의 소유주의 권한을 할당 받음
- 실행 파일에만 의미가 있다 , 실행 파일이 아니면 의미가 없다.
- 소유자의 허가권에서 실행 권한이 x가 아닌 s로 표시 됨(s는 x를 포함한다, 실행할수있다는말, 실행 파일이 아닐시 소문자 s가 아닌 대문자 S로 표시된다)
- 특별한 경우에만 SetUID가 설정 되있음

예시(passwd)
- 패스워드를변경하면/etc/shadow 파일의 읽기 및 쓰기 권한을 가지고 있어야지 패스워드를 기록할 수 있음
- passwd 실행 파일에 SetUID 권한이 부여 되어 있으므로 passwd 명령이 실행되는 동안은 소유주의 권한(root)으로 동작하게 됨


SetGID (2000 = g+s)
- 파일을 실행하는 동안 해당 파일의 소속 그룹 권한으로 실행
- 파일이 실행되는 동안은 사용자가 아닌 파일의 소속 그룹 권한을 할당 받음
- 파일 및 디렉터리에서 설정 가능
- 소속 그룹의 허가권에서 실행 권한이x가아닌s로표시됨(예: rwxr-sr--)
디렉터리적용
- SetGID가 적용된 디렉터리의 하위에 생성되는 디렉터리도 동일하게 SetGID가 설정됨
- SetGID가 적용된 디렉터리 안에서 새로운 디렉터리를 생성하면 SetGID에 명시된 소속 그룹으로 설정됨


Sticky bit (1000 = o+t)
- 모든 소유권에 모든 허가권을 부여하지만 삭제는 소유주만 가능함
- 디렉터리에 설정함
- 나머지 사용자(other)의 허가권에서 실행 권한이x가 아닌 t로 표시됨(예: rwxr-xr-t)
- /tmp, /var/tmp에 적용되어 있음
- 기본 소유권과 허가권을 먼저 확인하기 때문에 기본 허가권에 삭제 권한이 있으면 삭제가 가능함


속성 설정

lsattr
- 파일의 속성을 보는 명령어

chattr 
- 속성 추가

chattr +a 파일 이름
- 파일에 대해 내용 추가만 가능, 내용 삭제나 파일삭제 불가능하게 만드는것
- 로그파일에 제격인 속성

chattr +i 파일 이름
- i = 불변
- 파일이 완성되어 더이상 건드리지 않아도 될때, 하지만 보관해야할때 주는 속성
- 삭제 수정 등 아무것도 되지 않음

확장 ACL
- 특정 사용자에게 특별권한을 주는것


소프트웨어 관리

Linux Software 관리
- 운영체제를 설치할 때 초기에 설치되는 기본 프로그램 외 관리자나 사용자가 추가로 필요한 소프트웨어를 설치 할 필요가 있음
- 필요에 따라 소프트웨어 설치 관리 및 제거
- 사용자가 소프트웨어를 설치하고 관리할 수 있게 도와주는 프로그램 및 설치방법이 다양함

Redhat 계열 Linux
- RPM(Redhat Package Manager) 
  - 패키지 배포 및 관리 프로그램
  - 사용자가 미리 확보한 패키지 파일(.rpm)을 이용하여 원하는 프로그램을 설치하는 방식
-장점
  - 패키지의 설치 및 제거가 편리함
  - 패키지의 업그레이드가 편리함
  -  source code compile 방법 보다 설치 속도가 빠름
  - 설치할 패키지를 검증할 수 있음
  - 질의를 통해 패키지의 자세한 정보 확인이 가능함
-단점
  - 사용자가 직접 필요한 패키지를 확보해야함
     >rpm 서버, 설치CD등을통해확보함
  - 사용자가 직접 의존성을 해결해야 함
https://rpmfind.net/linux/RPM/


rpm 사용법
# rpm -q[옵션]
# rpm -qi = 패키지 정보확인
OPTION(패키지 정보 확인)
-a 모든 패키지에 대한 질의

rpm 사용법(패키지 업데이트)
# rpm -U[옵션]  rpg 패키지 이름
-Uvh = 설치 할때 쓰는 옵션

rpm 사용법(패키지 삭제)
#rpm -e rpm패키지 이름
- 옵션명령어가 없음

- dnf, yum

dnf
- Redhat 계열의 Linux에서 사용하던 yum 패키지 관리도구를 개선하고 대체하기 위해 개발됨
- 속도향상, 오류 처리등의 기능이 향상 되었으며, 사용 방법은 기존의 yum과 유사함
- 현재Rocky Linux 9 에는 두 관리 도구 모두 사용 가능하며, 추후 yum 지원 종료를 대비하여 dnf 사용을권장함

장점
- rpm의 의존성 문제를 해결함
- 패키지를 별도로 확보할 필요가 없음
- 자동화 되어있는 설치 및 삭제를 지원
- update된 패키지를 검사하여 최신 패키지를 설치함

단점
- 네트워크 연결이 반드시 필요함(FQDN으로 인터넷 연결이 되어야함)
- repository에서 서비스를 중단하면 서비스를 받을 수 없음
- 불 필요한 패키지가 설치될 가능성이 있음
사용법
# dnf [옵션] [mode] [패키지 이름]
다운로드 예시) # dnf -y install 패키지 이름
OPTIONS
-y = 설치 여부를 확인하지 않고 바로 설치

MODE
install = 패키지 설치 
check-update = 설치된 패키지 중 업데이트가 가능한 항목을 확인 함
upgrade = 패키지 업데이트
remove = 패키지 삭제
info = 패키지 정보 확인

- source code compile (옛날에 쓰임)
- 컴파일러가 반드시 필요함

Debian 계열 Linux
- DEB(Debian Package)
- apt

- source code compile

rpm으로 제공되지않는프로그램을설치해야할때사용함
- 일반적으로 소스 코드 내부에 주석으로 설치 방법이 명시 되어 있거나, readme 또는install 이라는 파일을 통해 설치 방법을 제공함
- 컴파일러가반드시필요함
  - C 컴파일러(gcc 패키지), C++ 컴파일러(gcc=c++ 패키지)

장점
- 설치가 진행 될때 전체 과정을 제어하며 세부 환경설정 및 설치 경로 지정이 가능함

단점
- 컴파일 환경을 미리 준비 해야함
- 정확한 방법을 숙지하지 않으면 설치 시 에러가 많이 발생함
- 설치 및 관리 시간이 오래 걸림
- 검증 되지 않은 불법 소프트웨어가 설치될 가능성이 있음

1. /configure => ~ C => 2번 ~.exe
2. make => ~.exe
3. make install => ~.exe


dnf repository(저장소) 관리

- 레포지터리(저장소) 파일 경로
 yum의 대체인 dnf는 호환성을 유지하며 yum의 구성을 그대로 사용할 수 있도록 같은 경로를 사용함
 /etc/yum.repos.d/rocky.repo
- 관리 항목
 mirrolist : 패키지가 설치된 사이트들의 주소 리스트가 있는 사이트주소
 #baseurl : 실제 패키지가 설치된 사이트 주소
- mirror list 정보 확인
    https://mirrors.rockylinux.org/mirrormanager/mirrors/Rocky/[버전]/x86_64

=======