Linux Admin - การจัดการไฟล์ / โฟลเดอร์

ในการแนะนำสิทธิ์เมื่อใช้กับทั้งไดเร็กทอรีและไฟล์ใน CentOS Linux ลองดูที่เอาต์พุตคำสั่งต่อไปนี้

[centos@centosLocal etc]$ ls -ld /etc/yum* 
drwxr-xr-x. 6 root root 100 Dec  5 06:59 /etc/yum 
-rw-r--r--. 1 root root 970 Nov 15 08:30 /etc/yum.conf 
drwxr-xr-x. 2 root root 187 Nov 15 08:30 /etc/yum.repos.d

Note - วัตถุหลักสามประเภทที่คุณจะเห็นคือ

  • "-" - เส้นประสำหรับไฟล์ธรรมดา

  • "d" - สำหรับไดเร็กทอรี

  • "l" - สำหรับลิงก์สัญลักษณ์

เราจะมุ่งเน้นไปที่สามบล็อกของเอาต์พุตสำหรับแต่ละไดเร็กทอรีและไฟล์ -

  • drwxr-xr-x: root: root
  • -rw-r - r--: root: root
  • drwxr-xr-x: root: root

ตอนนี้เรามาแยกย่อยเพื่อทำความเข้าใจบรรทัดเหล่านี้ให้ดีขึ้น -

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

เข้าใจความแตกต่างระหว่างเจ้าของ , กลุ่มและโลกเป็นสิ่งสำคัญ การไม่เข้าใจสิ่งนี้อาจส่งผลกระทบอย่างใหญ่หลวงต่อเซิร์ฟเวอร์ที่โฮสต์บริการไปยังอินเทอร์เน็ต

ก่อนที่เราจะให้เป็นตัวอย่างที่แท้จริงของโลกให้แรกเข้าใจสิทธิ์ที่พวกเขานำไปใช้กับไดเรกทอรีและไฟล์

โปรดดูตารางต่อไปนี้จากนั้นดำเนินการตามคำแนะนำต่อไป

ฐานแปด สัญลักษณ์ ดัด. ไดเรกทอรี
1 x ดำเนินการ เข้าสู่ไดเร็กทอรีและเข้าถึงไฟล์
2 เขียน ลบหรือแก้ไขไฟล์ในไดเร็กทอรี
4 อ่าน แสดงรายการไฟล์ภายในไดเร็กทอรี

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

การใช้สิทธิ์ในไดเรกทอรีและไฟล์

เมื่อใช้สิทธิ์มีสองแนวคิดที่ต้องทำความเข้าใจ -

  • สิทธิ์สัญลักษณ์
  • สิทธิ์ฐานแปด

โดยพื้นฐานแล้วแต่ละอย่างเหมือนกัน แต่เป็นวิธีที่แตกต่างกันในการอ้างถึงและกำหนดสิทธิ์ของไฟล์ สำหรับคำแนะนำโดยย่อโปรดศึกษาและอ้างอิงตารางต่อไปนี้ -

อ่าน เขียน ดำเนินการ
Octal 4 2 1
Symbolic x

เมื่อกำหนดสิทธิ์โดยใช้ไฟล์ octalวิธีใช้จำนวน 3 ไบต์เช่น 760 ตัวเลข 760 แปลเป็น: Owner: rwx; กลุ่ม: rw; อื่น ๆ (หรือโลก) ไม่มีสิทธิ์

สถานการณ์อื่น: 733 จะแปลเป็น: เจ้าของ: rwx; กลุ่ม: wx; อื่น ๆ : wx.

มีข้อเสียเปรียบประการหนึ่งในการอนุญาตโดยใช้วิธี Octal ไม่สามารถแก้ไขชุดสิทธิ์ที่มีอยู่ได้ เป็นไปได้ที่จะกำหนดชุดสิทธิ์ทั้งหมดของออบเจ็กต์ใหม่เท่านั้น

ตอนนี้คุณอาจสงสัยว่ามีอะไรผิดปกติกับการกำหนดสิทธิ์ใหม่เสมอ? ลองนึกภาพโครงสร้างไดเร็กทอรีขนาดใหญ่เช่น/ var / www /บนเว็บเซิร์ฟเวอร์ที่ใช้งานจริง เราต้องการลบwหรือเขียนบิตในไดเร็กทอรีทั้งหมดสำหรับ Other ดังนั้นการบังคับให้เพิ่มโปรแอคทีฟเฉพาะเมื่อจำเป็นสำหรับมาตรการรักษาความปลอดภัย หากเรากำหนดชุดสิทธิ์ใหม่ทั้งหมดเราจะลบการอนุญาตที่กำหนดเองอื่น ๆ ทั้งหมดที่กำหนดให้กับทุกไดเรกทอรีย่อย

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

ในกรณีนี้เราต้องการใช้วิธี Symbolic เพื่อแก้ไขการอนุญาต -

chmod -R o-w /var/www/

คำสั่งดังกล่าวจะไม่ "เขียนทับสิทธิ์" แต่จะแก้ไขชุดสิทธิ์ปัจจุบัน ดังนั้นจงคุ้นเคยกับการใช้แนวทางปฏิบัติที่ดีที่สุด

  • Octal เท่านั้นเพื่อกำหนดสิทธิ์
  • สัญลักษณ์เพื่อแก้ไขชุดสิทธิ์

เป็นสิ่งสำคัญที่ผู้ดูแลระบบ CentOS จะต้องมีความเชี่ยวชาญทั้งสิทธิ์OctalและSymbolicเนื่องจากสิทธิ์มีความสำคัญต่อความสมบูรณ์ของข้อมูลและระบบปฏิบัติการทั้งหมด หากสิทธิ์ไม่ถูกต้องผลลัพธ์จะเป็นทั้งข้อมูลที่ละเอียดอ่อนและระบบปฏิบัติการทั้งหมดจะถูกบุกรุก

เมื่อได้รับการกล่าวถึงแล้วเรามาดูคำสั่งบางส่วนสำหรับการแก้ไขสิทธิ์และเจ้าของวัตถุ / สมาชิก -

  • chmod
  • chown
  • chgrp
  • umask

chmod: เปลี่ยนบิตการอนุญาตโหมดไฟล์

คำสั่ง หนังบู๊
-ค เช่นเดียวกับ verbose แต่จะรายงานเฉพาะการเปลี่ยนแปลงที่เกิดขึ้น
-v Verbose ผลลัพธ์การวินิจฉัยสำหรับทุกคำขอที่ทำ
- ร ใช้การดำเนินการกับไฟล์และไดเร็กทอรีซ้ำ ๆ

chmod จะอนุญาตให้เราเปลี่ยนสิทธิ์ของไดเร็กทอรีและไฟล์โดยใช้ชุดสิทธิ์ฐานแปดหรือสัญลักษณ์ เราจะใช้สิ่งนี้เพื่อแก้ไขการมอบหมายและอัปโหลดไดเรกทอรีของเรา

chown: เปลี่ยนเจ้าของไฟล์และกลุ่ม

คำสั่ง หนังบู๊
-ค เช่นเดียวกับ verbose แต่จะรายงานเฉพาะการเปลี่ยนแปลงที่เกิดขึ้น
-v Verbose ผลลัพธ์การวินิจฉัยสำหรับทุกคำขอที่ทำ
- ร ใช้การดำเนินการกับไฟล์และไดเร็กทอรีซ้ำ ๆ

chownสามารถปรับเปลี่ยนทั้งการเป็นเจ้าของผู้ใช้และกลุ่มของวัตถุ อย่างไรก็ตามหากไม่จำเป็นต้องแก้ไขทั้งสองอย่างในเวลาเดียวกันการใช้chgrpมักจะใช้สำหรับกลุ่ม

chgrp: เปลี่ยนการเป็นเจ้าของกลุ่มของไฟล์หรือไดเรกทอรี

คำสั่ง หนังบู๊
-ค เช่นเดียวกับ verbose แต่จะรายงานเฉพาะการเปลี่ยนแปลง
-v Verbose แสดงผลการวินิจฉัยสำหรับทุกคำขอที่ทำ
- ร เรียกใช้การดำเนินการกับไฟล์และไดเร็กทอรีซ้ำ ๆ

chgrp จะเปลี่ยนเจ้าของกลุ่มเป็นที่ให้มา

การปฏิบัติจริงในโลก

มาเปลี่ยนการกำหนดไดเรกทอรีย่อยทั้งหมดใน/ var / www / students /ดังนั้นกลุ่มที่เป็นเจ้าของคือกลุ่มนักเรียน จากนั้นกำหนดรูทของนักเรียนให้กับกลุ่มอาจารย์ ต่อมาตั้งให้ดร. เทอร์รีโธมัสเป็นเจ้าของสมุดรายชื่อนักเรียนเนื่องจากเขาได้รับมอบหมายให้ดูแลสถาบันวิทยาการคอมพิวเตอร์ทั้งหมดในโรงเรียน

อย่างที่เราเห็นเมื่อสร้างไดเร็กทอรีจะค่อนข้างดิบ

[root@centosLocal ~]# ls -ld /var/www/students/ 
drwxr-xr-x. 4 root root 40 Jan  9 22:03 /var/www/students/

[root@centosLocal ~]# ls -l /var/www/students/ 
total 0 
drwxr-xr-x. 2 root root 6 Jan  9 22:03 assignments 
drwxr-xr-x. 2 root root 6 Jan  9 22:03 uploads 

[root@centosLocal ~]#

ในฐานะผู้ดูแลระบบเราไม่ต้องการให้ข้อมูลรับรองรูทของเรากับใคร แต่ในขณะเดียวกันเราต้องให้ผู้ใช้สามารถทำงานของตนได้ ดังนั้นให้ดร. เทอร์รี่โทมัสควบคุมโครงสร้างไฟล์และ จำกัด สิ่งที่นักเรียนทำได้

[root@centosLocal ~]# chown -R drterryt:professors /var/www/students/ 
[root@centosLocal ~]# ls -ld /var/www/students/ 
drwxr-xr-x. 4 drterryt professors 40 Jan  9 22:03 /var/www/students/

[root@centosLocal ~]# ls -ls /var/www/students/ 
total 0 
0 drwxr-xr-x. 2 drterryt professors 6 Jan  9 22:03 assignments 
0 drwxr-xr-x. 2 drterryt professors 6 Jan  9 22:03 uploads

[root@centosLocal ~]#

ตอนนี้แต่ละไดเรกทอรีและไดเรกทอรีย่อยมีเจ้าของdrterrytและกลุ่มที่เป็นเจ้าของเป็นอาจารย์ เนื่องจากไดเร็กทอรีงานมีไว้สำหรับนักเรียนในการส่งงานที่ได้รับมอบหมายเราจึงนำความสามารถในการแสดงรายการและแก้ไขไฟล์ออกจากกลุ่มนักเรียน

[root@centosLocal ~]# chgrp students /var/www/students/assignments/ && chmod 
736 /var/www/students/assignments/

[root@centosLocal assignments]# ls -ld /var/www/students/assignments/ 
drwx-wxrw-. 2 drterryt students 44 Jan  9 23:14 /var/www/students/assignments/

[root@centosLocal assignments]#

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

ในฐานะเจ้าของไดเร็กทอรีการมอบหมาย -

[drterryt@centosLocal assignments]$ whoami 
drterryt

[drterryt@centosLocal assignments]$ ls -ld /var/www/students/assignment 
drwx-wxrw-. 2 drterryt students 44 Jan  9 23:14 /var/www/students/assignments/

[drterryt@centosLocal assignments]$ ls -l /var/www/students/assignments/ 
total 4 
-rw-r--r--. 1 adama  students  0 Jan  9 23:14 myassign.txt 
-rw-r--r--. 1 tammyr students 16 Jan  9 23:18 terryt.txt

[drterryt@centosLocal assignments]$

เราจะเห็นว่าเจ้าของไดเร็กทอรีสามารถแสดงรายการไฟล์ตลอดจนแก้ไขและลบไฟล์ได้

คำสั่ง umask: จัดหาโหมดเริ่มต้นสำหรับไฟล์และสิทธิ์ไดเร็กทอรีตามที่สร้างขึ้น

umaskเป็นคำสั่งสำคัญที่จัดเตรียมโหมดเริ่มต้นสำหรับไฟล์และสิทธิ์ไดเรกทอรีเมื่อสร้างขึ้น

การอนุญาตumaskใช้ตรรกะที่เป็นลบ

สิทธิ์ การดำเนินการ
0 อ่านเขียนดำเนินการ
1 อ่านและเขียน
2 อ่านและดำเนินการ
3 อ่านเท่านั้น
4 อ่านและดำเนินการ
5 เขียนอย่างเดียว
6 ดำเนินการเท่านั้น
7 ไม่มีสิทธิ์
[adama@centosLocal umask_tests]$ ls -l ./ 
-rw-r--r--. 1 adama students 0 Jan 10 00:27 myDir 
-rw-r--r--. 1 adama students 0 Jan 10 00:27 myFile.txt

[adama@centosLocal umask_tests]$ whoami 
adama

[adama@centosLocal umask_tests]$ umask 
0022

[adama@centosLocal umask_tests]$

ตอนนี้เรามาเปลี่ยนumaskสำหรับผู้ใช้ปัจจุบันของเราและสร้างไฟล์และไดเร็กทอรีใหม่

[adama@centosLocal umask_tests]$ umask 077

[adama@centosLocal umask_tests]$ touch mynewfile.txt

[adama@centosLocal umask_tests]$ mkdir myNewDir

[adama@centosLocal umask_tests]$ ls -l 
total 0 
-rw-r--r--. 1 adama students 0 Jan 10 00:27 myDir 
-rw-r--r--. 1 adama students 0 Jan 10 00:27 myFile.txt 
drwx------. 2 adama students 6 Jan 10 00:35 myNewDir 
-rw-------. 1 adama students 0 Jan 10 00:35 mynewfile.txt

อย่างที่เราเห็นไฟล์ที่สร้างขึ้นใหม่มีข้อ จำกัด มากกว่าเดิมเล็กน้อย

ควรเปลี่ยนumaskสำหรับผู้ใช้อย่างใดอย่างหนึ่ง -

  • /etc/profile
  • ~/bashrc
[root@centosLocal centos]# su adama 
[adama@centosLocal centos]$ umask 
0022 
[adama@centosLocal centos]$

โดยทั่วไปumaskเริ่มต้นใน CentOS จะไม่เป็นไร เมื่อเราประสบปัญหากับค่าเริ่มต้น0022มักจะเป็นเมื่อแผนกต่างๆที่อยู่ในกลุ่มต่างๆจำเป็นต้องทำงานร่วมกันในโครงการ

นี่คือที่มาของบทบาทของผู้ดูแลระบบเพื่อสร้างสมดุลระหว่างการดำเนินงานและการออกแบบระบบปฏิบัติการ CentOS