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구성 파일이 기밀로 간주되지 않는 한(예: 비밀번호가 포함되어 있기 때문에) 아마도 원할 것입니다 .

항목 중 하나 +r// 권한 비트 w가 있으면 x추가 제한을 적용할 수 있는 SELinux와 같은 보안 프레임워크가 있는 것입니다.

답변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

관련 정보