<ก่อนหน้านี้ | เนื้อหา | ถัดไป>
ใช้สิทธิ์ของเรา
ตอนนี้เราได้เรียนรู้แล้วว่าการอนุญาตนี้ทำงานอย่างไร ก็ถึงเวลาที่จะแสดงออกมา เราจะสาธิตวิธีแก้ไขปัญหาทั่วไป - ตั้งค่าไดเร็กทอรีที่ใช้ร่วมกัน สมมติว่าเรามีผู้ใช้สองคนชื่อ “บิล” และ “กะเหรี่ยง” พวกเขาทั้งคู่มีคอลเลคชันซีดีเพลงและต้องการตั้งค่าไดเร็กทอรีที่ใช้ร่วมกัน โดยที่แต่ละคนจะจัดเก็บไฟล์เพลงเป็น Ogg Vorbis หรือ MP3 ผู้ใช้ บิล มีสิทธิ์เข้าถึง superuser ผ่าน sudo.
สิ่งแรกที่ต้องเกิดขึ้นคือการสร้างกลุ่มที่จะมีทั้ง บิล และ ชาวกะเหรี่ยง ในฐานะสมาชิก การใช้เครื่องมือการจัดการผู้ใช้แบบกราฟิก บิล สร้างกลุ่มที่เรียกว่า เพลง และเพิ่มผู้ใช้ บิล และ ชาวกะเหรี่ยง ไปที่มัน:
รูปที่ 3: การสร้างกลุ่มใหม่ด้วย GNOME
ถัดไป บิล สร้างไดเร็กทอรีสำหรับไฟล์เพลง:
[บิล@linuxbox ~]$ sudo mkdir /usr/local/share/Music.php
รหัสผ่าน:
[บิล@linuxbox ~]$ sudo mkdir /usr/local/share/Music.php
รหัสผ่าน:
ตั้งแต่ บิล กำลังจัดการไฟล์นอกโฮมไดเร็กทอรีของเขา จำเป็นต้องใช้สิทธิ์ superuser หลังจากสร้างไดเร็กทอรีแล้ว ไดเร็กทอรีจะมีความเป็นเจ้าของและการอนุญาตดังต่อไปนี้:
[บิล@linuxbox ~]$ ls -ld /usr/local/share/Music
drwxr-xr-x 2 รูทราก 4096 2016-03-21 18:05 /usr/local/share/Music
[บิล@linuxbox ~]$ ls -ld /usr/local/share/Music
drwxr-xr-x 2 รูทราก 4096 2016-03-21 18:05 /usr/local/share/Music
อย่างที่เราเห็นไดเร็กทอรีเป็นของ ราก และมีสิทธิ์ 755 ในการทำให้ไดเร็กทอรีนี้สามารถแชร์ได้ บิล จำเป็นต้องเปลี่ยนความเป็นเจ้าของกลุ่มและการอนุญาตกลุ่มเพื่อให้สามารถเขียนได้:
[บิล@linuxbox ~]$ sudo chown :เพลง /usr/local/share/Music [บิล@linuxbox ~]$ sudo chmod 775 /usr/local/share/Music.php? [บิล@linuxbox ~]$ ls -ld /usr/local/share/Music
drwxrwxr-x 2 เพลงรูท 4096 2016-03-21 18:05 /usr/local/share/Music
[บิล@linuxbox ~]$ sudo chown :เพลง /usr/local/share/Music [บิล@linuxbox ~]$ sudo chmod 775 /usr/local/share/Music.php? [บิล@linuxbox ~]$ ls -ld /usr/local/share/Music
drwxrwxr-x 2 เพลงรูท 4096 2016-03-21 18:05 /usr/local/share/Music
ทั้งหมดนี้หมายความว่าอย่างไร หมายความว่าตอนนี้เรามีไดเร็กทอรี
/usr/local/share/Music ที่ root เป็นเจ้าของ และอนุญาตให้เข้าถึงการอ่านและเขียนเพลงกลุ่ม เพลงกลุ่มมีบิลสมาชิกและคาเรน ดังนั้น บิลและคาเรนสามารถสร้างไฟล์ในไดเร็กทอรี /usr/local/share/Music ผู้ใช้รายอื่นสามารถแสดงรายการเนื้อหาของไดเร็กทอรี แต่ไม่สามารถสร้างไฟล์ในไดเร็กทอรีได้
แต่เรายังคงมีปัญหา ด้วยการอนุญาตปัจจุบัน ไฟล์และไดเร็กทอรีที่สร้างภายในไดเร็กทอรีเพลงจะได้รับอนุญาตตามปกติจากผู้ใช้ บิล และ ชาวกะเหรี่ยง:
[บิล@linuxbox ~]$ > /usr/local/share/Music/test_file
[บิล@linuxbox ~]$ ls -l /usr/local/share/Music
-rw-r--r-- 1 บิล บิล 0 2016-03-24 20:03 test_file
[บิล@linuxbox ~]$ > /usr/local/share/Music/test_file
[บิล@linuxbox ~]$ ls -l /usr/local/share/Music
-rw-r--r-- 1 บิล บิล 0 2016-03-24 20:03 test_file
จริงๆแล้วมีสองปัญหา อันดับแรก ค่าเริ่มต้น อูมาสก์ ในระบบนี้คือ 0022 ซึ่งป้องกันไม่ให้สมาชิกกลุ่มเขียนไฟล์ที่เป็นของสมาชิกคนอื่นในกลุ่ม นี่ไม่ใช่ปัญหาหากไดเร็กทอรีที่แชร์มีเฉพาะไฟล์ แต่เนื่องจากไดเร็กทอรีนี้จะจัดเก็บเพลง และเพลงมักจะถูกจัดระเบียบในลำดับชั้นของศิลปินและอัลบั้ม สมาชิกของกลุ่มจะต้องมีความสามารถในการสร้างไฟล์ และไดเร็กทอรีภายในไดเร็กทอรีที่สร้างโดยสมาชิกคนอื่นๆ เราต้องเปลี่ยน อูมาสก์ ใช้โดย บิล และ ชาวกะเหรี่ยง ถึง 0002 แทน
ประการที่สอง แต่ละไฟล์และไดเร็กทอรีที่สร้างโดยสมาชิกหนึ่งรายจะถูกตั้งค่าเป็นกลุ่มหลักของผู้ใช้แทนที่จะเป็น group เพลง. ซึ่งสามารถแก้ไขได้โดยการตั้งค่าบิต setgid บนไดเร็กทอรี:
[บิล@linuxbox ~]$ sudo chmod g+s /usr/local/share/Music
[บิล@linuxbox ~]$ sudo chmod g+s /usr/local/share/Music
ใช้สิทธิ์ของเรา
[บิล@linuxbox ~]$ ls -ld /usr/local/share/Music
drwxrwsr-x 2 รูทเพลง 4096 2016-03-24 20:03 /usr/local/share/Music
[บิล@linuxbox ~]$ ls -ld /usr/local/share/Music
drwxrwsr-x 2 รูทเพลง 4096 2016-03-24 20:03 /usr/local/share/Music
ตอนนี้เราทดสอบเพื่อดูว่าการอนุญาตใหม่สามารถแก้ไขปัญหาได้หรือไม่ บิล ตั้งค่าของเขา อูมาสก์ ถึง 0002 ลบไฟล์ทดสอบก่อนหน้า และสร้างไฟล์ทดสอบและไดเร็กทอรีใหม่:
[บิล@linuxbox ~]$ อูมาสก์ 0002
[บิล@linuxbox ~]$ RM /usr/local/share/Music/test_file.rm [บิล@linuxbox ~]$ > /usr/local/share/Music/test_file [บิล@linuxbox ~]$ mkdir /usr/local/share/Music/test_dir [บิล@linuxbox ~]$ ls -l /usr/local/share/Music
drwxrwsr-x 2 บิลเพลง 4096 2016-03-24 20:24 test_dir
-rw-rw-r-- 1 เพลงในบิล 0 2016-03-24 20:22 test_file [bill@linuxbox ~]$
[บิล@linuxbox ~]$ อูมาสก์ 0002
[บิล@linuxbox ~]$ RM /usr/local/share/Music/test_file.rm [บิล@linuxbox ~]$ > /usr/local/share/Music/test_file [บิล@linuxbox ~]$ mkdir /usr/local/share/Music/test_dir [บิล@linuxbox ~]$ ls -l /usr/local/share/Music
drwxrwsr-x 2 บิลเพลง 4096 2016-03-24 20:24 test_dir
-rw-rw-r-- 1 เพลงในบิล 0 2016-03-24 20:22 test_file [bill@linuxbox ~]$
ตอนนี้ทั้งไฟล์และไดเร็กทอรีถูกสร้างขึ้นด้วยสิทธิ์ที่ถูกต้องเพื่อให้สมาชิกทั้งหมดของกลุ่ม เพลง เพื่อสร้างไฟล์และไดเร็กทอรีภายใน ดนตรี ไดเรกทอรี
เหลืออีกประเด็นหนึ่งคือ อูมาสก์. การตั้งค่าที่จำเป็นจะคงอยู่จนกว่าจะสิ้นสุดเซสชันและต้องรีเซ็ต ในบทที่ 11 เราจะมาดูการเปลี่ยนแปลงของ อูมาสก์ ถาวร.