Назад | Перейти на главную страницу

Как проверить, есть ли у обычного пользователя права суперпользователя

Я хочу проверить, есть ли у обычного пользователя привилегии суперпользователя (имеются в виду привилегии 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.

  1. Он что-то выполняет с s-bit от root. Вы можете найти это, выполнив поиск таких файлов по всей файловой системе (используйте find).
  2. Он меняет идентификатор пользователя (команда su), но это может сделать каждый пользователь, если он знает пароль root (поэтому не давайте никому свой пароль root, чтобы запретить это).
  3. судо. Просто проверьте / etc / sudoers, какие пользователи могут выполнять что с правами root.