Ubuntu нет папки usr

Обновлено: 06.07.2024

В операционной системе Linux есть много отличных функций безопасности, но она из самых важных - это система прав доступа к файлам. Linux, как последователь идеологии ядра Linux в отличие от Windows, изначально проектировался как многопользовательская система, поэтому права доступа к файлам в linux продуманы очень хорошо.

И это очень важно, потому что локальный доступ к файлам для всех программ и всех пользователей позволил бы вирусам без проблем уничтожить систему. Но новым пользователям могут показаться очень сложными новые права на файлы в linux, которые очень сильно отличаются от того, что мы привыкли видеть в Windows. В этой статье мы попытаемся разобраться в том как работают права файлов в linux, а также как их изменять и устанавливать.

Основные права доступа к файлам в Linux

Изначально каждый файл имел три параметра доступа. Вот они:

  • Чтение - разрешает получать содержимое файла, но на запись нет. Для каталога позволяет получить список файлов и каталогов, расположенных в нем;
  • Запись - разрешает записывать новые данные в файл или изменять существующие, а также позволяет создавать и изменять файлы и каталоги;
  • Выполнение - вы не можете выполнить программу, если у нее нет флага выполнения. Этот атрибут устанавливается для всех программ и скриптов, именно с помощью него система может понять, что этот файл нужно запускать как программу.

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

  • Владелец - набор прав для владельца файла, пользователя, который его создал или сейчас установлен его владельцем. Обычно владелец имеет все права, чтение, запись и выполнение.
  • Группа - любая группа пользователей, существующая в системе и привязанная к файлу. Но это может быть только одна группа и обычно это группа владельца, хотя для файла можно назначить и другую группу.
  • Остальные - все пользователи, кроме владельца и пользователей, входящих в группу файла.

Именно с помощью этих наборов полномочий устанавливаются права файлов в linux. Каждый пользователь может получить полный доступ только к файлам, владельцем которых он является или к тем, доступ к которым ему разрешен. Только пользователь Root может работать со всеми файлами независимо от их набора их полномочий.

Но со временем такой системы стало не хватать и было добавлено еще несколько флагов, которые позволяют делать файлы не изменяемыми или же выполнять от имени суперпользователя, их мы рассмотрим ниже:

Специальные права доступа к файлам в Linux

Для того, чтобы позволить обычным пользователям выполнять программы от имени суперпользователя без знания его пароля была придумана такая вещь, как SUID и SGID биты. Рассмотрим эти полномочия подробнее.

  • SUID - если этот бит установлен, то при выполнении программы, id пользователя, от которого она запущена заменяется на id владельца файла. Фактически, это позволяет обычным пользователям запускать программы от имени суперпользователя;
  • SGID - этот флаг работает аналогичным образом, только разница в том, что пользователь считается членом группы, с которой связан файл, а не групп, к которым он действительно принадлежит. Если SGID флаг установлен на каталог, все файлы, созданные в нем, будут связаны с группой каталога, а не пользователя. Такое поведение используется для организации общих папок;
  • Sticky-bit - этот бит тоже используется для создания общих папок. Если он установлен, то пользователи могут только создавать, читать и выполнять файлы, но не могут удалять файлы, принадлежащие другим пользователям.

Теперь давайте рассмотрим как посмотреть и изменить права на файлы в Linux.

Как посмотреть права доступа к файлам в Linux

Конечно, вы можете посмотреть права доступа к файлам в Linux с помощью файлового менеджера. Все они поддерживают эту функцию, но так вы получите неполную информацию. Для максимально подробной информации обо всех флагах, в том числе специальных, нужно использовать команду ls с параметром -l. Все файлы из каталога будут выведены в виде списка, и там будут показаны все атрибуты и биты.

Чтобы узнать права на файл linux выполните такую команду, в папке где находится этот файл:

perm

За права файлов в linux тут отвечают черточки. Первая это тип файла, который рассмотрен в отдельной статье. Дальше же идут группы прав сначала для владельца, для группы и для всех остальных. Всего девять черточек на права и одна на тип.

Рассмотрим подробнее, что значат условные значения флагов прав:

  • --- - нет прав, совсем;
  • --x - разрешено только выполнение файла, как программы но не изменение и не чтение;
  • -w- - разрешена только запись и изменение файла;
  • -wx - разрешено изменение и выполнение, но в случае с каталогом, вы не можете посмотреть его содержимое;
  • r-- - права только на чтение;
  • r-x - только чтение и выполнение, без права на запись;
  • rw- - права на чтение и запись, но без выполнения;
  • rwx - все права;
  • --s - установлен SUID или SGID бит, первый отображается в поле для владельца, второй для группы;
  • --t - установлен sticky-bit, а значит пользователи не могут удалить этот файл.

В нашем примере, файл test1 имеет типичные разрешения для программ, владелец может все, группа только чтение и выполнение, а все остальные - только выполнение. Для test2 дополнительно установлен флаг SUID и SGID. А для папки test3 установлен Sticky-bit. Файл test4 доступный всем. Теперь вы знаете как посмотреть права на файл linux.

Как изменить права файла в Linux

Чтобы изменить права на файл в linux вы можете использовать утилиту chmod. Она позволяет менять все флаги, включая специальные. Рассмотрим ее синтаксис:

$ chmod опции категория действие флаг файл

Опции сейчас нас интересовать не будут, разве что только одна. С помощью опции -R вы можете заставить программу применять изменения ко всем файлам и каталогам рекурсивно.

Категория указывает для какой группы пользователей нужно применять права, как вы помните доступно только три категории:

Действие может быть одно из двух, либо добавить - знак "+", либо убрать - знак - "-". Что касается самих прав доступа, то они аналогичны выводу утилиты ls: r - чтение, w - запись, x - выполнение, s - suid/sgid, в зависимости от категории, для которой вы его устанавливаете, t - устанавливает sticky-bit. Например, всем пользователям полный доступ к файлу test5:

chmod ugo+rwx test5

Или заберем все права у группы и остальных пользователей:

chmod go-rwx test5

Дадим группе право на чтение и выполнение:

chmod g+rx test5

Остальным пользователям только чтение:

Для файла test6 установим SUID:

А для test7 - SGID:

Посмотрим что получилось:

perm1

Как видите, изменить права на файл в Linux очень просто. К тому же вы можете изменить основные права с помощью файлового менеджера.

Выводы

Вот и все, теперь вы знаете не только что такое права доступа к файлам в Linux, но и как их посмотреть, и даже как их изменить. Это очень важная тема, в которой действительно стоит разобраться новичкам, чтобы использовать свою систему более полноценно. Если у вас остались вопросы, спрашивайте в комментариях!

На завершение хочу предложить неплохое видео про права доступа в Linux:

Читал статью что программы устанавливаются в корневой раздел «/» но потом нашел другую информацию что устанавливаются в «/home» в линукс сообществе в вк, так куда?

Как мэйнтейнеру пакета в голову стукнет.

phoen ★★ ( 21.09.20 13:22:33 )
Последнее исправление: phoen 21.09.20 13:22:43 (всего исправлений: 1)


Те что из репозитария ставятся в /, сторонние если юзер хочет может поставить в /home или в /.


обычно, пакеты из репозиториев помещают исполняемые файлы в /usr/bin или /usr/local/bin, вспомoгательные файлы программ хранятся в /usr/lib, /usr/share, /home и т.д. Сторонние программы могут устанавливаться целиком в /opt


Если вкратце, то куда угодно.


нормальные пакеты равномерно размазываются по файловой системе, а всё остальное — куда угодно.


кстати, а какой смысл в таком равномерном размазывании?

пакеты из репозиториев помещают исполняемые файлы в /usr/bin или /usr/local/bin

Вообще-то нет. В /usr/local идёт самосбор. Из пакетов туда вообще не ставят в нормальной ситуации.

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

кстати, а какой смысл в таком равномерном размазывании?


Есть дистрибутивы, они разные в разных места установки разные, всем заведует менеджер пакетов apt в Debian, pacman в Arch, dnf в Fedora и так далее, соотвецтвенно форматы пакетов разные. Достаточно знать как пользоваться менеджером в любимом тебе дистрибутиве и всё.

Чаще всего программы устанавливаются в /usr/bin/ или в /usr/local/bin есть пользовательские каталоги для этого в особых случаях

/.local/bin/ например. Сторонее проприетарное ПО или же то которое не хочется совать в систему ставят уже руками в /opt/ На самом деле вариантов ещё много, у каждой цели установки свой смысл, просто иди и где то читай про это. И да порой конечно есть излишества.

В любом случае если не городить что-то самому то используй менеджер пакетов который в 99% случаев всё ставить в /usr/bin/ Что бы те было понятнее usr это User System Resources почти program files как в винде, только там один каталог где всё в кашу, а тут есть ещё дополнительное дробление и всё на свои полочки кидается и если знаешь что для чего всегда заранее знаешь что и где искать.

Есть ещё /bin это системные программы наиболее важные для функционирования системой. (Не совсем так, но считай так и есть)

Что бы ещё было понятнее, есть разные типы файлов в одной программе картинки, документация, примеры, конфигурационные фалйы, библиотеки и исполняемые файлы, при установке всё это расфасовывается не в 1 место, а в разные в зависимости от типа файла и его предназначения. И программа установленная как бы интегрируется с системой, сливается с ней в одно целое, а не как в винде в отдельном каталоге всё в кучу. И у того и у того есть и минусы и плюсы.

Я установил подсистему Ubuntu в Windows 10 (после включения функции в настройках), но где находится корневой каталог файловой системы Ubuntu, расположенный на диске?

4 ответа

Это, похоже, изменилось с тех пор, как Bash изначально был представлен и не распространяется на дистрибутивы из Windows Store, или, может быть, он несовместим для всех систем, так как мой домашний каталог находится в другом месте:

Где - ваше имя пользователя Windows, а - ваше имя пользователя UNIX, установленное во время установки.

Таким образом, корневой каталог будет:

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

Моя машина не может найти: " C: \ Users \ \ AppData \ Local \ Lxss \ " или "% localappdata% \ Lxss \ home \ " но «C: \ Users \ \ AppData \ Local \ lxss \ " работает. И.Е. использование "lxss " NOT " Lxss " – Joe Codeswell user601770 17 August 2016 в 18:52 Моя система имеет подкаталог rootfs, но rootfs / home пуст, а ./home имеет мою учетную запись и файлы. Кажется более безопасным просто перейти к% localappdata% \ lxss, а затем исследовать оттуда, чтобы увидеть, какой у вас есть макет, а также прямой просмотр этого адреса позволяет избежать проблем с скрытой директорией lxss. – jla 1 December 2016 в 20:07 @ JoeCodeswelluser601770 Это странно. Файловые системы Windows обычно нечувствительны к регистру. Я могу ввести% localappdata% \ Lxss или% localappdata% \ lxss и оба перейти в% HOMEPATH% \ AppData \ Local \ lxss – jla 1 December 2016 в 20:10 Обратите внимание, что эта папка (lxss) не появилась в моем списке проводников Windows в папках AppData \ Local, даже если скрытые папки включены. Мне пришлось вручную вставить папку lxss в панель проводника, чтобы добраться до файлов здесь, например. отредактировать папку " url " туда – Colin D 21 December 2016 в 00:52 Кроме того, вы можете перейти на Рабочий стол, щелкнуть правой кнопкой мыши " New- & gt; Shortcut " и вставьте путь как C: \ Users \ yourname \ AppData \ Local \ lxss \ home \ yourname – Colin D 21 December 2016 в 00:57

Если вы устанавливаете Linux из MS Market:

Бесплатный Ubuntu в магазине Windows Free Open Suse в хранилище Windows

разместил дистрибутивы под:

[d7 ] Установленный по умолчанию дистрибутив:

Корень Linux глубже:

PS. Я использовал Cygwin для изучения разделов реестра.

Единственное, что сработало для меня, было %localappdata%\lxss\home\, где - ваше имя пользователя BASH, которое вы дали ему во время установки. По какой-то причине после отображения lxss скрытой папки в C:\Users\WINDOWS-USER\AppData\Local\ отказывается, а также дает полный путь C:\ к окнам и имя пользователя BASH тоже не работает.

И создайте ярлык на рабочем столе для что работает.

wow хороший наконечник, имел ту же самую проблему – Nicolas Mommaerts 19 February 2018 в 16:08

Вы можете быстро открыть Bash из окна File Explorer открытой папки, набрав bash в строке местоположения.

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

Я даже изменил тип учетной записи пользователя на ADMINISTRATOR; Пока что бесполезно. Опция PASTE в списке контекстного меню в папке /usr/share/. НЕАКТИВНО.

Как я могу скопировать эти файлы?

Во-первых, каким бы искушаемым вы ни были, никогда не входите в систему с правами root. Слишком легко сломать вещи, не подлежащие ремонту. В любом случае, по умолчанию это отключено, поэтому вам придется сделать гораздо больше, чтобы добраться до этой точки.

/usr/ принадлежит root учетная запись, так что для записи файлов вам нужно записать их как root. Два метода (несомненно, есть и другие, но вот два основных способа для большинства пользователей):

Нажмите Alt + F2, чтобы получить диалог запуска и в этом типе gksu nautilus , Это откроет окно браузера файлов, работающее от имени пользователя root. Скопируйте ваши файлы, но будьте осторожны, вы можете уничтожить систему таким образом.

Гораздо более прямой метод - просто загрузить терминал и написать:

( -R это просто рекурсивно копировать каталоги)

Если вы когда-нибудь захотите запустить несколько команд с правами root, не добавляя их все sudo Вы можете запустить sudo -i или же sudo su и вы получите корневой терминал. Но опять же, будьте осторожны с тем, что вы делаете.

Вам нужен root-доступ. Вы можете запустить nautilus с правами root с помощью gksu nautilus или может выдавать команды с sudo перед командой переместить или скопировать. Я бы не стал играть с группами пользователей на вашем месте, так как это может испортить ситуацию и испортить встроенные функции безопасности.

Вы также можете установить твик Ubuntu, а затем перейти к управлению сценариями. Там вы найдете скрипт с именем Browse от имени root. Будет добавлена ​​новая запись в контекстное меню, которая позволит вам просматривать выбранную папку как root.

Вы просто щелкаете правой кнопкой мыши на nautilus. просматриваете как root. вводите пароль, и вы можете делать все, что захотите.

Есть простой способ сделать это:

Нажмите Alt+F2 открыть окно "Запустить приложение"
тип gksudo nautilus в текстовое поле и нажмите "Enter". Это предложит диалоговое окно пароля. Введите свой пароль sudo, и он откроет nautilus с правами суперпользователя. Оттуда вы можете перемещать / копировать файлы без каких-либо ошибок разрешения.

Примечание. Просто убедитесь, что вы не удаляете / не заменяете системные файлы.

см. аналогичный пост здесь:

Щелкните правой кнопкой мыши в любом месте на пустом рабочем столе. Нажмите создать лаунчер.

Помните, что вы можете заменить nautilus на ваш любимый браузер, вы можете попробовать xfe, поэтому после команды dl of xfe будет /usr/bin/gksu xfe , Если вы хотите создать OpenAs, вы можете вручную ввести любую программу, которую хотите запустить от имени пользователя root, Command = /usr/bin/gksu ,

Читайте также: