ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน


เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

LogoThai.COM  |  สารสนเทศน่ารู้ ตลาดสด บันเทิงกระจาย  |  ตลาดเศรษฐี (ผู้ดูแล: LesCop)  |  ใช้คำสั่ง Php สร้างโฟลเดอร์ให้ได้ Permission ตามต้องการ
LOGOthai.com

คลิกที่นี่ -->> เปรียบเทียบทำเลและราคาที่ดินวังน้ำเขียวผ่าน GooleMAP | คลิกที่นี้ -->> Upload ภาพ

หน้า: [1]   ลงล่าง
  พิมพ์  
ผู้เขียน หัวข้อ: ใช้คำสั่ง Php สร้างโฟลเดอร์ให้ได้ Permission ตามต้องการ  (อ่าน 8739 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
LesCop
แหลม+คม=หอก
Administrator
เศรษฐีพันล้าน
*

พลังน้ำใจ 575
ออฟไลน์ ออฟไลน์

เพศ: ชาย
กระทู้: 450


ขอหยุดที่86เอย


ดูรายละเอียด
« เมื่อ: 25 มกราคม 2556 08:05:26 »

อ้างถึง
mkdir (folder, 0777);
//อันนี้สร้าง folder ได้แต่กำหนด permission เป็น 777 ไม่ได้
//เลยเปลี่ยนมาเป็นแบบนี้ครับ

mkdir (folder);
chmod (folder, 0777);
//อันนี้สร้าง folder ได้กำหนด permission เป้น 777 ได้


ทดสอบแล้ว สรุปคือต้องตั้งค่า umask ร่วมด้วยครับ

โค๊ด:
<?php
$path 
"/home/---------/public_html/";

echo 
"Test mkdir with Umask
"
;
mkdir ($path."new1"); chmod ($path."new1"0777);
mkdir ($path."new2"); chmod ($path."new2"0775);
mkdir ($path."new3"); chmod ($path."new3"0755);
// ได้ผลถูกต้องเพราะสร้างแล้วมา chmod ทีหลัง จึงไม่เกี่ยวว่าตอนสร้างได้ permission อะไร

// default umask 022
mkdir ($path."new4"0777); // ได้ 755 เพราะติด mask 22
mkdir ($path."new5"0775); // ได้ 755 เพราะติด mask 22
mkdir ($path."new6"0755); // ได้ 755 เพราะติด mask 22
// 2 ตัวหลังจะได้เป็น 5 เสมอ เพราะติด mask 22

umask (002);
mkdir ($path."new7"0777); // ได้ 775 เพราะติด mask 2
mkdir ($path."new8"0775); // ได้ 775 เพราะติด mask 2
mkdir ($path."new9"0755); // ได้ 755 เพราะติด mask 2
// ตัวสุดท้ายจะได้เป็น 5 เสมอ เพราะติด mask 2

umask (0);
mkdir ($path."newA"0777); // ได้ 777 เพราะไม่ติด mask
mkdir ($path."newB"0775); // ได้ 775 เพราะไม่ติด mask
mkdir ($path."newC"0755); // ได้ 755 เพราะไม่ติด mask
// ได้ผลถูกต้องเพราะ mask เป็น 0

echo "Done";
?>

สรุปคือเพิ่ม umask (0); ก่อนเรียกใช้งาน mkdir หลายๆอันครับ
แต่ถ้าสร้างแค่ folder เดียว ใช้ chmod เอาทีหลังชัวร์และแน่นอนกว่า
ถ้าต้องการสร้างหลายๆ folder ก็ใช้ umask เอา (ค่า umask ไม่เก็บไว้นะครับ ต้องเรียกใหม่ทุกครั้งที่เรียก script)
แจ้งลบกระทู้นี้หรือติดต่อผู้ดูแล   บันทึกการเข้า


>> เมื่อโกรธจัด อย่าเพิ่งตอบข้อความใคร..
>> เมื่อดีใจ อย่าเพิ่งให้สัญญา..
>> เมื่อเศร้าหนักหนา อย่างเพิ่งตัดสินใจ..
LesCop
แหลม+คม=หอก
Administrator
เศรษฐีพันล้าน
*

พลังน้ำใจ 575
ออฟไลน์ ออฟไลน์

เพศ: ชาย
กระทู้: 450


ขอหยุดที่86เอย


ดูรายละเอียด
« ตอบ #1 เมื่อ: 25 มกราคม 2556 08:07:40 »

umask คืออะไร?

ไฟล์ทุกไฟล์ใน Linux ต้องมี permission เสมอ ปัญหาก็คือ เวลามีไฟล์เกิดใหม่ที่ไม่มีใครมา chmod เพื่อกำหนด permission ให้ Linux จะกำหนด permission ให้ไฟล์นั้นอย่างไร พูดอีกนัยหนึ่งก็คือ default permission ของไฟล์ควรเป็นอะไร?

คำสั่ง umask ก็คือคำสั่งที่ใช้กำหนด default permission ให้กับไฟล์ที่เกิดใหม่นั่นเอง ตัวอย่างเช่น
อ้างถึง
$ umask 022

การสั่งให้ umask เท่ากับ 022 จะหมายความว่า ไฟล์เกิดใหม่ที่เป็นไฟล์ executable จะได้ permission เป็น rwxr-xr-x (755) ส่วนไฟล์ธรรมดาจะได้ permission เป็น rw-r–r– (644) โดยปริยาย (by default) คือห้ามใครเขียนเลยนอกจากเจ้าของไฟล์เอง

เหตุก็คือ 777-022 = 755 และ 666-022 = 644 นั่นเอง โปรดสังเกตว่า 022 เป็น umask ยอดนิยม เพราะเราอยากให้ไฟล์ที่เราสร้างขึ้นเขียนโดยคนอื่นไม่ได้เอาไว้ก่อน อย่างอื่นยังไม่สำคัญเท่าไร

คนที่เข้มงวดมากหน่อยอาจจะเลือกเซ็ต umask 027 คือห้าม World (Others) ทำอะไรกับไฟล์เลย เพราะ 777-027 = 750

อนึ่ง ส่วนใหญ่เรานิยมใส่คำสั่ง umask ไว้ในไฟล์ .profile ใน home ของเราด้วย เพื่อให้คำสั่งนี้ถูกรันโดนอัตโนมัติทุกครั้งที่เราล็อกอินเข้ามา
แจ้งลบกระทู้นี้หรือติดต่อผู้ดูแล   บันทึกการเข้า


>> เมื่อโกรธจัด อย่าเพิ่งตอบข้อความใคร..
>> เมื่อดีใจ อย่าเพิ่งให้สัญญา..
>> เมื่อเศร้าหนักหนา อย่างเพิ่งตัดสินใจ..
LesCop
แหลม+คม=หอก
Administrator
เศรษฐีพันล้าน
*

พลังน้ำใจ 575
ออฟไลน์ ออฟไลน์

เพศ: ชาย
กระทู้: 450


ขอหยุดที่86เอย


ดูรายละเอียด
« ตอบ #2 เมื่อ: 25 มกราคม 2556 08:11:46 »

User Mask (umask) ในระบบ POSIX

umask ย่อมาจาก User File Creation Mask เป็นทั้งคำสั่งและการทำงานของระบบใน POSIX ซึ่งเป็นส่วนการทำงานของการสร้างไฟล์ เป็นการจำกัดสิทธิ์ (permission) ของไฟล์ที่สร้างขึ้นโดยโปรเซสปัจจุบัน

โดยปกติ umask ของ root จะเป็น 0022 เมื่อมีการสร้าง directory ก็จะได้ 0755 และเมื่อมีการสร้างไฟล์จะได้ 0644

การคำนวนของ umask สำหรับ directory ทำโดยการเอาไปลบจาก 0777 จะได้เป็น 0755
ส่วนไฟล์จะคำนวนโดยเอาไปลบออกจาก 0666 จะได้เป็น 0644

การตั้งค่า umask ให้กับทุกบัญขีทำได้โดยแก้ไขที่ไฟล์ /etc/bashrc และ /etc/profile

หรือการตั้งให้แต่ละผู้ใช้งานได้ที่ /home/<username>/.bashrc

และสามารทำการตั้งค่าได้โดยคำสั่ง
อ้างถึง
$ umask 022
แจ้งลบกระทู้นี้หรือติดต่อผู้ดูแล   บันทึกการเข้า


>> เมื่อโกรธจัด อย่าเพิ่งตอบข้อความใคร..
>> เมื่อดีใจ อย่าเพิ่งให้สัญญา..
>> เมื่อเศร้าหนักหนา อย่างเพิ่งตัดสินใจ..
LesCop
แหลม+คม=หอก
Administrator
เศรษฐีพันล้าน
*

พลังน้ำใจ 575
ออฟไลน์ ออฟไลน์

เพศ: ชาย
กระทู้: 450


ขอหยุดที่86เอย


ดูรายละเอียด
« ตอบ #3 เมื่อ: 25 มกราคม 2556 08:26:26 »

permission on linux/unix

การกำหนดสิทธิ์ในการเข้าถึงทรัพยากรในระบบ Linux

#chmod 777 ,755 ,644     ซึ่งตัวเลขเหล่านี้บางคนก็รู้จักบางคนไม่รู้ที่ไปที่มา

วันนี้จะมาเสาะหาว่ามันมีที่ไปที่มาอย่างไร ก่อนอื่นมาทำความเข้าใจกับ  r w x  และเลขประจำตัว
r   :  read มีค่าประจำตัวคือ 4
w  : write / edit   มีค่าประจำตัวคือ 2
x  : execute เช่น รันโปรแกรม (ความหมายมันมากกว่านี้) มีค่าประจำตัวคือ 1

owner : เจ้าของไฟล์(โฟล์เดอร์) จะมีสิทธิ์ทั้ง rwx
group : กลุ่มที่เจ้าของ เป็นสมาชิก   จะมีสิทธิ์ทั้ง rwx
user : บุคลอื่นในระบบที่ไม่ได้อยู่ในกลุ่มเดียวกับเจ้าของไฟล์   จะมีสิทธิ์ทั้ง rwx


เอาค่าประจำตัว ของ r : w : x มาบวกกัน

หมายเหตุ 1. เครื่องหมายเซมิโคลอน ( : ) นำมาใช้ประกอบการนำเสนอเพื่อให้สามารถมองภาพเป็นส่วนๆได้
           2. 0 (ศูนย์)ไม่มีค่า นำมาประกอบการนำเสนอ
« แก้ไขครั้งสุดท้าย: 25 มกราคม 2556 08:30:50 โดย LesCop » แจ้งลบกระทู้นี้หรือติดต่อผู้ดูแล   บันทึกการเข้า


>> เมื่อโกรธจัด อย่าเพิ่งตอบข้อความใคร..
>> เมื่อดีใจ อย่าเพิ่งให้สัญญา..
>> เมื่อเศร้าหนักหนา อย่างเพิ่งตัดสินใจ..
แท็ก:
หน้า: [1]   ขึ้นบน
  พิมพ์  
 
กระโดดไป:  


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




คลิกที่นี่ -->> จัดพระของขวัญเข้ารุ่นและพิมพ์

หน้านี้ถูกสร้างขึ้นภายในเวลา 0.111 วินาที กับ 25 คำสั่ง