Bug

เมื่อสัปดาห์ก่อน (วันที่ 15 มกราคม 2015) ผู้ใช้ลินุกซ์รายหนึ่งที่ใช้ชื่อว่า keyvin ได้รายงานใน Github ว่าโปรแกรม Steam มีปัญหาร้ายแรงที่ลบข้อมูลใน Home folder ทั้งหมดเมื่อย้ายโฟลเดอร์เก็บการตั้งค่าของ Steam

ตั้งแต่เริ่มต้นติดตั้ง Steam บนลินุกซ์จะเก็บข้อมูลการตั้งค่าโปรแกรมไว้ที่ ~/.local/share/steam โดยที่ไม่มีตัวเลือกขึ้นมาให้ผู้ใช้เลือก คุณ keyvin เลยย้ายเอาเองหลังจากการติดตั้งและทำ symbolic link ชี้ไปยังโฟลเดอร์ใหม่ พอทำเสร็จ เขาก็ทดลองเปิดโปรแกรม Steam ผลปรากฏว่า Steam ไม่ยอมอ่านค่าโฟลเดอร์ตามที่ทำ symbolic link ไว้ และขึ้นหน้าต่างเตือนให้เลือกหาโฟลเดอร์ ซึ่งพอเลือกแล้วก็ยังหาไม่เจออีก ในที่สุดโปรแกรมก็ล่มไป คุณ keyvin จึงทำในสิ่งที่ทุกคนทำเวลาอับจนหนทาง นั่นคือการรีสตาร์ตเครื่อง

พอเปิดเครื่องขึ้นมาใหม่ Steam ก็สร้างโฟลเดอร์ของตัวเองขึ้นมาใหม่อีกครั้งใน Home folder ตามเรื่องตามราวของมัน แต่หลังจากโล่งอกได้ไม่กี่พริบตา คุณ keyvin ก็พบว่าไฟล์อื่นๆ ใน Home folder หายเกลี้ยง แม้แต่ไฟล์ใน external harddisk ก็หายไปด้วย

ผู้ใช้อีกคนที่ชื่อ d00fy ได้ทดลองกับตัวเองด้วยการรันโปรแกรม Steam ด้วยค่าคอนฟิก STEAM_DEBUG=1 ผลก็ปรากฏว่าทุกอย่างใน Home folder หายหมดเหมือนกัน เขาและผู้ใช้อีกหลายคนใน Github สันนิษฐานว่าปัญหาน่าจะมาจากคำสั่งในไฟล์ steam.sh บรรทัดที่สั่งว่า

rm -rf "$STEAMROOT/"*

พอมันหาโฟลเดอร์ $STEAMROOT ไม่เจอ มันก็อ่านคำสั่งเป็น

rm -rf /

ซึ่งคำสั่งนี้หมายความว่าให้ลบทุกอย่างในทุก "/" ซึ่งเป็น root directory ของลินุกซ์ (การลบทั้งไดรฟ์ C:, D:, E:,... รวมถึงไดรฟ์ซีดีรอมในวินโดวส์ยังเทียบเคียงไม่ได้กับการลบ / ในลินุกซ์ มันคือทุกอย่างจริงๆ) เผอิญว่า Steam รันด้วยสิทธิ์ของผู้ใช้ มันจึงลบเฉพาะไฟล์ที่ผู้ใช้มีสิทธิ์ลบได้ซึ่งนั่นหมายความถึง Home folder ของผู้ใช้คนนั้นและสื่อบันทึกข้อมูลทุกชิ้นที่ต่อใน login session ของผู้ใช้คนนั้น

  • หมายเหตุ: การรันคำสั่ง rm -rf / ด้วยสิทธิ์ root จะเพิ่มความบรรลัยมากกว่านี้อีกหลายสิบเท่า ผู้ใช้ลินุกซ์ควรระมัดระวัง (ยกเว้นว่าคุณจะรันบนเครื่องคนอื่นและไม่กลัวการเป็นที่รังเกียจของสังคม)

แม้ว่าปัญหานี้จะถูกรายงานจากฝั่งผู้ใช้ลินุกซ์ แต่มีคนตั้งข้อสังเกตว่า Steam บนวินโดวส์ก็น่าจะสามารถสร้างปัญหาลักษณะเดียวกันได้ เนื่องจากในหน้า support ของ Steam เองก็เตือนไว้ว่ากรณีที่ผู้ใช้เลือกลง Steam ในโฟลเดอร์อื่นนอกจาก C:\Program Files\Steam\ ผู้ใช้ไม่ควรถอนการติดตั้ง (uninstall) โปรแกรม Steam ด้วยวิธี Add or Remove Programs แบบโปรแกรมธรรมดา แต่ควรถอนการติดตั้งด้วยวิธีแบบ manual

ที่มา - Neowin

Hiring! บริษัทที่น่าสนใจ

Carmen Software company cover
Carmen Software
Hotel Financial Solutions
Next Innovation (Thailand) Co., Ltd. company cover
Next Innovation (Thailand) Co., Ltd.
We are web design with consulting & engineering services driven the future stronger and flexibility.
KKP Dime company cover
KKP Dime
KKP Dime บริษัทในเครือเกียรตินาคินภัทร
Kiatnakin Phatra Financial Group company cover
Kiatnakin Phatra Financial Group
Financial Service
Fastwork Technologies company cover
Fastwork Technologies
Fastwork.co เว็บไซต์ที่รวบรวม ฟรีแลนซ์ มืออาชีพจากหลากหลายสายงานไว้ในที่เดียวกัน
Thoughtworks Thailand company cover
Thoughtworks Thailand
Thoughtworks เป็นบริษัทที่ปรึกษาด้านเทคโนโยลีระดับโลกที่คว้า Great Place to Work 3 ปีซ้อน
Iron Software company cover
Iron Software
Iron Software is an American company providing a suite of .NET libraries by engineer for engineers.
CLEVERSE company cover
CLEVERSE
Cleverse is a Venture Builder. Our team builds several tech companies.
Nipa Cloud company cover
Nipa Cloud
#1 OpenStack cloud provider in Thailand with our own data center and software platform.
Bangmod Enterprise company cover
Bangmod Enterprise
The leader in Cloud Server and Hosting in Thailand.
CIMB THAI Bank company cover
CIMB THAI Bank
MOVING FORWARD WITH YOU - CIMB is the leading ASEAN Bank
Bangkok Bank company cover
Bangkok Bank
Bangkok Bank is one of Southeast Asia's largest regional banks, a market leader in business banking
MuvMi (Urban Mobility Tech Co.,Ltd.) company cover
MuvMi (Urban Mobility Tech Co.,Ltd.)
Shape the future of urban mobility towards affordable, clean, and safe solutions
T.N. Digital Solution Co., Ltd. company cover
T.N. Digital Solution Co., Ltd.
TNDS has been involving in every first move of banking’s major digital transformation.
KBTG - KASIKORN Business-Technology Group company cover
KBTG - KASIKORN Business-Technology Group
KBTG - "The Technology Company for Digital Business Innovation"
Siam Commercial Bank Public Company Limited company cover
Siam Commercial Bank Public Company Limited
"Let's start a brighter career future together"
Icon Framework co.,Ltd. company cover
Icon Framework co.,Ltd.
Global Standard Platform for Real Estate แพลตฟอร์มสำหรับธุรกิจอสังหาริมทรัพย์ครบวงจร มาตรฐานระดับโลก
REFINITIV company cover
REFINITIV
The Financial and Risk business of Thomson Reuters is now Refinitiv
H LAB company cover
H LAB
Re-engineering healthcare systems through intelligent platforms and system design.
The Gang Technology Co., Ltd. company cover
The Gang Technology Co., Ltd.
We're a Digital Agency that helps our customers transform their business into digital with ease.
LTMH company cover
LTMH
LTMH มุ่งเน้นการพัฒนาผลิตภัณฑ์ที่สามารถช่วยพันธมิตรของเราให้บรรลุเป้าหมาย
Seven Peaks company cover
Seven Peaks
We Drive Digital Transformation
Wisesight (Thailand) Co., Ltd. company cover
Wisesight (Thailand) Co., Ltd.
The Best Choice For Handling Social Media · High Expertise in Social Data · Most Advanced and Secure
MOLOG Tech company cover
MOLOG Tech
We are Modern Logistic Platform, Specialize in WMS, OMS and TMS.
Data Wow Co.,Ltd company cover
Data Wow Co.,Ltd
We enable our clients to realize increased productivity by solving their most complex issues by Data
LINE Company Thailand company cover
LINE Company Thailand
LINE, the world's hottest mobile messaging platform, offers free text and voice messaging + Call
LINE MAN Wongnai company cover
LINE MAN Wongnai
Join our journey to becoming No.1 food platform in Thailand

hisoft Mon, 19/01/2015 - 22:31

โห เงิบเลยนะครับนั่น

การลบทั้งไดรฟ์ C:, D:, E:,... รวมถึงไดรฟ์ซีดีรอมในวินโดวส์

ทำไมผมนึกถึง bitchchecker - -"

หมายเหตุ: การรันคำสั่ง rm -rf / ด้วยสิทธิ์ root จะเพิ่มความบรรลัยมากกว่านี้อีกหลายสิบเท่า ผู้ใช้ลินุกซ์ควรระมัดระวัง (ยกเว้นว่าคุณจะรันบนเครื่องคนอื่นและไม่กลัวการเป็นที่รังเกียจของสังคม)

ชี้เป้าได้ดีมากครับ :P

แม้ว่าปัญหานี้จะถูกรายงานจากฝั่งผู้ใช้ลินุกซ์ แต่มีคนตั้งข้อสังเกตว่า Steam บนวินโดวส์ก็น่าจะสามารถสร้างปัญหาลักษณะเดียวกันได้ เนื่องจากในหน้า support ของ Steam เองก็เตือนไว้ว่ากรณีที่ผู้ใช้เลือกลง Steam ในโฟลเดอร์อื่นนอกจาก C:\Program Files\Steam\ ผู้ใช้ไม่ควรถอนการติดตั้ง (uninstall) โปรแกรม Steam ด้วยวิธี Add or Remove Programs แบบโปรแกรมธรรมดา แต่ควรถอนการติดตั้งด้วยวิธีแบบ manual

ตายละ ดีนะที่ตอนนั้นผมลงในโฟลเดอร์ตั้งต้น กดลง รับเกมฟรี แล้วก็ถอนไปเลย

anuith Mon, 19/01/2015 - 22:46

ใน Windows อาจจะบรรลัยกว่าตรงที่มันจะถาม permission ของเราตอนที่จะทำอะไรบางอย่างแบบ elevated permission ซึ่งด้วยชื่อของโปรแกรมแล้ว ผู้ใช้ก็คงเชื่อใจและไม่คิดว่ามันอันตราย ก็กด Yes เลยสิครับ

Steam บน Windows ก็อาจจะอันตรายนะครับ เพราะมันก็อาจจะใช้ชุดคำสั่งแบบอื่นบนแพลตฟอร์ม Windows ที่อาจจะมีผลเดียวกันก็ได้ครับ

อ้างคำเตือนตามท้ายบทความด้วยอีกส่วนนึงครับ

+1

แถมไดรเวอร์พวกการ์ด​จอก็มักจะดึงประสิทธิภาพ​ออกมาได้ไม่สุดซะด้วย

ยังไงก็หนีไม่พ้น ลงไว้ทั้งสองอัน แยกกันใช้ระหว่างงานกับเกมส์

อ่านในหน้า support ของ Steam บน Windows เตือนว่าจะลบทุกอย่างใน Path ที่ลง Steam โดยที่ไม่สนว่าเป็นไฟล์อะไร
ถ้าไม่ได้เอาไปบนกับไฟล์อื่นไม่น่าเป็นปัญหา

Frioniel Tue, 20/01/2015 - 00:47

บน Windows ไม่น่ามีปัญหานะครับ มันเปน common sense ของ user อยู่แล้ว
เช่นคุณเอา Steam ไปลงไว้ใน C:\Program Files\Steam
แล้วทีนี้ถ้าคุณจะเอาโปรแกรม Microsoft word จะเอาการบ้านหรือจะเอาโปรเจคจบ ไปไว้ใน C:\Program Files\Steam\ เหมือนกัน
ถ้าคุณ uninstall Steam ออก มันก็เป็นไปได้มากว่าไฟล์พวกนั้นจะหายไปด้วยอยู่แล้วอะ

หรือถึงคุณจะเอาไปลงที่อื่นที่ไม่ใช่ C:\Program Files\Steam
คุณคงไม่เอาไฟล์อื่นๆไปเก็บไว้ใน folder เดียวกันทั้งหมดหรอกมั้ง ?

Linux เกิดปัญหาตอนเลือกโฟลเดอร์ติดตั้งที่ไปรันคำสั่ง remove (เข้าใจว่าน่าจะเป็นการ clear หลังติดตั้งเสร็จ)
แต่บน Windows การเลือกโฟลเดอร์ติดตั้งมัน simple มากๆเลยแค่ระบุ path ก็จบ ไม่ต้อง remove อะไร มันมีโฟลเดอร์ temp ของ system ให้อยู่แล้ว พวกนั้นลบไปก็ไฟล์ขยะทั้งนั้น

ถ้าเทียบ กับระบบ windows เป็นแบบนี้ครับ
คุณลงเกมส์ใน C:\Program Files\Steam
แล้ว ย้าย folder ไปที่ใหนก็ได้
ตอนที่ ใช้ add-removed program uninstall app ตัวนี้ มันไปมองว่า

C:\Program Files\Steam\ ไม่มี
มันเลย ไปลบ

" \ "

ก็คือ root ของ system
หรือ ทุก drive ของระบบ
คุณมี drive

C,D,E,F,G,H,I,J,K ... Z.. ZZ
ทุก drive ทีมันลบ ได้ มันจะลบออกจนเหี้ยน เหมือน format HDD ทุก drive
ยังไง อย่างงั้ยเลยทีเดียว

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

ในหน้าเว็บ support ของ steam กล่าวไว้ว่า การ uninstall steam คือการลบ folder ที่ติดตั้งออกทั้งหมด (รวมไปถึง file ต่างๆ และ subfolder)
เช่นผมเปลี่ยน path จาก C:\Program Files\Steam ไปเป็น D:\Games\Steam
คุณเอาไฟล์อะไรอื่นๆไปใส่ D:\Games\Steam มันก็จะถูกลบออกด้วย
ถ้าคุณเผลอเอางาน การบ้าน โปรเจค ฯลฯ ไปใส่ไว้ใน D:\Games\Steam
ก็เตรียมคาดหวังว่ามันจะถูกลบเมื่อ uninstall steam ออกได้ (คุณเลือกเองว่าจะเก็บงานไว้ folder ไหน)
กรณีแบบนี้ไม่ได้เกิดขึ้นกับ Steam โปรแกรมเดียวครับ เวลาคุณ uninstall โปรแกรมทั่วๆไปออก บางทีมันแค่ลบ file ที่เกี่ยวข้องเฉยๆ บางทีมันก็ลบ folder ทิ้งไปดื้อๆเลย
การเก็บงาน การติดตั้งโปรแกรม เขาก็เลยต้องแยก Folder ไว้ ซึ่งผมก็บอกว่า มันไม่น่าเกิดกับคนใช้ Windows ได้ เพราะเรื่องแบบนี้คนใช้ก็รู้ๆกันอยู่แล้ว

ในขณะที่บน Linux นี่เราไม่ได้พูดถึงการ uninstall เลยนะ หากคุณไปเปลี่ยน Path จาก C:\Program Files\Steam ไปเป็น Path "ใดๆ" มันก็จะกลายเป็น \ ไปทันที
และการ move จริงๆมันคือ copy + remove พอมัน remove \ ออกไป ความซวยก็บังเกิด

ผมก็เลยไม่เห็นว่ามันจะเหมือนกันได้ยังไง การ uninstall จาก path แบบไม่ระมัดระวังจนทำให้ทั้งโฟลเดอร์หายไป กับ การเปลี่ยน path เฉยๆแล้วไฟล์ผู้ใช้หายหมดไม่ว่าจะโฟลเดอร์ใดๆ
Linux แค่เปลี่ยน Path คุณก็ซวยแล้ว แต่ Windows นี่การเปลี่ยน Path มันไม่มีผลอะไรเลย ส่วนการ uninstall คุณต้องไม่ระมัดระวังตั้งหลายต่อ
กรณีซวยสุดๆเลยคือคุณอาจจะเอา Steam ไปลงใน C:, D:\ แล้วไป uninstall steam ออก
(ผมก็ไม่กล้าลองนะว่าเกิดอะไรขึ้น) แต่ถึงจะเกิดกรณีที่เลวร้ายที่สุด แต่ Root Directory ของ Windows มันก็หมายถึง Drive นั้นๆแค่ Drive เดียว
แต่กรณีเลวร้ายที่สุดของ Linux มันคือ อุปกรณ์เก็บข้อมูลที่เชื่อมต่ออยู่ทุกชนิด

ขยายความคำเตือนไว้นิดนึงครับ เผื่อใครไม่ได้อ่านต้นทาง

Warning:
The uninstallation process deletes the folder Steam was installed to to ensure it is fully uninstalled. If you accidentally installed Steam to a folder containing other data, for example C:\Program Files\ instead of C:\Program Files\Steam, STOP! Do not run the uninstaller and instead carefully follow the instructions below for Manually Removing Steam, except only delete Steam-related files in step 3.

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

ถ้าคุณ uninstall Steam ออก มันก็เป็นไปได้มากว่าไฟล์พวกนั้นจะหายไปด้วยอยู่แล้วอะ

โปรแกรม Uninstall จะมีรายการของไฟล์ที่ส่วน Install ได้ทำการติดตั้งลงไปอยู่ครับ เวลาทำ Uninstall มันก็จะไปเอารายการของไฟล์นั้นๆ มาดู แล้วก็ไล่ลบตามรายการจากล่างขึ้นบน (ถอยหลัง) แล้วก็จะระบุรายละเอียดด้วยว่ามีการเอาไฟล์ไปลงที่ folder ของระบบที่อื่นๆ ด้วยหรือไม่ เช่น ใน %windir% ฯลฯ ไฟล์ดังกล่าวมีการ register ไว้หรือไม่ ฯลฯ

ส่วนกรณีนี้ปัญหาเกิดจาก bug ของการ parse command line variable ครับ

คำสั่งแบบเดียวกันแต่ไม่แน่ใจ permission mac จะลงสิทไหน ถ้าเป็นผู้ควบคุมหรือรูท คงเจออาการเดียวกันเพรามันเป็นปัญหาที่ scripts

อันนี้เล่นมุกครับ พอดีมีเว็บดังแห่งนึงในไทยเคยทำพลาดแล้วโทษเด็กฝึกงานครับ แล้วจากนั้นก็เล่นกันเป็นมุกตลอดมาครับ

ขอโทดคับ พอดีผมพึ่งลบ สตรีมไปอะคับแต่ผมกด uninstall ไปแล้วอะคับ ขอมูลหลักๆที่มากับเครื่องไดท์ C หายหมดเลยคับโปรแกรมต่างๆหายหมดเลย วิธีแก้ต้องลงวินโดวใหม่ใช่มั้ยคับ รึมีวิธิอื่น ***รบกวนบอกทีคับรึ ทักมาในเฟส Supasit Duangchai ทีคับ ****