Chciałbym dać użytkownikowi uprawnienia do tworzenia i odczytu plików w określonym katalogu, ale nie do modyfikowania ani usuwania plików. Jeśli użytkownik może dołączyć do plików, jest w porządku, ale wolałbym nie. To jest na Ubuntu Linux.
Myślę, że jest to niemożliwe przy standardowych uprawnieniach do plików Uniksa, ale może jest to możliwe przy użyciu list ACL? Użytkownik zawsze będzie łączyć się przy użyciu SFTP, więc jeśli istniałby jakiś sposób na kontrolowanie tego w SFTP (w przeciwieństwie do uprawnień systemu operacyjnego), byłoby dobrze.
Aby być absolutnie jasnym, chcę:
- echo hello> test # udany, ponieważ test nie istnieje, a tworzenie jest dozwolone
- echo hello >> test # może się powieść lub nie, w zależności od tego, czy dozwolone jest dołączanie
- echo hello2> test # kończy się niepowodzeniem, ponieważ test już istnieje, a modyfikacja nie jest dozwolona
- test kota # udany, ponieważ dozwolone są odczyty
- test rm # kończy się niepowodzeniem, ponieważ usuwanie nie jest dozwolone
Jeśli zastanawiasz się, dlaczego chcę to zrobić, ma to uczynić system kopii zapasowej Duplicati odpornym na Ransomware.
echo > test
, powłoka wykonuje plik,open("test", O_WRONLY|O_CREAT|O_TRUNC)
który tworzy plik, a następnie wywołuje,echo
który zapisuje zawartość, więc ją modyfikuje. Teraz możesz pozwolić, aby tylko pierwszy otwarty (WR) odniósł sukces.