案例專題

回復管理員權限

使用者會因誤操作而導致管理者喪失管理員權限。筆者使用 linux 的時間不長就已遇過一次。請參考底下連結應就可救回來了。

  1. https://www.tecmint.com/fix-user-is-not-in-the-sudoers-file-the-incident-will-be-reported-ubuntu/
  2. https://www.ostechnix.com/how-to-restore-sudo-privileges-to-a-user/

喚醒遠端電腦-WoL

WakeOnLan/WoL,WakeOnWirelessLan/WoW
因筆者的無線網路卡都不支援 WoW,所以於此只介紹 WoL
簡單講,就是在區域網路內,本地端廣播 magic packet,其包含著目的地端網卡的 MAC address,讓同在區網內,關機狀態下的遠端電腦開機。這有幾個前提:

  • 網卡本身支援 WoL (十年內的網卡應都已支援)
  • BIOS 支援 WoL,並啟用該設定(BIOS 更早就已支援)。通常在電源管理的選項內
  • 作業系統下啟用 WoL
  • 能發送 magic packet 的程式

在 Linux 系統下,常見的就是兩支程式,一支用來啟用 WoL,即 ethtool。另一支 wakeonlan 用來發送 magic packet 喚醒關機狀態的電腦。此外 wakeonlan 還支援使用 ip address / hostname 來發送,即 WoWan,也就是可以從網際網路穿透區域網路到達欲喚醒的電腦。WoL/WoW/WoWan/WoWWan 其都必須提供網卡的 MAC address 以做為明確的目的地端。wakeonlan 使用預設的 UDP port 9 來發送。也可自訂例如 UDP port 7。而 Android 便有很多的 apps 就有類似 wakeonlan 的功能與設定。
此外,筆者的兩台電腦 WoL 都存在 fail-rate 的,也就是不總是可成功喚醒。且參考資料的方法都試過了仍未解。其可能的原因:

  • BIOS,亦即主板的 bug
  • 網卡或其 driver 的 bug
  • 喚醒的 magic packet 中途遺失。換言之喚醒的動作最好多下幾次。
  • 關機後,可透過查看網卡埠的燈號有亮著則應可喚醒(但沒亮仍可能可,隨網卡之設計)。然而在此可喚醒狀態下,源頭斷電,例如停電,那麼復電後,電腦是不可能再被喚醒的。
  • 簡單講,一般預設下,不做任何設定,順利的話,用以下指令便可喚醒:
    wakeonlan -i waterfalls.ddns.net -p 9 3A:12:55:B2:11:02

    wakeonlan 3A:12:55:B2:11:02

使用 ethtool

首先我們先取得運作中的卡,執行 ip a 會得到如圖的結果。我們看到有實體三張卡,藍框處,enp3s0,enp5s0 是有線網卡,wlp2s0 是無線網卡。紅線處有被指定區網 ip 也就是 active 運作中的卡。因此我想透過有線來喚醒,圖中的 enp5s0 記住這個網卡的識別名及它的 MAC address,在綠框中,會是如 3A:12:55:B2:11:02 這樣的形式。

  • 安裝 ethtool
  • sudo apt install ethtool
  • 啟用 WoL
  • sudo ethtool -s enp5s0 wol g
  • 查詢是否已啟用
  • sudo ethtool enp5s0

看到 wake-on: g 就表示已啟用成功了。不過這只是手動,一次性的。我們希望每次開機後都能執行一次。很多種方法,以下列出其一。

使用 systemd service

建立以下內容的檔案,並取名為 mywol.service。記得內容的 enp5s0 改成您的網卡名。

[Unit]
Description=Configure Wake On LAN

[Service]
Type=oneshot
ExecStart=/sbin/ethtool -s enp5s0 wol g

[Install]
WantedBy=basic.target
  • 接著執行:
  • sudo chown root:root mywol.service
  • sudo mv mywol.service /etc/systemd/system/
  • sudo systemctl daemon-reload
  • sudo systemctl enable mywol.service
  • sudo systemctl start mywol.service
  • 這樣就全設定完成了。

使用 wakeonlan

  • sudo apt install wakeonlan
  • 當使用 magic packet 在區網廣播時,使用的是如上列的 enp5s0 的 MAC address
  • wakeonlan 3A:12:55:B2:11:02
  • 走網際網路時,請記得,撥接寬頻和 IP 分享器都要開啟 port forwarding
  • 若 https://waterfalls.ddns.net 的 ip address 是 219.71.6.111 且使用 UDP port 7 的話,則如下兩種下法:
  • wakeonlan -i waterfalls.ddns.net -p 7 3A:12:55:B2:11:02
  • wakeonlan -i 219.71.6.111 -p 7 3A:12:55:B2:11:02
  • 當然,wakeonlan 是用在別台電腦,喚醒您這台已關機的電腦的。

參考資料

  1. https://blog.gtwang.org/linux/linux-basic-systemctl-systemd-service-unit-tutorial-examples/
  2. https://zhuanlan.zhihu.com/p/51357835
  3. https://www.cyberciti.biz/tips/linux-send-wake-on-lan-wol-magic-packets.html
  4. https://kmmr.pixnet.net/blog/post/35347778
  5. https://superuser.com/questions/205468/ethtool-wol-what-does-wake-on-physical-activity-actually-mean-and-how-can
  6. https://www.cyberciti.biz/faq/configure-wireless-wake-on-lan-for-linux-wifi-wowlan-card/
  7. https://askubuntu.com/questions/764158/how-to-enable-wake-on-lan-wol-in-ubuntu-16-04
  8. https://wiki.debian.org/WakeOnLan
  9. https://bbs.archlinux.org/viewtopic.php?id=243461
  10. https://askubuntu.com/questions/1053302/wake-on-lan-not-working-if-i-turn-of-with-ubuntu
  11. https://ubuntuforums.org/showthread.php?t=2233674
  12. https://askubuntu.com/questions/138445/wake-on-lan-worked-3-times-then-no-more

無法正常關機或重開機

筆者的電腦當執行 reboot 或關機,就會停住,電源還 ON 著。筆者的此狀態應是 Linux 已結束掉所有行程,只差了一個系統關電的動作。因此透過以下的修改,便可順利重開機或關機了。

  • 在此檔內容找尋以下設定
  • /etc/default/grub
  • GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash”
  • 先修改成所建議的以下設定
  • GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash acpi=force”
  • 測試結果,失敗,從而再改成這樣
  • GRUB_CMDLINE_LINUX_DEFAULT=”acpi=force”
  • 存檔離開並執行
  • sudo update-grub

參考資料:https://askubuntu.com/questions/764568/ubuntu-16-04-hangs-on-shutdown-restart

使用 command line 開關 wlan

  • 因筆者嘗試過兩台電腦,應對的情況並不一致。故命令及說明,皆僅供參考。
  • 此用法是在至少有一組 ssid,password,已被提供且已被收錄的前題下,並且此 AP 是正存在可被存取的。以下做的,只要開關,就能連上 AP。
  • ifconfig -a 可查看包含有線及無線網路卡的當下設定。同理 iwconfig 也可。
  • iwconfig + 無線網卡名,則可查看無線網卡當下的狀態。例如 iwconfig wlp3s0,iwconfig wlan0
  • 承上,我們先前在 GUI 上關閉了無線網路,特別注意 TX-Power 欄位,是 i dBm 或是 off,若是 i dBm 則 RF 訊號並沒有被關閉,而有可能三種狀況,已正常連接到 AP,能正常連接到 AP 但並沒有 AP 被搜尋到,或對 AP 的連接網路被關閉。
  • 承上,故我們所要處理的狀況是上述的第三種,以及 off 的狀況。只要下 sudo nmcli radio wifi on 則開啟無線網路並自動搜尋 AP 及連線。sudo nmcli radio wifi off 則關閉。
  • 承上,但即便 on 後,可能狀態沒改變,那就是因為 RF 並未被順道開啟,故下
    rfkill -J list 查看無線裝置,下
    sudo rfkill unblock wlan 開啟 wlan RF,下
    sudo rfkill block wlan 關閉 wlan RF
    sudo rfkill block bluetooth 關閉 bluetooth RF
    同理,nmcli radio wifi off 可能會順道關閉 RF
  • 簡單講,使用 rfkill 只能開關 RF,而 nmcli radio wifi 會啟用停用無線網路連接,且可能會順道開關 RF;即,單執行 nmcli 不見得能順利連上線,因 RF 尚未被打開。
  • 以下另一種用法,摘錄:
  • To see list of saved connections, use (SavedWiFiConn)
    nmcli c
    to disconnect specific AP,nmcli c down (SavedWiFiConn)
    to connect specific AP,nmcli c up (SavedWiFiConn)
    to disconnect WiFi,nmcli d disconnect (WifiInterface)
    to connect WiFi,nmcli d connect (WifiInterface)
  • To see list of available WiFi hotspots (WiFiSSID)
    nmcli d wifi list
    or more realtime detail
    sudo iwlist (WifiInterface) scanning
  • with assignments
    nmcli d wifi connect (WiFiSSID) password (WiFiPassword)
  • 以上兩類用法並不互相重疊,即,首提第一類是源頭的控制,並且此類的兩支指令,rfkill 及 nmcli on/off,後者不見得能將 radio 和 wifi 都打開,故需配合 rfkill 指令。第二類指令最好也使用 sudo 下,而若仍失敗,則是第一類指令未先作用到,須先下。
  • 20220105 追加
    若 wifi 都無法驅動,例如預設安裝 ubuntu server 後,它沒驅動成功 wifi,那麼可能是這套件沒有安裝:wpasupplicant
    其他 network/wireless 工具:networkctl,iwlist

書籤

綜合

  1. 部落格綜合 https://www.blogfuntw.com/
  2. 影片綜合 https://www.youtube.com/channel/UCGRKh-BLOPp_uSAcYGzRn7Q/videos
  3. http://www.wowotech.net/

WordPress 相關

  1. https://www.wp101.com.tw/blog
  2. https://blog.gtwang.org/web-building
  3. https://www.smashingmagazine.com/2016/01/create-customize-wordpress-child-theme/
  4. https://developer.wordpress.org/themes/advanced-topics/child-themes

網頁程式

  1. https://materialmixer.co

CSS

  1. https://css-tricks.com/
  2. https://wordpress.org/support/topic/import-not-allowed-in-additional-css-error/
  3. https://envato.com/blog/css3-typography-code-snippets/
  4. https://winningwp.com/css-for-beginners-where-to-learn-css-from-scratch/
  5. https://mediatemple.net/blog/tips/why-your-custom-css-doesnt-work-in-wordpress-and-how-to-fix-it
PHP Code Snippets Powered By : XYZScripts.com