Unix faz com que todos os arquivos sejam copiados para o diretório de propriedade de mim

0

Estou trabalhando com um grupo em um supercomputador e estamos armazenando todos os arquivos de projeto em meu diretório pessoal, o problema é que, se preciso gerenciar alguns dos arquivos, não consigo, porque eles possuem os arquivos. Eu preciso de uma maneira para todos os arquivos colocados dentro do diretório em minha pasta pessoal serem de minha propriedade. As outras pessoas estão fazendo o upload dos arquivos usando o SFTP

    
por DontTurnAround 27.06.2012 / 19:22

3 respostas

2

Como root, execute chown username:group -R * e substitua seu nome e grupo.

Agora, é claro, eles podem não ser capazes de editá-los agora, então adicione-os ao seu grupo e dê a ele permissões editáveis em grupo. ( chmod xyz -R * ) e substitua "xyz" pelas permissões apropriadas.

    
por 27.06.2012 / 19:26
2

Você pode alterar o proprietário com chown , mas não é uma boa solução, porque você deve fazer isso sempre.

Eu resolveria sua tarefa usando o bit SGID para um diretório.

Você pode definir esse bit para o diretório no qual os usuários fazem upload de arquivos e, em seguida, esses arquivos terão seu grupo como proprietário de um grupo.

$ mkdir -p ~/incoming/
$ chmod o+wt ~/incoming/   # making the directory world writeable; setting sticky bit to avoid deletion of files
$ chmod g+s ~/incoming/    # setting setgid for the directory

E não se esqueça de definir umask 002 para o servidor ftp / sftp.

Para o servidor SFTP, você pode fazer isso em sshd_config . Reescreva a linha com o sftp-server desta forma:

Subsystem sftp /usr/lib/openssh/sftp-server -u 022
    
por 27.06.2012 / 19:32
1

Se for apenas uma questão de precisar editar os arquivos em um determinado diretório, onde outras pessoas têm propriedade dos arquivos, você poderá criar um grupo e adicionar alguns modos a esse diretório. (Substituindo folder pelo caminho do seu diretório pessoal):

  1. Crie um grupo (se você ainda não possui um) que você e todas as outras pessoas com quem você está trabalhando pertencem. Veja o comando groupadd . Em seguida, adicione todos a esse grupo usando o usermod . Você pode verificar quem está nesse grupo olhando para o arquivo /etc/group .

  2. Altere a máscara padrão da pasta para que o grupo seja de leitura / gravação.

    setfacl -d -m g::rwx folder
    
  3. Crie um setgid para que, quando novos arquivos forem colocados nesse diretório, eles pertençam ao grupo:

    chmod g+ws folder
    
  4. Agora defina o grupo e as propriedades:

    chown -R youruser:thegroupname folder
    chmod -R g+w folder
    

Se você realmente quer forçar todos os arquivos a serem de sua propriedade, você precisa fazer com que o mecanismo que eles colocam esses arquivos alterem a propriedade para você, seja ftp ou samba, etc. Caso contrário, você pode usar um observador de arquivos como lsyncd para assistir a pasta e alterar a propriedade quando novos arquivos aparecerem.

    
por 27.06.2012 / 19:36