<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>bohun-kim.log</title>
        <link>https://velog.io/</link>
        <description></description>
        <lastBuildDate>Wed, 22 May 2024 13:38:56 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>bohun-kim.log</title>
            <url>https://images.velog.io/images/bohun-kim/profile/6ab4f839-819b-4780-91a6-7ab077b8ead0/social.png</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. bohun-kim.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/bohun-kim" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[aria-label, aria-hidden (+내가 작성한 코드)]]></title>
            <link>https://velog.io/@bohun-kim/aria-label-aria-hidden-%EB%82%B4%EA%B0%80-%EC%9E%91%EC%84%B1%ED%95%9C-%EC%BD%94%EB%93%9C</link>
            <guid>https://velog.io/@bohun-kim/aria-label-aria-hidden-%EB%82%B4%EA%B0%80-%EC%9E%91%EC%84%B1%ED%95%9C-%EC%BD%94%EB%93%9C</guid>
            <pubDate>Wed, 22 May 2024 13:38:56 GMT</pubDate>
            <description><![CDATA[<h1 id="aria-label">aria-label</h1>
<p>웹 접근성을 향상시키기 위해 HTML 요소에 레이블을 제공하는 속성으로 시각적으로는 텍스트가 없거나 적절한 설명이 부족한 요소에 사용하면 유용하다.</p>
<p>주로 button 태그, 버튼 역할을 하는 span 태그 등</p>
<pre><code class="language-html">&lt;button aria-label=&quot;Close&quot;&gt;
  &lt;span aria-hidden=&quot;true&quot;&gt;&amp;times;&lt;/span&gt;
&lt;/button&gt;

스크린 리더는 버튼이 &quot;Close&quot; 기능을 한다고 읽어준다.</code></pre>
<h1 id="aria-hidden">aria-hidden</h1>
<p>aria-hidden 속성의 목적은 HTML 요소를 스크린 리더와 같은 보조 기술에서 숨겨 시각 장애인 사용자에게 불필요하거나 중복된 정보를 제공하지 않도록 하는 것이 목표이다.</p>
<pre><code class="language-html">&lt;span aria-hidden=&quot;true&quot;&gt;🌟&lt;/span&gt;</code></pre>
<p>위의 예제에서는 별 아이콘이 시각적으로는 표시되지만, 스크린 리더에서는 무시된다.</p>
<h1 id="내가-작성한-코드">내가 작성한 코드</h1>
<pre><code class="language-html">&lt;button class=&quot;fab&quot; data-note-create-btn aria-label=&quot;add note&quot;&gt;
   &lt;span class=&quot;material-symbols-outlined&quot; aria-hidden=&quot;true&quot;&gt; add &lt;/span&gt;

   &lt;span class=&quot;text text-label-large&quot;&gt;New note&lt;/span&gt;

   &lt;div class=&quot;state-layer&quot;&gt;&lt;/div&gt;
&lt;/button&gt;</code></pre>
<p>span 태그에서 aria-hidden=&quot;true&quot; 를 한 이유는 button 태그에서 이미 aria-label 을 적용시켰기 때문에 스크린 리더는 aria-label 의 &quot;add note&quot; 를 읽어준다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[::selection]]></title>
            <link>https://velog.io/@bohun-kim/selection</link>
            <guid>https://velog.io/@bohun-kim/selection</guid>
            <pubDate>Tue, 21 May 2024 12:42:29 GMT</pubDate>
            <description><![CDATA[<h1 id="selection">::selection</h1>
<p>사용자가 텍스트를 선택할 때 나타나는 선택 영역(마우스로 텍스트를 드래그 행위)의 스타일을 지정하는데 사용되는 CSS 선택자이다.</p>
<p>일반적으로 이러한 선택자를 사용하여 텍스트가 선택될 때의 배경색, 텍스트 색상 등을 사용자 정의할 수 있다.</p>
<pre><code class="language-css">::selection {
    background-color: #ffa500; /* 선택된 텍스트의 배경색을 주황색으로 설정 */
    color: #ffffff; /* 선택된 텍스트의 색상을 흰색으로 설정 */
}</code></pre>
<p><img src="https://velog.velcdn.com/images/bohun-kim/post/5c8b9d1d-c588-4bbe-a364-11895053b31f/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[link  태그로 favicon 등록하기]]></title>
            <link>https://velog.io/@bohun-kim/link-%ED%83%9C%EA%B7%B8%EB%A1%9C-favicon-%EB%93%B1%EB%A1%9D%ED%95%98%EA%B8%B0</link>
            <guid>https://velog.io/@bohun-kim/link-%ED%83%9C%EA%B7%B8%EB%A1%9C-favicon-%EB%93%B1%EB%A1%9D%ED%95%98%EA%B8%B0</guid>
            <pubDate>Thu, 16 May 2024 12:49:01 GMT</pubDate>
            <description><![CDATA[<h1 id="favicon-등록">favicon 등록</h1>
<pre><code class="language-html"> &lt;link
      rel=&quot;shortcut icon&quot;
      href=&quot;./src/favicon/notemate_favicon.ico&quot;
      type=&quot;image/svg+xml&quot;
    /&gt;</code></pre>
<ol>
<li><p><strong>rel=&quot;shortcut icon&quot;</strong>: 현재 페이지의 단축 아이콘을 지정합니다. 웹 브라우저는 이 아이콘을 웹사이트의 탭, 즐겨찾기 목록 및 다른 위치에 표시합니다.</p>
</li>
<li><p><strong>href=&quot;./src/favicon/notemate_favicon.ico&quot;</strong>: 이 속성은 favicon 파일의 경로를 지정합니다. 여기서는 ./src/favicon/notemate_favicon.ico로 설정되어 있으므로, 해당 경로에 있는 notemate_favicon.ico 파일이 사용됩니다.</p>
</li>
<li><p><strong>type=&quot;image/svg+xml&quot;</strong>: 이 속성은 favicon 파일의 MIME 타입을 지정합니다. 여기서는 image/svg+xml으로 설정되어 있으므로, 웹 브라우저에게 이 파일이 SVG 형식의 이미지임을 알려줍니다.</p>
<ul>
<li><p>MIME : 인터넷에서 다양한 종류의 데이터를 식별하기 위한 표준화된 방법으로 웹 브라우저에게 &quot;이 파일은 HTML 문서야&quot;, &quot;이 파일은 JPEG 이미지야&quot;, &quot;이 파일은 MP3 오디오야&quot;와 같은 정보를 제공하게 됩니다.</p>
<p>그래서 type 속성을 사용하여 웹 페이지에 포함된 자원(이미지, 오디오, 비디오 등)의 종류를 명시함으로써, </p>
<p>올바른 MIME 타입을 지정하는 것은 웹 표준 준수와 일관된 사용자 경험을 유지하는 데 도움이 됩니다.</p>
</li>
</ul>
</li>
</ol>
]]></description>
        </item>
        <item>
            <title><![CDATA[for, forEach]]></title>
            <link>https://velog.io/@bohun-kim/for-forEach</link>
            <guid>https://velog.io/@bohun-kim/for-forEach</guid>
            <pubDate>Wed, 08 May 2024 14:00:36 GMT</pubDate>
            <description><![CDATA[<h1 id="for">for</h1>
<pre><code class="language-js">for (initialization; condition; increment/decrement) {
  // 반복해서 실행할 코드
}</code></pre>
<ul>
<li>initialization (초기화): 반복문이 시작될 때 한 번만 실행되는 코드입니다. 일반적으로 반복 변수를 초기화하는 용도로 사용된다. (생략 가능)</li>
<li>condition (조건): 각 반복마다 검사되는 조건입니다. 조건이 true이면 코드 블록이 실행되고, false이면 반복문이 종료된다.</li>
<li>increment/decrement (증가/감소): 각 반복이 끝날 때마다 실행되는 코드이며 반복 변수를 증가시키거나 감소시키는 데 사용된다. (생략 가능)</li>
</ul>
<h1 id="foreach">forEach</h1>
<pre><code class="language-js">배열.forEach(callbackFunction(currentValue [, index [, array]]) {
  // 배열의 각 요소에 대해 실행할 코드
});</code></pre>
<ul>
<li>callbackFunction: 각 배열 요소에 대해 실행할 콜백 함수이다. 이 함수는 세 가지 매개변수를 받을 수 있다.<ul>
<li>currentValue: 현재 처리 중인 배열 요소의 값</li>
<li>index (옵션): 현재 요소의 인덱스</li>
<li>array (옵션): forEach를 호출한 배열 자체</li>
</ul>
</li>
</ul>
<p>forEach 메서드는 주어진 배열의 각 요소에 대해 한 번씩 주어진 콜백 함수를 실행한다. 이 콜백 함수는 각 요소를 순서대로 처리하며, 배열을 변경하지 않고 각 요소에 대해 일관된 작업을 수행할 때 유용하다.</p>
<h1 id="for-foreach-장단점">for, forEach 장단점</h1>
<h2 id="for-장점">for 장점</h2>
<ol>
<li>반복의 시작점과 종료점을 명시적으로 설정할 수 있다.</li>
<li>반복을 더 세밀하게 제어할 수 있다. (예: 특정 조건에 따라 반복 중단 등)</li>
</ol>
<h2 id="for-단점">for 단점</h2>
<ol>
<li>직접 시작접과 종료점을 설정해야하기 때문에 코드가 더 많이 필요하고 복잡할 수 있다.</li>
<li>코드를 읽고 이해하기가 어려울 수 있다.</li>
<li>반복 로직을 일일이 작성해야 하므로 실수할 가능성이 높을 수 있다.</li>
</ol>
<h2 id="foreach-장점">forEach 장점</h2>
<ol>
<li>코드가 간결하고 읽기 쉽다.</li>
<li>반복의 세부 사항을 신경 쓸 필요가 없다.</li>
<li>콜백 함수를 사용하여 배열의 각 요소에 일괄적으로 작업을 수행할 수 있다.</li>
</ol>
<h2 id="foreach-단점">forEach 단점</h2>
<ol>
<li>반복의 시작점과 종료점을 명시적으로 설정할 수 없다.</li>
<li>break 문을 사용하여 반복을 중단할 수 없다. (* return 문을 사용하여 반복을 종료할 수 있지만, forEach 메서드 자체에서는 반복을 중단할 방법이 없다.)</li>
</ol>
<h1 id="어떤-것을-선택해야할까">어떤 것을 선택해야할까?</h1>
<p>코드의 목적과 상황에 따라 for 루프와 forEach 메서드 중에서 적절한 것을 선택할 수 있다. 
예를 들어, 반복을 세밀하게 제어해야 하는 경우 for 루프가 유용할 수 있고, 반복하는 작업이 단순하고 배열의 각 요소에 동일한 작업을 수행해야 할 때는 forEach 메서드가 더 편리할 수 있다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[::befor, after (가상 요소 선택자)]]></title>
            <link>https://velog.io/@bohun-kim/befor-after-%EA%B0%80%EC%83%81-%EC%9A%94%EC%86%8C-%EC%84%A0%ED%83%9D%EC%9E%90</link>
            <guid>https://velog.io/@bohun-kim/befor-after-%EA%B0%80%EC%83%81-%EC%9A%94%EC%86%8C-%EC%84%A0%ED%83%9D%EC%9E%90</guid>
            <pubDate>Mon, 06 May 2024 02:43:23 GMT</pubDate>
            <description><![CDATA[<h1 id="가상-요소-선택자란">가상 요소 선택자란?</h1>
<p>가상 요소 선택자는 CSS에서 특정 요소의 가상 요소를 스타일링하기 위해 사용되는 선택자로 이 선택자는 HTML에 직접적으로 표시되지 않는 가상 요소를 대상으로 스타일을 적용할 수 있다.</p>
<h1 id="사용이유">사용이유</h1>
<ol>
<li><p>시맨틱한 구조 유지: 가상 요소를 사용하면 HTML에 직접적으로 추가하지 않고도 디자인적인 요소를 추가할 수 있습니다. 이는 CSS로만 요소를 만들어 스타일을 적용할 수 있기 때문에 HTML 구조를 보다 깔끔하게 유지할 수 있다.</p>
</li>
<li><p>스타일링: ::before를 사용하여 요소의 앞쪽에 (::after 는 요소 뒤쪽) 콘텐츠를 추가할 때 이 콘텐츠에 스타일을 적용할 수 있다. 이를 통해 특정 요소의 디자인을 보강하거나 부가적인 시각적 요소를 추가할 수 있.</p>
</li>
<li><p>접근성 유지: 가상 요소는 HTML에 직접적으로 표시되지 않기 때문에 접근성에 큰 영향을 미치지 않는다. 이를 통해 시각적인 디자인을 개선하면서도 웹 사이트의 접근성을 유지할 수 있다.</p>
</li>
</ol>
<h1 id="예시">예시</h1>
<p><img src="https://velog.velcdn.com/images/bohun-kim/post/7a3ffb69-9a58-4898-90b9-fd15c9326b34/image.png" alt=""></p>
<pre><code class="language-html">&lt;p class=&#39;element&#39;&gt;헬로&lt;p&gt;</code></pre>
<pre><code class="language-css">.element {
  color: red;
}

.element::before {
  content: &quot;가상 요소 예시&quot;;
  color: blue;
}</code></pre>
]]></description>
        </item>
        <item>
            <title><![CDATA[HTML 에밋 모음]]></title>
            <link>https://velog.io/@bohun-kim/HTML-%EC%97%90%EB%B0%8B-%EB%AA%A8%EC%9D%8C</link>
            <guid>https://velog.io/@bohun-kim/HTML-%EC%97%90%EB%B0%8B-%EB%AA%A8%EC%9D%8C</guid>
            <pubDate>Sun, 07 Apr 2024 10:29:05 GMT</pubDate>
            <description><![CDATA[<h1 id="1-태그-수-여러개">1. 태그 수 여러개</h1>
<p>button.btn*6 </p>
<p>button : 태그
btn : class 명
*6 : 태그 수량</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[PIPE]]></title>
            <link>https://velog.io/@bohun-kim/PIPE</link>
            <guid>https://velog.io/@bohun-kim/PIPE</guid>
            <pubDate>Sun, 10 Mar 2024 10:22:44 GMT</pubDate>
            <description><![CDATA[<h1 id="pipe">PIPE</h1>
<p><img src="https://velog.velcdn.com/images/bohun-kim/post/5863b004-50ec-47d1-bd2a-1e69da5d9b3d/image.png" alt=""></p>
<p>파이프의 구조를 사진으로 나타내면 위 사진과 같다.</p>
<p>파이프는 어떤 프로세스의 출력을 다른 프로세스의 입력으로 넣어주고 싶을 때 사용한다.</p>
<h2 id="grep-찾을-패턴-수색할-파일디렉토리">grep [찾을 패턴] [수색할 파일/디렉토리]</h2>
<p><img src="https://velog.velcdn.com/images/bohun-kim/post/8cbc311a-283d-4d8c-9213-9b2c943b6f13/image.png" alt=""></p>
<p>위 사진대로 grep + &quot;찾을 단어&quot; + &quot;찾을 파일&quot; 을 사용하면 출력값을 얻을 수 있다.</p>
<h3 id="grep-실제-활용-예시">grep 실제 활용 예시</h3>
<p><img src="https://velog.velcdn.com/images/bohun-kim/post/f8f8b84b-47f7-455a-a27a-9a96b2a88371/image.png" alt=""></p>
<pre><code>cat /etc/passwd | grep root

/etc/passwd 명령어 결과에서 root 라는 단어를 찾아라</code></pre><p><img src="https://velog.velcdn.com/images/bohun-kim/post/866e2aba-1a83-43f2-a63c-f4535f09b40c/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Redirection]]></title>
            <link>https://velog.io/@bohun-kim/Redirection</link>
            <guid>https://velog.io/@bohun-kim/Redirection</guid>
            <pubDate>Sat, 09 Mar 2024 13:45:56 GMT</pubDate>
            <description><![CDATA[<h1 id="redirection">Redirection</h1>
<p>데이터 스트림의 흐름을 변경한다.</p>
<h2 id="흐름을-변경하는-방법">흐름을 변경하는 방법</h2>
<p>&quot; &gt; &quot; 표시로 하면 아래 사진을 보면</p>
<p><img src="https://velog.velcdn.com/images/bohun-kim/post/79172858-ec7f-45f0-a5df-48e416753a80/image.png" alt=""></p>
<pre><code>id &gt; pwd_result 

( id 명령어에 대한 출력물을 pwd_result 파일에 저장한다.)</code></pre><p>맨 처음 id 값을 id &gt; pwd_result 로 보냈고, 
cat pwd_result 명령어로 파일 내용을 확인 하면 id 내용이 저장되는 것을 볼 수 있다.</p>
<p>이 때, 기존에 저장했던 데이터는 삭제되고 교체된 내용으로 저장된다.</p>
<h2 id="기존에-있던-내용도-같이-저장하고-싶을-때">기존에 있던 내용도 같이 저장하고 싶을 때</h2>
<p>&quot; &gt;&gt; &quot; 를 사용하면 된다.</p>
<pre><code>id &gt; pwd_result
pwd &gt;&gt; pwd_result 

( id 명령어에 대한 출력물을 pwd_result 파일에 저장하고, pwd 에 대한 출력물도 같이 pwd_result 파일에 저장된다.)</code></pre><h2 id="숨겨진-비밀">숨겨진 비밀</h2>
<p>id &gt; pwd_result 에는 숨겨진 비밀이 있는데 그것은</p>
<p>id 1 &gt; pwd_result 에서 1 이 숨겨져 있다는 것이다. </p>
<p>1은 표준 출력, 2는 표준 에러 였는데 저 위치의 숫자를 변경하면 출력은 출력 값대로 에러는 에러 값대로 값을 원하는 파일에 저장할 수 있다.</p>
<h3 id="리다이렉션은-명령어의-결과를-화면이-아닌-파일로-저장하고-싶을-때-사용한다">리다이렉션은 명령어의 결과를 화면이 아닌 파일로 저장하고 싶을 때 사용한다.</h3>
]]></description>
        </item>
        <item>
            <title><![CDATA[데이터 스트림]]></title>
            <link>https://velog.io/@bohun-kim/%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%8A%A4%ED%8A%B8%EB%A6%BC</link>
            <guid>https://velog.io/@bohun-kim/%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%8A%A4%ED%8A%B8%EB%A6%BC</guid>
            <pubDate>Sat, 09 Mar 2024 12:43:37 GMT</pubDate>
            <description><![CDATA[<h1 id="데이터-스트림">데이터 스트림</h1>
<p>연결지향통신에서, 전송된 정보를 수집하거나 정보를 전송할 때 사용되는 디지털 방식으로 암호화 된 일관된 신호의 흐름을 뜻함</p>
<p>출처)
<a href="https://ko.wikipedia.org/wiki/%EB%8D%B0%EC%9D%B4%ED%84%B0_%EC%8A%A4%ED%8A%B8%EB%A6%BC">https://ko.wikipedia.org/wiki/%EB%8D%B0%EC%9D%B4%ED%84%B0_%EC%8A%A4%ED%8A%B8%EB%A6%BC</a></p>
<ol>
<li>표준 입력 : standard input stream (일반 적으로 쉘에 입력하는 경우)</li>
<li>표준 출력 : standard output stream (입력 했을 때 일반적으로 출력되는 경우)</li>
<li>표준 에러 : standard error stream (쉘에다가 없는 명령어를 입력했을 때 나오는 출력</li>
</ol>
<h2 id="파일-디스크립터-fd">파일 디스크립터 (fd)</h2>
<p>리눅스에서 모든 장치를 파일로 관리를 한다. (입력, 출력 등등)</p>
<p>파일 디스크립터는 파일을 처리하기 위한 id 이다.</p>
<ol>
<li>표준 입력 : standard input stream, 0</li>
<li>표준 출력 : standard output stream, 1</li>
<li>표준 에러 : standard error stream, 2 </li>
</ol>
<p>, 뒤에 숫자로 표현한다.</p>
<p>정말 어렵다면</p>
<p>표준 입력 == 1
표준 출력 == 2
표준 에러 == 3 </p>
<p>으로 기억하면 된다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[특수 권한]]></title>
            <link>https://velog.io/@bohun-kim/%ED%8A%B9%EC%88%98-%EA%B6%8C%ED%95%9C</link>
            <guid>https://velog.io/@bohun-kim/%ED%8A%B9%EC%88%98-%EA%B6%8C%ED%95%9C</guid>
            <pubDate>Tue, 27 Feb 2024 14:21:16 GMT</pubDate>
            <description><![CDATA[<h1 id="특수-권한이란">특수 권한이란</h1>
<h2 id="1-setuid">1. setuid</h2>
<p>파일을 실행할 때, 그 파일의 소유주의 권한으로 실행한다.</p>
<p><img src="https://velog.velcdn.com/images/bohun-kim/post/8769f60b-37b2-4f70-8761-30929c42a3a3/image.png" alt=""></p>
<p>실행 부분에 <strong>setuid</strong> 가 설정되어있으면 -rwsr 처럼 s 로 표시가 된다.</p>
<p>/passwd --&gt; 비밀번호를 변경하는 명령어</p>
<ul>
<li><p>s : 실행 권한이 있는 상태에서, setuid 가 설정된 상태</p>
</li>
<li><p>S : 실행 권한이 없는 상태에서, setuid 가 설정된 상태</p>
</li>
</ul>
<p>kali 계정인데 이 파일을 실행하는 순간만큼은 root 가 된다.</p>
<h3 id="필요한-이유">필요한 이유?</h3>
<p>자신의 계정에 비밀번호를 바꾸고 싶은 사람들을 위해서 필요한데 비밀번호를 바꿀 때 /etc/shadow 파일에 들어가서 변경을 해야한다.</p>
<p>그러나 일반 사용자는 /etc/shadow 파일 접근을 하지 못하므로 이 때 setuid 가 필요하다.</p>
<p>setuid 를 사용하면 일반 사용자도 그 때 만큼은 root 권한을 가지게 된다.</p>
<ul>
<li>해킹할때 굉장히 중요하다.</li>
</ul>
<h2 id="2-setgid">2. setgid</h2>
<p>파일을 실행할 때, 그 파일의 그룹의 권한으로 실행한다.</p>
<p>s , S 도 setuid 기능과 동일하다.</p>
<h2 id="3-sticky-bit">3. sticky bit</h2>
<p>공유 디렉토리를 설정할 때 사용한다.</p>
<ul>
<li><p>디렉토리에 설정되는 권한</p>
</li>
<li><p>설정된 권한은 누구나, 마음껏 파일을 생성할 수 있다.</p>
</li>
</ul>
<p><img src="https://velog.velcdn.com/images/bohun-kim/post/2cfd6a07-4f40-4e9b-8013-eb086efdadfe/image.png" alt=""></p>
<p>ls -l / : 최상위 루트의 상세한 정보를 했을 때 위 사진은 /tmp 의 정보이다.</p>
<ul>
<li><p>rwt : &quot;t&quot; 는 sticky bit 를 뜻한다</p>
</li>
<li><p>t : 실행 권한이 있다</p>
</li>
<li><p>T : 실행 권한이 없다</p>
</li>
</ul>
<hr>
<p>참조 블로그</p>
<p><a href="https://kimcoder.tistory.com/273">https://kimcoder.tistory.com/273</a></p>
<p>설명 잘되어 있음</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[rwx (읽고, 쓰고, 실행하고)]]></title>
            <link>https://velog.io/@bohun-kim/rwx-%EC%9D%BD%EA%B3%A0-%EC%93%B0%EA%B3%A0-%EC%8B%A4%ED%96%89%ED%95%98%EA%B3%A0</link>
            <guid>https://velog.io/@bohun-kim/rwx-%EC%9D%BD%EA%B3%A0-%EC%93%B0%EA%B3%A0-%EC%8B%A4%ED%96%89%ED%95%98%EA%B3%A0</guid>
            <pubDate>Tue, 27 Feb 2024 13:40:22 GMT</pubDate>
            <description><![CDATA[<p>리눅스는 계정이 존재한다 그러나 계정들을 어떻게 관리할까?</p>
<h1 id="rwx">rwx</h1>
<h2 id="r--read-읽기-권한">r : read (읽기 권한)</h2>
<p>--&gt; 파일이라면? : 그 파일을 읽을 수 있는지 확인
--&gt; 디렉토리라면? : 그 디렉토리 안에 어떤 파일이 있는지 확인</p>
<h2 id="w--write-쓰기-권한">w : write (쓰기 권한)</h2>
<p>--&gt; 파일이라면? : 그 파일의 내용을 수정할 수 있는지
--&gt; 디렉토리라면? : 그 디렉토리 안에 파일, 디렉토리를 생성할 수 있는지</p>
<h2 id="x--execute-실행-권한">x : execute (실행 권한)</h2>
<p>--&gt; 파일 : 그 파일을 실행할 수 있는지
--&gt; 디렉토리 : 그 디렉토리 접근 (예. cd 명령어) 할 수 있는지</p>
<h2 id="예">예)</h2>
<p><img src="https://velog.velcdn.com/images/bohun-kim/post/b1614848-9561-466f-ade4-1c75c8cfb707/image.png" alt=""></p>
<ol>
<li><p>소유자 권한 --&gt; 소유자 == root ( 16 에서 왼쪽 두번)
 rw- 에서 소유자는 
 r(읽고), 
 w(쓰고) 할 수 있고 
 -(권한) 가 붙으면 실행할 수는 없는 파일이다.</p>
</li>
<li><p>그룹 권한 --&gt; 그룹 == root ( 16 에서 왼쪽 한번)
 r-- 에서 소유자는 
 r(읽고), 
 -(쓰고) 할 수 없고,
 -(권한) 가 실행할 수 없다.</p>
</li>
<li><p>기타 사용자 권한 (소유자도 아니고, 그룹 멤버도 아닌 사람)
 r-- 에서 소유자는 
 r(읽고), 
 -(쓰고) 할 수 없고,
 -(권한) 가 실행할 수 없다.
<img src="https://velog.velcdn.com/images/bohun-kim/post/d63b4b43-1e07-4116-a704-6dc50d0ca586/image.png" alt=""></p>
</li>
</ol>
<p>위 사진에서 root --&gt; kali 사용자로 변경을 했는데 다른 소유자권한도 아니고, 
관리자권한도 아닌 kali 는 기타 사용자로 분류되는데,</p>
<p>여기서 읽기인 cat 을 사용했을 때 출력되는 것을 볼 수 있다.</p>
<hr>
<p>참조 블로그</p>
<p><a href="https://kimcoder.tistory.com/273">https://kimcoder.tistory.com/273</a></p>
<p>설명 잘되어 있음</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[passwd ( /etc/psswd )]]></title>
            <link>https://velog.io/@bohun-kim/passwd-etcpsswd</link>
            <guid>https://velog.io/@bohun-kim/passwd-etcpsswd</guid>
            <pubDate>Tue, 27 Feb 2024 12:36:11 GMT</pubDate>
            <description><![CDATA[<h1 id="etcpsswd">/etc/psswd</h1>
<p>리눅스의 사용자 정보가 들어있는 파일</p>
<p><img src="https://velog.velcdn.com/images/bohun-kim/post/7f1094ed-1fce-4bf3-b0d1-06286c494ca7/image.png" alt=""></p>
<p>vi /etc/psswd 를 치고 들어갔을 때의 사진인데</p>
<p>맨 왼쪽 파란색 글씨로 root: , damon: , bin: 한줄한줄이 사용자 이름이다.</p>
<p>내가 만든 계정이 한개라도 칼리 리눅스에 기존 설치된 사용자가 50개 정도 된다.</p>
<p><img src="https://velog.velcdn.com/images/bohun-kim/post/52e8c44b-17c0-4672-9280-8f526618b22d/image.png" alt=""></p>
<ul>
<li>각각의 정보는 :(콜론) 으로 데이터를 구분한다.</li>
</ul>
<ol>
<li>계정 이름 (ID) --&gt; root</li>
</ol>
<p><img src="https://velog.velcdn.com/images/bohun-kim/post/363f97df-7d87-45e3-9e82-62b3be970cd6/image.png" alt=""></p>
<ol start="2">
<li><p>비밀번호 --&gt; 원래는 x 자리에 root 사용자의 비밀번호가 있었지만 etc 파일은 누구나 읽을 수 있기 때문에 다른곳으로 옮겨놓았는데 그 파일 이름이 shadow 파일이다. (아래 shadow 사진 참조)</p>
</li>
<li><p>UID</p>
</li>
<li><p>GID</p>
</li>
<li><p>사용자의 별명 (ID 를 그대로 적는 경우가 많다)</p>
</li>
<li><p>홈디렉토리 (/root)</p>
</li>
<li><p>로그인 쉘 </p>
</li>
</ol>
<p>/usr/bin/nologin &lt;-- 로그인에서 사용하지 말라는 쉘계정 (== 쉘을 줄 필요도 없는 계정인데 그 계정이란?-&gt; 리눅스 시스템 자체에서 혹은 프로그램이 사용되는 계정)</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[# UID/GID (#,$ 차이, sudo su)]]></title>
            <link>https://velog.io/@bohun-kim/UIDGID-%EC%B0%A8%EC%9D%B4-sudo-su</link>
            <guid>https://velog.io/@bohun-kim/UIDGID-%EC%B0%A8%EC%9D%B4-sudo-su</guid>
            <pubDate>Mon, 26 Feb 2024 14:22:02 GMT</pubDate>
            <description><![CDATA[<p>컴퓨터는 기본적으로 여러 사람이 같이 쓸 수 있도록 만든 존재인데, 운영체제는 이를 도와준다. </p>
<p>여러사람이 쓰기 위해서는 식별이 필요한데 이 때 UID, GID 가 사용된다.</p>
<h1 id="uid-user-identifier-user-id">UID (User Identifier, user ID)</h1>
<p><img src="https://velog.velcdn.com/images/bohun-kim/post/462a13b7-c415-47d0-9bb4-e11d8b5cea60/image.png" alt=""></p>
<p>사용자의 아이디를 나타내며 0~32767의 숫자로 나타내고 0은 슈퍼(root)유저를 나타낸다</p>
<ul>
<li>위 사진에서 개별 ---&gt; uid=0(root), 그룹 ---&gt; uid=0(root) </li>
</ul>
<h1 id="gid-group-identifier-group-id">GID (Group Identifier, group ID)</h1>
<p><img src="https://velog.velcdn.com/images/bohun-kim/post/77365510-638d-4d37-addb-79b133d7dcba/image.png" alt=""></p>
<p>사용자를 그룹으로 묶을 수 있는데 이 그룹을 구분지을 수 있는 ID가 GID 이다.</p>
<hr>
<ul>
<li>#&#39;: 루트 계정</li>
<li>$ : 일반 사용자 계정</li>
<li>sudo su : root 계정으로 가는 명령어</li>
<li>su [일반사용자이름] : switch user 의 줄임 명령어로 일반 사용자로 변환한다.</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[COPY, REMOVE, MOVE]]></title>
            <link>https://velog.io/@bohun-kim/COPY-REMOVE-MOVE</link>
            <guid>https://velog.io/@bohun-kim/COPY-REMOVE-MOVE</guid>
            <pubDate>Sun, 25 Feb 2024 14:58:43 GMT</pubDate>
            <description><![CDATA[<h1 id="copy">Copy</h1>
<p>말그대로 복사이며 두가지 옵션을 가질 수 있다</p>
<pre><code>copy [src(source)] [dst(destination)]

src : 뭘 복사할건지
dst : 어디에 복사할건지

그런데 여기서 내가 원하는 이름으로 복사 가능한데 방식은 

cp cp_test ./Desktop/copy_test (&lt;-- 원래 vi 파일 이름은 cp_test)

위 명령어를 친 후 확인해보면 copy_test 로 변경되어있다.</code></pre><h1 id="remove">Remove</h1>
<p>명령어 : rm 
옵션 : 삭제할 파일</p>
<p>자주 사용되는 추가 옵션 : -f (=강제 삭제 기능)</p>
<h2 id="디렉토리를-지우거나-생성할-때는--r-을-붙여줘야-한다">디렉토리를 지우거나 생성할 때는 -r 을 붙여줘야 한다.</h2>
<p>예) </p>
<ol>
<li>rm -r copy_dir</li>
<li>rm -rf copy_dir</li>
</ol>
<h2 id="rm--rf-rm--rf-">rm -rf, rm -rf /</h2>
<p>rm -rf / : 최상위 디렉토리를 모두 삭제한다</p>
<h1 id="move">Move</h1>
<h2 id="1-폴더안에-있던-파일을-다른-폴더로-옮기는-법">1. 폴더안에 있던 파일을 다른 폴더로 옮기는 법</h2>
<pre><code>mv  ./Desktop/mv_text  mv_dir  : 
Desktop 에 있는 mv_text 파일을 mv_dir 폴더로 이동시킨다.
</code></pre><h2 id="2-폴더-안에-있던-파일-이름을-변경하는-법">2. 폴더 안에 있던 파일 이름을 변경하는 법</h2>
<p> <img src="https://velog.velcdn.com/images/bohun-kim/post/82efa865-1ac0-4125-b532-cc1515dc60a6/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[절대 경로 vs 상대 경로]]></title>
            <link>https://velog.io/@bohun-kim/%EC%A0%88%EB%8C%80-%EA%B2%BD%EB%A1%9C-vs-%EC%83%81%EB%8C%80-%EA%B2%BD%EB%A1%9C</link>
            <guid>https://velog.io/@bohun-kim/%EC%A0%88%EB%8C%80-%EA%B2%BD%EB%A1%9C-vs-%EC%83%81%EB%8C%80-%EA%B2%BD%EB%A1%9C</guid>
            <pubDate>Sun, 25 Feb 2024 12:21:43 GMT</pubDate>
            <description><![CDATA[<h1 id="경로">경로</h1>
<p>파일의 위치를 표현하는 방법</p>
<p><strong>예)</strong> /(루트) etc (루트 안 etc 경로)/ passwd (루트 안 etc 경로 안에 passwd 파일이 있다) == 경로</p>
<h1 id="절대-경로">절대 경로</h1>
<p>최상위 디렉토리부터 위에서부터 아래까지 모두 표현하면 절대 경로가 된다.</p>
<pre><code>cd /root/Desktop</code></pre><h1 id="상대-경로">상대 경로</h1>
<ol>
<li>현재 내가 위치한 곳에서부터 표현하면 상대 경로가 된다.</li>
<li>지금 내가 어디에 있느냐(pwd) 표현 방법이 달라짐</li>
<li>내가 현재 어디 파일에 있는지 중요하다</li>
</ol>
<pre><code>무조건 . (현재 기준) 으로 생각하면 된다.

1. . : 현재 내가 있는 디렉토리
cd ./Desktop == /home/kali/Desktop

2. .. : 현재 내가 있는 곳에서 한 단계 위의 경로
현재 경로 : /.
현재 경로에서 한 단계 위 경로 : /root/Desktop/.. == /root</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[[리눅스] 칼리 리눅스 File System(/bin,dev, etc,home,lib,root,sbin,tem,var)]]></title>
            <link>https://velog.io/@bohun-kim/%EB%A6%AC%EB%88%85%EC%8A%A4-%EC%B9%BC%EB%A6%AC-%EB%A6%AC%EB%88%85%EC%8A%A4-File-Systembindev-etchomelibrootsbintemvar</link>
            <guid>https://velog.io/@bohun-kim/%EB%A6%AC%EB%88%85%EC%8A%A4-%EC%B9%BC%EB%A6%AC-%EB%A6%AC%EB%88%85%EC%8A%A4-File-Systembindev-etchomelibrootsbintemvar</guid>
            <pubDate>Sun, 25 Feb 2024 06:52:46 GMT</pubDate>
            <description><![CDATA[<h1 id="파일-시스템">파일 시스템</h1>
<p>칼리 리눅스 파일이 어떤 목적으로 저장되는지 분류된 파일</p>
<pre><code>트리 구조
/ -&gt; root
    --&gt; Desktop
    --&gt; Download
  -&gt; bin
  -&gt; tmp</code></pre><h3 id="bin">/bin</h3>
<p>bin (binary) : </p>
<ul>
<li>직역으로 이진수라는 뜻으로 0,1 로만 이루어진 디렉토리</li>
<li>리눅스에서 사용하는 바이너리 파일</li>
</ul>
<h3 id="dev">/dev</h3>
<p>dev (device) : 리눅스 연결되는 하드웨어 장치파일들이 저장된다.</p>
<h3 id="etc">/etc</h3>
<p>리눅스의 설정 파일들이 저장되는 곳<strong>텍스트</strong></p>
<h3 id="home">/home</h3>
<p>각 계정의 홈 디렉토리들이 존재하는 디렉토리</p>
<h3 id="lib">/lib</h3>
<p>library 약자, 공유 라이브러리 파일들이 존재하는 디렉토리</p>
<h3 id="root">/root</h3>
<p>root 계정의 home 디렉토리</p>
<h3 id="sbin">/sbin</h3>
<p>system binary : 시스템 관리를 위한 명령어 (바이너리 실행파일)</p>
<h3 id="tem">/tem</h3>
<p>temporary : 임시 디렉토리 ( 누구나 이 디렉토리를 사용할 수 있다), ( 껐다 키면 여기 있는 파일들이 모두 사라짐)</p>
<h3 id="var">/var</h3>
<p>리눅스에서 사용하는 프로그램들이 사용하는 파일들을 보관</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[홈 디렉토리 [~], 파일 정보 확인 [ls -l, ls, ls -a, ls -al or la]]]></title>
            <link>https://velog.io/@bohun-kim/%ED%99%88-%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC-%ED%8C%8C%EC%9D%BC-%EC%A0%95%EB%B3%B4-%ED%99%95%EC%9D%B8-ls-l-ls-ls-a-ls-al-or-la</link>
            <guid>https://velog.io/@bohun-kim/%ED%99%88-%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC-%ED%8C%8C%EC%9D%BC-%EC%A0%95%EB%B3%B4-%ED%99%95%EC%9D%B8-ls-l-ls-ls-a-ls-al-or-la</guid>
            <pubDate>Sun, 25 Feb 2024 04:43:41 GMT</pubDate>
            <description><![CDATA[<h1 id="홈-디렉토리">홈 디렉토리</h1>
<p><img src="https://velog.velcdn.com/images/bohun-kim/post/5cc80843-8a64-46bb-97a6-a0a92c9fe373/image.png" alt=""></p>
<p>~ 뜻 : Home 디렉토리를 의미함</p>
<h1 id="파일-정보-확인">파일 정보 확인</h1>
<p><img src="https://velog.velcdn.com/images/bohun-kim/post/769eba66-06d7-46c9-b05e-11da962973c9/image.png" alt=""></p>
<h2 id="ls--l">ls -l</h2>
<p>특정 폴더, 파일의 자세한 정보를 얻고 싶을 때 사용한다.</p>
<p>맨 처음 시작할 때 -rw 시작하는 부분에서 - 는 <strong>파일</strong>을 뜻한다</p>
<p>그리고 ls -l 에서 drwxr 에서 d 로 시작하는 부분은 <strong>디렉토리</strong>를 의미한다.</p>
<p>1) rw-r--r 1 root root 
2) 3173 
3) Feb 22 08:57
4) /etc/passwd</p>
<p>위 사진에서 3부분으로 나뉘는데</p>
<p>1) 은 권한과 관련된 부분 
2) 파일의 용량 (byte 단위)
3) 마지막으로 폴더가 수정된 날짜
4) 뒤에는 파일 이름</p>
<h2 id="ls-에-전달인자가-없으면">ls 에 전달인자가 없으면?</h2>
<p>ls 에 전달 인자가 없으면, 현재 경로를 넣어주어 보여준다.</p>
<h2 id="ls--a">ls -a</h2>
<p><img src="https://velog.velcdn.com/images/bohun-kim/post/a7e454b8-8589-4e30-a641-05947dba279e/image.png" alt=""></p>
<p>ls - a : 현재 폴더의 숨김 파일까지 모두 보여준다.</p>
<p>숨김 파일은 파일 앞에 .(점) 이 붙는다.</p>
<h2 id="ls--al-or--la">ls -al or -la</h2>
<p><img src="https://velog.velcdn.com/images/bohun-kim/post/da73779f-0768-48a5-bbb0-8eed38b2dc4e/image.png" alt=""></p>
<p>ls -al or la 는 같이 사용 가능하다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[리눅스] 디렉토리 관련 명령어]]></title>
            <link>https://velog.io/@bohun-kim/%EB%A6%AC%EB%88%85%EC%8A%A4-%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC-%EA%B4%80%EB%A0%A8-%EB%AA%85%EB%A0%B9%EC%96%B4</link>
            <guid>https://velog.io/@bohun-kim/%EB%A6%AC%EB%88%85%EC%8A%A4-%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC-%EA%B4%80%EB%A0%A8-%EB%AA%85%EB%A0%B9%EC%96%B4</guid>
            <pubDate>Sun, 25 Feb 2024 04:05:21 GMT</pubDate>
            <description><![CDATA[<h1 id="명령어">명령어</h1>
<h2 id="pwd-print-working-directory_현재-작업중인-디렉토리">pwd (print working directory)_현재 작업중인 디렉토리</h2>
<p>현재 작업 중인 디렉토리</p>
<p>ex) pwd --&gt; /home/kali</p>
<h2 id="ls-list_현재-디렉토리내용물-확인">ls (list)_현재 디렉토리내용물 확인</h2>
<p><img src="https://velog.velcdn.com/images/bohun-kim/post/381aee79-3200-4380-b8c6-e9f39882cd6b/image.png" alt=""></p>
<p>디렉토리(directory)에 있는 내용(디렉토리, 파일 등)을 확인한다.</p>
<h2 id="cd-change-directory_다른-디렉토리로-이동">cd (change directory)_다른 디렉토리로 이동</h2>
<p><img src="https://velog.velcdn.com/images/bohun-kim/post/00858ef2-007d-4b9d-a85f-7304d6db5784/image.png" alt=""></p>
<p><strong>cd [전달 인자]</strong></p>
<p>다른 디렉토리로 이동할 수 있는 명령어 (위 사진에서 / 는 root 디렉토리이다.)</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[명령어 구조 특징 [명령어,전달인자,옵션]]]></title>
            <link>https://velog.io/@bohun-kim/%EB%AA%85%EB%A0%B9%EC%96%B4-%EA%B5%AC%EC%A1%B0</link>
            <guid>https://velog.io/@bohun-kim/%EB%AA%85%EB%A0%B9%EC%96%B4-%EA%B5%AC%EC%A1%B0</guid>
            <pubDate>Sun, 25 Feb 2024 03:23:46 GMT</pubDate>
            <description><![CDATA[<h1 id="리눅스-명령어를-사용시-구조">리눅스 명령어를 사용시 구조</h1>
<pre><code>1. 명령어
2. 전달 인자 (argument)
3. 옵션</code></pre><p>[명령어]
iconfig, id 등등...</p>
<p>예) ping 8.8.8.8 -c 3</p>
<p>ping (Packet INternet Groper) : 대상 컴퓨터를 향해 일정 크기의 패킷을 보낸 후, 대상 컴퓨터가 이에 대한 응답 메세지를 보내면 이를 수신하여 대상 컴퓨터 동작 여부 혹은 네트워크 상태를 파악할 수 있는 기능이다.</p>
<p>ping : 명령어
8.8.8.8 : 전달인자 (ip 주소)
-c : 옵션 (옵션은 - 를 붙이는 특징이 있다)(날린다)
3 : 옵션 (횟수)</p>
<p>결론은 전달인자에 대한 ip 주소를 보냈을 때 뒤에 옵션에 따라서 날린다(-c) 3번이라는 횟수를 반복한다.</p>
<h1 id="명령어-특징">명령어 특징</h1>
<p>전달인자, 옵션은 명령어마다 다르다.</p>
<h1 id="명령어-마다-어떤-옵션이-있는지-확인하는-명령어">명령어 마다 어떤 옵션이 있는지 확인하는 명령어</h1>
<blockquote>
<p>ping -h</p>
</blockquote>
<h3 id="which">which</h3>
<p>해당 명령어가 어디 있는지 확인하는 명령어
예) which ping --&gt; /usr/bin/ping</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Shell, ps -ef, ppid , pid]]></title>
            <link>https://velog.io/@bohun-kim/Shell-ps-ef-ppid-pid</link>
            <guid>https://velog.io/@bohun-kim/Shell-ps-ef-ppid-pid</guid>
            <pubDate>Sun, 25 Feb 2024 00:35:00 GMT</pubDate>
            <description><![CDATA[<h1 id="shell-의-정의">Shell 의 정의</h1>
<p>쉘(Shell)은 운영체제에서 사용자가 입력하는 명령을 읽고 해석하여 대신 실행해주는 프로그램</p>
<h1 id="ps--ef">ps -ef</h1>
<p>ps : 현재 쉘에서 진행중인 프로세스에 대한 정보 확인
ps -e : 시스템에서 실행 중인 모든 프로세스 표시
ps -f : 전체 포맷으로 프로세스 정보를 표시</p>
<h1 id="ppid-pid">ppid, pid</h1>
<p>ps -f 를 입력하게 되면 ppid, pid 가 출력되게 되는데 출력하면 ppid, pid 가 나온다.</p>
<p><img src="https://velog.velcdn.com/images/bohun-kim/post/404fb1c2-7361-4e0b-ba52-f079048b84fc/image.png" alt=""></p>
<h2 id="ppid">ppid</h2>
<p>PPID 는 Parent Process ID 의 줄임말로 부모 프로세스의 PID 를 의미한다.</p>
<p>부모 프로세스는 현재 실행 중인 프로세스 (자식 프로세스) 를 시스템 콜을 호출하여 생성한 프로세스를 의미한다.</p>
<p>만약 부모 프로세스가 자식 프로세스보다 일찍 종료되는 경우 자식 프로세스는 고아 프로세스가 되어 PPID 로 init process 의 PID, 1을 가지게 된다.</p>
<h2 id="pid">pid</h2>
<p>PID 는 Process ID 의 줄임말로 운영체제에서 프로세스를 식별하기 위해 부여하는 번호를 의미한다.</p>
<p>프로세스는 실행 중인 프로그램을 의미한다. 메모리에 적재되어 있으며, 프로세스의 상태 정보, PCB 를 포함한 개념이다.</p>
<h2 id="pid-와-ppid-의-관계">pid 와 ppid 의 관계</h2>
<p><img src="https://velog.velcdn.com/images/bohun-kim/post/b299ed8c-2ef4-46a7-8665-ca1d26274128/image.png" alt=""></p>
<p>위 사진에서 1377 번호가 겹치는 부분이 있는데 (pid : 1377 번의 부모가 ppid 1377) qterminal 로 부터 zsh를 실행했는 뜻이다.</p>
<p>그래서 우리는 zsh (zshell) 를 통해서 명령을 내리는 것이다.</p>
]]></description>
        </item>
    </channel>
</rss>