From: Baptiste DURAND Date: Fri, 26 Sep 2014 09:41:23 +0000 (+0200) Subject: Align with Multi user feature, SDB tool should concider develloper as regular user X-Git-Tag: submit/tizen_common/20141015.091219^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0a8910cefe6547aa9a5a1bedbc2ccf33efe789a6;p=sdk%2Ftarget%2Fsdbd.git Align with Multi user feature, SDB tool should concider develloper as regular user Develloper user should be owned by users group Add Home directory creation Linked with : https://review.tizen.org/gerrit/#/c/28178/ BUG=TC-320 Change-Id: I79fad0baac5c0bd763aa3d4d56a07d3f49be55e0 Signed-off-by: Baptiste DURAND --- diff --git a/packaging/sdbd.spec b/packaging/sdbd.spec index dc2c194..a2a6732 100644 --- a/packaging/sdbd.spec +++ b/packaging/sdbd.spec @@ -46,6 +46,13 @@ install -m 0644 %SOURCE1004 %{buildroot}%{_libdir}/systemd/system/sdbd_tcp.servi mkdir -p %{buildroot}%{_prefix}/sbin install -m 755 script/sdk_launch %{buildroot}%{_prefix}/sbin/ + +%post +mkdir -p /home/developer/.applications +chown -R developer:users /home/developer/ +chsmack -a "User" /home/developer/ +chsmack -a "User" /home/developer/.applications + %files %manifest sdbd.manifest %license LICENSE diff --git a/src/sdb.c b/src/sdb.c index 1018430..20d190a 100644 --- a/src/sdb.c +++ b/src/sdb.c @@ -1095,13 +1095,13 @@ int should_drop_privileges() { } int set_developer_privileges() { - gid_t groups[] = { SID_DEVELOPER, SID_APP_LOGGING, SID_SYS_LOGGING, SID_INPUT }; + gid_t groups[] = { GID_DEVELOPER, SID_APP_LOGGING, SID_SYS_LOGGING, SID_INPUT }; if (setgroups(sizeof(groups) / sizeof(groups[0]), groups) != 0) { D("set groups failed (errno: %d, %s)\n", errno, strerror(errno)); } // then switch user and group to developer - if (setgid(SID_DEVELOPER) != 0) { + if (setgid(GID_DEVELOPER) != 0) { D("set group id failed (errno: %d, %s)\n", errno, strerror(errno)); return -1; } @@ -1146,7 +1146,7 @@ static void init_sdk_requirements() { if (stat(ONDEMAND_ROOT_PATH, &st) == -1) { return; } - if (st.st_uid != SID_DEVELOPER || st.st_gid != SID_DEVELOPER) { + if (st.st_uid != SID_DEVELOPER || st.st_gid != GID_DEVELOPER) { char cmd[128]; snprintf(cmd, sizeof(cmd), "chown %s:%s %s -R", DEV_NAME, DEV_NAME, ONDEMAND_ROOT_PATH); if (system(cmd) < 0) { @@ -1207,7 +1207,7 @@ int sdb_main(int is_daemon, int server_port) exit(1); } /* then switch user and group to "developer" */ - if (setgid(SID_DEVELOPER) != 0) { + if (setgid(GID_DEVELOPER) != 0) { fprintf(stderr, "set group id failed errno: %d\n", errno); exit(1); } diff --git a/src/sdb.h b/src/sdb.h index ccee503..0341962 100644 --- a/src/sdb.h +++ b/src/sdb.h @@ -334,6 +334,7 @@ int rootshell_mode;// 0: developer, 1: root #define SID_TTY 5 /* group for /dev/ptmx */ #define SID_APP tzplatform_getuid(TZ_USER_NAME) /* application */ #define SID_DEVELOPER tzplatform_getuid(TZ_SDK_USER_NAME) /* developer with SDK */ +#define GID_DEVELOPER 100 /* developer will be member of users with SDK */ #define SID_APP_LOGGING 6509 #define SID_SYS_LOGGING 6527 #define SID_INPUT 1004