首页 > 解决方案 > 无法打开文件“/media/$USER/pendrive/keyfile”没有这样的文件或目录

问题描述

我正在编辑/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 命令而不是我的计算机名。

标签: linuxembedded-linux

解决方案


我在编辑/etc/crypttab

要编辑文件,请使用良好的文本编辑器,例如GNU emacsvimnano

但我想使用 $USER 或 $USERNAME 或 whoami 命令而不是我的计算机名。

要在 shell 脚本中编辑文件,请考虑在脚本中使用一些实用程序,例如sed(1)GNU ed,在您的情况下,您可能还需要printf(1)和/或awk(1)

或者,编写一个小的用户空间程序(例如,在 C 中,或在某些脚本语言中,如GuilePythonLua等),它可以满足您的需求。为此,您将使用syscalls(2)中列出的系统调用。

由于无法以编程方式在文件中间插入字节,因此您的用户态程序将生成一个新/etc/crypttab 文件并覆盖旧文件。不要忘记备份它。

当然阅读GNU bash 的文档。特别是关于外壳扩展的部分。

当然要知道系统调用不能在内核领域完成。因为它们是内核到用户空间应用程序代码的主要接口。阅读syscalls(2),然后阅读Advanced Linux Programming,然后阅读一些关于操作系统的教科书

如果您不太了解系统调用和应用程序编程,请避免任何内核编程。


推荐阅读