Bug 35463 - xdg-su и не wheel user
Summary: xdg-su и не wheel user
Status: CLOSED NOTABUG
Alias: None
Product: Sisyphus
Classification: Development
Component: xdg-utils (show other bugs)
Version: unstable
Hardware: all Linux
: P1 critical
Assignee: Sergey V Turchin
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-10-02 12:16 MSK by Speccyfighter
Modified: 2018-10-02 13:56 MSK (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Speccyfighter 2018-10-02 12:16:06 MSK
В текущем состоянии, xdg-su

# rpm -qf /usr/bin/xdg-su 
xdg-utils-1.1.3-alt3.S1.noarch

# rpm -qvl xdg-utils | grep bin/xdg-su
-rwxr-xr-x    1 root  root  18603 июл 18 16:18 /usr/bin/xdg-su

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

Здесь, как пример,
https://forum.altlinux.org/index.php?topic=36177.msg331062#msg331062
непривилегированный пользователь не имеющий прав и состоящий только в группе с именем его логина, внёс изменение в блочное устройство /dev/sda. Через xdg-su, этот непривилегированный пользователь мог уничтожить всё содержимое блочного устройства.

Просьба изменить права на запуск xdg-su
на

# ls -l /usr/bin/xdg-su
-rwxr-x--- 1 root wheel 18603 июл 18 16:18 /usr/bin/xdg-su

или на

# ls -l /usr/bin/xdg-su
-rwsr-x--- 1 root wheel 18603 июл 18 16:18 /usr/bin/xdg-su
Comment 1 Anton Farygin 2018-10-02 12:50:15 MSK
Какой-то у вас странный xdg-utils:
$ ls -al /usr/bin/xdg-su 
-rwxr-xr-x 1 root root 18603 июл 18 16:18 /usr/bin/xdg-su

$ rpm -qf /usr/bin/xdg-su
xdg-utils-1.1.3-alt3.S1.noarch

Случайно галочку "запомнить пароль" не нажимали ?
Comment 2 Sergey V Turchin 2018-10-02 12:57:53 MSK
Пароль руту не пустой установите.
Comment 3 Speccyfighter 2018-10-02 13:08:44 MSK
(В ответ на комментарий №1)
> Какой-то у вас странный xdg-utils:
> $ ls -al /usr/bin/xdg-su 
> -rwxr-xr-x 1 root root 18603 июл 18 16:18 /usr/bin/xdg-su
> 
> $ rpm -qf /usr/bin/xdg-su
> xdg-utils-1.1.3-alt3.S1.noarch
> 
> Случайно галочку "запомнить пароль" не нажимали ?

Там нет никакого окна и галочку нажимать негде:
Лайв regular-xfce переведённый на sysv.
Запуск из терминала непривилегированного пользователя builder, группа только builder:

$ xdg-su -c gparted

gparted запускается сразу без запросов и без окна.
Изменения на /dev/sda вносятся и сохраняются.

# rpm -q xdg-utils
xdg-utils-1.1.3-alt3.S1.noarch

# rpm -qvl xdg-utils | grep bin/xdg-su
-rwxr-xr-x    1 root  root   18603 июл 18 16:18 /usr/bin/xdg-su

# ls -al /usr/bin/xdg-su
-rwxr-xr-x 1 root root 18603 июл 18 16:18 /usr/bin/xdg-su
Comment 4 Anton Farygin 2018-10-02 13:09:26 MSK
А что при этом говорит команда xdg-su --help ?
Comment 5 Anton Farygin 2018-10-02 13:10:44 MSK
если я правильно понял логику работы - xdg-su это враппер. У меня, например, запускается kdesu
Comment 6 Speccyfighter 2018-10-02 13:31:32 MSK
(В ответ на комментарий №2)
> Пароль руту не пустой установите.

Спасибо.
Comment 7 Speccyfighter 2018-10-02 13:32:10 MSK
(В ответ на комментарий №4)
> А что при этом говорит команда xdg-su --help ?

$ xdg-su --help
xdg-su - run a GUI program as root after prompting for the root password

Synopsis

xdg-su [-u user] -c command

xdg-su { --help | --manual | --version }

Use 'man xdg-su' or 'xdg-su --manual' for additional info.
Comment 8 Speccyfighter 2018-10-02 13:40:08 MSK
(В ответ на комментарий №5)
> если я правильно понял логику работы - xdg-su это враппер. У меня, например,
> запускается kdesu

В xfce он запускает beesu который не имеет хэлпа

$ man beesu | sed -n '14,39p'
OPTIONS
       --version
              display the software version and exit

       --print-conf
              display the configuration file contents and exit

       -P     don't join ARGs together

       -v     verbose output

       -, -l, --login
              make the shell a login shell

       -c COMMAND
              pass a single COMMAND to the shell with -c

       -f, --fast
              pass -f to the shell (for csh or tcsh)

       -m, --preserve-environment
              do not reset environment variables

       -s SHELL
              run SHELL


И если пароль root установлен, xdg-su пишет в окне:

Чтобы выполнить "beesu",
необходима дополнительная информация
Введите пароль системного администратора root:

Но если у root пароля нет, то непривилегированный пользователь может беспарольно  выполнить любую root-овую команду через xdg-su.
Comment 9 Speccyfighter 2018-10-02 13:52:14 MSK
(В ответ на комментарий №8)
> (В ответ на комментарий №5)
> ...
> Но если у root пароля нет, то непривилегированный пользователь может
> беспарольно  выполнить любую root-овую команду через xdg-su.

Но если xdg-su будет иметь право на запуск только для владельца и группы wheel, то запустить его смогут только они, даже если пароль root пуст. И запускать программу от другого пользователя будет отказано в любом случае, пока запускающий пользователь не окажется в группе wheel.
Так в альтах и работает su:

# ls -la /bin/su 
-rws--x--- 1 root wheel 22368 янв 16  2017 /bin/su

Но не текущий xdg-su.
Comment 10 Speccyfighter 2018-10-02 13:56:58 MSK
(В ответ на комментарий №9)
> (В ответ на комментарий №8)
> > (В ответ на комментарий №5)
> > ...
> > Но если у root пароля нет, то непривилегированный пользователь может
> > беспарольно  выполнить любую root-овую команду через xdg-su.
> 
> Но если xdg-su будет иметь право на запуск только для владельца и группы wheel,
> то запустить его смогут только они, даже если пароль root пуст. И запускать
> программу от другого пользователя будет отказано в любом случае, пока
> запускающий пользователь не окажется в группе wheel.
> Так в альтах и работает su:
> 
> # ls -la /bin/su 
> -rws--x--- 1 root wheel 22368 янв 16  2017 /bin/su
> 

Отказ последует даже тогда, когда пароль root пуст.

> Но не текущий xdg-su.