[RHEL] mailx ส่งเมล์จาก Linux แบบ command line

บางครั้ง เราอาจะหลีกเลี่ยงไม่ได้ที่ต้องทำ Mail Notify แจ้งเตือนต่างๆ เช่น crontab ทำงานสำเร็จ หรือจะแนบผลลัพธ์การทำงานใส่เข้ามา เพื่อความสะดวก ไม่ต้องเข้าไปตรวจผลที่เครื่อง Server ครับ โดยการ Implement สามารถทำได้หลายวิธีเลยครับ อาทิ เช่น เขียน lib java / python เข้ามาช่วยในการจัดการส่งเมล์ ใช้ Tool Monitor เข้ามาช่วยจับตาม Event ที่กำหนด และให้ Trigger ส่งเมล์ ลองใช้ command จาก package ที่มีคนทำไว้ให้ครับ สำหรับผมใน Blog นี้ขอข้อที่ 3 นะครับ คือ ลองทดสอบส่งเมล์จาก Linux แทนครับ โดย Package Mail Client ของ Linux มีอยู่หลายค่ายนะครับ ใน Blog นี้ใช้ mailx โดย config ตั้งค่ากับ gmail ครับ ขั้นตอนการติดตั้ง mailx update package ล่าสุดด้วยคำสั่ง ติดตั้ง package mailx ด้วยคำสั่ง สร้าง symbolic link สร้าง Config File ที่ Path ในไฟล์ mail.rc กำหนด Config ดังนี้ สำหรับ Account ของ Gmail ที่จะผูกไว้ต้องกำหนด Allow Less Secure App ด้วยนะครับ ทดสอบการใช้งาน สามารถทดสอบการใช้งาน โดยใช้คำสั่ง ดังนี้…

[SECURITY] ทดสอบ Secure Configuration บน RedHat 8.X โดย OpenSCAP

ช่วงนี้เจอปัญหาเยอะด้าน TOR ครับ ยังไงต้องตรวจดีๆครับ จากเดิม Wording เดียวกับลูกค้าทำ VA Scan แต่มาอีกโครงการตีความไปเป็นทาง Vendor ทำ VA Scan ครับ เศร้าเลยครับ แต่ในโชคร้ายยังมีดีอยู่ครับ ตอนแรกเข้าใจว่าต้องหา Tool VA Scan แบบแพงๆ แล้วครับ แต่พอดูอ้าว เรามีซื้อ RedHat Subscription ไว้ครับ เสียเงินแล้ว มี Tool ที่ทำ VA Scan ช่วยตรวจสอบ Config ของ OS ครับ Secure Configuration คือ อะไร คำนี้หลายคนอาจจะไม่คุ้นเคยครับ ถ้าบอกว่า Hardening หลายคนร้อง อ๋อกันแล้วครับ Secure Configuration = Hardening คือ การตั้งค่าของระบบตาม Base Practice ด้าน Security โดยมีคนออกมาตรฐานออกมาหลายเจ้าครับ สำหรับโครงการที่ผมทำมาใช้มาตรฐาน CIS Red Hat Enterprise Linux 8 Benchmark 1.0 OpenSCAP คือ อะไร Tool ที่ช่วยในทำ VA Scan เพื่อช่วยตรวจสอบ Secure Configuration ว่าได้ทำควรสมบูรณ์ไหม และตรวจสอบช่วงโหว่ของ Service หากพบจากฐานข้อมูลของตัว Tools ครับ Tool นี้เป็น Open Source ครับ แต่เพราะเป็น RedHat เลยต้องมี Subscription ถึงจะติดตั้งได้สะดวกครับ ติดตั้ง OpenSCAP เนื่องจากตัว Tool เป็น Command-Line…

[RHEL] เมื่อกำหนด User / Group ที่ใช้สำหรับ SSH แล้วไม่สามารถ Connect ได้

empty hallway with lights turned on

หากใครต้องนำระบบขึ้น Production ทุกคนคงรู้จักขั้นตอนนึงที่สำคัญ และเป็นขั้นตอนที่ทำ App หรือ Service พังได้เลยครับ ขั้นตอนที่ว่านั้น คือ การ Hardening เพื่อเพิ่มความแข็งแรงให้ระบบครับ แต่ต้องมีความเข้าใจด้วยครับ ไม่งั้นระบบมีปัญหาได้ครับ อย่างของผมการแก้ SSH มีผลให้ Admin / Developer ที่ดูแลระบบ SSH เข้า Server ไม่ได้ครับ ต้องไปเข้าผ่าน VMware ExSI แทนครับ ระบบไม่สามารถรับส่ง File ผ่าน Protocal SFTP ไม่ได้ครับ ส่วนสาเหตุ มันมาจาก CIS RedHat 8 V1.0.0 จาก CIS RedHat 8 V1.0.0 หมวด 5.2 SSH Server Configuration ข้อ 5.2.2 Ensure SSH access is limited (Scored) โดยมีสาระสำคัญ ดังนี้ ทุก user บน OS ต้องมีการกำหนดว่าใครสามารถเข้าถึง Server ผ่าน SSH ได้ครับ โดยมีค่าที่ต้องกำหนดใน /etc/ssh/sshd_config โดยมี Option ที่ต้องกำหนด ดังนี้ครับ DenyUsers : กำหนดไม่ให้ user ไหนเข้า AllowUsers : กำหนดให้ user ไหนเข้า DenyGroups : กำหนดไม่ให้ group ไหนเข้า AllowGroups. : กำหนดให้ group ไหนเข้า การกำหนด แต่ละ Option ต้องเรียงตามลำดับจากดังนี้…

[CR] Starbucks Ham & Cheese Pulled Apart Bread

Ham & Cheese Pulled Apart Bread ราคา 95 บาท ขนมปังพูลอพาร์ทแฮมชีส ตอนแรกผมไปสั่งว่าขนมปังอพาร์ทเมนต์ พนักงานงงเลย 555 รสชาติ – ขนมปังกระเทียม สอดไส้แฮม + ชีสครับ ขนมปังคล้ายขนมปังกระเทียมครับ กรุบๆกรอบๆ หอมมากครับ ไส้แฮม + ชีส แอบคิดว่าน้อยไปครับ ส่วนตัวมองว่าราคาไม่คุ้มครับผม พลังงาน 260 แคลลอรี่ Reference (พลังงานของแต่ละเมนู) Calorie Chart, Nutrition Facts, Calories in Food | MyFitnessPal | MyFitnessPal.com

[DB2] เมื่อ DateTimeOffSet ของ C# ไม่สามารถจัดเก็บตรงๆได้ใน DB2

IBM DB2

พอดีได้เข้ามาชวยแก้ปัญหาของน้องในทีมครับ เนื่องจากไปเจอว่า Library ที่ตั้ง Schedule ของ C# มันต้องการ Parameter ที่เป็น DateTimeOffSet แต่ DataType นี้ มีนดันใช้งานได้กับ MS SQL Server เท่านั้นครับ กลับมาดูที่ DateTimeOffSet ดีกว่า มันเก็บอะไรบ้าง โดยแบ่งได้ 2 ส่วนครับ DateTime พวก วันที่ และเวลา หรือ ถ้ามองโดยทั่วไป คือ TIMESTAMP ครับ OffSet พวก TimeZone บอกโซนเวลา เช่น GMT +7 เป็นของ Bangkok ครับ พอรู้จัก DateTimeOffset แล้ว และนำ Code ชุดเดียวกันมาทดสอบใช้งานตัว Dapper มัน Error ขึ้นครับ เนื่องจากไม่สามารถ Mapping C# Data Type DateTimeOffSet กับ DB2 Data Type ได้ครับ พอลองไปศึกษา DB2 ตัว Data Type ที่เหมาะสม คือ TIMESTAMP แต่ปัญหา คือ ว่า เวอร์ชันที่ผมใช้งานอยู่ DB2 11.5.4 for Linux มีแต่ TIMESTAMP แต่ไม่มี TIME ZONE ถ้าใน DB2 ต้องดูจาก Keyword TIMESTAMP WITH TIME ZONE ซึ่งมีแล้วในเวอร์ชัน Db2® for z/OS คงอีกสักพักที่ทาง DB2…

[CR] Baseus Encok WM01

หลังจาก Blog ตอนก่อนได้ Review หูฟัง True Wireless ของ Nokia Power Earbuds ไปแล้ว ถึงแม้ว่าตัว Nokia Power Earbuds มีระยะเวลาใช้งานนาน เมื่อรวมกับเคสที่ชาร์จ แต่มีปัญหาหูฟัง True Wireless เป็นทุกยี่ห้อ ถ้าแบตเตอรี่ของหูฟังหมดต้องทำอย่างไร ? สำหรับผมวิธีแก้ก็ง่ายๆ เลยครับ หาหูฟัง True Wireless อีกอันมาใช้สลับกันครับ จึงเป็นที่มาของ Review Baseus Encok WM01 ครับ โดยผมได้จากโปร 4.4 ของ Lazada ครับ แต่จะมาลอง Review หลังใช้งานจริงๆแล้วประมาณ 1 เดือนครับ จะได้จดปัญหาด้วยว่าพอปัญหาอะไรบ้างครับ Review แกะกล่อง หูฟังแบบ In-Ear + จุกซิลิโคนขนาดกลาง / Bluetooth 5.0 / Noise Reduction (เดี๋ยวต้องมาลองดูกันครับ) ซิลิโคนเปลี่ยน 2 ชุด (ขนาดเล็ก + ใหญ่) เคสที่ชาร์จ สาย USB-C คู่มือการใช้งาน ราคา 239 บาทครับ (Promotion จาก Official Store ใน Lazada ครับ ปกติ 999 บาทครับ) การใช้งานมา 1 เดือน หูฟังแบบ In-Ear : หูฟัง เสียงดี เบสแอบดีกว่า Nokia Power Earbuds ระยะการทำงานจริงของหูฟัง น่าจะประมาณ 2-3 เมตร (ในเว็บจะใส่ว่า…

[CR] Kurobuta Sukiyaki Don Set (MO MO Paradise)

สำหรับโปรโมชั่นนี้ก็งงตอนสั่งชื่อครับ พอดีน้องที่ทำงานส่งโปรนี้มา พอไปที่หน้าสั่งอ้าวไม่มีโปรนี้ แต่ไปสั่งที่บุธที่พวก Grab/Lineman มารับมีโปรซะงั้น เมื่อมีโปรผมสั่งเลยครับ ขั้นตอนการสั่ง ไปที่ร้านบอกเมนู และโปรแถม ผมสั่ง Kurobuta Sukiyaki Don Set 200 บาท ถ้วยที่ 2 22 บาทครับ จากนั้นร้านจะถามชื่อ เบอร์โทร และแจ้งยอดเงินที่ต้องชำระครับ รอประมาณ 20-25 นาทีครับ เจ้าหน้าที่โทรเรียก และชำระเงิน 222 บาทครับ รีวิว Kurobuta Sukiyaki Don Set หลังจากหิ้วกลับมา 25 นาที เมื่อเปิดถุงดูพบว่ามี Kurobuta Sukiyaki Don Set 2 ถ้วย + ตะเกียบ 2 อัน และผ้าเย็น 2 ชิ้นครับ ลองแกะดูครับ ในถ้วยมีอะไรบ้าง เส้นสุกี้ หมูคุโรบูตะสไลด์ ที่ฉ้ำด้วยสุกี้น้ำด ต้นหอมญี่ปุ่น ข้าวญี่ปุ่น น้ำสุกี้ยากี้ญี่ปุ่น แบบขลุกคิก เมนู 1 ถ้วยอิ่มอร่อยครับ แต่ต้อวระวังด้วยครับ ถ้าทิ้งไว้ในข้าวจะเละ และเส้นสุกี้อืด มันจะแห้งๆไปปนิดนึงครับ แต่ผมแก้ปัญหาโดยเอาขาเขียวร้อนใส่ลงไปนิดนึงครับ เป็นข้าวราดน้ำชา (ochazuke หรือ chazuke) Reference ข้าวราดน้ำชา (ochazuke หรือ chazuke)

[JAVA] Json Path

เมื่อ XML มี XPath ตัว Json มี JsonPath เหมือนกัน โดยสำหรับ Java ต้องเพิ่ม Dependency ดังนี้ครับ

[CR] Starbucks Danish Cheese Spinach

Danish Cheese Spinach ราคา 95 บาท รสชาติ อร่อยมากครับ โดยเมนูนี้เป็นแป้งพายด้านในรองด้วยเบคอน และราดด้วยผักขมอมชีสสส หอมกรุ่น ควรทานแบบร้อนๆนะครับ ผักขมอบชีสดีมากกครับ ถ้าทานคู่กับซอสมะเขือเทศแล้วฟินไปอีกแบบครับ สุดท้ายและ Spinach = ผักปวยเล้ง แต่คนไทยเข้าใจผิดกันมาตลอดว่า แปลว่า ผักโขม น่าจะมาจากเรื่อง Popeye ครับ พลังงาน 290-310 แคลลอรี่ Reference (พลังงานของแต่ละเมนู) Calories in Danish spinach & cheese by Country Style Bistro Deli and Nutrition Facts | MyNetDiary.com Cheese Danish: Starbucks Coffee Company

[RHEL] non-root user เมื่อใช้คำสั่ง crontab เจอ Permission denied !!!

paper on white table

น้องในทีมที่ Implement Server อยู่ๆ เจอปัญหา พอใช้ User ที่ไม่มีสิทธิ root เข้าไปแก้ไข crontab พบว่าเจอ Error Permission denied ไม่ว่าจะเป็น crontab -e หรือ crontab -l ก็เจอปัญหาครับ ตอนนี้ต้องมาไล่ดูสาเหตุกันครับ ไล่ดูสาเหตุกันครับ ลองตรวจสอบ Permission ใน /var/spool/cron/ ด้วยคำสั่ง ls -al /var/spool/cron/ สิทธิของไฟล์ crontab ก็ถูกต้องตาม user นี่หว่า เคสนี้แสดงว่าสิทธิของไฟล์ crontab ไม่ได้ผิด แต่ต้องไปดูอีกจุดนึงครับ /usr/bin/crontab ที่เก็บตัว executable ของ crontab ครับ ด้วยคำสั่ง ll /usr/bin/crontab พอลองเอาสืทธิไปเทียบเครื่องอื่นพบว่า Setuid  หายไปครับ (SUID bit was removed from crontab) แก้ไขปัญหากันครับ สิทธิที่ถูกต้องของ /usr/bin/crontab ต้องเป็น 4755 ซึ่งสามารถแก้ไข โดยใช้คำสั่ง chmod 4755 /usr/bin/crontab ตรวจสอบผลลัพธ์ หลังแก้ไขสิทธิครับ จากนั้นทดสอบใช่ crontab -e และ crontab -l ด้วย non-root user ครับ