Я могу успешно настроить группу пользователей SFTP и пользователей SFTP, используя приведенный ниже скрипт на экземпляре AWS EC2. Несмотря на то, что я смог ограничить доступ пользователей SFTP в группе sftp_users к каталогам друг друга и их содержимому, теперь мне нужно создать пользователя SFTP admin который может просматривать и просматривать все содержимое всех папок SFTP и перемещать их , Это возможно? Как я уже говорил, моим требованием было бы создать отдельных пользователей SFTP с доступом ТОЛЬКО к их отдельным папкам и создать администратора / суперпользователя, который мог бы получать доступ ко всем папкам sftp пользователей через SFTP. Это нормально, если пользователь с правами администратора имеет доступ ко всей файловой системе, а также к папкам пользователей SFTP. Я пытался исследовать онлайн с моими ограниченными навыками Linux в этом контексте, но ничего не смог достичь.

echo "`date` Creating SFTP directory...."
mkdir -p /data/sftp

echo "`date` updating sshd_config"
sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/' /etc/ssh/sshd_config
echo 'Match Group sftp_users' >> /etc/ssh/sshd_config
echo 'ChrootDirectory /data/sftp' >> /etc/ssh/sshd_config
echo 'ForceCommand internal-sftp' >> /etc/ssh/sshd_config

echo "`date` Set permissions to 701 for all folders on the efs mount"
chmod -R 701 /data

echo "`date` Set owner to root:root for all folders on the efs mount"
chown -R root:root /data

echo "`date` adding sft_users group"
groupadd sftp_users

echo "`date` restarting sshd"
systemctl restart sshd

###### Below is my user creation script that I eventually use to create individual SFTP users ######
echo "`date` creating /usr/local/bin/create_sftp_user.sh"
echo -e '#!/bin/bash\n\nUSER_NAME=$1\nuseradd -g sftp_users -d /$USER_NAME -s /sbin/nologin $USER_NAME\n' > /usr/local/sbin/create_sftp_user.sh
echo -e 'passwd $USER_NAME\nmkdir -p /data/sftp/$USER_NAME\n' >> /usr/local/sbin/create_sftp_user.sh
echo -e 'chown $USER_NAME:sftp_users /data/sftp/$USER_NAME\n' >> /usr/local/sbin/create_sftp_user.sh
echo -e 'chmod 700 /data/sftp/$USER_NAME\n' >> /usr/local/sbin/create_sftp_user.sh
chmod +x /usr/local/sbin/create_sftp_user.sh

1 ответ1

0

Вы должны быть в состоянии достичь этого, используя списки контроля доступа к файлам (FACL). Вы можете, например, создать группу "sftpadmin", членом которой является только пользователь с правами администратора, а затем заставить все файлы в /data /sftp принадлежать (и записывать) группе "sftpadmin".

Как использовать FACL, рассмотрено в Unix & Linux StackExchange:https://unix.stackexchange.com/questions/165865/forcing-owner-on-created-files-and-folders/165986#165986

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