Efeito de HOME no libreoffice para converter em pdf como usuário não root

1

Instalei o libreoffice-headless e posso converter documentos quando logado como root. Então, tentei fazer isso como outro usuário, e ele não mostrou um erro, mas não converteu o arquivo. Descobri então que, se eu me livrar do HOME=/tmp/ayb , ele funciona com o outro usuário. Não HOME=/tmp/ayb apenas permite que os arquivos sejam padronizados para esse diretório se não forem especificados? (Desculpe, tentei pesquisar "Linux HOME", mas, como você provavelmente espera, recebeu vários resultados não relevantes). Se não, qual é o propósito de especificar HOME ? Por que a configuração HOME impede que ele seja convertido em usuários não raiz? Note que / tmp e / tmp / ayb ou ambos 0777. Obrigado

[root@desktop ~]# yum install libreoffice-headless
[root@desktop ~]# yum install libreoffice-writer
[root@desktop ~]# ls -l
total 48
-rwxrwxrwx. 1 NotionCommotion NotionCommotion 48128 Jul 30 02:38 document_34.doc
[root@desktop ~]# HOME=/tmp/ayb; /usr/bin/libreoffice --headless -convert-to pdf --outdir /tmp/ayb /tmp/ayb/document_34.doc
convert /tmp/ayb/document_34.doc -> /tmp/ayb/document_34.pdf using writer_pdf_Export
[root@desktop ~]# rm d*.pdf
rm: remove regular file 'document_34.pdf'? y
[root@desktop ~]# /usr/bin/libreoffice --headless -convert-to pdf --outdir /tmp/ayb /tmp/ayb/document_34.doc
convert /tmp/ayb/document_34.doc -> /tmp/ayb/document_34.pdf using writer_pdf_Export
[root@desktop ~]# rm d*.pdf
rm: remove regular file 'document_34.pdf'? y
[root@desktop ~]# su NotionCommotion
sh-4.1$ HOME=/tmp/ayb; /usr/bin/libreoffice --headless -convert-to pdf --outdir /tmp/ayb /tmp/ayb/document_34.doc
sh-4.1$ rm d*.pdf
rm: cannot remove 'd*.pdf': No such file or directory
sh-4.1$ /usr/bin/libreoffice --headless -convert-to pdf --outdir /tmp/ayb /tmp/ayb/document_34.doc
sh-4.1$ rm d*.pdf
rm: cannot remove 'd*.pdf': No such file or directory
sh-4.1$ exit
exit
[root@desktop ~]# su NotionCommotion
sh-4.1$ /usr/bin/libreoffice --headless -convert-to pdf --outdir /tmp/ayb /tmp/ayb/document_34.doc
convert /tmp/ayb/document_34.doc -> /tmp/ayb/document_34.pdf using writer_pdf_Export
sh-4.1$ rm d*.pdf
sh-4.1$ HOME=/tmp/ayb; /usr/bin/libreoffice --headless -convert-to pdf --outdir /tmp/ayb /tmp/ayb/document_34.doc
sh-4.1$ rm d*.pdf
rm: cannot remove 'd*.pdf': No such file or directory
sh-4.1$ /usr/bin/libreoffice --headless -convert-to pdf --outdir /tmp/ayb /tmp/ayb/document_34.doc
sh-4.1$ rm d*.pdf
rm: cannot remove 'd*.pdf': No such file or directory
sh-4.1$
    
por user1032531 02.08.2013 / 17:36

1 resposta

1

Eu realmente não tenho ideia do que você está tentando fazer aqui.

  • $HOME é o diretório pessoal do usuário, por que você mudaria isso para executar um programa?

  • Você está explicitamente dizendo ao libreoffice para criar um pdf no diretório /tmp/ayb , que não parece ser o seu diretório atual. Você está, então, tentando excluir um pdf do seu diretório atual e, claro, ele não existe porque você disse para colocá-lo em /tmp/ayb .

O que acontece se você não alterar HOME ou seu usuário ou qualquer outra coisa e apenas executar:

$ libreoffice --headless -convert-to pdf --outdir /tmp/ayb /tmp/ayb/document_34.doc
$ ls /tmp/ayb/d*.pdf
    
por 02.08.2013 / 18:14