Tags:
Topics: 
Node Thumbnail

เมื่อสัปดาห์ก่อน (วันที่ 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

Get latest news from Blognone

Comments

By: PaPaSEK
ContributorAndroidWindowsIn Love
on 19 January 2015 - 22:30 #782772
PaPaSEK's picture

และขั้นหน้าต่างเตือน > และขึ้น

By: terminus
ContributorJusci's WriterMEconomicsUbuntu
on 19 January 2015 - 22:38 #782774 Reply to:782772

แก้แล้วครับ ขอบคุณครับ

By: hisoft
ContributorWindows PhoneWindows
on 19 January 2015 - 22:31 #782773
hisoft's picture

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

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

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

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

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

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

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

By: anuith
ContributorWindows PhoneWindows
on 19 January 2015 - 22:44 #782777

ผมไม่เคยลงบน default เลย
แต่โชคดี ผมไม่เคย uninstall เลย

By: anuith
ContributorWindows PhoneWindows
on 19 January 2015 - 22:46 #782778

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

By: Ton-Or
ContributorAndroidCyberbeingRed Hat
on 19 January 2015 - 22:51 #782779 Reply to:782778
Ton-Or's picture

ในวินย้ายไปมาแสนสบาย แบคอัพโปรไฟล์ สำหรับพวกแลนดิสก็ได้ไม่มีปัญหาฮะ วินไม่มี .sh


Ton-Or

By: anuith
ContributorWindows PhoneWindows
on 20 January 2015 - 10:02 #782853 Reply to:782779

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

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

By: Lightwave
iPhoneAndroidWindows
on 20 January 2015 - 12:49 #782900 Reply to:782853

ไม่ครับ เพราะย้ายกันมานักต่อนักแล้ว

By: K_AViar
Windows PhoneUbuntuWindowsIn Love
on 19 January 2015 - 23:06 #782783

ถ้าพูดถึงเล่นเกม ผมก็ยังเชียร์ Windows มากกว่า Linux นะ ถึงแม้ตัวเองจะชอบ Linux มากก็เถอะ

By: BLiNDiNG
AndroidUbuntuWindowsIn Love
on 19 January 2015 - 23:14 #782786 Reply to:782783
BLiNDiNG's picture

+1

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

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

By: BLiNDiNG
AndroidUbuntuWindowsIn Love
on 19 January 2015 - 23:11 #782785
BLiNDiNG's picture

รู้สึก​ว่า​การรีสตาร์ท​เครื่อง​ สำหรับ​ลีนิกส์ไม่เคยช่วยแก้ปัญหา​ได้เลย ลงท้ายต้องมากูเกิลหาวิธีเอาเองตลอด

By: parnunu
iPhoneAndroidWindows
on 19 January 2015 - 23:28 #782790

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

By: Frioniel
Windows PhoneWindows
on 20 January 2015 - 00:47 #782797
Frioniel's picture

บน 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 ให้อยู่แล้ว พวกนั้นลบไปก็ไฟล์ขยะทั้งนั้น

By: waroonh
Windows
on 20 January 2015 - 08:50 #782830 Reply to:782797

ถ้าเทียบ กับระบบ 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
ยังไง อย่างงั้ยเลยทีเดียว

By: Frioniel
Windows PhoneWindows
on 20 January 2015 - 10:49 #782866 Reply to:782830
Frioniel's picture

ผมไม่ได้จะเอาสถานการณ์ใน 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 มันคือ อุปกรณ์เก็บข้อมูลที่เชื่อมต่ออยู่ทุกชนิด

By: hisoft
ContributorWindows PhoneWindows
on 20 January 2015 - 10:54 #782869 Reply to:782866
hisoft's picture

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

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.

By: PaPaSEK
ContributorAndroidWindowsIn Love
on 20 January 2015 - 09:12 #782838 Reply to:782797
PaPaSEK's picture

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

หืม? What?

By: Frioniel
Windows PhoneWindows
on 20 January 2015 - 10:55 #782870 Reply to:782838
Frioniel's picture

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

By: hisoft
ContributorWindows PhoneWindows
on 20 January 2015 - 11:03 #782871 Reply to:782870
hisoft's picture

ถ้าไม่อ่านต้นทาง ผมก็อ่านความเห็นแรกของท่านไม่เข้าใจนะครับ จนไปอ่านตัวอย่างจากในต้นทางถึงเข้าใจ

By: PaPaSEK
ContributorAndroidWindowsIn Love
on 20 January 2015 - 11:04 #782873 Reply to:782870
PaPaSEK's picture

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

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

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

By: Architec
ContributorWindows PhoneAndroidWindows
on 20 January 2015 - 11:10 #782875

ตูมเดียวหายสินะ /ไม่เป็นไรเพราะผมใช้ Mac :P

By: hisoft
ContributorWindows PhoneWindows
on 20 January 2015 - 11:12 #782876 Reply to:782875
hisoft's picture

คุ้นๆ ว่า OS X ใช้คำสั่งคล้าย Linux นะครับ ;) น่าลองนะครับ :D

By: Ton-Or
ContributorAndroidCyberbeingRed Hat
on 20 January 2015 - 23:18 #783187 Reply to:782876
Ton-Or's picture

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


Ton-Or

By: kswisit
ContributoriPhoneAndroidIn Love
on 20 January 2015 - 11:58 #782885

ไม่เคย uninstall เลย

format เครื่องก่อนตลอด


^
^
that's just my two cents.

By: Bank14
ContributorAndroidRed HatWindows
on 20 January 2015 - 12:04 #782886

ทำไมไม่เช็ค $STEAMROOT ก่อนว่ามี Value ไหม แล้วค่อย rm -rf มันก็ไม่ได้ยากเย็นอะไรนีนา

By: PaPaSEK
ContributorAndroidWindowsIn Love
on 20 January 2015 - 12:32 #782896 Reply to:782886
PaPaSEK's picture

เด็กฝึกงานทำครับ

By: Bank14
ContributorAndroidRed HatWindows
on 20 January 2015 - 14:47 #782939 Reply to:782896

มุขหรือเรื่องจริงครับ 555

เขียน Shell แบบนี้ เอามันไปทำอย่างอื่นเหอะครับ ไม่งั้นพังหมด

By: PaPaSEK
ContributorAndroidWindowsIn Love
on 20 January 2015 - 14:53 #782940 Reply to:782939
PaPaSEK's picture

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

By: Axess
Android
on 20 January 2015 - 12:06 #782887

manual แบบไหนฮะ... shift+delete folder ทิ้ง?
แล้ว registry ล่ะ...

หรือวัดดวงตอน uninstall

By: pote2639
ContributoriPhoneWindows PhoneWindows
on 20 January 2015 - 13:44 #782918

สงสัยมันจะผลกระทบกับ OS X ด้วยไหม เพราะเป็นพี่น้อง unix เหมือนกัน =*=

By: KuroNeko_Hiki
AndroidUbuntuWindows
on 21 January 2015 - 17:37 #783481
KuroNeko_Hiki's picture

โชคดีที่ไม่รู้วิธีย้าย อุ...

By: Supasitsam on 28 September 2016 - 23:29 #943294

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