Я хочу проверить, есть ли у обычного пользователя привилегии суперпользователя (имеются в виду привилегии root). Моя ОС - RHEL 6, и я проверил /etc/passwd
файл конфигурации, но бесполезен. Подскажите, пожалуйста, какой-либо способ узнать текущие привилегии пользователей на Linux Machine.
В прошлом корневая модель в мире Unix была простой. uid 0, вы root и у вас есть все права на все. Однако все немного изменилось.
суид бит
Файлы могут быть предоставлены с суид бит поэтому они могут быть запущены с правами root даже обычным пользователям. Хорошо, это могло быть в исходном Unix. :-)
группы
Если пользователь принадлежит к группе 0, он может не иметь полных привилегий root, но все же может видеть много вещей, не предназначенных для просмотра. Также в некоторых дистрибутивах wheel
группа - это то, за чем нужно следить - пользователи, принадлежащие к этой группе, могут su
их путь к root, если они знают пароль root.
судо
Помимо традиционных su
, то sudo
Команда позволяет ограничить определенных пользователей / групп выполнять только некоторые команды от имени пользователя root. Проверьте это с visudo
.
доступ по ssh
С помощью ssh можно сгенерировать ключ ssh, с которым вы можете подключиться как root, но использовать только команды x, y и z. Обычно это используется в таких задачах, как резервное копирование, когда процесс резервного копирования должен иметь доступ ко всем файлам в системе.
возможности
Ядро Linux получило возможности который может предоставлять доступ к определенным подсистемам, таким как сетевые интерфейсы или блочные устройства. Видеть этот список.
SELinux роли
Если рамки безопасности SELinux включен в вашей системе, также SELinux имеет доступ на основе ролей. Видеть Руководство Fedora по SELinux.
Пользователь может получить косвенные права суперпользователя, предоставив их через программу под названием sudo
.
С участием sudo
вы можете указать, какой пользователь или какая группа может выполнять определенные программы с привилегиями суперпользователя.
Привилегии суперпользователя задаются как UID (идентификатор пользователя) 0. grep для пользователя из файла / etc / password. Первое числовое поле после пользователя - это UID, а второе - GID (groupid). Если пользователь не имеет UID 0, он не имеет привилегий root. Это не распространяется на дополнительные разрешения, которые они могут иметь, находясь в соответствующей группе (wheel, никто и т. Д.), Но они не являются суперпользователем. Если вы все еще не уверены, что этот пользователь может и не может делать, просто нажмите su для этого пользователя (su - имя пользователя) и посмотрите, что вы можете сделать. Можете ли вы прикоснуться к файлу в каталоге, который вам не принадлежит? В противном случае вы не суперпользователь. Надеюсь, это помогло.
пример: никто: x: 99: 45: Никто: /: / sbin / nologin
Никто не имя пользователя, 99 - это uid, 45 - это gid.
У пользователя обычно нет привилегий суперпользователя. Но мне пришло в голову 3 способа, которыми обычный пользователь (то есть UID! = 0) может получить привилегии root.