Nie można otworzyć pliku konfiguracyjnego „/ dev / fd / 63”, błąd: Brak takiego pliku lub katalogu dla wpa_supplicant


12

Kiedy to zrobię:

sudo wpa_supplicant -D nl80211,wext -i wlp4s0 -c <(wpa_passphrase "some ssid" "password")

dostaję

Successfully initialized wpa_supplicant
Failed to open config file '/dev/fd/63', error: No such file or directory
Failed to read or parse configuration '/dev/fd/63'

Jakieś pomysły?

Odpowiedzi:


14

Cytując wiki ArchLinux :

Uwaga: Z powodu podstawienia procesu nie można uruchomić tego polecenia z sudo - potrzebujesz powłoki root.

Powinieneś być w stanie używać su -cw sudotaki sposób:

$ sudo su -c 'wpa_supplicant -D nl80211,wext -i wlp4s0 -c \
    <(wpa_passphrase "some ssid" "password")'

11

Podstawienie procesu <(…) tworzy potok, używa /dev/fddo podania ścieżki równoważnej deskryptorowi pliku, w którym potok się znajduje, i przekazuje nazwę pliku jako argument do programu. Tutaj program jest sudoi przekazuje ten argument (który jest tylko ciągiem, jeśli chodzi o to) wpa_supplicant, który traktuje go jako nazwę pliku.

Problem polega na tym, że sudo zamyka wszystkie deskryptory plików oprócz standardowych (stdin = 0, stdout = 1 i stderr = 2). Potok zastępowania procesu znajduje się na innym deskryptorze, który zostaje zamknięty, więc gdy wpa_supplicantpróbuje go otworzyć, znajduje plik, który nie istnieje.

Jeśli twoje zasady sudo na to pozwalają ( closefrom_overrideopcja włączona), możesz powiedzieć, aby nie zamykać deskryptorów plików. Ale zwykle tak nie jest.

sudo -C 64 wpa_supplicant  -c <(wpa_passphrase …)

Alternatywnie, ponieważ nie używasz standardowego wejścia, przekaż tam dane.

wpa_passphrase  | sudo wpa_supplicant  -c /dev/stdin

Alternatywnie, uruchom powłokę z sudo i umieść tam podstawienie procesu. Ostrożnie z cytowaniem, jeśli polecenie zawiera znaki specjalne.

sudo bash -c 'wpa_supplication … -c <(wpa_passphrase …)'

1

Dla tych, którzy pochodzą z wyszukiwarki internetowej: upewnij się, że /devjest zamontowany. Łatwy błąd do popełnienia podczas chrootowania, który może następnie spowodować błędy takie jak ten.

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.