<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>기타 Archives - 어제와 내일의 나 그 사이의 이야기</title>
	<atom:link href="https://lycos7560.com/category/etc/feed/" rel="self" type="application/rss+xml" />
	<link></link>
	<description>생각의 흐름을 타고 다니며 만드는 블로그</description>
	<lastBuildDate>Mon, 16 Mar 2026 21:01:51 +0000</lastBuildDate>
	<language>ko-KR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://lycos7560.com/wp-content/uploads/2022/11/cropped-cropped-cropped-log-1-150x150-1-80x80.png</url>
	<title>기타 Archives - 어제와 내일의 나 그 사이의 이야기</title>
	<link></link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Linux File Permissions Handbook (파일 권한 정리 핸드북)</title>
		<link>https://lycos7560.com/etc/linux-file-permissions-handbook-%ed%8c%8c%ec%9d%bc-%ea%b6%8c%ed%95%9c-%ec%a0%95%eb%a6%ac-%ed%95%b8%eb%93%9c%eb%b6%81/40555/</link>
					<comments>https://lycos7560.com/etc/linux-file-permissions-handbook-%ed%8c%8c%ec%9d%bc-%ea%b6%8c%ed%95%9c-%ec%a0%95%eb%a6%ac-%ed%95%b8%eb%93%9c%eb%b6%81/40555/#respond</comments>
		
		<dc:creator><![CDATA[lycos7560]]></dc:creator>
		<pubDate>Mon, 16 Mar 2026 21:00:46 +0000</pubDate>
				<category><![CDATA[기타]]></category>
		<guid isPermaLink="false">https://lycos7560.com/?p=40555</guid>

					<description><![CDATA[<p>1. Linux 권한의 3요소 Linux의 권한은 간단하지만 강력한 원칙을 따른다. 모든 파일과 디렉터리에는 세 가지 사용자 그룹에 대해 세가지 유형의 접근 권한이 있다. 1.1 권한 유형 1.2 사용자 그룹 2. 권한 문자열 읽기 2.1 문자열 구조 분석 맨 앞의 문자는 파일의 유형을 나타내고, 이후 9개의 문자가 3개씩 나뉘어 소유자·그룹·기타의 권한을 나타낸다. 2.2 파일 유형 기호 [&#8230;]</p>
<p>The post <a href="https://lycos7560.com/etc/linux-file-permissions-handbook-%ed%8c%8c%ec%9d%bc-%ea%b6%8c%ed%95%9c-%ec%a0%95%eb%a6%ac-%ed%95%b8%eb%93%9c%eb%b6%81/40555/">Linux File Permissions Handbook (파일 권한 정리 핸드북)</a> appeared first on <a href="https://lycos7560.com">어제와 내일의 나 그 사이의 이야기</a>.</p>
]]></description>
										<content:encoded><![CDATA[				<div class="wp-block-uagb-table-of-contents uagb-toc__align-left uagb-toc__columns-1  uagb-block-a7e9a666      "
					data-scroll= "1"
					data-offset= "30"
					style=""
				>
				<div class="uagb-toc__wrap">
						<div class="uagb-toc__title">
							목차						</div>
																						<div class="uagb-toc__list-wrap ">
						<ol class="uagb-toc__list"><li class="uagb-toc__list"><a href="#1-linux-권한의-3요소" class="uagb-toc-link__trigger">1. Linux 권한의 3요소</a><ul class="uagb-toc__list"><li class="uagb-toc__list"><a href="#11-권한-유형" class="uagb-toc-link__trigger">1.1 권한 유형</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#12-사용자-그룹" class="uagb-toc-link__trigger">1.2 사용자 그룹</a></li></ul></li><li class="uagb-toc__list"><a href="#2-권한-문자열-읽기" class="uagb-toc-link__trigger">2. 권한 문자열 읽기</a><ul class="uagb-toc__list"><li class="uagb-toc__list"><a href="#21-문자열-구조-분석" class="uagb-toc-link__trigger">2.1 문자열 구조 분석</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#22-파일-유형-기호" class="uagb-toc-link__trigger">2.2 파일 유형 기호</a></li></ul></li></ul></li><li class="uagb-toc__list"><a href="#3-자주-사용하는-권한-패턴-명령어" class="uagb-toc-link__trigger">3. 자주 사용하는 권한 패턴 명령어</a><ul class="uagb-toc__list"><li class="uagb-toc__list"><a href="#31-파일-권한" class="uagb-toc-link__trigger">3.1 파일 권한</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#32-디렉터리-권한" class="uagb-toc-link__trigger">3.2 디렉터리 권한</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#디렉터리와실행권한" class="uagb-toc-link__trigger"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/26a0.png" alt="⚠" class="wp-smiley" style="height: 1em; max-height: 1em;" />  디렉터리와 실행 권한</a></li></ul></li></ul></li></ul></li><li class="uagb-toc__list"><a href="#4-chmod로-권한-변경하기" class="uagb-toc-link__trigger">4. chmod로 권한 변경하기</a><ul class="uagb-toc__list"><li class="uagb-toc__list"><a href="#41-기호-방식" class="uagb-toc-link__trigger">4.1 기호 방식</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#42-숫자-방식" class="uagb-toc-link__trigger">4.2 숫자 방식</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#43-재귀적-권한-변경-r-옵션" class="uagb-toc-link__trigger">4.3 재귀적 권한 변경 (-R 옵션)</a></li></ul></li></ul></li></ul></li></ul></li><li class="uagb-toc__list"><a href="#5-chown-으로-소유권-변경하기" class="uagb-toc-link__trigger">5. chown 으로 소유권 변경하기</a><ul class="uagb-toc__list"><li class="uagb-toc__list"><a href="#51-소유자-변경" class="uagb-toc-link__trigger">5.1 소유자 변경</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#52-재귀적-소유권-변경" class="uagb-toc-link__trigger">5.2 재귀적 소유권 변경</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#53-chgrp명령그룹전용변경" class="uagb-toc-link__trigger">5.3 chgrp 명령 (그룹 전용 변경)</a></li></ul></li></ul></li></ul></li></ul></li></ul></li><li class="uagb-toc__list"><a href="#6-특수-권한-고급" class="uagb-toc-link__trigger">6. 특수 권한 (고급)</a><li class="uagb-toc__list"><a href="#7-umask-기본-권한-마스크" class="uagb-toc-link__trigger">7. umask &#8211; 기본 권한 마스크</a><ul class="uagb-toc__list"><li class="uagb-toc__list"><a href="#71-umask-동작-원리" class="uagb-toc-link__trigger">7.1 umask 동작 원리</a></li></ul></li></ul></li></ul></li></ul></li></ul></li></ul></li><li class="uagb-toc__list"><a href="#8-실무-팁-자주-하는-실수" class="uagb-toc-link__trigger">8. 실무 팁 &amp; 자주 하는 실수</a></ul></ul></ul></ul></ul></ul></ol>					</div>
									</div>
				</div>
			


<div style="height:50px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">1. Linux 권한의 3요소</h2>



<p>Linux의 권한은 간단하지만 강력한 원칙을 따른다.</p>



<p>모든 파일과 디렉터리에는 <strong>세 가지 사용자 그룹</strong>에 대해 <strong>세가지 유형의 접근 권한</strong>이 있다.</p>



<ul class="wp-block-list">
<li>Linux는 &#8220;<strong>최소 권한 원칙(Principle of Least Privilege)</strong>&#8220;을 따른다. <br>사용자와 프로세스에게 작업 수행에 필요한 최소한의 권한만 부여하는 것이 보안의 기본이다.</li>
</ul>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">1.1 권한 유형</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">• 읽기 (r)  –  파일 내용 보기 또는 디렉터리 목록 조회
• 쓰기 (w)  –  파일 내용 수정 또는 디렉터리 내 파일 생성·삭제
• 실행 (x)  –  파일을 프로그램으로 실행하거나 디렉터리에 진입</pre>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">1.2 사용자 그룹</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">• 소유자 (u, user)   –  파일을 소유한 사용자
• 그룹 (g, group)    –  해당 파일의 그룹에 속한 사용자들
• 기타 (o, others)   –  시스템의 모든 다른 사용자</pre>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" style="margin-top:var(--wp--preset--spacing--40);margin-bottom:var(--wp--preset--spacing--40)"/>



<h2 class="wp-block-heading">2. 권한 문자열 읽기</h2>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">2.1 문자열 구조 분석</h3>



<p>맨 앞의 문자는 <strong>파일의 유형</strong>을 나타내고, 이후 9개의 문자가 3개씩 나뉘어 <strong>소유자·그룹·기타</strong>의 권한을 나타낸다.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">-a : 숨김 파일 포함 (.으로 시작하는 파일)
-l : 상세 정보(long format) 출력
-h : human readable (KB, MB, GB)

[lycos7560@DMT-RL01 ~]$ ls -alh
total 24K
drwx------. 3 lycos7560 lycos7560  132 Mar 16 05:38 .
drwxr-xr-x. 4 root      root        39 Mar 16 04:59 ..
-rw-------. 1 lycos7560 lycos7560 3.3K Mar 17 05:21 .bash_history
-rw-r--r--. 1 lycos7560 lycos7560   18 Oct 29  2024 .bash_logout
-rw-r--r--. 1 lycos7560 lycos7560  144 Oct 29  2024 .bash_profile
-rw-r--r--. 1 lycos7560 lycos7560  522 Oct 29  2024 .bashrc
drwx------. 3 lycos7560 lycos7560   20 Mar 12 07:19 .config
-rw-------. 1 lycos7560 lycos7560   38 Mar 11 04:36 .lesshst
-rw-r-x---. 1 root      root        12 Mar 16 05:38 myfile.txt


# 현재 사용자 및 그룹 확인
id
[lycos7560@DMT-RL01 ~]$ id
uid=1000(lycos7560) gid=1000(lycos7560) groups=1000(lycos7560),10(wheel) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

# 특정 사용자가 속한 그룹 확인
groups lycos7560
[lycos7560@DMT-RL01 ~]$ groups lycos7560
lycos7560 : lycos7560 wheel (wheel은 내가 넣음)
</pre>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">-  rwx  r-x  r--
│   │    │    │
│   │    │    └── 기타(Others): 읽기 전용
│   │    └─────── 그룹(Group): 읽기 및 실행
│   └──────────── 소유자(Owner): 읽기, 쓰기, 실행
└──────────────── 파일 유형 (- = 파일, d = 디렉터리)</pre>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">2.2 파일 유형 기호</h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>기호</strong></td><td><strong>의미</strong></td></tr><tr><td>&#8211;</td><td>일반&nbsp;파일</td></tr><tr><td>d</td><td>디렉터리(Directory)</td></tr><tr><td>l</td><td>심볼릭&nbsp;링크(Symbolic&nbsp;Link)</td></tr><tr><td>c</td><td>문자&nbsp;장치&nbsp;파일(Character&nbsp;Device)</td></tr><tr><td>b</td><td>블록&nbsp;장치&nbsp;파일(Block&nbsp;Device)</td></tr><tr><td>s</td><td>소켓(Socket)</td></tr><tr><td>p</td><td>파이프(Named&nbsp;Pipe)</td></tr></tbody></table></figure>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" style="margin-top:var(--wp--preset--spacing--40);margin-bottom:var(--wp--preset--spacing--40)"/>



<h2 class="wp-block-heading">3. 자주 사용하는 권한 패턴 명령어</h2>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">3.1 파일 권한</h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>숫자</strong></td><td><strong>기호</strong></td><td><strong>설명</strong></td><td><strong>주요&nbsp;용도</strong></td></tr><tr><td>644</td><td>rw-r&#8211;r&#8211;</td><td>소유자: 읽기/쓰기, 나머지: 읽기 전용</td><td>일반&nbsp;텍스트,&nbsp;설정&nbsp;파일</td></tr><tr><td>755</td><td>rwxr-xr-x</td><td>소유자:&nbsp;모든&nbsp;권한,&nbsp;나머지:&nbsp;읽기+실행</td><td>스크립트,&nbsp;실행&nbsp;파일</td></tr><tr><td>600</td><td>rw&#8212;&#8212;-</td><td>소유자만&nbsp;읽기/쓰기&nbsp;가능</td><td>SSH&nbsp;키,&nbsp;비밀번호&nbsp;파일</td></tr><tr><td>400</td><td>r&#8212;&#8212;&#8211;</td><td>소유자만&nbsp;읽기&nbsp;가능&nbsp;(쓰기&nbsp;불가)</td><td>백업&nbsp;파일,&nbsp;중요&nbsp;설정</td></tr><tr><td>777</td><td>rwxrwxrwx</td><td>모든&nbsp;사용자가&nbsp;모든&nbsp;권한</td><td>매우 위험! (보안의 문제 사용을 지양)</td></tr></tbody></table></figure>



<h3 class="wp-block-heading">3.2 디렉터리 권한</h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>숫자</strong></td><td><strong>기호</strong></td><td><strong>설명</strong></td><td><strong>주의사항</strong></td></tr><tr><td>755</td><td>rwxr-xr-x</td><td>표준&nbsp;디렉터리&nbsp;권한</td><td>일반적으로&nbsp;가장&nbsp;많이&nbsp;사용</td></tr><tr><td>700</td><td>rwx&#8212;&#8212;</td><td>소유자만&nbsp;접근&nbsp;가능한&nbsp;비공개&nbsp;디렉터리</td><td>개인&nbsp;데이터&nbsp;폴더에&nbsp;적합</td></tr><tr><td>775</td><td>rwxrwxr-x</td><td>소유자와&nbsp;그룹&nbsp;모두&nbsp;쓰기&nbsp;가능</td><td>팀&nbsp;협업&nbsp;폴더에&nbsp;사용</td></tr><tr><td>644</td><td>rw-r&#8211;r&#8211;</td><td><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/274c.png" alt="❌" class="wp-smiley" style="height: 1em; max-height: 1em;" />&nbsp;사용&nbsp;불가</td><td>실행(x)&nbsp;권한&nbsp;없이&nbsp;디렉터리&nbsp;진입&nbsp;불가</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><strong><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/26a0.png" alt="⚠" class="wp-smiley" style="height: 1em; max-height: 1em;" />&nbsp;&nbsp;디렉터리와&nbsp;실행&nbsp;권한</strong></h3>



<p>디렉터리에서 실행(x) 권한은 &#8220;진입 권한&#8221;을 의미한다.</p>



<p> 읽기(r)만 있고 실행(x)이 없으면 디렉터리 안에 파일이 있다는 사실은 알아도 접근할 수 없다.</p>



<p>반드시 실행 권한을 포함해야 합니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" style="margin-top:var(--wp--preset--spacing--40);margin-bottom:var(--wp--preset--spacing--40)"/>



<h2 class="wp-block-heading">4. chmod로 권한 변경하기</h2>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">4.1 기호 방식</h3>



<p>기호 방식은 매우 직관적이며 현재 권한을 유지한 채 특정 권한만 추가하거나 제거할 때 유용하다. </p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>기호</strong></td><td><strong>의미</strong></td></tr><tr><td>u</td><td>소유자(user)</td></tr><tr><td>g</td><td>그룹(group)</td></tr><tr><td>o</td><td>기타(others)</td></tr><tr><td>a</td><td>모두(all)&nbsp;=&nbsp;u+g+o</td></tr><tr><td>+</td><td>권한&nbsp;추가</td></tr><tr><td>&#8211;</td><td>권한&nbsp;제거</td></tr><tr><td>=</td><td>권한&nbsp;설정(기존&nbsp;권한&nbsp;덮어쓰기)</td></tr></tbody></table></figure>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># 소유자에게 실행 권한 부여
chmod u+x myfile

# 그룹의 쓰기 권한 제거
chmod g-w myfile

# 기타 사용자에게 읽기 권한 부여
chmod o+r myfile

# 모든 사용자에게 실행 권한 부여
chmod a+x myfile

# 그룹 권한을 읽기+실행으로 정확히 설정 (= 사용)
chmod g=rx myfile

# 여러 권한을 동시에 변경 (콤마로 구분)
chmod u+x,g-w,o+r myfile</pre>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">4.2 숫자 방식</h3>



<p>숫자 방식은 빠르고 정확하다.</p>



<p>각 자리는 소유자·그룹·기타의 권한을 나타내며 r=4, w=2, x=1을 더해 계산한다.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>권한</strong></td><td><strong>이진수</strong></td><td><strong>10진수</strong></td></tr><tr><td>&#8212;</td><td>000</td><td>0</td></tr><tr><td>&#8211;x</td><td>001</td><td>1</td></tr><tr><td>-w-</td><td>010</td><td>2</td></tr><tr><td>-wx</td><td>011</td><td>3</td></tr><tr><td>r&#8211;</td><td>100</td><td>4</td></tr><tr><td>r-x</td><td>101</td><td>5</td></tr><tr><td>rw-</td><td>110</td><td>6</td></tr><tr><td>rwx</td><td>111</td><td>7</td></tr></tbody></table></figure>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">예: 755 = 소유자(7=rwx) + 그룹(5=r-x) + 기타(5=r-x)

chmod 755 myfile       # rwxr-xr-x
chmod 644 myfile       # rw-r--r--
chmod 600 myfile       # rw-------
chmod 400 myfile       # r--------
chmod 700 mydir        # rwx------</pre>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">4.3 재귀적 권한 변경 (-R 옵션)</h3>



<p>디렉터리와 그 안의 모든 파일/하위 디렉터리에 권한을 일괄 적용할 때 사용한다.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># 웹 서버 디렉터리 전체 권한 설정
sudo chmod -R 755 /var/www/html/

# 특정 패턴의 파일만 선택적으로 변경
find /var/www/html -type f -exec chmod 644 {} \;
find /var/www/html -type d -exec chmod 755 {} \;

# 파일과 디렉터리 권한 분리 팁
chmod -R 755를 사용하면 파일도 755(실행 가능)가 되어 보안상 좋지 않다.
find 명령으로 파일(644)과 디렉터리(755)를 따로 설정하는 것을 권장.</pre>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" style="margin-top:var(--wp--preset--spacing--40);margin-bottom:var(--wp--preset--spacing--40)"/>



<h2 class="wp-block-heading">5. chown 으로 소유권 변경하기</h2>



<p>chown 명령으로 파일의 디렉터리의 소유자와 그룹을 변경할 수 있다.</p>



<p>일반적으로 관리자 권한(sudo)이 필요하다.</p>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">5.1 소유자 변경</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># 소유자를 alice로 변경
sudo chown alice myfile

# 소유자를 alice, 그룹을 staff로 동시 변경
sudo chown alice:staff myfile

# 그룹만 developers로 변경 (콜론 앞 생략)
sudo chown :developers myfile</pre>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">5.2 재귀적 소유권 변경</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># 디렉터리 전체 소유자와 그룹 변경
sudo chown -R alice:staff /home/alice/projects/

# 소유자만 재귀적으로 변경
sudo chown -R www-data /var/www/html/</pre>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">5.3 <strong>chgrp 명령 (그룹 전용 변경)</strong></h3>



<p>그룹만 변경하고 싶을 때는 chgrp 명령을 사용할 수도 있다.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">sudo chgrp developers myfile
sudo chgrp -R developers /srv/project/</pre>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" style="margin-top:var(--wp--preset--spacing--40);margin-bottom:var(--wp--preset--spacing--40)"/>



<h2 class="wp-block-heading">6. 특수 권한 (고급)</h2>



<p>일반 rwx 외에 시스템 관리에 중요한 역할을 하는 <strong>SetUID, SetGID, Sticky Bit</strong> 세 가지 특수 권한이 있다.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>권한&nbsp;유형</strong></td><td><strong>명령어&nbsp;예시</strong></td><td><strong>설명</strong></td></tr><tr><td>SetUID&nbsp;(4xxx)</td><td>chmod&nbsp;4755&nbsp;file</td><td>실행&nbsp;시&nbsp;소유자&nbsp;권한으로&nbsp;동작&nbsp;(예:&nbsp;/usr/bin/passwd)</td></tr><tr><td>SetGID&nbsp;(2xxx)</td><td>chmod&nbsp;2755&nbsp;dir</td><td>파일을&nbsp;소유자&nbsp;그룹으로&nbsp;생성,&nbsp;공유&nbsp;폴더에&nbsp;유용</td></tr><tr><td>Sticky&nbsp;Bit&nbsp;(1xxx)</td><td>chmod&nbsp;1777&nbsp;/tmp</td><td>파일&nbsp;소유자만&nbsp;삭제&nbsp;가능&nbsp;(/tmp&nbsp;디렉터리에&nbsp;사용)</td></tr></tbody></table></figure>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># SetUID 설정 (소유자 권한으로 실행)
chmod 4755 myprogram    # 또는: chmod u+s myprogram

# SetGID 설정 (그룹 권한 상속)
chmod 2755 shared_dir   # 또는: chmod g+s shared_dir

# Sticky Bit 설정 (소유자만 삭제 가능)
chmod 1777 /tmp         # 또는: chmod +t /tmp

# ls -l에서 특수 권한 확인
# -rwsr-xr-x  → SetUID (소유자 x 자리에 s)
# -rwxr-sr-x  → SetGID (그룹 x 자리에 s)
# drwxrwxrwt  → Sticky Bit (기타 x 자리에 t)

- SetUID 보안 주의
SetUID가 설정된 프로그램은 실행 시 소유자(보통 root로 설정) 권한으로 동작한다.
불필요한 파일에 SetUID를 설정하면 심각한 보안 취약점이 될 수 있다.
반드시 필요한 경우에만 사용.</pre>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" style="margin-top:var(--wp--preset--spacing--40);margin-bottom:var(--wp--preset--spacing--40)"/>



<h2 class="wp-block-heading">7. umask &#8211; 기본 권한 마스크</h2>



<p>새 파일이나 디렉터리를 생성할 때 자동으로 적용되는 기본 권한을 제어한다.</p>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">7.1 <strong>umask 동작</strong> 원리</h3>



<ul class="wp-block-list">
<li>파일 최대 권한: 666 (rw-rw-rw-) 실행 권한은 기본적으로 부여되지 않음</li>



<li>디렉터리 최대 권한: 777(rwxrwxrwx)</li>



<li>실제 권한 = 최대 권한 &#8211; umask 값</li>
</ul>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># 현재 umask 확인
umask
[lycos7560@DMT-RL01 ~]$ umask
0022

# umask 022 적용 시 (가장 일반적)
# 파일:     666 - 022 = 644 (rw-r--r--)
# 디렉터리: 777 - 022 = 755 (rwxr-xr-x)

# umask 변경 (현재 세션에만 적용)
umask 027

# 영구 적용: ~/.bashrc 또는 /etc/profile에 추가
echo "umask 027" >> ~/.bashrc</pre>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" style="margin-top:var(--wp--preset--spacing--40);margin-bottom:var(--wp--preset--spacing--40)"/>



<h2 class="wp-block-heading">8. 실무 팁 &amp; 자주 하는 실수</h2>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>상황</strong></td><td><strong>원인</strong></td><td><strong>해결&nbsp;방법</strong></td></tr><tr><td>스크립트&nbsp;실행&nbsp;안&nbsp;됨</td><td>실행(x)&nbsp;권한&nbsp;없음</td><td>chmod&nbsp;+x&nbsp;script.sh</td></tr><tr><td>디렉터리&nbsp;진입&nbsp;불가</td><td>실행(x)&nbsp;권한&nbsp;없음</td><td>chmod&nbsp;755&nbsp;dirname</td></tr><tr><td>파일&nbsp;수정&nbsp;안&nbsp;됨</td><td>쓰기(w)&nbsp;권한&nbsp;없음</td><td>chmod&nbsp;u+w&nbsp;filename</td></tr><tr><td>sudo&nbsp;없이&nbsp;chown&nbsp;불가</td><td>일반&nbsp;사용자&nbsp;제한</td><td>sudo&nbsp;chown&nbsp;사용</td></tr><tr><td>777&nbsp;설정&nbsp;후&nbsp;보안&nbsp;문제</td><td>과도한&nbsp;권한&nbsp;부여</td><td>chmod&nbsp;755&nbsp;또는&nbsp;644로&nbsp;변경</td></tr></tbody></table></figure>



<p><strong>보안 체크리스트</strong></p>



<p>① 민감한 파일(SSH 키, 설정 파일)은 600 또는 400 사용  </p>



<p>② 웹 서버 파일은 644, 디렉터리는 755  </p>



<p>③ 777은 절대 사용하지 않기  </p>



<p>④ SetUID 파일 주기적 점검: find / -perm -4000 -ls 2>/dev/null</p>



<p></p>
<p>The post <a href="https://lycos7560.com/etc/linux-file-permissions-handbook-%ed%8c%8c%ec%9d%bc-%ea%b6%8c%ed%95%9c-%ec%a0%95%eb%a6%ac-%ed%95%b8%eb%93%9c%eb%b6%81/40555/">Linux File Permissions Handbook (파일 권한 정리 핸드북)</a> appeared first on <a href="https://lycos7560.com">어제와 내일의 나 그 사이의 이야기</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://lycos7560.com/etc/linux-file-permissions-handbook-%ed%8c%8c%ec%9d%bc-%ea%b6%8c%ed%95%9c-%ec%a0%95%eb%a6%ac-%ed%95%b8%eb%93%9c%eb%b6%81/40555/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Rocky Linux 10 DNF 저장소 추가</title>
		<link>https://lycos7560.com/etc/rocky-linux-10-dnf-%ec%a0%80%ec%9e%a5%ec%86%8c-%ec%b6%94%ea%b0%80/40549/</link>
					<comments>https://lycos7560.com/etc/rocky-linux-10-dnf-%ec%a0%80%ec%9e%a5%ec%86%8c-%ec%b6%94%ea%b0%80/40549/#respond</comments>
		
		<dc:creator><![CDATA[lycos7560]]></dc:creator>
		<pubDate>Thu, 12 Mar 2026 21:05:29 +0000</pubDate>
				<category><![CDATA[기타]]></category>
		<guid isPermaLink="false">https://lycos7560.com/?p=40549</guid>

					<description><![CDATA[<p>DNF 저장소 추가? Rocky Linux는 기업용 리눅스 배포판으로 기본적으로 안정성을 위해 패키지 수가 제한적입니다. 그래서 기본 저장소만 사용하면 htop, iftop, ffmpeg 같은 패키지를 찾을 수 없는 경우가 많습니다. 이 때문에 추가 저장소(repository)를 활성화하여 패키지를 확장합니다. 순서 1. CRB 저장소 (CodeReady Builder) CRB는 EPEL 패키지 일부가 의존하는 패키지를 포함하고 있어, EPEL 사용 전에 반드시 활성화해야 합니다. [&#8230;]</p>
<p>The post <a href="https://lycos7560.com/etc/rocky-linux-10-dnf-%ec%a0%80%ec%9e%a5%ec%86%8c-%ec%b6%94%ea%b0%80/40549/">Rocky Linux 10 DNF 저장소 추가</a> appeared first on <a href="https://lycos7560.com">어제와 내일의 나 그 사이의 이야기</a>.</p>
]]></description>
										<content:encoded><![CDATA[				<div class="wp-block-uagb-table-of-contents uagb-toc__align-left uagb-toc__columns-1  uagb-block-b77fcaa8      "
					data-scroll= "1"
					data-offset= "30"
					style=""
				>
				<div class="uagb-toc__wrap">
						<div class="uagb-toc__title">
							목차						</div>
																						<div class="uagb-toc__list-wrap ">
						<ol class="uagb-toc__list"><li class="uagb-toc__list"><a href="#dnf-저장소-추가" class="uagb-toc-link__trigger">DNF 저장소 추가?</a><li class="uagb-toc__list"><a href="#순서" class="uagb-toc-link__trigger">순서</a><li class="uagb-toc__list"><a href="#1-crb-저장소-codeready-builder" class="uagb-toc-link__trigger">1. CRB 저장소 (CodeReady Builder)</a><li class="uagb-toc__list"><a href="#2-epel-저장소-extra-packages-for-enterprise-linux" class="uagb-toc-link__trigger">2. EPEL 저장소 (Extra Packages for Enterprise Linux)</a><li class="uagb-toc__list"><a href="#3-rpm-fusion-저장소" class="uagb-toc-link__trigger">3. RPM Fusion 저장소</a><li class="uagb-toc__list"><a href="#참고" class="uagb-toc-link__trigger">참고</a></ol>					</div>
									</div>
				</div>
			


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">DNF 저장소 추가?</h3>



<p>Rocky Linux는 기업용 리눅스 배포판으로 기본적으로 안정성을 위해 패키지 수가 제한적입니다. </p>



<p>그래서 기본 저장소만 사용하면 <code>htop</code>, <code>iftop</code>, <code>ffmpeg</code> 같은 패키지를 찾을 수 없는 경우가 많습니다.</p>



<p>이 때문에 추가 저장소(repository)를 활성화하여 패키지를 확장합니다.</p>



<p></p>



<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">순서</h3>



<ol class="wp-block-list">
<li>CRB </li>



<li>EPEL</li>



<li>RPM Fusion 설치 (필요한 경우)</li>
</ol>



<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">1. CRB 저장소 (CodeReady Builder)</h3>



<ol class="wp-block-list"></ol>



<p>CRB는 EPEL 패키지 일부가 의존하는 패키지를 포함하고 있어, EPEL 사용 전에 반드시 활성화해야 합니다.</p>



<p>개발용 라이브러리 및 빌드 의존성 패키지를 제공합니다.</p>



<ul class="wp-block-list">
<li><code>devel</code> 패키지</li>



<li>컴파일 관련 라이브러리</li>



<li>빌드 도구</li>
</ul>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># Rocky Linux 10은 /usr/bin/crb 유틸리티를 제공합니다.

# dnf-plugins-core가 없으면 먼저 설치
sudo dnf install dnf-plugins-core

# CRB 활성화 (Rocky Linux 9, 10 공통)
sudo crb enable

# CRB 확인
sudo crb status</pre>



<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">2. EPEL 저장소 (Extra Packages for Enterprise Linux)</h3>



<ol start="2" class="wp-block-list"></ol>



<p>Extra Packages for Enterprise Linux의 약자로 RHEL 계열에서 부족한 패키지를 제공하는 저장소입니다. </p>



<p>대부분의 서버에서 CRB 다음으로 바로 설치하는 저장소</p>



<p>제공 패키지 예시</p>



<ul class="wp-block-list">
<li>htop</li>



<li>neovim</li>



<li>iftop</li>



<li>nmap</li>



<li>fail2ban</li>
</ul>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># 설치 방법
sudo dnf install epel-release

# 저장소 확인
dnf repolist
```

**예시 출력**
[lycos7560@DMT-RL01 ~]$ dnf repolist
repo id                                           repo name
appstream                                         Rocky Linux 10 - AppStream
baseos                                            Rocky Linux 10 - BaseOS
crb                                               Rocky Linux 10 - CRB
epel                                              Extra Packages for Enterprise Linux 10 - x86_64
extras                                            Rocky Linux 10 - Extras
rpmfusion-free-updates                            RPM Fusion for EL 10 - Free - Updates
</pre>



<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">3. RPM Fusion 저장소 </h3>



<p>RPM Fusion은 멀티미디어 및 추가 패키지를 제공하는 저장소입니다. </p>



<p>free(오픈소스)와 nonfree(비오픈소스) 두 가지로 나뉩니다.</p>



<p>RPM Fusion은 EPEL에 의존하므로 반드시 EPEL을 먼저 설치해야 합니다.</p>



<p>제공 패키지 예시</p>



<ul class="wp-block-list">
<li>ffmpeg</li>



<li>vlc</li>
</ul>



<p><code>$(rpm -E %rhel)</code> 변수를 사용하면 Rocky Linux 버전을 자동으로 감지하여 올바른 패키지를 내려받습니다</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># free 저장소
sudo dnf install --nogpgcheck \
  https://mirrors.rpmfusion.org/free/el/rpmfusion-free-release-$(rpm -E %rhel).noarch.rpm

# nonfree 저장소 (필요한 경우 추가)
sudo dnf install --nogpgcheck \
  https://mirrors.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-$(rpm -E %rhel).noarch.rpm
```

---

## 실무에서 많이 사용하는 저장소 조합

대부분의 Rocky Linux 10 서버는 다음 저장소를 활성화합니다.
```
baseos
appstream
crb
epel</pre>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" style="margin-top:var(--wp--preset--spacing--30);margin-bottom:var(--wp--preset--spacing--30)"/>



<h3 class="wp-block-heading">참고</h3>



<p>패키지 검색</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">dnf search 패키지명

dnf search htop</pre>



<div style="height:19px" aria-hidden="true" class="wp-block-spacer"></div>



<p>특정 파일을 제공하는 패키지 찾기</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">dnf provides 파일명

dnf provides htop</pre>



<div style="height:19px" aria-hidden="true" class="wp-block-spacer"></div>



<p>저장소 임시 제외</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># 특정 저장소를 제외하고 설치하고 싶을 때 사용합니다.

dnf install 패키지명 --disablerepo=epel</pre>



<div style="height:50px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-embed is-type-wp-embed"><div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content" data-secret="6XFKrBcgcQ"><a href="https://lycos7560.com/etc/dnf-package-manager-dnf-%ed%8c%a8%ed%82%a4%ec%a7%80-%ea%b4%80%eb%a6%ac%ec%9e%90/40530/">DNF Package Manager (DNF 패키지 관리자)</a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8220;DNF Package Manager (DNF 패키지 관리자)&#8221; &#8212; 어제와 내일의 나 그 사이의 이야기" src="https://lycos7560.com/etc/dnf-package-manager-dnf-%ed%8c%a8%ed%82%a4%ec%a7%80-%ea%b4%80%eb%a6%ac%ec%9e%90/40530/embed/#?secret=4pAmu41OkY#?secret=6XFKrBcgcQ" data-secret="6XFKrBcgcQ" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>
<p>The post <a href="https://lycos7560.com/etc/rocky-linux-10-dnf-%ec%a0%80%ec%9e%a5%ec%86%8c-%ec%b6%94%ea%b0%80/40549/">Rocky Linux 10 DNF 저장소 추가</a> appeared first on <a href="https://lycos7560.com">어제와 내일의 나 그 사이의 이야기</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://lycos7560.com/etc/rocky-linux-10-dnf-%ec%a0%80%ec%9e%a5%ec%86%8c-%ec%b6%94%ea%b0%80/40549/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>top 명령어 핵심 정리 &#8211; Linux top</title>
		<link>https://lycos7560.com/etc/top-%eb%aa%85%eb%a0%b9%ec%96%b4-%ed%95%b5%ec%8b%ac-%ec%a0%95%eb%a6%ac-linux-top/40541/</link>
					<comments>https://lycos7560.com/etc/top-%eb%aa%85%eb%a0%b9%ec%96%b4-%ed%95%b5%ec%8b%ac-%ec%a0%95%eb%a6%ac-linux-top/40541/#respond</comments>
		
		<dc:creator><![CDATA[lycos7560]]></dc:creator>
		<pubDate>Thu, 12 Mar 2026 20:15:11 +0000</pubDate>
				<category><![CDATA[기타]]></category>
		<guid isPermaLink="false">https://lycos7560.com/?p=40541</guid>

					<description><![CDATA[<p>🔥 가장 많이 쓰는 top 단축키 키 기능 설명 q 종료 top 종료 h 도움말 모든 단축키 보기 k 프로세스 종료 PID 입력 후 kill r nice 값 변경 프로세스 우선순위 변경 c 명령어 전체 표시 프로그램 경로 표시 P CPU 사용률 정렬 CPU 많이 쓰는 순 M 메모리 사용률 정렬 메모리 많이 쓰는 순 [&#8230;]</p>
<p>The post <a href="https://lycos7560.com/etc/top-%eb%aa%85%eb%a0%b9%ec%96%b4-%ed%95%b5%ec%8b%ac-%ec%a0%95%eb%a6%ac-linux-top/40541/">top 명령어 핵심 정리 &#8211; Linux top</a> appeared first on <a href="https://lycos7560.com">어제와 내일의 나 그 사이의 이야기</a>.</p>
]]></description>
										<content:encoded><![CDATA[				<div class="wp-block-uagb-table-of-contents uagb-toc__align-left uagb-toc__columns-1  uagb-block-ab3ce747      "
					data-scroll= "1"
					data-offset= "30"
					style=""
				>
				<div class="uagb-toc__wrap">
						<div class="uagb-toc__title">
							목차						</div>
																						<div class="uagb-toc__list-wrap ">
						<ol class="uagb-toc__list"><li class="uagb-toc__list"><a href="#가장-많이-쓰는-top-단축키" class="uagb-toc-link__trigger"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f525.png" alt="🔥" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 가장 많이 쓰는 top 단축키</a><li class="uagb-toc__list"><a href="#예시-기본" class="uagb-toc-link__trigger">예시 (기본)</a><li class="uagb-toc__list"><a href="#1-시스템-전체-상태" class="uagb-toc-link__trigger">1&#x20e3; 시스템 전체 상태</a><li class="uagb-toc__list"><a href="#2-프로세스-상태" class="uagb-toc-link__trigger">2&#x20e3; 프로세스 상태</a><li class="uagb-toc__list"><a href="#3-cpu-사용률" class="uagb-toc-link__trigger">3&#x20e3; CPU 사용률</a><li class="uagb-toc__list"><a href="#4-메모리-정보" class="uagb-toc-link__trigger">4&#x20e3; 메모리 정보</a><ul class="uagb-toc__list"><li class="uagb-toc__list"><a href="#swap-정보" class="uagb-toc-link__trigger">Swap 정보</a></li></ul></li><li class="uagb-toc__list"><a href="#5-프로세스-정보-영역-process-list" class="uagb-toc-link__trigger">5&#x20e3; 프로세스 정보 영역 (Process List)</a><ul class="uagb-toc__list"><li class="uagb-toc__list"><a href="#pid-process-id" class="uagb-toc-link__trigger">PID (Process ID)</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#pr-priority" class="uagb-toc-link__trigger">PR (Priority)</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#ni-nice-value" class="uagb-toc-link__trigger">NI (Nice Value)</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#virt-virtual-memory" class="uagb-toc-link__trigger">VIRT (Virtual Memory)</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#res-resident-memory" class="uagb-toc-link__trigger">RES (Resident Memory)</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#shr-shared-memory" class="uagb-toc-link__trigger">SHR (Shared Memory)</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#s-process-state" class="uagb-toc-link__trigger">S (Process State)</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#cpu" class="uagb-toc-link__trigger">%CPU</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#mem" class="uagb-toc-link__trigger">%MEM</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#time" class="uagb-toc-link__trigger">TIME+</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#command" class="uagb-toc-link__trigger">COMMAND</a></li></ul></li></ul></li><li class="uagb-toc__list"><a href="#top에서-자주-보이는-커널시스템-프로세스-10개" class="uagb-toc-link__trigger"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2b50.png" alt="⭐" class="wp-smiley" style="height: 1em; max-height: 1em;" /> top에서 자주 보이는 커널/시스템 프로세스 10개</a><ul class="uagb-toc__list"><li class="uagb-toc__list"><a href="#systemd" class="uagb-toc-link__trigger">systemd</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#kworker" class="uagb-toc-link__trigger">kworker</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#ksoftirqd" class="uagb-toc-link__trigger">ksoftirqd</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#rcu" class="uagb-toc-link__trigger">rcu</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#migration" class="uagb-toc-link__trigger">migration</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#kthreadd" class="uagb-toc-link__trigger">kthreadd</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#kswapd" class="uagb-toc-link__trigger">kswapd</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#kcompactd" class="uagb-toc-link__trigger">kcompactd</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#cpuhp" class="uagb-toc-link__trigger">cpuhp</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#idle-inject" class="uagb-toc-link__trigger">idle_inject</a></ul></ul></ul></ol>					</div>
									</div>
				</div>
			


<div style="height:50px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f525.png" alt="🔥" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 가장 많이 쓰는 top 단축키</h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>키</th><th>기능</th><th>설명</th></tr></thead><tbody><tr><td><code>q</code></td><td>종료</td><td>top 종료</td></tr><tr><td><code>h</code></td><td>도움말</td><td>모든 단축키 보기</td></tr><tr><td><code>k</code></td><td>프로세스 종료</td><td>PID 입력 후 kill</td></tr><tr><td><code>r</code></td><td>nice 값 변경</td><td>프로세스 우선순위 변경</td></tr><tr><td><code>c</code></td><td>명령어 전체 표시</td><td>프로그램 경로 표시</td></tr><tr><td><code>P</code></td><td>CPU 사용률 정렬</td><td>CPU 많이 쓰는 순</td></tr><tr><td><code>M</code></td><td>메모리 사용률 정렬</td><td>메모리 많이 쓰는 순</td></tr><tr><td><code>T</code></td><td>실행 시간 정렬</td><td>오래 실행된 순</td></tr><tr><td><code>N</code></td><td>PID 정렬</td><td>PID 기준 정렬</td></tr><tr><td>R</td><td>정렬 역순</td><td>정렬 방향 반전</td></tr><tr><td>1</td><td>CPU 코어별 보기</td><td>CPU 코어별 사용률 표시</td></tr><tr><td>t</td><td>CPU 정보 토글</td><td>CPU 사용률 영역 표시/숨김</td></tr><tr><td>m</td><td>메모리 정보 토글</td><td>메모리 정보 표시/숨김</td></tr><tr><td>l</td><td>Load average 토글</td><td>load average 표시/숨김</td></tr><tr><td>i</td><td>Idle 프로세스 숨김</td><td>CPU 사용 중인 프로세스만 표시</td></tr><tr><td>u</td><td>사용자 필터</td><td>특정 사용자 프로세스만 표시</td></tr><tr><td>d</td><td>refresh 시간 변경</td><td>화면 갱신 주기 변경</td></tr><tr><td>s</td><td>refresh 시간 변경 (구버전)</td><td>갱신 간격 설정</td></tr><tr><td>f</td><td>표시 컬럼 설정</td><td>top 컬럼 추가/삭제</td></tr><tr><td>W</td><td>설정 저장</td><td>현재 top 설정 저장</td></tr><tr><td>V</td><td>트리 구조로 부모-자식 관계 표시</td><td></td></tr><tr><td>v</td><td>선택한 프로세스의 자식 프로세스 숨기기/보이기</td><td></td></tr><tr><td>F</td><td>포커스 모드 진입</td><td></td></tr></tbody></table></figure>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">단축키 도움말
# 원문
Help for Interactive Commands - procps-ng 4.0.4
Window 1:Def: Cumulative mode Off.  System: Delay 3.0 secs; Secure mode Off.

  Z,B,E,e   Global: 'Z' colors; 'B' bold; 'E'/'e' summary/task memory scale
  l,t,m,I,0 Toggle: 'l' load avg; 't' task/cpu; 'm' memory; 'I' Irix; '0' zeros
  1,2,3,4,5 Toggle: '1/2/3' cpu/numa views; '4' cpus abreast; '5' P/E-cores
  f,X       Fields: 'f' add/remove/order/sort; 'X' increase fixed-width fields

  L,&amp;,&lt;,> . Locate: 'L'/'&amp;' find/again; Move sort column: '&lt;'/'>' left/right
  R,H,J,C . Toggle: 'R' Sort; 'H' Threads; 'J' Num justify; 'C' Coordinates
  c,i,S,j . Toggle: 'c' Cmd name/line; 'i' Idle; 'S' Time; 'j' Str justify
  x,y     . Toggle highlights: 'x' sort field; 'y' running tasks
  z,b     . Toggle: 'z' color/mono; 'b' bold/reverse (only if 'x' or 'y')
  u,U,o,O . Filter by: 'u'/'U' effective/any user; 'o'/'O' other criteria
  n,#,^O  . Set: 'n'/'#' max tasks displayed; Show: Ctrl+'O' other filter(s)
  V,v,F   . Toggle: 'V' forest view; 'v' hide/show children; 'F' keep focused

  d,k,r,^R 'd' set delay; 'k' kill; 'r' renice; Ctrl+'R' renice autogroup
  ^G,K,N,U  View: ctl groups ^G; cmdline ^K; environment ^N; supp groups ^U
  Y,!,^E,P  Inspect 'Y'; Combine Cpus '!'; Scale time ^E; View namespaces ^P
  W,q       Write config file 'W'; Quit 'q'
          ( commands shown with '.' require a visible task display window )
Press 'h' or '?' for help with Windows,

# 번역본
대화형 명령어 도움말 - procps-ng 4.0.4
창 1: 기본값(Def): 누적 모드 꺼짐.  시스템: 갱신 지연 3.0초; 보안 모드 꺼짐.

  Z,B,E,e   전역 설정: 'Z' 색상; 'B' 굵게 표시; 'E'/'e' 요약/작업 메모리 표시 단위
  l,t,m,I,0 토글: 'l' load average; 't' 작업/CPU; 'm' 메모리; 'I' Irix 모드; '0' 0 값 표시
  1,2,3,4,5 토글: '1/2/3' CPU/NUMA 보기; '4' CPU 가로 나열; '5' P/E 코어 표시
  f,X       필드: 'f' 필드 추가/제거/순서/정렬; 'X' 고정 너비 필드 크기 증가

  L,&amp;,&lt;,> . 검색: 'L'/'&amp;' 찾기/다시 찾기; 정렬 열 이동: '&lt;'/'>' 왼쪽/오른쪽
  R,H,J,C . 토글: 'R' 정렬 방향; 'H' 스레드 표시; 'J' 숫자 정렬; 'C' 좌표 표시
  c,i,S,j . 토글: 'c' 명령어 이름/전체 명령줄; 'i' 유휴 작업; 'S' 시간; 'j' 문자열 정렬
  x,y     . 강조 토글: 'x' 정렬 필드 강조; 'y' 실행 중 작업 강조
  z,b     . 토글: 'z' 컬러/흑백; 'b' 굵게/역상 (x 또는 y가 활성화된 경우)
  u,U,o,O . 필터: 'u'/'U' 실행 사용자/모든 사용자; 'o'/'O' 다른 조건
  n,#,^O  . 설정: 'n'/'#' 표시할 최대 작업 수; 표시: Ctrl+'O' 다른 필터 보기
  V,v,F   . 토글: 'V' 트리(forest) 보기; 'v' 자식 프로세스 숨김/표시; 'F' 포커스 유지

  d,k,r,^R 'd' 갱신 지연 설정; 'k' 프로세스 종료; 'r' nice 값 변경; Ctrl+'R' autogroup nice 변경
  ^G,K,N,U  보기: Ctrl+'G' 제어 그룹; Ctrl+'K' 명령줄; Ctrl+'N' 환경 변수; Ctrl+'U' 보조 그룹
  Y,!,^E,P  검사: 'Y' 상세 검사; '!' CPU 결합; Ctrl+'E' 시간 단위 변경; Ctrl+'P' 네임스페이스 보기
  W,q       'W' 설정 파일 저장; 'q' 종료
          ( '.' 표시가 있는 명령어는 작업 목록 창이 보일 때만 사용 가능 )
Windows 관련 도움말은 'h' 또는 '?' 키를 누르십시오.</pre>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">예시 (기본)</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">[lycos7560@DMT-RL01 ~]$ top
top - 03:42:50 up 2 min,  2 users,  load average: 0.01, 0.00, 0.00
Tasks: 269 total,   1 running, 268 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni, 99.9 id,  0.0 wa,  0.1 hi,  0.0 si,  0.0 st
MiB Mem :   3621.8 total,   3136.7 free,    512.6 used,    187.3 buff/cache
MiB Swap:   4008.0 total,   4008.0 free,      0.0 used.   3109.2 avail Mem

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
     28 root      20   0       0      0      0 I   0.3   0.0   0:00.17 kworker/1:0-events
      1 root      20   0   49176  40952  10468 S   0.0   1.1   0:02.13 systemd
      2 root      20   0       0      0      0 S   0.0   0.0   0:00.02 kthreadd
      3 root      20   0       0      0      0 S   0.0   0.0   0:00.00 pool_workqueue_release
      4 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 kworker/R-rcu_gp
      5 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 kworker/R-sync_wq
      6 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 kworker/R-slub_flushwq
      7 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 kworker/R-netns
      8 root      20   0       0      0      0 I   0.0   0.0   0:00.00 kworker/0:0-events
      9 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 kworker/0:0H-events_highpri
     10 root      20   0       0      0      0 I   0.0   0.0   0:00.10 kworker/0:1-events
     11 root      20   0       0      0      0 I   0.0   0.0   0:00.00 kworker/u512:0-async
     12 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 kworker/R-mm_percpu_wq
     13 root      20   0       0      0      0 I   0.0   0.0   0:00.69 kworker/u512:1-async
     14 root      20   0       0      0      0 I   0.0   0.0   0:00.00 rcu_tasks_kthread
     15 root      20   0       0      0      0 I   0.0   0.0   0:00.00 rcu_tasks_rude_kthread
     16 root      20   0       0      0      0 I   0.0   0.0   0:00.00 rcu_tasks_trace_kthread
     17 root      20   0       0      0      0 S   0.0   0.0   0:00.00 ksoftirqd/0
     18 root      20   0       0      0      0 I   0.0   0.0   0:00.00 rcu_preempt
     19 root      20   0       0      0      0 S   0.0   0.0   0:00.00 rcu_exp_par_gp_kthread_worker/1
     20 root      20   0       0      0      0 S   0.0   0.0   0:00.00 rcu_exp_gp_kthread_worker
     21 root      rt   0       0      0      0 S   0.0   0.0   0:00.00 migration/0
     22 root     -51   0       0      0      0 S   0.0   0.0   0:00.00 idle_inject/0
     23 root      20   0       0      0      0 S   0.0   0.0   0:00.00 cpuhp/0
     24 root      20   0       0      0      0 S   0.0   0.0   0:00.00 cpuhp/1
     25 root     -51   0       0      0      0 S   0.0   0.0   0:00.00 idle_inject/1
     26 root      rt   0       0      0      0 S   0.0   0.0   0:00.52 migration/1
     27 root      20   0       0      0      0 S   0.0   0.0   0:00.00 ksoftirqd/1
     29 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 kworker/1:0H-events_highpri
     30 root      20   0       0      0      0 S   0.0   0.0   0:00.00 cpuhp/2
     31 root     -51   0       0      0      0 S   0.0   0.0   0:00.00 idle_inject/2
     32 root      rt   0       0      0      0 S   0.0   0.0   0:00.52 migration/2
     33 root      20   0       0      0      0 S   0.0   0.0   0:00.00 ksoftirqd/2
     34 root      20   0       0      0      0 I   0.0   0.0   0:00.00 kworker/2:0-rcu_gp
     35 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 kworker/2:0H-events_highpri
     36 root      20   0       0      0      0 S   0.0   0.0   0:00.00 cpuhp/3
     37 root     -51   0       0      0      0 S   0.0   0.0   0:00.00 idle_inject/3
     38 root      rt   0       0      0      0 S   0.0   0.0   0:00.53 migration/3
     39 root      20   0       0      0      0 S   0.0   0.0   0:00.00 ksoftirqd/3
     40 root      20   0       0      0      0 I   0.0   0.0   0:00.09 kworker/3:0-events
     41 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 kworker/3:0H-events_highpri
     43 root      20   0       0      0      0 I   0.0   0.0   0:00.02 kworker/u512:2-async
</pre>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" style="margin-top:var(--wp--preset--spacing--50);margin-bottom:var(--wp--preset--spacing--50)"/>



<h3 class="wp-block-heading">1&#x20e3; 시스템 전체 상태</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">top - 03:42:50 up 2 min,  2 users,  load average: 0.05, 0.05, 0.02</pre>



<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>항목</th><th>의미</th></tr></thead><tbody><tr><td><code>03:42:50</code></td><td>현재 시스템 시간</td></tr><tr><td><code>up 2 min</code></td><td>시스템이 부팅된 후 <strong>가동 시간</strong></td></tr><tr><td><code>2 users</code></td><td>현재 로그인한 사용자 수</td></tr><tr><td><code>load average</code></td><td>시스템 평균 부하</td></tr></tbody></table></figure>



<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>



<h5 class="wp-block-heading">load average</h5>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">0.05, 0.05, 0.02</pre>



<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>



<p>각 의미</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>값</th><th>의미</th></tr></thead><tbody><tr><td>첫번째</td><td>1분 평균 부하</td></tr><tr><td>두번째</td><td>5분 평균 부하</td></tr><tr><td>세번째</td><td>15분 평균 부하</td></tr></tbody></table></figure>



<p><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f449.png" alt="👉" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Load Average 의미</strong></p>



<p>CPU가 처리해야 할 <strong>대기 작업 수</strong></p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">CPU 실행중 프로세스
CPU 실행 대기 프로세스
Disk I/O 대기 프로세스</pre>



<p>예시</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>CPU 코어</th><th>정상 load</th></tr></thead><tbody><tr><td>1 core</td><td>1.0</td></tr><tr><td>4 core</td><td>4.0</td></tr></tbody></table></figure>



<p>지금 값</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">0.05
<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/27a1.png" alt="➡" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 거의 아무 작업도 없는 상태 <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f44d.png" alt="👍" class="wp-smiley" style="height: 1em; max-height: 1em;" /></pre>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" style="margin-top:var(--wp--preset--spacing--40);margin-bottom:var(--wp--preset--spacing--40)"/>



<h3 class="wp-block-heading">2&#x20e3; 프로세스 상태</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">Tasks: 269 total,   1 running, 268 sleeping,   0 stopped,   0 zombie</pre>



<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>항목</th><th>의미</th></tr></thead><tbody><tr><td>total</td><td>전체 프로세스 수</td></tr><tr><td>running</td><td>실행 중</td></tr><tr><td>sleeping</td><td>대기 상태</td></tr><tr><td>stopped</td><td>중지된 프로세스</td></tr><tr><td>zombie</td><td>좀비 프로세스</td></tr></tbody></table></figure>



<p>현재 상태</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>상태</th><th>값</th></tr></thead><tbody><tr><td>전체 프로세스</td><td>269</td></tr><tr><td>실행 중</td><td>1</td></tr><tr><td>대기</td><td>268</td></tr><tr><td>좀비</td><td>0</td></tr></tbody></table></figure>



<p><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f449.png" alt="👉" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 대부분 시스템 프로세스는 <strong>sleep 상태</strong>입니다.</p>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" style="margin-top:var(--wp--preset--spacing--40);margin-bottom:var(--wp--preset--spacing--40)"/>



<h3 class="wp-block-heading">3&#x20e3; CPU 사용률</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni, 99.9 id,  0.0 wa,  0.1 hi,  0.0 si,  0.0 st</pre>



<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>



<p>CPU 사용률 항목</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>항목</th><th>의미</th></tr></thead><tbody><tr><td>us (user)</td><td>사용자 프로그램 사용 CPU</td></tr><tr><td>sy (system)</td><td>커널 사용 CPU</td></tr><tr><td>ni (nice)</td><td>nice 값 조정된 프로세스<br><strong>nice 값이 변경된 프로세스가 사용한 CPU</strong>로<br>이 작업이 CPU를 20% 사용하면 %Cpu(s): 5 us, 3 sy, 20 ni, …</td></tr><tr><td>id (idle)</td><td>CPU 유휴 상태</td></tr><tr><td>wa (wait)</td><td>I/O 대기</td></tr><tr><td>hi</td><td>하드웨어 인터럽트</td></tr><tr><td>si</td><td>소프트웨어 인터럽트</td></tr><tr><td>st</td><td>VM에서 CPU 뺏긴 시간</td></tr></tbody></table></figure>



<p>현재 상태</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">100% idle
<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/27a1.png" alt="➡" class="wp-smiley" style="height: 1em; max-height: 1em;" /> CPU 완전 여유 상태</pre>



<div style="height:5px" aria-hidden="true" class="wp-block-spacer"></div>



<p>멀티코어 환경에서 100%를 초과할 수 있음<br>(예: 4코어면 최대 400%)</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" style="margin-top:var(--wp--preset--spacing--40);margin-bottom:var(--wp--preset--spacing--40)"/>



<h3 class="wp-block-heading">4&#x20e3; 메모리 정보</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">MiB Mem :   3621.8 total,   3136.7 free,    512.6 used,    187.3 buff/cache
MiB Swap:   4008.0 total,   4008.0 free,      0.0 used.   3109.2 avail Mem</pre>



<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>항목</th><th>의미</th></tr></thead><tbody><tr><td>total</td><td>전체 메모리</td></tr><tr><td>free</td><td>완전히 남은 메모리</td></tr><tr><td>used</td><td>실제 사용</td></tr><tr><td>buff/cache</td><td>캐시 / 버퍼</td></tr></tbody></table></figure>



<p>현재 상태</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>항목</th><th>값</th></tr></thead><tbody><tr><td>total</td><td>3621MB</td></tr><tr><td>free</td><td>3136MB</td></tr><tr><td>used</td><td>512MB</td></tr><tr><td>cache</td><td>187MB</td></tr></tbody></table></figure>



<p>참고: 리눅스는 <strong>남는 메모리를 캐시로 사용</strong>하므로 free 메모리가 적어도 실제로는 여유가 많을 수 있다.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">예를 들어
free       3137 MB
buff/cache 187 MB
≈ 3324 MB

# 추가적으로 리눅스에서는 일부 메모리 커널이 예약(reserved)함. 
4096 MB - 약 400~500 MB
≈ 3600 MB

[lycos7560@DMT-RL01 ~]$ free -h
               total        used        free      shared  buff/cache   available
Mem:           3.5Gi       506Mi       3.1Gi       9.0Mi       187Mi       3.0Gi
Swap:          3.9Gi          0B       3.9Gi

실무에서는 출력에서 free -h의 available 만 본다.</pre>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading">Swap 정보</h4>



<p>Swap(스왑)은 리눅스에서 <strong>메모리(RAM)가 부족할 때 사용하는 디스크 공간</strong>으로 쉽게 말하면 RAM의 임시 확장 공간입니다.</p>



<p>RAM이 부족하면 운영체제는 <strong>일부 데이터를 디스크로 옮겨서 공간을 확보</strong>합니다.</p>



<p>이 디스크 공간을 <strong>Swap</strong>이라고 합니다.</p>



<p>RAM = 4GB<br>프로그램 실행 = 5GB 필요<br>4GB → RAM<br>1GB → Swap<br>RAM 부족 → 일부 데이터를 디스크로 이동</p>



<p>단, Swap은 <strong>디스크</strong>를 사용하기 때문에 매우 느립니다.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">MiB Swap:   4008.0 total,   4008.0 free,      0.0 used.   3109.2 avail Mem</pre>



<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>항목</th><th>의미</th></tr></thead><tbody><tr><td>total</td><td>swap 전체</td></tr><tr><td>free</td><td>남은 swap</td></tr><tr><td>used</td><td>사용된 swap</td></tr><tr><td>avail Mem</td><td>실제 사용 가능한 메모리</td></tr></tbody></table></figure>



<p>현재 상태</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>항목</th><th>값</th></tr></thead><tbody><tr><td>swap total</td><td>4GB</td></tr><tr><td>swap used</td><td>0</td></tr></tbody></table></figure>



<p><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/27a1.png" alt="➡" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>swap 사용 없음 (아주 좋은 상태)</strong></p>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" style="margin-top:var(--wp--preset--spacing--40);margin-bottom:var(--wp--preset--spacing--40)"/>



<h3 class="wp-block-heading">5&#x20e3; 프로세스 정보 영역 (Process List)</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">   PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
     28 root      20   0       0      0      0 I   0.3   0.0   0:00.17 kworker/1:0-events
      1 root      20   0   49176  40952  10468 S   0.0   1.1   0:02.13 systemd
.... 생략</pre>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>항목</th><th>의미</th></tr></thead><tbody><tr><td>PID</td><td>프로세스 ID</td></tr><tr><td>USER</td><td>프로세스를 실행한 사용자</td></tr><tr><td>PR</td><td>프로세스 우선순위 (Priority)</td></tr><tr><td>NI</td><td>nice 값 (우선순위 조정 값)</td></tr><tr><td>VIRT</td><td>가상 메모리 사용량</td></tr><tr><td>RES</td><td>실제 RAM 사용량</td></tr><tr><td>SHR</td><td>다른 프로세스와 공유하는 메모리</td></tr><tr><td>S</td><td>프로세스 상태</td></tr><tr><td>%CPU</td><td>CPU 사용률</td></tr><tr><td>%MEM</td><td>메모리 사용률</td></tr><tr><td>TIME+</td><td>CPU 사용 누적 시간</td></tr><tr><td>COMMAND</td><td>실행된 명령어</td></tr></tbody></table></figure>



<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading">PID (Process ID)</h4>



<p>프로세스의 <strong>고유 번호</strong>입니다.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># 리눅스에서 systemd은 항상 PID 1
# 리눅스 시스템의 최초 프로세스

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
      1 root      20   0   49176  40952  10468 S   0.0   1.1   0:02.15 systemd
      2 root      20   0       0      0      0 S   0.0   0.0   0:00.02 kthreadd
      3 root      20   0       0      0      0 S   0.0   0.0   0:00.00 pool_workqueue_release
      4 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 kworker/R-rcu_gp
      5 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 kworker/R-sync_wq
      6 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 kworker/R-slub_flushwq
      7 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 kworker/R-netns
      9 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 kworker/0:0H-events_highpri
     12 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 kworker/R-mm_percpu_wq
     14 root      20   0       0      0      0 I   0.0   0.0   0:00.00 rcu_tasks_kthread
     15 root      20   0       0      0      0 I   0.0   0.0   0:00.00 rcu_tasks_rude_kthread
     16 root      20   0       0      0      0 I   0.0   0.0   0:00.00 rcu_tasks_trace_kthread
     17 root      20   0       0      0      0 S   0.0   0.0   0:00.00 ksoftirqd/0
     18 root      20   0       0      0      0 I   0.0   0.0   0:00.02 rcu_preempt
     19 root      20   0       0      0      0 S   0.0   0.0   0:00.00 rcu_exp_par_gp_kthread_worker/1
     20 root      20   0       0      0      0 S   0.0   0.0   0:00.00 rcu_exp_gp_kthread_worker
     21 root      rt   0       0      0      0 S   0.0   0.0   0:00.00 migration/0
     22 root     -51   0       0      0      0 S   0.0   0.0   0:00.00 idle_inject/0
     23 root      20   0       0      0      0 S   0.0   0.0   0:00.00 cpuhp/0
     24 root      20   0       0      0      0 S   0.0   0.0   0:00.00 cpuhp/1
     25 root     -51   0       0      0      0 S   0.0   0.0   0:00.00 idle_inject/1
     26 root      rt   0       0      0      0 S   0.0   0.0   0:00.53 migration/1
     27 root      20   0       0      0      0 S   0.0   0.0   0:00.00 ksoftirqd/1
     29 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 kworker/1:0H-events_highpri
     30 root      20   0       0      0      0 S   0.0   0.0   0:00.00 cpuhp/2
     31 root     -51   0       0      0      0 S   0.0   0.0   0:00.00 idle_inject/2
     32 root      rt   0       0      0      0 S   0.0   0.0   0:00.53 migration/2
     33 root      20   0       0      0      0 S   0.0   0.0   0:00.00 ksoftirqd/2
     35 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 kworker/2:0H-events_highpri

... 생략
</pre>



<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading">PR (Priority)</h4>



<p>프로세스의 <strong>실제 스케줄러 우선순위</strong><br>(일반적으로 PR = 20 이 기본)</p>



<p>일반 프로세스는 PR = 20 + NI, 실시간 프로세스는 PR이 -100 등으로 낮게 표시됨</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>값</th><th>의미</th></tr></thead><tbody><tr><td>낮을수록</td><td>높은 우선순위</td></tr><tr><td>높을수록</td><td>낮은 우선순위</td></tr></tbody></table></figure>



<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading">NI (Nice Value)</h4>



<p>CPU 우선순위를 조정하는 값 (-20 ~ 19)</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>값</th><th>의미</th></tr></thead><tbody><tr><td>-20</td><td>최고 우선순위</td></tr><tr><td>0</td><td>기본</td></tr><tr><td>19</td><td>가장 낮음</td></tr></tbody></table></figure>



<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading">VIRT (Virtual Memory)</h4>



<p>프로세스가 확보한 가상 메모리 전체. </p>



<p>실제로 물리 메모리(RES)나 스왑을 사용하지 않더라도, 주소 공간만 확보한 경우도 포함.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">RAM
Swap
Shared library
Mapped file

#즉, 프로세스가 접근 가능한 전체 메모리 공간</pre>



<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading">RES (Resident Memory)</h4>



<p>실제 물리 메모리에 상주하는 크기. (프로세스가 현재 사용 중인 RAM)</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">실제 물리 메모리 사용량

systemd
RES = 40952 KB (약 40MB RAM 사용)</pre>



<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading">SHR (Shared Memory)</h4>



<p>공유 메모리 영역. 주로 공유 라이브러리(예: libc)가 여러 프로세스에서 공유되는 부분.</p>



<p>특히&nbsp;<code>SHR</code>은 다른 프로세스와 공유되므로, 모든 프로세스의 SHR을 합치면 전체 메모리보다 커질 수 있습니다. (중복 포함)</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">대표적으로 shared library 
libc
glibc</pre>



<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading">S (Process State)</h4>



<p>프로세스 상태를 나타냅니다.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>상태</th><th>의미</th></tr></thead><tbody><tr><td>R</td><td>Running (실행 중)</td></tr><tr><td>S</td><td>Sleeping (대기 상태)</td></tr><tr><td>D</td><td>I/O 대기</td></tr><tr><td>T</td><td>중지됨</td></tr><tr><td>Z</td><td>Zombie</td></tr><tr><td>I</td><td>Idle kernel thread</td></tr></tbody></table></figure>



<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading">%CPU</h4>



<p>프로세스가 사용한 <strong>CPU 비율</strong></p>



<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading">%MEM</h4>



<p>전체 메모리 중 해당 프로세스가 사용하는 비율</p>



<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading">TIME+</h4>



<p>프로세스가 사용한 <strong>총 CPU 시간</strong></p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">TIME+ 형식 / 분:초.센티초

0:02.13 => 2.13초 동안 CPU 사용
1:30.00 => 1분 30초</pre>



<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading">COMMAND</h4>



<p>실행 중인 <strong>프로그램 이름</strong></p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">systemd
kworker
sshd
bash</pre>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" style="margin-top:var(--wp--preset--spacing--40);margin-bottom:var(--wp--preset--spacing--40)"/>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2b50.png" alt="⭐" class="wp-smiley" style="height: 1em; max-height: 1em;" /> top에서 자주 보이는 커널/시스템 프로세스 10개</h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>프로세스</th><th>역할</th></tr></thead><tbody><tr><td>systemd</td><td>시스템 관리자</td></tr><tr><td>kworker</td><td>커널 작업 처리</td></tr><tr><td>ksoftirqd</td><td>인터럽트 처리</td></tr><tr><td>rcu</td><td>동시성 관리</td></tr><tr><td>migration</td><td>CPU 작업 이동</td></tr><tr><td>kthreadd</td><td>커널 스레드 생성</td></tr><tr><td>kswapd</td><td>swap 관리</td></tr><tr><td>kcompactd</td><td>메모리 정리</td></tr><tr><td>cpuhp</td><td>CPU hotplug 관리</td></tr><tr><td>idle_inject</td><td>CPU idle 관리</td></tr></tbody></table></figure>



<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading">systemd</h4>



<p>리눅스 시스템의 첫 번째 프로세스 (PID 1)</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># 역할 - 리눅스 전체 시스템 관리자
시스템 초기화
서비스 관리
데몬 실행
시스템 종료 관리

# 예
systemctl start sshd
systemctl stop httpd</pre>



<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading">kworker</h4>



<p>커널의 백그라운드 작업 처리 스레드 / 특정 CPU에 바인딩된 워커 스레드</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">kworker/1:0-events

# 역할
비동기 커널 작업 처리
장치 드라이버 작업
I/O 처리

kworker/1:0처럼 숫자가 붙은 것이 바인딩된 워커
ukworker/u512처럼 u가 붙은 것은 unbound(특정 CPU에 바인딩되지 않은) 워커</pre>



<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading">ksoftirqd</h4>



<p>소프트웨어 인터럽트 처리 스레드</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">ksoftirqd/0

# 역할
네트워크 패킷 처리
인터럽트 후 작업 처리
soft interrupt 처리</pre>



<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading">rcu</h4>



<p>멀티코어 환경에서 데이터 동기화</p>



<p>RCU (Read Copy Update) 관리 스레드 &#8211; RCU는 리눅스 커널의 <strong>동시성 제어 기술</strong></p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">rcu_preempt
rcu_tasks_kthread</pre>



<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading">migration</h4>



<p>CPU 작업 이동 관리 &#8211; 프로세스를 다른 CPU 코어로 이동</p>



<p>CPU 간 부하 분산(load balancing)을 위해 프로세스를 이동시킨다.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">migration/0
migration/1

CPU load balancing</pre>



<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading">kthreadd</h4>



<p>PID 2 </p>



<p>커널 스레드의 부모 프로세스로 모든 커널 스레드 생성</p>



<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading">kswapd</h4>



<p>메모리 관리 스레드 / 메모리 부족 시 swap 관리</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">RAM 부족
→ 페이지 교체
→ swap 사용</pre>



<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading">kcompactd</h4>



<p>메모리 조각 정리 스레드 / 메모리 조각화 해결</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">큰 메모리 블록 필요
→ 메모리 재배치</pre>



<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading">cpuhp</h4>



<p>CPU Hotplug 관리 / CPU 활성화/비활성화 관리</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">cpuhp/0

CPU online/offline</pre>



<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading">idle_inject</h4>



<p>CPU idle 상태 관리 / CPU 전력 관리</p>



<p>CPU가 유휴 상태일 때 전력 절감을 위해 idle을 주입하는 스레드</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">CPU idle 상태 유지</pre>



<p></p>
<p>The post <a href="https://lycos7560.com/etc/top-%eb%aa%85%eb%a0%b9%ec%96%b4-%ed%95%b5%ec%8b%ac-%ec%a0%95%eb%a6%ac-linux-top/40541/">top 명령어 핵심 정리 &#8211; Linux top</a> appeared first on <a href="https://lycos7560.com">어제와 내일의 나 그 사이의 이야기</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://lycos7560.com/etc/top-%eb%aa%85%eb%a0%b9%ec%96%b4-%ed%95%b5%ec%8b%ac-%ec%a0%95%eb%a6%ac-linux-top/40541/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>openssh-server 설치 명령어 / SSH (Secure Shell)</title>
		<link>https://lycos7560.com/etc/openssh-server-%ec%84%a4%ec%b9%98-%eb%aa%85%eb%a0%b9%ec%96%b4-ssh-secure-shell/40533/</link>
					<comments>https://lycos7560.com/etc/openssh-server-%ec%84%a4%ec%b9%98-%eb%aa%85%eb%a0%b9%ec%96%b4-ssh-secure-shell/40533/#respond</comments>
		
		<dc:creator><![CDATA[lycos7560]]></dc:creator>
		<pubDate>Tue, 10 Mar 2026 19:51:37 +0000</pubDate>
				<category><![CDATA[기타]]></category>
		<guid isPermaLink="false">https://lycos7560.com/?p=40533</guid>

					<description><![CDATA[<p>SSH (Secure Shell) 🔐 SSH란? 네트워크를 통해 원격 컴퓨터에 안전하게 접속하기 위한 프로토콜입니다. 기존의 telnet, rsh 등이 평문(암호화 없이) 통신했던 것을 암호화된 통신으로 대체합니다. 📦 구성 요소 구성 설명 openssh SSH 핵심 라이브러리 openssh-server 서버 측 데몬 (sshd) — 방금 설치한 것 openssh-clients 클라이언트 측 (ssh, scp, sftp 명령어) 🔑 인증 방식 1. 비밀번호 인증 [&#8230;]</p>
<p>The post <a href="https://lycos7560.com/etc/openssh-server-%ec%84%a4%ec%b9%98-%eb%aa%85%eb%a0%b9%ec%96%b4-ssh-secure-shell/40533/">openssh-server 설치 명령어 / SSH (Secure Shell)</a> appeared first on <a href="https://lycos7560.com">어제와 내일의 나 그 사이의 이야기</a>.</p>
]]></description>
										<content:encoded><![CDATA[				<div class="wp-block-uagb-table-of-contents uagb-toc__align-left uagb-toc__columns-1  uagb-block-997d744c      "
					data-scroll= "1"
					data-offset= "30"
					style=""
				>
				<div class="uagb-toc__wrap">
						<div class="uagb-toc__title">
							목차						</div>
																						<div class="uagb-toc__list-wrap ">
						<ol class="uagb-toc__list"><li class="uagb-toc__list"><a href="#ssh-secure-shell" class="uagb-toc-link__trigger">SSH (Secure Shell)</a><ul class="uagb-toc__list"><li class="uagb-toc__list"><a href="#ssh란" class="uagb-toc-link__trigger"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f510.png" alt="🔐" class="wp-smiley" style="height: 1em; max-height: 1em;" /> SSH란?</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#구성-요소" class="uagb-toc-link__trigger"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4e6.png" alt="📦" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 구성 요소</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#인증-방식" class="uagb-toc-link__trigger"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f511.png" alt="🔑" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 인증 방식</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#주요-설정-파일" class="uagb-toc-link__trigger"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2699.png" alt="⚙" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 주요 설정 파일</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#서비스-시작" class="uagb-toc-link__trigger"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f680.png" alt="🚀" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 서비스 시작</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#보안-핵심-포인트" class="uagb-toc-link__trigger"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f6e1.png" alt="🛡" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 보안 핵심 포인트</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#패키지-상세-정보" class="uagb-toc-link__trigger">패키지 상세 정보</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#설치-파일-목록-확인" class="uagb-toc-link__trigger">설치 파일 목록 확인</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#설치되는-의존성-패키지-확인" class="uagb-toc-link__trigger">설치되는 의존성 패키지 확인</a></ul></ol>					</div>
									</div>
				</div>
			


<div style="height:40px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">SSH (Secure Shell)</h2>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f510.png" alt="🔐" class="wp-smiley" style="height: 1em; max-height: 1em;" /> SSH란?</h3>



<p>네트워크를 통해 <strong>원격 컴퓨터에 안전하게 접속</strong>하기 위한 프로토콜입니다. </p>



<p>기존의 telnet, rsh 등이 평문(암호화 없이) 통신했던 것을 <strong>암호화된 통신</strong>으로 대체합니다.</p>



<ul class="wp-block-list">
<li>기본 포트: <strong>22번</strong></li>



<li>현재 표준: <strong>SSH-2</strong> (SSH-1은 보안 취약점으로 사용 안 함)</li>
</ul>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># SSH 동작 구조
Client (ssh)
     ↓
암호화 통신
     ↓
Server (sshd)

# SSH 접속 과정
1 Client → Server 연결
2 Key 교환
3 암호화 알고리즘 협상
4 사용자 인증
5 세션 생성

# SSH 로그 확인
journalctl -u sshd
또는
/var/log/secure</pre>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4e6.png" alt="📦" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 구성 요소</h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>구성</th><th>설명</th></tr></thead><tbody><tr><td><strong>openssh</strong></td><td>SSH 핵심 라이브러리</td></tr><tr><td><strong>openssh-server</strong></td><td>서버 측 데몬 (<code>sshd</code>) — 방금 설치한 것</td></tr><tr><td><strong>openssh-clients</strong></td><td>클라이언트 측 (<code>ssh</code>, <code>scp</code>, <code>sftp</code> 명령어)</td></tr></tbody></table></figure>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f511.png" alt="🔑" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 인증 방식</h3>



<p><strong>1. 비밀번호 인증</strong></p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">클라이언트 → 서버에 ID/PW 입력</pre>



<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>



<p><strong>2. 키 기반 인증 (더 안전, 실무 권장)</strong></p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">개인키(Private Key) — 클라이언트 보관
공개키(Public Key)  — 서버에 등록</pre>



<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>



<p>bash</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">ssh-keygen                       # 키 생성
ssh-copy-id user@서버IP           # 공개키 서버에 등록</pre>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2699.png" alt="⚙" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 주요 설정 파일</h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>파일</th><th>역할</th></tr></thead><tbody><tr><td><code>/etc/ssh/sshd_config</code></td><td><strong>서버 핵심 설정</strong> (포트, 인증방식 등)</td></tr><tr><td><code>/etc/ssh/sshd_config.d/50-redhat.conf</code></td><td>Rocky/RHEL 기본 설정</td></tr><tr><td><code>/etc/pam.d/sshd</code></td><td>PAM 인증 연동 설정</td></tr><tr><td><code>/etc/sysconfig/sshd</code></td><td>sshd 서비스 환경변수</td></tr></tbody></table></figure>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f680.png" alt="🚀" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 서비스 시작</h3>



<p>bash</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">sudo systemctl start sshd       # 시작
sudo systemctl enable sshd      # 부팅 시 자동 시작
sudo systemctl enable --now sshd  # 부팅 시 자동 시작 + 지금 당장 시작
sudo systemctl status sshd      # 상태 확인</pre>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f6e1.png" alt="🛡" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 보안 핵심 포인트</h3>



<ul class="wp-block-list">
<li><strong>포트 변경</strong> — 기본 22번에서 다른 포트로 변경 권장</li>



<li><strong>root 로그인 차단</strong> — <code>PermitRootLogin no</code></li>



<li><strong>비밀번호 인증 비활성화</strong> — 키 인증만 허용</li>



<li><strong>방화벽 설정</strong> — 허용된 IP만 접근 가능하도록</li>
</ul>



<p></p>



<h3 class="wp-block-heading">패키지 상세 정보</h3>



<p>공식 홈페이지 <a href="https://www.openssh.org/portable.html" target="_blank" rel="noreferrer noopener">https://www.openssh.org/portable.html</a></p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># 패키지 상세 정보 (버전, 크기, 의존성 등)
dnf info openssh-server</pre>



<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">[lycos7560@DMT-RL01 ~]$ dnf info openssh-server
Rocky Linux 10 - BaseOS                          7.7 MB/s | 14 MB    00:01
Rocky Linux 10 - AppStream                       2.4 MB/s | 2.2 MB   00:00
Rocky Linux 10 - Extras                          9.6 kB/s | 6.0 kB   00:00
Installed Packages
Name         : openssh-server
Version      : 9.9p1      #현재 설치된 버전 확인 → 보안 취약점(CVE) 이 해당 버전에 있는지 체크
Release      : 12.el10_1.rocky.0.1     #el10 = RHEL/Rocky 10 전용 빌드
Architecture : x86_64
Size         : 1.4 M
Source       : openssh-9.9p1-12.el10_1.rocky.0.1.src.rpm    #어떤 소스 RPM으로 빌드됐는지 추적 가능
Repository   : @System    #@System = 이미 설치된 패키지
From repo    : baseos     #baseos = Rocky Linux 공식 저장소에서 설치됨 → 신뢰할 수 있는 출처 확인용
Summary      : An open source SSH server daemon
URL          : http://www.openssh.com/portable.html
License      : BSD-3-Clause AND BSD-2-Clause AND ISC AND SSH-OpenSSH AND ssh-keyscan AND sprintf AND LicenseRef-Fedora-Public-Domain AND
             : X11-distribute-modifications-variant
Description  : OpenSSH is a free version of SSH (Secure SHell), a program for logging
             : into and executing commands on a remote machine. This package contains
             : the secure shell daemon (sshd). The sshd daemon allows SSH clients to
             : securely connect to your SSH server.</pre>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">설치 파일 목록 확인</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># 어떤 파일들이 설치되는지 목록 확인
dnf repoquery -l openssh-server | less

# less
↑↓ 또는 j/k 로 스크롤
q 로 종료
/키워드 로 검색</pre>



<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">[lycos7560@DMT-RL01 ~]$ dnf repoquery -l openssh-server | less
/etc/pam.d/sshd
/etc/ssh/sshd_config
/etc/ssh/sshd_config.d
/etc/ssh/sshd_config.d/40-redhat-crypto-policies.conf
/etc/ssh/sshd_config.d/50-redhat.conf
/etc/sysconfig/sshd
/usr/lib/.build-id
/usr/lib/.build-id/06
/usr/lib/.build-id/06/1c704bdb361c2e2c48c670468eafbc74b84927
/usr/lib/.build-id/57
/usr/lib/.build-id/57/9225214b8a13e39081dd8aa43fbd36e524f19c
/usr/lib/.build-id/9c
/usr/lib/.build-id/9c/f8143dfdfc74c6c9d0e90afd0ec92e8663c759
/usr/lib/systemd/system/ssh-host-keys-migration.service
/usr/lib/systemd/system/ssh-host-keys-migration.target
/usr/lib/systemd/system/sshd-keygen@.service
/usr/lib/systemd/system/sshd.service
/usr/lib/systemd/system/sshd.socket
/usr/lib/systemd/system/sshd@.service
/usr/lib/sysusers.d/openssh-server.conf
/usr/libexec/openssh/sftp-server
/usr/libexec/openssh/ssh-host-keys-migration.sh
/usr/libexec/openssh/sshd-keygen
/usr/libexec/openssh/sshd-session
/usr/sbin/sshd
/usr/share/empty.sshd
/usr/share/man/man5/moduli.5.gz
/usr/share/man/man5/sshd_config.5.gz
/usr/share/man/man8/sftp-server.8.gz
/usr/share/man/man8/sshd.8.gz
/var/lib/.ssh-host-keys-migration
/etc/pam.d/sshd
/etc/ssh/sshd_config
/etc/ssh/sshd_config.d
/etc/ssh/sshd_config.d/40-redhat-crypto-policies.conf
/etc/ssh/sshd_config.d/50-redhat.conf
/etc/sysconfig/sshd
/usr/lib/.build-id
/usr/lib/.build-id/0e
/usr/lib/.build-id/0e/106f434f63522d0cbc3da80690094ec44ec56e
/usr/lib/.build-id/17
/usr/lib/.build-id/17/3d9a1c99482d77a79428b6d7779247b2f90e57
/usr/lib/.build-id/cf
/usr/lib/.build-id/cf/dde200fededbedd053eae13337cc9d3e8b0625
/usr/lib/systemd/system/ssh-host-keys-migration.service
/usr/lib/systemd/system/ssh-host-keys-migration.target
/usr/lib/systemd/system/sshd-keygen@.service
/usr/lib/systemd/system/sshd.service
/usr/lib/systemd/system/sshd.socket
/usr/lib/systemd/system/sshd@.service
/usr/lib/sysusers.d/openssh-server.conf
/usr/libexec/openssh/sftp-server
/usr/libexec/openssh/ssh-host-keys-migration.sh
/usr/libexec/openssh/sshd-keygen
/usr/libexec/openssh/sshd-session
/usr/sbin/sshd
/usr/share/empty.sshd
/usr/share/man/man5/moduli.5.gz
/usr/share/man/man5/sshd_config.5.gz
/usr/share/man/man8/sftp-server.8.gz
/usr/share/man/man8/sshd.8.gz
/var/lib/.ssh-host-keys-migration
(END)</pre>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">설치되는 의존성 패키지 확인</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># 어떤 파일들이 설치되는지 목록 확인
dnf deplist openssh-server | less</pre>



<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">[lycos7560@DMT-RL01 ~]$ dnf deplist openssh-server | less
package: openssh-server-9.9p1-11.el10.rocky.0.1.x86_64
  dependency: /bin/sh
    provider: bash-5.2.26-6.el10.x86_64
  dependency: /usr/bin/bash
    provider: bash-5.2.26-6.el10.x86_64
  dependency: /usr/sbin/useradd
    provider: shadow-utils-2:4.15.0-8.el10.x86_64
  dependency: crypto-policies >= 20220824-1
    provider: crypto-policies-20250905-2.gitc7eb7b2.el10_1.1.noarch
  dependency: libaudit.so.1()(64bit)
    provider: audit-libs-4.0.3-4.el10.x86_64
  dependency: libc.so.6(GLIBC_2.38)(64bit)
    provider: glibc-2.39-58.el10_1.7.x86_64
  dependency: libcom_err.so.2()(64bit)
    provider: libcom_err-1.47.1-4.el10.x86_64
  dependency: libcrypt.so.2()(64bit)
    provider: libxcrypt-4.4.36-10.el10.x86_64
  dependency: libcrypt.so.2(XCRYPT_2.0)(64bit)
    provider: libxcrypt-4.4.36-10.el10.x86_64
  dependency: libcrypto.so.3()(64bit)
    provider: openssl-libs-1:3.5.1-7.el10_1.x86_64
  dependency: libcrypto.so.3(OPENSSL_3.0.0)(64bit)
    provider: openssl-libs-1:3.5.1-7.el10_1.x86_64
  dependency: libgssapi_krb5.so.2()(64bit)
    provider: krb5-libs-1.21.3-8.el10_0.x86_64
  dependency: libgssapi_krb5.so.2(gssapi_krb5_2_MIT)(64bit)
    provider: krb5-libs-1.21.3-8.el10_0.x86_64
  dependency: libkrb5.so.3()(64bit)
    provider: krb5-libs-1.21.3-8.el10_0.x86_64
  dependency: libkrb5.so.3(krb5_3_MIT)(64bit)
    provider: krb5-libs-1.21.3-8.el10_0.x86_64
  dependency: libpam.so.0()(64bit)
    provider: pam-libs-1.6.1-8.el10.x86_64
  dependency: libpam.so.0(LIBPAM_1.0)(64bit)
    provider: pam-libs-1.6.1-8.el10.x86_64
  dependency: libselinux.so.1()(64bit)
    provider: libselinux-3.9-1.el10.x86_64
  dependency: libselinux.so.1(LIBSELINUX_1.0)(64bit)
    provider: libselinux-3.9-1.el10.x86_64
  dependency: libz.so.1()(64bit)
    provider: zlib-ng-compat-2.2.3-3.el10_1.x86_64
  dependency: openssh = 9.9p1-11.el10.rocky.0.1
    provider: openssh-9.9p1-11.el10.rocky.0.1.x86_64
  dependency: pam >= 1.0.1-3
    provider: pam-1.6.1-8.el10.x86_64
  dependency: rtld(GNU_HASH)
    provider: glibc-2.39-58.el10_1.7.x86_64
  dependency: systemd
    provider: systemd-257-13.el10.rocky.0.1.x86_64

package: openssh-server-9.9p1-12.el10_1.rocky.0.1.x86_64
  dependency: /bin/sh
    provider: bash-5.2.26-6.el10.x86_64
  dependency: /usr/bin/bash
    provider: bash-5.2.26-6.el10.x86_64
  dependency: /usr/sbin/useradd
    provider: shadow-utils-2:4.15.0-8.el10.x86_64
  dependency: crypto-policies >= 20220824-1
    provider: crypto-policies-20250905-2.gitc7eb7b2.el10_1.1.noarch
  dependency: libaudit.so.1()(64bit)
    provider: audit-libs-4.0.3-4.el10.x86_64
  dependency: libc.so.6(GLIBC_2.38)(64bit)
    provider: glibc-2.39-58.el10_1.7.x86_64
  dependency: libcom_err.so.2()(64bit)
    provider: libcom_err-1.47.1-4.el10.x86_64
  dependency: libcrypt.so.2()(64bit)
    provider: libxcrypt-4.4.36-10.el10.x86_64
  dependency: libcrypt.so.2(XCRYPT_2.0)(64bit)
    provider: libxcrypt-4.4.36-10.el10.x86_64
  dependency: libcrypto.so.3()(64bit)
    provider: openssl-libs-1:3.5.1-7.el10_1.x86_64
  dependency: libcrypto.so.3(OPENSSL_3.0.0)(64bit)
    provider: openssl-libs-1:3.5.1-7.el10_1.x86_64
  dependency: libgssapi_krb5.so.2()(64bit)
    provider: krb5-libs-1.21.3-8.el10_0.x86_64
  dependency: libgssapi_krb5.so.2(gssapi_krb5_2_MIT)(64bit)
    provider: krb5-libs-1.21.3-8.el10_0.x86_64
  dependency: libkrb5.so.3()(64bit)
    provider: krb5-libs-1.21.3-8.el10_0.x86_64
  dependency: libkrb5.so.3(krb5_3_MIT)(64bit)
    provider: krb5-libs-1.21.3-8.el10_0.x86_64
  dependency: libpam.so.0()(64bit)
    provider: pam-libs-1.6.1-8.el10.x86_64
  dependency: libpam.so.0(LIBPAM_1.0)(64bit)
    provider: pam-libs-1.6.1-8.el10.x86_64
  dependency: libselinux.so.1()(64bit)
    provider: libselinux-3.9-1.el10.x86_64
  dependency: libselinux.so.1(LIBSELINUX_1.0)(64bit)
    provider: libselinux-3.9-1.el10.x86_64
  dependency: libz.so.1()(64bit)
    provider: zlib-ng-compat-2.2.3-3.el10_1.x86_64
  dependency: openssh = 9.9p1-12.el10_1.rocky.0.1
    provider: openssh-9.9p1-12.el10_1.rocky.0.1.x86_64
  dependency: pam >= 1.0.1-3
    provider: pam-1.6.1-8.el10.x86_64
  dependency: /usr/sbin/useradd
    provider: shadow-utils-2:4.15.0-8.el10.x86_64
  dependency: crypto-policies >= 20220824-1
    provider: crypto-policies-20250905-2.gitc7eb7b2.el10_1.1.noarch
  dependency: libaudit.so.1()(64bit)
    provider: audit-libs-4.0.3-4.el10.el10.x86_64
  dependency: libc.so.6(GLIBC_2.38)(64bit)
    provider: glibc-2.39-58.el10_1.7.x86_64
  dependency: libcom_err.so.2()(64bit)
    provider: libcom_err-1.47.1-4.el10.x86_64
  dependency: libcrypt.so.2()(64bit)
    provider: libxcrypt-4.4.36-10.el10.x86_64
  dependency: libcrypt.so.2(XCRYPT_2.0)(64bit)
    provider: libxcrypt-4.4.36-10.el10.x86_64
  dependency: libcrypto.so.3()(64bit)
    provider: openssl-libs-1:3.5.1-7.el10_1.x86_64
  dependency: libcrypto.so.3(OPENSSL_3.0.0)(64bit)
    provider: openssl-libs-1:3.5.1-7.el10_1.x86_64
  dependency: libgssapi_krb5.so.2()(64bit)
    provider: krb5-libs-1.21.3-8.el10_0.x86_64
  dependency: libgssapi_krb5.so.2(gssapi_krb5_2_MIT)(64bit)
    provider: krb5-libs-1.21.3-8.el10_0.x86_64
  dependency: libkrb5.so.3()(64bit)
    provider: krb5-libs-1.21.3-8.el10_0.x86_64
  dependency: libkrb5.so.3(krb5_3_MIT)(64bit)
    provider: krb5-libs-1.21.3-8.el10_0.x86_64
  dependency: libpam.so.0()(64bit)
    provider: pam-libs-1.6.1-8.el10.x86_64
  dependency: libpam.so.0(LIBPAM_1.0)(64bit)
    provider: pam-libs-1.6.1-8.el10.x86_64
  dependency: libselinux.so.1()(64bit)
    provider: libselinux-3.9-1.el10.x86_64
  dependency: libselinux.so.1(LIBSELINUX_1.0)(64bit)
    provider: libselinux-3.9-1.el10.x86_64
  dependency: libz.so.1()(64bit)
    provider: zlib-ng-compat-2.2.3-3.el10_1.x86_64
  dependency: openssh = 9.9p1-12.el10_1.rocky.0.1
    provider: openssh-9.9p1-12.el10_1.rocky.0.1.x86_64
  dependency: pam >= 1.0.1-3
    provider: pam-1.6.1-8.el10.x86_64
  dependency: rtld(GNU_HASH)
    provider: glibc-2.39-58.el10_1.7.x86_64
  dependency: systemd
    provider: systemd-257-13.el10.rocky.0.1.x86_64
(END)</pre>



<p></p>
<p>The post <a href="https://lycos7560.com/etc/openssh-server-%ec%84%a4%ec%b9%98-%eb%aa%85%eb%a0%b9%ec%96%b4-ssh-secure-shell/40533/">openssh-server 설치 명령어 / SSH (Secure Shell)</a> appeared first on <a href="https://lycos7560.com">어제와 내일의 나 그 사이의 이야기</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://lycos7560.com/etc/openssh-server-%ec%84%a4%ec%b9%98-%eb%aa%85%eb%a0%b9%ec%96%b4-ssh-secure-shell/40533/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>DNF Package Manager (DNF 패키지 관리자)</title>
		<link>https://lycos7560.com/etc/dnf-package-manager-dnf-%ed%8c%a8%ed%82%a4%ec%a7%80-%ea%b4%80%eb%a6%ac%ec%9e%90/40530/</link>
					<comments>https://lycos7560.com/etc/dnf-package-manager-dnf-%ed%8c%a8%ed%82%a4%ec%a7%80-%ea%b4%80%eb%a6%ac%ec%9e%90/40530/#comments</comments>
		
		<dc:creator><![CDATA[lycos7560]]></dc:creator>
		<pubDate>Mon, 09 Mar 2026 21:24:53 +0000</pubDate>
				<category><![CDATA[기타]]></category>
		<guid isPermaLink="false">https://lycos7560.com/?p=40530</guid>

					<description><![CDATA[<p>1️⃣ DNF 란? DNF(Dandified&#160;YUM)는 Fedora, RHEL(Red Hat Enterprise Linux), CentOS, Rocky Linux 등의 RPM 기반 리눅스 배포판에서 사용하는 패키지 관리자입니다. 기존의 YUM(Yellowdog Updater Modified)을 대체하기 위해 개발되었으며, Fedora 18부터 도입되어 Fedora 22부터 기본 패키지 관리자로 채택되었습니다. YUM&#160;vs&#160;DNF&#160;비교 항목 차이 의존성&#160;해결 DNF는&#160;libsolv&#160;라이브러리&#160;사용으로&#160;훨씬&#160;빠르고&#160;정확 메모리&#160;사용 DNF가&#160;YUM보다&#160;메모리&#160;효율이&#160;높음 API DNF는&#160;Python&#160;3&#160;기반,&#160;YUM은&#160;Python&#160;2&#160;기반 성능 DNF가&#160;더&#160;빠른&#160;패키지&#160;검색&#160;및&#160;설치&#160;속도&#160;제공 호환성 DNF는&#160;YUM&#160;플러그인과&#160;일부&#160;호환 2️⃣ 기본&#160;문법 3️⃣ 자주&#160;쓰는&#160;명령어 시스템&#160;업데이트 명령어 [&#8230;]</p>
<p>The post <a href="https://lycos7560.com/etc/dnf-package-manager-dnf-%ed%8c%a8%ed%82%a4%ec%a7%80-%ea%b4%80%eb%a6%ac%ec%9e%90/40530/">DNF Package Manager (DNF 패키지 관리자)</a> appeared first on <a href="https://lycos7560.com">어제와 내일의 나 그 사이의 이야기</a>.</p>
]]></description>
										<content:encoded><![CDATA[				<div class="wp-block-uagb-table-of-contents uagb-toc__align-left uagb-toc__columns-1  uagb-block-4b39df2d      "
					data-scroll= "1"
					data-offset= "30"
					style=""
				>
				<div class="uagb-toc__wrap">
						<div class="uagb-toc__title">
							목차						</div>
																						<div class="uagb-toc__list-wrap ">
						<ol class="uagb-toc__list"><li class="uagb-toc__list"><a href="#1-dnf-란" class="uagb-toc-link__trigger">1&#xfe0f;&#x20e3; DNF 란?</a><ul class="uagb-toc__list"><li class="uagb-toc__list"><a href="#yumvsdnf비교" class="uagb-toc-link__trigger">YUM vs DNF 비교</a></li></ul></li><li class="uagb-toc__list"><a href="#2-기본문법" class="uagb-toc-link__trigger">2&#xfe0f;&#x20e3; 기본 문법</a><li class="uagb-toc__list"><a href="#3-자주쓰는명령어" class="uagb-toc-link__trigger">3&#xfe0f;&#x20e3; 자주 쓰는 명령어</a><ul class="uagb-toc__list"><li class="uagb-toc__list"><a href="#시스템업데이트" class="uagb-toc-link__trigger">시스템 업데이트</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#패키지설치제거" class="uagb-toc-link__trigger">패키지 설치 / 제거</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#패키지검색및정보" class="uagb-toc-link__trigger">패키지 검색 및 정보</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#저장소repository관리" class="uagb-toc-link__trigger">저장소(Repository) 관리</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#캐시관리" class="uagb-toc-link__trigger">캐시 관리</a></li></ul></li></ul></li><li class="uagb-toc__list"><a href="#4-자주쓰는옵션" class="uagb-toc-link__trigger">4&#xfe0f;&#x20e3; 자주 쓰는 옵션</a><li class="uagb-toc__list"><a href="#5-실용예시" class="uagb-toc-link__trigger">5&#xfe0f;&#x20e3; 실용 예시</a><ul class="uagb-toc__list"><li class="uagb-toc__list"><a href="#sudodnfupdate상세설명" class="uagb-toc-link__trigger">sudo dnf update 상세 설명</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#자동화스크립트에서사용" class="uagb-toc-link__trigger">자동화 스크립트에서 사용</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#패키지검색후설치" class="uagb-toc-link__trigger">패키지 검색 후 설치</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#특정버전설치" class="uagb-toc-link__trigger">특정 버전 설치</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#그룹패키지설치" class="uagb-toc-link__trigger">그룹 패키지 설치</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#히스토리-관리" class="uagb-toc-link__trigger">히스토리 관리</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#동기화" class="uagb-toc-link__trigger">동기화</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#패키지-의존성-확인" class="uagb-toc-link__trigger">패키지 의존성 확인</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#패키지-확인" class="uagb-toc-link__trigger">패키지 확인</a></ul></ul></ul></ol>					</div>
									</div>
				</div>
			


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">1&#xfe0f;&#x20e3; DNF 란?</h3>



<p>DNF(Dandified&nbsp;YUM)는 Fedora, RHEL(Red Hat Enterprise Linux), CentOS, Rocky Linux 등의 RPM 기반 리눅스 배포판에서 사용하는 패키지 관리자입니다.</p>



<p>기존의 YUM(Yellowdog Updater Modified)을 대체하기 위해 개발되었으며, Fedora 18부터 도입되어 Fedora 22부터 기본 패키지 관리자로 채택되었습니다.</p>



<h4 class="wp-block-heading"><strong>YUM&nbsp;vs&nbsp;DNF&nbsp;비교</strong></h4>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>항목</strong></td><td><strong>차이</strong></td></tr><tr><td>의존성&nbsp;해결</td><td>DNF는&nbsp;libsolv&nbsp;라이브러리&nbsp;사용으로&nbsp;훨씬&nbsp;빠르고&nbsp;정확</td></tr><tr><td>메모리&nbsp;사용</td><td>DNF가&nbsp;YUM보다&nbsp;메모리&nbsp;효율이&nbsp;높음</td></tr><tr><td>API</td><td>DNF는&nbsp;Python&nbsp;3&nbsp;기반,&nbsp;YUM은&nbsp;Python&nbsp;2&nbsp;기반</td></tr><tr><td>성능</td><td>DNF가&nbsp;더&nbsp;빠른&nbsp;패키지&nbsp;검색&nbsp;및&nbsp;설치&nbsp;속도&nbsp;제공</td></tr><tr><td>호환성</td><td>DNF는&nbsp;YUM&nbsp;플러그인과&nbsp;일부&nbsp;호환</td></tr></tbody></table></figure>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">2&#xfe0f;&#x20e3; <strong>기본&nbsp;문법</strong></h3>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">dnf [옵션] &lt;명령어> [패키지명]

# sudo를 붙여 관리자 권한으로 실행하는 것이 일반적입니다:
sudo dnf [명령어] [패키지명]</pre>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">3&#xfe0f;&#x20e3; <strong><strong>자주&nbsp;쓰는&nbsp;명령어</strong></strong></h3>



<h4 class="wp-block-heading"><strong><strong>시스템&nbsp;업데이트</strong></strong></h4>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>명령어</strong></td><td><strong>설명</strong></td></tr><tr><td>sudo&nbsp;dnf&nbsp;update</td><td>설치된&nbsp;모든&nbsp;패키지를&nbsp;최신&nbsp;버전으로&nbsp;업데이트</td></tr><tr><td>sudo&nbsp;dnf&nbsp;upgrade</td><td>update와&nbsp;동일&nbsp;(오래된&nbsp;패키지&nbsp;제거&nbsp;포함&nbsp;가능)<br>&#8211; update 기존 패키지 업데이트<br>&#8211; upgrade update + obsolete 패키지 제거 가능</td></tr><tr><td>sudo&nbsp;dnf&nbsp;check-update</td><td>업데이트&nbsp;가능한&nbsp;패키지&nbsp;목록만&nbsp;확인&nbsp;(실제&nbsp;업데이트&nbsp;안&nbsp;함)</td></tr><tr><td>sudo&nbsp;dnf&nbsp;update&nbsp;패키지명</td><td>특정&nbsp;패키지만&nbsp;업데이트</td></tr></tbody></table></figure>



<h4 class="wp-block-heading"><strong><strong><strong>패키지&nbsp;설치&nbsp;/&nbsp;제거</strong></strong></strong></h4>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>명령어</strong></td><td><strong>설명</strong></td></tr><tr><td>sudo&nbsp;dnf&nbsp;install&nbsp;패키지명</td><td>패키지&nbsp;설치</td></tr><tr><td>sudo&nbsp;dnf&nbsp;remove&nbsp;패키지명</td><td>패키지&nbsp;제거&nbsp;(의존성&nbsp;패키지도&nbsp;함께&nbsp;제거)</td></tr><tr><td>sudo&nbsp;dnf&nbsp;reinstall&nbsp;패키지명</td><td>패키지&nbsp;재설치</td></tr><tr><td>sudo&nbsp;dnf&nbsp;autoremove</td><td>더&nbsp;이상&nbsp;필요&nbsp;없는&nbsp;의존성&nbsp;패키지&nbsp;자동&nbsp;제거<br>&#8211; remove 패키지 제거<br>&#8211; autoremove 더 이상 필요 없는 의존성 패키지 제거</td></tr><tr><td>sudo&nbsp;dnf&nbsp;install&nbsp;파일.rpm</td><td>로컬&nbsp;RPM&nbsp;파일&nbsp;설치</td></tr><tr><td>sudo dnf install nginx git vim</td><td>패키지 여러개 설치 예시 (nginx , git, vim)</td></tr></tbody></table></figure>



<h4 class="wp-block-heading"><strong><strong><strong><strong>패키지&nbsp;검색&nbsp;및&nbsp;정보</strong></strong></strong></strong></h4>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>명령어</strong></td><td><strong>설명</strong></td></tr><tr><td>dnf&nbsp;search&nbsp;키워드</td><td>패키지&nbsp;이름/설명에서&nbsp;키워드&nbsp;검색</td></tr><tr><td>dnf&nbsp;info&nbsp;패키지명</td><td>패키지&nbsp;상세&nbsp;정보&nbsp;출력&nbsp;(버전,&nbsp;크기,&nbsp;설명&nbsp;등)</td></tr><tr><td>dnf&nbsp;list&nbsp;installed</td><td>설치된&nbsp;모든&nbsp;패키지&nbsp;목록</td></tr><tr><td>dnf&nbsp;list&nbsp;available</td><td>설치&nbsp;가능한&nbsp;패키지&nbsp;목록</td></tr><tr><td>dnf&nbsp;provides&nbsp;파일경로</td><td>특정&nbsp;파일을&nbsp;제공하는&nbsp;패키지&nbsp;찾기</td></tr><tr><td>dnf&nbsp;repoquery&nbsp;패키지명</td><td>저장소에서&nbsp;패키지&nbsp;상세&nbsp;쿼리</td></tr></tbody></table></figure>



<h4 class="wp-block-heading"><strong>저장소(Repository)&nbsp;관리</strong></h4>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>명령어</strong></td><td><strong>설명</strong></td></tr><tr><td>dnf&nbsp;repolist</td><td>활성화된&nbsp;저장소&nbsp;목록&nbsp;확인</td></tr><tr><td>dnf&nbsp;repolist&nbsp;all</td><td>비활성화&nbsp;포함&nbsp;전체&nbsp;저장소&nbsp;목록</td></tr><tr><td>sudo&nbsp;dnf&nbsp;config-manager&nbsp;&#8211;add-repo&nbsp;URL</td><td>저장소&nbsp;추가</td></tr><tr><td>sudo&nbsp;dnf&nbsp;config-manager&nbsp;&#8211;enable&nbsp;저장소명</td><td>저장소&nbsp;활성화</td></tr><tr><td>sudo&nbsp;dnf&nbsp;config-manager&nbsp;&#8211;disable&nbsp;저장소명</td><td>저장소&nbsp;비활성화</td></tr></tbody></table></figure>



<h4 class="wp-block-heading"><strong>캐시&nbsp;관리</strong></h4>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>명령어</strong></td><td><strong>설명</strong></td></tr><tr><td>sudo&nbsp;dnf&nbsp;clean&nbsp;all</td><td>모든&nbsp;캐시&nbsp;삭제&nbsp;(패키지,&nbsp;메타데이터&nbsp;등)</td></tr><tr><td>sudo&nbsp;dnf&nbsp;clean&nbsp;packages</td><td>다운로드된&nbsp;패키지&nbsp;캐시만&nbsp;삭제</td></tr><tr><td>sudo&nbsp;dnf&nbsp;makecache</td><td>저장소&nbsp;메타데이터&nbsp;캐시&nbsp;강제&nbsp;갱신<br>(저장소 메타데이터를 미리 다운로드하여 캐시 생성)</td></tr></tbody></table></figure>



<h3 class="wp-block-heading">4&#xfe0f;&#x20e3; <strong><strong><strong>자주&nbsp;쓰는&nbsp;옵션</strong></strong></strong></h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>명령어</strong></td><td><strong>설명</strong></td></tr><tr><td>-y&nbsp;/&nbsp;&#8211;assumeyes</td><td>모든&nbsp;질문에&nbsp;자동으로&nbsp;&#8216;yes&#8217;&nbsp;응답&nbsp;(자동화&nbsp;스크립트에&nbsp;유용)</td></tr><tr><td>-q&nbsp;/&nbsp;&#8211;quiet</td><td>출력&nbsp;최소화</td></tr><tr><td>&#8211;nobest</td><td>최신&nbsp;버전&nbsp;설치&nbsp;실패&nbsp;시&nbsp;이전&nbsp;버전으로&nbsp;대체&nbsp;허용</td></tr><tr><td>&#8211;skip-broken</td><td>의존성&nbsp;충돌&nbsp;패키지를&nbsp;건너뛰고&nbsp;나머지&nbsp;설치</td></tr><tr><td>&#8211;downloadonly</td><td>설치하지&nbsp;않고&nbsp;패키지만&nbsp;다운로드</td></tr><tr><td>&#8211;downloaddir=경로</td><td>다운로드&nbsp;저장&nbsp;경로&nbsp;지정</td></tr><tr><td>&#8211;exclude=패키지명</td><td>특정&nbsp;패키지를&nbsp;업데이트/설치에서&nbsp;제외</td></tr><tr><td>&#8211;enablerepo=저장소명</td><td>비활성&nbsp;저장소를&nbsp;이번&nbsp;명령에서만&nbsp;임시&nbsp;활성화</td></tr><tr><td>&#8211;disablerepo=저장소명</td><td>이번&nbsp;명령에서만&nbsp;특정&nbsp;저장소&nbsp;비활성화</td></tr></tbody></table></figure>



<h3 class="wp-block-heading">5&#xfe0f;&#x20e3; <strong><strong><strong><strong>실용&nbsp;예시</strong></strong></strong></strong></h3>



<h4 class="wp-block-heading"><strong>sudo&nbsp;dnf&nbsp;update&nbsp;상세&nbsp;설명</strong></h4>



<p>가장&nbsp;많이&nbsp;쓰이는&nbsp;명령어입니다.&nbsp;</p>



<p>시스템에&nbsp;설치된&nbsp;모든&nbsp;패키지를&nbsp;저장소의&nbsp;최신&nbsp;버전으로&nbsp;업데이트합니다.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">sudo dnf update</pre>



<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>



<p>실행&nbsp;시&nbsp;순서:</p>



<ul class="wp-block-list">
<li>저장소&nbsp;메타데이터&nbsp;갱신</li>



<li>업데이트&nbsp;가능한&nbsp;패키지&nbsp;목록&nbsp;계산</li>



<li>사용자에게&nbsp;변경&nbsp;사항&nbsp;요약&nbsp;출력&nbsp;후&nbsp;확인</li>



<li>패키지&nbsp;다운로드&nbsp;및&nbsp;설치/업데이트&nbsp;진행</li>
</ul>



<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><strong>자동화&nbsp;스크립트에서&nbsp;사용</strong></h4>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">sudo dnf update -y
sudo dnf install -y nginx git vim</pre>



<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><strong>패키지&nbsp;검색&nbsp;후&nbsp;설치</strong></h4>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">dnf search nginx
dnf info nginx
sudo dnf install nginx</pre>



<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><strong>특정&nbsp;버전&nbsp;설치</strong></h4>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">sudo dnf install 패키지명-버전번호</pre>



<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><strong>그룹&nbsp;패키지&nbsp;설치</strong></h4>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">sudo dnf groupinstall "Development Tools"
dnf grouplist</pre>



<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><strong>히스토리 관리</strong></h4>



<p>DNF로 수행한 모든 작업 기록 확인</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">dnf history
dnf history info 10
sudo dnf history undo 10</pre>



<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><strong>동기화</strong></h4>



<p>저장소 기준으로 패키지 버전을 정확하게 동기화<br>(upgrade 또는 downgrade 모두 가능)</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">sudo dnf distro-sync</pre>



<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><strong>패키지 의존성 확인</strong></h4>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">dnf deplist nginx</pre>



<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading"><strong>패키지 확인</strong></h4>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">rpm -qa | grep nginx
또
dnf list installed | grep nginx</pre>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-embed is-type-wp-embed"><div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content" data-secret="fhjUaVjTmE"><a href="https://lycos7560.com/etc/rocky-linux-10-dnf-%ec%a0%80%ec%9e%a5%ec%86%8c-%ec%b6%94%ea%b0%80/40549/">Rocky Linux 10 DNF 저장소 추가</a></blockquote><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8220;Rocky Linux 10 DNF 저장소 추가&#8221; &#8212; 어제와 내일의 나 그 사이의 이야기" src="https://lycos7560.com/etc/rocky-linux-10-dnf-%ec%a0%80%ec%9e%a5%ec%86%8c-%ec%b6%94%ea%b0%80/40549/embed/#?secret=6gkXJNiwAG#?secret=fhjUaVjTmE" data-secret="fhjUaVjTmE" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>
<p>The post <a href="https://lycos7560.com/etc/dnf-package-manager-dnf-%ed%8c%a8%ed%82%a4%ec%a7%80-%ea%b4%80%eb%a6%ac%ec%9e%90/40530/">DNF Package Manager (DNF 패키지 관리자)</a> appeared first on <a href="https://lycos7560.com">어제와 내일의 나 그 사이의 이야기</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://lycos7560.com/etc/dnf-package-manager-dnf-%ed%8c%a8%ed%82%a4%ec%a7%80-%ea%b4%80%eb%a6%ac%ec%9e%90/40530/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>POSIX(Portable Operating System Interface)</title>
		<link>https://lycos7560.com/etc/posixportable-operating-system-interface/40514/</link>
					<comments>https://lycos7560.com/etc/posixportable-operating-system-interface/40514/#respond</comments>
		
		<dc:creator><![CDATA[lycos7560]]></dc:creator>
		<pubDate>Sun, 08 Mar 2026 17:59:02 +0000</pubDate>
				<category><![CDATA[개인 공부 저장용]]></category>
		<category><![CDATA[기타]]></category>
		<guid isPermaLink="false">https://lycos7560.com/?p=40514</guid>

					<description><![CDATA[<p>POSIX Portable Operating System Interface 서로 다른 UNIX 계열 운영체제 간의 애플리케이션 호환성을 높이기 위해 IEEE가 책정한 유닉스 기반의 표준 API 규격으로 &#8216;X&#8217;는 UNIX(유닉스) 호환 운영체제를 의미하는 관습 1. 이름의 탄생 비화 (리처드 스톨먼,  Richard Stallman의 제안) https://en.wikipedia.org/wiki/POSIX 2. 구체적으로 무엇을 정의하는가? 단순히 API 함수 이름만 정하는 것이 아니라 다음 세 가지 핵심 요소를 모두 [&#8230;]</p>
<p>The post <a href="https://lycos7560.com/etc/posixportable-operating-system-interface/40514/">POSIX(Portable Operating System Interface)</a> appeared first on <a href="https://lycos7560.com">어제와 내일의 나 그 사이의 이야기</a>.</p>
]]></description>
										<content:encoded><![CDATA[				<div class="wp-block-uagb-table-of-contents uagb-toc__align-left uagb-toc__columns-1  uagb-block-d94b8844      "
					data-scroll= "1"
					data-offset= "30"
					style=""
				>
				<div class="uagb-toc__wrap">
						<div class="uagb-toc__title">
							목차						</div>
																						<div class="uagb-toc__list-wrap ">
						<ol class="uagb-toc__list"><li class="uagb-toc__list"><a href="#posix" class="uagb-toc-link__trigger">POSIX</a><ul class="uagb-toc__list"><li class="uagb-toc__list"><a href="#1-이름의-탄생-비화-리처드-스톨먼-richard-stallman의-제안" class="uagb-toc-link__trigger">1. 이름의 탄생 비화 (리처드 스톨먼,  Richard Stallman의 제안)</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#2-구체적으로-무엇을-정의하는가" class="uagb-toc-link__trigger">2. 구체적으로 무엇을 정의하는가?</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#3-실무에서의-의미-한-번-짜서-어디든-돌린다" class="uagb-toc-link__trigger">3. 실무에서의 의미: &quot;한 번 짜서 어디든 돌린다&quot;</a></ul></ol>					</div>
									</div>
				</div>
			


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">POSIX</h2>



<p>Portable Operating System Interface</p>



<ul class="wp-block-list">
<li>portable : 이식 가능한</li>



<li>Operationg System : 운영 체제</li>



<li>Interface : 인터페이스</li>



<li>X : POSIX 전체 이름에서 유닉스(UNIX) 계열임을 암시하는 관습적 접미사</li>
</ul>



<p>서로 다른 UNIX 계열 운영체제 간의 애플리케이션 호환성을 높이기 위해 </p>



<p>IEEE가 책정한 유닉스 기반의 표준 API 규격으로 &#8216;X&#8217;는 UNIX(유닉스) 호환 운영체제를 의미하는 관습</p>



<h3 class="wp-block-heading">1. 이름의 탄생 비화 (리처드 스톨먼,  <a href="https://en.wikipedia.org/wiki/Richard_Stallman" target="_blank" rel="noreferrer noopener">Richard Stallman</a>의 제안)</h3>



<p><a href="https://en.wikipedia.org/wiki/POSIX" target="_blank" rel="noreferrer noopener">https://en.wikipedia.org/wiki/POSIX</a></p>



<ul class="wp-block-list">
<li><strong>원래 이름</strong><br>IEEE 내부에서는 원래 <strong>&#8216;IEEE-IX&#8217;</strong>라고 부르려고 했습니다.</li>



<li><strong>스톨먼의 개입</strong><br>자유 소프트웨어 재단(FSF)의 <strong>리처드 스톨먼</strong>이 &#8220;IEEE-IX는 발음하기 너무 어렵다&#8221;며, <br>&#8216;Portable Operating System&#8217;의 약자에 유닉스 느낌의 &#8216;IX&#8217;를 붙인 <strong>POSIX(포직스)</strong>를 제안했습니다.</li>



<li><strong>채택 이유</strong><br>이 이름이 훨씬 부르기 쉽고 기억에 잘 남는다는 이유로 위원회에서 즉시 채택되었습니다.</li>
</ul>



<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">2. 구체적으로 무엇을 정의하는가?</h3>



<p>단순히 API 함수 이름만 정하는 것이 아니라 다음 세 가지 핵심 요소를 모두 포함합니다.</p>



<ul class="wp-block-list">
<li><strong>C 언어 API</strong><br><code>open()</code>, <code>read()</code>, <code>write()</code> 같은 시스템 콜의 함수 이름, 인자, 반환 값, 오류 처리 방식까지 동작 전반을 규정합니다.</li>



<li><strong>셸(Shell) 및 유틸리티</strong><br><code>ls</code>, <code>grep</code>, <code>cd</code> 같은 기본 명령어들이 어떤 옵션을 지원하고 어떤 결과를 출력해야 하는지 정의합니다.</li>



<li><strong>파일 시스템 및 프로세스</strong><br><code>/usr</code>, <code>/tmp</code> 같은 파일 경로 구조와 프로세스 생성(<code>fork</code>)·종료 방식 등 OS의 근간이 되는 동작 방식을 표준화 합니다.</li>
</ul>



<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">3. 실무에서의 의미: &#8220;한 번 짜서 어디든 돌린다&#8221;</h3>



<ul class="wp-block-list">
<li><strong>개발 효율성</strong><br>POSIX 표준을 준수하여 프로그램을 만들면, 코드를 거의 수정하지 않고도 Linux, macOS, BSD 등 다양한 운영체제에서 바로 컴파일하여 실행할 수 있습니다.</li>



<li><strong>호환성 확인</strong><br>어떤 시스템이 &#8220;POSIX 준수(Compliant)&#8221;라고 하면, 개발자는 &#8220;내 프로그램이 이 OS에서도 문제없이 돌아가겠구나&#8221;라고 신뢰할 수 있게 됩니다.</li>



<li><strong>호환성의 한계</strong><br>다만 Windows는 기본적으로 POSIX를 준수하지 않습니다. <br>WSL(Windows Subsystem for Linux)을 통해 부분적으로 지원하지만, <br>네이티브 Windows 환경에서는 동일한 코드가 동작하지 않을 수 있다는 점을 염두에 두어야 합니다.</li>
</ul>



<p></p>
<p>The post <a href="https://lycos7560.com/etc/posixportable-operating-system-interface/40514/">POSIX(Portable Operating System Interface)</a> appeared first on <a href="https://lycos7560.com">어제와 내일의 나 그 사이의 이야기</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://lycos7560.com/etc/posixportable-operating-system-interface/40514/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ip addr show, ip route, nmcli device status, nmcli device show, nmtui</title>
		<link>https://lycos7560.com/etc/ip-addr-show-ip-route/40520/</link>
					<comments>https://lycos7560.com/etc/ip-addr-show-ip-route/40520/#respond</comments>
		
		<dc:creator><![CDATA[lycos7560]]></dc:creator>
		<pubDate>Sat, 28 Feb 2026 19:59:27 +0000</pubDate>
				<category><![CDATA[기타]]></category>
		<guid isPermaLink="false">https://lycos7560.com/?p=40520</guid>

					<description><![CDATA[<p>ip addr show 네트워크 인터페이스 이름 IP 주소 (가장 중요) MAC 주소 인터페이스 상태 loopback 인터페이스 ip route 기본 게이트웨이 사용 네트워크 전체 네트워크 구조 중요한 필드 설명 nmcli device status, nmcli device show Network Manager의 명령줄 도구를 사용하여 현재 시스템에 인식된 네트워크 장치들의 연결 상태를 요약 및 자세히 1. 주요 네트워크 정보 요약 2. [&#8230;]</p>
<p>The post <a href="https://lycos7560.com/etc/ip-addr-show-ip-route/40520/">ip addr show, ip route, nmcli device status, nmcli device show, nmtui</a> appeared first on <a href="https://lycos7560.com">어제와 내일의 나 그 사이의 이야기</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">[lycos7560@localhost ~]$ sudo ip addr show
1: lo: &lt;LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute
       valid_lft forever preferred_lft forever
2: ens160: &lt;BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:b4:0f:c1 brd ff:ff:ff:ff:ff:ff
    altname enp3s0
    altname enx000c29b40fc1
    inet 192.168.50.83/24 brd 192.168.50.255 scope global dynamic noprefixroute ens160
       valid_lft 86316sec preferred_lft 86316sec
    inet6 fe80::20c:29ff:feb4:fc1/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

[lycos7560@localhost ~]$ ip route
default via 192.168.50.1 dev ens160 proto dhcp src 192.168.50.83 metric 100
192.168.50.0/24 dev ens160 proto kernel scope link src 192.168.50.83 metric 100

[lycos7560@localhost ~]$ nmcli device status
DEVICE  TYPE      STATE                   CONNECTION
ens160  ethernet  connected               ens160
lo      loopback  connected (externally)  lo

[lycos7560@localhost ~]$ nmcli device show
GENERAL.DEVICE: ens160
GENERAL.TYPE: ethernet
GENERAL.HWADDR: 00:0C:29:B4:0F:C1
GENERAL.MTU: 1500
GENERAL.STATE: 100 (connected)
GENERAL.CONNECTION: ens160
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2
WIRED-PROPERTIES.CARRIER: on
IP4.ADDRESS[1]: 192.168.50.83/24
IP4.GATEWAY: 192.168.50.1
IP4.ROUTE[1]: dst = 192.168.50.0/24, nh = 0.0.0.0, mt = 100
IP4.ROUTE[2]: dst = 0.0.0.0/0, nh = 192.168.50.1, mt = 100
IP4.DNS[1]: 8.8.8.8
IP4.DNS[2]: 8.8.4.4
IP4.DNS[3]: 192.168.50.1
IP6.ADDRESS[1]: fe80::20c:29ff:feb4:fc1/64
IP6.GATEWAY: --
IP6.ROUTE[1]: dst = fe80::/64, nh = ::, mt = 1024

GENERAL.DEVICE: lo
GENERAL.TYPE: loopback
GENERAL.HWADDR: 00:00:00:00:00:00
GENERAL.MTU: 65536
GENERAL.STATE: 100 (connected (externally))
GENERAL.CONNECTION: lo
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/1
IP4.ADDRESS[1]: 127.0.0.1/8
IP4.GATEWAY: --
IP6.ADDRESS[1]: ::1/128
IP6.GATEWAY: --</pre>



<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" style="margin-top:var(--wp--preset--spacing--40);margin-bottom:var(--wp--preset--spacing--40)"/>



<h4 class="wp-block-heading">ip addr show</h4>



<h5 class="wp-block-heading">네트워크 인터페이스 이름</h5>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># 현재 시스템에서 실제 네트워크 인터페이스
ens160</pre>



<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>



<h5 class="wp-block-heading">IP 주소 (가장 중요)</h5>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># 현재 시스템에서 실제 네트워크 인터페이스
inet 192.168.50.83/24

# 서버 IP
192.168.50.83

# 서브넷 마스크 (255.255.255.0)
/24, 255.255.255.0</pre>



<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>



<h5 class="wp-block-heading">MAC 주소</h5>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># 네트워크 카드 고유 물리 주소, 네트워크 장비에서 식별할 때 사용
link/ether 00:0c:29:b4:0f:c1</pre>



<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>



<h5 class="wp-block-heading">인터페이스 상태</h5>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># 네트워크 카드 고유 물리 주소, 네트워크 장비에서 식별할 때 사용
# UP - 정상 동작, DOWN - 비활성, UNKNOWN - 상태 확인 불가
state UP</pre>



<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>



<h5 class="wp-block-heading">loopback 인터페이스</h5>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># 서버 자기 자신 통신
lo
127.0.0.1</pre>



<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" style="margin-top:var(--wp--preset--spacing--40);margin-bottom:var(--wp--preset--spacing--40)"/>



<h4 class="wp-block-heading">ip route</h4>



<h5 class="wp-block-heading">기본 게이트웨이</h5>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># default 기본 경로
# 192.168.50.1 게이트웨이(라우터)
# dev ens160 사용할 네트워크 카드
default via 192.168.50.1

즉, 외부 네트워크로 나갈 때
→ 192.168.50.1 라우터 사용</pre>



<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>



<h5 class="wp-block-heading">사용 네트워크</h5>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">192.168.50.0/24 dev ens160

# 192.168.50.0/24 내부 네트워크
# ens160 네트워크 인터페이스
# src 192.168.50.83 서버 IP</pre>



<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>



<h5 class="wp-block-heading">전체 네트워크 구조</h5>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">서버 IP
192.168.50.83

서브넷
255.255.255.0 (/24)

게이트웨이
192.168.50.1


        인터넷
           │
     192.168.50.1
        (Router)
           │
 ─────────────────────
   192.168.50.0/24
           │
      Rocky Linux
      192.168.50.83</pre>



<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>



<h5 class="wp-block-heading">중요한 필드 설명</h5>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">dev ens160 #사용할 네트워크 인터페이스

proto dhcp # DHCP로 받은 경로

src 192.168.50.83 # 패킷을 보낼 때 사용할 IP

metric 100 # 라우팅 우선순위, 숫자가 작을수록 우선</pre>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" style="margin-top:var(--wp--preset--spacing--40);margin-bottom:var(--wp--preset--spacing--40)"/>



<h4 class="wp-block-heading">nmcli device status, nmcli device show</h4>



<p><strong>Network Manager</strong>의 명령줄 도구를 사용하여 현재 시스템에 인식된 네트워크 장치들의 연결 상태를 요약 및 자세히</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">[lycos7560@localhost ~]$ nmcli device show
GENERAL.DEVICE: ens160
GENERAL.TYPE: ethernet
GENERAL.HWADDR: 00:0C:29:B4:0F:C1
GENERAL.MTU: 1500
GENERAL.STATE: 100 (connected)
GENERAL.CONNECTION: ens160
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2
WIRED-PROPERTIES.CARRIER: on
IP4.ADDRESS[1]: 192.168.50.83/24
IP4.GATEWAY: 192.168.50.1
IP4.ROUTE[1]: dst = 192.168.50.0/24, nh = 0.0.0.0, mt = 100
IP4.ROUTE[2]: dst = 0.0.0.0/0, nh = 192.168.50.1, mt = 100
IP4.DNS[1]: 8.8.8.8
IP4.DNS[2]: 8.8.4.4
IP4.DNS[3]: 192.168.50.1
IP6.ADDRESS[1]: fe80::20c:29ff:feb4:fc1/64
IP6.GATEWAY: --
IP6.ROUTE[1]: dst = fe80::/64, nh = ::, mt = 1024

GENERAL.DEVICE: lo
GENERAL.TYPE: loopback
GENERAL.HWADDR: 00:00:00:00:00:00
GENERAL.MTU: 65536
GENERAL.STATE: 100 (connected (externally))
GENERAL.CONNECTION: lo
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/1
IP4.ADDRESS[1]: 127.0.0.1/8
IP4.GATEWAY: --
IP6.ADDRESS[1]: ::1/128
IP6.GATEWAY: --</pre>



<div style="height:15px" aria-hidden="true" class="wp-block-spacer"></div>



<h6 class="wp-block-heading"><strong>1. 주요 네트워크 정보 요약</strong></h6>



<ul class="wp-block-list">
<li><strong>장치명:</strong> <code>ens160</code> (물리적 이더넷 카드 역할을 하는 가상 인터페이스)</li>



<li><strong>IP 주소:</strong> <code>192.168.50.83</code> (C클래스 사설 IP 사용 중)</li>



<li><strong>게이트웨이:</strong> <code>192.168.50.1</code> (공유기 또는 가상 네트워크의 관문)</li>



<li><strong>DNS 서버:</strong> 구글 공용 DNS(<code>8.8.8.8</code>, <code>8.8.4.4</code>)와 로컬 게이트웨이(<code>192.168.50.1</code>)를 혼용 중입니다.</li>
</ul>



<h6 class="wp-block-heading"><strong>2. 상태 분석</strong></h6>



<ul class="wp-block-list">
<li><strong>연결성 (Connectivity):</strong> <br><code>GENERAL.STATE</code>가 <code>100 (connected)</code>인 것으로 보아 케이블 연결 및 IP 할당이 정상적으로 완료. <br><code>WIRED-PROPERTIES.CARRIER</code>가 <code>on</code>이므로 물리적(가상) 연결에도 문제가 없음.</li>



<li><strong>라우팅 및 통신:</strong> <br><code>IP4.ROUTE[2]</code> 설정을 보면 <code>0.0.0.0/0</code> (기본 경로)이 <code>192.168.50.1</code>로 잡혀 있음.<br>이는 내부망뿐만 아니라 외부 인터넷으로 나가는 길이 정상적으로 열려 있음을 의미.</li>



<li><strong>DNS 설정:</strong> <br>구글 DNS가 우선순위로 잡혀 있어 도메인 네임 해석 속도가 안정적일 것으로 보임.</li>



<li><strong>가상화 흔적:</strong> <br>MAC 주소(<code>00:0C:29:...</code>)를 볼 때, 이 시스템은 <strong>VMware</strong> 가상 머신 위에서 동작중.</li>
</ul>



<h6 class="wp-block-heading"><strong>3. 참고 사항</strong></h6>



<ul class="wp-block-list">
<li><strong>IPv6:</strong> <br>현재 <code>IP6.ADDRESS</code>는 <code>fe80::</code>으로 시작하는 <strong>Link-Local</strong> 주소만 할당되어 있음.<br>이는 동일 네트워크 세그먼트 내 통신용이며, 공인 IPv6 통신은 설정되어 있지 않은 상태입니다. (일반적인 환경에서는 문제 되지 않음.)</li>



<li><strong>루프백(lo):</strong> <br>자기 자신과 통신하는 인터페이스로, <code>127.0.0.1</code> 주소와 함께 정상 작동 중.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" style="margin-top:var(--wp--preset--spacing--40);margin-bottom:var(--wp--preset--spacing--40)"/>



<h4 class="wp-block-heading">nmtui</h4>



<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="628" height="765" src="https://lycos7560.com/wp-content/uploads/2026/03/image.png" alt="" class="wp-image-40526" srcset="https://lycos7560.com/wp-content/uploads/2026/03/image.png 628w, https://lycos7560.com/wp-content/uploads/2026/03/image-246x300.png 246w" sizes="(max-width: 628px) 100vw, 628px" /></figure>



<p>UI를 이용하여 바꿀 수 있음.</p>



<figure class="wp-block-image size-full"><img decoding="async" width="767" height="528" src="https://lycos7560.com/wp-content/uploads/2026/03/image-1.png" alt="" class="wp-image-40528" srcset="https://lycos7560.com/wp-content/uploads/2026/03/image-1.png 767w, https://lycos7560.com/wp-content/uploads/2026/03/image-1-300x207.png 300w" sizes="(max-width: 767px) 100vw, 767px" /></figure>



<p></p>
<p>The post <a href="https://lycos7560.com/etc/ip-addr-show-ip-route/40520/">ip addr show, ip route, nmcli device status, nmcli device show, nmtui</a> appeared first on <a href="https://lycos7560.com">어제와 내일의 나 그 사이의 이야기</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://lycos7560.com/etc/ip-addr-show-ip-route/40520/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>LVM(Logical Volume Manager) 구조 및 개념</title>
		<link>https://lycos7560.com/etc/lvmlogical-volume-manager-%ea%b5%ac%ec%a1%b0-%eb%b0%8f-%ea%b0%9c%eb%85%90/40489/</link>
					<comments>https://lycos7560.com/etc/lvmlogical-volume-manager-%ea%b5%ac%ec%a1%b0-%eb%b0%8f-%ea%b0%9c%eb%85%90/40489/#respond</comments>
		
		<dc:creator><![CDATA[lycos7560]]></dc:creator>
		<pubDate>Sun, 22 Feb 2026 16:13:57 +0000</pubDate>
				<category><![CDATA[기타]]></category>
		<category><![CDATA[AIX admin]]></category>
		<category><![CDATA[AIX hdisk]]></category>
		<category><![CDATA[AIX LVM]]></category>
		<category><![CDATA[AIX storage]]></category>
		<category><![CDATA[Block Device]]></category>
		<category><![CDATA[Data Storage]]></category>
		<category><![CDATA[Disk allocation]]></category>
		<category><![CDATA[disk device]]></category>
		<category><![CDATA[Disk Management]]></category>
		<category><![CDATA[Disk Partition]]></category>
		<category><![CDATA[Enterprise storage]]></category>
		<category><![CDATA[ext4]]></category>
		<category><![CDATA[Extent]]></category>
		<category><![CDATA[FC storage]]></category>
		<category><![CDATA[Fibre Channel]]></category>
		<category><![CDATA[File System]]></category>
		<category><![CDATA[FileSystem]]></category>
		<category><![CDATA[hdisk]]></category>
		<category><![CDATA[hdisk0]]></category>
		<category><![CDATA[Infrastructure]]></category>
		<category><![CDATA[iSCSI]]></category>
		<category><![CDATA[IT infrastructure]]></category>
		<category><![CDATA[IT 인프라]]></category>
		<category><![CDATA[JFS]]></category>
		<category><![CDATA[JFS2]]></category>
		<category><![CDATA[LE]]></category>
		<category><![CDATA[Linux admin]]></category>
		<category><![CDATA[Linux LVM]]></category>
		<category><![CDATA[Linux storage]]></category>
		<category><![CDATA[Logical Disk]]></category>
		<category><![CDATA[Logical Extent]]></category>
		<category><![CDATA[Logical Partition]]></category>
		<category><![CDATA[Logical storage]]></category>
		<category><![CDATA[Logical Unit Number]]></category>
		<category><![CDATA[Logical Volume]]></category>
		<category><![CDATA[Logical Volume Manager]]></category>
		<category><![CDATA[LP]]></category>
		<category><![CDATA[lsdev]]></category>
		<category><![CDATA[lslv]]></category>
		<category><![CDATA[lspv]]></category>
		<category><![CDATA[lsvg]]></category>
		<category><![CDATA[LUN]]></category>
		<category><![CDATA[LV]]></category>
		<category><![CDATA[lvdisplay]]></category>
		<category><![CDATA[LVM]]></category>
		<category><![CDATA[LVM architecture]]></category>
		<category><![CDATA[LVM concept]]></category>
		<category><![CDATA[LVM hierarchy]]></category>
		<category><![CDATA[LVM 개념]]></category>
		<category><![CDATA[LVM 계층 구조]]></category>
		<category><![CDATA[LVM 구조]]></category>
		<category><![CDATA[lvs]]></category>
		<category><![CDATA[Mirroring]]></category>
		<category><![CDATA[mount]]></category>
		<category><![CDATA[mount point]]></category>
		<category><![CDATA[PE]]></category>
		<category><![CDATA[Physical Disk]]></category>
		<category><![CDATA[Physical Extent]]></category>
		<category><![CDATA[Physical Partition]]></category>
		<category><![CDATA[Physical storage]]></category>
		<category><![CDATA[Physical Volume]]></category>
		<category><![CDATA[PP]]></category>
		<category><![CDATA[PV]]></category>
		<category><![CDATA[pvdisplay]]></category>
		<category><![CDATA[pvs]]></category>
		<category><![CDATA[Quorum]]></category>
		<category><![CDATA[SAN]]></category>
		<category><![CDATA[SAN storage]]></category>
		<category><![CDATA[Server storage]]></category>
		<category><![CDATA[Storage]]></category>
		<category><![CDATA[Storage admin]]></category>
		<category><![CDATA[Storage architecture]]></category>
		<category><![CDATA[Storage concept]]></category>
		<category><![CDATA[Storage hierarchy]]></category>
		<category><![CDATA[Storage layer]]></category>
		<category><![CDATA[storage management]]></category>
		<category><![CDATA[Storage pool]]></category>
		<category><![CDATA[Storage virtualization]]></category>
		<category><![CDATA[study]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[System Administration]]></category>
		<category><![CDATA[UNIX admin]]></category>
		<category><![CDATA[UNIX LVM]]></category>
		<category><![CDATA[UNIX storage]]></category>
		<category><![CDATA[VG]]></category>
		<category><![CDATA[VGDA]]></category>
		<category><![CDATA[vgdisplay]]></category>
		<category><![CDATA[vgs]]></category>
		<category><![CDATA[Virtual storage]]></category>
		<category><![CDATA[Volume Group]]></category>
		<category><![CDATA[Volume Group Descriptor Area]]></category>
		<category><![CDATA[Volume management]]></category>
		<category><![CDATA[xfs]]></category>
		<category><![CDATA[가상 스토리지]]></category>
		<category><![CDATA[공부]]></category>
		<category><![CDATA[기초]]></category>
		<category><![CDATA[논리 디스크]]></category>
		<category><![CDATA[논리 볼륨]]></category>
		<category><![CDATA[논리 볼륨 관리자]]></category>
		<category><![CDATA[논리 스토리지]]></category>
		<category><![CDATA[논리 파티션]]></category>
		<category><![CDATA[데이터 저장]]></category>
		<category><![CDATA[디스크 관리]]></category>
		<category><![CDATA[디스크 파티션]]></category>
		<category><![CDATA[디스크 할당]]></category>
		<category><![CDATA[마운트]]></category>
		<category><![CDATA[마운트 포인트]]></category>
		<category><![CDATA[물리 디스크]]></category>
		<category><![CDATA[물리 볼륨]]></category>
		<category><![CDATA[물리 스토리지]]></category>
		<category><![CDATA[물리 파티션]]></category>
		<category><![CDATA[미러링]]></category>
		<category><![CDATA[볼륨 관리]]></category>
		<category><![CDATA[볼륨 그룹]]></category>
		<category><![CDATA[블록 디바이스]]></category>
		<category><![CDATA[서버 스토리지]]></category>
		<category><![CDATA[스토리지]]></category>
		<category><![CDATA[스토리지 가상화]]></category>
		<category><![CDATA[스토리지 개념]]></category>
		<category><![CDATA[스토리지 계층]]></category>
		<category><![CDATA[스토리지 관리]]></category>
		<category><![CDATA[스토리지 관리자]]></category>
		<category><![CDATA[스토리지 구조]]></category>
		<category><![CDATA[스토리지 아키텍처]]></category>
		<category><![CDATA[스토리지 풀]]></category>
		<category><![CDATA[시스템 관리]]></category>
		<category><![CDATA[시스템 운영]]></category>
		<category><![CDATA[엔터프라이즈 스토리지]]></category>
		<category><![CDATA[인프라]]></category>
		<category><![CDATA[쿼럼]]></category>
		<category><![CDATA[파일 시스템]]></category>
		<guid isPermaLink="false">https://lycos7560.com/?p=40489</guid>

					<description><![CDATA[<p>LVM의 계층 구조와 주요 개념 LVM(Logical Volume Manager)은 리눅스 및 유닉스 계열 시스템에서 사용자가 논리적인 볼륨 저장소를 설정하고 제어할 수 있도록 하는 운영 체제 명령, 라이브러리 및 도구 세트입니다. (Manager) 이는 실제 물리적 디스크와 응용 프로그램 사이에 장치 드라이버 계층을 두어, 물리적 디스크 구조와 무관하게 스토리지 공간을 논리적으로 관리할 수 있게 해줍니다. (여러 물리적인 디스크들을 [&#8230;]</p>
<p>The post <a href="https://lycos7560.com/etc/lvmlogical-volume-manager-%ea%b5%ac%ec%a1%b0-%eb%b0%8f-%ea%b0%9c%eb%85%90/40489/">LVM(Logical Volume Manager) 구조 및 개념</a> appeared first on <a href="https://lycos7560.com">어제와 내일의 나 그 사이의 이야기</a>.</p>
]]></description>
										<content:encoded><![CDATA[				<div class="wp-block-uagb-table-of-contents uagb-toc__align-left uagb-toc__columns-1  uagb-block-472a844f      "
					data-scroll= "1"
					data-offset= "30"
					style=""
				>
				<div class="uagb-toc__wrap">
						<div class="uagb-toc__title">
							목차						</div>
																						<div class="uagb-toc__list-wrap ">
						<ol class="uagb-toc__list"><li class="uagb-toc__list"><a href="#lvm의-계층-구조와-주요-개념" class="uagb-toc-link__trigger">LVM의 계층 구조와 주요 개념</a><ul class="uagb-toc__list"><li class="uagb-toc__list"><a href="#1-물리적-계층-pv-physical-volume-및-pp-physical-partition" class="uagb-toc-link__trigger">1. 물리적 계층: PV (Physical Volume) 및 PP (Physical Partition)</a><ul class="uagb-toc__list"><li class="uagb-toc__list"><a href="#pv-physical-volume" class="uagb-toc-link__trigger">PV (Physical Volume)</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#pp-physical-partition" class="uagb-toc-link__trigger">PP (Physical Partition)</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#관련-명령어" class="uagb-toc-link__trigger">관련 명령어</a></li></ul><li class="uagb-toc__list"><a href="#2-논리적-그룹-계층-vg-volume-group" class="uagb-toc-link__trigger">2. 논리적 그룹 계층: VG (Volume Group)</a><ul class="uagb-toc__list"><li class="uagb-toc__list"><a href="#vg-volume-group" class="uagb-toc-link__trigger">VG (Volume Group)</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#관련-명령어" class="uagb-toc-link__trigger">관련 명령어</a></li></ul><li class="uagb-toc__list"><a href="#3-논리적-할당-계층-lv-logical-volume-및-lp-logical-partition-미러링mirroring" class="uagb-toc-link__trigger">3. 논리적 할당 계층: LV (Logical Volume) 및 LP (Logical Partition) / 미러링(Mirroring)</a><ul class="uagb-toc__list"><li class="uagb-toc__list"><a href="#lv-logical-volume" class="uagb-toc-link__trigger">LV (Logical Volume)</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#lp-logical-partition" class="uagb-toc-link__trigger">LP (Logical Partition)</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#미러링mirroring" class="uagb-toc-link__trigger">미러링(Mirroring)</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#관련-명령어" class="uagb-toc-link__trigger">관련 명령어</a></li></ul><li class="uagb-toc__list"><a href="#4-계층-구조의-상위-단계-파일-시스템file-system" class="uagb-toc-link__trigger">4. 계층 구조의 상위 단계: 파일 시스템(File System)</a><ul class="uagb-toc__list"><li class="uagb-toc__list"><a href="#file-system" class="uagb-toc-link__trigger">File System</a></li></ul><li class="uagb-toc__list"><a href="#주요-개념-요약" class="uagb-toc-link__trigger">주요 개념 요약</a><ul class="uagb-toc__list"><li class="uagb-toc__list"><a href="#계층-구조" class="uagb-toc-link__trigger">계층 구조</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#유연성" class="uagb-toc-link__trigger">유연성</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#데이터-무결성" class="uagb-toc-link__trigger">데이터 무결성</a></ul></ul></ol>					</div>
									</div>
				</div>
			


<div style="height:50px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">LVM의 계층 구조와 주요 개념</h3>



<p><strong>LVM(Logical Volume Manager)</strong>은 리눅스 및 유닉스 계열 시스템에서 사용자가 논리적인 볼륨 저장소를 설정하고 제어할 수 있도록 하는 운영 체제 명령, 라이브러리 및 도구 세트입니다. (Manager)</p>



<p>이는 실제 <strong>물리적 디스크</strong>와 <strong>응용 프로그램</strong> 사이에 <strong>장치 드라이버 계층</strong>을 두어, <strong>물리적 디스크 구조</strong>와<strong> 무관하게 스토리지 공간을 논리적으로 관리</strong>할 수 있게 해줍니다.</p>



<p>(여러 물리적인 디스크들을 하나의 논리적인 디스크처럼 다룰 수 있게 함 &#8211; 고용량, 고속, 데이터의 무결성 등을 실현 가능)</p>



<ul class="wp-block-list">
<li><strong>LVM이 필요한 이유?</strong></li>
</ul>



<p>기존 파티션 기반 스토리지 관리 방식은 용량 확장이나 재구성이 복잡하고 다운 타임이 발생할 수 있다. </p>



<p>그러나 LVM을 사용하면 하드 드라이브를 재분할할 필요 없이 논리 볼륨을 생성, 크기 조정, 이동 및 삭제할 수 있습니다.</p>



<p>LVM의 진정한 매력은 논리 볼륨과 볼륨 그룹의 크기를 실시간으로 조정할 수 있다는 점에 있습니다.</p>



<p>예를 들어) 갑자기 데이터베이스 용량 필요하다고 해도<strong> LVM을 사용하면 운영 중단 없이 손쉽게 공간을 확장</strong>할 수 있습니다.</p>



<p>LVM은 하드 디스크 위에 얇은 소프트웨어 계층을 덧씌워 하드 드라이브 관리의 연속성과 편의성을 추상화한 것이라고 생각하면 될 것 같습니다.</p>



<div class="wp-block-uagb-container uagb-block-a9759a32 alignfull uagb-is-root-container"><div class="uagb-container-inner-blocks-wrap">
<div class="wp-block-uagb-container uagb-block-9b76df1b">
<figure class="wp-block-image size-full is-resized"><img decoding="async" width="960" height="967" src="https://lycos7560.com/wp-content/uploads/2026/02/Lvm.svg_.png" alt="" class="wp-image-40492" style="width:792px;height:auto" srcset="https://lycos7560.com/wp-content/uploads/2026/02/Lvm.svg_.png 960w, https://lycos7560.com/wp-content/uploads/2026/02/Lvm.svg_-298x300.png 298w, https://lycos7560.com/wp-content/uploads/2026/02/Lvm.svg_-150x150.png 150w, https://lycos7560.com/wp-content/uploads/2026/02/Lvm.svg_-768x774.png 768w" sizes="(max-width: 960px) 100vw, 960px" /><figcaption class="wp-element-caption"><a href="https://en.wikipedia.org/wiki/Logical_Volume_Manager_(Linux)">https://en.wikipedia.org/wiki/Logical_Volume_Manager_(Linux)</a></figcaption></figure>
</div>



<div class="wp-block-uagb-container uagb-block-f0a092a6">
<figure class="wp-block-image size-full has-custom-border"><img decoding="async" width="791" height="481" src="https://lycos7560.com/wp-content/uploads/2026/02/image-8.png" alt="" class="wp-image-40490" style="border-width:1px" srcset="https://lycos7560.com/wp-content/uploads/2026/02/image-8.png 791w, https://lycos7560.com/wp-content/uploads/2026/02/image-8-300x182.png 300w, https://lycos7560.com/wp-content/uploads/2026/02/image-8-768x467.png 768w" sizes="(max-width: 791px) 100vw, 791px" /><figcaption class="wp-element-caption"><a href="https://medium.com/@habibullah.127.0.0.1/what-is-lvm-lvm-architecture-how-to-create-pvs-vgs-lvs-in-linux-30acd24e4f0b" target="_blank" rel="noreferrer noopener">https://medium.com/@habibullah.127.0.0.1/what-is-lvm-lvm-architecture-how-to-create-pvs-vgs-lvs-in-linux-30acd24e4f0b</a></figcaption></figure>
</div>
</div></div>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading">1. 물리적 계층: PV (Physical Volume) 및 PP (Physical Partition)</h4>



<h5 class="wp-block-heading"><strong>PV (Physical Volume)</strong></h5>



<p>LVM에서 인식하는 <strong>물리적 디스크 드라이브</strong> 자체를 의미하며, AIX 시스템에서는 <code>hdisk0</code>, <code>hdisk1</code>과 같은 이름으로 표시됩니다.</p>



<p><mark style="background-color:rgba(0, 0, 0, 0);color:#ff6900" class="has-inline-color"><strong>하나의 PV는 </strong></mark>반드시 <mark style="background-color:rgba(0, 0, 0, 0);color:#ff6900" class="has-inline-color"><strong>하나의 VG</strong></mark>에만 속할 수 있습니다.</p>



<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>



<h5 class="wp-block-heading"><strong><strong>PP (Physical Partition)</strong></strong></h5>



<p>PV를 일정한 크기로 나눈 <strong>최소의 물리적 단위</strong>입니다.</p>



<p>PP의 크기는 1MB에서 1GB까지 설정 가능하며, <mark style="background-color:rgba(0, 0, 0, 0);color:#ff6900" class="has-inline-color"><strong>동일한 VG 내의 모든 PV</strong></mark>는<mark style="background-color:rgba(0, 0, 0, 0);color:#ff6900" class="has-inline-color"><strong> 동일한 크기의 PP</strong></mark>를 가집니다.</p>



<h5 class="wp-block-heading"><strong><strong>관련 명령어</strong></strong></h5>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># 하드 디스크 총 개수, 파티션 수, 저장 용량 및 사용 가능 용량을 확인
- Linux
lsblk
- AIX
lsdev -Cc disk

# Physical Volumes 총 개수
- Linux
pvs
pvdisplay
- AIX
lspv
lspv hdisk0</pre>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading">2. 논리적 그룹 계층: VG (Volume Group)</h4>



<h5 class="wp-block-heading"><strong><strong>VG (Volume Group)</strong></strong></h5>



<p>하나 이상의 <strong>PV들을 논리적으로 묶은 집합체</strong>입니다.</p>



<p>VG 내의 디스크들은 PP라는 단위로 쪼개져 관리되며, 이를 통해 여러 <strong>물리적 디스크에 걸쳐 있는 논리적 볼륨을 생성하는 등 유연한 관리가 가능</strong>해집니다.</p>



<p>데이터 보호를 위해 미러링을 설정하면, <strong>하나의 LP가 2개 또는 3개의 PP에 대응</strong>되어 동일한 데이터 사본을 여러 곳에 저장하게 됩니다.</p>



<h5 class="wp-block-heading"><strong><strong>관련 명령어</strong></strong></h5>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># Volume groups 확인
- Linux
vgs
vgdisplay
- AIX
lsvg
lsvg vgname</pre>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading">3. 논리적 할당 계층: LV (Logical Volume) 및 LP (Logical Partition) / <strong>미러링(Mirroring)</strong></h4>



<h5 class="wp-block-heading"><strong><strong><strong>LV (Logical Volume)</strong></strong></strong></h5>



<p>사용자가 실제 데이터를 저장하기 위해 VG 내에서 정의하는 <strong>논리적인 저장 공간</strong>입니다.</p>



<p>LV는 사용자에게는 연속된 공간으로 보이지만, <strong>실제 물리적 위치(PP)는 디스크 상에서 흩어져 있거나 여러 PV에 걸쳐 있을 수 있습니다</strong>.</p>



<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>



<h5 class="wp-block-heading"><strong><strong><strong><strong>LP (Logical Partition)</strong></strong></strong></strong></h5>



<p>LV를 구성하는 <strong>최소 논리 단위</strong>로, <strong>하나 이상의 PP</strong>에 대응됩니다.</p>



<p>※ 참고: AIX에서는 LP/PP라는 용어를 사용하며,<br>Linux LVM에서는 LE/PE(Extent)라는 용어를 사용한다.</p>



<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>



<h5 class="wp-block-heading"><strong><strong><strong><strong><strong>미러링(Mirroring)</strong></strong></strong></strong></strong></h5>



<p>데이터 보호를 위해 미러링을 설정하면, <strong>하나의 LP가 2개 또는 3개의 PP에 대응</strong>되어 동일한 데이터 사본을 여러 곳에 저장하게 됩니다.</p>



<h5 class="wp-block-heading"><strong><strong>관련 명령어</strong></strong></h5>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># Logical volumes 확인
- Linux
lvs
lvdisplay
- AIX
lslv
lslv lvname</pre>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading">4. 계층 구조의 상위 단계: 파일 시스템(File System)</h4>



<h5 class="wp-block-heading"><strong><strong><strong>File System</strong></strong></strong></h5>



<p>LV 위에 구축되어 사용자가 <strong>실제 파일을 저장하고 접근할 수 있도록 하는 논리적인 구조</strong>입니다.</p>



<p>생성된 <strong>LV 위에는 JFS 또는 JFS2와 같은 파일 시스템</strong>이 구축되거나, 페이징 공간(Paging Space)으로 사용됩니다.</p>



<p>운영체제는 이러한 파일 시스템을 통해 파일을 저장하고 관리합니다.</p>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" style="margin-top:0;margin-bottom:0"/>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading">주요 개념 요약</h4>



<h5 class="wp-block-heading"><strong><strong><strong><strong>계층 구조</strong></strong></strong></strong></h5>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">PV(PP) → VG → LV(LP) → 파일 시스템</pre>



<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>



<h5 class="wp-block-heading"><strong><strong><strong><strong><strong>유연성</strong></strong></strong></strong></strong></h5>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">LVM을 사용하면 운영 중에 파일 시스템의 용량을 늘리거나 줄이는 것이 가능하며, 
물리적인 디스크 한계를 넘어 스토리지를 효율적으로 관리할 수 있습니다</pre>



<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>



<h5 class="wp-block-heading"><strong><strong><strong><strong><strong><strong>데이터 무결성</strong></strong></strong></strong></strong></strong></h5>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="false" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">VGDA(Volume Group Descriptor Area)와 같은 영역에 LVM 구조 정보를 저장하여 관리하며, 
쿼럼(Quorum) 메커니즘을 통해 디스크 장애 시에도 데이터의 무결성을 보장합니다.</pre>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="[리눅스 기초 강의] 41강. 6.3 LVM(Logical Volume Manage)" width="1778" height="1000" src="https://www.youtube.com/embed/eb2cDW-zXlI?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<p></p>



<p></p>
<p>The post <a href="https://lycos7560.com/etc/lvmlogical-volume-manager-%ea%b5%ac%ec%a1%b0-%eb%b0%8f-%ea%b0%9c%eb%85%90/40489/">LVM(Logical Volume Manager) 구조 및 개념</a> appeared first on <a href="https://lycos7560.com">어제와 내일의 나 그 사이의 이야기</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://lycos7560.com/etc/lvmlogical-volume-manager-%ea%b5%ac%ec%a1%b0-%eb%b0%8f-%ea%b0%9c%eb%85%90/40489/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Linux Development Tools Install</title>
		<link>https://lycos7560.com/etc/linux-development-tools-install/40476/</link>
					<comments>https://lycos7560.com/etc/linux-development-tools-install/40476/#respond</comments>
		
		<dc:creator><![CDATA[lycos7560]]></dc:creator>
		<pubDate>Mon, 16 Feb 2026 22:31:03 +0000</pubDate>
				<category><![CDATA[기타]]></category>
		<category><![CDATA[autoconf]]></category>
		<category><![CDATA[automake]]></category>
		<category><![CDATA[C 언어]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[C++ 언어]]></category>
		<category><![CDATA[CI/CD]]></category>
		<category><![CDATA[cpp]]></category>
		<category><![CDATA[Development Tools]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[dnf]]></category>
		<category><![CDATA[gcc]]></category>
		<category><![CDATA[gdb]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[glibc-devel]]></category>
		<category><![CDATA[groupinstall]]></category>
		<category><![CDATA[How-to 가이드]]></category>
		<category><![CDATA[kernel-devel]]></category>
		<category><![CDATA[kernel-headers]]></category>
		<category><![CDATA[libstdc++-devel]]></category>
		<category><![CDATA[libtool]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Linux 개발 환경]]></category>
		<category><![CDATA[Linux 관리]]></category>
		<category><![CDATA[Linux 설치]]></category>
		<category><![CDATA[Linux 정보]]></category>
		<category><![CDATA[Linux 초보자]]></category>
		<category><![CDATA[Linux 커널]]></category>
		<category><![CDATA[Linux 컴파일]]></category>
		<category><![CDATA[Linux 팁]]></category>
		<category><![CDATA[make]]></category>
		<category><![CDATA[OS 개발]]></category>
		<category><![CDATA[Rocky]]></category>
		<category><![CDATA[Rocky Linux]]></category>
		<category><![CDATA[Rocky Linux 설치]]></category>
		<category><![CDATA[study]]></category>
		<category><![CDATA[vmtoolsd]]></category>
		<category><![CDATA[VMware Tools]]></category>
		<category><![CDATA[VMware Workstation]]></category>
		<category><![CDATA[가상 머신]]></category>
		<category><![CDATA[개발 입문]]></category>
		<category><![CDATA[개발 정보]]></category>
		<category><![CDATA[개발 튜토리얼]]></category>
		<category><![CDATA[개발 팁]]></category>
		<category><![CDATA[개발 필수 도구]]></category>
		<category><![CDATA[개발 환경]]></category>
		<category><![CDATA[개발자 가이드]]></category>
		<category><![CDATA[개발자 도구]]></category>
		<category><![CDATA[공부]]></category>
		<category><![CDATA[기술 문서]]></category>
		<category><![CDATA[기술 블로그]]></category>
		<category><![CDATA[기술 정보]]></category>
		<category><![CDATA[기초]]></category>
		<category><![CDATA[단계별 설명]]></category>
		<category><![CDATA[드라이버 개발]]></category>
		<category><![CDATA[디버거]]></category>
		<category><![CDATA[라이브러리 빌드]]></category>
		<category><![CDATA[링킹]]></category>
		<category><![CDATA[바이너리 생성]]></category>
		<category><![CDATA[백엔드 개발]]></category>
		<category><![CDATA[버전 관리]]></category>
		<category><![CDATA[비유 설명]]></category>
		<category><![CDATA[빌드 과정]]></category>
		<category><![CDATA[빌드 관리]]></category>
		<category><![CDATA[빌드 도구]]></category>
		<category><![CDATA[빌드 자동화]]></category>
		<category><![CDATA[상세 설명]]></category>
		<category><![CDATA[서버 개발]]></category>
		<category><![CDATA[설치 가이드]]></category>
		<category><![CDATA[성능 최적화]]></category>
		<category><![CDATA[소스 코드]]></category>
		<category><![CDATA[소스 코드 컴파일]]></category>
		<category><![CDATA[소프트웨어 개발]]></category>
		<category><![CDATA[소프트웨어 빌드]]></category>
		<category><![CDATA[소프트웨어 설치]]></category>
		<category><![CDATA[소프트웨어 아키텍처]]></category>
		<category><![CDATA[시스템 개발]]></category>
		<category><![CDATA[시스템 관리]]></category>
		<category><![CDATA[시스템 구축]]></category>
		<category><![CDATA[시스템 프로그래밍]]></category>
		<category><![CDATA[실습 환경]]></category>
		<category><![CDATA[실전 가이드]]></category>
		<category><![CDATA[에뮬레이션]]></category>
		<category><![CDATA[오류 해결]]></category>
		<category><![CDATA[오픈소스]]></category>
		<category><![CDATA[오픈소스 개발]]></category>
		<category><![CDATA[운영체제]]></category>
		<category><![CDATA[의존성 관리]]></category>
		<category><![CDATA[이해하기 쉬운 설명]]></category>
		<category><![CDATA[임베디드 시스템]]></category>
		<category><![CDATA[자동화]]></category>
		<category><![CDATA[자동화 빌드]]></category>
		<category><![CDATA[주의사항]]></category>
		<category><![CDATA[초보자 가이드]]></category>
		<category><![CDATA[커널 개발]]></category>
		<category><![CDATA[커널 모듈]]></category>
		<category><![CDATA[커널 헤더]]></category>
		<category><![CDATA[컴파일 과정]]></category>
		<category><![CDATA[컴파일 도구]]></category>
		<category><![CDATA[컴파일러]]></category>
		<category><![CDATA[컴퓨터 아키텍처]]></category>
		<category><![CDATA[클라우드 개발]]></category>
		<category><![CDATA[튜토리얼]]></category>
		<category><![CDATA[트러블슈팅]]></category>
		<category><![CDATA[패키지 관리]]></category>
		<category><![CDATA[패키지 설치]]></category>
		<category><![CDATA[프로그래밍]]></category>
		<category><![CDATA[프로그래밍 도구]]></category>
		<category><![CDATA[학습 가이드]]></category>
		<guid isPermaLink="false">https://lycos7560.com/?p=40476</guid>

					<description><![CDATA[<p>Development Tools (개발 도구 모음) ? Linux에서 소프트웨어를 개발하고 컴파일하는 데 필요한 도구들의 패키지입니다. 예를 들어 &#8220;VMware Tools&#8221;처럼 C/C++ 소스 코드로 작성된 프로그램을 설치할 때 반드시 필요합니다. 설치 명령 부분 의미 주의 sudo 관리자 권한 필수! dnf Rocky Linux 패키지 매니저 Ubuntu는 apt groupinstall 패키지 그룹 설치 install과 다름 "Development Tools" 그룹 이름 따옴표 필수 [&#8230;]</p>
<p>The post <a href="https://lycos7560.com/etc/linux-development-tools-install/40476/">Linux Development Tools Install</a> appeared first on <a href="https://lycos7560.com">어제와 내일의 나 그 사이의 이야기</a>.</p>
]]></description>
										<content:encoded><![CDATA[				<div class="wp-block-uagb-table-of-contents uagb-toc__align-left uagb-toc__columns-1  uagb-block-7dc8e9d1      "
					data-scroll= "1"
					data-offset= "30"
					style=""
				>
				<div class="uagb-toc__wrap">
						<div class="uagb-toc__title">
							목차						</div>
																						<div class="uagb-toc__list-wrap ">
						<ol class="uagb-toc__list"><li class="uagb-toc__list"><a href="#development-tools-개발-도구-모음" class="uagb-toc-link__trigger">Development Tools (개발 도구 모음) ?</a><ul class="uagb-toc__list"><li class="uagb-toc__list"><a href="#설치-명령" class="uagb-toc-link__trigger">설치 명령</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#설치-시간-및-용량" class="uagb-toc-link__trigger">설치 시간 및 용량</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#설치-결과" class="uagb-toc-link__trigger">설치 결과</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#주요-설치-파일-cc-기준" class="uagb-toc-link__trigger">주요 설치 파일 (C/C++ 기준)</a><ul class="uagb-toc__list"><li class="uagb-toc__list"><a href="#컴파일러-compiler" class="uagb-toc-link__trigger">컴파일러 (Compiler)</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#빌드-도구-build-tools" class="uagb-toc-link__trigger">빌드 도구 (Build Tools)</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#커널-개발-패키지-kernel-development" class="uagb-toc-link__trigger">커널 개발 패키지 (Kernel Development)</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#라이브러리-개발-패키지-library-development" class="uagb-toc-link__trigger">라이브러리 개발 패키지 (Library Development)</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#추가-개발-도구" class="uagb-toc-link__trigger">추가 개발 도구</a></li></ul><li class="uagb-toc__list"><a href="#참고-및-주의사항" class="uagb-toc-link__trigger">참고 및 주의사항</a><ul class="uagb-toc__list"><li class="uagb-toc__list"><a href="#groupinstall-vs-install" class="uagb-toc-link__trigger">groupinstall vs install</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#설치-확인" class="uagb-toc-link__trigger">설치 확인</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#오류-발생-시" class="uagb-toc-link__trigger">오류 발생 시</a></ul></ul></ol>					</div>
									</div>
				</div>
			


<div style="height:50px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">Development Tools (개발 도구 모음) ?</h2>



<p>Linux에서 소프트웨어를 <strong>개발하고 컴파일하는 데 필요한 도구들의 패키지</strong>입니다.</p>



<p>예를 들어 &#8220;VMware Tools&#8221;처럼 <strong>C/C++ 소스 코드로 작성된 프로그램</strong>을 설치할 때 반드시 필요합니다.</p>



<h3 class="wp-block-heading">설치 명령</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">rocky linux

dnf groupinstall "Development Tools" -y

// vm-tool 설치 (Rocky Linux 공식 저장소에서 설치, ISO 방식이 아님)
sudo dnf install open-vm-tools open-vm-tools-desktop -y
</pre>



<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>부분</th><th>의미</th><th>주의</th></tr></thead><tbody><tr><td><code>sudo</code></td><td>관리자 권한</td><td>필수!</td></tr><tr><td><code>dnf</code></td><td>Rocky Linux 패키지 매니저</td><td>Ubuntu는 <code>apt</code></td></tr><tr><td><code>groupinstall</code></td><td>패키지 <strong>그룹</strong> 설치</td><td><code>install</code>과 다름</td></tr><tr><td><code>"Development Tools"</code></td><td>그룹 이름</td><td><strong>따옴표 필수</strong></td></tr><tr><td><code>-y</code></td><td>Yes 자동 응답</td><td>사용자 입력 생략</td></tr></tbody></table></figure>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" style="margin-top:var(--wp--preset--spacing--40);margin-bottom:var(--wp--preset--spacing--40)"/>



<h3 class="wp-block-heading">설치 시간 및 용량</h3>



<ul class="wp-block-list">
<li><strong>예상 시간:</strong> 3-5분</li>



<li><strong>설치 크기:</strong> ~1GB</li>



<li><strong>필요 디스크:</strong> ~2GB</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" style="margin-top:var(--wp--preset--spacing--20);margin-bottom:var(--wp--preset--spacing--20)"/>



<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>



<h3 class="wp-block-heading">설치 결과</h3>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">20260217 설치 결과는 Rocky Linux 버전 및 시간에 따라 다를 수 있습니다.

--------------

Installed:
  annobin-docs-12.99-1.el10.noarch                 annobin-plugin-gcc-12.99-1.el10.x86_64               asciidoc-10.2.0-12.el10.noarch                   autoconf-2.71-13.el10.noarch                                   
  automake-1.16.5-20.el10.noarch                   bison-3.8.2-9.el10.x86_64                            boost-atomic-1.83.0-5.el10.x86_64                boost-filesystem-1.83.0-5.el10.x86_64                          
  boost-regex-1.83.0-5.el10.x86_64                 boost-system-1.83.0-5.el10.x86_64                    boost-thread-1.83.0-5.el10.x86_64                byacc-2.0.20230521-7.el10.x86_64                               
  cmake-filesystem-3.30.5-3.el10_0.x86_64          cpp-14.3.1-2.1.el10.x86_64                           debugedit-5.1-8.el10.x86_64                      diffstat-1.66-3.el10.x86_64                                    
  docbook-dtds-1.0-92.el10.noarch                  docbook-style-xsl-1.79.2-30.el10.noarch              dwz-0.16-1.el10.x86_64                           dyninst-13.0.0-1.el10.x86_64                                   
  efi-srpm-macros-6-7.el10.noarch                  efivar-libs-39-3.el10.x86_64                         elfutils-0.193-1.el10.rocky.0.1.x86_64           elfutils-debuginfod-client-devel-0.193-1.el10.rocky.0.1.x86_64 
  elfutils-devel-0.193-1.el10.rocky.0.1.x86_64     elfutils-libelf-devel-0.193-1.el10.rocky.0.1.x86_64  flex-2.6.4-19.el10.x86_64                        fonts-srpm-macros-1:2.0.5-18.el10.noarch                       
  forge-srpm-macros-0.4.0-6.el10.noarch            gcc-14.3.1-2.1.el10.x86_64                           gcc-c++-14.3.1-2.1.el10.x86_64                   gcc-plugin-annobin-14.3.1-2.1.el10.x86_64                      
  gdb-16.3-2.el10.x86_64                           gdb-headless-16.3-2.el10.x86_64                      gettext-common-devel-0.22.5-6.el10.noarch        gettext-devel-0.22.5-6.el10.x86_64                             
  git-2.47.3-1.el10.x86_64                         git-core-2.47.3-1.el10.x86_64                        git-core-doc-2.47.3-1.el10.noarch                glibc-devel-2.39-58.el10_1.7.x86_64                            
  go-srpm-macros-3.6.0-4.el10.noarch               graphviz-9.0.0-15.el10.x86_64                        intltool-0.51.0-29.el10.noarch                   javapackages-filesystem-6.4.0-1.el10.noarch                    
  jna-5.14.0-7.el10.x86_64                         kernel-devel-6.12.0-124.35.1.el10_1.x86_64           kernel-headers-6.12.0-124.35.1.el10_1.x86_64     kernel-srpm-macros-1.0-26.el10.noarch                          
  libipt-2.1-5.el10.x86_64                         libstdc++-devel-14.3.1-2.1.el10.x86_64               libtool-2.4.7-13.el10.x86_64                     libxcrypt-devel-4.4.36-10.el10.x86_64                          
  libzstd-devel-1.5.5-9.el10.x86_64                ltrace-0.7.91-52.el10.x86_64                         lua-srpm-macros-1-15.el10.noarch                 m4-1.4.19-11.el10.x86_64                                       
  make-1:4.4.1-9.el10.x86_64                       mokutil-2:0.7.2-1.el10.x86_64                        nss-tools-3.112.0-4.el10_0.x86_64                ocaml-srpm-macros-10-4.el10.noarch                             
  openblas-srpm-macros-2-19.el10.noarch            openssl-devel-1:3.5.1-7.el10_1.x86_64                package-notes-srpm-macros-0.5-13.el10.noarch     patch-2.7.6-26.el10.x86_64                                     
  patchutils-0.4.2-15.el10.x86_64                  perl-Clone-0.46-10.el10.x86_64                       perl-Compress-Raw-Bzip2-2.212-512.el10.x86_64    perl-Compress-Raw-Zlib-2.212-513.el10_1.x86_64                 
  perl-Data-Dump-1.25-13.el10.noarch               perl-Digest-HMAC-1.04-12.el10.noarch                 perl-Digest-SHA-1:6.04-512.el10.x86_64           perl-Encode-Locale-1.05-31.el10.noarch                         
  perl-Error-1:0.17029-18.el10.noarch              perl-Fedora-VSP-0.001-36.el10.noarch                 perl-File-Compare-1.100.800-512.2.el10_0.noarch  perl-File-Copy-2.41-512.2.el10_0.noarch                        
  perl-File-Listing-6.16-5.el10.noarch             perl-Git-2.47.3-1.el10.noarch                        perl-HTML-Parser-3.82-3.el10.x86_64              perl-HTML-Tagset-3.20-59.el10.noarch                           
  perl-HTTP-Cookies-6.11-5.el10.noarch             perl-HTTP-Date-6.06-6.el10.noarch                    perl-HTTP-Message-6.45-5.el10.noarch             perl-HTTP-Negotiate-6.01-40.el10.noarch                        
  perl-I18N-Langinfo-0.24-512.2.el10_0.x86_64      perl-IO-Compress-2.212-512.el10.noarch               perl-IO-HTML-1.004-14.el10.noarch                perl-LWP-MediaTypes-6.04-19.el10.noarch                        
  perl-Module-Load-1:0.36-511.el10.noarch          perl-NTLM-1.09-41.el10.noarch                        perl-Net-HTTP-6.23-6.el10.noarch                 perl-TermReadKey-2.38-24.el10.x86_64                           
  perl-Thread-Queue-3.14-511.el10.noarch           perl-TimeDate-1:2.33-16.el10.noarch                  perl-Try-Tiny-0.31-12.el10.noarch                perl-WWW-RobotRules-6.02-41.el10.noarch                        
  perl-XML-Parser-2.47-6.el10.x86_64               perl-generators-1.16-7.el10.noarch                   perl-lib-0.65-512.2.el10_0.x86_64                perl-libwww-perl-6.76-3.el10.noarch                            
  perl-macros-4:5.40.2-512.2.el10_0.noarch         perl-srpm-macros-1-57.el10.noarch                    perl-subs-1.04-512.2.el10_0.noarch               perl-threads-1:2.40-511.el10.x86_64                            
  perl-threads-shared-1.69-511.el10.x86_64         perl-version-8:0.99.32-4.el10.x86_64                 pesign-116-6.el10.x86_64                         pyproject-srpm-macros-1.16.2-1.el10.noarch                     
  python-srpm-macros-3.12-10.el10.noarch           qt6-srpm-macros-6.9.1-1.el10.noarch                  redhat-rpm-config-293-1.el10.rocky.0.2.noarch    rpm-build-4.19.1.1-20.el10.x86_64                              
  rpm-sign-4.19.1.1-20.el10.x86_64                 rust-toolset-srpm-macros-1.88.0-1.el10.noarch        sgml-common-0.6.3-65.el10.noarch                 source-highlight-3.1.9-25.el10.x86_64                          
  systemd-rpm-macros-257-13.el10.rocky.0.1.noarch  systemtap-5.3-3b.el10.x86_64                         systemtap-client-5.3-3b.el10.x86_64              systemtap-devel-5.3-3b.el10.x86_64                             
  systemtap-runtime-5.3-3b.el10.x86_64             tbb-2021.11.0-7.el10.x86_64                          valgrind-1:3.25.1-3.el10.x86_64                  valgrind-devel-1:3.25.1-3.el10.x86_64                          
  valgrind-docs-1:3.25.1-3.el10.x86_64             valgrind-gdb-1:3.25.1-3.el10.x86_64                  valgrind-scripts-1:3.25.1-3.el10.x86_64          xz-devel-1:5.6.2-4.el10_0.x86_64                               
  zlib-ng-compat-devel-2.2.3-3.el10_1.x86_64       zstd-1.5.5-9.el10.x86_64                            

Complete!</pre>



<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>



<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" style="margin-top:var(--wp--preset--spacing--20);margin-bottom:var(--wp--preset--spacing--20)"/>



<h3 class="wp-block-heading">주요 설치 파일 (C/C++ 기준)</h3>



<h4 class="wp-block-heading">컴파일러 (Compiler)</h4>



<p>소스 코드(.c, .cpp) → 기계어 실행파일로 변환</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">gcc-14.3.1           → C 언어 컴파일러
gcc-c++-14.3.1       → C++ 언어 컴파일러</pre>



<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading">빌드 도구 (Build Tools)</h4>



<p>컴파일러 옵션 자동 설정 / 복잡한 빌드 과정 자동화 / 어떤 파일을 먼저 컴파일할지 관리 등&#8230;</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">make-4.4.1           → 자동 빌드 관리
autoconf-2.71        → 자동 설정 생성
automake-1.16.5      → Makefile 자동 생성</pre>



<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading">커널 개발 패키지 (Kernel Development)</h4>



<p><strong>역할:</strong> 커널과 상호작용하는 모듈 작성 가능</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">kernel-devel-6.12.0-124.35.1
kernel-headers-6.12.0-124.35.1
-----------------------------------------------
설치 명령어
sudo dnf install kernel-devel kernel-headers -y </pre>



<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading">라이브러리 개발 패키지 (Library Development)</h4>



<p><strong>역할:</strong> 컴파일된 코드를 실행 가능 파일로 연결 (링킹)</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">glibc-devel-2.39           → C 표준 라이브러리
libstdc++-devel-14.3.1     → C++ 표준 라이브러리
-----------------------------------------------
모든 C/C++ 프로그램의 기본 함수 제공
printf(), malloc() 등의 함수 구현</pre>



<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading">추가 개발 도구</h4>



<p>Git: 소스 코드 변경 이력 관리, GDB: 프로그램 실행 중 오류 추적, libtool: 공유 라이브러리(.so) 빌드</p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">git-2.47.3           → 소스 코드 버전 관리
gdb-16.3             → 프로그램 디버거
libtool-2.4.7        → 라이브러리 빌드 도구</pre>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide" style="margin-top:var(--wp--preset--spacing--50);margin-bottom:var(--wp--preset--spacing--50)"/>



<h3 class="wp-block-heading">참고 및 주의사항</h3>



<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading">groupinstall vs install</h4>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/274c.png" alt="❌" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 잘못된 방법 (의존성 부족 가능)
sudo dnf install gcc

# <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> 올바른 방법 (모든 관련 도구 자동 설치)
sudo dnf groupinstall "Development Tools" -y</pre>



<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading">설치 확인</h4>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group=""># 컴파일러 확인
gcc --version

# Make 확인
make --version

# 커널 헤더 확인
ls /usr/src/kernels/</pre>



<div style="height:10px" aria-hidden="true" class="wp-block-spacer"></div>



<h4 class="wp-block-heading">오류 발생 시</h4>



<p><strong>네트워크 오류:</strong></p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">sudo dnf clean all
sudo dnf groupinstall "Development Tools" -y</pre>



<p><strong>의존성 충돌:</strong></p>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">sudo dnf groupinstall "Development Tools" --allowerasing -y</pre>



<p></p>
<p>The post <a href="https://lycos7560.com/etc/linux-development-tools-install/40476/">Linux Development Tools Install</a> appeared first on <a href="https://lycos7560.com">어제와 내일의 나 그 사이의 이야기</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://lycos7560.com/etc/linux-development-tools-install/40476/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>HBA (Host Bus Adapter) &#8211; Network</title>
		<link>https://lycos7560.com/etc/hba-host-bus-adapter-network/40457/</link>
					<comments>https://lycos7560.com/etc/hba-host-bus-adapter-network/40457/#comments</comments>
		
		<dc:creator><![CDATA[lycos7560]]></dc:creator>
		<pubDate>Thu, 12 Feb 2026 15:23:36 +0000</pubDate>
				<category><![CDATA[개인 공부 저장용]]></category>
		<category><![CDATA[기타]]></category>
		<guid isPermaLink="false">https://lycos7560.com/?p=40457</guid>

					<description><![CDATA[<p>HBA (Host Bus Adapter) ? 호스트 버스 어댑터 서버와 스토리지 네트워크(Fibre Channel SAN)를 연결해주는 인터페이스 카드입니다. 일반적인 이더넷 네트워크에서 사용하는 NIC(Network Interface Card)가 LAN 연결용이라면, HBA는 스토리지 네트워크 연결을 담당하는 장치라고 보면 됩니다. 즉, 서버가 Storage Array의 LUN에 접근할 수 있도록 통로 역할을 합니다. 기본 개념 서버 내부에는 CPU, 메모리, 디스크 외에도 확장 슬롯(PCIe)이 존재합니다. [&#8230;]</p>
<p>The post <a href="https://lycos7560.com/etc/hba-host-bus-adapter-network/40457/">HBA (Host Bus Adapter) &#8211; Network</a> appeared first on <a href="https://lycos7560.com">어제와 내일의 나 그 사이의 이야기</a>.</p>
]]></description>
										<content:encoded><![CDATA[				<div class="wp-block-uagb-table-of-contents uagb-toc__align-left uagb-toc__columns-1  uagb-block-3607df7c      "
					data-scroll= "1"
					data-offset= "30"
					style=""
				>
				<div class="uagb-toc__wrap">
						<div class="uagb-toc__title">
							목차						</div>
																						<div class="uagb-toc__list-wrap ">
						<ol class="uagb-toc__list"><li class="uagb-toc__list"><a href="#hba-host-bus-adapter" class="uagb-toc-link__trigger">HBA (Host Bus Adapter) ?</a><li class="uagb-toc__list"><a href="#기본-개념" class="uagb-toc-link__trigger">기본 개념</a><li class="uagb-toc__list"><a href="#hba의-역할" class="uagb-toc-link__trigger">HBA의 역할</a><ul class="uagb-toc__list"><li class="uagb-toc__list"><a href="#스토리지-연결-제공" class="uagb-toc-link__trigger">스토리지 연결 제공</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#프로토콜-처리" class="uagb-toc-link__trigger">프로토콜 처리</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#wwn-제공" class="uagb-toc-link__trigger">WWN 제공</a><li class="uagb-toc__list"><li class="uagb-toc__list"><a href="#데이터-전송-최적화" class="uagb-toc-link__trigger">데이터 전송 최적화</a></li></ul></li><li class="uagb-toc__list"><a href="#hba-동작-흐름" class="uagb-toc-link__trigger">HBA 동작 흐름</a><li class="uagb-toc__list"><a href="#hba의-특징" class="uagb-toc-link__trigger">HBA의 특징</a><li class="uagb-toc__list"><a href="#구성-예시" class="uagb-toc-link__trigger">구성 예시</a><li class="uagb-toc__list"><a href="#hba와-multipath의-관계" class="uagb-toc-link__trigger">HBA와 Multipath의 관계</a></ul></ol>					</div>
									</div>
				</div>
			


<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-image size-full is-resized"><img decoding="async" width="967" height="560" src="https://lycos7560.com/wp-content/uploads/2026/02/image-7-1.jpg" alt="" class="wp-image-40459" style="aspect-ratio:1.7268279043757864;width:463px;height:auto" srcset="https://lycos7560.com/wp-content/uploads/2026/02/image-7-1.jpg 967w, https://lycos7560.com/wp-content/uploads/2026/02/image-7-1-300x174.jpg 300w, https://lycos7560.com/wp-content/uploads/2026/02/image-7-1-768x445.jpg 768w" sizes="(max-width: 967px) 100vw, 967px" /><figcaption class="wp-element-caption">Sun Storage 16GB 광 섬유 채널 PCIe 범용 호스트 버스 어댑터(QLogic)&nbsp;<br><a href="https://docs.oracle.com/cd/E50150_01/html/E41423/z40003111016271.html" target="_blank" rel="noreferrer noopener">https://docs.oracle.com/cd/E50150_01/html/E41423/z40003111016271.html</a></figcaption></figure>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading">HBA (Host Bus Adapter) ?</h2>



<p><strong>호스트 버스 어댑터</strong></p>



<ul class="wp-block-list">
<li>Host → 호스트(서버)</li>



<li>Bus → 버스(시스템 내부 데이터 통로)</li>



<li>Adapter → 어댑터</li>
</ul>



<p>서버와 스토리지 네트워크(Fibre Channel SAN)를 연결해주는 인터페이스 카드입니다.</p>



<p>일반적인 <strong>이더넷 네트워크에서 사용하는 NIC(Network Interface Card)가 LAN 연결용</strong>이라면,</p>



<p>HBA는 <strong>스토리지 네트워크 연결을 담당하는 장치</strong>라고 보면 됩니다.</p>



<p>즉, <strong>서버</strong>가 <strong>Storage Array의 LUN에 접근할 수 있도록 통로 역할</strong>을 합니다.</p>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide"/>



<h2 class="wp-block-heading">기본 개념</h2>



<p>서버 내부에는 CPU, 메모리, 디스크 외에도 <strong>확장 슬롯(PCIe)</strong>이 존재합니다.</p>



<p>이 슬롯에 HBA 카드를 장착하면 서버는 Fibre Channel Fabric에 연결됩니다.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">Server
 └─ HBA 카드
     └─ FC 케이블
         └─ FC Switch
             └─ Storage Array</pre>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<p>이 구조를 통해 서버는 원격 스토리지를 로컬 디스크처럼 사용할 수 있습니다.</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide"/>



<h2 class="wp-block-heading">HBA의 역할</h2>



<h3 class="wp-block-heading">스토리지 연결 제공</h3>



<p>서버와 SAN(Storage Area Network)을 물리적으로 연결합니다.</p>



<h3 class="wp-block-heading">프로토콜 처리</h3>



<p>SCSI 명령을 Fibre Channel 프레임으로 변환하여 전달합니다.</p>



<p><em>SCSI(Small Computer System Interface) 명령은&nbsp;<strong>컴퓨터와 스토리지 장치(HDD, SSD, 테이프 등) 간에 데이터 입출력을 제어하기 위한 표준화된 명령어 세트</strong>)</em></p>



<h3 class="wp-block-heading">WWN 제공</h3>



<p>각 HBA 포트는 고유한 WWN(World Wide Name)을 가지며 이를 통해 스위치 <strong>Zoning</strong> 및 <strong>LUN 매핑</strong>이 이루어집니다.</p>



<h3 class="wp-block-heading">데이터 전송 최적화</h3>



<p>DMA 등의 기능을 사용하여 CPU 부담을 줄이고 I/O 성능을 향상시킵니다.</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide"/>



<h2 class="wp-block-heading">HBA 동작 흐름</h2>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">Application 
 → File System 
 → OS Block Layer 
 → HBA 
 → FC Switch 
 → Storage Array 
 → LUN</pre>



<p>사용자는 로컬 디스크처럼 사용하지만 실제 데이터는 SAN을 통해 전송됩니다.</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide"/>



<h2 class="wp-block-heading">HBA의 특징</h2>



<p>서버 입장에서는 일반 디스크 인터페이스처럼 보입니다.</p>



<p>Linux에서는 다음과 같이 확인 가능합니다:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">lspci | grep Fibre
systool -c fc_host -v</pre>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>AIX에서는:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">lsdev -Cc adapter</pre>



<p>각 포트는 WWN을 가지며 스토리지 접근 제어의 기준이 됩니다.</p>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide"/>



<h2 class="wp-block-heading">구성 예시</h2>



<p>이중화 구성(일반적인 환경):</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">Server
 ├─ HBA Port 1 ─ Switch A
 └─ HBA Port 2 ─ Switch B</pre>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>목적:</p>



<ul class="wp-block-list">
<li>경로 장애 대비</li>



<li>성능 분산</li>



<li>Multipath 구성</li>
</ul>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide"/>



<h2 class="wp-block-heading">HBA와 Multipath의 관계</h2>



<p>서버에 <strong>여러 HBA 경로가 존재</strong>할 경우 <strong>동일한 LUN이 여러 경로로 인식</strong>됩니다.</p>



<p><strong>Multipath는 이를 하나의 디스크로 통합하여 관리</strong>합니다.</p>



<p>장점:</p>



<ul class="wp-block-list">
<li>장애 시 자동 경로 전환</li>



<li>성능 향상</li>



<li>안정성 확보</li>
</ul>



<p>Linux 예시:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="raw" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">multipath -ll</pre>



<div style="height:25px" aria-hidden="true" class="wp-block-spacer"></div>



<p>이는 SAN 환경에서 거의 필수 구성입니다.</p>



<p>은행, 공공기관, 데이터센터 등 엔터프라이즈 환경에서는 대부분의 서버가 HBA를 통해 SAN에 연결되어 있으며</p>



<p>이를 기반으로 데이터베이스, 가상화, 백업 시스템이 운영됩니다.</p>



<figure class="wp-block-embed is-type-wp-embed"><div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content" data-secret="Ght72c8mjF"><a href="https://lycos7560.com/etc/%ea%b0%9c%ec%9d%b8-%ea%b3%b5%eb%b6%80-%ec%a0%80%ec%9e%a5%ec%9a%a9/fcip-fibre-channel-over-ip-network/40437/">FCIP (Fibre Channel over IP) &#8211; Network</a></blockquote><iframe loading="lazy" class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8220;FCIP (Fibre Channel over IP) &#8211; Network&#8221; &#8212; 어제와 내일의 나 그 사이의 이야기" src="https://lycos7560.com/etc/%ea%b0%9c%ec%9d%b8-%ea%b3%b5%eb%b6%80-%ec%a0%80%ec%9e%a5%ec%9a%a9/fcip-fibre-channel-over-ip-network/40437/embed/#?secret=yiJZgi4SgY#?secret=Ght72c8mjF" data-secret="Ght72c8mjF" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>



<figure class="wp-block-embed is-type-wp-embed"><div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content" data-secret="nEFpSAGc7u"><a href="https://lycos7560.com/etc/%ea%b0%9c%ec%9d%b8-%ea%b3%b5%eb%b6%80-%ec%a0%80%ec%9e%a5%ec%9a%a9/san-storage-area-network-network/40440/">SAN (Storage Area Network) – Network</a></blockquote><iframe loading="lazy" class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8220;SAN (Storage Area Network) – Network&#8221; &#8212; 어제와 내일의 나 그 사이의 이야기" src="https://lycos7560.com/etc/%ea%b0%9c%ec%9d%b8-%ea%b3%b5%eb%b6%80-%ec%a0%80%ec%9e%a5%ec%9a%a9/san-storage-area-network-network/40440/embed/#?secret=zVroYN0Hwi#?secret=nEFpSAGc7u" data-secret="nEFpSAGc7u" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>



<figure class="wp-block-embed is-type-wp-embed"><div class="wp-block-embed__wrapper">
<blockquote class="wp-embedded-content" data-secret="Jg6BRPoQkN"><a href="https://lycos7560.com/etc/lun-logical-unit-number-network/40454/">LUN (Logical Unit Number) – Network</a></blockquote><iframe loading="lazy" class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  title="&#8220;LUN (Logical Unit Number) – Network&#8221; &#8212; 어제와 내일의 나 그 사이의 이야기" src="https://lycos7560.com/etc/lun-logical-unit-number-network/40454/embed/#?secret=u9HRLjBsoq#?secret=Jg6BRPoQkN" data-secret="Jg6BRPoQkN" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
</div></figure>



<p></p>
<p>The post <a href="https://lycos7560.com/etc/hba-host-bus-adapter-network/40457/">HBA (Host Bus Adapter) &#8211; Network</a> appeared first on <a href="https://lycos7560.com">어제와 내일의 나 그 사이의 이야기</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://lycos7560.com/etc/hba-host-bus-adapter-network/40457/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
	</channel>
</rss>
