Не удалось открыть файл "/ media / $ USER / pendrive / keyfile" Нет такого файла или каталога - PullRequest
0 голосов
/ 04 мая 2020

Я редактирую / etc / crypttab, для доступа к файлу ключа с USB. USB был подключен к « / media / my_username / pendrive» Но я не могу понять, как открыть каталог « my_username ».

Мой и т. Д. / crypttab:

data1 / dev / sdb / media / "$ USER" / 68F5-35A4 / keyfile luks

Я могу открыть это: data1 / dev / sdb / media / srikanthpendem / 68F5 -35A4 / keyfile luks

Но я хочу использовать вместо имен моего компьютера команды $ USER, $ USERNAME или whoami.

1 Ответ

1 голос
/ 04 мая 2020

Я редактирую /etc/crypttab

Для редактирования файла используйте хороший текстовый редактор , такой как GNU emacs или vim или nano .

Но я хочу использовать $ USER или $ USERNAME или команды whoami вместо имени моего компьютера.

Чтобы отредактировать файл в сценарии оболочки, рассмотрите возможность использования в своем сценарии некоторых утилит, таких как sed (1) или GNU ed , в вашем случае вам также может понадобиться printf (1) и / или, возможно, awk (1) .

В качестве альтернативы, напишите небольшую пользовательскую программу (например, в C или в некоторых языках сценариев, таких как Guile , Python, Lua, et c ...), который делает то, что вы хотите. Для этого вы будете использовать системные вызовы, перечисленные в syscalls (2) .

Поскольку нет способа программно вставить байт в середину вашего файла, ваш Программа userland сгенерирует новый файл /etc/crypttab и перезапишет старый. Не забудьте сделать резервную копию.

Прочитайте, конечно, документацию GNU bash. В частности, раздел расширение оболочки .

Разумеется, следует помнить, что системные вызовы не могут быть выполнены в ядре ядра. Потому что они являются основным интерфейсом ядра для пользовательского кода приложения. Прочитайте syscalls (2) , затем Advanced Linux Программирование , а затем некоторые учебник по операционным системам .

Избегайте любых программирование ядра, если вы не очень хорошо понимаете системные вызовы и программирование приложений.

...