Bug 38425 - acc не запускается от непривилигированного пользвателя
Summary: acc не запускается от непривилигированного пользвателя
Status: ASSIGNED
Alias: None
Product: Sisyphus
Classification: Development
Component: alterator-standalone (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Evgeny Sinelnikov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-05-01 20:48 MSK by Aleksey Cheusov
Modified: 2020-05-03 23:56 MSK (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Aleksey Cheusov 2020-05-01 20:48:14 MSK
1) Ставим Simply-9
2) 

apt-get update
apt-get install joe
apt-get install kernel-image-ovz-el7 kernel-headers-ovz-el7
apt-get install appliance-desktop-lxde
apt-get install rxvt-unicode
apt-get install ctwm
apt-get install mksh
apt-get install tmux
apt-get install git-core
apt-get install chromium
apt-get install firefox-esr
apt-get remove ristretto
apt-get remove shotwell
apt-get remove inkscape
apt-get remove gImageReader
apt-get remove gimagereader
apt-get remove imagereader
apt-get remove gimagereader-common
apt-get remove xsane
apt-get remove shotcut audacity  audacious
apt-get remove Xfburn Medit
apt-get remove xfburn medit
apt-get autoremove
apt-get remove thunderbird
apt-get autoremove
apt-get remove libreoffice
apt-get autoremove
apt-get install fonts-bitmap-terminus
apt-get install xinitrc
apt-get install xinit
apt-get install gdm
apt-get remove lightdm
apt-get install lightdm
apt-get remove gdm
apt-get install clang gdb
apt-get install xev
apt-get autoremove
apt-get install telegram-desktop
apt-get update
apt-get install paexec
apt-get install openbox-themes
apt-get install obconf

3) Запускаем acc, хоть из консоли хоть "System management center" из меню и не видим ничего. Висим. Ничего не происходит. Процессор что-то хрумкает и греет атмосферу.

4) strace acc показывает то, что он крутится в бесконечном цикле. Примерно так.

wait4(1572022, [{WIFEXITED(s) && WEXITSTATUS(s) == 1}], 0, NULL) = 1572022
socket(AF_UNIX, SOCK_STREAM, 0)         = 10
connect(10, {sa_family=AF_UNIX, sun_path="/var/run/alteratord/.socket"}, 29) = -1 EACCES (Permission denied)
close(10)                               = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
select(4, [3], NULL, NULL, {tv_sec=0, tv_usec=5000}) = 0 (Timeout)
pipe([10, 11])                          = 0
prlimit64(0, RLIMIT_NOFILE, NULL, {rlim_cur=16*1024, rlim_max=16*1024}) = 0
clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7efcb769ea10) = 1572034
close(11)                               = 0
read(10, "/", 1)                        = 1
read(10, "v", 1)                        = 1
read(10, "a", 1)                        = 1
read(10, "r", 1)                        = 1
тут много read-ов, читаем тия файла по символу
read(10, "/", 1)                        = 1
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=1572034, si_uid=500, si_status=1, si_utime=0, si_stime=0} ---
close(10)                               = 0
wait4(1572034, [{WIFEXITED(s) && WEXITSTATUS(s) == 1}], 0, NULL) = 1572034

И дальше все заново по кругу. От root-а (с правильной переменной DISPLAY) все работает. Но судя по /usr/share/applications/acc.desktop он рассчитан все-таки на запуск от непривилигированного пользователя.

autoremove опять наудалял что-то не то как в #38407?
Comment 1 Michael Shigorin 2020-05-01 23:26:05 MSK
Есть /usr/bin/acc, который пользуется consolehelper для авторизации,
и /usr/sbin/acc; на локалхосте работает ожидаемым образом, но тут
не вполне сизиф.  Проверь наличие пакета consolehelper.
Comment 2 Aleksey Cheusov 2020-05-01 23:50:59 MSK
(In reply to Michael Shigorin from comment #1)
> Есть /usr/bin/acc, который пользуется consolehelper для авторизации,
> и /usr/sbin/acc;

Ясно. В этом и проблема. У меня /usr/sbin в PATH идет перед /usr/bin. Как-то у меня за всю жизнь не было пересечений между /usr/bin/ и /usr/sbin :-) Или я просто не напарывался.

Рац. предложения в рамках этого тикета:

1) сделать так, чтобы /usr/sbin/acc выходил с ошибкой, а не молча зацикливался в случае, если ему не хватает привилегий на открытие /var/run/alteratord/.socket.
2) Прописать в acc.desktop Exec=/usr/bin/acc для "шибко умных" как я.
3) Можно, конечно, и переименовать /usr/sbin/acc во что-нибудь, но тут сейчас шум поднимется.

P.S. man для acc лежит в лекции 8, куда обычно попадают все-таки утилиты из /usr/sbin, а запускать надо /usr/bin, маны для чего обычно все-таки в секции 1. Все запутано. Но тут я, конечно, сознательно придираюсь.
Comment 3 Michael Shigorin 2020-05-02 10:37:40 MSK
(Ответ для Aleksey Cheusov на комментарий #2)
> Рац. предложения в рамках этого тикета:
Резонно.
Comment 4 manowar@altlinux.org 2020-05-03 23:56:23 MSK
Сделаем.