Linux: system plików INSENSITIVE


13

Jakie są metody, aby system plików Linux rozróżniał wielkość liter?

Mam aplikacje asp.net opracowane w systemie Windows, ale zawsze pojawiają się problemy z pisaniem wielkimi literami / pisownią na mono podczas umieszczania go w systemie Linux.

Jednym ze sposobów jest zamontowanie udziału SMB localhost w / var / www. Czy są jeszcze jakieś?


14
Czy nie byłoby łatwiej naprawić aplikację niż zhakować system operacyjny, aby obejść uszkodzoną aplikację?
Aaron Tate

2
Czy ta aplikacja internetowa jest obsługiwana przez apache, możesz użyć mod_speling.
Zoredache

2
To brzmi jak dość oczywisty przypadek „Albo możesz nauczyć programistów internetowych, aby byli zgodni z nazwami plików, pod bólem”
Shadur

Odpowiedzi:


15

Jeśli mówisz o rozróżnianiu wielkości liter TYLKO w aplikacjach działających w trybie Mono, możesz użyć IOMAPzmiennej środowiskowej, aby powiedzieć mono, aby ignorowała wielkość liter, tak jak robi to Windows.

Szczegółowe informacje na temat jego wykorzystania można znaleźć tutaj: http://www.mono-project.com/IOMap


15

Istnieje niewrażliwy na wielkość sterowników sterownik ext3 , ale szczerze mówiąc, uruchomienie czegoś takiego w produkcji trochę mnie przestraszy, ponieważ uruchamiasz własne niestandardowe jądro z poprawionymi sterownikami. (Tak, tak - robiliśmy to cały czas „z powrotem w ciągu dnia”, ale to był rok 1997…)

Istnieje implementacja FUSE, ciopfs , która implementuje również rozróżnianie wielkości liter. Byłoby to dla mnie o wiele mniej przerażające w użyciu niż łatane jądro.

Możesz także użyć systemu plików bez rozróżniania wielkości liter, takiego jak VFAT, do /var/wwwhierarchii folderów. W takim przypadku użyłbym sprzężenia zwrotnego, abyś nie musiał bałaganić partycjonowania dysku.


ciopfs to bzdura, próbowałem, mapuje tylko małe litery na małe, ignorując wszelkie wielkie litery ...
Quandary

1
@Quandary Run awk '/^ciopfs/ {print $2}' /proc/mounts, który wyświetli nazwę używanego katalogu. Po uruchomieniu ciopfs a/ b/nie należy uzyskiwać dostępu ani modyfikować plików w obszarze a/.

@Wskazanie małe ograniczenie jest zapisane bezpośrednio na stronie projektu i jest dość oczywiste, czy próbowałeś go ulepszyć, aby obsługiwał swój przypadek użycia lub przynajmniej RTFM przed użyciem?
Michael Shigorin,

9

Nekromancja.
Odpowiadając na moje pytanie.
To jest rzeczywiście możliwe.
Wariant 1:
Utwórz plik .dsk o rozmiarze X-MB (z dd), a następnie ustaw system plików JSF na tym pliku z opcją O (zgodność z OS2 - = wielkość liter nie ma znaczenia).
Następnie podłącz ten plik do żądanego folderu w pętli .

(apt-get install jfsutils)
dd if=/dev/zero of=jfs.dsk bs=1048576 count=150
mkfs.jfs -O jfs.dsk
mkdir -p /mnt/jfs
mount /volumes/jfs.dsk /mnt/jfs -t jfs -o loop
umount /mnt/jfs/

Wariant 2:
Po zainstalowaniu systemu operacyjnego ręcznie partycjonuj dysk i utwórz kolejną partycję w formacie JFS, którą zamontujesz w dowolnym miejscu.
Kiedy wszystko jest już uruchomione, możesz sformatować tę partycję za pomocą (ostrzeżenie - spowoduje to usunięcie wszystkich danych na tej partycji - upewnij się, że wybrałeś właściwą i nie masz na niej żadnych danych):

odmontować zamontowaną partycję

umount /web

sformatować:

mkfs.jfs -O /dev/hda5

zamontuj partycję

mount /dev/hda5 /web

Teraz biegnij

blkid

i otrzymujesz nowy identyfikator partycji.
Teraz przejdź do / etc / fstab i zamień stary identyfikator użytkownika dla / dev / hda5 na nowy.

Jeśli robisz to źle, zobacz także
Witamy w trybie awaryjnego rozruchu ...


Więc zajmujesz się tym od siedmiu i pół roku?!?! Można by pomyśleć, że „programiści”, z którymi masz do czynienia, wyszliby ze szkoły podstawowej / podstawowej.
Andrew Henle,

3
@Andrew Henle: Nie, właściwie wybraliśmy inne rozwiązanie - rozróżniającą wielkość liter partycję Windows (ext3). Teraz problem pojawił się ponownie .NET Core, i to jest rozwiązanie, które wymyśliłem. Teraz mam rozróżniającą wielkość liter partycję Linuksa bez potrzeby użycia fuse / ciops, smb, hfs / hpfs +, zhakowanego extX-fs, montowania w pętli lub jakiejkolwiek innej bzdury. To jest właściwy sposób. I do tej pory nikt tak naprawdę nie odpowiedział w zadowalający sposób przez ostatnie 7 lat, więc pomyślałem, że tak.
Quandary

Dziękuję, działam. Dla osób patrzących na to w 2020 r. Należy pamiętać, że jądro Linuksa 5.2 i e2fsprogs 1.45 dodały obsługę folderów dla ext4. Zobacz: unix.stackexchange.com/questions/558977/...
Jorge Yanes Diez
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.