Я работаю с группой на суперкомпьютере, и мы храним все файлы проекта в моем домашнем каталоге, проблема в том, что если мне нужно управлять некоторыми файлами, я не могу, потому что они владеют файлами. Мне нужен способ, чтобы все файлы, размещенные в каталоге в моей домашней папке, принадлежали мне. Другие люди загружают файлы, используя SFTP
3 ответа
В качестве пользователя root запустите chown username:group -R *
и замените свое имя и группу.
Конечно, теперь они могут не иметь возможности редактировать их сейчас, поэтому добавьте их в свою группу и предоставьте ей права на редактирование в группе. (chmod xyz -R *
) и замените "xyz" соответствующими разрешениями.
Вы можете сменить владельца с помощью 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
Если вам нужно иметь возможность редактировать файлы в определенном каталоге, где другие люди владеют файлами, вы можете создать группу и добавить несколько режимов в этот каталог. (Замена folder
на путь вашего домашнего каталога):
Создайте группу (если у вас ее еще нет), к которой вы и все другие люди, с которыми вы работаете, принадлежат. Смотрите команду groupadd. А затем добавьте всех в эту группу, используя usermod. Вы можете проверить, кто находится в этой группе, посмотрев файл
/etc/group
.Измените маску папки по умолчанию, чтобы группа была доступна для чтения / записи.
setfacl -d -m g::rwx folder
Создайте setgid, чтобы при размещении новых файлов в этом каталоге они входили в группу:
chmod g+ws folder
Теперь установите группу и владельцев:
chown -R youruser:thegroupname folder chmod -R g+w folder
Если вы действительно хотите, чтобы все файлы принадлежали вам, вы должны сделать так, чтобы механизм, в котором они помещают эти файлы, менял вас, если это ftp, samba и т.д. В противном случае вы можете использовать средство просмотра файлов, например lsyncd для просмотра папки и изменения владельца при появлении новых файлов.