φυβλαςのβλογ
บล็อกของ phyblas



การจัดการสิทธิ์ของไฟล์ใน linux และ mac (chmod chown chgrp)
เขียนเมื่อ 2019/01/26 12:39
แก้ไขล่าสุด 2021/09/28 16:42
ใน mac และ linux นั้นไฟล์แต่ละไฟล์จะมีกำหนดสิทธิ์ในการใช้งานทำอะไรต่างๆอยู่ ใช้กำหนดว่าใครจะสามารถมาทำอะไรกับไฟล์นี้ได้บ้าง ซึ่งมีประโยชน์เวลาที่ใช้คอมพิวเตอร์ร่วมกันหลายคน

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

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



** บทความนี้เป็นส่วนหนึ่งของเรื่องการใช้ unix shell เบื้องต้น ใน linux และ mac
   เนื้อหาเสริมต่อจาก https://phyblas.hinaboshi.com/20190125



วิธีการดูสิทธิ์ของไฟล์

การดูสิทธิ์ของไฟล์ทำได้ง่ายผ่านทางหน้าต่างดูไฟล์โดยคลิกขวาที่ไฟล์แล้วเลือก "คุณสมบัติ" หรืออาจกด ctrl+i



เลื่อนมาดูตรง "สิทธิ์" จะเห็นว่ามีระบุว่าทำอะไรได้บ้างและสามารถปรับเปลี่ยนได้



และอีกวิธีคือดูผ่านคอมมานด์ไลน์โดยพิมพ์
ls -l

ลองสั่งดูแล้วจะขึ้นประมาณนี้
drwxr-xr-x 2 phyblas phyblas 4096 ม.ค.  21 20:46 เอกสาร
-rw-r--r-- 1 phyblas phyblas    0 ม.ค.  25 21:03 แฟ้มเปล่า.txt
(ฯลฯ)

ดูตรงอักษร ๑๐ ตัวทางซ้ายสุด ตัวแรกจะบอกชนิดไฟล์ ถ้าเป็น d คือโฟลเดอร์ ถ้าเป็น - คือไฟล์ธรรมดา

ตั้งแต่ตัวที่ ๒ เป็นส่วนที่บอกถึงสิทธิ์ สิทธิ์จะแบ่งออกเป็น ๓ ส่วนก็คือ
- ตัวที่ ๒-๔ สิทธิ์ของตัวเจ้าของไฟล์เอง
- ตัวที่ ๕-๗ สิทธิ์ของคนในกลุ่ม
- ตัวที่ ๘-๑๐ สิทธิ์ของคนอื่นๆ

ส่วนชื่อ phyblas ที่เห็นอยู่ถัดมานี้ตัวซ้ายเป็นชื่อเจ้าของไฟล์ ตัวขวาเป็นชื่อกลุ่ม โดยพื้นฐานแล้วโดยตั้งต้นผู้ใช้จะสังกัดอยู่ในกลุ่มที่มีชื่อเดียวกับตัวผู้ใช้เอง ไฟล์ที่ถูกผู้ใช้สร้างขึ้นจึงมีชื่อกลุ่มเป็นชื่อผู้ใช้เองด้วย

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



ความหมายของสิทธิ์สำหรับไฟล์ทั่วไป

ตัวอักษรที่แสดงถึงสิทธิ์นั้นมีอยู่กลุ่มละ ๓ ตัว แสดงถึง ๓ สิ่งที่ต้องใช้สิทธิ์ ซึ่งความหมายจะต่างกันไปสำหรับไฟล์ทั่วไปและโฟลเดอร์

สำหรับไฟล์ทั่วไปแล้ว ๓ อย่างนั้นคือ

r = อ่านไฟล์
w = เขียนแก้ไขไฟล์ ลบไฟล์ หรือย้ายไฟล์
x = รันไฟล์

ถ้ามีตัวอักษรอยู่แสดงว่ามีสิทธิ์นั้น แต่ถ้าเป็น - จะแสดงว่าไม่มี

โดยพื้นฐานแล้วไฟล์ที่ถูกสร้างขึ้นมาใหม่จะมีค่าเป็น
-rw-r--r--

หมายความว่าเจ้าของไฟล์จะมีสิทธิ์อ่านและเขียนไฟล์ได้ แต่รันไม่ได้ ส่วนคนในกลุ่มและคนอื่นๆมีสิทธิ์แค่อ่านไฟล์เท่านั้น

การที่มี r อยู่คืออ่านไฟล์ได้ หมายถึงว่าสามารถสั่ง cat เพื่อดูเนื้อความข้างในได้ หรือใช้ gedit หรือ vi เปิดอ่านได้

เพียงแต่ถ้าไม่มี w ก็จะอยู่ในโหมด "อ่านอย่างเดียว" เท่านั้น

ถ้ามี w ก็จะแก้ไขไฟล์ได้ตามที่ต้องการ จะเปลี่ยนชื่อไฟล์หรือย้ายไฟล์ก็ได้ หรือจะลบไฟล์ทิ้งไปก็ได้

ส่วน x หมายถึงว่าสามารถรันไฟล์ได้ เพียงแต่ว่าการรันไฟล์ที่ว่านี้คือการสั่งรันโดยพิมพ์ชื่อไฟล์โดยตรง ไม่ใช่รันผ่านโปรแกรมอื่นอีกที

เช่นโปรแกรมภาษาไพธอนที่เขียนขึ้น ไม่จำเป็นจะต้องมี x ก็รันได้ เช่น
echo "print(555)" > 555.py
python 555.py

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

แต่ถ้าพยายามจะสั่งรันไฟล์นั้นโดยตรงโดยพิมพ์
./555.py

ก็จะขึ้นมาว่าเราไม่มีสิทธิ์รันไฟล์

เกี่ยวกับเรื่องการเขียนไพธอนให้รันโดยตรงได้นั้นได้มีเขียนอธิบายไว้ใน https://phyblas.hinaboshi.com/20190108

ถ้าเข้าไปดูโฟลเดอร์ /bin ซึ่งเป็นที่เก็บคำสั่งหลักๆ จะเห็นว่าทุกไฟล์มีสถานะเป็น
-rwxr-xr-x

คือใครจะมาสั่งรันก็ได้ ไฟล์พวกนี้มีไว้เพื่อให้รันโดยตรง

อย่างไรก็ตาม ต่อให้มีแค่ x แต่ไม่มี r อยู่ก็ไม่สามารถรันไฟล์ได้จริงๆเหมือนกัน ดังนั้นการรันไฟล์ต้องมีทั้ง x และ r

ดังนั้นสิทธิ์ในการอ่านสำคัญกว่าสิทธิ์ในการรันมากนัก



ความหมายของสิทธิ์สำหรับโฟลเดอร์

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

r = ดูว่าในโฟลเดอร์มีอะไรบ้าง
w = ใส่เพิ่มหรือแก้ไขหรือลบไฟล์ในโฟลเดอร์ หรือย้ายหรือลบโฟลเดอร์
x = เข้าไปในโฟลเดอร์ และใช้ไฟล์ในโฟลเดอร์นั้น

โดยพื้นฐานแล้วโฟลเดอร์ที่สร้างขึ้นมาใหม่จะมีสิทธิ์เป็น
drwxr-xr-x

ซึ่งหมายความว่าเจ้าของไฟล์ทำได้ทั้งดูเนื้อหาและเข้าไปหรือแก้ไขอะไรๆในโฟลเดอร์ได้ แต่คนในกลุ่มและคนอื่นจะดูข้างในหรือเข้าไปได้แต่จะแก้อะไรไม่ได้

สำหรับโฟลเดอร์แล้ว x สำคัญมาก เพราะถ้าไม่มี x ก็จะเข้าไปดูอะไรในโฟลเดอร์ไม่ได้ แม้จะมี r ก็ตาม

การที่มี r แต่ไม่มี x หมายความว่าเราสามารถรู้ว่าภายในโฟลเดอร์นั้นมีอะไรอยู่บ้างได้ โดยใช้ ls แต่จะไม่สามารถรู้รายละเอียดของของในนั้น

ยกตัวอย่างเช่น โฟลเดอร์ /etc/xdg ซึ่งเป็นของ root โดยปกติสิทธิ์จะถูกตั้งไว้เป็น drwxr-xr-x

หมายความว่าผู้ใช้ธรรมดาจะมีสิทธิ์เข้าไปได้ คือสามารถพิมพ์
cd /etc/xdg

และสามารถใช้
ls /etc/xdg

ซึ่งจะแสดงเนื้อหาไฟล์ข้างในได้แบบนี้
total 20
drwxr-xr-x 2 root root 4096 ม.ค.  21 18:49 autostart
drwxr-xr-x 2 root root 4096 ส.ค.  10 22:54 menus
drwxr-xr-x 2 root root 4096 ก.ค.  25  2018 systemd
-rw-r--r-- 1 root root  414 มี.ค.  23  2018 user-dirs.conf
-rw-r--r-- 1 root root  418 มี.ค.  23  2018 user-dirs.defaults

แต่ถ้ามีใครมาเปลี่ยนสิทธิ์เป็น drwxr-xr-- ทีนี้ก็จะใช้ cd เพื่อเข้าไปไม่ได้ และถ้าใช้ ls ก็จะขึ้นว่า
ls: ไม่สามารถเข้าถึง '/etc/xdg/menus': Permission denied
ls: ไม่สามารถเข้าถึง '/etc/xdg/systemd': Permission denied
ls: ไม่สามารถเข้าถึง '/etc/xdg/user-dirs.conf': Permission denied
ls: ไม่สามารถเข้าถึง '/etc/xdg/user-dirs.defaults': Permission denied
ls: ไม่สามารถเข้าถึง '/etc/xdg/autostart': Permission denied
total 0
d????????? ? ? ? ?              ? autostart
d????????? ? ? ? ?              ? menus
d????????? ? ? ? ?              ? systemd
-????????? ? ? ? ?              ? user-dirs.conf
-????????? ? ? ? ?              ? user-dirs.defaults

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

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

เพียงแต่ถ้าเรารู้อยู่ก่อนแล้วว่าข้างในนั้นมีไฟล์อะไรก็สามารถใช้งานไฟล์นั้นได้ตามสิทธิ์ของไฟล์นั้นหากพิมพ์ชื่อไฟล์นั้นถูก เช่น
cat xdg/user-dirs.conf

แบบนี้ทำได้โดยที่โฟลเดอร์มีแค่สิทธิ์ x ไม่ต้องมี r

ส่วนความหมายของ w นั้นจะใกล้เคียงกับกรณีของไฟล์ธรรมดา

เพียงแต่ว่าผลของ w จะส่งผลไปถึงไฟล์ด้านในโฟลเดอร์นั้นด้วย กล่าวคือต่อให้ไฟล์นั้นมี w อยู่ แต่ถ้าอยู่ในโฟลเดอร์ที่ไม่มี w ก็ไม่สามารถไปแก้อะไรได้

หรือสมมุติว่าไฟล์ของ phyblas อยู่ในโฟลเดอร์ของ root ถ้าโฟลเดอร์นั้นเป็น drwxr-xr-x แบบนี้ phyblas ก็ไม่สามารถแก้ไขอะไรไฟล์นี้ได้ ไม่ว่าสิทธิ์ของไฟล์จะตั้งไว้ยังไงก็ตาม



การแก้ไขสิทธิ์

คำสั่งที่ใช้ในการแก้ไขสิทธิ์ของไฟล์คือ chmod

วิธีการเขียนมีหลายแบบ แบบหนึ่งคือให้ระบุค่าสิทธิ์ของแต่ละส่วนเขียนต่อกันไปโดยคั่นด้วยจุลภาค , โดยแต่ละส่วนใช้อักษรย่อคือ
u ผู้ใช้
g กลุ่ม
o คนอื่น

เขียนดังนี้
chmod u=สิทธิ์ผู้ใช้,g=สิทธิ์กลุ่ม,o=สิทธิ์คนอื่น ชื่อไฟล์

ตัวอย่างเช่น
chmod u=rwx,g=rx,o= แฟ้มA.txt

จะกลายเป็น
-rwxr-x---

u,g,o ไม่จำเป็นต้องใส่ทั้งหมด ถ้าอันไหนไม่ใส่อันไหนอันนั้นก็จะไม่เปลี่ยนแปลง

เช่นถ้าต้องการตัดสิทธิ์คนในกลุ่มทั้งหมด ส่วนอย่างอื่นคงเดิมก็
chmod g= แฟ้มA.txt

จะกลายเป็น
-rwx------

อีกวิธีนึงคือใช้ + หรือ - จะเป็นการเพิ่มหรือลบตัวที่ต้องการ

เช่นเพิ่ม rx ให้กลุ่มโดยใช้ +
chmod g+rx แฟ้มA.txt

จะกลายเป็น
-rwxr-x---

หรือลองเอาสิทธิ์ออกโดยใช้ - เช่น
chmod u-w,g-wx แฟ้มA.txt

จะกลายเป็น
-r-xr-----

อันไหนที่ไม่มีอยู่แต่แรกแล้วก็ไม่โดนลบแต่อย่างใด

นอกจากนี้ยังมีอีกวิธีนึงในการใช้ซึ่งเข้าใจยากหน่อยแต่หากเข้าใจแล้วจะใช้งานได้สะดวกมาก นั่นคือใช้ตัวเลข 0 ถึง 7 แทนสิทธิ์ของทั้ง ๓ ตัวในทีเดียว

เนื่องจากสิทธิ์มี ๓ ตัว เท่ากับว่าจะมี 2×2×2 = 8 แบบ ที่เป็นไปได้ จึงใช้เลข 0 ถึง 7 แทนได้ ดังนี้

เลข เท่ากับ เลขฐานสอง สิทธิ์
0 0+0+0 000 ---
1 0+0+1 001 --x
2 0+2+0 010 -w-
3 0+2+1 011 -wx
4 4+0+0 100 r--
5 4+0+1 101 r-x
6 4+2+0 110 rw-
7 4+2+1 111 rwx

ที่มาของตัวเลขที่ใช้แทนแบบต่างๆนั้นมาจากการคิดเลขแบบฐานสอง โดยที่
มี r ให้บวก 4
มี w ให้บวก 2
มี x ให้บวก 1

วิธีเขียนให้เขียนเป็นเลข ๓ ตัวต่อกัน ซึ่งแทนค่าสิทธิ์ของผู้ใช้, กลุ่ม และ คนอื่น ตามลำดับ

ตัวอย่างการใช้งาน
chmod 777 แฟ้มA.txt # ได้ -rwxrwxrwx
chmod 754 แฟ้มB.txt # ได้ -rwxr-xr--
chmod 500 แฟ้มC.txt # ได้ -r-x------
chmod 000 แฟ้มD.txt # ได้ ----------
chmod 124 แฟ้มE.txt # ได้ ---x-w-r--

เมื่อเขียนแบบนี้แล้วจะเขียนสั้นสบายกว่ามาก วิธีนี้จึงค่อนข้างนิยม



chmod จะใช้แก้ไขสิทธิ์ได้แค่ไฟล์ของตัวเองเท่านั้น แก้ไฟล์ของคนอื่นไม่ได้

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

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



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

คำสั่งที่ใช้ในการเปลี่ยนเจ้าของไฟล์คือ chown

เพียงแต่ว่าคนที่จะใช้คำสั่งนี้ได้คือ root เท่านั้น หรือไม่ก็ต้องใช้ sudo

วิธีการใช้คือ
chown ชื่อผู้ใช้:ชื่อกลุ่ม ชื่อไฟล์

และเวลาที่เปลี่ยนเจ้าของโฟลเดอร์หากต้องการเปลี่ยนเจ้าของของไฟล์หรือโฟลเดอร์ย่อยด้านในนั้นทั้งหมดไปด้วยให้เติมตัวเลือก -R เข้าไป

ตัวอย่าง
sudo chown -R root:root home/phyblas/ดาวน์โหลด

ถ้าจะเปลี่ยนแค่ผู้ใช้ ไม่เปลี่ยนกลุ่มก็แค่ไม่ใส่ชื่อกลุ่ม
sudo chown -R phyblas home/phyblas/ดาวน์โหลด

ถ้าจะเปลี่ยนแค่กลุ่มให้ไม่ใส่ชื่อผู้ใช้ แต่ใส่ชื่อกลุ่มไว้หลัง :
sudo chown -R :root home/phyblas/ดาวน์โหลด

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

สมมุติว่ามีไฟล์นึง สั่ง ls -l แล้วขึ้นแบบนี้
-rw-r--r-- 1 phyblas root     222 ม.ค.  25 21:48 xxx.txt

phyblas สามารถสั่ง
chown :phyblas xxx.txt

แล้วก็จะกลายเป็น
-rw-r--r-- 1 phyblas phyblas  222 ม.ค.  25 21:48 xxx.txt

นอกจากนี้การเปลี่ยนแค่ชื่อกลุ่มยังอาจใช้คำสั่ง chgrp ได้ด้วย
chgrp ชื่อกลุ่ม ชื่อไฟล์

เช่น
chgrp phyblas home/phyblas/ดาวน์โหลด



ปกติเวลาคัดลอกไฟล์ด้วยคำสั่ง cp สิทธิ์ของไฟล์ที่คัดลอกมาจะเป็นของผู้ใช้คนนั้น ดังนั้นปกติไม่จำเป็นที่จะต้องมาใช้ chown เพื่อเปลี่ยน

เพียงแต่ว่า แสดงว่าผู้ใช้คนนั้นจะต้องมีสิทธิ์ในการอ่านไฟล์นั้นอยู่แล้วตั้งแต่แรกจึงจะทำการคัดลอกไฟล์มาได้

ถ้าใช้ root หรือ sudo คัดลอกไฟล์ สิทธิ์ของไฟล์ก็จะเป็นขอ​ง root ถึงตอนนั้นก็จำเป็นต้องใช้ chown

ไฟล์ที่สร้างขึ้นจากคำสั่ง sudo เจ้าของไฟล์ก็จะเป็น root เช่นกัน



ทั้ง chmod, chown และ chgrp สามารถใส่ชื่อไฟล์หลายไฟล์​ หรือเขียนในรูปแบบกล็อบ (เช่น *.txt) เพื่อจัดการไฟล์พร้อมกันหลายไฟล์ได้

เช่นเปลี่ยนไฟล์ในบ้านตัวเองให้ใครก็ได้มาใช้ได้ก็อาจเขียนเป็น
chmod 777 ~/*

และสามารถเติมตัวเลือกเสริม -v ลงไปเพื่อให้บอกว่ามีการเปลี่ยนแปลงยังไงกับแต่ละไฟล์ เช่น
chmod -v 777 เอกสาร

จะขึ้นมาว่า
mode of 'เอกสาร' changed from 0755 (rwxr-xr-x) to 0777 (rwxrwxrwx)

ถ้าลองสั่งอีกทีจะขึ้นว่า
mode of 'เอกสาร' retained as 0777 (rwxrwxrwx)

เพราะค่าเดิมเท่ากับค่าที่ต้องการเปลี่ยนอยู่แล้ว



อ้างอิง


-----------------------------------------

囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧

ดูสถิติของหน้านี้

หมวดหมู่

-- คอมพิวเตอร์ >> shell

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

สารบัญ

รวมคำแปลวลีเด็ดจากญี่ปุ่น
มอดูลต่างๆ
-- numpy
-- matplotlib

-- pandas
-- manim
-- opencv
-- pyqt
-- pytorch
การเรียนรู้ของเครื่อง
-- โครงข่าย
     ประสาทเทียม
ภาษา javascript
ภาษา mongol
ภาษาศาสตร์
maya
ความน่าจะเป็น
บันทึกในญี่ปุ่น
บันทึกในจีน
-- บันทึกในปักกิ่ง
-- บันทึกในฮ่องกง
-- บันทึกในมาเก๊า
บันทึกในไต้หวัน
บันทึกในยุโรปเหนือ
บันทึกในประเทศอื่นๆ
qiita
บทความอื่นๆ

บทความแบ่งตามหมวด



ติดตามอัปเดตของบล็อกได้ที่แฟนเพจ

  ค้นหาบทความ

  บทความแนะนำ

ตัวอักษรกรีกและเปรียบเทียบการใช้งานในภาษากรีกโบราณและกรีกสมัยใหม่
ที่มาของอักษรไทยและความเกี่ยวพันกับอักษรอื่นๆในตระกูลอักษรพราหมี
การสร้างแบบจำลองสามมิติเป็นไฟล์ .obj วิธีการอย่างง่ายที่ไม่ว่าใครก็ลองทำได้ทันที
รวมรายชื่อนักร้องเพลงกวางตุ้ง
ภาษาจีนแบ่งเป็นสำเนียงอะไรบ้าง มีความแตกต่างกันมากแค่ไหน
ทำความเข้าใจระบอบประชาธิปไตยจากประวัติศาสตร์ความเป็นมา
เรียนรู้วิธีการใช้ regular expression (regex)
การใช้ unix shell เบื้องต้น ใน linux และ mac
g ในภาษาญี่ปุ่นออกเสียง "ก" หรือ "ง" กันแน่
ทำความรู้จักกับปัญญาประดิษฐ์และการเรียนรู้ของเครื่อง
ค้นพบระบบดาวเคราะห์ ๘ ดวง เบื้องหลังความสำเร็จคือปัญญาประดิษฐ์ (AI)
หอดูดาวโบราณปักกิ่ง ตอนที่ ๑: แท่นสังเกตการณ์และสวนดอกไม้
พิพิธภัณฑ์สถาปัตยกรรมโบราณปักกิ่ง
เที่ยวเมืองตานตง ล่องเรือในน่านน้ำเกาหลีเหนือ
ตระเวนเที่ยวตามรอยฉากของอนิเมะในญี่ปุ่น
เที่ยวชมหอดูดาวที่ฐานสังเกตการณ์ซิงหลง
ทำไมจึงไม่ควรเขียนวรรณยุกต์เวลาทับศัพท์ภาษาต่างประเทศ

บทความแต่ละเดือน

2024年

1月 2月 3月 4月
5月 6月 7月 8月
9月 10月 11月 12月

2023年

1月 2月 3月 4月
5月 6月 7月 8月
9月 10月 11月 12月

2022年

1月 2月 3月 4月
5月 6月 7月 8月
9月 10月 11月 12月

2021年

1月 2月 3月 4月
5月 6月 7月 8月
9月 10月 11月 12月

2020年

1月 2月 3月 4月
5月 6月 7月 8月
9月 10月 11月 12月

ค้นบทความเก่ากว่านั้น

ไทย

日本語

中文