LINUX.ORG.RU

strace выдаёт Permission denied

 ,


0

1

Всем доброго дня! Имеется Debian 11 и firefox в нём «из коробки» версии 102.6.0esr (64-bit)

Захотел полюбопытствовать о нём с помощью strace выполняю: ~$ strace firefox

получаю вывод:

execve("/usr/bin/firefox", ["firefox"], 0x7ffc7c6e3100 /* 45 vars */) = 0
brk(NULL)                               = 0x558fb19b7000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=113081, ...}) = 0
mmap(NULL, 113081, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f0583e6c000
close(3)                                = 0
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0@>\2\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1905632, ...}) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f0583e6a000
mmap(NULL, 1918592, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f0583c95000
mmap(0x7f0583cb7000, 1417216, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x22000) = 0x7f0583cb7000
mmap(0x7f0583e11000, 323584, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x17c000) = 0x7f0583e11000
mmap(0x7f0583e60000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1ca000) = 0x7f0583e60000
mmap(0x7f0583e66000, 13952, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f0583e66000
close(3)                                = 0
arch_prctl(ARCH_SET_FS, 0x7f0583e6b580) = 0
mprotect(0x7f0583e60000, 16384, PROT_READ) = 0
mprotect(0x558fb1741000, 8192, PROT_READ) = 0
mprotect(0x7f0583eb2000, 4096, PROT_READ) = 0
munmap(0x7f0583e6c000, 113081)          = 0
getuid()                                = 1000
getgid()                                = 1000
getpid()                                = 61157
rt_sigaction(SIGCHLD, {sa_handler=0x558fb1736a20, sa_mask=~[RTMIN RT_1], sa_flags=SA_RESTORER, sa_restorer=0x7f0583ccdd60}, NULL, 8) = 0
geteuid()                               = 1000
brk(NULL)                               = 0x558fb19b7000
brk(0x558fb19d8000)                     = 0x558fb19d8000
getppid()                               = 61154
stat("/home/me", {st_mode=S_IFDIR|0755, st_size=596, ...}) = 0
stat(".", {st_mode=S_IFDIR|0755, st_size=596, ...}) = 0
openat(AT_FDCWD, "/usr/bin/firefox", O_RDONLY) = 3
fcntl(3, F_DUPFD, 10)                   = 10
close(3)                                = 0
fcntl(10, F_SETFD, FD_CLOEXEC)          = 0
geteuid()                               = 1000
getegid()                               = 1000
rt_sigaction(SIGINT, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGINT, {sa_handler=0x558fb1736a20, sa_mask=~[RTMIN RT_1], sa_flags=SA_RESTORER, sa_restorer=0x7f0583ccdd60}, NULL, 8) = 0
rt_sigaction(SIGQUIT, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGQUIT, {sa_handler=SIG_DFL, sa_mask=~[RTMIN RT_1], sa_flags=SA_RESTORER, sa_restorer=0x7f0583ccdd60}, NULL, 8) = 0
rt_sigaction(SIGTERM, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGTERM, {sa_handler=SIG_DFL, sa_mask=~[RTMIN RT_1], sa_flags=SA_RESTORER, sa_restorer=0x7f0583ccdd60}, NULL, 8) = 0
read(10, "#!/bin/sh\n\nFIREFOX=\"$(command -v"..., 8192) = 118
pipe([3, 4])                            = 0
clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f0583e6b850) = 61158
close(4)                                = 0
read(3, "/usr/bin/firefox\n", 128)      = 17
read(3, "", 128)                        = 0
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=61158, si_uid=1000, si_status=0, si_utime=0, si_stime=0} ---
rt_sigreturn({mask=[]})                 = 0
close(3)                                = 0
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 61158
wait4(-1, 0x7ffcc7ac31fc, WNOHANG, NULL) = -1 ECHILD (No child processes)
faccessat(AT_FDCWD, "/usr/bin/firefox.real", X_OK) = -1 ENOENT (No such file or directory)
execve("/usr/local/bin/firefox-esr", ["firefox-esr"], 0x558fb19b7d28 /* 45 vars */) = -1 ENOENT (No such file or directory)
execve("/usr/bin/firefox-esr", ["firefox-esr"], 0x558fb19b7d28 /* 45 vars */) = -1 EACCES (Permission denied)
execve("/bin/firefox-esr", ["firefox-esr"], 0x558fb19b7d28 /* 45 vars */) = -1 EACCES (Permission denied)
execve("/usr/local/games/firefox-esr", ["firefox-esr"], 0x558fb19b7d28 /* 45 vars */) = -1 ENOENT (No such file or directory)
execve("/usr/games/firefox-esr", ["firefox-esr"], 0x558fb19b7d28 /* 45 vars */) = -1 ENOENT (No such file or directory)
execve("/usr/sbin/firefox-esr", ["firefox-esr"], 0x558fb19b7d28 /* 45 vars */) = -1 ENOENT (No such file or directory)
write(2, "/usr/bin/firefox: 6: exec: ", 27/usr/bin/firefox: 6: exec: ) = 27
write(2, "firefox-esr: Permission denied", 30firefox-esr: Permission denied) = 30
write(2, "\n", 1
)                       = 1
exit_group(126)                         = ?
+++ exited with 126 +++

В итоге firefox не запускается, но если выполнить

~$ strace firefox-esr

то тогда всё норм - фаерфокс запускается а в выводе стрейса нет никаких Permission denied (но там слишком большой вывод чтобы его запостить сюда) казалось бы можно и так, ведь всё равно firefox запускает firefox-esr но всё таки странно и хотелось бы разобраться - почему же strace firefox не работает? точно такой же результат выдаёт и sudo strace firefox

Нафига ты скрипт из 10 строчек (то что первое) strace-ом исследуешь? Просто открой его и посмотри. Судя по логу он пытается найти пригодный для запуска firefox-esr, но у него не получается.

firkax ★★★★★
()