Dopo la nuova installazione di Ubuntu 15.04, l'avvio richiede la password anche se non è stata impostata la crittografia del disco


22

Ho installato un nuovissimo SSD sul mio laptop e ho fatto una nuova installazione di Ubuntu 15.04, senza usare la crittografia del sistema (solo la crittografia della directory Home). Tuttavia, mi chiede ancora una password durante l'avvio (premo semplicemente Invio per saltare):

http://i.imgur.com/yhtfLRd.jpg

Inoltre, dopo aver eseguito la nuova installazione, l'aggiornamento dei pacchetti mi richiede anche una password più volte, che Enterelude anche. Il programma è "systemd-tty-ask-password-agent", quindi il problema sembra riguardare systemd.

Il messaggio rilevante nel terminale:

Please enter passphrase for disk Crucial_CT250MX200SSD4 (cryptswap1) on none! 
update-initramfs: deferring update (trigger activated)

Broadcast message from root@username-XPS-13-9343 (Thu 2015-04-30 22:06:22 EDT):

Password entry required for 'Please enter passphrase for disk Crucial_CT250MX200SSD4 (cryptswap1) on none!' (PID 4027).
Please enter password with the systemd-tty-ask-password-agent tool!

L'output completo dall'esecuzione dell'aggiornamento:

+username@username-XPS-13-9343:~$ sudo apt-get upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
The following packages will be upgraded:
  ca-certificates firefox gir1.2-gudev-1.0 libcurl3 libcurl3-gnutls
  libgudev-1.0-0 libnm-glib-vpn1 libnm-glib4 libnm-util2 liboxideqt-qmlplugin
  liboxideqtcore0 liboxideqtquick0 libpam-systemd libsystemd0 libudev1
  network-manager oxideqt-codecs systemd systemd-sysv tzdata udev
  usb-creator-common usb-creator-gtk wpasupplicant
24 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 47.9 MB/73.2 MB of archives.
After this operation, 2,989 kB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 http://us.archive.ubuntu.com/ubuntu/ vivid-updates/main libudev1 amd64 219-7ubuntu4 [40.8 kB]
Get:2 http://us.archive.ubuntu.com/ubuntu/ vivid-updates/main udev amd64 219-7ubuntu4 [929 kB]
Get:3 http://us.archive.ubuntu.com/ubuntu/ vivid-updates/main systemd-sysv amd64 219-7ubuntu4 [14.0 kB]
Get:4 http://us.archive.ubuntu.com/ubuntu/ vivid-updates/main libpam-systemd amd64 219-7ubuntu4 [108 kB]
Get:5 http://us.archive.ubuntu.com/ubuntu/ vivid-updates/main libsystemd0 amd64 219-7ubuntu4 [73.8 kB]
Get:6 http://us.archive.ubuntu.com/ubuntu/ vivid-updates/main systemd amd64 219-7ubuntu4 [3,531 kB]
Get:7 http://us.archive.ubuntu.com/ubuntu/ vivid-updates/main libcurl3-gnutls amd64 7.38.0-3ubuntu2.2 [172 kB]
Get:8 http://us.archive.ubuntu.com/ubuntu/ vivid-updates/main libcurl3 amd64 7.38.0-3ubuntu2.2 [180 kB]
Get:9 http://us.archive.ubuntu.com/ubuntu/ vivid-updates/main libgudev-1.0-0 amd64 1:219-7ubuntu4 [14.4 kB]
Get:10 http://us.archive.ubuntu.com/ubuntu/ vivid-updates/main libnm-util2 amd64 0.9.10.0-4ubuntu15.1 [134 kB]
Get:11 http://us.archive.ubuntu.com/ubuntu/ vivid-updates/main libnm-glib-vpn1 amd64 0.9.10.0-4ubuntu15.1 [14.4 kB]
Get:12 http://us.archive.ubuntu.com/ubuntu/ vivid-updates/main libnm-glib4 amd64 0.9.10.0-4ubuntu15.1 [84.7 kB]
Get:13 http://us.archive.ubuntu.com/ubuntu/ vivid-updates/main tzdata all 2015d-0ubuntu0.15.04 [178 kB]
Get:14 http://us.archive.ubuntu.com/ubuntu/ vivid-updates/main ca-certificates all 20141019ubuntu0.15.04.1 [191 kB]
Get:15 http://us.archive.ubuntu.com/ubuntu/ vivid-updates/main firefox amd64 37.0.2+build1-0ubuntu0.15.04.1 [40.1 MB]
Get:16 http://us.archive.ubuntu.com/ubuntu/ vivid-updates/main gir1.2-gudev-1.0 amd64 1:219-7ubuntu4 [5,564 B]
Get:17 http://us.archive.ubuntu.com/ubuntu/ vivid-updates/main wpasupplicant amd64 2.1-0ubuntu7.1 [768 kB]
Get:18 http://us.archive.ubuntu.com/ubuntu/ vivid-updates/main network-manager amd64 0.9.10.0-4ubuntu15.1 [754 kB]
Get:19 http://us.archive.ubuntu.com/ubuntu/ vivid-updates/main usb-creator-gtk amd64 0.2.67ubuntu0.1 [23.4 kB]
Get:20 http://us.archive.ubuntu.com/ubuntu/ vivid-updates/main usb-creator-common amd64 0.2.67ubuntu0.1 [23.7 kB]
Get:21 http://us.archive.ubuntu.com/ubuntu/ vivid-updates/main oxideqt-codecs amd64 1.6.5-0ubuntu0.15.04.1 [533 kB]
Fetched 47.9 MB in 1min 18s (613 kB/s)                                         
Preconfiguring packages ...
(Reading database ... 171469 files and directories currently installed.)
Preparing to unpack .../libudev1_219-7ubuntu4_amd64.deb ...
Unpacking libudev1:amd64 (219-7ubuntu4) over (219-7ubuntu3) ...
Setting up libudev1:amd64 (219-7ubuntu4) ...
Processing triggers for libc-bin (2.21-0ubuntu4) ...
(Reading database ... 171469 files and directories currently installed.)
Preparing to unpack .../udev_219-7ubuntu4_amd64.deb ...
Unpacking udev (219-7ubuntu4) over (219-7ubuntu3) ...
Processing triggers for man-db (2.7.0.2-5) ...
Processing triggers for ureadahead (0.100.0-19) ...
ureadahead will be reprofiled on next reboot
Processing triggers for systemd (219-7ubuntu3) ...
Setting up udev (219-7ubuntu4) ...
Please enter passphrase for disk Crucial_CT250MX200SSD4 (cryptswap1) on none! 
update-initramfs: deferring update (trigger activated)

Broadcast message from root@username-XPS-13-9343 (Thu 2015-04-30 22:06:22 EDT):

Password entry required for 'Please enter passphrase for disk Crucial_CT250MX200SSD4 (cryptswap1) on none!' (PID 4027).
Please enter password with the systemd-tty-ask-password-agent tool!

Processing triggers for initramfs-tools (0.103ubuntu15) ...
update-initramfs: Generating /boot/initrd.img-3.19.0-15-generic
(Reading database ... 171469 files and directories currently installed.)
Preparing to unpack .../systemd-sysv_219-7ubuntu4_amd64.deb ...
Unpacking systemd-sysv (219-7ubuntu4) over (219-7ubuntu3) ...
Processing triggers for man-db (2.7.0.2-5) ...
Setting up systemd-sysv (219-7ubuntu4) ...
(Reading database ... 171469 files and directories currently installed.)
Preparing to unpack .../libpam-systemd_219-7ubuntu4_amd64.deb ...
Unpacking libpam-systemd:amd64 (219-7ubuntu4) over (219-7ubuntu3) ...
Preparing to unpack .../libsystemd0_219-7ubuntu4_amd64.deb ...
Unpacking libsystemd0:amd64 (219-7ubuntu4) over (219-7ubuntu3) ...
Processing triggers for man-db (2.7.0.2-5) ...
Setting up libsystemd0:amd64 (219-7ubuntu4) ...
Processing triggers for libc-bin (2.21-0ubuntu4) ...
(Reading database ... 171469 files and directories currently installed.)
Preparing to unpack .../systemd_219-7ubuntu4_amd64.deb ...
Unpacking systemd (219-7ubuntu4) over (219-7ubuntu3) ...
Processing triggers for dbus (1.8.12-1ubuntu5) ...
Processing triggers for man-db (2.7.0.2-5) ...
Processing triggers for ureadahead (0.100.0-19) ...
Setting up systemd (219-7ubuntu4) ...
Please enter passphrase for disk Crucial_CT250MX200SSD4 (cryptswap1) on none! 
(Reading database ... 171469 files and directories currently installed.)
Preparing to unpack .../libcurl3-gnutls_7.38.0-3ubuntu2.2_amd64.deb ...
Unpacking libcurl3-gnutls:amd64 (7.38.0-3ubuntu2.2) over (7.38.0-3ubuntu2) ...
Preparing to unpack .../libcurl3_7.38.0-3ubuntu2.2_amd64.deb ...
Unpacking libcurl3:amd64 (7.38.0-3ubuntu2.2) over (7.38.0-3ubuntu2) ...
Preparing to unpack .../libgudev-1.0-0_1%3a219-7ubuntu4_amd64.deb ...
Unpacking libgudev-1.0-0:amd64 (1:219-7ubuntu4) over (1:219-7ubuntu3) ...
Preparing to unpack .../libnm-util2_0.9.10.0-4ubuntu15.1_amd64.deb ...
Unpacking libnm-util2:amd64 (0.9.10.0-4ubuntu15.1) over (0.9.10.0-4ubuntu15) ...
Preparing to unpack .../libnm-glib-vpn1_0.9.10.0-4ubuntu15.1_amd64.deb ...
Unpacking libnm-glib-vpn1:amd64 (0.9.10.0-4ubuntu15.1) over (0.9.10.0-4ubuntu15) ...
Preparing to unpack .../libnm-glib4_0.9.10.0-4ubuntu15.1_amd64.deb ...
Unpacking libnm-glib4:amd64 (0.9.10.0-4ubuntu15.1) over (0.9.10.0-4ubuntu15) ...
Preparing to unpack .../tzdata_2015d-0ubuntu0.15.04_all.deb ...
Unpacking tzdata (2015d-0ubuntu0.15.04) over (2015c-1) ...
Setting up tzdata (2015d-0ubuntu0.15.04) ...

Current default time zone: 'America/New_York'
Local time is now:      Thu Apr 30 22:20:06 EDT 2015.
Universal Time is now:  Fri May  1 02:20:06 UTC 2015.
Run 'dpkg-reconfigure tzdata' if you wish to change it.

(Reading database ... 171469 files and directories currently installed.)
Preparing to unpack .../ca-certificates_20141019ubuntu0.15.04.1_all.deb ...
Unpacking ca-certificates (20141019ubuntu0.15.04.1) over (20141019) ...
Preparing to unpack .../firefox_37.0.2+build1-0ubuntu0.15.04.1_amd64.deb ...
Unpacking firefox (37.0.2+build1-0ubuntu0.15.04.1) over (37.0+build2-0ubuntu1) ...
Preparing to unpack .../gir1.2-gudev-1.0_1%3a219-7ubuntu4_amd64.deb ...
Unpacking gir1.2-gudev-1.0 (1:219-7ubuntu4) over (1:219-7ubuntu3) ...
Preparing to unpack .../wpasupplicant_2.1-0ubuntu7.1_amd64.deb ...
Unpacking wpasupplicant (2.1-0ubuntu7.1) over (2.1-0ubuntu7) ...
Preparing to unpack .../network-manager_0.9.10.0-4ubuntu15.1_amd64.deb ...
Unpacking network-manager (0.9.10.0-4ubuntu15.1) over (0.9.10.0-4ubuntu15) ...

Broadcast message from root@username-XPS-13-9343 (Thu 2015-04-30 22:20:19 EDT):

Password entry required for 'Please enter passphrase for disk Crucial_CT250MX200SSD4 (cryptswap1) on none!' (PID 15391).
Please enter password with the systemd-tty-ask-password-agent tool!

Preparing to unpack .../usb-creator-gtk_0.2.67ubuntu0.1_amd64.deb ...
Unpacking usb-creator-gtk (0.2.67ubuntu0.1) over (0.2.67) ...
Preparing to unpack .../usb-creator-common_0.2.67ubuntu0.1_amd64.deb ...
Unpacking usb-creator-common (0.2.67ubuntu0.1) over (0.2.67) ...
Preparing to unpack .../liboxideqt-qmlplugin_1.6.5-0ubuntu0.15.04.1_amd64.deb ...
Unpacking liboxideqt-qmlplugin:amd64 (1.6.5-0ubuntu0.15.04.1) over (1.5.5-0ubuntu1) ...
Preparing to unpack .../liboxideqtquick0_1.6.5-0ubuntu0.15.04.1_amd64.deb ...
Unpacking liboxideqtquick0:amd64 (1.6.5-0ubuntu0.15.04.1) over (1.5.5-0ubuntu1) ...
Preparing to unpack .../liboxideqtcore0_1.6.5-0ubuntu0.15.04.1_amd64.deb ...
Unpacking liboxideqtcore0:amd64 (1.6.5-0ubuntu0.15.04.1) over (1.5.5-0ubuntu1) ...
Preparing to unpack .../oxideqt-codecs_1.6.5-0ubuntu0.15.04.1_amd64.deb ...
Unpacking oxideqt-codecs:amd64 (1.6.5-0ubuntu0.15.04.1) over (1.5.5-0ubuntu1) ...
Processing triggers for man-db (2.7.0.2-5) ...
Processing triggers for gnome-menus (3.10.1-0ubuntu5) ...
Processing triggers for desktop-file-utils (0.22-1ubuntu3) ...
Processing triggers for bamfdaemon (0.5.1+15.04.20150202-0ubuntu1) ...
Rebuilding /usr/share/applications/bamf-2.index...
Processing triggers for mime-support (3.58ubuntu1) ...
Processing triggers for dbus (1.8.12-1ubuntu5) ...
Processing triggers for systemd (219-7ubuntu4) ...
Processing triggers for ureadahead (0.100.0-19) ...
Processing triggers for hicolor-icon-theme (0.14-0ubuntu1) ...
Setting up libpam-systemd:amd64 (219-7ubuntu4) ...
Setting up libcurl3-gnutls:amd64 (7.38.0-3ubuntu2.2) ...
Setting up libcurl3:amd64 (7.38.0-3ubuntu2.2) ...
Setting up libgudev-1.0-0:amd64 (1:219-7ubuntu4) ...
Setting up libnm-util2:amd64 (0.9.10.0-4ubuntu15.1) ...
Setting up libnm-glib-vpn1:amd64 (0.9.10.0-4ubuntu15.1) ...
Setting up libnm-glib4:amd64 (0.9.10.0-4ubuntu15.1) ...
Setting up ca-certificates (20141019ubuntu0.15.04.1) ...
Setting up firefox (37.0.2+build1-0ubuntu0.15.04.1) ...
Please restart all running instances of firefox, or you will experience problems.
Setting up gir1.2-gudev-1.0 (1:219-7ubuntu4) ...
Setting up wpasupplicant (2.1-0ubuntu7.1) ...
Setting up network-manager (0.9.10.0-4ubuntu15.1) ...
Please enter passphrase for disk Crucial_CT250MX200SSD4 (cryptswap1) on none! 

Broadcast message from root@username-XPS-13-9343 (Thu 2015-04-30 22:20:47 EDT):

Password entry required for 'Please enter passphrase for disk Crucial_CT250MX200SSD4 (cryptswap1) on none!' (PID 19822).
Please enter password with the systemd-tty-ask-password-agent tool!

Please enter passphrase for disk Crucial_CT250MX200SSD4 (cryptswap1) on none! 
Setting up usb-creator-common (0.2.67ubuntu0.1) ...
Setting up usb-creator-gtk (0.2.67ubuntu0.1) ...
Setting up oxideqt-codecs:amd64 (1.6.5-0ubuntu0.15.04.1) ...
Setting up liboxideqtcore0:amd64 (1.6.5-0ubuntu0.15.04.1) ...
Setting up liboxideqtquick0:amd64 (1.6.5-0ubuntu0.15.04.1) ...
Setting up liboxideqt-qmlplugin:amd64 (1.6.5-0ubuntu0.15.04.1) ...
Processing triggers for libc-bin (2.21-0ubuntu4) ...
Processing triggers for ca-certificates (20141019ubuntu0.15.04.1) ...
Updating certificates in /etc/ssl/certs... 0 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d....done.
username@username-XPS-13-9343:~$ 

Qualcuno ha pubblicato un problema simile qui , ma sembra essere correlato a OpenVPN, che non sto usando. Non ho il /etc/default/openvpnfile comunque.

Come posso risolvere questo problema?


Non ho mai usato la crittografia, la directory principale / home è montata abbastanza presto nel processo di avvio. Sei sicuro di non dover fornire un passaggio a questo punto.
rhubarbdog

Ho lo stesso problema come te, non mi dispiace dover digitare la password all'avvio ma è fastidioso dover digitare la password 10 volte durante l'aggiornamento
Kempe,

Se aiuta qualcuno, la mia soluzione era quella di commentare la normale partizione di swap /etc/fstabe di lasciare il cryptswap senza commenti
Wolf

Risposte:


9

È un problema noto, dovrebbe essere risolto presto:

https://bugs.launchpad.net/ubuntu/+source/ecryptfs-utils/+bug/1447282

In breve: in determinate circostanze, systemd non riconosce correttamente lo swap crittografato e richiede una password che non è mai stata impostata. Lo scambio è sempre crittografato nel caso in cui la crittografia per casa fosse attivata in quanto i dati utente potevano essere scambiati e quindi non essere crittografati.


Grazie per il testa a testa - ho accettato l'altra risposta per non fuorviare gli altri. La sicurezza è abbastanza importante per me, quindi sarebbe davvero bello se potessi aggiungere alcune istruzioni su come invertire in modo sicuro i passaggi forniti da Kempe (senza interrompere nulla). C'è una soluzione più sicura per ora? E quando risolveranno questo, interesserebbe solo le nuove installazioni o anche quelle esistenti?
agenda del

1
Hai come invertirlo nel link alla fine della mia risposta
Kempe,

1
Questo è mai stato risolto? Sono il 15.10 e ho ancora questo problema.
Matt,

Ancora non riparato in 16.04 LTS. Questa risposta ha una soluzione alternativa che ha funzionato per me.
Giorno

8

Questa non è la soluzione corretta e, come dice Christian nei commenti qui sotto, la renderà meno sicura. Ma se la crittografia non è una priorità per te, puoi usare questa soluzione alternativa.

Per prima cosa trova la partizione che ha lo swap

sudo fdisk -l
[sudo] password for kempe: 

Disk /dev/sda: 233,8 GiB, 251000193024 bytes, 490234752 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: B59D4149-AC8E-4B71-B51F-8926B2E82C14

Device         Start       End   Sectors   Size Type
/dev/sda1       2048    409599    407552   199M EFI System
/dev/sda2     409640 253319775 252910136 120,6G Apple HFS/HFS+
/dev/sda3  253321216 269320191  15998976   7,6G Linux swap
/dev/sda4  269320192 490233855 220913664 105,3G Linux filesystem

Nel mio caso lo swap è attivo /dev/sda3

quindi disattivare lo scambio

sudo swapoff -a

disabilita cryptswap

sudo cryptsetup remove /dev/mapper/cryptswap1

Rimuovi la riga corrispondente in / etc / crypttab. Ho avuto solo una riga, ma potresti averne di più, quindi assicurati di rimuovere il corretto

sudo vim /etc/crypttab 

Imposta una nuova area di swap (ricorda l'output di fstab)

sudo /sbin/mkswap /dev/sda3
sudo swapon /dev/sda3

e infine aggiustare la linea fstab

sudo vim /etc/fstab

sostituire /dev/mapper/cryptswap1con/dev/sda3

Abilita e disabilita lo scambio crittografato - Ubuntu


Grazie! L'unica differenza per me era che /dev/mapper/cryptswap1non esisteva per me. Mi chiedo che cosa abbia causato questo. Potrebbe essere un bug nel programma di installazione 15.04.
agenda del

Sì probabilmente. Almeno non l'ho abilitato
Kempe,

1
Questa risposta è PERICOLAMENTE SBAGLIATA! In realtà sta rompendo la sicurezza. Anche lo spazio di swap viene crittografato in modo casuale, quando home viene crittografata, poiché i dati dell'utente potrebbero essere scambiati !! In realtà, sembra esserci un problema nel systemd che richiede la richiesta di una password anche per le partizioni crittografate casualmente, ma questa soluzione rompe il concetto di crittografia!
Christian,

L'hai avuto. Probabilmente non te ne sei accorto. Lo scambio viene sempre crittografato quando viene crittografata la home. Sembra essere un problema di sistema. Non dovrebbe essere richiesta una password in quanto non esiste. Poiché i dati sullo scambio sono irrilevanti dopo un riavvio, la chiave di crittografia viene generata casualmente ad ogni avvio. lists.launchpad.net/touch-packages/msg72437.html
Christian

1
sì, probabilmente non l'ho notato, ma il comportamento in 15.04 con domande sulla password per tutto quello che fai e più volte per ogni comando è PERICOLOSAMENTE fastidioso e potrebbe portare a danni cerebrali permanenti ...
Kempe,

6

Sono stato in grado di risolvere questo problema con i seguenti passaggi:

Da un prompt dei comandi, eseguire gnome-disks

Trova quale dispositivo è l'unità di scambio. Il mio era/dev/sda3

ls -l /dev/disk/by-uuid/

Trova l'ID collegato alla tua partizione di swap

sudo vim /etc/crypttab

Sulla riga che inizia con cryptswap1, cambia la porzione UUID =… in / dev / disk / by-id / ID-HERE. Salva e riavvia.

Se ti viene ancora richiesta una password, esegui:

sudo dd if=/dev/zero of=/dev/sdaX bs=512 count=20480

Riavvia di nuovo.


+1 ha funzionato per me in 16.04 LTS. Ho dovuto eseguire il ddcomando e riavviare di nuovo. Grazie!
Giorno

1

Esegui sudo fdisk -lper trovare la partizione di swap (es. / Dev / sda6)

Prendi l'UUID in / etc / crypttab o sudo blkidper / dev / sda6 (sostituisci il dispositivo con il tuo swap)

Correre sudo swapoff /dev/sda6

Esegui sudo mkswap -U UUID /dev/sda6(sostituisci UUID e dispositivo con il tuo swap)

Aggiungi ,offset=1024alla fine della riga di cryptswap in / etc / crypttab

Aggiungi "/ dev / mapper / cryptswap1 none swap sw 0 0" a / etc / fstab

Correre sudo update-initramfs -u

Correre sudo swapon -a

Verificare che lo swap sia attivo con sudo systemctl status /dev/mapper/cryptswap


1

Questo problema esiste ancora anche su Ubuntu 15.10. Ho creato temporaneamente una soluzione: disattivato la crittografia per la partizione di swap (home è ancora crittografata). Questa guida ha funzionato per me in questo caso. Questa richiesta di passphrase non mi fa più la guerra sul sistema di avvio e sull'aggiornamento del software.

Forse, in seguito, riaccenderò la crittografia della partizione di swap (usando la stessa guida ), quando saprò che questo bug è stato corretto.


3
Questo problema esiste ancora anche su Ubuntu 16.04 LTS !!! Ha fatto lo stesso, disattivato la crittografia per la partizione di swap.
dxvargas,

0

La soluzione migliore è disattivare (decommentare) la classica linea di swap in fstab (non nel mapper). se riavvii e digiti sudo swapon --summary dovresti ottenere una partizione di swap su / dev / dm-X (di solito 0). Se sì, sii felice che cryptswap funzioni bene.


0

In alternativa alla risoluzione del bug, il processo di inizializzazione può essere avviato a start-up, poiché si tratta di un bug relativo a systemd. Qui si afferma che upstart può essere usato come soluzione alternativa.

Per fare ciò, il modo più semplice è installare il pacchetto corrispondente:

sudo apt-get install upstart-sysv

Dopo l'installazione, sei ancora in grado di avviare il sistema con systemd nel sottomenu grub "Opzioni avanzate per Ubuntu", con un'opzione chiamata "Ubuntu, con Linux ... (systemd)".

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.