Noip "구성 파일을 찾을 수 없습니다." 그러나 파일이 있습니다.

Noip "구성 파일을 찾을 수 없습니다." 그러나 파일이 있습니다.

Noip을 설치하고 명령을 실행하여 구성 파일을 생성했습니다.

/usr/local/bin/noip2 -C

그런 다음 실행 명령을 실행했습니다.

/usr/local/bin/noip2

돌아왔다

Can't locate configuration file /usr/local/etc/no-ip2.conf. (Try -c). Ending!

파일 위치를 확인해 보니 실제로 파일이 있습니다. 왜 파일을 찾을 수 없는지 아시나요?

추적 출력:

execve("/usr/local/bin/noip2", ["/usr/local/bin/noip2"], [/* 15 vars */]) = 0
brk(0)                                  = 0x1375000
uname({sys="Linux", node="raspberrypi", ...}) = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6f33000
access("/etc/ld.so.preload", R_OK)      = 0
open("/etc/ld.so.preload", O_RDONLY)    = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=44, ...}) = 0
mmap2(NULL, 44, PROT_READ|PROT_WRITE, MAP_PRIVATE, 3, 0) = 0xb6f32000
close(3)                                = 0
open("/usr/lib/arm-linux-gnueabihf/libcofi_rpi.so", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\270\4\0\0004\0\0\0"..., 512) = 512
lseek(3, 7276, SEEK_SET)                = 7276
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1080) = 1080
lseek(3, 7001, SEEK_SET)                = 7001
read(3, "A.\0\0\0aeabi\0\1$\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\24\1\25"..., 47) = 47
fstat64(3, {st_mode=S_IFREG|0755, st_size=10170, ...}) = 0
mmap2(NULL, 39740, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6f07000
mprotect(0xb6f09000, 28672, PROT_NONE)  = 0
mmap2(0xb6f10000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1) = 0xb6f10000
close(3)                                = 0
munmap(0xb6f32000, 44)                  = 0
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=44950, ...}) = 0
mmap2(NULL, 44950, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb6efc000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/arm-linux-gnueabihf/libc.so.6", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\214y\1\0004\0\0\0"..., 512) = 512
lseek(3, 1198880, SEEK_SET)             = 1198880
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1360) = 1360
lseek(3, 1198444, SEEK_SET)             = 1198444
read(3, "A.\0\0\0aeabi\0\1$\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\24\1\25"..., 47) = 47
fstat64(3, {st_mode=S_IFREG|0755, st_size=1200240, ...}) = 0
mmap2(NULL, 1242408, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6dcc000
mprotect(0xb6eef000, 28672, PROT_NONE)  = 0
mmap2(0xb6ef6000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x122) = 0xb6ef6000
mmap2(0xb6ef9000, 9512, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb6ef9000
close(3)                                = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6f32000
set_tls(0xb6f324c0, 0xb6f32b98, 0xb6f37048, 0xb6f324c0, 0xb6f37048) = 0
mprotect(0xb6ef6000, 8192, PROT_READ)   = 0
mprotect(0xb6f36000, 4096, PROT_READ)   = 0
munmap(0xb6efc000, 44950)               = 0
rt_sigaction(SIGHUP, {SIG_IGN, [], 0x4000000 /* SA_??? */}, NULL, 8) = 0
rt_sigaction(SIGPIPE, {SIG_IGN, [], 0x4000000 /* SA_??? */}, NULL, 8) = 0
rt_sigaction(SIGUSR1, {SIG_IGN, [], 0x4000000 /* SA_??? */}, NULL, 8) = 0
rt_sigaction(SIGUSR2, {SIG_IGN, [], 0x4000000 /* SA_??? */}, NULL, 8) = 0
rt_sigaction(SIGALRM, {0xa568, [], 0x4000000 /* SA_??? */}, NULL, 8) = 0
getcwd("/home/pi", 4096)                = 9
lstat64("/home/pi/noip2", 0xbef6f670)   = -1 ENOENT (No such file or directory)
open("/usr/local/etc/no-ip2.conf", O_RDWR) = -1 EACCES (Permission denied)
open("/usr/local/etc/no-ip2.conf", O_RDONLY) = -1 EACCES (Permission denied)
write(2, "Can't locate configuration file "..., 79Can't locate configuration file /usr/local/etc/no-ip2.conf. (Try -c). Ending!

) = 79
exit_group(-1)                          = ?

감사해요

답변1

open("/usr/local/etc/no-ip2.conf", O_RDWR) = -1 EACCES (Permission denied)
open("/usr/local/etc/no-ip2.conf", O_RDONLY) = -1 EACCES (Permission denied)

noip2읽기 및 쓰기를 위해 구성 파일을 열려고 시도하고 실패하면 읽기를 다시 시도하지만 역시 실패합니다. 권한이 없기 때문에 실패합니다. 오류 메시지는 일반적이고 도움이 되지 않습니다.

구성 파일과 이를 가리키는 디렉토리에 대한 권한을 확인하십시오( 물론 문제 /없습니다 /usr. 그렇지 않으면 시스템이 더 명백하게 손상될 것입니다).

ls -ld /usr/local /usr/local/etc /usr/local/etc/no-ip2.conf

이러한 디렉터리에는 최소한 x명령을 실행하는 사용자(가능한 모든 사용자)의 권한 비트가 있어야 합니다. 파일 자체에는 최소한 r권한 비트가 있어야 합니다. 디렉토리에는 r권한 비트가 있어야 합니다. 엄밀히 말하면 이는 필수는 아니지만 일반적인 것입니다.하위 디렉터리에 액세스할 때 상위 디렉터리의 권한이 중요합니까?더 알아보기).

chmod a+rX /usr/local/etc /usr/local/etc/no-ip2.conf구성 파일이 기밀로 간주되지 않는 한(예: 비밀번호가 포함되어 있는 경우) 필요할 수 있습니다 .

항목 중 하나가 +// 권한 비트 뒤에 있으면 추가 제한 사항을 적용할 수 있는 보안 프레임워크(예: SELinux)가 있는 것입니다.rwx

답변2

이 문제가 발생했습니다. 나는 이것이 권한 문제라고 생각합니다. 그것은 루트로 실행하는 데 효과적입니다.

$ sudo noip2

먼저 실행 중인 인스턴스를 종료해야 할 수도 있습니다.

$ ps -A |grep noip
 1577 ?        00:00:00 noip2
$ sudo kill 1577

답변3

이는 권한 문제입니다. 나는 다음을 고쳤다:

chown noip.wheel /usr/local/etc/no-ip2.conf

답변4

내 것은 RO 파일 시스템이고 strace는 다음과 같이 보여줍니다. , O_RDWR) = -1 EROFS (Read-only file system)

/dev/shm에 복사하면 도움이 됩니다 :D

관련 정보