Назад | Перейти на главную страницу

Linux / CentOS - необходимо установить разрешения только для чтения и записи для будущих каталогов.

У меня очень мало опыта работы с Linux любого типа, поэтому для начала я полностью увлекаюсь.

Начальник попросил меня настроить FTP-сервер на базе CentOS. Пока все идет так, как ожидалось, и мне удалось настроить все, что мне нужно. При создании нового пользователя в его домашнем каталоге автоматически создаются две папки - загрузка и загрузка.

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

Мы будем благодарны за любую помощь по этой проблеме!

Спасибо! Ян

Для CentOS вы, вероятно, предпочтете использовать vsftpd. Это отличный демон для безопасности и производительности. https://security.appspot.com/vsftpd/vsftpd_conf.html

Вы можете указать, может ли пользователь иметь среду chroot, (chroot_local_user=YES); Вы можете указать предопределенный каркас для его дома при создании пользователя (useradd -k /path/to/your/skel)

По умолчанию запрет на удаление чего-либо из папок является типичным ограничением анонимных пользователей, которое вы можете получить с помощью chown_uploads.

Посмотрите в маска команда. Установите его в / etc / profile, и ваши пользователи по умолчанию будут создавать файлы с указанными привилегиями.

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

Нам потребуется дополнительная информация о вашей настройке, чтобы дать лучший ответ, но для начала вы можете изменить сценарий, который вы используете для создания upload и download чтобы установить разрешения и сменить владельца, например:

# create the directories
mkdir $USERHOME/upload $USERHOME/download

# Set permissions on those directories to make them read-only for $USER
chown root:root $USERHOME/upload $USERHOME/download
chmod 755 $USERHOME/upload $USERHOME/download

Вы можете использовать другого пользователя, кроме root для владельца, например, пользователя FTP.

Хитрость в этой схеме заключается в том, что пользователь предположительно владеет $USERHOME, и поэтому может удалить $USERHOME/upload и $USERHOME/download каталоги, если они не пустые (хотя пользователь не сможет удалить непустые каталоги) (пользователь может это сделать, потому что удаление этих каталогов зависит от разрешений в родительском каталоге $ USERHOME, а не от владения сами подкаталоги).

Чтобы предотвратить это (при сохранении возможности пользователя легко записывать файлы в $USERHOME), вы также можете сделать это в своем скрипте:

touch $USERHOME/upload/.dummyfile $USERHOME/upload/.dummyfile

Пользователь не сможет удалить каталог, потому что .dummyfile здесь.