본문 바로가기

개발43

su: Authentication failure 문제점 [common-user@master ~]$ su - Password: su: Authentication failure 일반 사용자에서 su 명령어를 이용해 root 권한을 획득하려 했다. 1. 비밀번호는 설정되어있었고, 2. 정확하게 입력했는데도 권한을 획득하지 못했다. 원인 파악 어쨋든 sudo 명령어를 수행할 수 있는 사용자가 있어서 일단 root 계정으로 접근할 수 있었고, 이에 대한 원인을 파악할 수 있었다. 원인은 /bin/su 파일의 권한이 rwsr-xr-x가 아니였다. 여기서 s 권한은 setuid로, user권한의 x 자리를 대신해 들어간다. 이 권한은 해당 파일 소유자의 권한을 빌려 사용할 수 있도록 하는 권한이다. [root@master ~]# ll /bin/su -rwxr-xr.. 2023. 12. 8.
Dockerfile을 이용해 Docker image 생성해보자. 우리는 이번 게시글을 통해 임의의 애플리케이션을 Docker Container로 실행가능하도록 도커 이미지를 생성하는 것을 학습합니다. 검색해보니 도커라이징(Dockerizing)이라고도 하는 것 같은데, 공식적인 단어는 아닌 것 같습니다. 0. 도커 설치하기 당연히 선행되어 도커를 설치해야합니다. 아래의 링크에서 자신의 운영체제에 맞게 접근하여 다운로드/설치를 진행합니다. https://docs.docker.com/get-docker/ 1. 테스트할 웹앱 생성하기 가볍게 /hello-world 으로 접근하면 "Hello, World!" 를 반환하는 컨트롤러를 생성해줍니다. 2. Java Application build하기 먼저, 생성할 도커 이미지에서 사용될 Application Jar를 생성해야합니다.. 2023. 12. 4.
캡차를 버리고 턴스타일(turnstile)로 "문의하기가 안된다네요. 확인 좀 해주세요!" 우리 회사의 문의하기 기능은 구글의 캡차 v3가 적용되어 있다. 아무래도 아무것도 적용해놓지 않으면 스팸(공격성)성 글이 종종 들어왔었기 때문이다. (출근해서 이거때문에 귀찮아죽는 줄 알았다.) 그런데 이건 아무리 봐도 잘못된 선택이었던 것 같다. 구글이 점수를 지정해 주기 때문에 실제 사용자들도 부득이하게 봇으로 판단되는 경우가 은근히 있었다. 이로 인해 사람들은 불편했을 것이다. 상품 도입 등을 위해 문의하는데 안되면 당연히 이탈률이 있지 않았을까? 대안을 고민하면서도 사실 메인 업무가 중요해서 무시하던 중, 어디에선가 클라우드플레어에서 턴스타일(turnstile)이라는 캡차의 대안을 소개한 글이 불현듯 떠올랐다. 그래서 이걸 이번에 적용하기로 결심했다.. 2023. 11. 10.
큰일났다. 톰캣 로그에서 갑자기 한글이 보이지 않는다. 간단한? 개요 우리 회사의 핵심 상품(도메인)은 웹메일이다. 그중에서도 내가 속한 팀은 클라우드 인프라 기반의 웹메일 서비스 SaaS 운영 및 개발이다. (기타 모든 잡일...) 내가 입사 전 막연히 생각했던 것보다 웹메일 서비스는 파일의 I/O가 너무 잦고 크고 많다. 단순 EML을 열람하는 것부터 일반/대용량 첨부파일 다운로드, 드라이브에 저장되는 파일 UL/DL, 기타 등등 KB부터 시작해서 GB까지! (종종 어떤 고객들은 100GB 단위도 올리게 해달라 한다.) 그러다 보니, 서비스 규모가 커지니 슬슬 파일 다운로드를 할 때 서비스가 느려져서 VOC가 자주 인입됐다. 문제의 시발점 🫤 "아 이제 안 되겠다. 부하가 있는 서비스는 별도 서버로 옮깁시다." "근데 지금 CentOS7이 EOS 되기 직.. 2023. 10. 19.
Flutter에서 Google Spreadsheet에 데이터를 추가해보자. 🫤 "알림이 2번 와요", "파일 다운로드가 안 돼요" 😡 "OO가 안 돼요" 모바일 앱을 새로 배포하고 나니, 당연하게도 기존 고객들에게서 문의가 쏟아졌다. 문제는 역시나 문의 시 이슈를 파악할 수 있는 정보(Android인지 iOS인지, 앱 버전은 무엇인지 등)를 주지 않았다. 나 같은 경우, QA로 일했던 경력이 있었기 때문에 당연히 버전과 precondition 등을 제공해 줄 알았던 멍청이었던 거다. 이번엔 내가 이 문의하기 기능에 대해 어떻게 해결했는지에 대한 게시글이다. 왜 구글 스프레드시트로 정했을까? 나는 아래와 같은 요구사항이 필요했다. 1. 단순하게 문의를 받는 창구만 필요하다. 2. 이 단순한 구현을 위해 DB / Controller / Service 로직을 구현한다면 리소스 낭비라.. 2023. 10. 19.
다국어 처리를 통해 Flutter 앱 이름을 언어에 맞게 설정해보자. 안녕하세요. 이번 게시글에서는 앱 이름의 다국어 처리를 진행해볼 예정입니다. 우리가 앱을 사용할 때, 한국인이어도 스마트폰의 언어를 영어로 사용할 수도 있고, 스페인어로 사용할 수도 있습니다. 그런데도 앱 이름이 한국어로 통일된다면 이질감이 있겠죠? 이를 개선하기 위해 이번 게시글에서는 플러터 앱 이름을 다국어 처리하는 방법에 대해 알아보겠습니다. 1. Android 1-1. EN android/app/src/main/res의 values/ 디렉토리에 strings.xml을 생성하고, 아래와 같이 선언합니다. 2-2. KO android/app/src/main/res 디렉토리에 values-ko/ 디렉토리를 생성하고, 그 디렉토리에 strings.xml을 생성합니다. 2-3. 앱 이름 선언하기 andro.. 2023. 9. 14.