วันพฤหัสบดีที่ 31 พฤษภาคม พ.ศ. 2561

เพิ่ม User และตั้งสิทธิ์ sudo ใน Ubuntu

Ubuntu เป็น OS ที่นิยมนำมาใช้เป็นเซิร์ฟเวอร์อย่างแพร่หลาย ด้วยการติดตั้งง่าย การแก้ไขปัญหาก็ทำได้ดีเพราะมีเอกสาร คนใช้งานอยู่มาก และโดยปกติ Ubuntu จะติดตั้งโปรแกรมน้อยที่สุดให้ก่อน แล้วค่อยเพิ่มเติมทีหลังตามความจำเป็น จึงเป็นระบบที่เบาไม่รกเลอะเทอะ แต่กระนั้นก็ยังไม่วาย มีคนบางคนติดตั้งทั้งหมดไปด้วย แต่ไม่ได้ใช้งานครบ จึงเป็นช่องโหว่ให้ระบบถูกแฮ็กได้ง่าย เพราะไม่รู้จะป้องกันจุดไหนดี อีกทั้งทำให้ระบบโดยรวมช้าลง หรือเวลาเจอปัญหาก็แก้ไขได้ล่าช้า

ดังนั้นควรติดตั้งให้น้อยแล้วค่อยๆ ติดตั้งเพิ่มในภายหลัง

เมื่อติดตั้งครั้งแรก Ubuntu จะให้กำหนดชื่อผู้ใช้งานที่เป็น admin ไว้ และไม่มีรหัสสำหรับ root และผู้ใช้งานคนแรกนี่แหละที่จะเป็นคนเข้าไปใช้สิทธิ์ root ได้ผ่านคำสั่ง sudo และสามารถกำหนดรหัสผ่านให้ root ได้ แต่แนะนำว่าไม่ควรใช้ root ควรปล่อยไว้อย่างนั้นไม่ต้องไปตั้งรหัสผ่าน และการตั้งชื่อผู้ใช้งานคนแรกก็ไม่ควรตั้งง่ายๆ เพราะทำให้คนอื่นเดาชื่อผู้ใช้งานได้ เช่นไม่ควรใช้ชื่อ user01, user02 หรือ sale01 เป็นต้น

สำหรับผู้เขียนเองจะใช้ชื่อที่เราจำง่าย แต่เดาไม่ง่าย บางคนใช้ชื่อเล่นง่ายๆ ก็ทำให้สุ่มเดาได้ เช่น boss, big หรือ jib พวกนี้ก็เสี่ยงต่อการแฮ็คทั้งนั้น

หลังจากที่ติดตั้งเสร็จแล้วหากเราต้องการที่จะเพิ่มพนักงาน หรือคนที่เป็น admin เข้าไปในระบบก็ทำได้ง่ายๆ โดยการเพิ่ม user แล้วก็เพิ่มให้เข้าในกลุ่ม sudo แค่นี้ก็ได้ admin เพิ่มแล้ว แต่อย่าลืมว่า ชื่อ user และรหัสผ่าน ไม่ควรง่ายจนเดาได้ มิฉะนั้นก็เป็นการเปิดช่องให้ผู้ร้ายเข้าสู่ระบบได้

(สิ่งสำคัญประการหนึ่ง อย่าเพิ่มผู้บริหาร หรือเจ้าของบริษัท หัวหน้างานที่ไม่เกี่ยวข้องกับการดูแลระบบ และไม่มีความรู้ด้านไอทีเข้าไปเป็น user ที่มีสิทธิ์ admin เพราะบางหน่วยงานจะให้เกียรติด้วยการเพิ่มเป็นผู้ดูแล โดยถือว่าเป็นเจ้าของ เป็นเถ้าแก่ แต่แล้วนั่นอาจจะเป็นช่องทางหายนะได้ เพราะหลายคนได้รหัสแล้วจดแปะไว้ที่หน้าจอก็มี)

การเพิ่ม user ให้ใช้คำสั่ง 

adduser [ชื่อผู้ใช้]

ระบบจะให้ใส่รหัสผ่าน และรายละเอียดเกี่ยวกับผู้ใช้ คำสั่ง adduser จะสร้าง /home/ชื่อผู้ใช้ อย่าใช้คำสั่ง useradd เพราะจะยุ่งยากกว่า

เพิ่มสิทธิ์ sudo

usermod -aG sudo ชื่อผู้ใช้งาน


ทดสอบ

su - ชื่อผู้ใช้งาน

แล้วใช้คำสั่ง sudo su หากไม่ทำอะไรผิดพลาดก็จะให้ใส่รหัสผ่านอีกครั้งเพื่อเข้าไปเป็น super user

แค่นี้แหละครับง่ายๆ ไม่มีอะไรซับซ้อน แต่อย่าลืมเรื่องความปลอดภัยให้มากที่สุดนะครับ ไม่อย่างนั้นจะมานั่งเครียดกันภายหลัง...

วันพุธที่ 15 พฤศจิกายน พ.ศ. 2560

การติดตั้ง MySQL Replicate server จากการโคลนนิ่ง Master

วิธีการติดตั้ง Replicate ของ MySQL หลักการแล้วจะทำเพื่อทำเซิร์ฟเวอร์สำรอง กรณีเซิร์ฟเวอร์หลักเสียหรือขัดข้องจนไม่สามารถใช้การได้ จะยังมีเซิร์ฟเวอร์สำรองอีกหนึ่งเครื่องเพื่อเปิดใช้งานแทน โดยข้อมูลใน MySQL นั้นจะมีเหมือนเดิมทุกประการ (ความเสียหายที่เกิดจะต้องไม่เสียหายจากการกระทำโดยตรงกับข้อมูล MySQL เพราะจะทำให้การเปลี่ยนแปลงใน Master ส่งผลไปยัง Slave ด้วย)

การที่จะทำให้ระบบสามารถใช้งานได้เป็นอย่างดีนั้น ระบบใน Slave ต้องเหมือนกันทุกอย่างกับ Master ยกเว้นข้อมูลเกี่ยวกับชื่อและ IP ของเซิร์ฟเวอร์ และการตั้งค่าใน MySQL

วิธีการง่ายที่สุดคือทำให้ Master ทำงานได้สมบูรณ์แบบและไม่มีการเปลี่ยนแปลงใดๆ แล้วก็ใช้วิธีการ Cloning หรือเขียนเป็น Image ไว้แล้วนำติดตั้งในเครื่อง Slave แล้วเข้าไปแก้ไข Network, และข้อมูลเกี่ยวกับ Server และคอนฟิกของ MySQL ดังนี้

1. เปลี่ยน IP ในไฟล์ /etc/networking/interfaces กรณีที่ใช้ DHCP และติดตั้ง mDNS ก็ไม่ต้องแก้ไขในส่วนนี้
2. เปลี่ยนชื่อใน /etc/hosts
3. แก้ไข /etc/mysql/mysql.conf.d/mysqld.conf ให้เป็นข้อมูลของ Slave
4. ลบไฟล์ /var/lib/mysql/auto.conf ในเครื่อง Slave แล้วรีสตาร์ท MySQL เพื่อให้สร้าง UUIDs ใหม่ ไม่อย่างนั้นจะไม่สามารถเปิดใช้งาน Replicate ได้


จากนั้นก็ดำเนินการติดตั้ง Replicate ได้เลย... (มีอัพเดทข้อมูลภายหลัง)

วันอาทิตย์ที่ 12 พฤศจิกายน พ.ศ. 2560

Ubuntu 16.04 เปลี่ยนแหล่งเก็บ config ของ mysql

ปกติเราจะเข้าไปแก้ไขไฟล์ config ของ mysql ได้ที่ /etc/my.cnf หรือ /etc/mysql/my.cnf แต่สำหรับ Ubuntu เวอร์ชัน 16.04 แล้วจะเปลี่ยนแปลงการจัดเก็บคอนฟิกสำหรับ mysql ใหม่เป็น /etc/mysql/mysql.conf.d/ แทน โดยภายในไดเรคทอรีใหม่นี้จะมีไฟล์แยกเป็น mysqld.conf และ mysqld_safe_syslog.cnf ซึ่งเป็นการแยกส่วนให้ง่ายต่อการปรับแต่งระบบ และรูปแบบใหม่นี้จะแยกไฟล์คอนฟิกสำหรับ mysqldump ไปไว้ใน /etc/mysql/conf.d ซึ่งก็สะดวกดีเช่นกัน
ในไฟล์ my.cnf ได้เพิ่มการอ้างถึงไดเรคทอรีสำหรับจัดการระบบของ mysql

วันศุกร์ที่ 27 ตุลาคม พ.ศ. 2560

แก้ไข InnoDB แสดงค่าโดยประมาณ

So how can we make phpMyAdmin show exact number of records for InnoDB tables?

Simple. Just open the config.inc.php in your phpMyAdmin installation directory and add this line:
$cfg['MaxExactCount'] = 2000000;
This configuration parameter sets the threshold that phpMyAdmin executes COUNT(*) against the table.
In this case, if the total number of recrods in this InnoDB table is larger than 2,000,000, the Rows count will be estimated, starting with a wave sign, ~; on the other hand, if the total number of records in this InnoDB table is smaller than 2,000,000, phpMyAdmin will run COUNT(*) against the table so an exact Rows count is displayed.



PHP 7.0 ไม่ทำงาน

apt-get install apache2 php7.0 libapache2-mod-php7.0
a2query -m php7.0
a2enmod php7.0
service apache2 restart

NanoPi NEO

Hardware Spec

  • CPU: Allwinner H3, Quad-core Cortex-A7 Up to 1.2GHz
  • DDR3 RAM: 256MB/512MB
  • Connectivity: 10/100M Ethernet
  • USB Host: Type-A x 1, 2.54 mm pin x 2
  • MicroSD Slot x 1
  • MicroUSB: OTG, for power input
  • Debug Serial Port: 4Pin, 2.54 mm pitch pin header
  • Audio input/output Port: 5Pin, 2.0mm pitch pin header
  • GPIO: 2.54mm pitch 36pin. It includes UART, SPI, I2C, IO etc
  • Power Supply: DC 5V/2A
  • PCB Dimension: 40 x 40 mm
  • Working Temperature: -40℃ to 80℃
  • Weight: 14g(WITHOUT Pin-headers)
  • OS/Software: u-boot, UbuntuCore and Android

NanoPi M1

Hardware Spec

  • CPU: Allwinner H3, Quad-core Cortex-A7@1.2GHz
  • GPU: Mali400MP2@600MHz,Supports OpenGL ES2.0
  • DDR3 RAM: 512MB/1GB
  • Connectivity: 10/100M Ethernet
  • Audio: 3.5mm audio jack/Via HDMI
  • Microphone: Onboard microphone
  • IR Receiver: Onboard IR receiver
  • USB Host:Type A, USB 2.0 x 3
  • MicroSD Slot x 1
  • MicroUSB: for data transmission and power input, OTG
  • Video Output: HDMI 1.4 1080P, CVBS
  • DVP Camera Interface: 24pin, 0.5mm pitch FPC seat
  • Debug Serial Port: 4Pin, 2.54mm pitch pin header
  • GPIO: 2.54mm spacing 40pin, compatible with Raspberry Pi's GPIO. It includes UART, SPI, I2C, IO etc
  • User Key: Power LED x 1, Reset x 1
  • PC Size: 64 x 56mm
  • Power Supply: DC 5V/2A
  • Working Temperature: -30℃ to 70℃
  • OS/Software: u-boot,Ubuntu MATE,Debian


เพิ่ม User และตั้งสิทธิ์ sudo ใน Ubuntu

Ubuntu เป็น OS ที่นิยมนำมาใช้เป็นเซิร์ฟเวอร์อย่างแพร่หลาย ด้วยการติดตั้งง่าย การแก้ไขปัญหาก็ทำได้ดีเพราะมีเอกสาร คนใช้งานอยู่มาก และโดยปกติ ...