Sicherheit
« Vorherige Beiträge Nächste Beiträge »Linux: root Passwort vergessen (Administrator Passwort)
Dienstag, 23.11.2010Wenn Sie Ihr root Passwort für Ihr Linux System (in diesem Beispiel für “Debian”) vergessen haben, können Sie trotzdem mithilfe dieses Artikels auf Ihr System zugreifen: Sie setzen sich ein neues Passwort.
Beim Booten des Systems können Sie (kurz) zwischen Optionen auswählen. Starten Sie den Computer im “Single user mode” (ggf. “init=/bin/bash” beim der Zeile “Kernel” anfügen). Dadurch haben Sie nach dem Booten Schreibzugriff auf die Datei “/etc/shadow”.
Geben Sie dann den Befehl “passwd” ein oder bearbeiten Sie die Passwortdatei direkt mit “nano /etc/shadow”. Dabei können Sie für den Benutzer “root” den Passwortcode leeren und beim nächsten Booten sich als Benutzer “root” ohne Passwort anmelden. Dabei sollten Sie dringend darauf achten, dass Ihr Computer während dieses Vorganges vom Netzwerk getrennt ist und Sie nach dem normalen Booten sofort ein neues, sicheres Passwort für den Benutzer “root” vergeben.
Linux: Backup zwischen Servern mit rsync (via SSH)
Dienstag, 05.10.2010Installieren Sie auch beiden Server (Datenquelle und Ziel) das Programm “rsync”. Auch auf dem Zielcomputer muss diese Software installiert sein, da dieser natürlich das Protokoll verstehen muss:
apt-get install rsync
Vorbereitung des zu sichernden Servers (Datenquelle)
Erzeugen Sie auf der Datenquelle (dem zu sichernden Computer) einen DSA Schlüssel. Führen Sie dafür den folgenden Befehl als Benutzer “root” aus:
ssh-keygen -t dsa
Bestätigen Sie bei den Rückfragen den Dateinamen für den Schlüssel und das Verschlüsselungspasswort jeweils mit Enter.
Anschließend finden Sie auf dem Computer die beiden folgenden Dateien:
- /root/.ssh/id_dsa
Privater DSA Schlüssel. Dieser darf nicht weitergegeben oder veröffentlicht werden - /root/.ssh/id_dsa.pub
Öffentlicher DSA Schlüssel. Dieser wird später auf den Backup-Server kopiert
Vorbereitung des Sicherungsservers (Datenziel)
Erstellen Sie einen neuen Benutzer “remotebackup”
useradd -m remotebackup
… und vergeben Sie ein geheimes Passwort für diesen Benutzer:
passwd remotebackup
Sie dürfen aus Sicherheitsgründen dem Benutzer “remotebackup” keine Root-Rechte geben. Jedoch wird für das Ausführen des rsync Programmes dieses Recht benötigt – u.a. um alle Verzeichnisse lesen zu können. Zum Lösen dieser Situation nutzen wir das Programm “visudo”:
visudo
Fügen Sie die folgende Zeile in der angezeigten Datei hinzu …
remotebackup ALL=(root)NOPASSWD:/usr/bin/rsync
… und beenden Sie die Eingabe durch Drücken der “ESC” Taste. Geben Sie dann “wq” ein und drücken Sie die “Enter” Taste. Die Änderung wird gespeichert.
Im nächsten Schritt erlauben wir dem zu sichernden Server die automatisch Anmeldung am Zielserver. Dafür nutzen wir die automatische, schlüsselbasierte Authentifizierung per SSH. Dabei muss der zu sichernde Server automatisch die Gültigkeit des übergebenen DSA Schlüssels überprüfen können.
Erstellen Sie auf dem Ziel-Server das Verzeichnis “/home/remotebackup/.ssh” – sofern es noch nicht existieren sollte:
1 2 3 | su remotebackup mkdir ~/.ssh chmod 700 ~/.ssh |
Fügen Sie den öffentlichen DSA-Schlüssel (s.o.) an das Ende der Datei “/home/remotebackup/.ssh/authorized_keys” ein:
1 2 | cd ~/.ssh ssh -l root [IP Quell-Server] cat /root/.ssh/id_dsa.pub >> authorized_keys |
chmod 600 authorized_keys
Sollte dieser Weg nicht funktionieren, können Sie natürlich auch die Datei per "scp" kopieren und den Inhalt dann manuell anfügen.
Im letzten Schritt für eine automatische SSH Authentifizierung müssen Sie die entsprechende Option in der Datei "/etc/sshd/sshd_config" aktivieren:
PubkeyAuthentication yes
Testen Sie die automatische Authentifizierung:
1 | ssh -l remotebackup [IP Quell-Server] |
Datensicherung (Skripte)
Die beiden Server sind vorbereitet. Auf dem Quell-Server legen Sie nun bitte die Datei "/root/rsync-excludes.conf" an. Diese enthält alle Verzeichnisse, welche nicht gesichert werden sollen. Dabei werden auch deren Unterverzeichnisse nicht gesichert.
1 2 3 4 5 6 | /cdrom /dev /lost+found /proc /sys /tmp |
Erstellen Sie das Backupscript "/usr/local/bin/backup.sh":
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #!/bin/sh echo "Starte Server-Backup .." BACKUPDIR=/ TARGETUSER=remotebackup TARGETDIR=/home/remotebackup/backup_`date +'%Y-%m-%d'` EXCLUDES=/root/rsync-excludes.conf BACKUPSERVER=[IP Ziel-Server] rsync -avz --numeric-ids -e ssh --delete --delete-excluded --stats --exclude-from="$EXCLUDES" $BACKUPDIR $TARGETUSER@$BACKUPSERVER:$TARGETDIR echo "Backup beendet." |
Vergessen Sie bitte nicht, im vorherigen Script die IP (oder den Hostnamen) des Ziel-Servers einzusetzen. Danach machen Sie das Skript bitte ausführbar:
chmod a+x /usr/local/bin/backup.sh
Script testen
Testen Sie die Datensicherung des Servers durch das manuelle Starten des Scriptes:
backup.sh
Automatische Datensicherung (Batch / CronJob)
Um die Datensicherung (Serverkopie) automatisch jeden Morgen um 4 Uhr zu starten, fügen Sie in der Datei "/etc/crontab" die folgende Zeile ein:
0 4 * * * root /usr/local/bin/backup.sh
Windows: DNS Cache löschen (leeren)
Samstag, 18.09.2010Um bei Windows den DNS Cache zu löschen, folgen Sie folgenden wenigen Schritten:
- Klicken Sie auf “Start” unten links auf Ihrem Bildschirm, dann auf “Ausführen”
… oder drücken Sie alternativ die Windowstaste + R - Geben Sie “ipconfig /flushdns” ein und klicken Sie auf “OK”
Der DNS Cache kann Zuweisungen zwischen Domainnamen (z.Bsp. “www.YourHelpCenter.de”) und der entsprechenden IP Adressen (hier “”) speichern. Wenn Sie nun eine Seite mehrfach aufrufen oder Ihr Computer mehrfach die Verbindung aufbauen möchte, dann muss nicht jedes Mal extra ein DNS Server bemüht werden – Windows holt sich die Daten direkt aus seinem DNS Cache.
Problematisch kann es werden, wenn sich eine IP ändert. Dann nutzt Windows aufgrund seines alten Wissens im DNS Cache auch noch die alte IP Adresse. Wenn Sie diesen DNS Cache gelöscht haben, holt sich Windows bei der nächsten Anfrage die aktuelle IP des Domain und die Verbindung kann wieder zustande kommen.
Datenschutz: Einspruch gegen Google StreetView einlegen
Samstag, 14.08.2010Ein Widerspruch gegen die Veröffentlichung von Aufnahmen der eigenen Person, eigenen Kraftfahrzeugen und selbst bewohnten oder genutzten Gebäuden und von Grundstückseigentum kann und sollte bei Google eingelegt werden.
Der Datenschutzbeauftragte aus Hamburg stellt Ihnen sehr gute Informationen bereit. Das PDF Dokument finden Sie unter: http://www.hamburg.de/contentblob/2453512/data/vorab-widerspruch-google-street-view.pdf
Es werden die unterschiedlichen Möglichkeiten und Wege erklärt. Die unterschiedlichen Fristen und das richtige Verhalten.
Ca. ab dem 17.08.2010 will Google online ein Tool für den Einspruch anbieten. Es ist zu finden unter www.google.de/streetview. Bereits heute können Sie dort Informationen über Google Street-View finden – natürlich nur die positiven Aspekte und Vorteile des Dienstes. Mit Trickfilmchen à la Sesamstraße führt man die “Sicherheit” von Google Streetview vor … trotzdem möchten wir Ihnen aus Datenschutzgründen dringend zum Einlegen Ihres Widerspruches anraten.
Sie können auch schriftlich Widerspruch einlegen. Schreiben Sie dafür an:
Google Germany GmbH
Betr.: Street View
ABC-Straße 19
20354 Hamburg
WordPress: Revisionen eines Artikels löschen (Historie löschen)
Freitag, 06.08.2010Das CMS “WordPress” stellt Ihnen Ihre alten Versionen der Artikel zur Verfügung. Unter jedem Artikel können Sie im Abschnitt “Revisions” jede (gespeicherte) Änderung des Artikels nachvollziehen und auf Wunsch mit einer anderen Version des Artikels vergleichen lassen.
Diese manchmal recht praktische Funktion kann jedoch auch unerwünscht sein und ggf. Datenbank-Ressourcen belegen. Zugegeben, es sind keine sehr großen Datenmengen – jedoch kann mit der Zeit und entsprechend vielen Artikeln auch hier eine stattliche Anzahl an Datenbankeinträgen zusammen kommen.
Um hier aufzuräumen und diese alten Datensätze endgültig zu löschen, nutzen Sie folgendes SQL Script:
DELETE FROM wp_posts WHERE post_type = 'revision'
Führen Sie den vorherigen SQL Befehl auf Ihrer entsprechenden WordPress Datenbank aus. Dafür können Sie z.Bsp. die kostenlose und Open Source Datenbankverwaltung “phpMyAdmin” nutzen. Achten Sie dabei darauf, dass Sie ggf. den Prefix der Tabelle (hier: “wp_”) anpassen müssen. Das ist jedoch nur dann erforderlich, wenn Sie bei der Installation einen eigenen Prefix gewählt haben. Sollten Sie sich nicht sicher sein, können Sie den SQL Befehl trotzdem ausführen – ist die Tabelle nicht vorhanden, erhalten Sie eine entsprechende Fehlermeldung und keine Daten wurden gelöscht.
Wenn Sie sich zuvor die zu löschenden Daten ansehen möchten, dann hilft Ihnen dieser SQL Befehl weiter:
SELECT * FROM wp_posts WHERE post_type = 'revision'
Linux: Dateien per SCP ohne Passworteingabe kopieren (SSH)
Samstag, 24.07.2010Wenn Sie automatisch per SCP Dateien kopieren möchten und dabei nicht das Passwort eingeben können oder möchten, dann hilft Ihnen diese Anleitung. Für dieses Beispiel sollen Dateien von Server 1 auf Server 2 kopiert werden:

Für dieses Beispiel gelten folgende Bedingungen:
- Das Script liegt auf Server 2 – die Daten werden von Server 1 “abgeholt”
- Der Benutzer für den Datentransfer heißt “backup”
Vorbereitungen auf Server 1 (Quelle):
- Unter dem Benutzernamen “backup” anmelden oder zum Benutzer wechseln:
su backup - Schlüssel für den automatischen Zugriff von Server 2 erstellen.
Dieser gilt nur für den aktuell angemeldeten Benutzernamen.
ssh-keygen -t dsa
Jede Frage mit “Enter” beantworten und kein Passwort eingeben:
Generating public/private dsa key pair.
Enter file in which to save the key (/home/backup/.ssh/id_dsa):
Created directory '/home/backup/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/backup/.ssh/id_dsa.
Your public key has been saved in /home/backup/.ssh/id_dsa.pub.
The key fingerprint is:
d2:5a:6c:9f:15:5c:2c:d1:d1:d5:3b:7f:3c:88:bf:d3 backup@servername.com
The key's randomart image is:
+--[ DSA 1024]----+
[Ihr virtueller Fingerabdruck]
+-----------------+
Die Datei liegt im .ssh Unterverzeichnis des Benutzers
Vorbereitungen auf Server 2 (Ziel):
- Ggf. müssen wir zuerst das .ssh Verzeichnis auf Server2 für den Benutzer “backup” anlegen:
mkdir /home/backup/.ssh
chmod 700 /home/backup/.ssh
chown backup:backup /home/backup/.ssh - Wir benötigen den öffentlichen Schlüssel des Benutzers “backup” vom “Server 1″ auf diesem Server. Durch diesen Schlüssel kann sich später Server 2 automatisch bei Server 1 anmelden (identifizieren).
scp backup@server1:~/.ssh/id_dsa.pub /home/backup/.ssh/public-key.tmp
PHP: Apache2 Version in Variable auslesen
Mittwoch, 21.07.2010Damit Sie auf einem Unix (Linux) System einfach die aktuelle Version des Apache WebServers herausfinden können, zeigen wir Ihnen ein PHP-Beispiel.
In dem PHP Script wird die Apache-Funktion “apache2ctl” genutzt, die die aktuelle Apache-Version auszulesen. Dieser Befehl wird mithilfe des PHP Befehles “passthru()” direkt an das Linuxsystem weitergegeben.
Hinweis:
Häufig ist auf “öffentlichen” Webservern aus Sicherheitsgründen die Nutzung einiger Befehle gesperrt. Dazu zählt häufig auch der Befehl “passthru()”. Wenn das Script bei Ihnen lokal auf dem Computer also einwadnfrei läuft und auf Ihrem Internetserver keine Daten zurück gibt, liegt diese Befehlssperre vor. Eine Möglichkeit, diese Sperre aufzuheben hat nur Ihr Web-Administrator (oder Provider).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <?php // PHP Version auslesen ob_start(); passthru("apache2ctl -v"); $ver = ob_get_contents(); if empty($ver) echo "passthru() disabled ?"; ob_end_clean(); $a = explode("\n", $ver); preg_match('/(server version: ){1}(.*)/i', $a[0], $v); $data[0] = $v[2]; preg_match('/(server built: ){1}(.*)/i', $a[1], $v); $data[1] = date("d.m.Y H:i:s", strtotime($v[2])); print_r($data); ?> |
Apache: Verzeichnisse mit Passwort schützen (htpasswd)
Dienstag, 20.07.2010Mit dem Apache Webserver wird ein Hilfsprogramm ausgeliefert: htpasswd
Es ermöglicht Ihnen die einfache Erstellung von Passwortdateien. Am einfachsten ist es über die Kommandozeile zu bedienen. Mit dem Aufruf “htpasswd -h” erhalten Sie eine kurze Hilfe und Syntax.
Beispiel:
htpasswd -c .htusers peter
Durch diesen Befehl wird eine neue Passwortdatei angelegt. Dabei müssen Sie für den neuen Benutzer “peter” ein Passwort angeben und (durch eine wiederholte Eingabe) bestätigen.
Kopieren Sie die neu erstellte Datei in das vorgesehene, zu schützende Verzeichnis auf Ihrem Internetserver (WebServer).
PHP: Zugriff von Browsern außerhalb eines IP-Subnetzes unterbinden
Montag, 19.07.2010Mithilfe des folgenden PHP Scripts können Sie Besucher außerhalb des festgelegten IP Bereiches blockieren:
1 2 3 4 5 6 7 8 9 10 11 12 | <?php if (strncmp("192.168.0", $_SERVER["REMOTE_ADDR"], 9) != 0) { // Block access header("HTTP/1.0 403 Forbidden"); // header('Location: http://www.google.com'); exit; } else { // Allow access echo "Zugriff erlaubt ..."; } ?> |
In diesem Beispiel werden alle Besucher, deren IP Adresse nicht mit “192.168.0″ anfängt, blockiert.
Dieser IP Bereich wird nur LAN intern verwendet. Für die Filterung von Besuchern aus dem WAN (Internet) filtern Sie bitte auf die öffentliche IP Adresse Ihrer Webseitenbesucher. Passen Sie dabei auch die Länge der zu vergleichenden Zeichen an (im o.a. Beispiel werden die ersten 9 Zeichen verglichen). Diese können Sie sich mithilfe des folgenden PHP Scripts anzeigen:
1 2 3 | <?php echo $_SERVER["REMOTE_ADDR"]; ?> |
WordPress: “Du hast nicht ausreichend Rechte, um auf diese Seite zuzugreifen”
Dienstag, 13.07.2010Nach dem Kopieren oder Update Ihrer WordPress (WP) Installation erhalten Sie eine der beiden folgenden Meldungen nach der Anmeldung im Backend (wp-admin):
Du hast nicht ausreichend Rechte, um auf diese Seite zuzugreifen. Sie haben nicht ausreichend Rechte, um auf diese Seite zuzugreifen.
Diese Fehlermeldung zeigt an, dass das WP Backend (Adminbereich) Ihre Anmeldung nicht richtig zuordnen kann. Die Gründe für diese Sperre können vielfältig sein. In der folgenden Übersicht möchten wir Ihnen die Lösung für die häufigsten Sperren zeigen:
- Sie haben ein Upgrade / Update von WordPress gemacht
Versuchen Sie, Ihre Datenbank durch das “force-upgrade.php” Script zu aktualisieren. Dafür wird die Datei einfach in das Hauptverzeichnis Ihres Webservers kopiert und dann per Browser aufgerufen. Anschließend sollte die Datei dringend wieder gelöscht werden – nur dann kann niemand anderes ebenfalls diese Aktion ausführen. Dieser Schritt sollte fast alle vorhandenen Datenbankprobleme beseitigen. Zudem ist diese Methode wesentlich effizienter und sicherer als das manuelle Zurücksetzen der Versionsnummer / Versionsinformationen in der Datenbank.
- Sie haben die Datei “wp-config.php” verändert
Überprüfen Sie, ob die Zeile
require_once(ABSPATH . 'wp-settings.php');
ganz unten steht. Wichtig ist auch, dass die Information
define('SECRET_KEY', 'xyz...abc');
(logischerweise) oberhalb der Zeile stehen.
- Sie haben den Tabellen-Prefix geändert
Es ist nicht ausreichend, die Datei “wp-config.php” anzupassen und in der Datenbank den Tabellenprefix zu ändern. In der WordPress-Datenbank sind Datensätze gespeichert, welche den alten (originalen) Tabellenpräfix darstellen. Diese Einträge müssen also ebenfalls abgepasst werden. Bei normalen Installationen von WordPress sind die folgenden Befehle für die Tabellen “wp_options” und “wp_usermeta” ausreichend:
1 2 | UPDATE neuesPrefix_options SET option_name = REPLACE(option_name, 'altesPrefix_', 'neuesPrefix_'); UPDATE neuesPrefix_usermeta SET meta_key = REPLACE(meta_key, 'altesPrefix_', 'neuesPrefix_'); |
Bei Standardinstallationen sollten keine weiteren Einträge zum Prefix vorhanden sein. Sollten Sie jedoch weitere Datensätze finden, ändern Sie diese entsprechend ab und schreiben Sie uns gerne einen Kommentar zu diesem Artikel. Wir werden Ihre Hilfe dann für die nächsten Besucher einarbeiten.
- Die Option “User Roles” wurde verändert (“prefix_user_roles”)
Sollte die Einstellung / Option “prefix_user_roles” verändert ist. Die Details dieser Option werden in einem sog. “serialisiertes Array” abgelegt. Dabei kann es scheinbar passieren, dass sich die einzelnen Informationen (Daten) so verändern, dass PHP das richtige Array mit den Einzeldaten nicht mehr richtig entschlüsseln kann. Dadurch hat Ihr WordPress dann natürlich keine Möglichkeit mehr, auf diese Einstellungen zuzugreifen. Die Folge ist, dass (sicherheitshalber) alle Benutzer ausgesperrt sind.
Sie können durch einen einfache PHP-Datei schnell prüfen, ob dieses Problem bei Ihnen zutrifft:
- Erstellen Sie in Ihrem Hauptverzeichniss (root) Ihres WebServers eine PHP Datei mit folgendem Inhalt (z.Bsp. “chk.php”):
1 2 3 4 5 6 7
<?php include("wp-config.php"); global $wpdb; $wp_user_roles = get_option($wpdb->prefix."user_roles") or die ("Die Option '".$wpdb->prefix."user_roles' ist defekt."); echo("Die Option '".$wpdb->prefix."user_roles' ist scheinbar in Ordnung."); ?>
- Rufen Sie die Datei in Ihrem Browser auf:
http://ihre.domain/chk.php
Das kurze PHP-Script prüft, ob die Option “user_roles” bei Ihrer WordPress richtig gelesen werden kann. Sollte dabei irgendein Problem auftreten (Sie erhalten die Anzeige “Die Option ‘xyz_user_roles’ ist defekt.”), sollten Sie sicherheitshalber die gesamte Option neu setzen. Zwar gehen Ihnen dadurch alte Einstellungen verloren und müssen dann neu gesetzt werden, aber solange Sie Ihre Benutzerberechtigungen nicht verändert haben, sollte es keine Probleme geben.
Sie können die einzelnen Werte entweder direkt durch phpMyAdmin setzen oder Sie nutzen das folgende Script:
1 2 3 4 5 6 | <?php $val = 'a:5:{s:13:"administrator";a:2:{s:4:"name";s:13:"Administrator";s:12:"capabilities";a:54:{s:13:"switch_themes";b:1;s:11:"edit_themes";b:1;s:16:"activate_plugins";b:1;s:12:"edit_plugins";b:1;s:10:"edit_users";b:1;s:10:"edit_files";b:1;s:14:"manage_options";b:1;s:17:"moderate_comments";b:1;s:17:"manage_categories";b:1;s:12:"manage_links";b:1;s:12:"upload_files";b:1;s:6:"import";b:1;s:15:"unfiltered_html";b:1;s:10:"edit_posts";b:1;s:17:"edit_others_posts";b:1;s:20:"edit_published_posts";b:1;s:13:"publish_posts";b:1;s:10:"edit_pages";b:1;s:4:"read";b:1;s:8:"level_10";b:1;s:7:"level_9";b:1;s:7:"level_8";b:1;s:7:"level_7";b:1;s:7:"level_6";b:1;s:7:"level_5";b:1;s:7:"level_4";b:1;s:7:"level_3";b:1;s:7:"level_2";b:1;s:7:"level_1";b:1;s:7:"level_0";b:1;s:17:"edit_others_pages";b:1;s:20:"edit_published_pages";b:1;s:13:"publish_pages";b:1;s:12:"delete_pages";b:1;s:19:"delete_others_pages";b:1;s:22:"delete_published_pages";b:1;s:12:"delete_posts";b:1;s:19:"delete_others_posts";b:1;s:22:"delete_published_posts";b:1;s:20:"delete_private_posts";b:1;s:18:"edit_private_posts";b:1;s:18:"read_private_posts";b:1;s:20:"delete_private_pages";b:1;s:18:"edit_private_pages";b:1;s:18:"read_private_pages";b:1;s:12:"delete_users";b:1;s:12:"create_users";b:1;s:17:"unfiltered_upload";b:1;s:14:"edit_dashboard";b:1;s:14:"update_plugins";b:1;s:14:"delete_plugins";b:1;s:15:"install_plugins";b:1;s:13:"update_themes";b:1;s:14:"install_themes";b:1;}}s:6:"editor";a:2:{s:4:"name";s:6:"Editor";s:12:"capabilities";a:34:{s:17:"moderate_comments";b:1;s:17:"manage_categories";b:1;s:12:"manage_links";b:1;s:12:"upload_files";b:1;s:15:"unfiltered_html";b:1;s:10:"edit_posts";b:1;s:17:"edit_others_posts";b:1;s:20:"edit_published_posts";b:1;s:13:"publish_posts";b:1;s:10:"edit_pages";b:1;s:4:"read";b:1;s:7:"level_7";b:1;s:7:"level_6";b:1;s:7:"level_5";b:1;s:7:"level_4";b:1;s:7:"level_3";b:1;s:7:"level_2";b:1;s:7:"level_1";b:1;s:7:"level_0";b:1;s:17:"edit_others_pages";b:1;s:20:"edit_published_pages";b:1;s:13:"publish_pages";b:1;s:12:"delete_pages";b:1;s:19:"delete_others_pages";b:1;s:22:"delete_published_pages";b:1;s:12:"delete_posts";b:1;s:19:"delete_others_posts";b:1;s:22:"delete_published_posts";b:1;s:20:"delete_private_posts";b:1;s:18:"edit_private_posts";b:1;s:18:"read_private_posts";b:1;s:20:"delete_private_pages";b:1;s:18:"edit_private_pages";b:1;s:18:"read_private_pages";b:1;}}s:6:"author";a:2:{s:4:"name";s:6:"Author";s:12:"capabilities";a:10:{s:12:"upload_files";b:1;s:10:"edit_posts";b:1;s:20:"edit_published_posts";b:1;s:13:"publish_posts";b:1;s:4:"read";b:1;s:7:"level_2";b:1;s:7:"level_1";b:1;s:7:"level_0";b:1;s:12:"delete_posts";b:1;s:22:"delete_published_posts";b:1;}}s:11:"contributor";a:2:{s:4:"name";s:11:"Contributor";s:12:"capabilities";a:5:{s:10:"edit_posts";b:1;s:4:"read";b:1;s:7:"level_1";b:1;s:7:"level_0";b:1;s:12:"delete_posts";b:1;}}s:10:"subscriber";a:2:{s:4:"name";s:10:"Subscriber";s:12:"capabilities";a:2:{s:4:"read";b:1;s:7:"level_0";b:1;}}}'; include("wp-config.php"); global $wpdb; set_option($wpdb->prefix."user_roles", $val); ?> |
Den Wert noch einmal als reinen String (Zeichenkette) für die direkte phpMyAdmin Eingabe. Der folgende Text ist eine Zeile:
a:5:{s:13:"administrator";a:2:{s:4:"name";s:13:"Administrator";s:12:"capabilities";a:54:{s:13:"switch_themes";b:1;s:11:"edit_themes";b:1;s:16:"activate_plugins";b:1;s:12:"edit_plugins";b:1;s:10:"edit_users";b:1;s:10:"edit_files";b:1;s:14:"manage_options";b:1;s:17:"moderate_comments";b:1;s:17:"manage_categories";b:1;s:12:"manage_links";b:1;s:12:"upload_files";b:1;s:6:"import";b:1;s:15:"unfiltered_html";b:1;s:10:"edit_posts";b:1;s:17:"edit_others_posts";b:1;s:20:"edit_published_posts";b:1;s:13:"publish_posts";b:1;s:10:"edit_pages";b:1;s:4:"read";b:1;s:8:"level_10";b:1;s:7:"level_9";b:1;s:7:"level_8";b:1;s:7:"level_7";b:1;s:7:"level_6";b:1;s:7:"level_5";b:1;s:7:"level_4";b:1;s:7:"level_3";b:1;s:7:"level_2";b:1;s:7:"level_1";b:1;s:7:"level_0";b:1;s:17:"edit_others_pages";b:1;s:20:"edit_published_pages";b:1;s:13:"publish_pages";b:1;s:12:"delete_pages";b:1;s:19:"delete_others_pages";b:1;s:22:"delete_published_pages";b:1;s:12:"delete_posts";b:1;s:19:"delete_others_posts";b:1;s:22:"delete_published_posts";b:1;s:20:"delete_private_posts";b:1;s:18:"edit_private_posts";b:1;s:18:"read_private_posts";b:1;s:20:"delete_private_pages";b:1;s:18:"edit_private_pages";b:1;s:18:"read_private_pages";b:1;s:12:"delete_users";b:1;s:12:"create_users";b:1;s:17:"unfiltered_upload";b:1;s:14:"edit_dashboard";b:1;s:14:"update_plugins";b:1;s:14:"delete_plugins";b:1;s:15:"install_plugins";b:1;s:13:"update_themes";b:1;s:14:"install_themes";b:1;}}s:6:"editor";a:2:{s:4:"name";s:6:"Editor";s:12:"capabilities";a:34:{s:17:"moderate_comments";b:1;s:17:"manage_categories";b:1;s:12:"manage_links";b:1;s:12:"upload_files";b:1;s:15:"unfiltered_html";b:1;s:10:"edit_posts";b:1;s:17:"edit_others_posts";b:1;s:20:"edit_published_posts";b:1;s:13:"publish_posts";b:1;s:10:"edit_pages";b:1;s:4:"read";b:1;s:7:"level_7";b:1;s:7:"level_6";b:1;s:7:"level_5";b:1;s:7:"level_4";b:1;s:7:"level_3";b:1;s:7:"level_2";b:1;s:7:"level_1";b:1;s:7:"level_0";b:1;s:17:"edit_others_pages";b:1;s:20:"edit_published_pages";b:1;s:13:"publish_pages";b:1;s:12:"delete_pages";b:1;s:19:"delete_others_pages";b:1;s:22:"delete_published_pages";b:1;s:12:"delete_posts";b:1;s:19:"delete_others_posts";b:1;s:22:"delete_published_posts";b:1;s:20:"delete_private_posts";b:1;s:18:"edit_private_posts";b:1;s:18:"read_private_posts";b:1;s:20:"delete_private_pages";b:1;s:18:"edit_private_pages";b:1;s:18:"read_private_pages";b:1;}}s:6:"author";a:2:{s:4:"name";s:6:"Author";s:12:"capabilities";a:10:{s:12:"upload_files";b:1;s:10:"edit_posts";b:1;s:20:"edit_published_posts";b:1;s:13:"publish_posts";b:1;s:4:"read";b:1;s:7:"level_2";b:1;s:7:"level_1";b:1;s:7:"level_0";b:1;s:12:"delete_posts";b:1;s:22:"delete_published_posts";b:1;}}s:11:"contributor";a:2:{s:4:"name";s:11:"Contributor";s:12:"capabilities";a:5:{s:10:"edit_posts";b:1;s:4:"read";b:1;s:7:"level_1";b:1;s:7:"level_0";b:1;s:12:"delete_posts";b:1;}}s:10:"subscriber";a:2:{s:4:"name";s:10:"Subscriber";s:12:"capabilities";a:2:{s:4:"read";b:1;s:7:"level_0";b:1;}}}