# [solved] LXDE - zwykły user nie może wyłączyć systemu

## blendermen

Witam.

Nie wiem jak zrobić aby zwykły użytkownik mógł wyłączyć komputer przez menu lxde. Z opcji wyłączania mam tylko logout - jedyna opcja, która działa. Są jeszcze hibernate i suspend ale po naciśnięciu pojawia się info: not authorized.

Szukałem problemu w innych wątkach ale żaden nie pomógł w rozwiązaniu problemu, zmieniałem też grupy, ustawienia w pliku sudoers i konfigurowałem consolekit i nic

plik ~/.xinitrc

```
exec ck-launch-session  startlxde
```

plik /etc/group

```
root:x:0:root,mazur

bin:x:1:root,bin,daemon

daemon:x:2:root,bin,daemon

sys:x:3:root,bin,adm

adm:x:4:root,adm,daemon

tty:x:5:

disk:x:6:root,adm,mazur

lp:x:7:lp,mazur

mem:x:8:

kmem:x:9:

wheel:x:10:root,mazur

floppy:x:11:root

news:x:13:news

uucp:x:14:uucp

console:x:17:

audio:x:18:mazur

cdrom:x:19:mazur

tape:x:26:root

video:x:27:root,mazur

cdrw:x:80:mazur

usb:x:85:mazur

users:x:100:mazur

portage:x:250:portage,mazur

utmp:x:406:

nogroup:x:65533:

nobody:x:65534:

man:x:15:

sshd:x:22:

cron:x:16:mazur

mail:x:12:

postmaster:x:249:

ssmtp:x:248:

crontab:x:247:

ldap:x:439:

messagebus:x:246:

lpadmin:x:106:

mazur:x:1000:

ntp:x:123:

shutdown:x:1001:mazur

```

plik /etc/sudoers

```
....

##

## User privilege specification

##

root ALL=(ALL) ALL

mazur ALL=(ALL) ALL

%shutdown ALL=(root) NOPASSWD: /bin/halt

## Uncomment to allow members of group wheel to execute any command

 %wheel ALL=(ALL) ALL

## Same thing without a password

 %wheel ALL=(ALL) NOPASSWD: ALL

...

```

Po zalogowaniu na root`a w LXDE mam wszystkie opcje dotyczące zamykania systemu.

Komputer będzie używany przez osoby, które nie znają się na Linuksie stąd rozwiązanie problemu z wpisaniem w konsoli sudo halt + hasło odpada ;p

Pozdrawiam.Last edited by blendermen on Thu Sep 15, 2011 8:39 pm; edited 1 time in total

----------

## sebas86

Wykorzystaj do tego policykit i consolekit. Widzę sesję console-kit inicjujesz ręcznie, wiec powinno starczyć dodanie odpowiednich reguł, spróbuj utworzyć plik /etc/polkit-1/localauthority/50-local.d/org.freedesktop.consolekit.pkla z następującą treścią:

```
[Local restart]

Identity=unix-group:wheel

Action=org.freedesktop.consolekit.system.restart

ResultAny=yes

ResultInactive=yes

ResultActive=yes

[Local shutdown]

Identity=unix-group:wheel

Action=org.freedesktop.consolekit.system.stop

ResultAny=yes

ResultInactive=yes

ResultActive=yes

[Local restart - multiple]

Identity=unix-group:wheel

Action=org.freedesktop.consolekit.system.restart-multiple-users

ResultAny=yes

ResultInactive=yes

ResultActive=yes

[Local shutdown - multiple]

Identity=unix-group:wheel

Action=org.freedesktop.consolekit.system.stop-multiple-users

ResultAny=yes

ResultInactive=yes

ResultActive=yes
```

Upewnij się też, że masz uruchomione demony dbus i consolekit:

```
# rc-status | grep -e 'dbus\|consolekit'

 dbus                                                              [  started  ]

 consolekit                                                        [  started  ]
```

PS. Jeślisz korzystasz z GDM sesję consolekit zapewne masz już zainicjowaną. Jeśli zadziała, spróbuj też bez ręcznej inicjacji, po co marnować zasoby systemowe nadmiarowymi sesjami.  :Wink:  Istnienie poprawnie zainicjowanej sesji możesz sprawdzić wywołując ck-list-sessions.

----------

## blendermen

Niestety nie działa.

Mam tylko consolekit bo policekit jest zamaskowane w /usr/portage/profiles/base/package.mask i jest napisane, żeby nie umaskować bo musiałbym bardzo dużo zależności odmaskować. Zainstalować to ? nic się nie stanie?

Mam menadżer logowanie SLIM, to instalacja GDM może pomóc? 

a polecenie :ck-list-sessions pokazuje

```
mazur@PC1 ~ $ ck-list-sessions

Session1:

        unix-user = '1000'

        realname = '(null)'

        seat = 'Seat2'

        session-type = ''

        active = FALSE

        x11-display = ':0.0'

        x11-display-device = '/dev/tty7'

        display-device = ''

        remote-host-name = ''

        is-local = FALSE

        on-since = '2011-09-15T10:22:06.960806Z'

        login-session-id = '4'

mazur@PC1 ~ $ 
```

EDIT:

Zadziałało. Zainstalowałem i użyłem GDM zamiast SLIM`s ale w dalszym ciągu zastanawiam się jak skonfigurować to do pracy ze SLIM `em ale to już drobiazg 

Pzdr.

----------

## sebas86

 *blendermen wrote:*   

> Zadziałało. Zainstalowałem i użyłem GDM zamiast SLIM`s ale w dalszym ciągu zastanawiam się jak skonfigurować to do pracy ze SLIM `em ale to już drobiazg.

  U mnie problem rozwiązuje coś takiego (oczywiście chodzi o plik /etc/slim.conf):

```
login_cmd           exec /usr/bin/ck-launch-session /bin/bash -login /usr/share/slim/Xsession %session
```

----------

