- ความแตกต่างทางเทคนิคระหว่างการแก้ไขสิทธิ์การเข้าถึงโดยใช้คำสั่ง chmod และการเปลี่ยนความเป็นเจ้าของทรัพยากรโดยใช้คำสั่ง chown
- ระบบแสดงสิทธิ์โดยใช้เลขฐานแปดและสัญลักษณ์ สำหรับผู้ใช้ กลุ่ม และบุคคลอื่นๆ
- การนำกลยุทธ์ด้านความปลอดภัยที่ยึดหลักการให้สิทธิ์ขั้นต่ำที่สุดมาใช้เพื่อป้องกันช่องโหว่ในเซิร์ฟเวอร์
หากคุณเคยลองจัดการเซิร์ฟเวอร์ VPS หรือเครื่องเฉพาะของคุณเอง คุณจะรู้ว่า Linux เป็นระบบที่ออกแบบมาเพื่อการเชื่อมต่อเครือข่ายโดยเฉพาะ นั่นเป็นเหตุผลที่ความปลอดภัยมีความสำคัญอย่างยิ่งเพราะการควบคุมว่าใครสามารถอ่าน แก้ไข หรือเรียกใช้ไฟล์ได้นั้น เป็นสิ่งที่ป้องกันไม่ให้ข้อมูลของคุณตกไปอยู่ในมือผู้ไม่หวังดี หรือป้องกันไม่ให้กระบวนการที่เป็นอันตรายทำให้ระบบล่มทั้งหมด
เพื่อให้สามารถใช้งานในสภาพแวดล้อมนี้ได้อย่างราบรื่น การรู้เพียงแค่การเรียกใช้คำสั่งนั้นไม่เพียงพอ คุณต้องเข้าใจตรรกะเบื้องหลังการเป็นเจ้าของไฟล์ ในลินุกซ์ทรัพยากรทุกอย่างเป็นของทั้งผู้ใช้และกลุ่มและนี่คือจุดที่เครื่องมือสำหรับการปรับสิทธิ์เหล่านี้เข้ามามีบทบาท ช่วยให้เราสามารถรักษาความปลอดภัยของระบบได้โดยไม่ขัดขวางการทำงานของแอปพลิเคชันของเรา
ทำความเข้าใจโครงสร้างของใบอนุญาต
เมื่อคุณเริ่มคำสั่ง ls -l ในเทอร์มินัล คุณจะเห็นชุดตัวอักษรที่ดูเหมือนรหัสลับ อะไรทำนองนี้ -rwxr-xr--ไม่ต้องกังวลไป มันง่ายกว่าที่คิด ตัวละครตัวแรกจะบอกเราเอง วัตถุที่อยู่ตรงหน้าเราเป็นธาตุประเภทใด?เครื่องหมายขีดกลาง (-) แสดงถึงไฟล์ปกติ เครื่องหมาย 'd' แสดงถึงโฟลเดอร์ (ไดเร็กทอรี) และเครื่องหมาย 'l' แสดงถึงลิงก์สัญลักษณ์ นอกจากนี้ยังมีอักขระที่พบได้น้อยกว่า เช่น 's' สำหรับซ็อกเก็ต หรือ 'p' สำหรับไปป์
อักขระทั้งเก้าตัวต่อไปนี้ถูกแบ่งออกเป็นสามชุด ชุดละสามตัวเท่าๆ กัน ชุดแรกสำหรับเจ้าของไฟล์ (ผู้ที่สร้างไฟล์) ชุดที่สองสำหรับกลุ่มเจ้าของ ไฟล์ และชุดที่สามสำหรับผู้ใช้คนอื่นๆ ทั้งหมดในระบบ แต่ละชุดอักขระสามตัวสามารถประกอบด้วยตัวอักษร 'r' (อ่าน) 'w' (เขียน) และ 'x' (เรียกใช้งาน) หรือเครื่องหมายขีดกลางหากไม่ได้รับอนุญาต
ใบอนุญาตแต่ละประเภทมีความหมายอย่างไรบ้าง?
- การอ่าน (r): ในกรณีของไฟล์ หมายความว่าคุณสามารถเปิดไฟล์นั้นและดูเนื้อหาภายในได้ ส่วนในกรณีของโฟลเดอร์ หมายความว่าคุณสามารถ... แสดงรายการไฟล์และโฟลเดอร์ย่อย มี
- การเขียน (w): มันช่วยให้คุณสามารถแก้ไขเนื้อหาของไฟล์หรือแม้แต่ลบไฟล์ได้ ในกรณีของไดเร็กทอรี มันช่วยให้คุณสามารถ... สร้าง ลบ หรือเปลี่ยนชื่อ องค์ประกอบต่างๆ ภายในนั้น
- การดำเนินการ (x): สำหรับไฟล์ สิทธิ์การเข้าถึงคือสิ่งที่อนุญาตให้สคริปต์หรือโปรแกรมทำงานได้ สำหรับโฟลเดอร์ สิทธิ์การเข้าถึงนี้มีความสำคัญอย่างยิ่ง เพราะเป็นสิ่งที่อนุญาตให้คุณ... เข้าถึงไดเร็กทอรี โดยใช้คำสั่ง
cd.
คำสั่ง chmod: การปรับสิทธิ์การเข้าถึง
คำสั่ง chmod (โหมดเปลี่ยน) คือเครื่องมือของเราสำหรับแก้ไขสิทธิ์เหล่านี้ มีสองวิธีในการใช้งาน: แบบสัญลักษณ์ ซึ่งใช้งานง่ายกว่า และแบบเลขฐานแปด ซึ่งผู้ดูแลระบบนิยมใช้มากกว่าเพราะเร็วกว่า
ใน โหมดเชิงสัญลักษณ์เราใช้ตัวอักษรเพื่อระบุว่าการเปลี่ยนแปลงนั้นส่งผลกระทบต่อใคร (u สำหรับผู้ใช้, g สำหรับกลุ่ม, o สำหรับบุคคลอื่น, a สำหรับทุกคน) และสัญลักษณ์ เช่น '+' เพื่อเพิ่มสิทธิ์ หรือ '-' เพื่อลบสิทธิ์ ตัวอย่างเช่น หากคุณต้องการให้กลุ่มสามารถเขียนไฟล์ได้ คุณจะใช้ chmod g+w archivo.txtนี่เป็นวิธีการที่ยืดหยุ่นมาก ปรับสิทธิ์การเข้าถึงตามความจำเป็น โดยไม่ต้องเปลี่ยนแปลงการตั้งค่าส่วนอื่น ๆ
El โหมดแปด ระบบนี้ใช้ตัวเลขตามระบบเลขฐานสอง สิทธิ์แต่ละอย่างจะมีค่า: อ่านคือ 4, เขียนคือ 2, และเรียกใช้งานคือ 1 การบวกค่าเหล่านี้จะได้ตัวเลขตั้งแต่ 0 ถึง 7 ตัวอย่างเช่น ค่า 7 (4+2+1) หมายถึงสิทธิ์การเข้าถึงเต็มรูปแบบ ในขณะที่ค่า 5 (4+0+1) หมายถึงสิทธิ์ในการอ่านและเรียกใช้งาน ดังนั้น คำสั่งเช่น chmod 755 carpeta ทุน เจ้าของมีอำนาจควบคุมอย่างสมบูรณ์ และให้สิทธิ์การเข้าถึงแบบอ่าน/เรียกใช้งานได้เฉพาะกับกลุ่มและบุคคลอื่น ๆ เท่านั้น
การจัดการทรัพย์สินด้วยคำสั่ง chown และ chgrp
บางครั้ง แม้ว่าสิทธิ์การเข้าถึงจะถูกต้องแล้ว ไฟล์ก็อาจใช้งานไม่ได้เพราะเจ้าของไม่ใช่บุคคลที่ถูกต้อง นั่นคือเหตุผลที่ต้องใช้ [เครื่องมือ/แอปพลิเคชันที่เหมาะสม] chown (เปลี่ยนเจ้าของ) คำสั่งนี้อนุญาตให้ เปลี่ยนผู้ใช้และกลุ่ม ใครเป็นผู้ครอบครองไฟล์นั้น ไวยากรณ์ที่ใช้กันทั่วไปคือ chown usuario:grupo archivo.
เป็นเรื่องปกติมากบนเว็บเซิร์ฟเวอร์ที่ไฟล์ต่างๆ จะเป็นของบัญชีผู้ใช้เซิร์ฟเวอร์ (เช่น www-data ใน Apache หรือ Nginx) เพื่อให้เว็บไซต์สามารถเขียนข้อมูลลงในโฟลเดอร์ที่กำหนดได้ หากคุณต้องการใช้การเปลี่ยนแปลงนี้กับโฟลเดอร์และทุกอย่างภายในนั้น คุณต้องใช้ ตัวเลือกแบบเรียกซ้ำ -Rตัวอย่างเช่น การวิ่ง chown -R www-data:www-data /var/www/html.
การจัดการผู้ใช้และกลุ่มในระบบ
เพื่อให้ทุกอย่างที่กล่าวมาข้างต้นมีความหมาย เราต้องจัดการก่อนว่าผู้ใช้เหล่านั้นคือใคร ใน Linux คำสั่งต่างๆ เช่น useradd o adduser เพื่อสร้างบัญชี และ passwd เพื่อกำหนดรหัสให้กับพวกมัน ข้อมูลทั้งหมดนี้ถูกจัดเก็บไว้ในไฟล์สำคัญ เช่น / etc / passwd (รายละเอียดบัญชี) และ / etc / shadow (รหัสผ่านที่เข้ารหัส)
การจัดกลุ่มมีความสำคัญอย่างยิ่งเพื่อหลีกเลี่ยงการกำหนดสิทธิ์ทีละรายการ groupadd เราสร้างกลุ่มขึ้นมา และด้วย usermod -aG เราเพิ่มผู้ใช้เข้าไปในระบบ ด้วยวิธีนี้ เราจึงสามารถมอบสิ่งต่างๆ ให้ได้ ใบอนุญาตรวมสำหรับทีมงาน ในโฟลเดอร์ที่ระบุโดยไม่กระทบต่อความปลอดภัยของระบบส่วนที่เหลือ
เหงื่อและสิทธิพิเศษที่เหนือกว่า
ไม่แนะนำให้ทำงานในฐานะผู้ใช้ root เสมอไป เนื่องจากความผิดพลาดอาจทำให้ระบบทั้งหมดถูกลบได้ ดังนั้นเราจึงใช้... sudoซึ่งทำให้เราสามารถเรียกใช้คำสั่งด้วยสิทธิ์ผู้ใช้ระดับสูงสุดได้ การกำหนดค่าว่าใครสามารถทำอะไรได้บ้างนั้น อยู่ในไฟล์ / etc / sudoersซึ่งจะต้องแก้ไขด้วยคำสั่งเสมอ visudo สำหรับ การแก้ไขปัญหาข้อผิดพลาดของคำสั่ง sudo ใน Linux และหลีกเลี่ยงข้อผิดพลาดทางไวยากรณ์ที่จะทำให้เราไม่ผ่านระบบ
ความปลอดภัยและแนวปฏิบัติที่ดีที่สุดบนเซิร์ฟเวอร์
ข้อผิดพลาดทั่วไปที่ผู้เริ่มต้นหลายคนมักทำคือ การกำหนดสิทธิ์ 777 ให้กับโฟลเดอร์เมื่อบางอย่างใช้งานไม่ได้ การทำเช่นนี้เป็นการเปิดช่องโหว่ให้ผู้โจมตีได้ง่าย โดยหลักการแล้ว คุณควรยึดหลักการให้สิทธิ์ขั้นต่ำที่สุด : ให้สิทธิ์เฉพาะการเข้าถึงขั้นต่ำที่จำเป็นต่อการทำงานให้เสร็จสมบูรณ์เท่านั้น
โดยทั่วไปแล้วไฟล์ควรมีสิทธิ์การเข้าถึงเป็น 644 (เจ้าของไฟล์สามารถเขียนได้ ส่วนคนอื่นอ่านได้เท่านั้น) และโฟลเดอร์ควรมีสิทธิ์การเข้าถึงเป็น 755สำหรับไฟล์ที่มีความสำคัญสูงมาก เช่น คีย์ SSH หรือไฟล์การตั้งค่าที่ป้องกันด้วยรหัสผ่าน (.env) สิทธิ์การเข้าถึง 600 เป็นการตั้งค่าที่ถูกต้อง เพื่อให้แน่ใจว่าไม่มีใครนอกจากเจ้าของไฟล์เท่านั้นที่จะสามารถอ่านเนื้อหาได้
หากคุณพบข้อผิดพลาด 403 Forbidden บนเว็บไซต์ของคุณ สาเหตุส่วนใหญ่มักเกิดจากปัญหาเรื่องกรรมสิทธิ์หรือสิทธิ์ในการเข้าถึง ก่อนที่จะทำการเปลี่ยนแปลงใดๆ โปรดตรวจสอบให้แน่ใจว่าเว็บเซิร์ฟเวอร์เป็นเจ้าของไฟล์เหล่านั้น และไดเร็กทอรีเหล่านั้นมีสิทธิ์ในการเรียกใช้งาน (execute bit) เพื่ออนุญาตการเข้าถึง
การจัดการผู้ใช้ กลุ่ม และสิทธิ์การเข้าถึงอย่างถูกต้องโดยใช้เครื่องมืออย่าง chmod และ chown เป็นด่านแรกในการป้องกันเซิร์ฟเวอร์ Linux ทุกเครื่อง ตั้งแต่การใช้มาสก์ umask เพื่อกำหนดสิทธิ์การเข้าถึงเริ่มต้น ไปจนถึงการจัดการไดเร็กทอรีแบบเรียกซ้ำและการควบคุมผู้ใช้ sudo อย่างเข้มงวด การปรับแต่งทุกอย่างล้วนมีส่วนช่วยสร้างสภาพแวดล้อมที่เสถียรและทนทานต่อการบุกรุกที่อาจเกิดขึ้น ทำให้มั่นใจได้ว่ากระบวนการของระบบและผู้ใช้สามารถทำงานร่วมกันได้โดยไม่กระทบต่อความสมบูรณ์ของข้อมูล
นักเขียนผู้หลงใหลเกี่ยวกับโลกแห่งไบต์และเทคโนโลยีโดยทั่วไป ฉันชอบแบ่งปันความรู้ผ่านการเขียน และนั่นคือสิ่งที่ฉันจะทำในบล็อกนี้ เพื่อแสดงให้คุณเห็นสิ่งที่น่าสนใจที่สุดเกี่ยวกับอุปกรณ์ ซอฟต์แวร์ ฮาร์ดแวร์ แนวโน้มทางเทคโนโลยี และอื่นๆ เป้าหมายของฉันคือการช่วยคุณนำทางโลกดิจิทัลด้วยวิธีที่เรียบง่ายและสนุกสนาน




