Learning AtlasIT Support → Cybersecurity
คลังบทอ่าน14.2 / สคริปต์และงานดูแลระบบอัตโนมัติบทถัดไป
สารบัญบทอ่าน / Shell and Administration Automation / 14.2
04 · เขียนโค้ดและนำระบบไปใช้ · บท 14.2

Scripting Landscape

ภาพรวมภาษาสคริปต์

เลือกภาษาให้เหมาะกับงานและระบบที่ทีมต้องดูแล แล้วจำกัดขอบเขตการรัน

3 หัวข้อคำอธิบายในหน้านี้ภาพอธิบายและกลไกทีละส่วน
หัวข้อในบทนี้
ศัพท์ในบทนี้ · กดคำที่ขีดเส้นใต้ในเนื้อหาเพื่อดูความหมายได้ด้วย
API
ข้อตกลงวิธีที่โปรแกรมเรียกความสามารถหรือข้อมูลของอีกโปรแกรม
JSON
รูปแบบข้อความของ object array และค่าพื้นฐาน
DOM
โครงสร้างเอกสารใน browser ที่โปรแกรมเข้าถึงได้
จากหลักการไปถึงกลไก

ภาษาแต่ละตัวมีระบบรันและสิทธิ์ต่างกัน

PowerShell Bash Python Batch VBScript และ JavaScript เป็นทางเลือกที่มี ecosystem และกติกาต่างกัน JavaScript ใน browser อยู่ในบริบทเว็บ ส่วน runtime ฝั่ง server มีความสามารถอีกแบบ ไม่ควรนำคำสั่งไปผสมโดยคิดว่าไฟล์นามสกุลหนึ่งทำงานได้ในทุกที่

เปรียบเทียบความหมาย · ไม่ใช่ลำดับเวลาภาษาแต่ละตัวมีระบบรันและสิทธิ์ต่างกัน
  1. PowerShell

    เหมาะกับงาน objects และระบบที่มี cmdlets หรือ modules รองรับ

  2. Bash / Batch

    เชื่อมคำสั่งของระบบ แต่ quotes expansion และ error behavior ต่างกัน

  3. Python

    โครงข้อมูล parser libraries และ APIs ต้องมี runtime กับ dependencies

  4. JavaScript / VBScript

    ดู host และข้อจำกัดที่ใช้งาน JavaScript ฝั่ง browser ไม่เหมือน Node.js VBScript ต้องดูการรองรับของระบบ

  5. Execution context

    สคริปต์ใช้สิทธิ์และ environment ของตัวที่รัน ไม่ใช่สิทธิ์ของคนเขียนเสมอ

เริ่มจากงานเล็กที่อ่าน input และแสดงผลก่อนเพิ่มงานเปลี่ยนระบบ การจำกัดขอบเขต target และดูผลก่อนเปลี่ยนช่วยลดความผิดพลาด การเซ็นหรือ execution policy บางแบบช่วยตามเงื่อนไขของระบบ แต่ไม่แทนการตรวจว่าตัวสคริปต์ทำอะไรและได้รับสิทธิ์เท่าใด

01 / 03

ภาษาสำหรับงานดูแลระบบPowerShell, Bash and Python · 14.2.1

PowerShell เหมาะกับงานที่ใช้เครื่องมือระบบ Windows Bash เชื่อม CLI Python ประมวลข้อมูลและบริการ

เลือกภาษาให้ตรงระบบและงาน PowerShell เด่นเรื่อง Windows object และการบริหาร Bash เหมาะกับประสานเครื่องมือบนระบบ Unix Python เหมาะกับ parsing และ logic ที่ซับซ้อน ไม่มีตัวใดเหมาะที่สุดทุกงาน

เทียบหน้าที่เพื่อไม่สับสน
•Platform

ระบบที่ต้องจัดการ

•Data shape

ข้อความ object หรือ structured data

•Maintenance

คนและเครื่องมือที่ดูแลต่อ

งาน registry หรือ service Windows อาจสั้นใน PowerShell งานส่งหลาย command Linux อาจใช้ Bash ส่วนรวบหลาย แปลง เป็น report อาจใช้ Python ดูทีมที่ต้องบำรุงต่อด้วย

ที่มาของหัวข้อนี้ · 3 รายการ

คำอธิบายและภาพในหน้านี้เรียบเรียงใหม่ ชื่อบทต้นทางด้านล่างใช้ตรวจที่มา ไม่ได้แทนเนื้อหาที่คุณต้องไปอ่านเพิ่มเพื่อเข้าใจหน้านี้ และไม่ยืนยันว่าทุกประโยคมีอยู่ในคอร์ส

02 / 03

สคริปต์ที่อาจพบในระบบเดิมBatch, VBScript and JavaScript · 14.2.2

Batch VBScript และ JavaScript อาจอยู่ในงานเดิม ต้องรู้ runtime และข้อจำกัดก่อนเปลี่ยน

Batch และ VBScript พบในระบบหรือ automation เดิม ส่วน JavaScript ใช้ทั้ง browser และ runtime อื่น ต้องแยก runtime ก่อนดู syntax เรียนเพิ่มตามระบบที่รับผิดชอบแทนสะสมภาษาโดยไม่มีงาน

เทียบหน้าที่เพื่อไม่สับสน
•Language

ไวยากรณ์ที่เขียน

•Runtime

สิ่งที่รันและ API ที่มี

•Compatibility

พฤติกรรมของระบบเดิม

ไฟล์ .js ที่ใช้ document ต้องรันในบริบทเว็บ ส่วน Node.js ไม่มี ให้เอง สคริปต์ legacy ต้องดู dependency และสิทธิ์ก่อนย้ายภาษา เพราะผลลัพธ์เหมือนกันยังอาจมีพฤติกรรมต่างกัน

ที่มาของหัวข้อนี้ · 1 รายการ

คำอธิบายและภาพในหน้านี้เรียบเรียงใหม่ ชื่อบทต้นทางด้านล่างใช้ตรวจที่มา ไม่ได้แทนเนื้อหาที่คุณต้องไปอ่านเพิ่มเพื่อเข้าใจหน้านี้ และไม่ยืนยันว่าทุกประโยคมีอยู่ในคอร์ส

03 / 03

สิทธิ์และการรันสคริปต์อย่างรอบคอบScript Permissions and Safe Execution · 14.2.3

ตรวจสิทธิ์ เป้าหมาย และผลที่จะเปลี่ยน ใช้โหมดแสดงแผนก่อนเขียนเมื่อออกแบบได้

Script ทำอะไรได้ตามสิทธิ์ของผู้รัน ไม่ตามความสั้นของไฟล์ ตรวจต้นทาง scope input และผลข้างเคียงก่อนใช้ Execution policy ของ PowerShell ช่วยควบคุมรูปแบบการรันบางอย่างแต่ไม่ใช่ security boundary ที่แทน permission

เทียบหน้าที่เพื่อไม่สับสน
•Origin / review

รู้ที่มาและพฤติกรรม

•Least privilege

สิทธิ์เท่าที่งานใช้

•Safe scope

เป้าหมายที่ตรวจและยืนยันได้

โค้ดลบไฟล์ต้องยืนยัน absolute target และมี preview ที่เชื่อถือได้ก่อนเขียน งานอ่าน log ไม่ควรต้อง admin อย่าปิดการปกป้องทั้งเครื่องเพื่อให้ script หนึ่งรันได้โดยยังไม่รู้ว่าติดเงื่อนไขอะไร

ที่มาของหัวข้อนี้ · 1 รายการ

คำอธิบายและภาพในหน้านี้เรียบเรียงใหม่ ชื่อบทต้นทางด้านล่างใช้ตรวจที่มา ไม่ได้แทนเนื้อหาที่คุณต้องไปอ่านเพิ่มเพื่อเข้าใจหน้านี้ และไม่ยืนยันว่าทุกประโยคมีอยู่ในคอร์ส

เชื่อมความเข้าใจ

นำศัพท์มาเชื่อมกับงาน

ตัวอย่างให้เห็นภาพ

สคริปต์ลบ log ควรระบุโฟลเดอร์และอายุไฟล์ชัดเจน ไม่ไล่ลบจากตำแหน่งปัจจุบันโดยเดา

สิ่งที่บทนี้เชื่อมไว้

เลือกภาษาให้เหมาะกับงานและระบบที่ทีมต้องดูแล แล้วจำกัดขอบเขตการรัน

ใช้ภาพกับตัวอย่างด้านบนเชื่อมหน้าที่ของแต่ละส่วน แล้วตรวจความเข้าใจด้วยการอธิบายเหตุผลของผลที่เห็น ก่อนเปิดบทถัดไป

บันทึกในเบราว์เซอร์นี้
บทเรียนที่เกี่ยวข้องและที่มาของบทอ่าน

คำอธิบายหน้านี้เขียนใหม่ตามหัวข้อใน Atlas รายการด้านล่างเป็นชื่อ Video/Reading ที่เคยจับคู่ไว้ แสดงไว้ให้ตรวจที่มาของชื่อหัวข้อ และไม่รับรองว่าคอร์สสอนทุกส่วนของคำอธิบายนี้

Python · Tutorial ↗