Perl trava para usuários regulares, trabalha com sudo

0

Eu instalei recentemente o Ubuntu 14.04 LTS e, por alguma razão, o comando perl apenas trava quando um usuário comum o chama. No entanto, se eu usar o sudo com ele, funcionará perfeitamente. Eu estou pensando que o programa perl está tentando ler / escrever algo que os usuários regulares não têm permissões, mas como posso ter certeza ou descobrir o que?

A versão perl que eu tenho é v5.18.2 e é 64bit.

O motivo pelo qual estou perguntando é que estou tentando executar um make que aparentemente usa o perl (para que ele seja interrompido), mas se eu executá-lo com o sudo, não tenho permissão para gravar nos arquivos gerados pelo make .

Se alguém tiver alguma sugestão, eu agradeceria muito. Obrigado!

Edit: Esta é a saída de strace perl -v . Ele continua dando esse trecho indefinidamente.

execve("/apps/jas/bin/perl", ["perl", "-v"], [/* 62 vars */]) = 0 brk(0) = 0x7fe3c41f5000 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fe3c207d000 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 fstat(3, {st_mode=S_IFREG|0644, st_size=87654, ...}) = 0 mmap(NULL, 87654, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fe3c2067000 close(3) = 0 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 read(3, "7ELF%bl0ck_qu0te%%bl0ck_qu0te%%bl0ck_qu0te%%bl0ck_qu0te%%bl0ck_qu0te%%bl0ck_qu0te%%bl0ck_qu0te%%bl0ck_qu0te%%bl0ck_qu0te%%bl0ck_qu0te%>%bl0ck_qu0te%%bl0ck_qu0te%%bl0ck_qu0te%%bl0ck_qu0te%0%bl0ck_qu0te%%bl0ck_qu0te%%bl0ck_qu0te%%bl0ck_qu0te%%bl0ck_qu0te%"..., 832) = 832 fstat(3, {st_mode=S_IFREG|0755, st_size=1845024, ...}) = 0 mmap(NULL, 3953344, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fe3c1a97000 mprotect(0x7fe3c1c53000, 2093056, PROT_NONE) = 0 mmap(0x7fe3c1e52000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1bb000) = 0x7fe3c1e52000 mmap(0x7fe3c1e58000, 17088, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fe3c1e58000 close(3) = 0 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fe3c2066000 mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fe3c2064000 arch_prctl(ARCH_SET_FS, 0x7fe3c2064740) = 0 mprotect(0x7fe3c1e52000, 16384, PROT_READ) = 0 mprotect(0x7fe3c229d000, 8192, PROT_READ) = 0 mprotect(0x7fe3c207f000, 4096, PROT_READ) = 0 munmap(0x7fe3c2067000, 87654) = 0 getpid() = 29478 rt_sigaction(SIGCHLD, {0x7fe3c2094460, ~[RTMIN RT_1], SA_RESTORER, 0x7fe3c1acdff0}, NULL, 8) = 0 geteuid() = 42590 brk(0) = 0x7fe3c41f5000 brk(0x7fe3c4216000) = 0x7fe3c4216000 getppid() = 29475 stat("/lhome/username", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 stat(".", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 open("/apps/jas/bin/perl", O_RDONLY) = 3 fcntl(3, F_DUPFD, 10) = 10 close(3) = 0 fcntl(10, F_SETFD, FD_CLOEXEC) = 0 rt_sigaction(SIGINT, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGINT, {0x7fe3c2094460, ~[RTMIN RT_1], SA_RESTORER, 0x7fe3c1acdff0}, NULL, 8) = 0 rt_sigaction(SIGQUIT, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGQUIT, {SIG_DFL, ~[RTMIN RT_1], SA_RESTORER, 0x7fe3c1acdff0}, NULL, 8) = 0 rt_sigaction(SIGTERM, NULL, {SIG_DFL, [], 0}, 8) = 0 rt_sigaction(SIGTERM, {SIG_DFL, ~[RTMIN RT_1], SA_RESTORER, 0x7fe3c1acdff0}, NULL, 8) = 0 read(10, "#!/bin/sh\n\nDIRNAME=dirname $0\n"..., 8192) = 207 pipe([3, 4]) = 0 clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7fe3c2064a10) = 29479 close(4) = 0 read(3, "/apps/jas/bin\n", 128) = 14 read(3, "", 128) = 0 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=29479, si_status=0, si_utime=0, si_stime=0} --- rt_sigreturn() = 0 close(3) = 0 wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 29479 pipe([3, 4]) = 0 clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7fe3c2064a10) = 29480 close(4) = 0 read(3, "Linux\n", 128) = 6 read(3, "", 128) = 0 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=29480, si_status=0, si_utime=0, si_stime=0} --- rt_sigreturn() = 0 close(3) = 0 wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 29480

    
por Mike 29.04.2014 / 20:43

1 resposta

0

Meu sistema estava usando o perl incorreto devido à maneira como meu PATH foi armazenado. Eu organizei meu PATH e agora está funcionando. Se você está tendo um problema parecido com outro programa, tente verificar seu PATH.

    
por Mike 30.04.2014 / 15:24

Tags