리눅스에서 lrzsz는 꽤 많이 쓰인다고 어디선가 들었습니다. 사실, 전 FileZilia에서 파일 업로드하고, 다운로드를 많이 했는데요. 그건 생각보다 귀찮은 일이더라고요. 타겟에 lrzsz를 설치해 보겠습니다. 타겟에는 sshd (ssh 서버)가 깔린 상태입니다. 우분투는 sudo apt install lrzsz 이렇게 명령어를 입력하시면 됩니다. 그러면 설치가 좌르륵 하고 될 겁니다. 이제 rz를 입력해 보겠습니다. 그러면 waiting to receive라는 문구가 뜹니다. send가 보내는 것이고 receive가 받는 것이니, 여기에서는 cho@ubuntu가 받는 것을 의미합니다. cho@ubuntu는 rz가 실행되는 타겟을 의미하기도 합니다. server가 받아야 한다면 client는 보내야 ..
리눅스 검색 결과
uname 명령어를 이용하면 현재 시스템의 정보를 볼 수 있습니다. 가상머신에 올려놓은 ubuntu 18.04하고, fedora 32로 실습해 보도록 하겠습니다. 데스크립션을 읽어봐도, 현재 system 정보를 출력한다는 것 정도만 볼 수 있어요. 옵션이 없는 경우에는 -s와 동일하다고 하는데요. -s 옵션만 붙이면 커널의 이름을 출력합니다. 먼저, 커널의 릴리즈와 버전을 출력해 보겠습니다. 각각 -r과 -v 옵션을 주면 됩니다. -r 옵션을 주고 출력해 보면 5.3.0-61-generic이 출력되는 것을 볼 수 있는데요. 이것이 커널 릴리즈와 관련이 있어 보입니다. 이것의 앞의 2개의 숫자인 5.3이 버전과 관련이 있어 보입니다. 다음에 -v 옵션을 주어서 보면 #55~18.04.1-ubuntu가 출력..
오늘은, ssh랑 telnet에 대해서 간단하게 와이어 샤크를 가지고 실습해 보도록 하겠습니다. 이들이 패킷을 어떻게 날리는지도 보도록 하고요. telnet이 보안이 취약하다는 소리는 많이 들어봤는데, 정말 그런건지도 한 번 보도록 하겠습니다. 저는, VM 안에 있는 ubuntu에 ssh server랑 (sshd), telnet server를 깔았습니다. 그리고 window에 ssh와 telnet 클라이언트가 있습니다. 먼저, hostname -I를 쳐 보겠습니다. 그러면, VM으로 띄운 우분투의 IP가 나올 겁니다. 그리고 방화벽 ufw가 있는데요. 이들의 설정을 건드려가면서, telnet이나, ssh 접속을 할 때 어떠한 패킷이 왔다갔다 하는지 테스트 해 볼 겁니다. 먼저, status를 보겠습니다...
안녕하세요. 이번 시간에는 리눅스 pipe 함수에 대해서 알아보도록 하겠습니다. file 데스크립터 2개를 저장할 배열을 넘겨주기만 하면 됩니다. 그것을 넘겨주면, 그 배열에 하나는 파이프에서 읽기를, 하나는 쓰기를 할 수 있는 데스크립터가 생성됩니다. 각각 filedes[0], filedes[1]이 그 역할을 합니다. 예제 1번 프로그램을 보도록 하겠습니다. 먼저, text가 2개 있습니다. 하나는 "Hello", 하나는 "Bye" 입니다. 파이프를 생성한 다음에, fork로 자식 프로세스를 생성합니다. 상황이 대략적으로 이렇게 그려집니다. 그리고 부모에서는, 단순하게 "Hello"라는 text를 write 하기만 하고, 자식은 받기만 합니다. 일단, 자식의 pi[0]과 부모의 pi[0], 그리고 자식..
리눅스에서 pipe 명령어는 꽤 유용하게 쓰입니다. 이번 시리즈에서는 이들을 구현하기 위해서 필요한 메서드 중에서 dup2 함수를 알아보도록 하겠습니다. 이는 ori 디스크립터를, new로 복사하는 함수입니다. 아앗. 뭔지 잘 모르겠군요. /proc는 괜히 있는 것이 아니니, 이것을 이용해서 하나하나 알아보도록 하겠습니다. 먼저 예제를 보겠습니다. dup2.c입니다. 먼저, pipe(pi)는 파이프를 생성하는 함수입니다. 파이프 하나에는 입구와 출구가 있습니다. 다음에, 5번째 줄에서 dup2 함수를 호출했는데요. 1번째 인자가 pi[1], 2번째 인자가 1입니다. 그러면, pi[1]의 디스크립터를 1번 디스크립터에 복사한다는 의미인데.. 일단, dup를 실행해 보겠습니다. 그리고 다른 세션에서는 ps ..
최근댓글