Вам нужна оболочка для SCP?

/usr/, я принимаю, пользователь компьютера.

Закрыть.

Unix начался как многопользовательская операционная система, таким образом, это не "пользователь", это - "пользователи", множественное число.

Прежде чем Выпуск 4 System V (SVR4) Unix AT&T вышел в 1988 с его инструментами управления пользователями, принимающими значение по умолчанию к созданию пользовательских корневых каталогов в /home, стандартное местоположение было /usr. ¹ Ваш $HOME каталог, возможно, был /usr/jfw на поле System III.

/usr также содержавший, затем как теперь, /usr/bin, /usr/lib, и т.д. Опыт показал, что разделение корневых каталогов было хорошей практикой управления системой, таким образом, с /home изменение политики в SVR4, это оставило позади все, о чем мы теперь думаем как принадлежащий /usr.

/usr все еще имел серьезное основание содержать на имя: что было оставлено позади, были файлы, которые не должны были быть доступными, пока система не была загружена достаточно далеко для поддержки нормального интерактивного использования. То есть, что было оставлено позади, были сфокусированные пользователями части ОС. Это означало это /usr мог быть на другом физическом томе, который был хорошей вещью назад в эпоху  жестких дисков на 92 МБ размер стиральных машин.

Ранние системы Unix старались не допустить базовые файлы ОС от /usr так, чтобы Вы могли все еще загрузиться в однопользовательский режим ² даже если /usr объем был немонтируемым по некоторым причинам. Корневой объем содержал достаточные инструменты для получения /usr объем назад онлайн.

Несколько разновидностей Unix теперь игнорируют этот старый принцип разработки, так как даже маленькие встроенные системы имеют достаточно комнаты и для традиционных корневых файлов объема и для всего из /usr на единственном объеме. ³ Red Hat Enterprise Linux, Солярис и символьная ссылка Cygwin /bin кому: /usr/bin и /lib кому: /usr/lib так, чтобы больше не было никакого различия между этими каталогами.

.../local/..., очевидно, обозначает локальный компьютер...

Да. Это относится к факту, под которым это регистрирует /usr/local как предполагается, конкретны к той единой системе. Файлы, которые всегда универсальны, должны жить в другом месте.

Это также имеет корни в способе, которым системы Unix были несколько наиболее часто используемых десятилетия назад, когда все это было стандартизировано. Снова, жесткие диски времени были большими, действительно дорогими, и сохранили мало по сегодняшним стандартам. Чтобы сэкономить деньги и пространство на дисках, компьютерная лаборатория, полная полей Unix, часто совместно использовала бы большую часть /usr по NFS или некоторому другому протоколу совместного доступа к файлам в сети, таким образом, каждое поле не должно было иметь своей собственной избыточной копии. ⁴ Файлы, характерные для единственного поля, гиб бы /usr/local, который был бы отдельным объемом от /usr.

Это историческое наследие состоит в том, почему это - все еще значение по умолчанию для большей части стороннего программного обеспечения Unix для установки в /usr/local при установке вручную. Большая часть такого программного обеспечения позволит Вам установить пакет где-то в другом месте, но путем создания невыбора, Вы получаете безопасное значение по умолчанию, которое не вмешивается в другие общие местоположения установки с более определенными целями.

Существуют серьезные основания сделать установку программного обеспечения где-то в другом месте вместо этого. macOS команда Apple делает это, когда они создают, скажем, bash от исходного кода Bash GNU. Они используют / как префикс установки, переопределяя /usr/local значение по умолчанию, так, чтобы Bash закончился в /bin.

Другим примером является путь более старые системы Linux, отдельные их программное обеспечение GUI в /usr/X11R6, разделить его от традиционной командной строки и curses- основанное программное обеспечение. Это было сделано просто путем переопределения значения по умолчанию /usr/local префикс с /usr/X11R6.⁵

И что такое / мусорное ведро?

Это коротко для "двоичного файла", который в этом контексте означает "файл, который не является простым текстом". Большинство таких файлов является исполняемыми файлами на поле Unix, таким образом, эти два условия стали синонимичными в некоторых кругах. ("Создайте меня двоичный файл для RHEL 7, Fred".)

Текстовые файлы на поле Unix живут в другом месте: /etc, /usr/include, /usr/share, и т.д.

Когда-то давно даже сценарии оболочки — которые являются файлами простого текста — были не допущены bin каталоги, но эта строка также размылся. Сегодня, bin каталоги обычно содержат любой вид исполняемого файла, или строго "двоичный" или нет. ⁶


Сноски и отклонения:

  1. Примитивная природа инструментов управления пользователями до SVR4 означала что HOME=/usr/$NAME схема была просто зарегистрирована как конвенция, а не осуществлена программными инструментами как значение по умолчанию.

    Вы видите это на странице 4-8 "Руководства Системного администратора Выпуска 3.2 System V Unix AT&T: здесь Вы видите, что AT&T рекомендует старое /usr/$NAME схема в последней основной версии Unix перед SVR4 вышла.

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

    Одна схема я столкнулся прежде /home/$NAME стал стандартом, был /u/$NAME.

    Другая система, которую я использовал в начале 1990-х, имела столько пользователей, что они не могли соответствовать всем корневым каталогам на единственный физический том, таким образом, они использовали схему как /u1/$NAME, /u2/$NAME, и так далее, как я вспоминаю. Какой диск, на котором закончился Ваш корневой каталог, был просто вопросом, которого имел пространство на нем в то время, когда Ваша учетная запись была создана.

  2. Можно загрузить macOS поле в однопользовательский режим удержанием Cmd-S, в то время как это загружается. Отпущенный, после того как экран становится черным, и Вы видите, что светло-серый текст появляется. Это похоже на выполнение под Терминалом, но это принимает целый экран, потому что GUI еще не запустился.

    Будьте осторожны, Вы работаете как root.

    Введите "выход" при однопользовательской корневой подсказке, чтобы оставить однопользовательский режим и продолжить загружаться в многопользовательский режим GUI.

  3. Ose Unixy, которые все еще, кажется, не допускают критические однопользовательские файлы режима от /usr может не, на самом деле, сделать так в эти дни. Я когда-то представил поле FreeBSD 9, незагрузочное путем перемещения /usr к объему ZFS. Я забыл, что функции ZFS на корне не приземлились до FreeBSD 10, создав Выгоду 22: ОС были нужны файлы в /usr для монтирования /usr!

    Это было достаточно плохо, но если FreeBSD 9 все еще не допускал свой однопользовательский материал начальной загрузки от /usr, Я, возможно, зафиксировал его на месте. Так как это не загрузилось бы даже к однопользовательскому режиму с /usr будучи немонтируемой, ясно та традиция была нарушена так или иначе. Я должен был загрузить от спасения CD для возвращения той системы снова.

  4. Это также, где мы добираемся /usr/share: это выделяет файлы, которые могли быть совместно использованы даже между полями Unix с различными типами процессора. Как правило, текстовые файлы: страницы справочника, словарь, и т.д.

  5. "X11R6" упомянул версию X-оконной системы, подкрепляющей графический интерфейсы пользователя Linux в то время, когда эта конвенция была распространена. Системы Linux обычно прекращали выделять программное обеспечение GUI во время, X11R6 был заменен X.Org.

  6. Исходные системы Unix удержали свои базовые сценарии оболочки /etc чтобы не смешивать их с истинными двоичными файлами в /bin.

34
22.03.2011, 00:10
2 ответа

Можно установить оболочку того пользователя на rssh или scponly, которые разработаны точно с этой целью:

rssh является ограниченной оболочкой для использования с OpenSSH, позволяя только scp и/или sftp. Это теперь также включает поддержку rdist, rsync, и cvs.

scponly является альтернативной (своего рода) 'оболочкой' для системных администраторов, которые хотели бы предоставить доступ удаленным пользователям для и чтения и записали бы локальные файлы, не обеспечивая удаленного выполнения priviledges.

Когда Вы выполняете scp, демон OpenSSH исчерпывает scp процесс с -f опция. Когда Вы выполняете sftp, демон OpenSSH исчерпывает sftp-server процесс. В любом случае подпроцесс выполняется через оболочку пользователя, так, чтобы оболочка поддерживала, по крайней мере, эти команды с подобным Границе синтаксисом. Любая оболочка стиля Границы сделает, как будет csh (я думаю, что его правила заключения в кавычки достаточно совместимы для какой sshd использование). Rssh и scponly позволяют эти команды и ничто иное. /bin/true даже не выполнил бы эти команды.

40
27.01.2020, 19:37
  • 1
    Это означает/bin/false, или/bin/true не работал бы - или только позволил бы sftp? –  Danny Staple 08.09.2011, 18:40
  • 2
    @DannyStaple, Если оболочка пользователя установлена на /bin/false или другая программа, которая ничего не делает, ни scp, ни sftp, будет работать. Для обеих команд демон SSH исчерпывает команду оболочки, которая выполняет процесс выделенного сервера (scp -f или sftp-server). Этому нужна оболочка стиля Границы или по крайней мере достаточно близкое приближение (такой как rssh который позволяет только эти немного команд через). –  Gilles 'SO- stop being evil' 08.09.2011, 23:00

Нет, Вы не делаете. Как Gilles указал, rssh работы очень приятно с этой целью, как делает scponly. См. также обсуждение в этом связанном вопросе.

3
27.01.2020, 19:37
  • 1
    Они - все еще оболочки, как указано /bin/false не будет работать, ни один не будет chmod 644 ksh. –  Steve-o 09.09.2011, 10:55

Теги

Похожие вопросы