LINUX.ORG.RU

Пользователь только для SFTP

 


1

1

Доброе время суток All, Для начала, я тут по шерстил и нашел несколько примеров, и потыкал. но увы везде одна и та же ботва.

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

Что есть сейчас: Для начала я изучил маны по SSH и оказалось что все просто и пушисто, я создал юзверя :

sudo adduser –shell /bin/false dl С нечленораздельным паролем по самое небалуй

а потом в sudo nano /etc/ssh/sshd_config добавил: Match User dl ForceCommand internal-sftp PasswordAuthentication yes ChrootDirectory /mnt/HDDS/Downloads/ PermitTunnel no AllowAgentForwarding no AllowTcpForwarding no X11Forwarding no

И попытался залезть на это все sftp dl@myhost.ru и получил client_loop: send disconnect: Connection reset Connection closed

Убил много времени и мозгов пока в конфигурации SSH не выставил : ChrootDirectory /

И о боже оно работает, но , вот в чем беда , я могу лазить куда угодно !!!!

самое смешное что даже указание хомяка юзверя ChrootDirectory /home/dl

вызывает ту же ошибку fatal: bad ownership or modes for chroot directory component

«/home/dl/» Это хомяк юзера

именно то что у меня указано в настройках SSH ChrootDirectory /home/dl

И ругается оно на недостаток прав, на свой хомяк ? $ ls /home/ drwxr-xr-x 3 dl dl 4096 янв 17 09:43 dl/

я понимаю что у меня кривые руки, но я даже пару мануалов видел где приводились те же действия как рабочие, что я делаю не так ?



Последнее исправление: Fastereus (всего исправлений: 5)
Ответ на: комментарий от firkax

Забыл кинуть лог сервака fatal: bad ownership or modes for chroot directory component «/home/dl/» вот такая хрень там есть Это хомяк юзера

именно то что у меня указано в настройках SSH ChrootDirectory /home/dl

И ругается оно на недостаток прав, на свой хомяк ?

Fastereus
() автор топика
Ответ на: комментарий от gruy

Окей:

ChrootDirectory /mnt/DownLoads

/mnt$ ll

drwxrwxrwx 10 root debian-transmission 12288 янв 17 09:47 DownLoads/

fatal: bad ownership or modes for chroot directory «/mnt/DownLoads»

Ничего не поменялось , или еще и на группу root сменить ?

Скажу больше , я юзера даже в группу трансмишена, юзера засовывал и толку нет …

PS ssh перезапускаю … после изменения параметров ….

Fastereus
() автор топика
Последнее исправление: Fastereus (всего исправлений: 3)
Ответ на: комментарий от gruy

друг, я подозреваю что сейчас вызову агрессию но есть такая поговорка «если ты умный и ведешь как дурак дурью мается, то у тебя всего два варианта. первый помочь, а второй промолчать, иначе сам будешь выглядеть не лучше»

в итоге знаешь объясни, нет спасибо проходите мимо, но эта проблема на данном форуме есть в четырех постах, и все не имеют решения …

Fastereus
() автор топика
Ответ на: комментарий от Fastereus

ChrootDirectory

Specifies the pathname of a directory to chroot(2) to after authentication. All components of the pathname must be root-owned directories that are not writable by any other user or group. After the chroot, sshd(8) changes the working directory to the user's home directory.

Выполни это требование и будет тебе chroot.

vel ★★★★★
()
mkdir /shrsht
chmod 600 /shrsht
chown ...

И всё что надо кидаешь в /shrsht.

Туда же чрутаешься.

anonymous
()

Убил много времени и мозгов пока в конфигурации SSH не выставил : ChrootDirectory /

Тебе надо полазить по сети и посмотреть что такое чрут или chroot и как и для чего его делают, как с этим разберёшся так и поймёшь свою ошибку и способы её исправления.

torvn77 ★★★★★
()
Ответ на: комментарий от Fastereus

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

Тебе и помогают - учат пользоваться базовой документацией. Иначе ты так и останешься дураком, на каждую мелочь орущим «помогите я ничё не понял».

firkax ★★★★★
()
Ответ на: комментарий от firkax

Уважаемый(ая, ые) гр. firkax! Мы получили прочли ваше интересное письмо. Сообщаемые вами факты хорошо известны науке и интереса не представляют. Тем не менее, мы благодарим вас за ваше наблюдение и желаем вам успехов в работе и личной жизни.

fegipat
()
Ответ на: комментарий от torvn77

Спсибо, вы и еще один человек который процитировал ман, как бы это глупо не звучало помогли …

во первых спасибо во вторых все равно хрень выходит

Я мимо уха пропустил что весь путь должен пренадлежать руту и хуже всего что не допускается запись а следовательно идея провальна …

суть в чем у меня есть торент качалка , которая все льет в /mnt/DownLoads

Это вообще отдельный винт, и если ему запретить запись в директорию то SFTP работает , ура !!! но при этом ТРАНСМИШИН не может создать там папку под торрент, что сводит все усилия к нулю …

это как то решить можно ? мне почему то кажется что ссылки работать не будут :)

как можно догадаться на /mnt я точно доступ давать не готов :)

Fastereus
() автор топика
Последнее исправление: Fastereus (всего исправлений: 1)
Ответ на: комментарий от Fastereus

как можно догадаться на /mnt я точно доступ давать не готов :)

Создай внутри своего /mnt/Downloads поддиректорию, чрут делай в /mnt/Downloads, а трансмишшену дай права в поддиректорию.

slowpony ★★★★★
()
Ответ на: комментарий от slowpony

У меня такое количество всего завязано на ту папку что переделка это ППЦ

но я решил так /mnt/sftp папка удовлетворяющая chroot у

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

Fastereus
() автор топика

Как пример:

# создаём группу для SFTP-доступа
sudo groupadd sftp-only

# разрешаем только sftp-доступ для группы
sudo tee -a /etc/ssh/sshd_config << EOF
Match Group sftp-only
        AllowTcpForwarding no
        X11Forwarding no
        PermitTunnel no
        AcceptEnv LANG LC_*
        ForceCommand internal-sftp
        ChrootDirectory /opt/sftp-root/%u
EOF

sudo systemctl restart sshd

# добавляем юзера с доступом только к sftp
sudo useradd -g sftp-only sftp-user1
sudo passwd sftp-user1
sudo mkdir -m 755 /opt/sftp-root/sftp-user1
sudo chown root:root /opt/sftp-root/sftp-user1 # владельцем обязательно должен быть root

# расшариваем директории для юзера
sudo mkdir -m 755 /opt/sftp-root/sftp-user1/share1
sudo mkdir -m 755 /opt/sftp-root/sftp-user1/share2
#sudo mount --bind 'что_расшарить_1' /opt/sftp-root/sftp-user1/share1
#sudo mount --bind 'что_расшарить_2' /opt/sftp-root/sftp-user1/share2

DiMoN ★★★
()
Ответ на: комментарий от DiMoN

чуть поздно , НО СПАСИБО, засада была несколько в другом в не понимании того что все папки по пути должны быть недоступны ни для кого кроме рута …

кстати порадовал мсикрософт , там руский весь кракозяброй , 21 век UTF ….

Fastereus
() автор топика
Последнее исправление: Fastereus (всего исправлений: 1)
Ответ на: комментарий от Fastereus

Так народ а проблему с русскими буквами решаема? не черт с ней с виндой,но и андройд тоже во всех клиентах кракозябру рисует

а вот на никсах проблем нет … WTF?

Fastereus
() автор топика
Последнее исправление: Fastereus (всего исправлений: 1)
Ответ на: комментарий от DiMoN

проблему решил , благо тут в мане небыло подводных камней … всем спасибо, точнее тем кто пытался помочЪ

с руским кракозябром проблема решается так : 1- настройками кодировки SSH на серваке, но я это проигнори, мало литчо потянет 2- нормальные клиенты имеют возможность перекодировки , в общем у меня ssh UTF-8 юзает , я выставил и все полетело , как заставить клиент у вЕНДЫ жевать utf-8 я так и не осознал (консольный клиент, что то вроде Bitvise вообще не напрягаясь работало)

Fastereus
() автор топика
Ответ на: комментарий от Fastereus

андройд

Забанься, дибилоЙд.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.