/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
каталоги обычно содержат любой вид исполняемого файла, или строго "двоичный" или нет. ⁶Сноски и отклонения:
Примитивная природа инструментов управления пользователями до 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
, и так далее, как я вспоминаю. Какой диск, на котором закончился Ваш корневой каталог, был просто вопросом, которого имел пространство на нем в то время, когда Ваша учетная запись была создана.Можно загрузить macOS поле в однопользовательский режим удержанием Cmd-S, в то время как это загружается. Отпущенный, после того как экран становится черным, и Вы видите, что светло-серый текст появляется. Это похоже на выполнение под Терминалом, но это принимает целый экран, потому что GUI еще не запустился.
Будьте осторожны, Вы работаете как
root
.Введите "выход" при однопользовательской корневой подсказке, чтобы оставить однопользовательский режим и продолжить загружаться в многопользовательский режим GUI.
Ose Unixy, которые все еще, кажется, не допускают критические однопользовательские файлы режима от
/usr
может не, на самом деле, сделать так в эти дни. Я когда-то представил поле FreeBSD 9, незагрузочное путем перемещения/usr
к объему ZFS. Я забыл, что функции ZFS на корне не приземлились до FreeBSD 10, создав Выгоду 22: ОС были нужны файлы в/usr
для монтирования/usr
!Это было достаточно плохо, но если FreeBSD 9 все еще не допускал свой однопользовательский материал начальной загрузки от
/usr
, Я, возможно, зафиксировал его на месте. Так как это не загрузилось бы даже к однопользовательскому режиму с/usr
будучи немонтируемой, ясно та традиция была нарушена так или иначе. Я должен был загрузить от спасения CD для возвращения той системы снова.Это также, где мы добираемся
/usr/share
: это выделяет файлы, которые могли быть совместно использованы даже между полями Unix с различными типами процессора. Как правило, текстовые файлы: страницы справочника, словарь, и т.д."X11R6" упомянул версию X-оконной системы, подкрепляющей графический интерфейсы пользователя Linux в то время, когда эта конвенция была распространена. Системы Linux обычно прекращали выделять программное обеспечение GUI во время, X11R6 был заменен X.Org.
Исходные системы Unix удержали свои базовые сценарии оболочки
/etc
чтобы не смешивать их с истинными двоичными файлами в/bin
.
Можно установить оболочку того пользователя на 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
даже не выполнил бы эти команды.
Нет, Вы не делаете. Как Gilles указал, rssh работы очень приятно с этой целью, как делает scponly. См. также обсуждение в этом связанном вопросе.
/bin/false
не будет работать, ни один не будет chmod 644 ksh.
– Steve-o
09.09.2011, 10:55
/bin/false
или другая программа, которая ничего не делает, ни scp, ни sftp, будет работать. Для обеих команд демон SSH исчерпывает команду оболочки, которая выполняет процесс выделенного сервера (scp -f
илиsftp-server
). Этому нужна оболочка стиля Границы или по крайней мере достаточно близкое приближение (такой какrssh
который позволяет только эти немного команд через). – Gilles 'SO- stop being evil' 08.09.2011, 23:00