summarylogtreecommitdiffstats
path: root/set-nc-perms.sh
blob: 849b565ad5ade97afb6875406463de6f5db806eb (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
58
59
60
61
62
#!/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

if [ -d "$2/apps" ]; then
  ncpath="$2"
else
  ncpath='/usr/share/webapps/nextcloud'
fi

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