<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Linux on Junian Dev</title>
    <link>https://www.junian.dev/tags/linux/</link>
    <description>Recent content in Linux on Junian Dev</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <managingEditor>author@junian.dev (Junian Triajianto)</managingEditor>
    <webMaster>author@junian.dev (Junian Triajianto)</webMaster>
    <copyright>Copyright &amp;copy; 2014 - 2026 Junian.dev</copyright>
    
	    <atom:link href="https://www.junian.dev/tags/linux/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title>How to Allow Underscore Headers in Nginx</title>
      <link>https://www.junian.dev/dev/nginx-allow-underscore-header/</link>
      <pubDate>Sun, 28 Sep 2025 02:43:24 +0700</pubDate>
      <author>author@junian.dev (Junian Triajianto)</author>
      <guid>https://www.junian.dev/dev/nginx-allow-underscore-header/</guid>
      <description>&lt;p&gt;Have you ever noticed that some HTTP request headers are missing when using Nginx?&lt;/p&gt;
&lt;p&gt;I experienced this issue myself. Headers containing underscores (such as &lt;code&gt;_Security_Token_&lt;/code&gt; or &lt;code&gt;_Device_ID_&lt;/code&gt;) were silently dropped by Nginx. This caused problems during mobile app testing, as token authentication kept failing.&lt;/p&gt;
&lt;p&gt;It turns out that HTTP headers with underscores are uncommon and generally discouraged when possible.&lt;/p&gt;
&lt;p&gt;The problem is, sometimes you don&amp;rsquo;t have control over how the upstream server works.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How I Accidentally Discovered Crypto-Miner Malware (perfctl) on an Ubuntu Server</title>
      <link>https://www.junian.dev/tech/ubuntu-perfctl-malware-mongodb-not-running/</link>
      <pubDate>Fri, 03 Jan 2025 13:12:21 +0700</pubDate>
      <author>author@junian.dev (Junian Triajianto)</author>
      <guid>https://www.junian.dev/tech/ubuntu-perfctl-malware-mongodb-not-running/</guid>
      <description>&lt;p&gt;It all started with an Upwork job described as follows:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Help Installing MongoDB CE 8 on Ubuntu 24.04 LTS&lt;/p&gt;
&lt;p&gt;I followed the instructions here:&lt;br&gt;
&lt;a href=&#34;https://www.mongodb.com/docs/manual/tutorial/install-mongodb-on-ubuntu/&#34;&gt;https://www.mongodb.com/docs/manual/tutorial/install-mongodb-on-ubuntu/&lt;/a&gt;&lt;br&gt;
But obviously, I&amp;rsquo;m missing something. Any help would be greatly appreciated.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;figure&gt;
    &lt;img src=&#34;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcRAIlsu4W_RoCOOVXBHxNS2SeRPkzEkmYLgssNTL6z5yuuB05GhPsZezOw4edYF246-FY5j8-cUDvgBWdXaS3lv-_yg7EmQFyQaU9NZPSR26UNkTBsjEcbowrbzXdit1lW8p00mYinXoF-8_1w54lnICfr-A6xAZiTOq0lynF9pcbvAj9u5QajCYBLgHf/s1600/help-install-mongodb-ubuntu-24-04.jpg&#34; alt=&#34;Upwork Job Post&#34; title=&#34;Upwork Job Post&#34;loading=&#34;lazy&#34;
    &gt;&lt;figcaption&gt;Upwork Job Post&lt;/figcaption&gt;&lt;/figure&gt;&lt;p&gt;I submitted my proposal, thinking it would be a straightforward task—just follow the MongoDB installation guide, and it’d be done in minutes.&lt;/p&gt;
&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;
      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/WUUZcoyBnI0?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;
    &lt;/div&gt;
    &lt;p&gt;&lt;a href=&#34;https://www.youtube.com/@JunianDev?sub_confirmation=1&#34; target=&#34;_blank&#34;&gt;&lt;img src=&#34;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCSx6KT2geZz3TgDYUlDWgamXCCztHusZY4FsB5gQfyhAu-omBphLzVSc8wD6o7crJ64XYaN6lmMrQ6FN9zvulN1t-P-CCa9ZvLLFn7LGnXpS-Rb5rQHqS3DwLrkbS_tAHzDcrH0sUxzkSEeeTnAis7dZpzZJhouuPnI4USQnXfmrb37gP7CD0uHR4qh8I/s300/youtube-subscribe-button-and-bell-icon.png&#34; alt=&#34;Subscribe to Junian Dev YouTube channel&#34; /&gt;&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Run Microsoft Edge without CORS Restriction</title>
      <link>https://www.junian.dev/dev/microsoft-edge-disable-cors/</link>
      <pubDate>Fri, 25 Oct 2024 12:59:57 +0700</pubDate>
      <author>author@junian.dev (Junian Triajianto)</author>
      <guid>https://www.junian.dev/dev/microsoft-edge-disable-cors/</guid>
      <description>&lt;p&gt;As a web developer, you likely need to test your REST API locally. When using a browser like Microsoft Edge, you might encounter issues such as the following message.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Access to fetch at &amp;lsquo;http://localhost:8000/api&amp;rsquo; from origin &amp;lsquo;http://localhost:3000&amp;rsquo; has been blocked by CORS policy: No &amp;lsquo;Access-Control-Allow-Origin&amp;rsquo; header is present on the requested resource. If an opaque response serves your needs, set the request&amp;rsquo;s mode to &amp;rsquo;no-cors&amp;rsquo; to fetch the resource with CORS disabled.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Run Google Chrome without CORS Restriction</title>
      <link>https://www.junian.dev/dev/google-chrome-disable-cors/</link>
      <pubDate>Mon, 07 Oct 2024 10:02:06 +0700</pubDate>
      <author>author@junian.dev (Junian Triajianto)</author>
      <guid>https://www.junian.dev/dev/google-chrome-disable-cors/</guid>
      <description>&lt;p&gt;If you&amp;rsquo;re a Web developer you probably have a task to test your REST API locally.
When you&amp;rsquo;re using a browser like Google Chrome, you may experience some issues like the following message.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Access to fetch at &amp;lsquo;http://localhost:8080/api&amp;rsquo; from origin &amp;lsquo;http://localhost:8000&amp;rsquo; has been blocked by CORS policy: No &amp;lsquo;Access-Control-Allow-Origin&amp;rsquo; header is present on the requested resource. If an opaque response serves your needs, set the request&amp;rsquo;s mode to &amp;rsquo;no-cors&amp;rsquo; to fetch the resource with CORS disabled.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Disable Mail Notification from Cron</title>
      <link>https://www.junian.dev/tech/disable-cron-mail-notification/</link>
      <pubDate>Thu, 14 Jan 2021 11:50:06 +0700</pubDate>
      <author>author@junian.dev (Junian Triajianto)</author>
      <guid>https://www.junian.dev/tech/disable-cron-mail-notification/</guid>
      <description>&lt;p&gt;Have you ever use your Raspberry Pi terminal session and you see following message randomly?&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;You have new mail in /var/mail/pi&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Maybe you&amp;rsquo;re wondering who&amp;rsquo;s sending these emails.
To know that, you can type &lt;code&gt;mail&lt;/code&gt; to check your inbox.
If you see several messages like following line, then it&amp;rsquo;s caused by &lt;code&gt;cron&lt;/code&gt; job.&lt;/p&gt;

&lt;figure class=&#34;highlight&#34;&gt;
    &lt;button class=&#34;btn-clipboard chroma&#34; title=&#34;Copy to clipboard&#34;&gt;&lt;i class=&#34;fa icon-clipboard&#34;&gt;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; viewBox=&#34;0 0 24 24&#34; class=&#34;feather feather-copy&#34;&gt;&lt;rect x=&#34;9&#34; y=&#34;9&#34; width=&#34;13&#34; height=&#34;13&#34; rx=&#34;2&#34; ry=&#34;2&#34;/&gt;&lt;path d=&#34;M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1&#34;/&gt;&lt;/svg&gt;&lt;/i&gt;&lt;span class=&#34;msg-clipboard&#34;&gt;&lt;/span&gt;&lt;/button&gt;
    &lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ mail
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;/var/mail/pi&amp;#34;&lt;/span&gt;: &lt;span class=&#34;m&#34;&gt;2047&lt;/span&gt; messages &lt;span class=&#34;m&#34;&gt;2047&lt;/span&gt; new
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;gt;N   &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; Cron Daemon        Wed Jan &lt;span class=&#34;m&#34;&gt;13&lt;/span&gt; 18:50  22/681   Cron &amp;lt;pi@retropie&amp;gt; /home/pi/go/bin/gonetweet
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; N   &lt;span class=&#34;m&#34;&gt;2&lt;/span&gt; Cron Daemon        Wed Jan &lt;span class=&#34;m&#34;&gt;13&lt;/span&gt; 18:51  21/3540  Cron &amp;lt;pi@retropie&amp;gt; /home/pi/autotweet.sh
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; N   &lt;span class=&#34;m&#34;&gt;3&lt;/span&gt; Cron Daemon        Wed Jan &lt;span class=&#34;m&#34;&gt;13&lt;/span&gt; 18:51  22/681   Cron &amp;lt;pi@retropie&amp;gt; /home/pi/go/bin/gonetweet
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; N   &lt;span class=&#34;m&#34;&gt;4&lt;/span&gt; Cron Daemon        Wed Jan &lt;span class=&#34;m&#34;&gt;13&lt;/span&gt; 18:52  22/681   Cron &amp;lt;pi@retropie&amp;gt; /home/pi/go/bin/gonetweet
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; N   &lt;span class=&#34;m&#34;&gt;5&lt;/span&gt; Cron Daemon        Wed Jan &lt;span class=&#34;m&#34;&gt;13&lt;/span&gt; 18:52  21/3540  Cron &amp;lt;pi@retropie&amp;gt; /home/pi/autotweet.sh&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
    
&lt;/figure&gt;&lt;p&gt;To stop &lt;code&gt;cron&lt;/code&gt; sending you emails, you can just add &lt;code&gt;&amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;/code&gt; to the end of your &lt;code&gt;cron&lt;/code&gt; job.&lt;/p&gt;</description>
    </item>
    <item>
      <title>CMake Version 3 Installation on Ubuntu 14.04</title>
      <link>https://www.junian.dev/dev/cmake3-ubuntu-14-04-installation/</link>
      <pubDate>Sat, 04 Aug 2018 10:25:08 +0700</pubDate>
      <author>author@junian.dev (Junian Triajianto)</author>
      <guid>https://www.junian.dev/dev/cmake3-ubuntu-14-04-installation/</guid>
      <description>&lt;p&gt;Recently I&amp;rsquo;ve been trying to do research on &lt;a href=&#34;https://gitlab.eurecom.fr/oai/openairinterface5g/wikis/home&#34;&gt;OpenAirInterface&lt;/a&gt; using a LimeSDR.
Since I&amp;rsquo;m using their &lt;code&gt;master&lt;/code&gt; branch source code, I have to use the old Ubuntu 14.04.
For some reasons, I need to test it using the latest &lt;a href=&#34;https://wiki.myriadrf.org/Lime_Suite&#34;&gt;LimeSuite&lt;/a&gt; source code and compile it myself.&lt;/p&gt;
&lt;p&gt;One thing I realized when I did building process for LimeSuite, it throws an error saying that the installed &lt;code&gt;cmake&lt;/code&gt; version in the system doesn&amp;rsquo;t meet the requirements.
It needs &lt;code&gt;cmake&lt;/code&gt; version 3, but mine was version 2.&lt;/p&gt;</description>
    </item>
    
  </channel>
</rss>
