2020年4月23日 星期四

以後的筆記要搬到 https://hackmd.io/@fourdollars 上面囉

本來打算將 Autopkgtest 初體驗 這篇筆記搬回來 Blogger,突然發現這樣好像有點在浪費時間。

因為 HackMD - Markdown 協作知識庫 實在是太好用了,功能都很完整(至少我需要的都有),所以以後不打算再維護這邊了。

https://hackmd.io/@fourdollars

2019年11月22日 星期五

在 Ubuntu 18.04 透過 postfix 來使用 Gmail 寄信

以下內容是參考 https://kifarunix.com/configure-postfix-to-use-gmail-smtp-on-ubuntu-18-04/

首先安裝一下 postfix 與 mailutils

$ sudo apt install postfix mailutils

安裝過程設定使用 Internet site: Mail is sent and received directly using SMTP.

安裝後修改 /etc/postfix/main.cf

relayhost = [smtp.gmail.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_security_level = encrypt
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt

修改 /etc/postfix/sasl_passwd 加入密碼

[smtp.gmail.com]:587 userid@gmail.com:password

應用程式密碼可以在 https://myaccount.google.com/apppasswords 產生

使用 postmap 產生 db

$ sudo postmap /etc/postfix/sasl_passwd
$ ls /etc/postfix/sasl_passwd*
/etc/postfix/sasl_passwd  /etc/postfix/sasl_passwd.db

變更 /etc/postfix/sasl_passwd* 權限

$ sudo chown root:root /etc/postfix/sasl_passwd*
$ sudo chmod 600 /etc/postfix/sasl_passwd*

設定完成後重啟 postfix

$ service postfix reload

最後寫一封信寄給自己看看有沒有成功收到

$ echo "This is a test mail." | mail -s "test mail" userid@gmail.com

2018年7月27日 星期五

自製 Ubuntu 16.04.X/17.10/18.04.X/18.10 測試硬體安裝使用的 USB 隨身碟

與「自製 Ubuntu 13.04/12.10/12.04.2 與 Debian 7.0 測試硬體安裝使用的 USB 隨身碟」跟「自製 Ubuntu 16.04/16.04.1/16.04.2/16.10/17.04 測試硬體安裝使用的 USB 隨身碟」同樣的步驟只是改用 grub.cfg 這個設定檔。

隨身碟換成某年在 COSCUP 購買的 USB stick 紀念品,所以容量有 16GB 可以用,只是已經不想再不斷地修改 grub.cfg 所以改成自動偵測 vmlinuz 跟 initrd 的檔案名稱,然後會去掃 iso 目錄底下的所有 iso 檔,之後只要爽爽地將新的 iso 檔複製到 iso 目錄底下就會自動找到了,不用在因為新增或刪除 iso 檔而去修改 grub.cfg。

主要修改的部份如下:

for isofile in /iso/*.iso
do
    menuentry "試用 $isofile 免安裝 ($bios)" $isofile {
        loopback loop $2

        if [ -f (loop)/casper/vmlinuz ]; then
            set vmlinuz="(loop)/casper/vmlinuz"
        elif [ -f (loop)/casper/vmlinuz.efi ]; then
            set vmlinuz="(loop)/casper/vmlinuz.efi"
        fi

        if [ -f (loop)/casper/initrd ]; then
            set initrd="(loop)/casper/initrd"
        elif [ -f (loop)/casper/initrd.lz ]; then
            set initrd="(loop)/casper/initrd.lz"
        elif [ -f (loop)/casper/initrd.gz ]; then
            set initrd="(loop)/casper/initrd.gz"
        fi

        linux   $vmlinuz iso-scan/filename=$2 $options $desktop --- $extra
        initrd  $initrd
    }
done

2017年11月26日 星期日

線上編輯與分享 Debian 與 Ubuntu 的自動安裝設定

多年前在弄 https://fourdollars.github.io/d-i/ 時,就已經想到這個主意了,趁這個週末有點時間就用 Python Flask 硬幹出來。

主要是利用下面的機制做出來的:

運作的原理是根據使用者的 IPv4 位址來儲存設定檔,所以另一台透過同樣的 IPv4 位址就可以拿到同一份設定檔,分享的時候也是透過分享 IPv4 位址來達成,但是只有該 IPv4 位址的使用者才能夠編輯給該 IPv4 位址使用的設定。

專案網址:https://fourdollars.github.io/diaas/

我另外弄了一個專門給 Ubuntu 台灣中文社群的通用設定在 https://sylee.org/d-i/?share=08080808,點進去後按下 Save 就可以使用了。

debian-installer (d-i) and preseed.cfg

There is an "Auto mode" while automating the Debian/Ubuntu installation using preseeding.

You can check Debian's or Ubuntu's documentions for details.

Basically if we have prepared a "preseed.cfg" at some right place, like http://example.com/d-i/stretch/preseed.cfg, and then we can use "auto url=example.com" to install Debian stretch by that "preseed.cfg".

"preseed.cfg" is usually a static file so I come out some ideas. How about making it dynamic and we can share it to others.

If you are interested, please check https://fourdollars.github.io/diaas/.

2017年11月23日 星期四

Python 套件的安全檢查 safety

使用 Python 來建立專案常常會需要拉一些額外的套件進來使用,然而有時候專案已經穩定不再增加新功能也不再修正錯誤時,就是只放著讓它在那邊自己跑著,只是說這個專案使用到的額外的套件難免會有一些未知的安全問題,這時候該怎麼辦呢?

於是我找到了 https://pypi.python.org/pypi/safety

執行

$ pip install safety
安裝起來,然後再執行
$ safety check
就可以看到結果。

或者是可以直接檢查 requirements.txt 這個檔案。

$ safety check -r requirements.txt
╒══════════════════════════════════════════════════════════════════════════════╕
│                                                                              │
│                               /$$$$$$            /$$                         │
│                              /$$__  $$          | $$                         │
│           /$$$$$$$  /$$$$$$ | $$  \__//$$$$$$  /$$$$$$   /$$   /$$           │
│          /$$_____/ |____  $$| $$$$   /$$__  $$|_  $$_/  | $$  | $$           │
│         |  $$$$$$   /$$$$$$$| $$_/  | $$$$$$$$  | $$    | $$  | $$           │
│          \____  $$ /$$__  $$| $$    | $$_____/  | $$ /$$| $$  | $$           │
│          /$$$$$$$/|  $$$$$$$| $$    |  $$$$$$$  |  $$$$/|  $$$$$$$           │
│         |_______/  \_______/|__/     \_______/   \___/   \____  $$           │
│                                                          /$$  | $$           │
│                                                         |  $$$$$$/           │
│  by pyup.io                                              \______/            │
│                                                                              │
╞══════════════════════════════════════════════════════════════════════════════╡
│ REPORT                                                                       │
│ checked 101 packages, using default DB                                       │
╞════════════════════════════╤═══════════╤══════════════════════════╤══════════╡
│ package                    │ installed │ affected                 │ ID       │
╞════════════════════════════╧═══════════╧══════════════════════════╧══════════╡
│ pillow                     │ 3.2.0     │ <3.3.2                   │ 33138    │
│ pillow                     │ 3.2.0     │ <3.3.2                   │ 33139    │
│ cryptography               │ 1.3.1     │ <1.5.3                   │ 25680    │
│ httplib2                   │ 0.9.2     │ <=0.9.2                  │ 25848    │
│ mistune                    │ 0.7.1     │ <0.7.2                   │ 25890    │
│ rsa                        │ 3.2.3     │ <3.3                     │ 33164    │
│ rsa                        │ 3.2.3     │ <3.4                     │ 26112    │
╘══════════════════════════════════════════════════════════════════════════════╛

看樣子只要將版本更新上去就沒問題了,當然原本專案的某些地方可能會跟著壞掉需要再修正一下。

最後是 https://pyup.io/ 對 GitHub 提供了 CI 的服務,public repo 可以免費使用。

2017年7月10日 星期一

自製 Ubuntu 16.04/16.04.1/16.04.2/16.10/17.04 測試硬體安裝使用的 USB 隨身碟

與「自製 Ubuntu 13.04/12.10/12.04.2 與 Debian 7.0 測試硬體安裝使用的 USB 隨身碟」同樣的步驟只是改用 grub.cfg 這個設定檔。

因為我是放在 8GB 的 USB 隨身碟上面,所以放這幾個 amd64 ISO 檔案就塞滿了。

另外我發現前一篇文章中的 usb-creator-gtk -n -i ubuntu-13.04-desktop-amd64.iso 這個步驟是多餘的,其實使用 grub-install 就夠了,還有這邊的 UEFI 模式不會支援 Secure Boot 因為 GRUB 的安全設定的關係。