Como faço para criar um arquivo como usuário e depois modificá-lo como outro usuário?

2

Eu tenho um script que faz um "sufácio" e então executa exp. Eu preciso armazenar esse arquivo para um diretório / app / dumps que o usuário "backups" tem acesso para ler + gravar o arquivo.

Qual é a maneira correta de configurar o diretório / app / dumps para que os "backups" possuam a propriedade de modificar quaisquer arquivos no diretório, mas o "oracle" ainda pode gravar dados no diretório?

    
por Rocky 08.08.2014 / 15:48

3 respostas

0

A maneira mais fácil de contornar isso é usar o diretório sticky bit junto com as permissões apropriadas do grupo.

  1. Crie um novo grupo: groupadd orabak
  2. Adicione os dois usuários ao grupo: usermod -G orabak oracle; usermod -G orabak backups
  3. Defina o grupo de bits pegajosos no diretório: chmod g+s /app/dumps
  4. Certifique-se de que, quando os usuários do oracle e backups gravam arquivos, eles fazem isso com o conjunto de bits de gravação do grupo (você pode usar umask para isso)
por 08.08.2014 / 16:56
0

Você deve conseguir realizar o que deseja com esses dois comandos:

chown oracle:backups /app/dumps
chmod 2370 /app/dumps

chown define o proprietário do diretório para o usuário oracle e o grupo para o usuário de backup.

chmod faz o seguinte:

  • Define o bit de setgid
  • Concede ao proprietário (oracle) acesso de gravação / execução
  • Dá ao grupo (backups) acesso de leitura / gravação / execução

Configurar o setgid em um diretório significa que um arquivo criado no diretório herdará o grupo do diretório e não do criador. Em sua instância, isso significa que quaisquer arquivos escritos lá pelo oracle terão backups como um grupo.

O Oracle pode gravar no diretório, mas não lê-lo. Se precisar, altere as permissões para 2770.

Isso também pressupõe que seu script esteja criando os arquivos com acesso de leitura / gravação no diretório / app / dumps. Se esse não for o caso, você pode executar setfacl -d -m g::rw /app/dumps para definir as permissões de grupo padrão dos arquivos criados em / app / dumps como leitura / gravação.

    
por 08.08.2014 / 16:56
0

Se você ls -alh /somedir você vai ter algo assim

ls -alh /somedir 
drwxrwxrwx 1 owner   group  [size and date]  .
drwxrwxrwx 1 powner  pgroup [size and date]  ..
-rwxrwxrwx 1 owner   owner  [size and date]  somefile

Assim que você puder entender isso, será possível descobrir quais permissões e proprietários você deve definir para seus arquivos. Esta entrada Ubuntu Wiki irá esclarecer você.

Isso deixa você com algumas opções:

  1. Crie uma garupa chamada backup e adicione o usuário backups e oracle a ela. Os arquivos agrupados por backups -group agora compartilharão os direitos de acesso com os usuários backups e oracle .
  2. Crie um grupo backups adicione o usuário backups ot. Conceda a propriedade ao usuário oracle e à propriedade do grupo ao grupo backups . Isso dá a você direitos de usuário oracle e todos os membros do grupo backup
  3. Faça o mesmo como em 2. mas com oracle

As ferramentas para isso são groupadd, chown, chmod e usermod. As páginas man fornecerão informações mais detalhadas. Eu sei que é um pouco de uma resposta RTFM. Mas tenho certeza de que, se você fizer a leitura, poderá lidar com as permissões de arquivo do Linux no futuro. =) Boa sorte

paradoxon

    
por 08.08.2014 / 17:04

Tags