จะเข้าใจเค้าโครงของระบบไฟล์ Ubuntu ได้อย่างไร


220

ใน Windows มีโฟลเดอร์สำคัญเพียงไม่กี่โฟลเดอร์เท่านั้น (โดยที่สำคัญฉันหมายถึงสำคัญในรูปภาพตรรกะของระบบไฟล์ Windows) ในไดรฟ์ติดตั้ง (ในกรณีของฉันC:\) คือและProgram Files Windowsฉันอยู่ห่างจากWindowsโฟลเดอร์และ“ เพิ่มโปรแกรมลบไฟล์” ดีพอที่จะจัดการprogram filesโฟลเดอร์ของ Windows แน่นอนว่ามีโฟลเดอร์ชื่อUsersที่ผู้ใช้ (ที่ไม่ใช่ผู้ดูแลระบบ) สามารถเข้าถึงได้เฉพาะโฟลเดอร์ของพวกเขา

ดังนั้นจึงมีภาพที่ชัดเจนในระดับหนึ่งในใจของฉันในระบบไฟล์ Windows ในอูบุนตูเมื่อฉันไปถึงที่ตั้ง/มีรายการโฟลเดอร์จำนวนมากซึ่งส่วนใหญ่ฉันไม่มีเบาะแสเกี่ยวกับสิ่งที่พวกเขามี /binโฟลเดอร์ดูเหมือนว่าจะเทียบเท่าของWindowsโฟลเดอร์ในหน้าต่าง /usrโฟลเดอร์ดูเหมือนว่ามันเทียบเท่าของUsersโฟลเดอร์ใน Windows แต่แม้กระทั่ง/homeโฟลเดอร์ก็ดูเหมือนว่าจะพอดีกับใบเรียกเก็บเงิน

โปรดเข้าใจว่าฉันเข้าใจดีว่า Ubuntu (Linux) มีอักขระที่แตกต่างจาก Windows นั่นคือไม่จำเป็นต้องมีฟังก์ชั่นเทียบเท่า Windows ใน Ubuntu อย่างแน่นอน สิ่งที่ฉันกำลังมองหาคือภาพของระบบไฟล์ Ubuntu ที่ชัดเจนยิ่งขึ้น

คำถามนี้เป็นส่วนหนึ่งของคำถามที่ใหญ่กว่าซึ่งฉันแยกออกเพื่อให้ตอบได้มากขึ้น คำถามเดิมสามารถพบได้ที่นี่:
http://sgsawant.wordpress.com/2012/05/17/whats-the-equivalent-of-add-or-remove-programs-in-ubuntu/


3
เห็นแล้วยังไดเรกทอรีโครงสร้างแท็กบนUnix และ Linux การแจกแจง Linux ทั้งหมดเป็นไปตามรูปแบบเดียวกัน
Gilles

ขอบคุณสำหรับคำตอบทั้งหมดของคุณ ฉันสับสนเล็กน้อยเกี่ยวกับบางจุด: ใน Windows การตั้งค่ามักจะแสดงผ่านตัวเลือกเพื่อติดตั้งซอฟต์แวร์สำหรับผู้ใช้ทุกคน จะสร้างความแตกต่างในอูบุนตูได้อย่างไร? นอกจากนี้ยังเป็นปัญหาปกติในการกำหนดค่าซอฟต์แวร์การพัฒนาให้เป็น IDE ใน windows ตัวอย่างเช่นใน "program files \ miktex \ bin" มีไฟล์ "pdflatex.exe" ดังนั้นฉันสามารถชี้ IDE ไปที่ไฟล์นี้และกำหนดค่า จะไปเกี่ยวกับกระบวนการนี้ใน Ubuntu ได้อย่างไร ไฟล์ไบนารีทั่วไปที่เกี่ยวข้องกับซอฟต์แวร์อยู่ที่ไหน (โดยเฉพาะจากมุมมองการกำหนดค่า)
Shashank Sawant

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

เข้าใจแล้ว. ฉันจะใส่กรอบคำถามใหม่ ถึงแม้ว่านี่คือคำอธิบายสั้น ๆ เกี่ยวกับสิ่งที่ฉันหมายถึง: ใน windows ไฟล์. exe สามารถหาได้ง่าย ตัวอย่างเช่น: "C: \ Python27 \ python.exe" ดังนั้นฉันจึงรู้ว่าโปรแกรม Python เริ่มต้นจากที่ใด ตอนนี้ถ้าฉันต้องใช้ Eclipse IDE ฉันสามารถชี้ไปที่ python.exe ได้และนี่คือสิ่งที่ฉันต้องการโดย "กำหนดค่า" ฉันกำหนดค่า IDE สำหรับ Python ในอูบุนตูตำแหน่งที่ติดตั้งโปรแกรมอยู่ที่ไหน นั่นคือสิ่งที่ยังคงหลบเลี่ยงฉัน
Shashank Sawant

2
@Gilles allระวังเมื่อพูด โครงการ GoboLinuxใช้จริงที่ใช้ Windows มากขึ้นเช่นโครงสร้างไดเรกทอรี
new123456

คำตอบ:


251

คุณสามารถอ่านข้อมูลเพิ่มเติมได้ที่วิกิพีเดีย ข้อความที่ตัดตอนมา:

ระบบแฟ้มลำดับชั้นมาตรฐาน (FHS) กำหนดไดเรกทอรีหลักและเนื้อหาของพวกเขาในระบบปฏิบัติการลินุกซ์ ส่วนใหญ่มันเป็นระเบียบและการขยายลำดับชั้นของระบบไฟล์ BSD แบบดั้งเดิม

FHS ดูแลโดยมูลนิธิ Linux ซึ่งเป็นองค์กรที่ไม่แสวงหาผลกำไรซึ่งประกอบด้วยผู้จำหน่ายซอฟต์แวร์และฮาร์ดแวร์รายใหญ่เช่น HP, Red Hat, IBM และ Dell รุ่นปัจจุบันคือ 3.0 วางจำหน่ายเมื่อวันที่ 3 มิถุนายน 2015

การแสดงภาพด้วยคำอธิบายสั้น ๆ :

ป้อนคำอธิบายรูปภาพที่นี่

โดยทั่วไป Linux ได้แบ่งโครงสร้างไดเรกทอรีตามหน้าที่ของสิ่งที่จำเป็นเพื่อทำให้ระบบมีความปลอดภัยที่สุดเท่าที่จะเป็นไปได้ด้วยจำนวนสิทธิ์ขั้นต่ำที่จำเป็น มิฉะนั้นจะต้องมีคนทำงานที่ต้องหลีกเลี่ยงงานจำนวนมาก

โปรดจำไว้ว่า Unix และ Linux ที่สร้างขึ้นเป็นระบบผู้ใช้หลายคนและ Windows ถูกสร้างขึ้นสำหรับผู้ใช้คนเดียว ทุกสิ่งสามารถอธิบายได้จากแนวคิดนั้น คุณสามารถอธิบายทุก ๆ ไดเรกทอรีได้เมื่อคิดถึงว่ามันเป็นผู้ใช้หลายคนและมีความปลอดภัย

3 ตัวอย่าง:

  • คุณจะเห็นว่าไฟล์และไดเรกทอรีที่เป็นผู้ดูแลระบบเท่านั้นที่ถูกรวบรวมในไดเรกทอรีเดียวกัน: s ใน/sbinและ/usr/sbinและ/usr/local/sbinย่อมาจากระบบ ผู้ใช้ปกติไม่สามารถเริ่มโปรแกรมที่อยู่ในนั้นได้ ไฟล์ที่ผู้ใช้ทั่วไปสามารถเริ่มต้นได้คือ / bin, / usr / bin, / usr / local / bin ตามที่มันควรจะอยู่ในเชิงตรรกะมากที่สุด แต่ถ้าพวกเขาเป็นผู้ดูแลระบบก็ควรไปที่sรุ่นของไดเรกทอรีนั้น fuserมียูทิลิตี้ที่มีชื่อเสียงที่เรียกว่าเป็น คุณสามารถฆ่ากระบวนการด้วย หากผู้ใช้ทั่วไปสามารถใช้สิ่งนี้เขาจะสามารถฆ่าเซสชันของคุณ

  • เดียวกันจะไปสำหรับ/home: / home / user1 เป็นทรัพย์สินของ user1 / home / user2 เป็นทรัพย์สินของ user2 user2 ไม่มีธุรกิจที่ทำสิ่งใดในบ้านของ user1 (และวิธีอื่น ๆ ก็เป็นจริงเช่นกัน: user1 ไม่มีธุรกิจที่ทำสิ่งใดในบ้านของ user2) หากไฟล์ทั้งหมดจะอยู่ใน / home โดยไม่มีชื่อผู้ใช้ภายใต้มันคุณจะต้องให้สิทธิ์กับทุกไฟล์และ asses ถ้ามีคนได้รับอนุญาตให้เขียน / ลบไฟล์เหล่านั้น ฝันร้ายถ้าคุณมีผู้ใช้หลายสิบคน

  • เพิ่มเติมเกี่ยวกับห้องสมุด

    /lib/, /usr/lib/และ/usr/local/lib/เป็นตำแหน่งเริ่มต้นจากก่อนหน้านี้มีระบบหลายระบบอยู่และมีอยู่เพื่อป้องกันการแตกหัก /usr/lib32, /usr/lib/64, /usr/local/lib32/, /usr/local/lib64/มี 32/64-bit ประดิษฐ์ multilib

มันไม่ได้เป็นแนวคิดที่คงที่โดยวิธีการใด ๆ รสชาติ Linux อื่น ๆ ทำให้การปรับโครงสร้างนี้ ตัวอย่างเช่น ขณะนี้คุณจะเห็นเดเบียนและอูบุนตูกำลังเปลี่ยนแปลงจำนวนมากในการเลิกจ้าง FHS เนื่องจาก SSD ดีกว่าด้วยไฟล์แบบอ่านอย่างเดียว มีการเคลื่อนไหวไปสู่การจัดวางใหม่โดยที่ไฟล์ถูกแบ่งเป็นไดเรกทอรี 'อ่านอย่างเดียว' และ 'เขียนได้' / กลุ่มดังนั้นเราจึงสามารถมีพาร์ติชันรูทที่สามารถติดตั้งอ่านได้อย่างเดียว (พาร์ติชันสำหรับ ssd) และเขียนได้ (sata hdd) ไดเรกทอรีใหม่ที่จะใช้สำหรับการนี้ (ไม่อยู่ในภาพ) /run/เป็น


18
+1 Rinzwind ฉันชอบภาพที่กำลังมองหาหนึ่งจริง
Luis Alvarado

5
ฮ่าคิดว่าจะได้รับความสนใจ: + @LuisAlvarado
Rinzwind

4
ไม่มีคำตอบที่ดีกว่านี้แล้ว!
Shashank Sawant

1
ไม่ได้เป็น/mntสิ่งที่/mediaอยู่ในขณะนี้ไม่กี่ปีที่ผ่านมา?
RobinJ

9
@RobinJ: ความแตกต่างคือ/mntการจัดการด้วยตนเองในอดีต ด้วยการเพิ่มขึ้นของอุปกรณ์ชั่วคราว (แฟลชไดรฟ์ ฯลฯ ) และการติดตั้งอัตโนมัติกลายเป็นมาตรฐานทำให้มีความจำเป็นต้องจัดการกับจุดยึดโดยอัตโนมัติ ต้องการไดเรกทอรีใหม่เพื่อหลีกเลี่ยงความขัดแย้งกับการกำหนดค่าด้วยตนเองที่มีอยู่ ดังนั้นทุกวันนี้/mntจึงได้ลดบทบาทของการให้บริการจุดติดตั้งชั่วคราวที่สะดวกสบาย
Scott Severance

104

ลองคำสั่งนี้ ...

man 7 hier

คุณสามารถดูหน้าคู่มือนี้ได้ที่นี่: http://manpages.ubuntu.com/manpages/en/man7/hier.7.html

หวังว่ามันจะช่วย


1
โทรดี! ฉันมักจะลืมว่าแม้จะมีอยู่เสมอ (แม้เมื่อสุทธิลดลง))
Rinzwind

1
มนุษย์ควรเปลี่ยนชื่อเป็น "มัน" :)))
ชิกิ

man hierตอนนี้เป็นหนึ่งในคำสั่งโปรดของฉัน! คำอธิบายนั้นชัดเจนสำหรับฉันมากกว่า FHS doco โดยเฉพาะอย่างยิ่งการแยกแยะระหว่าง 'local to the machine' และ 'site-wide' สำหรับผู้ใช้ Ubuntu ที่ไม่มีประสบการณ์ข้ามจากประสบการณ์ DOS / Windows ในระดับปานกลาง
WillC

BTW จำนวน 7ย่อมาจากส่วนMiscellaneousaneaของหน้า man hier
Pablo

อืมม สำหรับสิ่งที่มันคุ้มค่าแบบนี้เตือนฉันของคำตอบเฉพาะการเชื่อมโยงถึงแม้ว่ามันเป็นไปได้ว่าทุกรุ่นของ Ubuntu จะมีสิ่งนี้ คุณสามารถรวมเนื้อหาบางส่วนจาก man page ไว้ในคำตอบของคุณได้หรือไม่?
jrh

45

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


แนวคิดที่น่าสนใจและเป็นประโยชน์ในการสร้างแผนผังลำดับงาน แต่น่าเสียดายที่ดูเหมือนว่าจะมีจุดสิ้นสุด คำถามของฉันคือถ้าฉันทำงานmysqldumpที่ฉันควรส่งออกไฟล์ไปยัง?
BadHorsie

@BadHorsie แน่นอนว่ามันจะขึ้นอยู่กับกรณีการใช้งานเฉพาะของคุณเสมอ แต่การเททิ้งไว้ใน/home/badhorsie/mysqldumpไดเรกทอรีจะเพียงพอ หากคุณใช้งานแอพจำนวนมากคุณสามารถสร้างผู้ใช้ใหม่เพื่อรันแอพแต่ละแอพและถ่ายโอนข้อมูลในแอพ / homeไดเรกทอรีของผู้ใช้นั้น
d4nyll

@ paranoid-panda คุณช่วยขยายให้หน่อยได้ไหมว่าทำไมคุณถึงเลือกที่จะไม่อนุญาตให้คลิกรูปภาพผ่านความคมชัดเต็ม? เวอร์ชันที่ฝังในโพสต์นี้อ่านไม่ได้
waldyrious

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

@ParanoidPanda นั่นคือสิ่งที่ฉันทำ การแก้ไขของฉันได้แก้ไขการพิมพ์ผิดและทำให้สามารถคลิกรูปภาพได้และความเห็นของคุณก็คือการปฏิเสธและแก้ไขดังนั้นคำถามของฉัน: คุณเห็นอะไรผิดในการทำให้คลิกได้ภาพ?
waldyrious

36

ข้อความต่อไปนี้แสดงโครงสร้างไดเรกทอรี

mtk4@laptop:/$ pwd
/
mtk4@laptop:/$ tree -L 1
.
|-- bin
|-- boot
|-- cdrom
|-- dev
|-- etc
|-- home
|-- lib
|-- lost+found
|-- media
|-- mnt
|-- opt
|-- proc
|-- root
|-- run
|-- sbin
|-- selinux
|-- srv
|-- sys
|-- tmp
|-- usr
|-- var

ส่วนประกอบหลักที่นี่คือ:

  1. /boot : มีบูตโหลดเดอร์

  2. /home : มีโฮมไดเร็กทอรีของผู้ใช้

  3. /bin : ไบนารีที่สามารถเรียกทำงานและคำสั่งทั้งหมดที่ผู้ใช้ทุกคนในระบบใช้อยู่ที่นี่

  4. /sbin : สิ่งนี้มีระบบปฏิบัติการไบนารีโดยทั่วไปที่ผู้ดูแลระบบใช้

  5. /lib : มีไลบรารีระบบที่รองรับไบนารีใน / bin และ / sbin

  6. /etc : มีไฟล์กำหนดค่าสำหรับเครือข่ายเวลาบู๊ต ฯลฯ

  7. /dev : นี่มีไฟล์อุปกรณ์เช่น usb, อุปกรณ์ปลายทางหรืออุปกรณ์อื่น ๆ ที่เชื่อมต่อกับระบบที่แสดงที่นี่

  8. /proc : มีข้อมูลเกี่ยวกับกระบวนการทำงาน

  9. /tmp: นี่เป็นไดเรกทอรีชั่วคราวที่กระบวนการจำนวนมากสร้างไฟล์ชั่วคราวที่ต้องการ สิ่งนี้จะถูกลบทิ้งทุกครั้งที่บูตเครื่อง

สำหรับรายละเอียดเพิ่มเติมลิงค์Thegeekstuffสามารถอธิบายระบบไฟล์ linux ทั่วไปได้อย่างสมบูรณ์แบบ


20

\Users/homeเทียบเท่ากับ ชื่อของ/usrเป็นสิ่งประดิษฐ์ทางประวัติศาสตร์

เทียบเท่ารวมของ\Windowsและ\Program Filesคือการรวมกันของ/bin, /boot, /etc, /lib, /sbin, /tmp, และ/usr /varซอฟต์แวร์ Linux และ Windows แยกติดตั้งแตกต่างกัน Windows แยกความแตกต่างระหว่างระบบปฏิบัติการและโปรแกรมที่แสดงร่วม Linux ไม่ได้แยกความแตกต่างนี้ในลักษณะเดียวกัน ส่วนใหญ่หากไม่ใช่ซอฟต์แวร์ทั้งหมดจะผ่าน Ubuntu (ดิสทริบิวเตอร์) และติดตั้งในลำดับชั้นของไดเรกทอรีเดียวกันและเนื่องจากซอฟต์แวร์ถูกติดตามโดยตัวจัดการแพคเกจจึงไม่จำเป็นต้องเก็บแต่ละโปรแกรมไว้ในไดเรกทอรีของตัวเอง บน Linux:

  • /etc สำหรับไฟล์การกำหนดค่าระบบ: ไฟล์การกำหนดค่าที่ส่งผลกระทบต่อผู้ใช้ทุกคนไม่ว่าพวกเขาจะใช้กับระบบปฏิบัติการโดยรวมหรือกับแอปพลิเคชันเฉพาะ
  • /usr มีไว้สำหรับรหัสระบบและข้อมูล (โปรแกรมห้องสมุดเอกสารประกอบ ฯลฯ )
  • /varใช้สำหรับข้อมูลตัวแปรหรือชั่วคราว: ไฟล์ชั่วคราวบันทึกฐานข้อมูลตัวจัดการแพคเกจสปูลเครื่องพิมพ์ไฟล์บันทึกเกม ฯลฯ นอกจากนี้ยังมี/tmpไฟล์ชั่วคราวที่สามารถลบทิ้งระหว่างการรีบูตได้
  • /bin, /libและในไดเรกทอรีรากมีลูกน้องใน/sbin /usrไฟล์ที่อยู่ข้างนอก/usrเป็นไฟล์ที่จำเป็นต้องใช้ในขั้นตอนการบู๊ต นี่เป็นของที่ระลึกจากเวลาที่ดิสก์มีขนาดเล็กและ/usrอาจอยู่ในระบบไฟล์ที่ใช้งานร่วมกันระหว่างเวิร์กสเตชันหลาย ๆ เครื่องผ่านเครือข่ายมันไม่ได้มีความแตกต่างที่เป็นประโยชน์กับระบบส่วนใหญ่
  • /boot มีไฟล์สองสามไฟล์ที่จำเป็นสำหรับการบูตระบบปฏิบัติการเท่านั้นและไม่ใช่สำหรับการทำงานแบบวันต่อวัน

มีไดเรกทอรีเพิ่มเติมที่ไม่สอดคล้องกับสิ่งที่ Windows มี:

  • /rootเป็นโฮมไดเรกทอรีของผู้ใช้รูท ผู้ใช้รูทเป็นบัญชีผู้ดูแลระบบที่ไม่เชื่อมโยงกับผู้ใช้รายใดรายหนึ่ง sudoมันเป็นผู้ใช้ที่คุณเปลี่ยนไปเมื่อคุณเรียกใช้ โดยค่าเริ่มต้น Ubuntu จะไม่อนุญาตให้ผู้ใช้รูทเข้าใช้งาน
  • /mediaและ/mntเป็นจุดเชื่อมต่อ: เป็นจุดที่คุณสามารถดูระบบไฟล์ของระบบปฏิบัติการอื่นและไดรฟ์ระยะไกล Windows ที่เทียบเท่าคือตัวอักษรไดรฟ์อื่น ๆ
  • /procและ/sysแสดงข้อมูลระบบ บน Windows คุณต้องลุยเมนูหรือเรียกใช้คำสั่งระบบหรือติดตั้งโปรแกรมของ บริษัท อื่นเพื่อดูข้อมูลนี้

อูบุนตูเช่นลินุกซ์อื่น ๆ ทั่ว ๆ ไปตามลินุกซ์ระบบแฟ้มลำดับชั้นมาตรฐาน


5

Ubuntu (เหมือนกับระบบ UNIX ที่เหมือนกัน) จัดระเบียบไฟล์ในแผนผังลำดับชั้นซึ่งมีความสัมพันธ์กับทีมเด็กและผู้ปกครอง ไดเรกทอรีสามารถมีไดเรกทอรีอื่น ๆ เช่นเดียวกับไฟล์ปกติซึ่งเป็น "ใบ" ของต้นไม้ องค์ประกอบใด ๆ ของต้นไม้สามารถอ้างอิงได้โดยใช้ชื่อพา ธ ชื่อพา ธ สัมบูรณ์เริ่มต้นด้วยตัวอักษร / (ระบุไดเรกทอรีรากซึ่งมีไดเรกทอรีและไฟล์อื่น ๆ ทั้งหมด) จากนั้นไดเรกทอรีลูกทุกรายการที่ต้องผ่านการสำรวจเพื่อเข้าถึงองค์ประกอบนั้นจะถูกแสดงรายการแต่ละรายการคั่นด้วยเครื่องหมาย /

ชื่อพา ธ สัมพัทธ์คือชื่อที่ไม่ได้ขึ้นต้นด้วย /; ในกรณีนั้นทรีไดเรกทอรีจะเริ่มต้นจากจุดที่กำหนดซึ่งจะเปลี่ยนไปตามบริบทที่เรียกว่าไดเรกทอรีปัจจุบัน ในทุกไดเรกทอรีมีสองไดเรกทอรีพิเศษที่เรียกว่า และ .. ซึ่งอ้างถึงไดเรกทอรีเองและไดเรกทอรีหลักตามลำดับ

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

ค้นหาตัวอย่างและข้อมูลเพิ่มเติมได้ที่นี่ :

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.