วิธีแก้ปัญหาเบื้องต้น เมื่อคุณรันแอพลิเคชั่นบางอย่างไม่ได้ (ทั้งๆ ที่เคยใช้ได้มาก่อน)
Posted in:
พอดีว่าผมเป็นพวกมือใหม่หัดขับ แต่ชอบลองของ (เมื่อวานก็เจอปัญหา Trash เดี้ยง ไม่รู้จะแก้ยังไง เลยจัดการ format ลงใหม่ไปซะเลย อิอิ)
มาวันนี้หลังจากลงโปรแกรมทั้งผ่านทาง apt-get และ download มาลงเอง (ทั้งแบบ binary package และ source package) ก็เจอปัญหาเข้าอีกจนได้
อย่างแรกเลย ผมต้องการเพิ่ม menu item ใหม่ แต่ไม่สามารถรันโปรแกรม main menu (System -> Preferences -> Main Menu) ได้ พยายามค้นดูจาก google ก็รู้ว่าเจ้าโปรแกรมนี้ชื่อว่า alacarte
ได้ชื่อมาปุ๊บ ก็เอามาลองรันใน terminal เลยรู้ว่ามันต้องการ write permission เพื่อที่จะเขียนไฟล์ลงใน ./local/share/applications/... ซึ่งมันอยู่ใน home directory ของผมอยู่แล้ว งงสิครับ มันควรจะใช้ได้แล้วนี่นา แต่ทำไมมันใช้ไม่ได้ ?!?!?
หลังจากมั่วไปมาอยู่พักใหญ่ ก็เข้าใจว่า เป็นเพราะมี application บางอย่างที่ผมติดตั้งและรันเองใน super user mode มันเลยสร้างไฟล์และไดเร็คทอรี่ด้วย user/group ของ root ทำให้ application ไมาสามารถเข้าไปเขียนไฟล์เหล่านั้นได้ (ทั้งๆ ที่อยู่ใน home directory ของตัวเอง)
วิธีแก้ก็ได้พี่ google นี่แหละที่บอกให้ พี่เค้าว่าให้ใช้ chown เปลี่ยนเจ้าของไฟล์และไดเร็คทอรี่ที่เป็นของ root กลับมาเป็นของเราซะ ตัวอย่างเช่น เราสั่ง ls -la แล้วเจอแบบนี้เข้า
.
..
drwxr-xr-x root root .eclipse <-- อีกปัญหาที่ผมเจอ และแก้ด้วยอิธีเดียวกัน
-rw-r--r-- root root .pixelmsg <-- นี่ก็ด้วย
-rw-r--r-- cray cray .bashrccray@cray-laptop:~$
ซึ่ง .eclipse มันน่าจะเป็นของเราแทนที่จะเป็นของ root (ซึ่งทำให้ผมติดตั้ง plugins ไม่ได้) ส่วนอีกอันเป็นไฟล์ของโปรแกรม Pixel Image Editor (หน้าตาและการใช้งานคล้ายๆ Photoshop เป็น shareware ครับ) ให้แก้อย่างนี้ครับ
cray@cray-laptop:~$ sudo chown -R cray:cray .eclipse/ <-- จริงๆไม่ใส่ / ตามหลังก็ได้ แต่กด tab แล้วมันมาเองcray@cray-laptop:~$ sudo chown cray:cray .pixelmsg <-- แบบไฟล์ไม่มี / ตามหลัง ไม่ต้องใช้ -R ก็ได้
อธิบายเพิ่มนิดหน่อย สำหรับคนที่เป็นมือใหม่เหมือนผม chown เป็นคำสั่งที่ใช้ในการเปลี่ยนความเป็นเจ้าของไฟล์และไดเร็คทอรี่ครับ ส่วน parameter -R เป็นการบอกให้มันเปลี่ยน owner ให้กับไฟล์และ sub directory ทั้งหมดที่อยู่ภายใต้ directory เป้าหมาย ส่วน cray:cray ก็เปลี่ยนเป็นชื่อ user ของคุณนะครับ ใช้ชิ่อผมคง error แน่ๆ ตามด้วยชื่อไฟล์หรือไดเร็คทอรี่ที่ต้องการเปลี่ยนความเป็นเจ้าของ เท่านี้ โปรแกรมต่างๆ ก็กลับมาทำงานได้เป็นปกติแล้วครับ
ลองเข้าไปเช็คกันดูสิครับว่า ใน /home/<yourname>/ มีไฟล์ไหนที่กลายเป็นของ root ไปมั่ง จัดการแก้กลับมาเป็นของเราให้หมดครับ :)


ดีมาก
เป็นความรู็ที่ดีจริงๆ
ขอบคุณครั
ขอบคุณครับ
ขอบคุณมากครับ
เห็นคำสั่งนี้มาตังนานแล้วแต่ไม่ get ว่ามันใช้อย่างไงผมมีปัญหามาก ต้องใช้ chmod ทำตลอด เจอ chown เจ๋งเลยขอบคุณมากครับ
Post new comment