如何匹配以下目录以及子目录不允许被挂载:/usr /bin /sbin /etc /lib /mnt/web /mnt/custom /mnt/ext_usr
时间: 2023-08-10 08:05:13 浏览: 75
要匹配不允许被挂载的目录以及其子目录,可以使用字符串匹配函数 `strstr` 和条件语句来实现。以下是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
int isMountPointNotAllowed(const char* path) {
// 定义不允许被挂载的目录列表
const char* notAllowedDirectories[] = {
"/usr",
"/bin",
"/sbin",
"/etc",
"/lib",
"/mnt/web",
"/mnt/custom",
"/mnt/ext_usr"
};
// 遍历目录列表,检查是否在指定路径中出现
for (int i = 0; i < sizeof(notAllowedDirectories) / sizeof(notAllowedDirectories[0]); ++i) {
if (strstr(path, notAllowedDirectories[i]) != NULL) {
return 1; // 匹配到不允许被挂载的目录,返回 1
相关问题
/sbin/ldconfig.real: /usr/lib/wsl/lib/cuda.so.1 is not a symbolic link
根据提供的引用[1],/sbin/ldconfig.real无法将/usr/lib/wsl/lib/libnvoptix_loader.so.1链接到libnvoptix.so.1,同时也无法将/usr/lib/wsl/lib/libcuda.so.1链接到cuda.so.1。这可能是由于缺少必要的符号链接或文件权限不足导致的。根据引用,您可以在cmd中运行wsl -e /bin/bash,然后您应该已经在/mnt/c/Windows/System32/lxss/lib中,现在您有权限创建符号链接。因此,您可以尝试使用ln -s命令手动创建缺少的符号链接,以解决/sbin/ldconfig.real无法链接文件的问题。
示例命令:
```shell
ln -s /usr/lib/wsl/lib/cuda.so.1 /usr/lib/wsl/lib/libcuda.so.1
```
/sbin/ldconfig.real: /usr/lib/wsl/liblcuda.so.1 is not a symbolic link
根据引用[1]中的信息,/sbin/ldconfig.real无法将/usr/lib/wsl/lib/libnvoptix_loader.so.1链接到libnvoptix.so.1,同时也无法将/usr/lib/wsl/lib/libcuda.so.1链接到符号链接。这可能是由于权限问题或文件损坏导致的。如果您想创建符号链接,请参考引用中提供的方法,使用wsl -e /bin/bash命令进入/mnt/c/Windows/System32/lxss/lib目录,并尝试创建符号链接。
阅读全文