리눅스에서 몇몇 환경을 구축하고 있습니다. 구축을 하면서 프로그램을 실행시킬 때 만들어지는 에러 로그를 trace를 해야 하는 일이 생겼는데요. tail -f 옵션을 이용해 보라는 스택 오버플로우의 글이 있었습니다. 생각보다 유용한 명령어일 줄은 몰랐습니다. 단지, tail이 파일의 끝 몇 줄만 출력하는 줄로만 알았기 때문입니다. tail은 파일의 끝 부분을 출력하는 명령입니다. 그런데, -f 옵션을 주면, 파일을 모니터링 합니다. 어떻게 동작하는지 보겠습니다. 문구만 읽어보면, file이 grow함에 따라서, output이 append가 된다는 뜻으로만 보이는데요. 무슨 이야기를 하는지는 잘 모르겠으니, 직접 써 보겠습니다. 터미널 세션 2개를 열겠습니다. 하나는, 1.txt에 append하고, 다른 ..
OS/리눅스 검색 결과
ssh로 연결한 세션이 끊어지면 어떻게 될까요? 1.c는 위와 같습니다. 아시다시피, 그냥 의미없이 계속 무한 루프를 도는 코드입니다. 이것을 컴파일 해서 돌려보겠습니다. strace를 찍어볼 겁니다. 여기서, -o 옵션은 파일에다가, trace 내용을 뽑는 것입니다. strace -o trace.txt는 trace.txt에 트레이스를 한 내용을 출력합니다. ssh 접속을 끊은 다음에 다시 접속한 다음에, trace.txt를 열어봅시다. 그러면, SIGHUP라는 내용이 나왔음을 알 수 있습니다. signal(7) 문서를 보면 몇 가지 행동이 나와 있습니다. 이 중에서, Term은, Default action이 process를 종료하는 것임을 뜻합니다. Ign은 무시한다는 의미입니다. 밑에 부분을 보면, ..
리눅스 시스템을 셋팅하면서, sudo와 su 명령어는 꽤 많이 사용하였습니다. 예를 들어, 우분투에서 sudo apt update 라던지, 아니면 sudo su라던지. 먼저 sudo를 보시면, execute a command as another user라고 되어 있습니다. 이것을 해석하면, 명령어를 다른 유저로 실행을 한다는 의미입니다. 예를 들자면 A라는 명령어를 cho로 실행할 수도 있지만 cho2로도 실행할 수 있고, root로도 실행할 수 있을 겁니다. -u 옵션을 주면, user가 실행하게 되는데요. other than 이라는 것이 있습니다. 원래 default 값은 보통 root인데, -u user 이렇게 옵션을 주면, 예를 들어서 sudo -u user C 라고 입력을 하면, C라는 명령어를..
제 데스크탑 컴퓨터에 Ubuntu 20.04를 설치하였습니다. 그런데, 제 'cho' 라는 계정으로, sudo su라는 것을 입력하였을 때, 'cho'의 암호만 입력하면, root로 로그인을 할 수 있었습니다. cho로 sudo su를 수행했습니다. 적절한 인증을 거친 후에, root가 되었다는 것을 확인할 수 있는데요. 제가 쓰던 또 다른 환경에서는, 다른 유저로 sudo su를 했을 때, 'cho'라는 유저로 로그인을 하면, 실패를 하고 reported가 될 거라는 문구가 떴습니다. 왜 그럴까요? 이러한 의문을 해결하기 위해서, 이들을 관리할 법한 파일들을 보도록 하겠습니다. pwd 디렉터리로 가 보겠습니다. 여기서 ls 명령어를 입력하면, 꽤 많은 파일과 폴더들이 나오는 것을 볼 수 있는데요. 이 ..
Linux의 shadow 파일을 간단하게 보겠습니다. shadow 파일을 보면, 유저 이름과 이상하게 긴 문자열이 있거나 !이나 *가 있는 것을 볼 수 있습니다. 그리고 뭔가 이상한 구분자가 상당히 많이 있다는 것도 볼 수 있습니다. 이 중 앞에 2개는 유저 이름과, 패스워드가 encrypted가 된 것을 의미합니다. 물론 $으로 구분된 무언가는 또 다른 뜻이 있지만, 이것은 밑에서 후술해 보도록 하겠습니다. 2번째 단락의 encrypted password를 보시면, 2번째 필드의 의미를 대략 짐작하실 수 있을 겁니다. 그러면, 먼저 cho1을 하나 추가해 보겠습니다. 그 다음에, shadow 파일에 어떤 내용이 들어갔는지 보겠습니다. 앞에 떡하니 !가 쳐져 있습니다. 이게 무엇인지 모르겠으니, 일단 지..
최근댓글