09/05(월) 리눅스 4

Yuri JI·2022년 9월 5일
0

Kakao Cloud School

목록 보기
4/27
post-thumbnail

시스템 Booting & shutdown


부트로더 단계 : LILO, GRUB
systemd 서비스 단계: 최상위 프로세스 (PID = 1)

1) BIOS (Basic Input Output System)
- PC에 장착된 하드웨어의 상태 확인(키보드, 디스크 등등)
... +) 메모리 불량일 때는 메모리를 뽑고, 금박부부을 지우개로 깨끗이 지우자 -> 메모리가 탄 문제를 빼곤 이 방법으로 해결된다.

2) 부트로더 단계
/boot 아래에는 이미지가 들어있다. 이 이미지에 문제가 생기면 부팅이 제대로 되지 않는다.

부팅 관련한 설정은 `/boot/grub2/grub.cfg` 파일을 수정한다.

3) 커널 초기화 단계

  • 커널은 기본 device와 내부 data 구조를 초기화 시킨다.
  • dmesg : 부팅 중에 뜬 메세지를 확인할 수있다.

4) run-level 정해
5) 로그인 창이 뜬다. (id -> /etc/passwd, pwd -> /etc/shadow가 인증 수행)
6) 로그인 후 bash 프롬프트가 올라온다.

  • 부팅 시 경고 메세지 (배너) 띄우기
    - /etc/motd 파일 수정하기
[root@mail ~]# cat /etc/motd
##########################################################################

------------------------------ for login user -----------------------------

It will be punished for illegal login to this system.

It is saved for login information in another system.

###########################################################################

  • 커널은 OS를 위해 존재한다. OS가 있어야 root든 일반 계정이든 접속이 가능한 것이다.

  • 커널 관리자 이름 확인

  • 커널 버전 확인

  • 비트 수 확인

  • 커널 확인하기
    1) https://mirrors.edge.kernel.org/pub/linux/kernel/v3.x/ 사이트 접속

2) linux-3.10.tar.gz 다운로드
3) FTP 프로그램 이용해서 리눅스 서버로 전송
4)
5)

  • 일반적인 운영 서버 -> 247365(24시간 일주일 365일동안) -> HA 구성 이라고 한다.

Run-Level

  • 런레벨 모드 확인

  • 런레벨 변경

    • default.target : 시스템에 기본으로 설정된 런레벨
      graphical.target : 그래픽 모드의 다중 사용자모드로 설정되어 있는 것을 확인 가능하다 .
[root@mail ~]# ls -l /etc/systemd/system/default.target
lrwxrwxrwx. 1 root root 36 Aug 31 14:33 /etc/systemd/system/default.target -> /lib/systemd/system/graphical.target
  • 부팅 시 텍스트 모드가 되도록 런레벨 변경
ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target

사용자 계정 및 그룹 관리

  • 관련 디렉토리
    /etc/passwd : 계정인증파일(id)
    /etc/shadow : 계정인증파일(pwd), 암호 저장
    /etc/group : 그룹관리파일, 모든 사용자는 반드시 특정 그룹에 소속됨
    /etc/default/useradd : 사용자 추가 시 적용되는 기본 값
    /etc/login.defs : UID, GID 생성 시

  • 루트 계정의 권한을 일반 유저에게 줄 수 있다.
    - 0번 user id(UID)를 가지면 root 계정이 된다.

  • 비밀번호 암호 알고리즘 확인

authconfig --test | grep hashing
  • 알고리즘 변경
authconfig --passalgo=md5 --update
  • 변경된 암호 알고리즘 적용을 위한 비밀번호 변경
passwd [암호 변경할 유저명]
  • 변경된 암호 확인
tail /etc/shadow
  • 암호 없는 계정
    /etc/shadow => 느낌표 두개는 암호가 비어있음을 나타낸다.
    이런 계정은 의도가 불순할 지도 모른다.
    대응 방법
    1) 계정 삭제
    2) Lock (usermod -L [계정명] usermod -U [계정명]
    - 정보보안 감사
    : 금일로부터 정직, 휴직, 해고 등의 사유로 출근하지 않는 자의 계정은 반드시 Lock 설정을 우선 수행한다.

Lock 해제는 usermod -u [계정이름]

  • 정리
    !! : 비밀번호가 설정되지 않은 계정
    ! : LOCK 걸린 계정

3) 비밀번호 강제 설정(root 계정에서)

  • 그룹

  • useradd -p 옵션 (사용하지 마세요 ~)
    - 암호가 그대로 유출된다.

  • 특정 사용자 su 제한하기
    https://mslee89.tistory.com/57

  • usermod -u 0 -o admin1
    grep admin1 /etc/passwd // admin의 udi를 0으로 바꿈

PermitRootLogin no -> 주석처리
하면 admin1로 로그인가능 -> 로그인 하면 root로 표시된다.(이전에는
PermitRootLogin 막아서 못 들어옴)

  • 시나리오
    devteam(3000) devuser1~4
    opsteam(4000) opsuser1~4
    devops1(5100) devuser1, devuser2, opsuser1, opsuser2
    devop2(5200) devuser3, devuser4, opsuser3, opsuser4
    adminteam(6000) opsuser1, opsuser3
[root@mail ~]# groupadd -g 3000 devteam
[root@mail ~]# groupadd -g 3000 devteam
[root@mail ~]# useradd -g 3000 -G 5100 devuser1
[root@mail ~]# useradd -g 3000 -G 5100 devuser2
[root@mail ~]# useradd -g 3000 -G 5200 devuser3
[root@mail ~]# useradd -g 3000 -G 5200 devuser4
[root@mail ~]# useradd -g 4000 -G 5100, 6000 opsuser1
useradd: group '' does not exist
[root@mail ~]# useradd -g 4000 -G 5100,6000 opsuser1
[root@mail ~]# useradd -g 4000 -G 5100 opsuser2
[root@mail ~]# useradd -g 4000 -G 5200,6000 opsuser3
[root@mail ~]# useradd -g 4000 -G 5200 opsusr4
[root@mail ~]# userdel opsusr4
[root@mail ~]# useradd -g 4000 -G 5200 opsuser4

who: 현재 시스템을 이용하는 사용자 (접속자)
w: who의 확장 버전, /var/run/utmp

  • 업무적으로 필요한 권한만 부여하기 -> 최소의 권한의 원칙
  • 요구사항
    jeff 사용자는 시스템을 끄고, 재시작할 수 있는 권한이 요구된다.
1.  절대경로 확인 
[root@mail ~]# which shutdown
/usr/sbin/shutdown
[root@mail ~]# which reboot
/usr/sbin/reboot
  1. /etc/sudoers
    101 jeff ALL=/usr/sbin/shutdown,/usr/sbin/reboot 추가
  • 파일 권한
  1. root에서 time.sh 파일을 복사해서 jeff에게 줬을경우 jeff는 실행할 수가 없음

  2. jeff에게 파일 실행할 권한 주기 > 이제 jeff에서 time.sh 실행가능

chown jeff.jeff {file_name | dir} or chwon jeff:jeff {file_name | dir}: file/dir의 소유자, 그룹 변경

chown jeff {file_name | dir} : file/dir의 소유자만 변경
chown -R jeff.jeff dir/ : dir 하위의 모든 파일, dir에 소유권 전파

  • 주관식
    su 특정 유저 제한, last 명령 ? 198 p
    wheel 그룹
profile
안녕하세요 😄

0개의 댓글