Права в linux (chown, chmod, suid, guid, sticky bit, acl, umask)

Введение

Добавление и удаление пользователей – это одна из базовых задач, с которой вы можете столкнуться при работе на новом сервере с ОС семейства Linux. Как правило, после того, как вы установили новую систему, у вас есть только один пользователь – суперпользователь.

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

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

sudo не спрашивает пароль

sudo без пароля — чудовищная дыра в безопасности, кому попало разрешено делать что угодно. Если вы разрешили это намеренно — срочно верните обратно как было.

Однако, в некоторых случаях sudo внезапно перестаёт требовать пароль само по себе. Если сделать visudo , то можно увидеть примерно такую строку, которую пользователь вроде бы не добавлял:

Скорее всего, эта катастрофичная строка была добавлена при установке программы типа Connect Manager от МТС или Мегафона. В таком случае, её нужно поменять на строку, разрешающую с правами root запускать только этот Connect Manager, примерно так:

Есть и другие варианты решения проблемы, небольшое обсуждение здесь.

Учетная запись суперпользователя в Linux предоставляет полный доступ к системе. Права суперпользователя (администратора) необходимы для выполнения команд в Linux, особенно тех команд, которые затрагивают системные файлы. Так как аккаунт суперпользователя имеет неограниченный доступ к системным файлам, рекомендуется получать права суперпользователя только при необходимости, а не входить в систему в качестве администратора. Это поможет предотвратить случайное повреждение важных системных файлов.

Заблуждения

  • Разве sudo не менее безопасно, чет su?

    Основая модель безопасности одинакова в обоих случаях, поэтому и уязвимость будет одинаковой. Любой пользователь, использующий su или sudo рассматривается как привилегированный пользователь. If that user’s account is compromised attby an attacker, the attacker can also gain root privileges the next time the user does so. The user account is the weak link in this chain, and so must be protected with the same care as root.
    On a more esoteric level, sudo provides some features which encourage different work habits, which can positively impact the security of the system. sudo is commonly used to execute only a single command, while su is generally used to open a shell and execute multiple commands. The sudo approach reduces the likelihood of a root shell being left open indefinitely, and encourages the user to minimize their use of root privileges.

  • Я не буду иметь возможность загрузиться в однопользовательском режиме! Программа sulogin в Ubuntu изменена для того чтобы можно было войти в однопользовательский режим, даже если пользователь root отключен.

  • Я могу получить права администратора из консоли без ввода пароля!

    Вам потребуется ввести пароль для этого. Console users have access to the boot loader, and can gain administrative privileges in various ways during the boot process. For example, by specifying an alternate init(8) program. Linux systems are not typically configured to be secure at the console, and additional steps (for example, setting a root password, a boot loader password and a BIOS password) are necessary in order to make them so. Note that console users usually have physical access to the machine and so can manipulate it in other ways as well.

Монтирование разделов

Корневой раздел среды Linux, в которую вы хотите войти с chroot, должен быть первым делом смонтирован. Чтобы найти имя раздела, выполните:

# lsblk

Затем создайте каталог для монтирования корневого раздела и смонтируйте его:

# mkdir /mnt/arch
# mount /dev/sdx1 /mnt/arch

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

# mount /dev/sdx2 /mnt/arch/boot/
# mount /dev/sdx3 /mnt/arch/home/

Примечание: Если вы пытаетесь смонтировать зашифрованную файловую систему, не забудьте первым делом открыть ее контейнер (например, командой для шифрования на основе ), затем смонтируйте устройство используя указанное имя (например, ). Подробнее смотрите на странице: .

Как стать пользователем root в Ubuntu?

Вы можете использовать sudo для запуска команд от имени пользователя root. Однако в ситуациях, когда вам нужно запустить несколько команд от имени пользователя root и вы все время забываете добавить sudo перед командами, вы можете временно переключиться на пользователя root.

Команда sudo позволяет имитировать оболочку входа в систему root с помощью этой команды:

sudo -i

user@nuc:~$ sudo -i password for user:root@nuc:~# whoamirootroot@nuc:~#

Вы заметите, что когда вы переключаетесь на root, командная строка оболочки меняется с $ (знак доллара) на # (знак ключа решетка).

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

Вы можете использовать команду su для переключения пользователей в Ubuntu . Вы можете использовать его с sudo для временного переключения на пользователя root:

sudo su

Если вы попытаетесь использовать команду su без sudo, вы столкнетесь с ошибкой su authentication failure.

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

exit

Запуск графических приложений в среде chroot

Если у вас есть запущенный X-сервер, вы сможете запускать даже графические приложения в среде chroot.

Чтобы разрешить среде chroot соединение с сервером X, откройте виртуальный терминал внутри сервера (то есть, внутри рабочего стола пользователя, который в данный момент вошел в систему), запустите команду xhost, которая даст права каждому подключаться к X-серверу пользователя:

$ xhost +local:

Теперь, для соединения приложений с сервером X, установите переменной окружения DISPLAY в сеансе chroot значение, совпадающее с переменной окружения DISPLAY пользователя, от имени которого запущен сервер. То есть, выполните

$ echo $DISPLAY

от имени этого пользователя для того, чтобы узнать значение переменной, и выполните

# export DISPLAY=:0

в среде chroot, установив переменной нужное значение (в данном примере это ).

Выход из среды chroot

После завершения работы, выйдите из сеанса chroot:

# exit

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

# cd /
# umount --recursive /mnt/arch/

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

Суперпользователь в Ubuntu

Начнем с того, что суперпользователя в Ubuntu никто не отключал, пользователь root существует и от его имени работают процессы, как в других системах. Просто для этого пользователя не задан пароль. Поэтому вы и не можете войти. Но есть несколько способов авторизоваться от имени root без пароля. Во-первых, это sudo. Команда su запрашивает пароль только в том случае, если вы выполняете ее от имени обычного пользователя. Если команда будет запущена от имени суперпользователя, то пароль спрашиваться не будет, а вы сразу перейдете в терминал root. Первая комбинация, которая приходит на ум:

Но есть и более простой и правильный вариант, вы можете использовать опцию -i утилиты sudo чтобы перейти в терминал суперпользователя:

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

Включение возможности входить под root в MDM

Итак, назначив пароль root, мы получили возможность входить как root в консоли, но не в графической среде. Дело в том, что по умолчанию в настройках MDM вход как root запрещён. Для того, чтобы его разрешить, нужно зайти в настройки системы, открыть Login Window Preferences
, открыть секцию Options
и пометить Allow root login
. После этого можно будет зайти как root в графическом режиме.

Кстати, Thunar, запущенный из-под рута, показывает жёлтую строку с предупреждением, в то время как в Nemo показывается лишь красная строка с надписью «Повышенные привилегии».

Кстати, в той же Ubuntu вход под root менее ограничен: убунтувский LightDM не запрещает по умолчанию вход под root, а поставляемый с Ubuntu файловый менеджер Nautilus, запущенный с правами рута, не показывает никаких предупреждений (как и Dolphin).

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

Раньше данная проблема решалась достаточно просто: при обладании паролем root можно было зайти в систему под его аккаунтом либо временно получить его права, используя команду su . Потом выполнить все необходимые операции и вернуться обратно под обычного пользователя. В принципе, такая схема работает неплохо, однако у неё есть много существенных недостатков, в частности, невозможно никак (точнее, очень сложно) ограничивать административные привилегии только определённым кругом задач.

Поэтому в современных дистрибутивах Linux вместо root аккаунта для администрирования используется утилита sudo .

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

Настройка sudo и прав доступа на выполнение различных команд

sudo позволяет разрешать или запрещать пользователям выполнение конкретного набора программ. Все настройки, связанные с правами доступа, хранятся в файле /etc/sudoers . Это не совсем обычный файл. Для его редактирования необходимо (в целях безопасности) использовать команду

По умолчанию, в нём написано, что все члены группы admin имеют полный доступ к sudo , о чём говорит строчка

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

Разрешение пользователю выполнять команду без ввода пароля

Для того, что бы система не запрашивала пароль при определенных командах необходимо в sudoers после строки # Cmnd alias specification добавить строку, где через запятую перечислить желаемые команды с полным путём(путь команды можно узнать, выполнив which имя_команды:

И в конец файла дописать строку

Создание синонимов (alias`ов)

Для того, чтобы не только не вводить пароль для sudo, но и вообще не вводить sudo, сделайте следующее: откройте файл .bashrc, находящейся в вашем домашнем каталоге

и добавьте в конец файла строки

sudo не спрашивает пароль

sudo без пароля — чудовищная дыра в безопасности, кому попало разрешено делать что угодно. Если вы разрешили это намеренно — срочно верните обратно как было.

Однако, в некоторых случаях sudo внезапно перестаёт требовать пароль само по себе. Если сделать visudo , то можно увидеть примерно такую строку, которую пользователь вроде бы не добавлял:

ALL ALL=(ALL) NOPASSWD:ALL

Скорее всего, эта катастрофичная строка была добавлена при установке программы типа Connect Manager от МТС или Мегафона. В таком случае, её нужно поменять на строку, разрешающую с правами root запускать только этот Connect Manager, примерно так:

Юзернейм ALL= NOPASSWD: /путь/к/программе

Есть и другие варианты решения проблемы, небольшое обсуждение .

Пользователь root и sudo

Пользователь root в системах GNU/Linux — это пользователь, имеющий административный доступ к вашей системе. Обычные пользователи не имеют этого доступа по соображениям безвасности. Тем не менее в Kubuntu нет пользователя root. Вместо этого, административный доступ предоставляется отдельным пользователям, которые могут использовать приложение «sudo» для выполнения административных задач. Первая учетная запись, созданная при установке системы по умолчанию будет иметь доступ к приложению sudo. Вы можете запретить доступ к sudo или предоставить его с помощью приложения Пользователи и Группы

(см. «Пользователи и Группы»).

Если Вы запустите программу, требующую прав суперпользователя, sudo потребует ввести ваш обычный пользовательский пароль

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

После этого sudo попросит ввести ваш пароль

Чтобы использовать sudo в командной строке, просто наберите «sudo» перед командой, которую Вы хотите запустить. После этого sudo попросит ввести ваш пароль.

Sudo будет помнить ваш пароль установленное время (по умолчанию 15 минут). Эта возможность позволяет пользователям выполнять большое количество административных задач без необходимости каждый раз вводить пароль.

Внимание

Будьте осторожны при выполнении административных задач — вы можете испортить вашу систему!

Некоторые советы по использованию sudo:

Чтобы использовать терминал пользователя root, наберите «sudo -i» в командной строке

Вся группа графических утилит конфигурации в Kubuntu уже использует sudo, так что при необходимости у вас попросят пароль с помощью приложения kdesu

, которое является графической оболочкой sudo

.

За дальнейшей информацией по программе sudo

и отсутствию пользователя root в Kubuntu обращайтесь к странице sudo на сайте Ubuntu wiki.

Внимание

Пожалуйста, будьте осторожны, выполняя приложения с привилегиями root, так как это может испортить вашу систему. За дополнительной информацией см. «Пользователь root и sudo» .

Откройте диалог Выполнить команду

, нажав Alt

F2

Введите название программы, которую вы хотите выполнить, с префиксом

kdesu

и нажмите Enter

. Например, чтобы запустить файловый менеджер Konqueror

с привилегиями root, наберите

Команда sudo

В любой операционной системе рекомендуется зарезервировать суперпользователя только для административных целей, а в остальное время использовать учетную запись обычного пользователя. Фактически, большинство современных дистрибутивов Linux не позволяют вам войти в систему как пользователь root.

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

Но если вход в систему как root отключен, как вы будете администрировать свой Linux-компьютер? Что ж, для этого и предназначена команда sudo. Он не требует входа в систему от пользователя root. Он временно наделяет вас полномочиями root. Это как поднять молот Тора Мьёльнир и временно получил полномочия Тора. Но забрать молоток можно только в том случае, если ты достоин. Точно так же не каждый может использовать команду sudo. Команда sudo наделяет вас полномочиями root только в том случае, если вы были сочтены достойными и добавлены в список sudoers.

Есть еще одна команда, похожая на sudo, которая называется su. С sudo вы аутентифицируетесь, используя свой собственный пароль. С su вы аутентифицируетесь, используя пароль пользователя root

Это важно по двум причинам. Во-первых, это означает, что вам нужно назначить пароль пользователю root для использования su

По умолчанию у пользователя root нет пароля, и это помогает с безопасностью. Если у root нет пароля, вы не можете войти в систему как root.

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

Гораздо безопаснее использовать список sudoers, чтобы ограничить круг лиц, которые могут использовать sudo, и позволить каждому привилегированному лицу использовать свои индивидуальные пароли для аутентификации.

Пароль root в Ubuntu

Как вы знаете, разработчики Ubuntu имеют свой взгляд на безопасность работы с дистрибутивом. Довольно много дистрибутивов, в том числе Debian, на котором основана Ubuntu, предлагают использовать аккаунт суперпользователя для выполнения различных задач по администрированию системы. Но сейчас такой подход считается небезопасным, поскольку вы можете забыть что работаете от имени суперпользователя и удалить какие-либо важные вещи.

Поэтому было решено использовать для административных действий, которые требуют прав суперпользователя команду sudo. Но разработчики Ubuntu пошли еще дальше и вообще отключили аккаунт суперпользователя. Если вы попробуете войти в него, то у вас ничего не выйдет. В этой статье мы разберем как установить пароль суперпользователя Ubuntu и разблокировать его.

Как удалять пользователей

Если вам больше не нужен один из созданных пользователей, лучшим решением будет удалить его.

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

# deluser newuser

При этом вы должны быть авторизованы под суперпользователем.

Если вы используете пользователя с sudo-правами, тогда команда будет выглядеть следующим образом:

$ sudo deluser newuser

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

# deluser --remove-home newuser

Для пользователей с sudo-правами:

$ sudo deluser --remove-home newuser

А если вы хотите лишить удаленного пользователя sudo-прав, вам нужно открыть конфигурационный файл:

# visudo

(если от суперпользователя)
или

$ sudo visudo

(если от пользователя с sudo-правами)

root ALL=(ALL:ALL) ALL
newuser ALL=(ALL:ALL) ALL # Удалите эту строчку.

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

Сброс пароля root или администратора

Сбросьте пароль root, если он был забыт.

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

Перезагрузите компьютер и удерживайте левую кнопку . после экрана BIOS.

Это откроет меню GRUB. Возможно, придется попробовать данную процедуру несколько раз.

Выберите режим восстановления.

Это загрузит режим восстановления для вашего текущего дистрибутива.

Выберите вариант из меню.

Это запустит терминал, когда вы вошли в систему как пользователь root.

Диск с разрешениями на запись.

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

mount -rw -o remount /

Создайте новый пароль для любых учетных записей, из которых вы заблокированы.

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

  • Введите и нажмите . Если вам нужно изменить пароль root, введите .passwdaccountName passwd root
  • Введите новый пароль дважды при появлении запроса.

Перезагрузите компьютер после сброса паролей.

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

Основные правила управления доступом

Объекты (например, файлы и процессы) имеют владельцев. Владельцы обладают обширным (но необязательно неограниченным) контролем над своими объектами.

  • Вы являетесь владельцами новых объектов, создаваемых вами.
  • Пользователь root с особыми правами, известный как суперпользователь, может действовать как владелец любого объекта в системе.
  • Только суперпользователь может выполнять административные операции особого значения.

Владельцем файла всегда является один человек, тогда как в группу владельцев могут входить несколько пользователей. По традиции информация о группах хранилась в фай­ле .

Получение прав суперпользователя для выполнения нескольких команд

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

После этого вы перейдёте в режим суперпользователя (с ограничениями, наложенными через настройки sudo), о чём говорит символ # в конце приглашения командной строки. Данные команды по действию похожа на su , однако: — sudo -s — не меняет домашний каталог на /root, домашним остается домашний каталог пользователя вызвавшего sudo -s, что обычно очень удобно. — sudo -i — сменит так же и домашний каталог на /root.

Для выхода обратно в режим обычного пользователя наберите exit или просто нажмите Ctrl + D .

Переключение на суперпользователя в терминале

Теперь мы подошли к более интересному и практичному. С помощью специальных утилит вы можете переключить текущий эмулятор терминала в окружения суперпользователя и выполнять все следующие команды не от своего имени, а от его, таким образом, дав программе права root linux. Для этого существует утилита su. Вообще говоря, эта утилита позволяет не только переключаться на пользователя root но и на любого другого пользователя, но по умолчанию используется именно root. Рассмотрим ее подробнее. Команда su linux имеет следующий синтаксис:

$ su опции пользователь

Вот ее основные опции:

  • -c, —command — выполнить команду
  • -g, —group — установить основную группу пользователя (только для root)
  • -G —supp-group — дополнительные группы пользователя (только для root)
  • -, -l, —login — режим входа, будут очищены и инициализированы с учетом нового пользователя все переменные окружения, а также изменен домашний каталог
  • -p, —preserve-environment — сохранить переменные окружения
  • -s, —shell — задать оболочку для входа
  • —version — отобразить версию программы.

Теперь немного поэкспериментируем, чтобы понять как работает команда su linux.

Сначала выполним su без параметров, но для начала создадим переменную окружения, чтобы проверить как с ними обходится эта команда:

Теперь выполняем:

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

Из этих команд мы видим, что теперь мы пользователь root, но домашней директорией считается директория нашего предыдущего пользователя и наша переменная не сохранилась также изменилась переменная PATH, теперь там добавлен путь /sbin.

Теперь используем вход в режиме логина:

И повторим ту же комбинацию:

Та же ситуация, только на этот раз изменена ко всему еще и домашняя директория на директорию root. Но мы можем сохранить наши переменные окружения, если это нужно, для этого есть опция -p:

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

Более подробно о команде su вы можете почитать в отдельной статье. Получение прав суперпользователя таким способом используется во многих дистрибутивах, например, Debian, OpenSUSE, ArchLInux, Gentoo и т д. Но в Ubuntu, как дистрибутиве для начинающих вход под пользователем root отключен. Это сделано потому, что это тоже не очень безопасно, вы можете забыть что выполняете команду от root и что-то натворить в системе. Поэтому переходим к следующей программе.

Права и владельцы

В операционной системе UNIX были сформулированы некоторые общие идеи и принципы, которые оказали в дальнейшем сильное влияние на её архитектуру, пользовательский интерфейс, культуру и развитие. В частности, один из основополагающих принципов выражается мантрой «всё есть файл», которую часто называют определяющим пунктом UNIX в целом.
Суть данного принципа заключается в создании унифицированного способа доступа к широкому диапазону ресурсов ввода/вывода: к документам, каталогам, жёстким дискам, дискам CD-ROM, модемам, клавиатурам, принтерам, мониторам, терминалам и даже межпроцессным и сетевым взаимодействиям. Цель — предоставление универсальной абстракции для каждого из этих объектов, названных отцами-оснвоателями UNIX общим термином «файл». Поскольку доступ к файлу осуществляется с помощью одного и того же API, стало возможно использовать одинаковый набор базовых команд для чтения и записи таких разнородных устройств, как диск, клавиатура, документ или сетевой интерфейс.
Абстракция файла, существующая в операционной системе UNIX и совместимых с ней системах, является основополагающей и всеобъемлющей. Любая системная служба и интерфейс устройства теперь могут реализовываться так, чтобы предоставлять другим приложениям метафору файла или файловой системы. Это открывает новые способы их использования и значительно расширяет возможности существующих приложений — простые инструменты, разработанные для решения узких задач, теперь, вооружившись абстракцией файла UNIX, могут использоваться совершенно по-новому. Небольшая утилита вроде cat, предназначенная для считываения одного или нескольких файлов и вывода их содержимого на стандартный поток вывода, теперь может выполнять чтение с устройств ввода-вывода с помощью специальных файлов устройств, как правило расположенных в каталоге . С другой стороны, во многих системах запись и проигрываение звука теперь выполняется всего лишь командами «» и «» соответственно.

В GNU/Linux каждый файл принадлежит какому-то пользователю и группе. Существует три типа прав доступа — чтение, запись и исполнение. Права доступа задаются по отдельности для владельца-пользователя, владельца-группы, и для прочих пользователей, которые не входят в первые две категории. Владельцев файла и права доступа можно узнать с помощью «длинного» формата команды :

$ ls -l /boot/
total 13740
drwxr-xr-x 2 root root    4096 Jan 12 00:33 grub
-rw-r--r-- 1 root root 8570335 Jan 12 00:33 initramfs-linux-fallback.img
-rw-r--r-- 1 root root 1821573 Jan 12 00:31 initramfs-linux.img
-rw-r--r-- 1 root root 1457315 Jan  8 08:19 System.map26
-rw-r--r-- 1 root root 2209920 Jan  8 08:19 vmlinuz-linux

Первая колонка содержит права доступа к файлу (например, правами файла являются ). Третья и четвёртая колонки содержат соответственно пользователя и группу, которым принадлежит файл. В этом примере все файлы принадлежат пользователю root и группе root.

$ ls -l /media/
total 16
drwxrwx--- 1 root vboxsf 16384 Jan 29 11:02 sf_Shared

В этом примере каталог принадлежит пользователю root и группе vboxsf. Владельца и права доступа можно также определить утилитой stat.

Пользователь-владелец:

$ stat -c %U /media/sf_Shared/
root

Группа-владелец:

$ stat -c %G /media/sf_Shared/
vboxsf

Права доступа:

$ stat -c %A /media/sf_Shared/
drwxrwx---

Права доступа отображаются тремя группами символов, которые являются правами соответственно пользователя, группы и всех остальных. Например, строка говорит о том, что владелец файла имеет права на чтение и запись, но не на выполнение (), а пользователи из группы-владельца и прочие пользователи имеют доступ только на чтение ( и ). С другой стороны, строка говорит о том, что у пользователя и группы права на чтение, запись и исполнение ( и ), а все остальные доступа к файлу не имеют вовсе (). Первый символ в строке означает тип файла.

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

# find / -group имя_группы
# find / -group номер_группы
# find / -user имя_пользователя

Изменить владельцев файла можно командой chown, а права доступа меняются командой chmod:

Причины

Причин такого явления несколько:

  1. Вас взломали. Достаточно частое явление, на самом деле, которое фактически означает полную компрометацию системы и требует принятия незамедлительных мер реагирования.
  2. Всё-таки банальная опечатка. Учитывая, что Linux-образные системы не отображают вводимые символы даже с маской, мы зачастую не представляем, что вводим на самом деле. Два примера из практики – одна из клавиатур вдруг перестала пропечатывать цифру “6” на основной части. В другом случае – Bluetooth-клавиатура заглючила и ддублирррррроваала некоторые символы просто бешенно. Разумеется, я не смог войти в систему, пока не разобрался с аппаратной частью.
  3. Пароль забыл/утрачен. Сменён легитимно (вчера отмечали день сисадмина, меняли пароли, наутро всё забыли).

Права суперпользователя в Linux

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

  • Читать, писать и изменять атрибуты файлов в своем каталоге
  • Читать, писать, изменять атрибуты файлов в каталоге /tmp
  • Выполнять программы там, где это не запрещено с помощью флага noexec
  • Читать файлы, для которых установлен флаг чтения для всех пользователей.

Если же нужно сделать что-то большее нам понадобятся права root пользователя linux. У root есть право делать все в вашей файловой системе независимо от того какие права установлены на файл.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector