Recentemente, desenvolvi um problema em alguns dispositivos Linux embutidos, onde não posso mais criar arquivos diretamente no diretório / etc /. Vi pela primeira vez o problema quando o dpkg falhou ao criar um arquivo temporário e, em seguida, "sed -i" teve o mesmo problema. Desde então, tentei ecrãs touch, cp e redireccionados, mas todos falharam com o argumento Invalid.
Eu estou correndo strace em "cp / etc / hostname /etc/hostname.bak" produz a seguinte saída,
stat64("/etc/hostname.bak", 0xbede4560) = -1 ENOENT (No such file or directory)
stat64("/etc/hostname", {st_mode=S_IFREG|0644, st_size=12, ...}) = 0
stat64("/etc/hostname.bak", 0xbede4398) = -1 ENOENT (No such file or directory)
open("/etc/hostname", O_RDONLY|O_LARGEFILE) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=12, ...}) = 0
open("/etc/hostname.bak", O_WRONLY|O_CREAT|O_EXCL|O_LARGEFILE, 0644) = -1 EINVAL (Invalid argument)
write(2, "cp: ", 4cp: ) = 4
write(2, "cannot create regular file '/etc"..., 46cannot create regular file '/etc/hostname.bak') = 46
write(2, ": Invalid argument", 18: Invalid argument) = 18
ao executar strace em "cp / etc / hostname / hostname.bak" produz
stat64("/hostname.bak", 0xbec75570) = -1 ENOENT (No such file or directory)
stat64("/etc/hostname", {st_mode=S_IFREG|0644, st_size=12, ...}) = 0
stat64("/hostname.bak", 0xbec753a8) = -1 ENOENT (No such file or directory)
open("/etc/hostname", O_RDONLY|O_LARGEFILE) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=12, ...}) = 0
open("/hostname.bak", O_WRONLY|O_CREAT|O_EXCL|O_LARGEFILE, 0644) = 4
fstat64(4, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
Uma vez que o arquivo /hostname.bak existe, posso movê-lo para / etc / sem incidentes.
As permissões em / etc / parecem adequadas para mim também
drwxr-xr-x 75 root root 36864 Mar 29 00:08 etc
Existe algum tipo de configuração ou configuração que possa causar esse comportamento? Se não como eu poderia ir sobre a depuração
Tags linux