summarylogtreecommitdiffstats
path: root/set-nc-perms.sh
blob: 19ddef43466fb7495a603343363ee1631224dbb1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#!/usr/bin/env bash
# from https://docs.nextcloud.org/server/9/admin_manual/installation/installation_wizard.html#strong-perms-label
# run with the argument "runtime" to set the proper runtime permissions
# run with the argument "upgrade" to set the proper upgrade permissions

ncpath='/usr/share/webapps/nextcloud'
htuser='http'
htgroup='http'
rootuser='root'

runtime() {
  printf "Creating possible missing Directories\n"
  mkdir -p $ncpath/data
  mkdir -p $ncpath/assets
  mkdir -p $ncpath/updater

  printf "chmod Files and Directories\n"
  find ${ncpath}/ -type f -print0 | xargs -0 chmod 0640
  find ${ncpath}/ -type d -print0 | xargs -0 chmod 0750

  printf "chown Directories\n"
  chown -R ${rootuser}:${htgroup} ${ncpath}/
  chown -R ${htuser}:${htgroup} ${ncpath}/apps/
  chown -R ${htuser}:${htgroup} ${ncpath}/assets/
  chown -R ${htuser}:${htgroup} ${ncpath}/config/
  chown -R ${htuser}:${htgroup} ${ncpath}/data/
  chown -R ${htuser}:${htgroup} ${ncpath}/themes/
  chown -R ${htuser}:${htgroup} ${ncpath}/updater/

  chmod +x ${ncpath}/occ

  printf "chmod/chown .htaccess\n"
  if [ -f ${ncpath}/.htaccess ]
   then
    chmod 0664 ${ncpath}/.htaccess
    chown ${rootuser}:${htgroup} ${ncpath}/.htaccess
  fi
  if [ -f ${ncpath}/data/.htaccess ]
   then
    chmod 0664 ${ncpath}/data/.htaccess
    chown ${rootuser}:${htgroup} ${ncpath}/data/.htaccess
  fi

  printf "chmod/chown .user.ini\n"
  if [ -f ${ncpath}/.user.ini ]
   then
    chmod 0664 ${ncpath}/.user.ini
    chown ${rootuser}:${htgroup} ${ncpath}/.htaccess
  fi
}

upgrade() {
  printf "Setting upgrade permissions\n"
  chown -R ${htuser}:${htgroup} ${ncpath}
}

$1