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