Como criar um diretório que terá acesso ao usuário que está instalando um pacote?

0

Estou empacotando um dos meus projetos no Debian. O projeto espera que um diretório seja criado em XDG_DATA_HOME ou ~/.local/share/ , onde os arquivos de dados serão mantidos. Agora estou tentando criar e alimentar os dados iniciais usando o script postinst enviado com o pacote .deb . O problema é que os pacotes são instalados como root, o diretório é criado como root e o usuário que o instala não terá permissão de gravação nele.

Minha pergunta é como posso criar o diretório para que o usuário que está instalando o pacote tenha permissão de gravação nele e em todos os subdiretórios?

    
por Navaneeth K N 02.03.2014 / 04:40

2 respostas

4

O que você está pedindo não faz sentido. O usuário que está fazendo a instalação é sempre root. Se você quiser que novos usuários tenham esse arquivo automaticamente em seu diretório pessoal, adicione-o em / etc / skel. Se um usuário existente não o possui, então o programa precisa ser capaz de lidar com isso, possivelmente criando-o automaticamente, possivelmente copiando os padrões de / etc / skel, ou talvez / usr / share.

    
por 02.03.2014 / 05:02
1

Até onde sei, o postinst é apenas um script de shell para que você possa fazer o que quiser (com razão) dentro deste script. Talvez fazer um chown ou chmod no diretório depois definiria as permissões da maneira que você deseja.

debian/postinst:
...
configure)
the_user="xyz"
#Creating the user if it does not exist
if ! getent passwd $the_user > /dev/null; then
adduser $the_user
fi

chown -R $the_user /path/to/some/file
    
por 02.03.2014 / 04:53