Prawa linux - zablokowanie usuwania nie swoich plików/katalogów

0

Cześć!

Kombinuję ale bez skutku.
Potrzebuję nadać prawo katalogowi by każdy miał do niego dostęp,
każdy mógł w nim tworzyć pliki/katalogi,
ale kasować mógł tylko własne utworzone pliki/katalogi oczywiście jeśli w takim katalogu nie ma obcego pliku.

Zrobiłem katalog:
drwxrwxrwx 2 root root 4096 sty 3 17:58 dir
w nim plik przez jakiegoś użytkownika (np. roota)
-rw-r--r-- 1 root root 0 sty 3 17:58 test

Niestety przyjdzie user i może skasować cały katalog :/

Dla pliku powinno być prawo rw-rw-r--, a jakie prawo nadać katalogowi?

0

Próbowałem już z tym bitem, ale nie wychodzi :(

Przeprowadzone próby:
1.
katalog:
drwxrwxrwx 2 ddd ddd 4096 Jan 4 12:15 dir
w nim plik:
-rw-r--r-T 1 test test 0 Jan 4 12:15 test

Wynik: użytkownik ddd bez problemu skasował katalog dir
Użytkownik nie powinien mieć możliwości skasowania katalogu, ponieważ w nim znajduje się plik innego użytkownika.
2.
katalog:
drwxrwxrwt 2 ddd dd 4096 Jan 4 12:18 dir
plik:
-rw-r--r-- 1 test test 0 Jan 4 12:18 test
Wynik: użytkownik ddd bez problemu skasował katalog dir
Użytkownik nie powinien mieć możliwości skasowania katalogu, ponieważ w nim znajduje się plik innego użytkownika.

0

Nie wiem w czym masz problem. Prosty przykład. Najpierw jako root:

mkdir /allaccess
chmod 777 /allaccess

Czyli teoretycznie każdy użytkownik może robić z katalogiem co chce. A teraz sticky bit:

chmod +t /allaccess

I do testów (zakładam, że są użytkonicy user1 i user2)

su user1
touch /allaccess/plik1

su user2
touch /allaccess/plik1

I co się dzieje:

  • każdy użytkownikj może usunąć/zmienić tylko swój plik
  • tylko root może usunąć katalog, nawet jeśli jest pusty
  • próba usunięcia katalogu przez zwykłego użytkownika spowoduje tylko usunięcie jego własnych plików z tego katalogu i błedem o braku uprawnień do usunięcia katalogu
0

edit:

Oczywiście powinno być:

su user1
touch /allaccess/plik1

su user2
touch /allaccess/plik2
0

Chciałbym dodatkowo taki przypadek:
user1 tworzy katalog
user2 tworzy plik w katalogu
user1 nie może usunąć swojego katalogu ponieważ znajdują się w nim pliki user2

0

Skoro tak, to user1 po utworzeniu katalogu musi mu nadać sticky bit. Jeśli zawsze ma być ustawiany sticky bit, to musisz skonfigurować acl (setfacl)

1 użytkowników online, w tym zalogowanych: 0, gości: 1