Как получить информацию о физическом томе как не пользователь root

Существует много способов пойти об этом, но я записал бы небольшую программу или сценарий, который берет в информации о пользователе и выполнениях adduser. Программа принадлежала бы корню с setuid набором битов.

Сохраните его максимально простым. Если Вы не санируете свой вход правильно, у Вас могла бы быть дыра в системе безопасности. Добавление пользователей к системе является опасным бизнесом так или иначе. Хорошая вещь об этой стратегии, хотя то, что Ваш целый исполняемый файл не должен работать как корень, просто сценарий/программа, который добавляет пользователя.

Править:

До очистки входа способ, которым Вы делаете это, зависит от того, как Вы реализуете программу. Если Вы пишете это в C, используйте execve () функция вместо системы (). Существует большой документ с примерами, санируют сбои, которые становятся годными для использования в CERT. Если Вы пишете в Python, предпочитаете модуль подпроцесса системе () по подобным причинам.

Я санировал бы путем снятия любых символов, которые не являются буквами или числами, если у Вас нет определенной потребности. Пользователи создают пароли? Если так, это делает это более трудным. Ключ - то, что Вы не хотите, чтобы они смогли передать любые специальные символы оболочке или программе, называемой, которые имеют особое значение. Для удара некоторые очевидные $, ;, &&. Для mysql Вы хотели бы предотвратить как минимум ', ", и ;.

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

3
03.06.2015, 19:59
2 ответа

Команда pvs является частью lvm. Если вам, как пользователю root, необходимо включить эту забавность для пользователей не root, вы можете использовать setcap, чтобы установить разрешения исполняемых файлов lvm для выполнения действий, которые по умолчанию ограничены для пользователей root.
Это относится к любому исполняемому файлу, который должен выполнять действия с привилегиями root.

Узнайте больше о возможностях файла: http://man7.org/linux/man-pages/man7/capabilities.7.html

Пример: ПЕРЕД setcap

 $ pvs
 WARNING: Running as a non-root user. Functionality may be unavailable.
 /run/lvm/lvmetad.socket: connect failed: Permission denied
 WARNING: Failed to connect to lvmetad: Permission denied. Falling back to internal     scanning.
 /run/lvm/lvmetad.socket: connect failed: Permission denied
 /run/lock/lvm/P_global:aux: open failed: Permission denied
 Unable to obtain global lock.

ПОСЛЕ

setcap "cap_dac_override,cap_dac_read_search,cap_fowner,cap_fsetid,cap_setuid,cap_setpcap,cap_net_bind_service,cap_net_admin,cap_sys_chroot,cap_sys_admin,cap_sys_resource,cap_audit_control,cap_setfcap=+eip" /sbin/lvm 

$ pvs
WARNING: Running as a non-root user. Functionality may be unavailable.
PV         VG            Fmt  Attr PSize  PFree
/dev/sda2  centos        lvm2 a--  15.51g    0
/dev/sdb   DataPool      lvm2 a--  50.00g    0
/dev/sdc   DataPool      lvm2 a--  60.00g    0
/dev/sdd   DBArchivePool lvm2 a--  50.00g    0

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

Не забудьте процитировать прописные буквы, которые вы хотите установить.

4
27.01.2020, 21:11

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

Попробуйте:

  • lsblk

     $ lsblk 
     
    NAME MAJ: MIN RM SIZE RO TYPE MOUNTPOINT 
    sda 8: 0 0 238,5G 0 disk {{ 1}} ├─sda1 8: 1 0 2M 0 частей 
     ├─sda2 8: 2 0 700M 0 частей / загрузка 
     └─sda3 8: 3 0 206,4G 0 частей {{1 }} ├─fed21_ssd_pcsolo-swap 253: 0 0 29,8G 0 lvm [SWAP] 
     ├─fed21_ssd_pcsolo-root 253: 1 0 80G 0 lvm / 
     ├─fed21_ssd_pcsolo-home 253: 2 0 50G 0 lvm / home 
     └─fed21_ssd_pcsolo-tmp 253: 3 0 46,6G 0 lvm / tmp 
    sdb 8:16 0 2,7T 0 disk 
     ⋮ {{ 1}} 
  • lsblk -f (Вывод информации о файловых системах)

  • lsblk -b (Вывести столбец SIZE в байтах, а не в удобочитаемом формате) или lsblk -m (Вывод информации о владельце устройства, группе и режиме)
  • lsblk -O (заглавная «o») это подробно описано
  • lsblk -o (Укажите, какие выходные столбцы следует печатать) вы можете определить собственный формат
4
27.01.2020, 21:11

Теги

Похожие вопросы