如何检查 Linux 上通过 CLI 在 C 中给出的主目录快捷方式 ~
How to put a check on home directory shortcut ~ given through CLI in C on Linux
我想在 C 程序 运行 上通过 CLI 检查主目录快捷方式 ~
作为输入选项的参数Linux.
快捷方式在从 main()
函数参数中读取之前被转换为完整路径。
我添加了以下字面检查,但它不起作用,因为该参数已被 CLI 替换为主目录完整路径(如 /home/myself
)。
if ((strstr(pName, (const char *)"~/") != NULL) || (strcmp((const char *)pName, (const char *)"~") == 0))
{
/* home directory shortcut is not allowed/;
}
我如何添加不允许用户输入主目录快捷方式(不是完整路径)的文字检查,或者如何确保 CLI 不会将快捷方式转换为路径?
请注意,如果用户明确输入主目录路径作为输入参数,则没有问题。我只需要勾选快捷方式即可。
一些背景:
这只是其中一项安全检查,不允许用户访问特权位置。用户将通过 Web 界面访问应用程序,并且应用程序将 运行 在 space (/home/main) 中,而不是分配给用户的内容 (/home/user_1)
~
由 shell 扩展为 $HOME
,而不是由您的应用程序扩展。您的应用程序无法查明是否发生了 ~
扩展,即您无法区分用户是否输入了
application ~/foo
或
application /home/me/foo
我想在 C 程序 运行 上通过 CLI 检查主目录快捷方式 ~
作为输入选项的参数Linux.
快捷方式在从 main()
函数参数中读取之前被转换为完整路径。
我添加了以下字面检查,但它不起作用,因为该参数已被 CLI 替换为主目录完整路径(如 /home/myself
)。
if ((strstr(pName, (const char *)"~/") != NULL) || (strcmp((const char *)pName, (const char *)"~") == 0))
{
/* home directory shortcut is not allowed/;
}
我如何添加不允许用户输入主目录快捷方式(不是完整路径)的文字检查,或者如何确保 CLI 不会将快捷方式转换为路径?
请注意,如果用户明确输入主目录路径作为输入参数,则没有问题。我只需要勾选快捷方式即可。
一些背景:
这只是其中一项安全检查,不允许用户访问特权位置。用户将通过 Web 界面访问应用程序,并且应用程序将 运行 在 space (/home/main) 中,而不是分配给用户的内容 (/home/user_1)
~
由 shell 扩展为 $HOME
,而不是由您的应用程序扩展。您的应用程序无法查明是否发生了 ~
扩展,即您无法区分用户是否输入了
application ~/foo
或
application /home/me/foo