W dowiązaniu symbolicznym do „127.0.1.1:+xxxxx”, po co jest znak plus?

52

W moim systemie plików Linux wskazuje dowiązanie symboliczne 127.0.1.1:+xxxxx.

Dlaczego znak plus? Czy może być też minus? Dlaczego nie tylko 127.0.1.1:xxxxx?

myMethod
źródło
Czy ten symboliczny link znajduje się w katalogu / proc?
Joshua
4
@Joshua: Bardziej prawdopodobne w ~ / .mozilla / lub podobnym. Firefox / Thunderbird i iirc Steam używają takich dowiązań symbolicznych do blokowania.
grawity
2
Czy xxxxx jest liczbą czy znakami xxxxx?
Mawg
2
Prawdopodobnie niezwiązane, ale tylko w celach informacyjnych. W niektórych klientach IRC znak plus przed portem wskazywał, że zdalny serwer korzysta z SSL / TLS.
eKKiM

Odpowiedzi:

93

Dowiązania symboliczne, które nie wskazują na plik, nie mają żadnego ogólnego znaczenia. W tym przypadku może to być identyfikator procesu lub port z jakimś specjalnym protokołem wypowiedzianym na nim, lub inny identyfikator. Wszystko zależy od tego, jaki program to zrobił.

Oprogramowanie, które tworzy te linki, po prostu wykorzystuje fakt, że 1) cel dowiązania symbolicznego może nie istnieć, a nawet być kompletnym nonsensem; 2) utworzenie dowiązania symbolicznego jest całkowicie atomową operacją pojedynczego systemu (podobnie jak odczytywanie jego celu), w przeciwieństwie do tworzenia zwykłego pliku, który przyjmuje co najmniej 3 osobne wywołania systemowe.

W ten sposób tworzenie dowiązań symbolicznych może być nadużywane jako sposób blokowania (zapewniania pojedynczej instancji programu), nawet gdy inne mechanizmy mogą być zawodne. Program nie potrzebuje dowiązania symbolicznego, aby faktycznie przekształcić się w prawdziwy plik: dba tylko o to, czy utworzenie łącza się powiedzie, czy też nie, ponieważ już istnieje.

grawitacja
źródło
5
„* w przeciwieństwie do tworzenia zwykłego pliku, który przyjmuje co najmniej 3 osobne wywołania systemowe. *” - Czy możesz to wyjaśnić? Czy to znaczy fopen, fwritei fclose?
Nic Hartley,
11
@NicHartley: Wywołania systemowe to open(a może creatw starym oprogramowaniu) write, a closenie wersje f * oferowane przez stdio. Ale tak, musisz przynajmniej zrobić openi writeutworzyć plik i włożyć w to coś znaczącego. Teraz, jeśli chcesz, aby jakiś kod „spróbował go utworzyć, jeśli się powiedzie, umieść w nim trochę informacji, w przeciwnym razie przeczytaj niektóre informacje”, drugi proces może po prostu wypróbować go, readzanim pierwszy będzie miał okazję write. symlinkunika tego; albo powiedzie się i utwórz link, albo nie, i upewnij się readlink, że masz informacje dla Ciebie.
Guntram Blohm obsługuje Monikę
„... może być nadużywane jako sposób ...” Czy to nadużycie jak w „użyto w sposób, w jaki nie było przeznaczone do użycia” lub „użyto w sposób, w jaki nie powinno się go używać”?
Facet z
22

O ile mi wiadomo, „+” oznacza, że ​​liczba po adresie IP („xxxxx”) odnosi się do „identyfikatora procesu” (nie portu, który zwykle używa notacji [adres IP]: [numer_portu]).

Możliwe, że ta „notacja” (nie jestem pewien, czy nazwałbym ją „notacją”, ponieważ nie znam żadnej „oficjalnej” dokumentacji) odnosi się do czegoś innego, jeśli jest używana przez określoną aplikację - ale z drugiej strony, to zawsze jest możliwość nie tylko z dowiązaniami symbolicznymi. Jedyne znane mi przypadki (które mogłem znaleźć przy wyszukiwaniu, które nie były zbyt obszerne) „+ XXXX” zawsze odnosiły się do identyfikatora procesu.

Albin
źródło
1
Właśnie to sprawdziłem. W moim przypadku tak naprawdę jest.
myMethod
1
Czy jest gdzieś dokumentacja tego formatu, do której można utworzyć link?
David Z
1
Nie jestem pewien, po prostu pamiętam to z praktycznego doświadczenia.
Albin,
2
Wygląda na to, że mówisz o dowiązaniu symbolicznym w specjalnym katalogu, takim jak /proclub /dev. Czy możesz wyjaśnić, do czego służy to dowiązanie symboliczne?
Barmar
4
Po raz pierwszy w ogóle widziałem ten zapis, więc jestem zaskoczony, słysząc, jak mówisz, że jest to zapis ogólny. Gdzie to kiedyś oznaczało identyfikator procesu?
Barmar