Linux

Linux 用戶權限設定

Linux 用戶權限設定

Linux 的用戶權限可以透過 usermod 設定,常用的命令包括

  -aG 將用戶加入附屬群組
  -c, --comment COMMENT         new value of the GECOS field
  -d, --home HOME_DIR           預設登入目錄 (new home directory for the user account)
  -e, --expiredate EXPIRE_DATE  set account expiration date to EXPIRE_DATE
  -f, --inactive INACTIVE       set password inactive after expiration
                                to INACTIVE
  -g, --gid GROUP               修改用戶群組 (force use GROUP as new primary group)
  -G, --groups GROUPS           修改用戶附屬群組 (new list of supplementary GROUPS)
  -a, --append                  append the user to the supplemental GROUPS
                                mentioned by the -G option without removing
                                him/her from other groups
  -h, --help                    display this help message and exit
  -l, --login NEW_LOGIN         new value of the login name
  -L, --lock                    lock the user account
  -m, --move-home               move contents of the home directory to the
                                new location (use only with -d)
  -o, --non-unique              allow using duplicate (non-unique) UID
  -p, --password PASSWORD       use encrypted password for the new password
  -R, --root CHROOT_DIR         directory to chroot into
  -s, --shell SHELL             設定用戶登入後的shell 版本 (new login shell for the user account)
  -u, --uid UID                 new UID for the user account
  -U, --unlock                  unlock the user account
  -Z, --selinux-user SEUSER     new SELinux user mapping for the user account

Continue Reading

Composer git hooks

Composer git hooks

Composer Git Hooks 可以讓你直接在 composer 設定進行管理 git hooks,透過這樣管理的好處在於,能避免每個開發者都有各自的git hooks 設定,透過 composer git hooks 能將所有開發者的 git hooks 統一納入版控。

Continue Reading

CentOS, Ubuntu 安裝 PECL

這裡說明如何在 CentOS, Ubuntu 系統安裝 pecl

Continue Reading

CentOS 安裝 PHP7.3

CentOS 安裝 PHP7.3

啟用 EPEL 以及 Remi Repository

$ yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm -y
$ yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y

安裝 YUM-UTILS

Continue Reading

MySQL 鎖簡述

MySQL 鎖簡述

MySql 主要的鎖可以分為幾種類型:

MyISAM與 InnoDB 都支援表級別與行級別鎖: X 鎖、 S 鎖

InnoDB的表級別鎖:IX鎖、IS 鎖

Continue Reading

MySQL 主從式讀寫分離

MySQL 主從式讀寫分離

MySQL 在操作資料庫的部署方式,其中一種是採取主從式讀寫分離的方式處理。

主(master) 主要用於寫入資料,從(Slave)主要進行讀取。在一般情況,資料庫採取這樣的方式與傳統單一部署方式並不會有太大的差異,但是在百萬等級的操作時,就可以明顯的分擔資料庫的處理程序。

原因在於資料庫在寫入相關操作速度會有 X鎖及 S 鎖的競爭關係,速度較慢。

Continue Reading

Apache 及 Nginx 主機設置 phpMyAdmin 訪問白名單方法

主機設置 phpMyAdmin 訪問白名單

正式網站使用 phpMyAdmin 建議一定要限制允許IP來源,避免目錄被訪問

這裡說明如何透過 Web Server 端來設置允許白名單

(建議!盡可能的不要使用 phpmyadmin)

Continue Reading

Laravel 5.8.18-17 新擴充功能說明

Laravel 5.8.18-17 新擴充功能說明

這裏分別針對 Laravel 5.8 (至今年五月)所發佈的一些功能項目進行說明,關於完整的發布紀錄可以參考這裡:

[v5.8.18](https://laravel-news.com/laravel-5-8-18?utm_medium=email&utm_campaign=Laravel v5818 Laracon Australia 2019 PHP Array Redactor and more - 258&utm_content=Laravel v5818 Laracon Australia 2019 PHP Array Redactor and more - 258+CID_a921ac9032531484d27f82e90d45f469&utm_source=email marketing&utm_term=Read More)

v5.8.17

或者參閱完整的 v5.8 更新歷程

Continue Reading

Laravel 測試使用 SQLite 配置方式

Laravel 測試環境使用 in Memory DB - SQLite

在執行 phpunit 時,透過 sqlite 可以快速的執行測試,而避免掉需要建立關聯資料庫的流程

在 Laravel 設置方式如下

設置 .env.testing

將資料庫連線設定為 sqlite,以及

DB_CONNECTION=sqlite
DB_HOST=localhost
DB_PORT=8000
DB_DATABASE=':memory:'

Continue Reading

Docker daemon startup failed [解決]

目前使用 mac 本機直接安裝的 Dockder 環境,但就在近期運行 Docker 會發生了 Docker daemon startup failed 錯誤。 這裡記錄一下處理方式 首先點選 Reset Docker to factory defaults Resetting factory defaults… 接著會看到以下訊息,請點擊 Restart 按鈕 Docker has reset successfully. The application will restart now.

Continue Reading

Command Substitution 簡介

Command Substitution

Command Substitution 大致的結構如下

$()
或者
``

Continue Reading

iptables

iptables

在 Linux 系統內建多數使用 iptables 作為防火牆,用來過設定允許的封包清單,進行安全防護。

iptable 可以用來設定安全 IP 白名單,封鎖 IP 黑名單,以及可以進一步設計程防止 DDos 攻擊用途。

Continue Reading

GCP 輪動更新,haproxy 鎖定固定 IP 方式

在我們現有產品中,GCP 的測試機IP是固定的,輪動更新則會變動IP 這裡透過 haproxy 讓輪動更新的 3306 都會指向測試機,再由測試機連向 SQL SQL 只要將白名單設定為測試機IP即可

Continue Reading

解決RAM不足問題 - 在 Linux 新增 Swap 虛擬記憶體

解決RAM不足問題 - 在 Linux 新增 Swap 虛擬記憶體

建立 Swap 虛擬記憶體儲存空間

一般建立 Swap 記憶體,大小通常會設定在實體記憶體的 1到 2倍。

以一台 1Gb 記憶體的主機而言,我們在這裡建立 2G的 Swap 虛擬記憶體儲存空間。

首先,在 var 透過 fallocate 建立 swapfile 資料夾,fallocate 可指定預留資料夾空間,以及權限設定為 root 可讀寫

Continue Reading

使用正確 ssh pem keygen 仍無法登入問題:Host key verification failed. 解決方式

在某次更換主機的公鑰之後,拿變更後的 ssh keygen 登入主機,卻發生登入錯誤訊息

ssh -i ~/.ssh/mykeygen.pem root@xxx.xx.xxx.xx
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Please contact your system administrator.
Add correct host key in /Users/elite/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /Users/elite/.ssh/known_hosts:10
ECDSA host key for xxx.xx.xxx.xx has changed and you have requested strict checking.
Host key verification failed.

Continue Reading

Mac OS 安裝 Python 3 方法及建議

Mac OS 安裝 Python 3 方法及建議

Mac OS X 預設安裝了 Python 2.7.10 版本

$ python --version
Python 2.7.10

這裡說明如何安裝 python3

Continue Reading

Goaccess Nginx日誌分析

Goaccess Nginx日誌分析

Mac 安裝

brew install goaccess

Continue Reading

Kubernetes 簡介 - 初體驗

K8s 簡介 K8s 是以 Google 的內部使用十多年的容器編排管理平台 Borg 為基礎原形所實現 萬個機器節點,以及幾千個到幾十萬個 pod (容器組),每週都會部署20多個容器 容器編排管理 部署微服務架構 雲平台可移植的層 容器編排管理 單一個 container 並不能提供開發者太多的好處,因為開發及生產場景往往需要複雜的交互,需要多個容器同時並行協同工作,以及跨組織的管理 因此,K8s 就作為 container 編排,可跨主機管理的最佳利器 K8s 以 Pod 為基本容器組,每個 Pod 只做一件事,可以將 Pod 進行編排調度,以及聲明他的物件配置模型(Controller, configmap, secret…)

Continue Reading

AWS 擴充 EBS 動態硬碟容量流程

AWS 目前系統工作流程已經非常簡單 對於EBS硬碟容量不夠,需要擴充時,只要三個步驟就能完成: instance 停機 Elastics block store > Volumes > 勾選 volume,並於 Action 下拉選單選取 Modify volume > 調整數值(單位GB) 啟動 instance

Continue Reading

避免SSH連線超時自動中斷設定

避免SSH連線超時自動中斷設定

這裡說明如何避免 SSH 連線超時自動中斷的問題

這裡使用的方式,是透過固定時間發送一個“Keep Alive”訊號給 server

設定方式,MAC OS 及遠端server 都要設定

先在 ~/.ssh/ 新增或編輯 config 檔案

Continue Reading