Whatsup - לינוקס, תוכנה חופשית וקוד פתוח בעברית

קבצים והתקנות - תיקיה שלא נמחקת

Anonymous - 13/11/2015 - 18:02
נושא ההודעה: תיקיה שלא נמחקת
יש לי תיקיה זה המסלול שלה :
קוד:
/root/.local/share/Trash/files/temp/var/lib/mo


ואלה ההרשאות שלה :
קוד:
drwxrwxrwt 1 root root 0 Nov 13 16:30 mo


וזה הפלט של lsattr :
קוד:
---------------- ./mo


ובכל פעם שאני מנסה למחוק את התיקיה , תחת משתמש root כמובן אני מקבל :
קוד:
rm: cannot remove 'mo': Operation not permitted


ניסיתי גם לאתחל את המערכת עם דיסק חיצוני ולבצע mount ולמחוק את התיקיה אבל ללא להועיל . אני משתמש ב arch 64 מעודכן . התיקיה היא בגודל אפס ואין שום דבר מתחתיה (לא קבצים ולא תיקייות אחרות) . אם אני יוצר משהו תחת התיקיה הנ"ל אני יכול למחוק אותו ללא בעיה . למישהו יש רעיון ?
Anonymous - 13/11/2015 - 18:42
נושא ההודעה:
קוד:
chattr -i filename


ראה Immutable
Anonymous - 13/11/2015 - 18:47
נושא ההודעה:
Immutable :
קוד:
chattr -i filename


ראה Immutable


תמיד מתלוננים שלא קוראים את התשובות , כאן לא קוראים את השאלות . אין לי תג immutable לכן צרפתי את הפלט של lsattr .
Anonymous - 13/11/2015 - 22:40
נושא ההודעה:
https://en.wikipedia.org/wiki/Sticky_bit
Anonymous - 14/11/2015 - 00:04
נושא ההודעה:
Anonymous :
https://en.wikipedia.org/wiki/Sticky_bit

ניסתי לא עזר . זאת באמת חידה בשבילי , לא מבין את זה. לא ממש מפריע לי להשאיר את זה אבל עדיין זה האתגר לנסות להבין מה קורה כאן .
Anonymous - 14/11/2015 - 09:48
נושא ההודעה:
באיזו מערכת קבצים אתה משתמש? ואיך יצרת את הקובץ?
Anonymous - 14/11/2015 - 09:56
נושא ההודעה:
כמו כן, מה הן ההרשאות של /root/.local/share/Trash/files/temp/var/lib?
Anonymous - 14/11/2015 - 10:10
נושא ההודעה:
המערכת היא btrfs .
קוד:
drwxrwxrwx 1 root root 4 Nov 13 17:18 lib

את הקובץ או את התיקיה עצמה ? התיקיה עצמה נוצרה כתוצאה מ systemd-nspawn (אחרי כמה וכמה משחקים שלי , ניסיונות למחוק את ה container הזה) . אין כרגע קובץ בתוך בתיקיה , כשניסתי לייצר קובץ פשוט עשיתי touch (וכאמור הצלחתי למחוק אותו) .
Anonymous - 14/11/2015 - 10:14
נושא ההודעה:
Anonymous :
המערכת היא btrfs .
קוד:
drwxrwxrwx 1 root root 4 Nov 13 17:18 lib

את הקובץ או את התיקיה עצמה ? התיקיה עצמה נוצרה כתוצאה מ systemd-nspawn (אחרי כמה וכמה משחקים שלי , ניסיונות למחוק את ה container הזה) . אין כרגע קובץ בתוך בתיקיה , כשניסתי לייצר קובץ פשוט עשיתי touch (וכאמור הצלחתי למחוק אותו) .

תיקון לניסוח קצת צולע : הכוונה שלי היתה שבמקור היא כתוצאה מ systemd-nspwan אבל מה שאני מראה פה זה אחרי משחקים שלי , ניסיונות למחוק את התיקיות .
Anonymous - 14/11/2015 - 15:25
נושא ההודעה:
מקריאה קצרה ב unlink(2), נראה שהבעיה היחידה שיכולה לקרות היא "The system does not allow unlinking of directories".

חיפשתי קצת ומצאתי את זה: https://wiki.archlinux.org/index.php/Docker#Deleting_Docker_Images_in_a_BTRFS_Filesystem

זה לא אותו מקרה, אבל כנראה שזה בגלל ה-btrfs, תנסה לעשות את מה שכתוב שם.
Anonymous - 14/11/2015 - 15:58
נושא ההודעה:
Anonymous :
מקריאה קצרה ב unlink(2), נראה שהבעיה היחידה שיכולה לקרות היא "The system does not allow unlinking of directories".

חיפשתי קצת ומצאתי את זה: https://wiki.archlinux.org/index.php/Docker#Deleting_Docker_Images_in_a_BTRFS_Filesystem

זה לא אותו מקרה, אבל כנראה שזה בגלל ה-btrfs, תנסה לעשות את מה שכתוב שם.


תודה רבה זה עזר !!! לא הייתי חושב על זה בכלל . נפתר !
Anonymous - 14/11/2015 - 17:38
נושא ההודעה:
מה הייתה הבעיה? זו הייתה mount point?
Anonymous - 14/11/2015 - 18:14
נושא ההודעה:
צפריר :
מה הייתה הבעיה? זו הייתה mount point?

לא בגלל ה btrfs . ראה קישור אחרון .
Anonymous - 14/11/2015 - 18:36
נושא ההודעה:
זה היה בגלל שהתקייה הייתה בעצם sub-volume, שזה (על פי הבנתי הדלה) כמו block device רק שהוא חלק ממערכת קבצים אחרת. כך שניתן לגשת אליו כתקיה אך ניתן גם לעגן אותו (ולבצע עליו snapshots ועוד פיצ'רים כאלו).
ככל הנראה, לא ניתן למחוק תקייה מסוג זה בצורה נורמאלית וצריך למחוק אותה באמצעות:
קוד:
btrfs subvolume delete <path>


ניתן לראות עוד מידע בנושא ב-btrfs-subvolume(8 ) או פה: https://btrfs.wiki.kernel.org/index.php/Manpage/btrfs-subvolume

והנה, למדתי עוד משהו חדש היום Smile
Anonymous - 14/11/2015 - 22:14
נושא ההודעה:
כל הכבוד על השיתוף בפורום.
גם אנחנו למדנו משהו חדש.

לגופו של עניין, מדובר בבאג. השגיאה המדווחת איננה אינפורמטיבית. לא מדובר בבעיה בהרשאות, אלא בכל ש"תיקיה" זו כלל איננה תיקיה. השגיאה הייתה צריכה להיות דומה למה שקורה בעת ניסיון למחיקת קובץ:
קוד:
rmdir: failed to remove `a': Not a directory

כל הזמנים הם GMT + 2 שעות