Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Возможно ли видеть названия файлов с кириллицей на WindowsServer в каталоге, примонтированном по NFS?

Лучший ответ:
Windows хочет кодировку файлов в CP1251. UTF-8 или KOI8-R он не понимает и не сможет понять. Придётся на сервере все имена файлов конвертнуть в CP1251.
У Windows далеко неполноценный клиент NFS. Будет проще мигрировать на SMB или использовать стороннее ПО для работы с NFS

Худший ответ:
тут предлагаю костыль с виртуальной фс на линухе, которая транскодирует имена файлов и отдает немощным в той кодировке которую они умеют
https://superuser.com/questions/302407/what-to-do-...
Вопрос: Я правильно понимаю права группы Администаторы?

Лучший ответ:
Нужно подключиться к его компу оснасткой управления компьютером и добавить его учетку в локальную группу "Администраторы" на его компьютере. После чего скорее всего ему нужен будет ребут.

Худший ответ:
Администраторы (Administrators) — находится в контейнере Builtin каждого домена. Эта группа имеет полный доступ ко всем контроллерам домена и данным в контексте именования домена. Она может изменять членство во всех административных группах домена, а группа Администраторы (Administrators) в корневом домене леса может изменять членство в группах Администраторы предприятия (Enterprise Admins), Администраторы Схемы (Schema Admins) и Администраторы домена (Domain Admins). Группа Администраторы в корневом домене леса имеет наибольшие полномочия среди групп администрирования в лесу.
Администраторы домена (Domain Admins) — находится в контейнере Users каждого домена. Эта группа входит в группу Администраторы своего домена. Поэтому она наследует все полномочия группы Администраторы. Кроме того, она по умолчанию входит в локальную группу Администраторы каждого рядового компьютера домена, в результате чего администраторы домена получают в свое распоряжение все компьютеры домена.
а как же гугл?
Вопрос: Как определить подходящую компанию на рынке труда веб-разработки для первого раза?

Лучший ответ:
Да идите туда куда берут, в начале карьеры можешь менять по три четыре работы в год

Худший ответ:
а) автоматизировать, оптимизировать процессы внутрии компании, что сократит человеко- и ресурсо-затраты (решение: масштабные ИС)
Масштабные ИС на базе 1С. Web проходит мимо.
Вопрос: Брать ли SSD диски для сервера?

Лучший ответ:
брать

Худший ответ:
> Статики отдается очень мало.
тогда нет смысла, так как нужно покупать диски класса Enterprise с параметром суточной перезаписи полного объёма диска больше 1.0,
такое решение будет дорогим,
есть смысл купить обычные диски SATA или более дорогие SAS с пропусконой способностью 6G или 12G
> В общем, насколько мне известно, БД кеширует в оперативной памяти и ее должно > быть больше 10ГБ.
здесь имхо смотреть нужно в сторону кеша для дискового контроллера, так как оперативная память не сильно поможет,
также стоит прикупить и энергонезависимую батарейку на контроллер, в случае выключения света или перебоев с электропитанием
> Что насчет процессоров? Стоит ли брать сервер с 2-мя процессорами?
имхо наши Заказчики больше смотрят на не количество процессоров, а на число ядер, кеш и тактовую частоту,
здесь, думаю, надо тестировать - купить 2 сервера с одинаковыми параметрами,
но один с 1 процессором, а другой с двумя и посмотреть монитор работы сервера БД (статистику),
хотя стоит ли экономить на 20т.р. здесь - решать Вам )
Всем Доброго дня, на связи
Вопрос: Как подогнать отступы под hover?

Лучший ответ:
Что? Какой 1 пиксель бордера? У вас padding при ховере задается, 12 пикселов. https://jsfiddle.net/Ltnsep3j/1/

Худший ответ:
Кода и примера нет, но я могу предположить, что у элемента должен быть изначально бордер с color transparent
Вопрос: Как увидеть клиентов сети за WAN?

Лучший ответ:
на тенде отключить dhcp, приходящий кабель включить в любой лан порт.
получите такой себе свич, сеть будет одна.

Худший ответ:
не так то, что на tenda у вас включен NAT для пакетов из 192.168.6.0/24 в 192.168.0.0/24. его нужно отключить.
Вопрос: Почему процессор перегружается на виндовс 10?

Лучший ответ:
Ответ нужно искать в списке процессов, которые нагружают процессор.

Худший ответ:
Не стал больше заморачиваться, переустановил винду, вроде как помогло. Но проблема вылазит уже не первый раз, буду надеяться, что больше не повторится такое
Вопрос: Как написать регулярное выражение, чтобы разбить на две переменные слова с тире?

Лучший ответ:
можно без регулярки$string = 'первое слово - второе слово';
$arr = explode(' - ',$string); //если у вас разделитель просто тире, а не как в примере, то убрать пробелы в ' - '
//в $arr[0] - первое слово, в $arr[1] - второе слово

Худший ответ:
проще сделать через explode
Вопрос: Mikrotik. Как сделать блокировку соц.сетей и других интернет страниц для определенных IP в локальной сети?

Лучший ответ:
начиная с версии v6.36, в адресные листы можно добавлять доменные имена!
    *) firewall — allow to add domain name to address-lists (dynamic entries for resolved addresses will be added to specified list);
если пк не много то
в IP > Firewall. > Address_Lists добавляете нужные сайты с именем одной группу./ip firewall address-list
add address=mail.ru list=web_block
add address=drom.ru list=web_block
и правило в фаервол/ip firewall filter
add action=drop chain=forward dst-address-list=web_block src-address=192.168.100.2
add action=drop chain=forward dst-address-list=web_block src-address=192.168.100.5
раньше соцсети я блокировал так:
it-pages.ru/mikrotik-blokirovka-sajjtov-s-pomoshhy...

Худший ответ:
add chain=forward comment="accept VK" content=vk.com src-address-list=allowsocial резрешили всем входить вк из адерслиста "allowsocial" туда добавляем разрешенные ип адреса
add action=reject chain=forward comment="drop vk.com" content=vk.com src-address=192.168.0.0/24 - запретили всем.
Вопрос: Зачем нужны дизлайки в отзывах Google Play?

Лучший ответ:
Во-первых, это не like и dislike, а ответы на вопрос "был ли этот комментарий полезен", да или нет.
Во-вторых, когда Google play определяет, какие комментарии показывать первыми в топе положительных и отрицательных, он опирается на это (вероятно, не только на это).
В-третьих, разработчик, в принципе, может также обращать внимание на те комментарии, которые получили больше поддержки, и наоборот, чтобы понять, что действительно волнует пользователей. Естественно, это ваше дело, поступать ли так.

Худший ответ:
Нужны дизлайки конечно же чтобы показать, что отзыв может быть нечестным, накрученным и так далее. Хотя механизм спорный, согласен. На самом деле отзывы нужны, особенно качественные. Это своеобразная покупательская культура, которую явно нужно повышать, чтобы зайдя на отзовик или форум можно было реально получить рекомендацию, где все четко расписано и так далее. Я например учился писать отзывы, в том числе заказные или личные, которые хотел оставить, чтобы они были информативными. Почитал такой источник инфы по этому делу. Писать хороший и информативный отзыв нужно учиться и тут как раз удалось найти чуть ли не пошаговую инструкцию по тому, что важно учитывать при оставлении отзыва. Тогда и дизлайки словить будет трудно =)
Вопрос: Запуск cron'a с условиями?

Лучший ответ:
if($today == $three_days)
Вы ожидаете совпадение с точностью до секунды
но при этом Запускаю крон ... в 0-01
И в то-же время mktime(0, 0, 0, $m, $d+3, $y);то есть 00:00
Удивлюсь, если оно хоть когда-то сработает.

Худший ответ:
У вас не корректное сравнение. Дата должна не равняться вашему $three_days, а быть между ним и 23:59 того же дня.
Также, лучше работать с DateTime, где есть DateTime::diff, DateTime::add и.т.п., это намного удобнне, нагляднее и лаконичнее, чем всякие mktime|date и.т.п.
Вопрос: Сколько по времени вы затрачиваете на верстку?

Лучший ответ:
Посылай заказчика в пешее эротическое путешествие.
У меня КАЧЕСТВЕННАЯ верстка такого проекта (посмотрел пример) займет 4-5 дней по 8 часов.
Оценивал главную, внутренние и различные возможные косяки с адаптивностью.
Это с условием, что весь контент предоставлен и голову ломать не надо.
Тупо поработать кодогенератором.
За 10 часов будет куча говнокода, куча косяков.
Вообще с таким заказчиком без денег останетесь.

Худший ответ:
Низкоквалифицированная верстка вымирает.
Лично я уже очень давно пользуюсь или фреймворками или готовые (качественные) шаблоны покупаю за смешные копейки.
Вы пытаетесь на рынке, который требует дешевую верстку, работать по методам рынка, где покупают дорогую верстку.
Используйте CSS-фреймворки (точнее 1 шт. освойте как следует).
1,5 дня - это мало. Берите дороже - как по срочному тарифу.
Вопрос: Как большие сайты справляются с отправкой e-mail?

Лучший ответ:
Пользуются сторонними сервисами. Если очень большие объемы, то есть смысл использовать https://aws.amazon.com/ses/ разница в цене с тем же mailchimp довольно внушительная.

Худший ответ:
свой сервис. одна рассылка может быть и 140К
Вопрос: Как начать работать разработчиком SQL без тех образования?

Лучший ответ:
У меня ни разу не спрашивали о высшем образовании (которого у меня нет). Работодателя интересует только знания и навыки

Худший ответ:
www.sql-ex.ru - тренироваться
Вопрос: Можете привести примеры микроконтрллеров?

Лучший ответ:
Микроконтроллеры?
В последнее время - приличная часть бытовой техники - всевозможные пароварки, мультиварки, микроволновые печи (те, что с кнопками, а не механическими ручками), в некоторых случаях даже лампы (те, что по Bluetooth управляются, да), вероятно даже стиральные машины.
Про телевизоры даже не говорим, некоторые хвастаются "Двухядерным процессором"(!) (интонация рекламщика)
Далее... Даже домашние телефоны - и те могут оснащаться микроконтроллерами (с экраном, естественно; радиотрубки, если я правильно помню - в подавляющем большинстве случаев содержат МК).
На сладкое: Электронные часы. Формально, даже простые вида Montana (ретро) и те содержат МК. Заточеный под одну конкретную функцию, и не перепрограммируемый, но всё же.
А относительно недавние Sony SmartWatch (что 1, что 2) - так вообще на базе STM32 построены.
Pebble, кстати, так же работают на микроконтроллере.
Подозреваю, что и AppleWatch, но там скорее всего, более "толстый" процессор может быть.
Сейчас куда не посмотри, все устройства, умнее калькулятора, но глупее смартфона, будут содержать микроконтроллер.

Худший ответ:
сейчас грань между процессором и микроконтроллером очень размыта.
На заре цифровой техники, когда по земле бродили динозавры под процессором понималось лишь то, что в нем содержится только чистый исполнитель, и для его работы требуется набор внешних микросхем без которых он не может работать, ну к примеру для 580вм80 нужен был генератор частот гф24 и куча других
А микроконтроллер имел всю необходимую для работы периферию на борту.
Сейчас большинство производимых процессоров содержит огромное кол-во периферии, потому как это удешевляет его применение. И чистых процессоров практически нет.
ну к примеру тот же роутер имеет всего три микросхемки: процесор (точнее SoC, считай полноценный микроконтроллер), DRAM-память и flash с прошивкой.
Вопрос: Как несколько раз записать в List массив с одним и тем же именем но разными значениями?

Лучший ответ:
Конечно у вас будет один и тот же массив, вы ведь его один раз создали снаружи цикла.
В C# массив - ссылочный тип. Это значит что ваша переменная anyArr хранит в качестве значения ссылку (!) на массив. Если вы скопируете значение переменной, что вы по сути делаете в строке arrList.Add(anyArr); вы скопируете эту самую ссылку на массив, но не сам массив (в результате ссылка на один и тот же массив будет помещена в список 6 раз).
Если хотите иметь 6 разных массивов - создавайте их в цикле, или копируйте исходный, смотря что вам нужно делать. В любом случае, вам нужно 6 разных объектов типа object[] .
Затем читайте про типы-значения и типы-ссылки в C#.

Худший ответ:
arrList это список ссылок на другие списки, т.е. когда вы делаете arrList.Add(anyArr);, то вы добавляете в общем список ссылку на другой список. Поскольку вы создали его всего однажды, то вы добавляете всегда одну и туже ссылку, которая ведет на один и тот же участок памяти. Редактируя эту память, вы одновремено изменяете все списки в общем списке. Сделать как вы хотите можно так:List<object[]> arrList = new List<object[]>();
object[] anyArr = new object[5];

for (int i = 0; i < 6; i++)
{
    anyArr - каждую итерацию цикла for содержание одномерного массива меняется. 

    arrList.Add(anyArr.ToArray());
}
При arrList.Add(anyArr.ToArray()); будет создаваться новый список и уже ссылка на него будет добавляться в общий список.UPD. Зменил ToList на ToArray
Вопрос: Как менять изображение для background-image на сайте, чтобы браузер его обновлял?

Лучший ответ:
Если менять имя изображения при каждом обновлении, то браузер сам обновит её.
https://css-tricks.com/strategies-for-cache-bustin...
https://developers.google.com/web/fundamentals/per...
https://developer.mozilla.org/en-US/docs/Web/HTTP/...

Худший ответ:
При каждом обновлении css файла меняйте ему версию.
Было main.css
Станет main.css?v=2
В таком случаем произойдет обновление кэша у польхователя.
Вопрос: Как эффективно использовать GIT одному человеку в разных проектах?

Лучший ответ:
Возьмите за правило, что когда вы пишете новый функционал - всегда отводить новую ветку от основной. В основной у вас будет лежать код, который на данный момент работает на продакшене.
Тоесть, у вас есть проект. Надо реализовать новую фичу шифрования, например. Вы отводите ветку от основной
git checkout -b feature/encryption
Пишете код, тестируете, рефакторите при необходтимости. После того как фича реализована, мержите ее с основной веткой. Для небольшой команды достаточно вот этих основных команд
git clone  - выкачать репозиторий
git pull – получение изменений из удаленного репозитория
git checkout  - переключиться на ветку
git checkout –b  - отведение новой ветки от текущей с переключением на нее
git add – добавление файлов в индекс
git commit –m ‘’ – коммит с комментарием
git push origin  - пуш закоммиченных изменений в удаленный репозиторий origin
git branch –d  - локальное удаление ветки
git stash save –keep-index + git stash drop – локальное удаление изменений в отслеживаемых файлах

Худший ответ:
Посмотрите на SourceTree: разделение на проекты, ветки под фичи и баги да и вообще удобный и приятный в использовании GUI для Git. И почитайте про git flow
Вопрос: Как собрать / сконфигурировать мощный пк с упором на виртуализацию?

Лучший ответ:
Некоторое время назад я задавался аналогичным вопросом и под аналогичные задачи: хотелось отдельные системы под игры, разработку, и тестирование. Исследовал плюсы и минусы виртуализации и проброса железа в виртуалку и пришел к наиболее оптимальному варианту: мощная рабочая станция с игровой видеокартой, хостовая ОС - Windows, набор виртуалок (порядка 20-30 штук) в VirtualBox для разработки и тестирования, в т.ч. различные дистрибутивы линукса, BSD, OSX, разные версии Windows. В качестве дополнения использую маленький и простой комп на атоме для запуска/тестирования на реальном железе. Проброс железа в виртуальные машины сопряжен с рядом сложностей и вообще не гарантирует отсутствие проблем с в играми и прочем. Ну т.е. проще играть на хосте, чем заниматься решением проблем, которые и сам же себе создаешь пытаясь играть в виртуалке.
По железу - выбираете топовый процессор (если нужна ОСХ - то лучше интел, если не принципиально - то можно и амд) от шести-восьми ядер. Памяти от 32 гигабайт — вполне хватает, например, на несколько запущенных виртуалок под тяжелую разработку (студия, сборка браузеров и т.п — где надо 4-8 ГБ) и десяток-два под мелкие задачи. На ближайшие несколько лет 64 ГБ и процессора на 8-16 ядер в целом хватит под такие задачи без необходимости апгрейда каждые несколько месяцев. Видеокарту выбираете под разрешение монитора и/или их количество: 1080p и 4k — для первого варианта хватит и 1060 поиграть, а вот для 4к лучше таки что-то типа 1080 / Vega64 брать. Накопитель - лучше конечно брать что-то типа PCI-E Samsung 950 Pro — интелловский оптан еще не скоро подешевет и обгонит флеш, да и вообще не факт, что и самсунг к этому времени не подтянет свои продукты (хотя, сильно сомневаюсь, что интел будет слишком сильно вырываться вперед - ведь технически оптан вроде как быстрее любой флеш, но по факту пока лишь по иопсам и задержкам опережает). Объем: зависит от количества виртуалок и их типа — 0.5-1 Тб для большинства хватит вполне, но можно и на 2ТБ взять. Смысла ставить линукс в дуалбут для разработки не имеет особого смысла — да и банально неудобно каждый раз перезагружаться. А на мощной машине вообще не замечаешь разницы в работе текстового редактора на хосте и в виртуалке. В целом — конкректный конфиг зависит от бюджета.

Худший ответ:
Поражён незнанием матчасти и отсутствием опыта у здешних советчиков. Автору. KVM блестяще справится со всеми поставлеными задачами, пробросит целые устройства в гостевую ось. Без каких-то оверхедов и трудностей. Проверено десятками запущенных виртуалок, а не диванными рассуждениями.
Вопрос: Используются ли в Go паттерны?

Лучший ответ:
Нет, в Go нечего такого нет, как и в С# и в любом другом ЯП. Все зависит от вас.

Худший ответ:
https://www.reddit.com/r/golang/comments/6bbkt9/de... пойдет? но вообще то он от С далеко не ушел и ентерпрайз туда не влез
Вопрос: Где есть сайт конфигуратор моноблоков?

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

Худший ответ:
Конфигурации можно на сайте производителя посмотреть.
А доступные в продаже, например, на маркете https://market.yandex.ru/catalog/61323/
Под заказ их не обычно конфигурации не выпускают, по аналогии с ноутбуками - апгрейд можно самостоятельно сделать.
Вопрос: Селектор для родителя?

Лучший ответ:
Родительского селектора в CSS нет и в ближайшем будущем не планируется. Если интересно почему, жми сюда.

Худший ответ:
Как вариант, если нужна стилизация lable в зависимости от состояния инпута, можно поместить label и input  в один блок:<div>
	<input type="radio" id="example">
	<label for="example"></label>
</div>
И в css писать правило:input:checked + label{
    background: red;
}
Клик по лэйблу так же меняет состояние радио инпута.
Те стили, которые вы хотели использовать для label, используйте для родительского блока. 
Кастомный инпут можно сделать с помощью псевдоэлементов label'a, а настоящий инпут сделать невидимым
Вопрос: Как правильно сделать перенос строки на PHP?

Лучший ответ:
Что значит красиво?
Можно просто взять echo implode(PHP_EOL, $randArray);
И каждый элемент выведется с новой строки (между ними будет перенос строки). 
Для верстки понятно, что работать не будет, там уже используйтеecho implode('<br>', $randArray);
Можно выводить в циклеforeach($randArray as $item) {
  echo $item;
}
2. echo не работает для массивов, выводится "Array"

Худший ответ:
echo выводит строку. Но можно создать цикл по массиву с выводом каждого элемента.
Есть функции print_r, var_export, var_dump, которые могут вывести вам массив целиком во всех красе :)
Задача "нужно красиво вывести на экран" не совсем понятна, куда вы выводите в консоль или браузер? В консоли достаточно добавить в конце каждой строки \n. В браузере достаточно добавить в конце каждой строки br, или используйте тег pre
Вопрос: Какие проекты взять новичку в JAVA для самостоятельной реализации?

Лучший ответ:
Выберите то, что вас по жизни интересует, и запилите соответствующее простое приложение (если хотите идти в сторону Андроид) или сайт (если имеете в виду серверную часть веб-приложений).
Или, наоборот, сделайте какое-то приложение для коммерции, вроде интернет-магазина.
Или возьмите задёшево проект на фрилансе, заодно будет доп.стимул в заданные сроки уложиться.

Худший ответ:
Всё выше вами перечисленное затрагивают предложения комментаторов. От себя добавлю, что можете создать клиент-серверное приложение в виде каталога автомобилей, телефонов etc. Тут вопрос в технологиях которые вы хотите/можете/умеете использовать. Можно писать всё ручками (servlets, JDBC, SQL, HTML, CSS, JS), а можно использовать фреймворки (Spring, Hibernate, Angular) или разные другие библиотеки (React для фронта). У вас слишком общее описание.
Вопрос: Прижал экран ноутбука, горизонтальная розовая полоска, что делать?

Лучший ответ:
что делать?
Воображать, что ты наблюдаешь закат на Гавайях. И наслаждаться.

Худший ответ:
замена матрицы
Вопрос: Как построить цифровую интегральную схему на транзисторах?

Лучший ответ:
1) Запуск в производство.
2) Изучить процесс на практике, в том числе помогает изучение обратного ему процесса - реверс-инжиниринга.
3) С помощью формул и справочных таблиц.

Худший ответ:
вот несколько ключевых слов для старта:
таблицы истинности, логический базис, теорема Де Моргана, СДНФ, СКНФ и далее по тексту.вот, например, или вот (по второй ссылке проблемы с кодировкой, но инфа интересная для начала)
Вопрос: Какой email сервис позволяет бесплатно разослать 12к писем?

Лучший ответ:
два аккаунта на мейлчимп(там 10к бесплатно на 2к адресов)
АПД.
а нет, там 12к бесплатных писем в месяц!

Худший ответ:
200 баксов в месяц на МайлЧампе либо овер 100500 аккаунтов, в которых идёт проверка на импорт писем вроде asdf@gmail.com, а представьте такие письма выискать среди адресной базы? В общем я почти дописал решение связки: мой домен + почта для домена Яндекс + Google Analitycs для трекинга открытия писем. Если нужно могу код выложить свой, несколько идей по оформлению рассылки подчерпнул от сюда
https://spark.ru/startup/pushall/blog/11077/chestn...
Вопрос: Свой почтовый сервер или сервис рассылки?

Лучший ответ:
Посчитайте затраты на работу специалиста + доработки + внеплановые работы в случае проблем. Отсюда и отталкивайтесь. Скорее всего стоимость готового сервиса окажется ниже, возможно даже в разы.

Худший ответ:
500 в день - очень слабая нагрузка.
Exim может всё, что вы захотите/сможет настроить специалист, но веб-интерфейса не будет (по крайней мере универсального, но за деньги и за счёт навыков настройщика всё возможно).
Заблокируют ли - опять же зависит от того, насколько правильно вам всё настроют. У нас с 1-го IP в день уходит до 5 тысяч писем в виде внешней рассылки. Пока ниразу в бан-листы не попадали.
В общем, готовьте под такой проект деньги, соизмеримые с арендой сервера рассылки
Вопрос: На каком движке сделать сайт отзывов?

Лучший ответ:
На любом. Абсолютно. Хоть на самописном.
irecommend , кажется, на самописной CMS

Худший ответ:
понимаю что на любом) надеялся кто-то по опыту подскажет как это проще реализовать.
Вопрос: В чём разница между операндом и литералом?

Лучший ответ:
Слово "литерал" переводится как "буквальный". Это объект, значение которого -- его буквальное значение. Например: "hello" -- это строковый литерал со значением "hello". Или 42 -- это целочисленный литерал со значением 42. Противоположностью литерала, в некотором смысле, является переменная. Переменная -- это объект, значение которого -- последнее присвоенное ему значение. Например: char a[] = "hello world"; a -- это строковая переменная, со значением "hello world". Или int answer = 40 + 2; answer -- целочисленная переменная со значением 42.
Операнд -- это аргумент операции. Во многих контекстах литералы и переменные могут быть операндами. Например: a[0]; операция здесь -- [], взятие элемента массива, операнды -- a и 0, один из них -- переменная, другой -- литерал.

Худший ответ:
Что говорит Wikipedia:
Литерал (англ. literal ) — запись в исходном коде компьютерной программы, представляющая собой фиксированное значение. Литералами также называют представление значения некоторого типа данных.
Опера́нд (англ. operand) в языках программирования ― аргумент операции; данные, которые обрабатываются командой; грамматическая конструкция, обозначающая выражение, задающее значение аргумента операции. Иногда операндом называют место, позицию в тексте, где должен стоять аргумент операции.
Делаем вывод - операнд и литерал - это не одно и то же.
Вопрос: Необходимо создать пользователя с доступом только к FTP/SFTP?

Лучший ответ:
Создаете группу sftpusers
добавляете нужных пользователей в эту группу
меняете shell для этих пользователей на nologin
Настраиваете sshd для этой группы:
/etc/ssh/sshd_configMatch Group sftpusers
        ChrootDirectory /sftp/%u
        ForceCommand internal-sftp
готово. (не забудьте перегрузить sshd)

Худший ответ:
Типа такого:Match User ftpuser
        ForceCommand internal-sftp
        ChrootDirectory /sftp
в конфиге sshd_config