5311de3b0761dd76654ee901edc479519e0fa55d
[platform/upstream/meta-generic.git] / scripts / generic-base.post
1 #!/bin/sh
2 echo "#################### generic-base.post ####################"
3
4 # setup systemd default target for user session
5 cat <<'EOF' >>/lib/systemd/user/default.target
6 [Unit]
7 Description=User session default target
8 EOF
9 mkdir -p /lib/systemd/user/default.target.wants
10
11 # start dbus session
12 ln -s ../dbus.service /lib/systemd/user/default.target.wants/
13
14 # Run prelink to speed up dynamic binary/library loading
15 /usr/sbin/prelink --all
16
17 ln -sf /proc/self/mounts /etc/mtab
18
19 # fix TIVI-2291
20 sed -ri "s/(^blacklist i8042.*$)/#fix from base-general.post \1/" /etc/modprobe.d/blacklist.conf
21
22 # sdx: fix smack labels on /var/log
23 chsmack -a '*' /var/log
24
25 # workaround for bug PTREL-763
26 patch -b -p1 -d/ <<'EOF'
27 --- bad/etc/pam.d/systemd-user 2014-03-20 10:01:36.657843073 +0100
28 +++ good/etc/pam.d/systemd-user 2014-03-20 10:06:51.586121696 +0100
29 @@ -4,5 +4,6 @@
30  
31  account include system-auth
32  session include system-auth
33 +session required pam_systemd.so
34  auth required pam_deny.so
35  password required pam_deny.so
36 EOF
37
38 # extra fix to avoid root and display sessions (PTREL-763)
39 patch -b -p1 -d/ <<'EOF'
40 --- bad/etc/pam.d/system-auth   2014-04-07 06:16:51.888018876 -0700
41 +++ good/etc/pam.d/system-auth  2014-04-07 06:16:46.335018503 -0700
42 @@ -11,7 +11,6 @@
43  password    required      pam_deny.so
44  
45  session     optional      pam_keyinit.so revoke
46 -session     optional      pam_systemd.so
47  session     required      pam_limits.so
48  session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
49  session     required      pam_unix.so
50 EOF
51
52 # create appfw dirs inside homes
53 function generic_base_user_exists() {
54         user=$1
55         getent passwd | grep -q ^${user}:
56 }
57
58 function generic_base_user_home() {
59         user=$1
60         getent passwd | grep ^${user}: | cut -f6 -d':'
61 }
62
63 function generic_base_fix_user_homedir() {
64         user=$1
65         generic_base_user_exists $user || return 1
66
67         homedir=$(generic_base_user_home $user)
68         for appdir in desktop manifest dbspace; do
69                 mkdir -p $homedir/.applications/$appdir
70         done
71         find $homedir -type d -exec chsmack -a User {} \;
72         chown -R $user:users $homedir
73         return 0
74 }
75
76 # create appfw dirs for user 'app'
77 generic_base_fix_user_homedir app
78
79 # adjust app group: main group 'users', extra group 'app'
80 usermod -g users app
81 usermod -G app app