IT’s Portfolio

[Lecture] Operating System with Ubuntu - Day 7~8 λ³Έλ¬Έ

Development Study

[Lecture] Operating System with Ubuntu - Day 7~8

f1r3_r41n 2023. 5. 22. 15:22
728x90
λ°˜μ‘ν˜•

πŸ–₯ Operating System - Day 7~8

πŸ‘€ 특수 μ ‘κ·Ό κΆŒν•œ μ„€μ •

  • umask 의 λ„€ 자리 숫자 쀑 맨 μ•žμžλ¦¬ μˆ«μžλŠ” 특수 μ ‘κ·Ό κΆŒν•œμ„ λ‚˜νƒ€λƒ„
    • 0이면 일반적인 μ ‘κ·Ό κΆŒν•œ
    • 1, 2, 4이면 특수 μ ‘κ·Ό κΆŒν•œ
  • SetUID : 4
  • SetGID : 2
  • μŠ€ν‹°ν‚€ λΉ„νŠΈ(sticky bit) : 1

πŸ€” SetUID

  • SetUID κ°€ μ„€μ •λœ νŒŒμΌμ„ μ‹€ν–‰ν•˜λ©΄ ν•΄λ‹Ή 파일이 μ‹€ν–‰λ˜λŠ” λ™μ•ˆμ—λŠ” νŒŒμΌμ„ μ‹€ν–‰ν•œ μ‚¬μš©μžμ˜ κΆŒν•œμ΄ μ•„λ‹ˆλΌ 파일 μ†Œμœ μžμ˜ κΆŒν•œμ΄ 적용됨
  • SetUID κ°€ μ„€μ •λ˜λ©΄ μ†Œμœ μžμ˜ μ‹€ν–‰ κΆŒν•œμ— 's'κ°€ ν‘œμ‹œλ¨
    • νŒŒμΌμ„ μ‹€ν–‰ν•˜λ©΄ 항상 파일 μ†Œμœ μžμ˜ κΆŒν•œμ΄ 적용됨
  • passwd : μ‚¬μš©μž κ³„μ •μ˜ μ•”ν˜Έλ₯Ό λ°”κΏˆ
    • 일반 μ‚¬μš©μžκ°€ passwd λͺ…λ ΉμœΌλ‘œ μ•”ν˜Έλ₯Ό λ³€κ²½ν•  μ‹œ 본인의 κΆŒν•œμœΌλ‘œ μ‹€ν–‰ν•˜λ©΄ μ•”ν˜Έλ₯Ό λ³€κ²½ν•  수 μ—†μŒ
      • root κ³„μ •λ§Œ /etc/shadow νŒŒμΌμ„ λ³€κ²½ν•  수 있기 λ•Œλ¬Έ
    • passwd λͺ…λ Ήμ—λŠ” SetUID κ°€ μ„€μ •λ˜μ–΄ 있기 λ•Œλ¬Έμ— μ†Œμœ μžμΈ root κΆŒν•œμœΌλ‘œ μ‹€ν–‰λ˜μ–΄ /etc/shadow νŒŒμΌμ„ μˆ˜μ •ν•΄ μ•”ν˜Έλ₯Ό λ³€κ²½ν•  수 있음

πŸ€” SetGID

  • SetGID κ°€ μ„€μ •λœ νŒŒμΌμ„ μ‹€ν–‰ν•˜λ©΄ ν•΄λ‹Ή 파일이 μ‹€ν–‰λ˜λŠ” λ™μ•ˆμ—λŠ” 파일 μ†Œμœ  그룹의 κΆŒν•œμœΌλ‘œ 싀행됨
  • SetGID κ°€ μ„€μ •λ˜λ©΄ 그룹의 μ‹€ν–‰ κΆŒν•œμ— 's'κ°€ ν‘œμ‹œλ¨

πŸ€” μŠ€ν‹°ν‚€ λΉ„νŠΈ

  • μŠ€ν‹°ν‚€ λΉ„νŠΈλŠ” 디렉터리에 μ„€μ •ν•˜λ©°, 디렉터리에 μŠ€ν‹°ν‚€ λΉ„νŠΈκ°€ μ„€μ •λ˜μ–΄ 있으면 이 λ””λ ‰ν„°λ¦¬μ—λŠ” λˆ„κ΅¬λ‚˜ νŒŒμΌμ„ 생성할 수 있음
    • νŒŒμΌμ€ νŒŒμΌμ„ μƒμ„±ν•œ κ³„μ •μœΌλ‘œ μ†Œμœ μžκ°€ μ„€μ •λ˜κ³ , λ‹€λ₯Έ μ‚¬μš©μžκ°€ μƒμ„±ν•œ νŒŒμΌμ€ μ‚­μ œν•  수 μ—†μŒ
  • μŠ€ν‹°ν‚€ λΉ„νŠΈκ°€ μ„€μ •λ˜λ©΄ 기타 μ‚¬μš©μžμ˜ μ‹€ν–‰ κΆŒν•œμ— 't'κ°€ ν‘œμ‹œλ¨

πŸ€” 특수 μ ‘κ·Ό κΆŒν•œ μ„€μ • 였λ₯˜

  • 특수 κΆŒν•œμ„ μ„€μ •ν•˜λŠ” νŒŒμΌμ΄λ‚˜ 디렉터리 λͺ¨λ‘ μ‹€ν–‰ κΆŒν•œμ„ 가지고 μžˆμ–΄μ•Ό 함
  • μ‹€ν–‰ κΆŒν•œμ΄ μ—†λŠ” νŒŒμΌμ— SetUID λ‚˜ SetGID λ₯Ό μ„€μ •ν•˜λ©΄ 'S'κ°€ ν‘œμ‹œλ¨
  • 디렉터리에 μ‹€ν–‰ κΆŒν•œμ΄ μ—†λŠ”λ° μŠ€ν‹°ν‚€ λΉ„νŠΈλ₯Ό μ„€μ •ν•˜λ©΄ 'T'κ°€ ν‘œμ‹œλ¨

πŸ‘‰πŸ» [Chapter 06] ν”„λ‘œμ„ΈμŠ€ 관리

πŸ‘€ ν”„λ‘œμ„ΈμŠ€μ˜ κ°œλ…

  • ν”„λ‘œμ„ΈμŠ€(process) : ν˜„μž¬ μ‹œμŠ€ν…œμ—μ„œ μ‹€ν–‰ 쀑인 ν”„λ‘œκ·Έλž¨
    • λ¦¬λˆ…μŠ€λŠ” 닀쀑 ν”„λ‘œμ„ΈμŠ€ μ‹œμŠ€ν…œ

πŸ€” ν”„λ‘œμ„ΈμŠ€μ˜ λΆ€λͺ¨-μžμ‹ 관계

  • λ¦¬λˆ…μŠ€μ—μ„œ λͺ¨λ“  ν”„λ‘œμ„ΈμŠ€λŠ” λΆ€λͺ¨-μžμ‹ 관계λ₯Ό 가짐
    • ν•„μš”μ— 따라 λΆ€λͺ¨ ν”„λ‘œμ„ΈμŠ€(parent process) λŠ” μžμ‹ ν”„λ‘œμ„ΈμŠ€(child process) λ₯Ό μƒμ„±ν•˜κ³ , μžμ‹ ν”„λ‘œμ„ΈμŠ€λŠ” 또 λ‹€λ₯Έ μžμ‹ ν”„λ‘œμ„ΈμŠ€λ₯Ό 생성할 수 있음
  • λ¦¬λˆ…μŠ€ μ‹œμŠ€ν…œμ€ λΆ€νŒ… μ‹œ μŠ€μΌ€μ€„λŸ¬κ°€ μ‹€ν–‰ν•œ ν”„λ‘œμ„ΈμŠ€μΈ systemd 와 kthreadd ν”„λ‘œμ„ΈμŠ€λ₯Ό μ œμ™Έν•˜λ©΄ λͺ¨λ“  ν”„λ‘œμ„ΈμŠ€λŠ” λΆ€λͺ¨ ν”„λ‘œμ„ΈμŠ€λ₯Ό 가짐

πŸ€” ν”„λ‘œμ„ΈμŠ€μ˜ 번호

  • PID(Process IDentification number) : 각 ν”„λ‘œμ„ΈμŠ€μ˜ κ³ μœ ν•œ 번호
  • PIDλŠ” 1λ²ˆλΆ€ν„° μ‹œμž‘ν•˜λ©° ν”„λ‘œμ„ΈμŠ€κ°€ μ‹€ν–‰λ˜λ©΄μ„œ ν•˜λ‚˜μ”© μ¦κ°€ν•˜μ—¬ 뢀여됨
    • λ¦¬λˆ…μŠ€ μ‹€ν–‰ μ‹œ PID 1번 systemd, PID 2번 kthreadd κ°€ μ°¨λ‘€λ‘œ 싀행됨
    • 1번 ν”„λ‘œμ„ΈμŠ€λŠ” λ‚˜λ¨Έμ§€ λͺ¨λ“  μ‹œμŠ€ν…œ ν”„λ‘œμ„ΈμŠ€μ˜ λΆ€λͺ¨ ν”„λ‘œμ„ΈμŠ€κ°€ 되고, 2번 ν”„λ‘œμ„ΈμŠ€λŠ” λͺ¨λ“  μŠ€λ ˆλ“œμ˜ λΆ€λͺ¨ ν”„λ‘œμ„ΈμŠ€κ°€ 됨
  • μ „ν†΅μ μœΌλ‘œ μœ λ‹‰μŠ€μ—μ„œ 1번 ν”„λ‘œμ„ΈμŠ€λŠ” init
    • μš°λΆ„νˆ¬μ˜ 경우 init 의 κΈ°λŠ₯을 systemd 둜 λ°”κΏˆ
    • 이전 μ‹œμŠ€ν…œκ³Ό ν˜Έν™˜λ˜λ„λ‘ 1번 ν”„λ‘œμ„ΈμŠ€μ˜ 이름은 init 으둜 μœ μ§€ν•˜κ³  있음
      • init 은 systemd 의 μ‹¬λ²Œλ¦­ 링크

πŸ€” ν”„λ‘œμ„ΈμŠ€μ˜ μ’…λ₯˜

  • μ‚¬μš©μžκ°€ μ‹€ν–‰ν•œ 일반적인 ν”„λ‘œμ„ΈμŠ€λŠ” 잠깐 μ‹€ν–‰λ˜μ—ˆλ‹€κ°€ λ°”λ‘œ μ’…λ£Œλ¨
  • 데λͺ¬ ν”„λ‘œμ„ΈμŠ€(daemon process) : νŠΉμ • μ„œλΉ„μŠ€λ₯Ό μ œκ³΅ν•˜κΈ° μœ„ν•΄ μ‘΄μž¬ν•˜λ©° λ¦¬λˆ…μŠ€ 컀널에 μ˜ν•΄ 싀행됨
    • ν‰μ†Œ λŒ€κΈ° μƒνƒœλ‘œ μžˆλ‹€κ°€ μ„œλΉ„μŠ€ μš”μ²­μ΄ λ“€μ–΄μ˜€λ©΄ μ„œλΉ„μŠ€ 제곡
    • 원격 접속 μ„œλΉ„μŠ€λ₯Ό μ œκ³΅ν•˜κΈ° μœ„ν•΄ λ™μž‘ν•˜λŠ” sshd ν”„λ‘œμ„ΈμŠ€κ°€ μžˆλŠ”λ° 이λ₯Ό ssh μ„œλ²„ 데λͺ¬μ΄λΌκ³  함
  • κ³ μ•„ ν”„λ‘œμ„ΈμŠ€(orphan process)
    • μžμ‹ ν”„λ‘œμ„ΈμŠ€λŠ” μ’…λ£Œλ˜λ©΄ λΆ€λͺ¨ ν”„λ‘œμ„ΈμŠ€λ‘œ λŒμ•„κ°€μ§€λ§Œ μžμ‹ ν”„λ‘œμ„ΈμŠ€κ°€ 아직 μ‹€ν–‰ 쀑인데 λΆ€λͺ¨ ν”„λ‘œμ„ΈμŠ€κ°€ λ¨Όμ € μ’…λ£Œλ˜λ©΄ κ³ μ•„ ν”„λ‘œμ„ΈμŠ€κ°€ 됨
      • 1번 ν”„λ‘œμ„ΈμŠ€κ°€ κ³ μ•„ ν”„λ‘œμ„ΈμŠ€μ˜ μƒˆλ‘œμš΄ λΆ€λͺ¨ ν”„λ‘œμ„ΈμŠ€κ°€ λ˜μ–΄ κ³ μ•„ ν”„λ‘œμ„ΈμŠ€κ°€ μž‘μ—…μ„ 마치고 μ’…λ£Œλ  수 있게 함
  • μ’€λΉ„ ν”„λ‘œμ„ΈμŠ€(zombie process)
    • μžμ‹ ν”„λ‘œμ„ΈμŠ€λŠ” μ’…λ£Œλ  λ•Œ λΆ€λͺ¨ ν”„λ‘œμ„ΈμŠ€μ— μ’…λ£Œ 정보(exit status) λ₯Ό 보내고, λΆ€λͺ¨ ν”„λ‘œμ„ΈμŠ€κ°€ 이 정보λ₯Ό λ°›μœΌλ©΄ μžμ‹ ν”„λ‘œμ„ΈμŠ€λŠ” ν”„λ‘œμ„ΈμŠ€ ν…Œμ΄λΈ” λͺ©λ‘μ—μ„œ μ‚­μ œλ¨
    • μžμ‹ ν”„λ‘œμ„ΈμŠ€κ°€ 싀행을 μ’…λ£Œν–ˆλŠ”λ°λ„ ν”„λ‘œμ„ΈμŠ€ ν…Œμ΄λΈ” λͺ©λ‘μ— 남아 μžˆλŠ” κ²½μš°μ— μ’€λΉ„ ν”„λ‘œμ„ΈμŠ€λΌκ³  함
      • μžμ‹ ν”„λ‘œμ„ΈμŠ€μ˜ μ’…λ£Œ 정보λ₯Ό λΆ€λͺ¨ ν”„λ‘œμ„ΈμŠ€κ°€ 읽어 κ°€κΈ°λ₯Ό 기닀리고 μžˆλŠ” 것
      • ν”„λ‘œμ„ΈμŠ€ λͺ©λ‘μ— defunct ν”„λ‘œμ„ΈμŠ€λΌκ³  λ‚˜μ˜€κΈ°λ„ 함
      • μ‹€μ œλ‘œ μ‹€ν–‰λ˜μ§€λŠ” μ•Šμ§€λ§Œ λ™μž‘ 쀑인 ν”„λ‘œμ„ΈμŠ€ ν…Œμ΄λΈ” λͺ©λ‘μ„ μ°¨μ§€ν•˜κ³  있음
    • kill λͺ…λ ΉμœΌλ‘œ μ œκ±°ν•  수 μ—†μŒ
    • SIGCHLD μ‹œκ·Έλ„μ„ λΆ€λͺ¨ ν”„λ‘œμ„ΈμŠ€μ— 보내 λΆ€λͺ¨ ν”„λ‘œμ„ΈμŠ€κ°€ μžμ‹ ν”„λ‘œμ„ΈμŠ€λ₯Ό μ •λ¦¬ν•˜λ„λ‘ ν•˜κ±°λ‚˜ λΆ€λͺ¨ ν”„λ‘œμ„ΈμŠ€ 자체λ₯Ό μ’…λ£Œν•΄μ•Ό 함
      • λΆ€λͺ¨ ν”„λ‘œμ„ΈμŠ€κ°€ μ’…λ£Œλ˜λ©΄ μ’€λΉ„ ν”„λ‘œμ„ΈμŠ€λŠ” κ³ μ•„ ν”„λ‘œμ„ΈμŠ€κ°€ 되고, 1번 ν”„λ‘œμ„ΈμŠ€λŠ” 주기적으둜 μžμ‹ ν”„λ‘œμ„ΈμŠ€μ˜ μ’…λ£Œ 정보λ₯Ό ν™•μΈν•˜μ—¬ 정리함

πŸ‘€ ν”„λ‘œμ„ΈμŠ€ 관리 λͺ…λ Ή

πŸ€” ν”„λ‘œμ„ΈμŠ€ λͺ©λ‘ 확인

  • ps
    • ν˜•μ‹ : ps [option]
    • ν˜„μž¬ μ‹€ν–‰ 쀑인 ν”„λ‘œμ„ΈμŠ€μ— λŒ€ν•œ 정보λ₯Ό 좜λ ₯함
    • PID : ν”„λ‘œμ„ΈμŠ€ 번호
    • TTY : ν˜„μž¬ 터미널 번호
    • TIME : ν”„λ‘œμ„ΈμŠ€μ˜ μ‹€ν–‰ μ‹œκ°„
    • CMD : ν”„λ‘œμ„ΈμŠ€κ°€ μ‹€ν–‰ 쀑인 λͺ…λ Ή
    • <μœ λ‹‰μŠ€ μ˜΅μ…˜> : λ¬Άμ–΄μ„œ μ‚¬μš©ν•  수 있고, - 으둜 μ‹œμž‘
      • -e : μ‹œμŠ€ν…œμ—μ„œ μ‹€ν–‰ 쀑인 λͺ¨λ“  ν”„λ‘œμ„ΈμŠ€μ˜ 정보λ₯Ό 좜λ ₯
        • TTY 의 값이 ?인 것은 λŒ€λΆ€λΆ„ 데λͺ¬μœΌλ‘œ μ‹œμŠ€ν…œμ΄ μ‹€ν–‰ν•œ ν”„λ‘œμ„ΈμŠ€
      • -f : ν”„λ‘œμ„ΈμŠ€μ— λŒ€ν•œ μžμ„Έν•œ 정보λ₯Ό 좜λ ₯
        • UID : ν”„λ‘œμ„ΈμŠ€λ₯Ό μ‹€ν–‰ν•œ μ‚¬μš©μž ID
        • PPID : λΆ€λͺ¨ ν”„λ‘œμ„ΈμŠ€ 번호
        • C : CPU μ‚¬μš©λŸ‰(%)
        • STIME : ν”„λ‘œμ„ΈμŠ€μ˜ μ‹œμž‘ λ‚ μ§œλ‚˜ μ‹œκ°„
      • -u uid : νŠΉμ • μ‚¬μš©μžμ— λŒ€ν•œ λͺ¨λ“  ν”„λ‘œμ„ΈμŠ€μ˜ 정보λ₯Ό 좜λ ₯
        • -fu uid : λ”μš± μƒμ„Έν•œ 정보 확인
      • -p pid : pid둜 μ§€μ •ν•œ νŠΉμ • ν”„λ‘œμ„ΈμŠ€μ˜ 정보λ₯Ό 좜λ ₯
        • -fp pid : λ”μš± μƒμ„Έν•œ 정보 확인
      • -ef : 전체 ν”„λ‘œμ„ΈμŠ€μ˜ 더 μžμ„Έν•œ 정보 확인
    • <BSD μ˜΅μ…˜> : λ¬Άμ–΄μ„œ μ‚¬μš©ν•  수 있고, - 으둜 μ‹œμž‘ν•˜μ§€ μ•ŠμŒ
      • a : ν„°λ―Έλ„μ—μ„œ μ‹€ν–‰μ‹œν‚¨ ν”„λ‘œμ„ΈμŠ€μ˜ 정보λ₯Ό 좜λ ₯
        • STAT : ν”„λ‘œμ„ΈμŠ€μ˜ μƒνƒœλ₯Ό λ‚˜νƒ€λƒ„
          • R : μ‹€ν–‰ 쀑(running)
          • S : μΈν„°λŸ½νŠΈκ°€ κ°€λŠ₯ν•œ λŒ€κΈ°(sleep) μƒνƒœ
          • T : μž‘μ—… μ œμ–΄μ— μ˜ν•΄ μ •μ§€λœ(stopped) μƒνƒœ
          • Z : μ’€λΉ„ ν”„λ‘œμ„ΈμŠ€(defunct)
          • STIME : ν”„λ‘œμ„ΈμŠ€μ˜ μ‹œμž‘ λ‚ μ§œλ‚˜ μ‹œκ°„
          • s : μ„Έμ…˜ 리더 ν”„λ‘œμ„ΈμŠ€
          • + : ν¬κ·ΈλΌμš΄λ“œ ν”„λ‘œμ„ΈμŠ€ κ·Έλ£Ή
          • l : λ©€ν‹°μŠ€λ ˆλ“œ
      • u : ν”„λ‘œμ„ΈμŠ€ μ†Œμœ μž 이름, CPU μ‚¬μš©λŸ‰, λ©”λͺ¨λ¦¬ μ‚¬μš©λŸ‰ λ“± 상세 정보λ₯Ό 좜λ ₯
      • x : μ‹œμŠ€ν…œμ—μ„œ μ‹€ν–‰ 쀑인 λͺ¨λ“  ν”„λ‘œμ„ΈμŠ€μ˜ 정보λ₯Ό 좜λ ₯
      • au : ν„°λ―Έλ„μ—μ„œ μ‹€ν–‰ν•œ ν”„λ‘œμ„ΈμŠ€μ˜ 상세 정보 좜λ ₯
        • USER : μ‚¬μš©μž 계정 이름
        • %CPU : νΌμ„ΌνŠΈλ‘œ ν‘œμ‹œν•œ CPU μ‚¬μš©λŸ‰
        • &MEM : νΌμ„ΌνŠΈλ‘œ ν‘œμ‹œν•œ 물리적 λ©”λͺ¨λ¦¬ μ‚¬μš©λŸ‰
        • VSZ : μ‚¬μš© 쀑인 가상 λ©”λͺ¨λ¦¬μ˜ 크기(KB)
        • RSS : μ‚¬μš© 쀑인 물리적 λ©”λͺ¨λ¦¬μ˜ 크기(KB)
        • START : ν”„λ‘œμ„ΈμŠ€ μ‹œμž‘ μ‹œκ°„
      • ax = -e
      • aux = -ef
    • <GNU μ˜΅μ…˜> : - 두 개둜 μ‹œμž‘
      • --pid PID λͺ©λ‘ : λͺ©λ‘μœΌλ‘œ μ§€μ •ν•œ νŠΉμ • PID 정보λ₯Ό 좜λ ₯

πŸ€” νŠΉμ • ν”„λ‘œμ„ΈμŠ€ 정보 검색

  • ps -ef | grep [command]
    • ps 와 grep λͺ…령을 | 둜 μ—°κ²°ν•˜μ—¬ νŠΉμ • ν”„λ‘œμ„ΈμŠ€μ— λŒ€ν•œ 정보λ₯Ό 검색
  • pgrep
    • ν˜•μ‹ : pgrep [option] [pattern]
    • μ§€μ •ν•œ νŒ¨ν„΄κ³Ό μΌμΉ˜ν•˜λŠ” ν”„λ‘œμ„ΈμŠ€μ˜ 정보λ₯Ό 좜λ ₯
    • μ˜΅μ…˜
      • -x : νŒ¨ν„΄κ³Ό μ •ν™•νžˆ μΌμΉ˜ν•˜λŠ” ν”„λ‘œμ„ΈμŠ€μ˜ 정보λ₯Ό 좜λ ₯
      • -n : νŒ¨ν„΄μ„ ν¬ν•¨ν•˜κ³  μžˆλŠ” κ°€μž₯ 졜근 ν”„λ‘œμ„ΈμŠ€μ˜ 정보λ₯Ό 좜λ ₯
      • -u user_name : νŠΉμ • μ‚¬μš©μžμ— λŒ€ν•œ λͺ¨λ“  ν”„λ‘œμ„ΈμŠ€λ₯Ό 좜λ ₯
      • -l : PID와 ν”„λ‘œμ„ΈμŠ€ 이름 좜λ ₯
      • -t term : νŠΉμ • 단말기와 κ΄€λ ¨λœ ν”„λ‘œμ„ΈμŠ€μ˜ 정보 좜λ ₯
    • 더 μžμ„Έν•œ 정보λ₯Ό κ²€μƒ‰ν•˜λ €λ©΄ pgrep 을 ps 와 μ—°κ²°ν•΄μ„œ μ‚¬μš©
      • ps -fp $(pgrep -x bash)
      • ps -fp $(pgrep -u user1 bash)

πŸ€” ν”„λ‘œμ„ΈμŠ€ μ’…λ£Œ

  • ν”„λ‘œμ„ΈμŠ€ κ°•μ œ μ’…λ£Œ μ‹œ ν•΄λ‹Ή ν”„λ‘œμ„ΈμŠ€μ˜ PIDλ₯Ό μ•Œμ•„μ•Ό 함
    • ps -ef 와 ps aux
  • ν”„λ‘œμ„ΈμŠ€ μ’…λ£Œ μ‹œ kill, pkill μ‚¬μš©
    • ν”„λ‘œμ„ΈμŠ€μ— μ‹œκ·Έλ„μ„ 보내 ν”„λ‘œμ„ΈμŠ€λ₯Ό μ’…λ£Œν•¨
    • μ‹œκ·Έλ„(signal) : ν”„λ‘œμ„ΈμŠ€μ— 무언가 λ°œμƒν–ˆμŒμ„ μ•Œλ¦¬λŠ” κ°„λ‹¨ν•œ λ©”μ‹œμ§€
      μ‹œκ·Έλ„ 번호 κΈ°λ³Έ 처리 의미
      SIGHUP 1 μ’…λ£Œ 터미널과 연결이 λŠκ²Όμ„ λ•Œ λ°œμƒ
      SIGINT 2 μ’…λ£Œ μΈν„°λŸ½νŠΈλ‘œ μ‚¬μš©μžκ°€ ^c λ₯Ό μž…λ ₯ν•˜λ©΄ λ°œμƒ
      SIGQUIT 3 μ’…λ£Œ, 코어덀프 μ’…λ£Œ μ‹ ν˜Έλ‘œ μ‚¬μš©μžκ°€ ^\ λ₯Ό μž…λ ₯ν•˜λ©΄ λ°œμƒ
      SIGKILL 9 μ’…λ£Œ 이 μ‹œκ·Έλ„μ„ 받은 ν”„λ‘œμ„ΈμŠ€λŠ” λ¬΄μ‹œν•  수 μ—†μœΌλ©° κ°•μ œλ‘œ μ’…λ£Œλ¨
      SIGALRM 14 μ’…λ£Œ μ•ŒλžŒμ— μ˜ν•΄ λ°œμƒ
      SIGTERM 15 μ’…λ£Œ kill λͺ…령이 λ³΄λ‚΄λŠ” κΈ°λ³Έ μ‹œκ·Έλ„
  • kill
    • ν˜•μ‹ : kill [-signal] PID...
    • μ§€μ •ν•œ μ‹œκ·Έλ„μ„ ν”„λ‘œμ„ΈμŠ€μ—κ²Œ 보냄
    • μ‹œκ·Έλ„
      • 2 : μΈν„°λŸ½νŠΈ μ‹œκ·Έλ„μ„ 보냄(^c)
      • 9 : ν”„λ‘œμ„ΈμŠ€λ₯Ό κ°•μ œλ‘œ μ’…λ£Œν•¨
        • κ°•μ œ μ’…λ£Œ μ‹œκ·Έλ„μ΄μ§€λ§Œ, μ’€λΉ„ ν”„λ‘œμ„ΈμŠ€μ˜ 경우 μ‹œκ·Έλ„μ„ 받아도 μ’…λ£Œλ˜μ§€ μ•Šμ„ 수 있음
      • 15 : ν”„λ‘œμ„ΈμŠ€μ™€ κ΄€λ ¨λœ νŒŒμΌλ“€μ„ μ •λ¦¬ν•˜κ³  μ’…λ£Œν•¨. μ’…λ£Œλ˜μ§€ μ•ŠλŠ” ν”„λ‘œμ„ΈμŠ€κ°€ μžˆμ„ 수 있음
        • 일반적으둜 ν”„λ‘œμ„ΈμŠ€ μ’…λ£Œμ΄μ§€λ§Œ, μ‹œκ·Έλ„μ„ λ¬΄μ‹œν•˜κ±°λ‚˜ λ‹€λ₯Έ λ™μž‘μ„ ν•˜λ„λ‘ μ§€μ •λ˜μ–΄ μžˆλ‹€λ©΄ ν”„λ‘œμ„ΈμŠ€κ°€ μ’…λ£Œλ˜μ§€ μ•Šμ„ 수 있음
    • μ‹œκ·Έλ„μ„ μ§€μ •ν•˜μ§€ μ•Šμ„ 경우 15번 μ‹œκ·Έλ„λ‘œ 간주함
  • pkill
    • pkill 은 kill κ³Ό λ§ˆμ°¬κ°€μ§€λ‘œ μ‹œκ·Έλ„μ„ λ³΄λ‚΄μ§€λ§Œ, PIDκ°€ μ•„λ‹Œ ν”„λ‘œμ„ΈμŠ€μ˜ λͺ…λ Ή 이름(CMD)으둜 ν”„λ‘œμ„ΈμŠ€λ₯Ό μ°Ύμ•„ μ’…λ£Œν•¨
    • λͺ…λ Ή μ΄λ¦„μœΌλ‘œ μ°Ύμ•„ μ’…λ£Œν•˜κΈ°μ— 같은 λͺ…령이 μ—¬λŸ¬ 개 검색될 경우 ν•œ λ²ˆμ— λͺ¨λ‘ μ’…λ£Œν•¨
  • killall
    • killall 도 pkill 처럼 ν”„λ‘œμ„ΈμŠ€μ˜ λͺ…λ Ή 이름(CMD)으둜 ν”„λ‘œμ„ΈμŠ€λ₯Ό μ°Ύμ•„ μ’…λ£Œν•¨
    • ν•΄λ‹Ή λͺ…λ Ή μ΄λ¦„μœΌλ‘œ μ‹€ν–‰ 쀑인 λͺ¨λ“  ν”„λ‘œμ„ΈμŠ€λ₯Ό ν•œ λ²ˆμ— μ’…λ£Œ

πŸ€” ν”„λ‘œμ„ΈμŠ€ 관리 도ꡬ

  • top

    • ν˜„μž¬ μ‹€ν–‰ 쀑인 ν”„λ‘œμ„ΈμŠ€μ˜ 정보λ₯Ό 주기적으둜 좜λ ₯
      • ν”„λ‘œμ„ΈμŠ€μ˜ μžμ„Έν•œ μš”μ•½ 정보λ₯Ό 상단에 좜λ ₯
      • 각 ν”„λ‘œμ„ΈμŠ€μ˜ 정보λ₯Ό ν•˜λ‹¨μ— 좜λ ₯
    • 좜λ ₯ 정보
      ν•­λͺ© 의미
      PID ν”„λ‘œμ„ΈμŠ€ ID
      USER μ‚¬μš©μž 계정
      PR μš°μ„ μˆœμœ„
      NI Nice κ°’
      VIRT ν”„λ‘œμ„ΈμŠ€κ°€ μ‚¬μš©ν•˜λŠ” 가상 λ©”λͺ¨λ¦¬μ˜ 크기
      RES ν”„λ‘œμ„ΈμŠ€κ°€ μ‚¬μš©ν•˜λŠ” λ©”λͺ¨λ¦¬μ˜ 크기
      SHR ν”„λ‘œμ„ΈμŠ€κ°€ μ‚¬μš©ν•˜λŠ” 곡유 λ©”λͺ¨λ¦¬μ˜ 크기
      %CPU νΌμ„ΌνŠΈλ‘œ ν‘œμ‹œν•œ CPU μ‚¬μš©λŸ‰
      %MEM νΌμ„ΌνŠΈλ‘œ ν‘œμ‹œν•œ λ©”λͺ¨λ¦¬ μ‚¬μš©λŸ‰
      TIME+ CPU λˆ„μ  이용 μ‹œκ°„
      COMMAND λͺ…λ Ή 이름
    • λ‚΄λΆ€ λͺ…λ Ή
      λ‚΄λΆ€ λͺ…λ Ή κΈ°λŠ₯
      Enter, Space Bar 화면을 μ¦‰μ‹œ λ‹€μ‹œ 좜λ ₯
      h, ? 도움말 ν™”λ©΄ 좜λ ₯
      k ν”„λ‘œμ„ΈμŠ€ μ’…λ£Œ, μ’…λ£Œν•  ν”„λ‘œμ„ΈμŠ€μ˜ PID 질의
      n 좜λ ₯ν•˜λŠ” ν”„λ‘œμ„ΈμŠ€μ˜ 개수λ₯Ό λ°”κΏˆ
      u μ‚¬μš©μžμ— 따라 μ •λ ¬ν•˜μ—¬ 좜λ ₯
      M μ‚¬μš©ν•˜λŠ” λ©”λͺ¨λ¦¬ 크기에 따라 μ •λ ¬ν•˜μ—¬ 좜λ ₯
      p CPU μ‚¬μš©λŸ‰μ— 따라 μ •λ ¬ν•˜μ—¬ 좜λ ₯
      q top λͺ…λ Ή μ’…λ£Œ
  • μ‹œμŠ€ν…œ κ°μ‹œ

    • μš°λΆ„νˆ¬μ˜ GUI인 κ·Έλ†ˆμ—μ„œ 기본으둜 μ œκ³΅ν•˜λŠ” 도ꡬ 쀑 μ‹œμŠ€ν…œ κ°μ‹œ
      • ν”„λ‘œμ„ΈμŠ€ 이름, μ‚¬μš©μž, CPU μ‚¬μš©λŸ‰, λ©”λͺ¨λ¦¬ μ‚¬μš©λŸ‰ λ“±μ˜ 정보λ₯Ό λ³΄μ—¬μ€Œ
      • μ‹œμŠ€ν…œμ΄λ‚˜ 파일 μ‹œμŠ€ν…œ κ΄€λ ¨ 정보도 확인 κ°€λŠ₯

πŸ‘€ ν¬κ·ΈλΌμš΄λ“œοΉ’λ°±κ·ΈλΌμš΄λ“œ ν”„λ‘œμ„ΈμŠ€μ™€ μž‘μ—… μ œμ–΄

πŸ€” ν¬κ·ΈλΌμš΄λ“œ μž‘μ—…κ³Ό λ°±κ·ΈλΌμš΄λ“œ μž‘μ—…

  • μž‘μ—… μ œμ–΄(job control) 도ꡬ : ν•œ ν„°λ―Έλ„μ—μ„œ λ™μ‹œμ— μ—¬λŸ¬ ν”„λ‘œμ„ΈμŠ€λ₯Ό μ‹€ν–‰ν•˜κ³  κ΄€λ¦¬ν•˜κΈ° μœ„ν•΄ 개발됨
    • ν¬κ·ΈλΌμš΄λ“œ(foreground) μž‘μ—…
      • μ‚¬μš©μžκ°€ μž…λ ₯ν•œ λͺ…령이 μ‹€ν–‰λ˜μ–΄ κ²°κ³Όκ°€ 좜λ ₯될 λ•ŒκΉŒμ§€ κΈ°λ‹€λ¦¬λŠ” λ°©μ‹μœΌλ‘œ μ²˜λ¦¬λ˜λŠ” ν”„λ‘œμ„ΈμŠ€λ₯Ό ν¬κ·ΈλΌμš΄λ“œ ν”„λ‘œμ„ΈμŠ€λΌκ³  ν•˜λ©°, μž‘μ—… μ œμ–΄μ—μ„œλŠ” 이λ₯Ό ν¬κ·ΈλΌμš΄λ“œ μž‘μ—…μ΄λΌκ³  함
      • 일반적으둜 μ‚¬μš©μžκ°€ λͺ…령을 μ‹€ν–‰ν•˜λŠ” λ°©μ‹μœΌλ‘œ, ν”„λ‘¬ν”„νŠΈκ°€ 좜λ ₯λ˜μ§€ μ•Šμ•„ λ‹€λ₯Έ λͺ…령을 μž…λ ₯ν•  수 μ—†μœΌλ―€λ‘œ κΈ°λ‹€λ €μ•Ό 함
    • λ°±κ·ΈλΌμš΄λ“œ(background) μž‘μ—…
      • λ°±κ·ΈλΌμš΄λ“œ λ°©μ‹μœΌλ‘œ λͺ…령을 μ‹€ν–‰ν•˜λ©΄ λͺ…λ Ήμ˜ μ²˜λ¦¬κ°€ λλ‚˜λŠ” 것과 관계없이 κ³§λ°”λ‘œ ν”„λ‘¬ν”„νŠΈκ°€ 좜λ ₯λ˜μ–΄ μ‚¬μš©μžκ°€ λ‹€λ₯Έ μž‘μ—…μ„ 계속할 수 있음
      • λ°±κ·ΈλΌμš΄λ“œ λ°©μ‹μœΌλ‘œ μ²˜λ¦¬λ˜λŠ” ν”„λ‘œμ„ΈμŠ€λ₯Ό λ°±κ·ΈλΌμš΄λ“œ ν”„λ‘œμ„ΈμŠ€λΌκ³  ν•˜λ©°, μž‘μ—… μ œμ–΄μ—μ„œλŠ” 이λ₯Ό λ°±κ·ΈλΌμš΄λ“œ μž‘μ—…μ΄λΌκ³  함
      • λͺ…λ Ήμ˜ λ§ˆμ§€λ§‰μ— & 기호λ₯Ό μΆ”κ°€ν•˜λ©΄ λ°±κ·ΈλΌμš΄λ“œλ‘œ μ‹€ν–‰ν•  수 있음
      • λ°±κ·ΈλΌμš΄λ“œ μž‘μ—…μ˜ 싀행이 λλ‚˜λ©΄ 기쑴의 μž‘μ—… ν™”λ©΄κ³Ό λ°±κ·ΈλΌμš΄λ“œ μž‘μ—… κ²°κ³Όκ°€ λ’€μ„žμΈ 채 터미널 화면에 좜λ ₯됨
        • find / -name passwd > pw.dat 2>&1 & -> pw.dat 에 결과와 였λ₯˜ μ €μž₯
          • 좜λ ₯κ³Ό 였λ₯˜ λ°©ν–₯을 μ „ν™˜ν•˜κ³ , μ‹€ν–‰ 결과와 였λ₯˜ λ©”μ‹œμ§€λŠ” 파일둜 μ €μž₯ν•˜λŠ” 방법

πŸ€” μž‘μ—… μ œμ–΄

  • μž‘μ—… μ œμ–΄

    • μž‘μ—… μ „ν™˜ : ν¬κ·ΈλΌμš΄λ“œ μž‘μ—…μ„ λ°±κ·ΈλΌμš΄λ“œ μž‘μ—…μœΌλ‘œ μ „ν™˜, λ°±κ·ΈλΌμš΄λ“œ μž‘μ—…μ„ ν¬κ·ΈλΌμš΄λ“œ μž‘μ—…μœΌλ‘œ μ „ν™˜
    • μž‘μ—… μΌμ‹œ 쀑지
    • μž‘μ—… μ’…λ£Œ
  • jobs

    • ν˜•μ‹ : jobs [%job number]
    • λ°±κ·ΈλΌμš΄λ“œ μž‘μ—…μ„ λͺ¨λ‘ λ³΄μ—¬μ€Œ
    • νŠΉμ • μž‘μ—… 번호λ₯Ό μ§€μ •ν•˜λ©΄ ν•΄λ‹Ή μž‘μ—…μ˜ μ •λ³΄λ§Œ λ³΄μ—¬μ€Œ
    • %job number
      • %번호 : ν•΄λ‹Ή 번호의 μž‘μ—… 정보λ₯Ό 좜λ ₯
      • %+ or %% : μž‘μ—… μˆœμ„œκ°€ +인 μž‘μ—… 정보 좜λ ₯
      • %- : μž‘μ—… μˆœμ„œκ°€ -인 μž‘μ—… 정보 좜λ ₯
    • 좜λ ₯ 정보
      ν•­λͺ© 좜λ ₯ 예 의미
      μž‘μ—… 번호 [1] μž‘μ—… λ²ˆν˜Έλ‘œμ„œ λ°±κ·ΈλΌμš΄λ“œλ‘œ μ‹€ν–‰ν•  λ•Œλ§ˆλ‹€ 순차적으둜 증가
      μž‘μ—… μˆœμ„œ + μž‘μ—… μˆœμ„œ ν‘œμ‹œ
      + : κ°€μž₯ μ΅œκ·Όμ— μ ‘κ·Όν•œ μž‘μ—…
      - : + μž‘μ—… λ°”λ‘œ 전에 μ ‘κ·Όν•œ μž‘μ—…
      곡백 : κ·Έ μ™Έμ˜ μž‘μ—…
      μƒνƒœ 싀행쀑 μž‘μ—… μƒνƒœ ν‘œμ‹œ
      λͺ…λ Ή sleep 100 & λ°±κ·ΈλΌμš΄λ“œλ‘œ μ‹€ν–‰ 쀑인 λͺ…λ Ή
  • μž‘μ—… μ „ν™˜ν•˜κΈ°

    • μž‘μ—… μ „ν™˜ λͺ…λ Ή

      λͺ…λ Ή κΈ°λŠ₯
      ^z or stop %job number ν¬κ·ΈλΌμš΄λ“œ μž‘μ—…μ„ 쀑지함(μ’…λ£Œκ°€ μ•„λ‹Œ μž μ‹œ 쀑단)
      bg %job number μž‘μ—… λ²ˆν˜Έκ°€ μ§€μ‹œν•˜λŠ” μž‘μ—…μ„ λ°±κ·ΈλΌμš΄λ“œ μž‘μ—…μœΌλ‘œ μ „ν™˜
      fg %job number μž‘μ—… λ²ˆν˜Έκ°€ μ§€μ‹œν•˜λŠ” μž‘μ—…μ„ ν¬κ·ΈλΌμš΄λ“œ μž‘μ—…μœΌλ‘œ μ „ν™˜
      • μž‘μ—… 번호λ₯Ό μ§€μ •ν•˜μ§€ μ•Šκ³  bg ν˜Ήμ€ fg λ₯Ό μ‚¬μš©ν•˜λ©΄ μž‘μ—… μˆœμ„œκ°€ +인 μž‘μ—…μ— 적용됨
  • μž‘μ—… μ’…λ£Œν•˜κΈ°

    • ν¬κ·ΈλΌμš΄λ“œ μž‘μ—…
      • ^c : μΈν„°λŸ½νŠΈ μ‹œκ·Έλ„μ„ ν¬κ·ΈλΌμš΄λ“œ ν”„λ‘œμ„ΈμŠ€μ— 전달
      • λ‹€λ₯Έ ν„°λ―Έλ„μ—μ„œ ν•΄λ‹Ή ν”„λ‘œμ„ΈμŠ€μ΄ PIDλ₯Ό μ°Ύμ•„ κ°•μ œλ‘œ μ’…λ£Œ
    • λ°±κ·ΈλΌμš΄λ“œ μž‘μ—…
      • kill λͺ…λ ΉμœΌλ‘œ κ°•μ œ μ’…λ£Œ
        • PID λŒ€μ‹  %job number 지정 κ°€λŠ₯
  • nohup

    • ν˜•μ‹ : nohup command &
    • λ‘œκ·Έμ•„μ›ƒν•œ 후에도 λ°±κ·ΈλΌμš΄λ“œ μž‘μ—…μ„ 계속 싀행함
    • λ°˜λ“œμ‹œ λ°±κ·ΈλΌμš΄λ“œλ‘œ μ‹€ν–‰ν•΄μ•Ό 함
    • λ³„λ„λ‘œ 좜λ ₯ λ°©ν–₯ μ „ν™˜μ„ ν•˜μ§€ μ•ŠμœΌλ©΄ λͺ…λ Ήμ˜ μ‹€ν–‰ 결과와 였λ₯˜ λ©”μ‹œμ§€κ°€ ν˜„μž¬ 디렉터리에 nohup.out 파일둜 μžλ™ μ €μž₯됨

πŸ‘€ μž‘μ—… μ˜ˆμ•½

πŸ€” 정해진 μ‹œκ°„μ— ν•œ 번 μ‹€ν–‰

  • at
    • ν˜•μ‹ : at [option] [time]
    • μ˜ˆμ•½ν•œ λͺ…령을 정해진 μ‹œκ°„μ— μ‹€ν–‰
    • μ˜΅μ…˜
      • -l : ν˜„μž¬ μ‹€ν–‰ λŒ€κΈ° 쀑인 λͺ…λ Ήμ˜ 전체 λͺ©λ‘μ„ 좜λ ₯함
        • atq : ν˜„μž¬ μ‚¬μš©μžμ˜ λ“±λ‘λœ μž‘μ—… λͺ©λ‘μ„ 보여주며 μŠˆνΌμœ μ €μΌ 경우 λͺ¨λ“  μ‚¬μš©μžμ˜ μž‘μ—… λͺ©λ‘μ„ λ³΄μ—¬μ€Œ
      • -r job number : ν˜„μž¬ μ‹€ν–‰ λŒ€κΈ° 쀑인 λͺ…λ Ή 쀑 ν•΄λ‹Ή μž‘μ—… 번호λ₯Ό μ‚­μ œ
        • atrm : μ§€μ •λœ μž‘μ—… 번호의 μž‘μ—…μ„ μ‚­μ œ
      • -m : 좜λ ₯ κ²°κ³Όκ°€ 없더라도 μž‘μ—…μ΄ μ™„λ£Œλ˜λ©΄ μ‚¬μš©μžμ—κ²Œ λ©”μΌλ‘œ μ•Œλ €μ€Œ
      • -f file : ν‘œμ€€ μž…λ ₯ λŒ€μ‹  μ‹€ν–‰ν•  λͺ…령을 파일둜 지정
    • λͺ…λ Ή μ„€μ •
      • at 뒀에 μ‹œκ°„ λͺ…μ‹œ -> ν”„λ‘¬ν”„νŠΈκ°€ at> 으둜 λ°”λ€Œλ©° μž‘μ—… μ˜ˆμ•½ κ°€λŠ₯
        • μ‹€ν–‰ λͺ…령은 기본적으둜 ν‘œμ€€ μž…λ ₯으둜 지정
        • λͺ…λ Ήμ˜ μž…λ ₯ 마칠 μ‹œ ^d
      • μ‹œκ°„ 지정 μ‹œ HH:MM ν˜•νƒœλΏλ§Œ μ•„λ‹ˆλΌ HHMM ν˜•νƒœλ„ μ§€μ›ν•˜λ©° today, tomorrow, hours, days, weeks와 같이 지정 κ°€λŠ₯
        • at 4pm + 3 days : μ§€κΈˆλΆ€ν„° 3일 ν›„ μ˜€ν›„ 4μ‹œμ— μž‘μ—… μˆ˜ν–‰
        • at 10am Jul 31 : 7μ›” 31일 μ˜€μ „ 10μ‹œμ— μž‘μ—… μˆ˜ν–‰
        • at 1am tomorrow : 내일 μ˜€μ „ 1μ‹œμ— μž‘μ—… μˆ˜ν–‰
        • at 10:00am today : 였늘 μ˜€μ „ 10μ‹œμ— μž‘μ—… μˆ˜ν–‰
      • μ„€μ • μž‘μ—… κ²°κ³ΌλŠ” μ§€μ •λœ νŒŒμΌμ— μ €μž₯됨
        • ν‘œμ€€ 좜λ ₯을 파일둜 μ „ν™˜ν•˜μ§€ μ•ŠμœΌλ©΄ λ©”μΌλ‘œ 전달됨
    • μž‘μ—… 파일 확인
      • at 으둜 μƒμ„±λœ μž‘μ—… νŒŒμΌμ€ /var/spool/cron/atjobs 디렉터리에 μ €μž₯됨
        • μž‘μ—… 번호둜 파일이 생성됨
        • ν•΄λ‹Ή 디렉터리 λ‚΄μš©μ€ daemon 그룹의 μ‚¬μš©μžλ§Œ 확인할 수 μžˆμœΌλ―€λ‘œ sudo μ‚¬μš©
      • sudo
        • root κ³„μ •μœΌλ‘œ μ‹€ν–‰ κ°€λŠ₯ν•œ λͺ…령을 일반 μ‚¬μš©μžκ°€ μ‹€ν–‰ν•  수 μžˆλ„λ‘ ν•΄μ€Œ
          • λͺ…λ Ή μ‚¬μš© μ‹œ root κ³„μ •μ˜ μ•”ν˜Έκ°€ μ•„λ‹Œ λͺ…령을 μ‹€ν–‰ν•œ κ³„μ •μ˜ μ•”ν˜Έλ₯Ό μž…λ ₯함
        • μ‚¬μš©μžκ°€ sudo λ₯Ό μ‚¬μš©ν•  수 μžˆλ„λ‘ /etc/sudoers νŒŒμΌμ— μ €μž₯λ˜μ–΄ μžˆμ–΄μ•Ό 함
    • λͺ…λ Ή μ‚¬μš© μ œν•œ
      • /etc/at.allow : λͺ…λ Ή μ‚¬μš© ν—ˆμš© μ‚¬μš©μž 지정 파일
        • ν•„μš” μ‹œ κ΄€λ¦¬μžκ°€ 생성해야 함
      • /etc/at.deny : λͺ…λ Ή μ‚¬μš© κΈˆμ§€ μ‚¬μš©μž 지정 파일
        • 기본적으둜 있음
      • 두 νŒŒμΌμ—λŠ” μ‚¬μš©μž 이름을 ν•œ 쀄에 ν•˜λ‚˜μ”©λ§Œ μž…λ ₯ν•΄μ•Ό 함
      • 적용 κΈ°μ€€
        • /etc/at.allow 쑴재 μ‹œ ν•΄λ‹Ή νŒŒμΌμ— μ§€μ •λœ μ‚¬μš©μžλ§Œ λͺ…λ Ή μ‚¬μš© κ°€λŠ₯
          • 이 경우 /etc/at.deny λŠ” λ¬΄μ‹œλ¨
        • /etc/at.allow 없을 μ‹œ /etc/at.deny 에 μ§€μ •λœ μ‚¬μš©λ₯Ό μ œμ™Έν•œ λͺ¨λ“  μ‚¬μš©μžκ°€ λͺ…λ Ή μ‚¬μš© κ°€λŠ₯
        • 두 파일 없을 μ‹œ root만 λͺ…λ Ή μ‚¬μš© κ°€λŠ₯
        • μ‚¬μš©μžκ°€ 두 파일 λͺ¨λ‘ 속해 μžˆλ‹€λ©΄ λͺ…λ Ή μ‚¬μš© κ°€λŠ₯
          • /etc/at.allow 적용
        • /etc/at.deny λ₯Ό 빈 파일둜 두면 λͺ¨λ“  μ‚¬μš©μžκ°€ λͺ…λ Ή μ‚¬μš© κ°€λŠ₯
          • 초기 μ„€μ •

πŸ€” 정해진 μ‹œκ°„μ— 반볡 μ‹€ν–‰

  • crontab

    • ν˜•μ‹ : crontab [-u user_ID] [option] [file_name]

    • μ‚¬μš©μžμ˜ crontab νŒŒμΌμ„ 관리함

    • μ˜΅μ…˜

      • -e : μ‚¬μš©μžμ˜ crontab νŒŒμΌμ„ νŽΈμ§‘
        • crontab νŽΈμ§‘κΈ°λ‘œλŠ” 기본적으둜 VISUAL or EDITOR ν™˜κ²½ λ³€μˆ˜μ— μ§€μ •λœ νŽΈμ§‘κΈ° μ‚¬μš©
        • ν•΄λ‹Ή μ˜΅μ…˜μœΌλ‘œ νŽΈμ§‘ν•œ 파일 μ €μž₯ μ‹œ μžλ™μœΌλ‘œ /var/spool/cron/crontabs 디렉터리에 μ‚¬μš©μž μ΄λ¦„μœΌλ‘œ 생성됨
          • ν•΄λ‹Ή λ””λ ‰ν„°λ¦¬λŠ” 일반 μ‚¬μš©μžκ°€ μ ‘κ·Ό λΆˆκ°€ν•˜λ©° μ‹œμŠ€ν…œ κ΄€λ¦¬μžλ§Œ μ ‘κ·Ό κ°€λŠ₯
      • -l : crontab 파일의 λͺ©λ‘ 좜λ ₯
      • -r : crontab 파일 μ‚­μ œ
        • μ‹œμŠ€ν…œ κ΄€λ¦¬μžκ°€ νŠΉμ • μ‚¬μš©μžμ˜ crontab을 μ‚­μ œν•  μ‹œ crontab -u user1 -r κ³Ό 같이 μ‚­μ œν•˜λ €λŠ” μ‚¬μš©μž IDλ₯Ό 지정함
    • 파일 ν˜•μ‹

      • crontab νŒŒμΌμ—λŠ” μ—¬λŸ¬ 개의 μž‘μ—…μ„ μ €μž₯ν•  수 있으며 ν•œ 행에 ν•˜λ‚˜μ˜ μž‘μ—…μ„ 섀정함

      • ν•œ ν–‰μ˜ μ—¬μ„― ν•­λͺ©

        λΆ„(0~59) μ‹œ(0~23) 일(1~31) μ›”(1~12) μš”μΌ(0~6) μž‘μ—… λ‚΄μš©
        • 각 ν•­λͺ© 곡백문자 ꡬ뢄
        • * μ‚¬μš© μ‹œ ν•΄λ‹Ή ν•­λͺ©μ˜ λͺ¨λ“  값을 μ˜λ―Έν•¨
    • λͺ…λ Ή μ‚¬μš© μ œν•œ

      • /etc/cron.allow : λͺ…λ Ή μ‚¬μš© ν—ˆμš© μ‚¬μš©μž 지정 파일
        • ν•„μš” μ‹œ κ΄€λ¦¬μžκ°€ 생성해야 함
      • /etc/cron.deny : λͺ…λ Ή μ‚¬μš© κΈˆμ§€ μ‚¬μš©μž 지정 파일
        • ν•„μš” μ‹œ κ΄€λ¦¬μžκ°€ 생성해야 함
      • 두 νŒŒμΌμ—λŠ” μ‚¬μš©μž 이름을 ν•œ 쀄에 ν•˜λ‚˜μ”©λ§Œ μž…λ ₯ν•΄μ•Ό 함
      • 적용 κΈ°μ€€
        • /etc/cron.allow 쑴재 μ‹œ 이 νŒŒμΌμ— μ§€μ •λœ μ‚¬μš©μžλ§Œ λͺ…λ Ή μ‚¬μš© κ°€λŠ₯
        • /etc/cron.allow μ—†κ³  /etc/cron.deny 쑴재 μ‹œ 이 νŒŒμΌμ— μ‚¬μš©μž 계정이 μ—†μ–΄μ•Ό λͺ…λ Ή μ‚¬μš© κ°€λŠ₯
        • 두 파일 λͺ¨λ‘ 없을 μ‹œ μ‹œμŠ€ν…œ 섀정에 따라 μ‹œμŠ€ν…œ κ΄€λ¦¬μžλ§Œ λͺ…령을 μ‚¬μš©ν•  μˆ˜λ„, λͺ¨λ“  μ‚¬μš©μžκ°€ μ‚¬μš©ν•  μˆ˜λ„ 있음
        • 두 파일이 λͺ¨λ‘ 쑴재 μ‹œ /etc/cron.allow 적용되며, /etc/cron.deny λ¬΄μ‹œ

πŸ‘‰πŸ» [Chapter 07] 파일 μ‹œμŠ€ν…œκ³Ό λ””μŠ€ν¬ 관리

πŸ‘€ λ¦¬λˆ…μŠ€ 파일 μ‹œμŠ€ν…œ μ’…λ₯˜

πŸ€” λ¦¬λˆ…μŠ€ 고유의 λ””μŠ€ν¬ 기반 파일 μ‹œμŠ€ν…œ

  • μ΄ˆκΈ°μ— λ―Έλ‹‰μŠ€μ˜ 파일 μ‹œμŠ€ν…œ(MFS; Minix File System) 을 μ΄μš©ν–ˆμœΌλ‚˜ 곧 ext 파일 μ‹œμŠ€ν…œ 으둜 μ•Œλ €μ§„ λ¦¬λˆ…μŠ€ 고유의 파일 μ‹œμŠ€ν…œμ„ λ§Œλ“€μ–΄ μ‚¬μš©
  • ext(ext1)
    • 레미 μΉ΄λ“œκ°€ 개발
    • ext; Extended File System
      • Extfs 라고도 ν•˜λ©° MFS κΈ°λŠ₯을 ν™•μž₯ν–ˆλ‹€λŠ” μ˜λ―Έκ°€ 있음
    • MFS
      • 16λΉ„νŠΈ μ£Όμ†Œ 체계 μ‚¬μš©
      • 파일 μ‹œμŠ€ν…œμ˜ μ΅œλŒ€ 크기 : 64MB
      • 파일 μ΄λ¦„μ˜ 길이 : 14B
      • ext 파일 μ‹œμŠ€ν…œμ˜ μ΅œλŒ€ 크기 : 2GB
      • ext 파일 μ΄λ¦„μ˜ 길이 : 255B
    • inode의 μˆ˜μ •κ³Ό λ°μ΄ν„°μ˜ μˆ˜μ • μ‹œκ°„ 지원이 λ˜μ§€ μ•ŠμŒ
    • λ§ν¬λ“œ 리슀트둜 파일 μ‹œμŠ€ν…œμ„ κ΅¬μ„±ν•˜μ—¬ 파일 μ‹œμŠ€ν…œμ΄ λ³΅μž‘ν•΄μ§€κ³  νŒŒνŽΈν™”λ˜λŠ” 문제 μ•ΌκΈ°
  • ext2; Second Extended File System(Ext2fs)
    • 레미 μΉ΄λ“œκ°€ 개발
    • ext 파일 μ‹œμŠ€ν…œ 기반으둜 ν™•μž₯μ„± κ³ λ €ν•˜μ—¬ λ§Œλ“€μ–΄μ§
    • 파일 μ‹œμŠ€ν…œμ˜ μ΅œλŒ€ 크기가 이둠적으둜 32TBκΉŒμ§€ 지원 κ°€λŠ₯
    • λΆ€νŒ… κ°€λŠ₯ν•œ USB ν”Œλž˜μ‹œ λ“œλΌμ΄λΈŒμ™€ 기타 SSD μž₯μΉ˜μ— μ‚¬μš©λ˜κ³  있음
  • ext3; Third Extended File System
    • μŠ€ν‹°λΈ νŠΈμœ„λ””κ°€ 개발
    • ext2 기반으둜 κ°œλ°œλ˜μ–΄ ν˜Έν™˜ κ°€λŠ₯
    • 저널링(journaling) κΈ°λŠ₯ λ„μž…
      • λ””μŠ€ν¬μ— κΈ°λ‘λ˜λŠ” λ°μ΄ν„°μ˜ 볡ꡬ κΈ°λŠ₯을 κ°•ν™”ν•œ 것
      • 데이터λ₯Ό λ””μŠ€ν¬μ— κΈ°λ‘ν•˜κΈ° 전에 λ¨Όμ € 저널에 μˆ˜μ • 사항을 기둝함
    • inode의 동적 ν• λ‹Ήμ΄λ‚˜ λ‹€μ–‘ν•œ 블둝 크기와 같은 μ΅œμ‹  파일 μ‹œμŠ€ν…œ κΈ°λŠ₯ λΆ€μ‘±
    • 온라인 쑰각 λͺ¨μŒ κΈ°λŠ₯ μ—†μŒ
    • 파일 μ‹œμŠ€ν…œμ˜ μ΅œλŒ€ 크기 : 블둝 크기에 따라 2~32TBκΉŒμ§€ 지원
  • ext4; Fourth Extended File System
    • 밍밍 카였, μ•ˆλ“œλ ˆ λ”œκ±°, μ•Œλ ‰μŠ€ μ£ΌλΌλΈ”λ ˆν”„, 데이브 ν΄λ ˆμ΄μΊ ν”„, ν…Œμ˜€λ„μ–΄ 츠였, 에릭 μƒŒλ”˜, μƒ˜ λ‚˜κ·Έμ‹œλ„€ 등이 개발
    • 1EB μ΄μƒμ˜ λ³Όλ₯¨κ³Ό 16TB μ΄μƒμ˜ νŒŒμΌμ„ μ§€μ›ν•˜λ©°, ext2 및 ext3 κ³Ό ν˜Έν™˜μ„± μœ μ§€
    • ext3 μ—μ„œλŠ” μ„œλΈŒ λ””λ ‰ν„°λ¦¬μ˜ μˆ˜κ°€ 32,000개둜 μ œν•œλ˜μ—ˆμœΌλ‚˜ ext4 μ—μ„œλŠ” 64,000개둜 λŠ˜μ–΄λ‚¬μœΌλ©°, 온라인 쑰각 λͺ¨μŒ κΈ°λŠ₯을 지원함
  • XFS; eXtended File System
    • μ‹€λ¦¬μ½˜ κ·Έλž˜ν”½μŠ€κ°€ κ°œλ°œν•œ κ³ μ„±λŠ₯ 저널링 파일 μ‹œμŠ€ν…œ
    • 64λΉ„νŠΈ 파일 μ‹œμŠ€ν…œμœΌλ‘œ μ΅œλŒ€ 16EBκΉŒμ§€ 지원

πŸ€” λ¦¬λˆ…μŠ€μ—μ„œ μ§€μ›ν•˜λŠ” λ‹€μ–‘ν•œ 파일 μ‹œμŠ€ν…œ

  • 기타 파일 μ‹œμŠ€ν…œ
    파일 μ‹œμŠ€ν…œ κΈ°λŠ₯
    msdos MS-DOS νŒŒν‹°μ…˜μ„ μ‚¬μš©ν•˜κΈ° μœ„ν•œ 파일 μ‹œμŠ€ν…œ
    iso9660 CD-ROM, DVD의 ν‘œμ€€ 파일 μ‹œμŠ€ν…œμ΄λ©° 읽기 μ „μš©μœΌλ‘œ μ‚¬μš©
    nfs Network File System으둜 원격 μ„œλ²„μ˜ λ””μŠ€ν¬λ₯Ό μ—°κ²°ν•  λ•Œ μ‚¬μš©
    ufs Unix File System으둜 μœ λ‹‰μŠ€μ˜ ν‘œμ€€ 파일 μ‹œμŠ€ν…œ
    vfat μœˆλ„ 95, 98, NTλ₯Ό μ§€μ›ν•˜κΈ° μœ„ν•œ 파일 μ‹œμŠ€ν…œ
    hpfs HPFSλ₯Ό μ§€μ›ν•˜κΈ° μœ„ν•œ 파일 μ‹œμŠ€ν…œ
    ntfs μœˆλ„μ˜ NTFSλ₯Ό μ§€μ›ν•˜κΈ° μœ„ν•œ 파일 μ‹œμŠ€ν…œ
    sysv μœ λ‹‰μŠ€ μ‹œμŠ€ν…œVλ₯Ό μ§€μ›ν•˜κΈ° μœ„ν•œ 파일 μ‹œμŠ€ν…œ
    hfs λ§₯ μ»΄ν“¨ν„°μ˜ hfs 파일 μ‹œμŠ€ν…œμ„ μ§€μ›ν•˜κΈ° μœ„ν•œ 파일 μ‹œμŠ€ν…œ

πŸ€” 특수 μš©λ„μ˜ 가상 파일 μ‹œμŠ€ν…œ

  • 가상 파일 μ‹œμŠ€ν…œ
    파일 μ‹œμŠ€ν…œ κΈ°λŠ₯
    swap μŠ€μ™‘ μ˜μ—­μ„ κ΄€λ¦¬ν•˜κΈ° μœ„ν•œ μŠ€μ™‘ 파일 μ‹œμŠ€ν…œ
    tmpfs Temporary File System으둜 λ©”λͺ¨λ¦¬μ— μž„μ‹œ νŒŒμΌμ„ μ €μž₯ν•˜κΈ° μœ„ν•œ 파일 μ‹œμŠ€ν…œμ΄λ©°, μ‹œμŠ€ν…œμ΄ μž¬μ‹œμž‘ν•  λ•Œλ§ˆλ‹€ κΈ°μ‘΄ λ‚΄μš©μ΄ 없어짐
    /tmp 디렉터리가 μ˜ˆμ‹œμž„
    proc proc 파일 μ‹œμŠ€ν…œμœΌλ‘œ /proc λ””λ ‰ν„°λ¦¬μž„
    μ»€λ„μ˜ ν˜„μž¬ μƒνƒœλ₯Ό λ‚˜νƒ€λ‚΄λŠ” νŒŒμΌμ„ 가짐
    ramfs λž¨λ””μŠ€ν¬λ₯Ό μ§€μ›ν•˜λŠ” 파일 μ‹œμŠ€ν…œ
    rootfs Root File System으둜 / λ””λ ‰ν„°λ¦¬μž„
    μ‹œμŠ€ν…œ μ΄ˆκΈ°ν™” 및 관리에 ν•„μš”ν•œ λ‚΄μš©μ„ 관리

πŸ€” ν˜„μž¬ μ‹œμŠ€ν…œμ΄ μ§€μ›ν•˜λŠ” 파일 μ‹œμŠ€ν…œ 확인

  • proc/filesystems : ν˜„μž¬ 컀널이 μ§€μ›ν•˜λŠ” 파일 μ‹œμŠ€ν…œμ˜ μ’…λ₯˜λ₯Ό μ•Œλ €μ€Œ
  • λ¦¬λˆ…μŠ€ 버전에 따라 λ‹€λ₯Ό 수 있음

πŸ‘€ λ¦¬λˆ…μŠ€ 파일 μ‹œμŠ€ν…œ ꡬ쑰

  • λ¦¬λˆ…μŠ€μ˜ λͺ¨λ“  파일 μ‹œμŠ€ν…œμ€ 기본적으둜 μœ λ‹‰μŠ€ μš΄μ˜μ²΄μ œμ—μ„œ 유래된 κ³΅ν†΅μ˜ κ°œλ…μ„ λ°”νƒ•μœΌλ‘œ κ΅¬ν˜„λ¨
    • νŒŒμΌμ€ inode둜 관리됨
    • λ””λ ‰ν„°λ¦¬λŠ” λ‹¨μˆœνžˆ 파일 λͺ©λ‘μ„ 가지고 μžˆλŠ” 파일일 λΏμž„
    • 특수 νŒŒμΌμ„ 톡해 μž₯μΉ˜μ— μ ‘κ·Ό κ°€λŠ₯

πŸ€” ext4 파일 μ‹œμŠ€ν…œμ˜ ꡬ쑰

  • ext4 파일 μ‹œμŠ€ν…œμ€ 효율적으둜 λ””μŠ€ν¬λ₯Ό μ‚¬μš©ν•˜κΈ° μœ„ν•΄ μ €μž₯ μž₯치λ₯Ό 논리적인 λΈ”λ‘μ˜ 집합(블둝 κ·Έλ£Ή)으둜 ꡬ뢄

    • 일반적인 λΈ”λ‘μ˜ ν¬κΈ°λŠ” 4KB, μ‹€μ œ ν¬κΈ°λŠ” μ‹œμŠ€ν…œμ˜ 섀정에 따라 λ‹€λ₯Ό 수 있음
    • 블둝 그룹의 κ°œμˆ˜λŠ” μž₯치의 크기λ₯Ό 블둝 그룹의 크기둜 λ‚˜λˆˆ κ°’
  • 블둝 κ·Έλ£Ή

    κ·Έλ£Ή 0 νŒ¨λ”© ext4 μŠˆνΌλΈ”λ‘ κ·Έλ£Ή λ””μŠ€ν¬λ¦½ν„° GDT μ˜ˆμ•½ 블둝 데이터 블둝 λΉ„νŠΈλ§΅ inode λΉ„νŠΈλ§΅ inode ν…Œμ΄λΈ” 데이터 블둝
    1,024B 1 블둝 n 블둝 n 블둝 1 블둝 1 블둝 n 블둝 n 블둝
    • 블둝 κ·Έλ£Ή 0 : 파일 μ‹œμŠ€ν…œμ˜ 첫 번째 블둝 그룹으둜 νŠΉλ³„ν•˜κ²Œ κ·Έλ£Ή 0 νŒ¨λ”©κ³Ό μŠˆνΌλΈ”λ‘, κ·Έλ£Ή λ””μŠ€ν¬λ¦½ν„°λ₯Ό κ°–κ³  있음
    ext4 μŠˆνΌλΈ”λ‘ κ·Έλ£Ή λ””μŠ€ν¬λ¦½ν„° GDT μ˜ˆμ•½ 블둝 데이터 블둝 λΉ„νŠΈλ§΅ inode λΉ„νŠΈλ§΅ inode ν…Œμ΄λΈ” 데이터 블둝
    1 블둝 n 블둝 n 블둝 1 블둝 1 블둝 n 블둝 n 블둝
    • 블둝 κ·Έλ£Ή a : 파일 μ‹œμŠ€ν…œμ—μ„œ 첫 번째 블둝 그룹이 μ•„λ‹Œ 블둝 그룹으둜 κ·Έλ£Ή 0 νŒ¨λ”©μ΄ μ—†μœΌλ‚˜ μŠˆνΌλΈ”λ‘κ³Ό κ·Έλ£Ή λ””μŠ€ν¬λ¦½ν„°μ˜ 볡사본을 κ°–κ³  있음
    데이터 블둝 λΉ„νŠΈλ§΅ inode λΉ„νŠΈλ§΅ inode ν…Œμ΄λΈ” 데이터 블둝
    1 블둝 1 블둝 n 블둝 n 블둝
    • 블둝 κ·Έλ£Ή b : 파일 μ‹œμŠ€ν…œμ—μ„œ 첫 번째 블둝 그룹이 μ•„λ‹Œ 블둝 그룹으둜 κ·Έλ£Ή 0 νŒ¨λ”©, μŠˆνΌλΈ”λ‘, κ·Έλ£Ή λ””μŠ€ν¬λ¦½ν„°κ°€ μ—†κ³  λ°”λ‘œ 데이터 블둝 λΉ„νŠΈλ§΅μœΌλ‘œ μ‹œμž‘ν•¨
  • κ·Έλ£Ή 0 νŒ¨λ”©

    • 블둝 κ·Έλ£Ή 0의 첫 1,024BλŠ” νŠΉλ³„ν•œ λͺ©μ μœΌλ‘œ μ‚¬μš©λ¨
      • x86 λΆ€νŠΈ 섹터와 λΆ€κ°€ 정보λ₯Ό μ €μž₯
  • μŠˆνΌλΈ”λ‘

    • 파일 μ‹œμŠ€ν…œκ³Ό κ΄€λ ¨λœ λ‹€μ–‘ν•œ 정보 μ €μž₯
      • 전체 inode의 개수
      • ν• λ‹Ήλ˜μ§€ μ•Šμ€ 블둝(free block) 의 개수
      • 첫 번째 데이터 λΈ”λ‘μ˜ μ£Όμ†Œ
      • κ·Έλ£Ήλ‹Ή λΈ”λ‘μ˜ 개수
      • 파일 μ‹œμŠ€ν…œμ˜ μƒνƒœ
      • 전체 λΈ”λ‘μ˜ 개수
      • ν• λ‹Ήλ˜μ§€ μ•Šμ€ inode(free inode) 의 개수
      • λΈ”λ‘μ˜ 크기
      • 마운트 μ‹œκ°„
      • κ·Έλ£Ή λ””μŠ€ν¬λ¦½ν„°μ˜ 크기
    • μŠˆνΌλΈ”λ‘ 문제 λ°œμƒ μ‹œ 전체 파일 μ‹œμŠ€ν…œ 이용 λΆˆκ°€
  • κ·Έλ£Ή λ””μŠ€ν¬λ¦½ν„°

    • κ·Έλ£Ή λ””μŠ€ν¬λ¦½ν„°μ— μ €μž₯λ˜λŠ” λ‹€μ–‘ν•œ 정보
      • 블둝 λΉ„νŠΈλ§΅μ˜ μ£Όμ†Œ
      • inode λΉ„νŠΈλ§΅μ˜ μ£Όμ†Œ
      • inode ν…Œμ΄λΈ”μ˜ μ£Όμ†Œ
      • ν• λ‹Ήλ˜μ§€ μ•Šμ€ λΈ”λ‘μ˜ 개수
      • ν• λ‹Ήλ˜μ§€ μ•Šμ€ inode의 개수
      • λ””λ ‰ν„°λ¦¬μ˜ 개수
      • 블둝 λΉ„νŠΈλ§΅, inode λΉ„νŠΈλ§΅ 체크섬
  • GDT μ˜ˆμ•½ 블둝 : κ·Έλ£Ή λ””μŠ€ν¬λ¦½ν„°μ˜ ν™•μž₯을 μœ„ν•œ μ˜ˆλΉ„ 곡간

  • 데이터 블둝 λΉ„νŠΈλ§΅ : 블둝 그룹에 ν¬ν•¨λœ 데이터 λΈ”λ‘μ˜ μ‚¬μš© μ—¬λΆ€λ₯Ό 확인

  • inode λΉ„νŠΈλ§΅ : inode ν…Œμ΄λΈ”μ˜ ν•­λͺ©μ΄ μ‚¬μš© 쀑인지λ₯Ό ν‘œμ‹œ

  • inode ν…Œμ΄λΈ” : 파일 정보 μ €μž₯

  • 데이터 블둝 : μ‹€μ œ 데이터 μ €μž₯

    • 일반 νŒŒμΌμ€ 데이터 블둝에 파일 λ‚΄μš©μ„ μ €μž₯
    • λ””λ ‰ν„°λ¦¬λŠ” 데이터 블둝에 ν•΄λ‹Ή 디렉터리에 μžˆλŠ” νŒŒμΌμ΄λ‚˜ μ„œλΈŒ λ””λ ‰ν„°λ¦¬μ˜ 정보(이름, inode)λ₯Ό μ €μž₯

πŸ€” inode ꡬ쑰

  • 파일 정보λ₯Ό μ €μž₯ν•˜λŠ” λΆ€λΆ„
    • 파일 μ’…λ₯˜, 파일 μ ‘κ·Ό κΆŒν•œ, 파일 크기, μ†Œμœ μž, μ ‘κ·Ό 및 μˆ˜μ • μ‹œκ°„ λ“±
    • μ‚¬μš©μžκ°€ ls -l 둜 ν™•μΈν•˜λŠ” 정보
  • μ‹€μ œ 파일 λ‚΄μš©μ΄ μ €μž₯된 데이터 λΈ”λ‘μ˜ μ£Όμ†Œλ₯Ό μ €μž₯ν•˜λŠ” λΆ€λΆ„
    • 직접 블둝(direct block) : 데이터 블둝에 λŒ€ν•œ μ£Όμ†Œλ₯Ό 직접 가지고 있음
    • κ°„μ ‘ 블둝(indirect block) κ³Ό 이쀑 κ°„μ ‘ 블둝(double indirect block)
      • 데이터 블둝에 λŒ€ν•œ μ£Όμ†Œλ₯Ό 가지고 μžˆλŠ” λΈ”λ‘μ˜ μ£Όμ†Œκ°€ μ €μž₯됨
    • 데이터 λΈ”λ‘μ˜ ν¬κΈ°λŠ” μ‹œμŠ€ν…œ 섀정에 따라 1~8KBκΉŒμ§€ 지정 κ°€λŠ₯

πŸ€” 파일 μ‹œμŠ€ν…œκ³Ό 디렉터리 계측 ꡬ쑰

  • ν•œ 파일 μ‹œμŠ€ν…œμœΌλ‘œ ꡬ성
    • ν•˜λ‚˜μ˜ 파일 μ‹œμŠ€ν…œμœΌλ‘œ ꡬ성할 경우 / 디렉터리에 ν•΄λ‹Ή 파일 μ‹œμŠ€ν…œμ„ 연결함
  • μ—¬λŸ¬ 파일 μ‹œμŠ€ν…œμœΌλ‘œ ꡬ성
    • 파일 μ‹œμŠ€ν…œ 1 -> / 디렉터리
      • 루트 파일 μ‹œμŠ€ν…œ
    • 파일 μ‹œμŠ€ν…œ 2 -> /usr 디렉터리
    • 파일 μ‹œμŠ€ν…œ 3 -> /home 디렉터리
    • μ—¬λŸ¬ 파일 μ‹œμŠ€ν…œμœΌλ‘œ λ‚˜λˆ„μ–΄ 디렉터리 계측 ꡬ쑰λ₯Ό ꡬ성할 경우, 일뢀 파일 μ‹œμŠ€ν…œμ— λ¬Έμ œκ°€ λ°œμƒν•΄λ„ λ‹€λ₯Έ 파일 μ‹œμŠ€ν…œμ˜ νŒŒμΌμ€ μ•ˆμ „ν•¨
    • μœˆλ„μ˜ λ””μŠ€ν¬μ˜ νŒŒν‹°μ…˜μ„ λ‚˜λˆ„λŠ” 것과 μœ μ‚¬

πŸ‘€ 파일 μ‹œμŠ€ν…œ 마운트

  • 마운트(mount) : 파일 μ‹œμŠ€ν…œμ„ 디렉터리 계측 ꡬ쑰의 νŠΉμ • 디렉터리와 μ—°κ²°ν•˜λŠ” 것

πŸ€” 마운트 포인트

  • 디렉터리 계측 ꡬ쑰에 파일 μ‹œμŠ€ν…œμ„ λ§ˆμš΄νŠΈν•˜μ§€ μ•ŠμœΌλ©΄ μ‚¬μš©μžκ°€ μ ‘κ·Όν•  수 μ—†μœΌλ―€λ‘œ, λ§ˆμš΄νŠΈν•˜μ§€ μ•Šμ€ 파일 μ‹œμŠ€ν…œμ˜ λ””λ ‰ν„°λ¦¬λ‘œ 이동 λΆˆκ°€
  • 디렉터리 계측 κ΅¬μ‘°μ—μ„œ 파일 μ‹œμŠ€ν…œμ΄ μ—°κ²°λ˜λŠ” 디렉터리λ₯Ό 마운트 포인트라고 함

πŸ€” 파일 μ‹œμŠ€ν…œ 마운트 μ„€μ • 파일

  • λ¦¬λˆ…μŠ€μ—μ„œ μ‹œμŠ€ν…œμ΄ λΆ€νŒ…λ  λ•Œ μžλ™μœΌλ‘œ 파일 μ‹œμŠ€ν…œμ΄ 마운트되게 ν•˜λ €λ©΄ /etc/fstab νŒŒμΌμ— κ΄€λ ¨ 사항을 μ„€μ •ν•΄μ•Ό 함

  • /etc/fstab 파일의 κΈ°λŠ₯

    • 파일 μ‹œμŠ€ν…œμ˜ 마운트 μ„€μ • 정보λ₯Ό 가지고 있음
    • ν•΄λ‹Ή νŒŒμΌμ— 였λ₯˜κ°€ 있으면 μ‹œμŠ€ν…œ λΆ€νŒ…μ΄ 쀑지될 수 있음
    • 파일 μ‹œμŠ€ν…œμ˜ μž₯치λͺ…κ³Ό 마운트 포인트, λ§ˆμš΄νŠΈν•  λ•Œ μ„€μ •ν•œ μ˜΅μ…˜ 지정
  • /etc/fstab 파일의 ꡬ쑰

    μž₯치λͺ… 마운트 포인트 파일 μ‹œμŠ€ν…œμ˜ μ’…λ₯˜ μ˜΅μ…˜ 덀프 κ΄€λ ¨ μ„€μ • 파일 점검 μ˜΅μ…˜
    • μž₯치λͺ… : 파일 μ‹œμŠ€ν…œ μž₯치λͺ… μ„€μ •
    • 마운트 포인트 : 파일 μ‹œμŠ€ν…œμ΄ 마운트될 마운트 포인트 μ„€μ •
    • 파일 μ‹œμŠ€ν…œμ˜ μ’…λ₯˜ : 파일 μ‹œμŠ€ν…œμ˜ μ’…λ₯˜ μ„€μ •
    • μ˜΅μ…˜
      μ˜΅μ…˜ 의미
      defaults 일반적인 파일 μ‹œμŠ€ν…œμ— μ§€μ •ν•˜λŠ” 속성
      rw, nouser, auto, exec, suid 속성 λͺ¨λ‘ 포함
      auto λΆ€νŒ… μ‹œ μžλ™μœΌλ‘œ 마운트
      exec μ‹€ν–‰ 파일이 μ‹€ν–‰λ˜λŠ” 것을 ν—ˆμš©
      suid setuid, setgid의 μ‚¬μš© ν—ˆμš©
      ro 읽기 μ „μš© 파일 μ‹œμŠ€ν…œ
      rw 읽기, μ“°κΈ°κ°€ κ°€λŠ₯ν•œ 파일 μ‹œμŠ€ν…œ
      user 일반 μ‚¬μš©μžλ„ 마운트 κ°€λŠ₯
      nouser 일반 μ‚¬μš©μžμ˜ 마운트 λΆˆκ°€λŠ₯
      root만 κ°€λŠ₯
      noauto λΆ€νŒ… μ‹œ μžλ™μœΌλ‘œ λ§ˆμš΄νŠΈν•˜μ§€ μ•ŠμŒ
      noexec μ‹€ν–‰ 파일이 μ‹€ν–‰λ˜λŠ” 것을 ν—ˆμš©ν•˜μ§€ μ•ŠμŒ
      nosuid setuid, setgid의 μ‚¬μš© κΈˆμ§€
      usrquota μ‚¬μš©μžλ³„λ‘œ λ””μŠ€ν¬ μΏΌν„° μ„€μ • κ°€λŠ₯
      grpquota κ·Έλ£Ήλ³„λ‘œ λ””μŠ€ν¬ μΏΌν„° μ„€μ • κ°€λŠ₯
    • 덀프 κ΄€λ ¨ μ„€μ • : 0 λ˜λŠ” 1 지정
      • 0은 dump 둜 파일 μ‹œμŠ€ν…œμ˜ λ‚΄μš©μ΄ λ€ν”„λ˜μ§€ μ•ŠλŠ” 파일 μ‹œμŠ€ν…œ
      • 1은 데이터 λ°±μ—… 등을 μœ„ν•΄ dump 의 μ‚¬μš©μ΄ κ°€λŠ₯ν•œ 파일 μ‹œμŠ€ν…œ
    • 파일 점검 μ˜΅μ…˜ : 0, 1, 2 쀑 ν•˜λ‚˜ 지정
      • 0은 λΆ€νŒ… μ‹œ fsck 둜 파일 μ‹œμŠ€ν…œμ„ μ κ²€ν•˜μ§€ μ•Šλ„λ‘ 함
      • 1은 루트 파일 μ‹œμŠ€ν…œ
      • 2λŠ” 루트 파일 μ‹œμŠ€ν…œ μ΄μ™Έμ˜ 파일 μ‹œμŠ€ν…œ 의미

πŸ€” 마운트 κ΄€λ ¨ λͺ…λ Ή

  • mount
    • ν˜•μ‹ : mount [option] [dev_name mount_point]
    • 파일 μ‹œμŠ€ν…œμ„ λ§ˆμš΄νŠΈν•¨
    • μ˜΅μ…˜
      • -t 파일 μ‹œμŠ€ν…œ μ’…λ₯˜ : 파일 μ‹œμŠ€ν…œ μ’…λ₯˜ 지정
      • -o 마운트 μ˜΅μ…˜ : 마운트 μ˜΅μ…˜ 지정
      • -f : 마운트λ₯Ό ν•  수 μžˆλŠ”μ§€ μ κ²€λ§Œ 함
      • -r : 읽기만 κ°€λŠ₯ν•˜κ²Œ λ§ˆμš΄νŠΈν•¨
        • -o ro
    • μ˜΅μ…˜μ΄λ‚˜ 인자 지정 없이 λͺ…λ Ή μ‚¬μš© μ‹œ ν˜„μž¬ λ§ˆμš΄νŠΈλ˜μ–΄ μžˆλŠ” 정보가 좜λ ₯됨
  • unmount
    • ν˜•μ‹ : unmount [option] dev_name or mount_point
    • 파일 μ‹œμŠ€ν…œμ„ μ–Έλ§ˆμš΄νŠΈν•¨
    • μ˜΅μ…˜
      • -t 파일 μ‹œμŠ€ν…œ μ’…λ₯˜ : 파일 μ‹œμŠ€ν…œ μ’…λ₯˜ 지정
    • λͺ…λ Ή μ‹€ν–‰ν•  λ•Œ 'busy'κ°€ 좜λ ₯되면 ν•΄λ‹Ή 디렉터리λ₯Ό λˆ„κ΅°κ°€ μ‚¬μš© 쀑이기 λ•Œλ¬Έμ— 마운트λ₯Ό ν•΄μ œν•  수 μ—†λ‹€λŠ” 뜻

πŸ‘€ λ””μŠ€ν¬ μΆ”κ°€ μ„€μΉ˜

  • λ””μŠ€ν¬ μΆ”κ°€ 단계
    • μƒˆ λ””μŠ€ν¬ μž₯μ°©
    • λ””μŠ€ν¬ νŒŒν‹°μ…˜ λ‚˜λˆ„κΈ°
    • νŒŒν‹°μ…˜μ— 파일 μ‹œμŠ€ν…œ 생성(포멧)
    • λ””μŠ€ν¬ 마운트

πŸ€” 가상머신에 λ””μŠ€ν¬λ₯Ό μΆ”κ°€ν•˜λŠ” 방법

  • 가상머신 ꡬ성
    • IDE λ””μŠ€ν¬ 컨트둀러 두 개
    • SATA λ””μŠ€ν¬ 컨트둀러 λ„€ 개
    • SCSI λ””μŠ€ν¬ 컨트둀러 λ„€ 개
    • NVMe 컨트둀러 λ„€ 개
    • IDE, SATA, SCSI, NVMe : λ””μŠ€ν¬ 같은 μž₯치λ₯Ό μ—°κ²°ν•˜λŠ” μΈν„°νŽ˜μ΄μŠ€ 방식
      • SCSIλŠ” 주둜 μ„œλ²„κΈ‰ μž₯μΉ˜μ—μ„œ μ‚¬μš©

πŸ€” λ””μŠ€ν¬ νŒŒν‹°μ…˜μ„ λ‚˜λˆ„λŠ” 방법

  • νŒŒν‹°μ…˜(partition) : ν•˜λ‚˜μ˜ λ””μŠ€ν¬λ₯Ό λ…λ¦½λœ μ˜μ—­μœΌλ‘œ κ΅¬λΆ„ν•˜λŠ” 것
  • λ””μŠ€ν¬ μž₯치의 이름과 νŒŒν‹°μ…˜ ν‘œμ‹œ
    • /dev/sd 둜 μ‹œμž‘ν•˜λŠ” λ””μŠ€ν¬ μž₯치 이름 μ‚¬μš©
    • μ»¨νŠΈλ‘€λŸ¬μ— μ—°κ²°λ˜λŠ” λ””μŠ€ν¬μ˜ μˆœμ„œμ— 따라 /dev/sd 뒀에 μ•ŒνŒŒλ²³ μˆœμ„œλ‘œ /dev/sda 와 같이 μˆœμ„œλŒ€λ‘œ 좔가됨
    • 일반적으둜 IDE μ»¨νŠΈλ‘€λŸ¬μ— μž₯착된 λ””μŠ€ν¬κ°€ SCSI에 μž₯착된 λ””μŠ€ν¬λ³΄λ‹€ μ•žμ— 배정됨
    • νŒŒν‹°μ…˜μ€ /dev/sda0 κ³Ό 같이 λ””μŠ€ν¬ μž₯치λͺ…μ˜ 뒀에 숫자λ₯Ό λΆ™μ—¬μ„œ ν‘œμ‹œ
    • μž₯치λͺ…에 μˆ«μžκ°€ 뢙지 μ•ŠμœΌλ©΄ λ””μŠ€ν¬ μž₯치 전체λ₯Ό 가리킀고, μˆ«μžκ°€ λΆ™μœΌλ©΄ ν•΄λ‹Ή λ””μŠ€ν¬μ˜ κ΅¬λΆ„λœ 각 νŒŒν‹°μ…˜μ„ λœ»ν•¨
  • fdisk
    • ν˜•μ‹ : fdisk [option] [dev_name]
    • λ””μŠ€ν¬μ˜ νŒŒν‹°μ…˜ 생성, μ‚­μ œ, 보기 λ“± νŒŒν‹°μ…˜μ„ 관리함
    • μ˜΅μ…˜
      • -b 크기 : μ„Ήν„° 크기λ₯Ό 지정(512, 1024, 2048, 4096)
      • -l : νŒŒν‹°μ…˜ ν…Œμ΄λΈ” 좜λ ₯
    • λ‚΄λΆ€ λͺ…λ Ή
      λͺ…λ Ή κΈ°λŠ₯
      a λΆ€νŒ… νŒŒν‹°μ…˜ μ„€μ •
      b BSD λ””μŠ€ν¬ 라벨 νŽΈμ§‘
      c λ„μŠ€ ν˜Έν™˜μ„± μ„€μ •
      d νŒŒν‹°μ…˜ μ‚­μ œ
      l μ‚¬μš© κ°€λŠ₯ν•œ νŒŒν‹°μ…˜μ˜ μ’…λ₯˜ 좜λ ₯
      m 도움말 좜λ ₯
      n μƒˆλ‘œμš΄ νŒŒν‹°μ…˜ μΆ”κ°€
      o μƒˆλ‘œμš΄ 빈 DOS νŒŒν‹°μ…˜ 생성
      p νŒŒν‹°μ…˜ ν…Œμ΄λΈ” 좜λ ₯
      q μž‘μ—… λ‚΄μš©μ„ μ €μž₯ν•˜μ§€ μ•Šκ³  μ’…λ£Œ
      s μƒˆλ‘œμš΄ 빈 Sun λ””μŠ€ν¬ 라벨 생성
      t νŒŒν‹°μ…˜μ˜ μ‹œμŠ€ν…œ ID λ³€κ²½(파일 μ‹œμŠ€ν…œ μ’…λ₯˜ λ³€κ²½)
      u ν•­λͺ© 정보λ₯Ό λ³€κ²½, 좜λ ₯
      v νŒŒν‹°μ…˜ ν…Œμ΄λΈ” 검사
      w νŒŒν‹°μ…˜ 정보λ₯Ό λ””μŠ€ν¬μ— μ €μž₯ ν›„ μ’…λ£Œ
      x 싀린더 개수 λ³€κ²½ λ“± μ „λ¬Έκ°€λ₯Ό μœ„ν•œ 뢀가적 κΈ°λŠ₯

πŸ€” 파일 μ‹œμŠ€ν…œμ„ μƒμ„±ν•˜λŠ” 방법

  • 파일 μ‹œμŠ€ν…œ 생성 : νŒŒν‹°μ…˜μ—μ„œ 파일과 디렉터리λ₯Ό κ΄€λ¦¬ν•˜κΈ° μœ„ν•œ ꡬ쑰λ₯Ό λ§Œλ“œλŠ” 것
  • mkfs
    • ν˜•μ‹ : mkfs [option] [dev_name]
    • λ¦¬λˆ…μŠ€ 파일 μ‹œμŠ€ν…œ 생성
    • μ˜΅μ…˜
      • -t μ’…λ₯˜ : 파일 μ‹œμŠ€ν…œμ˜ μ’…λ₯˜ 지정
        • 기본값은 ext2
        • mkfs.ext2, mkfs.ext3, mkfs.ext4 와 λ™μΌν•˜κ²Œ λ™μž‘
  • mke2fs
    • ν˜•μ‹ : mke2fs [option] [dev_name]
    • λ¦¬λˆ…μŠ€ κ°œμ •νŒ ν™•μž₯ 파일 μ‹œμŠ€ν…œ 생성
    • μ˜΅μ…˜
      • -t μ’…λ₯˜ : 파일 μ‹œμŠ€ν…œμ˜ μ’…λ₯˜ 지정
        • 기본값은 ext2
      • -b 블둝 크기 : 블둝 크기λ₯Ό λ°”μ΄νŠΈ 수둜 지정
      • -c : λ°°λ“œ 블둝 체크
      • -f ν”„λž˜κ·Έλ¨ΌνŠΈ 크기 : ν”„λž˜κ·Έλ¨ΌνŠΈ 크기λ₯Ό λ°”μ΄νŠΈ 수둜 지정
      • -i inodeλ‹Ή λ°”μ΄νŠΈ 수 : inodeλ‹Ή λ°”μ΄νŠΈ 수λ₯Ό 지정
        • 기본값은 4,096B
      • -m μ˜ˆμ•½ 블둝 νΌμ„ΌνŠΈ : μŠˆνΌμœ μ €μ—κ²Œ μ˜ˆμ•½ν•΄λ‘˜ λΈ”λ‘μ˜ νΌμ„ΌνŠΈ 지정
        • 기본값은 5%
    • /etc/mke2fs.conf 파일 : mke2fs 의 별도 μ„€μ • 파일
      • 파일 μ‹œμŠ€ν…œ μ’…λ₯˜μ— 따라 기본적으둜 μ„€μ •ν•  값이 μ •μ˜λ˜μ–΄ 있음
728x90
λ°˜μ‘ν˜•

'Development Study' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[Lecture] Data Communication - Day 11  (0) 2023.06.01
[Lecture] Data Communication - Day 9~10  (0) 2023.05.28
[Lecture] DataBase - Day 9  (0) 2023.05.22
[Lecture] DataBase - Day 8  (0) 2023.05.15
[Lecture] Data Communication - Day 8  (0) 2023.05.14
Comments