Я работаю с группой на суперкомпьютере, и мы храним все файлы проекта в моем домашнем каталоге, проблема в том, что если мне нужно управлять некоторыми файлами, я не могу, потому что они владеют файлами. Мне нужен способ, чтобы все файлы, размещенные в каталоге в моей домашней папке, принадлежали мне. Другие люди загружают файлы, используя SFTP

3 ответа3

2

В качестве пользователя root запустите chown username:group -R * и замените свое имя и группу.

Конечно, теперь они могут не иметь возможности редактировать их сейчас, поэтому добавьте их в свою группу и предоставьте ей права на редактирование в группе. (chmod xyz -R *) и замените "xyz" соответствующими разрешениями.

2

Вы можете сменить владельца с помощью chown но это не очень хорошее решение, потому что вы должны делать это всегда.

Я бы решил вашу задачу, используя бит SGID для каталога.

Вы можете установить этот бит в каталог, куда пользователи загружают файлы, и тогда эти файлы будут иметь вашу группу в качестве владельца группы.

$ 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

И не забудьте установить umask 002 для сервера ftp/sftp.

Для SFTP-сервера это можно сделать в sshd_config . Перепишите строку с sftp-сервером следующим образом:

Subsystem sftp /usr/lib/openssh/sftp-server -u 022
1

Если вам нужно иметь возможность редактировать файлы в определенном каталоге, где другие люди владеют файлами, вы можете создать группу и добавить несколько режимов в этот каталог. (Замена folder на путь вашего домашнего каталога):

  1. Создайте группу (если у вас ее еще нет), к которой вы и все другие люди, с которыми вы работаете, принадлежат. Смотрите команду groupadd. А затем добавьте всех в эту группу, используя usermod. Вы можете проверить, кто находится в этой группе, посмотрев файл /etc/group .

  2. Измените маску папки по умолчанию, чтобы группа была доступна для чтения / записи.

    setfacl -d -m g::rwx folder
    
  3. Создайте setgid, чтобы при размещении новых файлов в этом каталоге они входили в группу:

    chmod g+ws folder
    
  4. Теперь установите группу и владельцев:

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

Если вы действительно хотите, чтобы все файлы принадлежали вам, вы должны сделать так, чтобы механизм, в котором они помещают эти файлы, менял вас, если это ftp, samba и т.д. В противном случае вы можете использовать средство просмотра файлов, например lsyncd для просмотра папки и изменения владельца при появлении новых файлов.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .