Вы можете указать параметры вывода -o
для lsblk, в этом случае STATE
— это то, что вам нужно.
sudo lsblk -a -o NAME,MAJ:MIN,PARTTYPE,STATE
NAME MAJ:MIN PARTTYPE STATE
sda 8:0 running
├─sda1 8:1 21686148-6449-6e6f-744e-656564454649
├─sda2 8:2 0fc63daf-8483-4772-8e79-3d69d8477de4
├─sda3 8:3 0fc63daf-8483-4772-8e79-3d69d8477de4
└─sda4 8:4 0fc63daf-8483-4772-8e79-3d69d8477de4
lsblk --help
предоставит вам больше возможностей для включения, если это необходимо.
Это невозможно -пожалуйста, дочитайте до конца. Если у пользователя есть полный доступ к sudo, он всегда может использовать sudo -i -u root
, sudo /usr/bin/bash
, sudo /usr/bin/{ANY_OTHER_SHELL}
или написать свой собственный скрипт/программу, которая будет использовать несколько команд для получения полного доступа к оболочке. Это тривиально. Они также могут отменить любые изменения конфигурации, которые вы сделали и т. д. Вы можете немного скрыть это, изменив корневую оболочку по умолчанию на /sbin/nologin
.
[vagrant@eurolinux8-vbuilder ~]$ sudo chsh root -s /sbin/nologin
Changing shell for root.
chsh: Warning: "/sbin/nologin" is not listed in /etc/shells.
Shell changed.
[vagrant@eurolinux8-vbuilder ~]$ sudo -i
This account is currently not available.
Но любой опытный пользователь может использовать «голый» вызов bash с помощью sudo:
[vagrant@eurolinux8-vbuilder ~]$ sudo /usr/bin/bash
[root@eurolinux8-vbuilder vagrant]#
Таким образом, скрыть доступ с помощью /usr/sbin/nologin
не очень эффективно.
Вы также можете добавить скрипт в bash или любую другую конфигурацию оболочки, чтобы проверить, является ли пользователь root
, который будет печатать сообщения типа Please use sudo
и выходить из системы. Но опять же, опытные пользователи смогут использовать такие вещи, как --norc
и --noprofile
, или указать свою собственную конфигурацию для bash. Подводя итог -, насколько мне известно, это невозможно. Я даже проверяю, есть ли исключительные случаи [например, с PAM] при использовании пользователя, который обычно является только демоном (, например httpd ). Но с установленным httpd
вы также можете использовать sudo -u apache /usr/bin/bash
. Возможно, есть какое-то решение на основе PAM, но с помощью google -fu я не смог их найти. Это также сложно, потому что вы заинтересованы в отключении интерактивного доступа. В другом случае (отключив доступ к руту полностью ), вы заблокируете систему, и вам придется исправлять это в режиме восстановления.
Вы хотите знать историю терминала, а не ограничивать доступ полностью.В то же время вы должны знать, что пользователи с полным доступом администратора могут удалить свой журнал -, поэтому на всякий случай вам следует использовать rsyslog или другое решение для ведения журнала, чтобы поместить журналы на другой сервер.
Поскольку вы используете дистрибутив на основе RHEL -, вы можете прочитать следующее.https://www.redhat.com/sysadmin/terminal-logging
Отменить изменения в PAM. Они вам не нужны.
Вместо этого используйте visudo
для редактирования файла /etc/sudoers
и закомментируйте строки, начинающиеся с %wheel
и/или %sudo
. Это не позволит пользователям, которые находятся в этих группах, использовать sudo
.
Вы должны добавить строку для себя, прежде чем записывать изменения. В противном случае убедитесь, что у вас есть рабочий пароль root (для su
безsudo
)или какой-либо другой способ использования sudo
для получения привилегий root!