GNU/Linux auto-login/start-X be jokio *DM

T
Techtronic
Mindaugas N.
  • 22 Rugp '13

Vis bandau ir bandau sukurti skripta ar programa kuri automatiskai prisilogintu i mano user ir paleistu X.

Kol kas man to nepavyko...

Bandziau sukurti savo login manager, bet problemos del teisiu, mano programa nesugeba nusimesti ju (EPERM)

#include <stdio.h>
#include <unistd.h>

#define UNPRIV_UID 1000
#define UNPRIV_GID 100

int main(void)
{
  //setuid(1000);
  //setgid(100);

  if (setuid(UNPRIV_UID)!=0) printf("Failed to set nonroot UID\n");
  if (setgid(UNPRIV_GID)!=0) printf("Failed to set nonroot GID\n");

  printf("uid: %d\n", getuid());
  printf("gid: %d\n", getgid());

  system("/usr/bin/id");

  return 0;
}

Kaip suprantu tai visai normalu pagal glibc security standartus...

Savo gentoo pertvarkiau taip, kad naudotu systemd. Systemd turi toki featura kaip paleisti servisus su nurodyto user teisemis ant boot.

Mano servisas:

cat /usr/lib/systemd/system/startx.service
[Unit]
Description=Startx

[Service]
User=minde
ExecStart=/usr/bin/startx

[Install]
WantedBy=graphical.target

be auto login teises:

uid=1001(minde) gid=100(users) groups=100(users),0(root),10(wheel),18(audio),27(video) context=staff_u:sysadm_r:sysadm_t

auto login (systemd)

uid=1001(minde) gid=100(users) groups=100(users),0(root),10(wheel),18(audio),27(video) context=system_u:system_r:kernel_t

Aisku sioks toks progresas, dabar GID nustato tinkamai, bet su SELinux teisemis problema...

Gal kam yra teke pasikurti toki env kuris veiktu ? Arba gal yra kam ideju kaip nusimesti root teises ?

T
Techtronic
Mindaugas N.
  • 19 Rugs '13

Ties pirmu kodu yra klaida, ja lengva fix. Reikia pirma setgid ir tik tada setuid...