ผู้ดูแลระบบ Windows ที่ต้องการเริ่มต้นเล็กด้วยเซิร์ฟเวอร์ไฟล์ Linux (ubuntu)


12

ฉันทำงานอย่างเคร่งครัดกับเครื่อง Windows เท่านั้น (บันทึกสำหรับ aix unix ขนาดเล็กหนึ่งกล่องที่เพิ่งถูกแทนที่) ในอดีตที่ผ่านมาในความพยายามที่จะให้การศึกษาด้วยตนเองใน Linux ฉันได้ติดตั้ง Ubuntu เดสก์ท็อป / เซิร์ฟเวอร์หลายรุ่นและ Fedora เท่านั้นที่รู้ว่าฉันไม่มีเวลาสอนตัวเอง

ถึงเวลาแล้วที่ฉันจะแทนที่ไฟล์โฮม / เซิร์ฟเวอร์ ftp / http ที่ใช้ Windows ก่อนหน้านี้ ฉันมีไฟล์ทั้งหมดในไดรฟ์ NTFS แยกต่างหากและจะติดตั้งระบบปฏิบัติการในไดรฟ์ขนาดเล็ก

ฉันได้ดาวน์โหลด Unubtu Server เวอร์ชั่นล่าสุดแล้ว แต่ยังไม่ได้ติดตั้ง ฉันต้องการใช้เซิร์ฟเวอร์บ้านนี้เป็น Linux-starter-kit และเริ่มต้นได้อย่างถูกต้อง แต่ง่ายมาก เมื่อการติดตั้งเสร็จสมบูรณ์ฉันต้องการเริ่มต้นด้วยการตั้งค่าเซิร์ฟเวอร์ไฟล์ SIMPLE สำหรับใช้ในบ้านเพื่อให้มีความเชี่ยวชาญเพียงพอที่จะเปลี่ยนเซิร์ฟเวอร์ไฟล์ขนาดเล็กในที่ทำงาน ในที่สุดนี้จะนำไปสู่ ​​Microsoft น้อยลงในที่ทำงาน

ฉันกำลังมองหาคำแนะนำในการเริ่มต้นง่ายๆ: โฮม - ไฟล์เซิร์ฟเวอร์ไปยังไฟล์เซิร์ฟเวอร์ในช่วงระยะเวลาหนึ่ง เครื่องนี้จะไม่มีจอภาพ / คีย์บอร์ด / เมาส์และสามารถเข้าถึงได้จากระยะไกลเท่านั้น


น่าจะเป็นวิกิในชุมชน
Matt Simmons

คำตอบ:


3

ดาวน์โหลดรุ่น Ubuntu Server

คู่มือการติดตั้ง:

คู่มือเซิร์ฟเวอร์ Ubuntu - บทที่ 2 การติดตั้ง
คู่มือเซิร์ฟเวอร์ Ubuntu - Wiki

นั่นคือทั้งหมดที่คุณต้องการบทเรียนเหล่านี้ง่ายต่อการติดตาม

ดูที่ส่วน: เซิร์ฟเวอร์ไฟล์ Samba, HTTPD - Apache2 Web Server


6

แก้ไข: ทำไมไม่เริ่มด้วย fileserver

อย่าเริ่มต้นด้วยไฟล์เซิร์ฟเวอร์เว้นแต่คุณจะรู้สึกสะดวกสบายพอที่จะแก้ไขปัญหาในกรณีที่เกิดความล้มเหลวโดยไม่มีการหยุดทำงานจำนวนมากคุณไม่ต้องการให้ผู้ใช้รอการคืนค่าไฟล์เป็นเวลาหลายชั่วโมง / วันเพียงเพราะคุณตั้งค่า samba และ ตอนนี้มีองค์ประกอบที่ล้มเหลวซึ่งคุณไม่ทราบวิธีการแก้ไข


ฉันเริ่มด้วยบางสิ่งบางอย่างดังต่อไปนี้:

  • ใช้ linux เป็นระบบปฏิบัติการเดสก์ท็อปหลักของคุณ
    • สิ่งนี้จะให้ตัวเลือกแก่คุณในการแก้ปัญหาในระบบ "ที่ไม่สำคัญ" โดยเรียนรู้ทีละหนึ่งบิต
    • ไม่ว่าในกรณีใด ๆ ให้ติดตั้งเครื่องเสมือนที่ใช้ Windows เพื่อทำงานให้เสร็จ
    • ฉันจะไม่ทำอย่างอื่นเพราะคุณจะต้องฝึกฝนตนเองมากขึ้นเพื่อใช้ VM และทำงานกับ linux - หาก linux เป็นค่าเริ่มต้นคุณอาจเริ่มทำงานกับมันเร็วกว่า
  • กำหนดข้อกำหนดบางอย่างที่คุณมีใน บริษัท ของคุณและหาว่าระบบใดที่คุณสามารถทำงานแบบขนาน (เช่นระบบที่สองเพื่อทำการสำรองข้อมูล) และหากไม่ใช่เวลาที่สำคัญลองตอบสนองความต้องการของคุณ
    • โดยส่วนตัวฉันคิดว่าระบบสำรองข้อมูลนั้นเป็นการเริ่มต้นที่ดีที่คุณอาจพบเจอกับปัญหาบางอย่างเช่น I / O bound scaling, การจัดการดิสก์และคุณสามารถแก้ไขได้โดยไม่ต้องเจอปัญหามากมายเนื่องจากคุณจะใช้โครงสร้างพื้นฐานการสำรองข้อมูลที่รู้จักกันดีอยู่แล้ว
  • อีกทั้งระบบการตรวจสอบที่สมบูรณ์จะช่วยคุณได้มากมันไม่จำเป็นต้องใช้ ressources มากนัก แต่จะช่วยให้คุณเริ่มต้นกับปัญหาในเครือข่ายที่ต่างกันเช่น "ฉันจะรับข้อมูลการตรวจสอบจากโฮสต์ Windows ในระบบ Linux ของฉันได้อย่างไร" อาจเป็นจริงสำหรับ logserver กลาง

มีตัวอย่างมากมายที่จะเริ่มต้นด้วยซึ่งจะไม่รบกวนการทำงานหรือบริการของคุณ

Linux ไม่ใช่ Windows - ลืมเกี่ยวกับสิ่งต่าง ๆ เช่น "แต่ใน Windows ฉันใช้วิธีนี้" แทนที่จะค้นหาวิธีที่ "ถูกต้อง" ใน Linux พยายามทำมากที่สุดโดยไม่ต้อง "ถอยกลับ" ไปที่ X.org คุณจะต้องการที่จะสามารถจัดการระบบของคุณด้วยการพึ่งพาน้อยที่สุดเท่าที่เป็นไปได้ X คือการพึ่งพาขนาดใหญ่ ตั้งแต่คุณจัดการกล่อง AIX ฉันคิดว่าคุณรู้พื้นฐานแล้ว (การอนุญาต Unix และอื่น ๆ ) เริ่มต้นให้เร็วที่สุดเท่าที่จะเป็นไปได้ด้วยสิ่งต่าง ๆ เช่นcfengine (Windows + Linux) หรือหุ่นเชิด (Linux เท่านั้น) และFAI(หรือเครื่องมือการปรับใช้อื่น ๆ ที่แตกต่างกันขึ้นอยู่กับ distro ที่คุณเลือก) เพื่อให้มีกรอบการจัดการมากกว่าเซิร์ฟเวอร์เดียวในกรณีที่คุณต้องการ - และคุณจะ * ระบบปฏิบัติการที่ใช้ nix นั้นไม่มีกาวมากพอ เพื่อใช้เป็น Windows เพื่อจัดการเซิร์ฟเวอร์หลายเครื่อง สิ่งนี้ทำให้มันซับซ้อนขึ้นเล็กน้อย (ไม่จำเป็นต้องซับซ้อนมากขึ้น - คำนึงถึงความแตกต่าง) แต่ให้ความยืดหยุ่นมากกว่า

SUBJECTIVE มาก : ฉันจะหลีกเลี่ยง Ubuntu สำหรับเซิร์ฟเวอร์เพราะฉันพบว่าคุณภาพของแพ็คเกจต่ำเกินไปสำหรับเซิร์ฟเวอร์และ Fedora ก็ไม่ดีสำหรับเซิร์ฟเวอร์ IMHO เนื่องจากพวกเขามีแพ็คเกจเลือดที่ดีสำหรับเดสก์ท็อปหรือ "ตัวอย่างเทคโนโลยี" แต่ฉันต้องการให้เซิร์ฟเวอร์ของฉันทำงานบนฐานที่มั่นคง


ฉันใช้งาน Ubuntu บนเซิร์ฟเวอร์และไม่มีปัญหากับมัน ในกรณีที่หายากได้แพคเกจ Ubuntu ไม่ทำงานมีการ backporting จากเวอร์ชั่นที่ใหม่กว่าหรือแพ็คเกจการคอมไพล์ข้ามจาก Debian ซึ่งถือว่าเป็นหนึ่งในการแจกจ่ายที่ดีที่สุดสำหรับเซิร์ฟเวอร์
crb

นั่นคือเหตุผลที่ฉันเพิ่ม "VERY SUBJECTIVE" - เพื่อสำรองเหตุผลของฉัน - หลายครั้งที่ฉันพบข้อบกพร่องเช่นนี้: launchpad.net/ubuntu/+source/cyrus-imapd-2.2/+bug/67111 - ซอฟต์แวร์กำลังอยู่ใน " main "(สนับสนุนอย่างเป็นทางการ!) มาพร้อมกับการเปิดตัว LTS พร้อมบั๊กที่เป็น showstopper (ok สามารถเกิดขึ้นได้บางครั้ง) แต่ไม่ได้แก้ไขสำหรับประมาณ 7 เดือน - นั่นเป็นสิ่งที่ไม่ควรพลาดสำหรับฉัน
Martin M.

+1 สำหรับ "Linux ไม่ใช่ Windows" ถ้าฉันมีเงิน $ 10 สำหรับทุกครั้งที่ฉันต้องพูดเรื่องนี้ฉันจะเกษียณตอนนี้ - บนเกาะส่วนตัวของฉันเอง
Avery Payne

6

โอเคก่อนอื่นฉันใช้เซิร์ฟเวอร์ Samba จริงในสภาพแวดล้อมการผลิตมานานกว่าหนึ่งปี ฉันสามารถบอกคุณได้ว่าจะมีอัพและดาวน์สำหรับกระบวนการนี้และมันไม่ได้ตรงไปตรงมาเหมือนกับที่ใช้ใน Windows Server สิ่งที่สองที่ฉันสามารถบอกคุณได้ก็คือตราบใดที่คุณนำสัมภาระของ Windows ติดตัวคุณไปด้วย (ความคาดหวังเกี่ยวกับพฤติกรรม) มันจะไม่ทำงานเช่นเดียวกับที่คุณต้องการ

การตั้งค่าของฉันแตกต่างกันเล็กน้อย - RHEL 5.1 - แต่หลักการเหมือนกัน

ก่อนอื่นคุณจะพบว่าคุณจะต้องเข้าใจจริงๆว่าแซมบ้าจัดการสิทธิ์การใช้ไฟล์ในลักษณะที่สอดคล้องกับการรับรู้ของคุณ "คุณสมบัติไฟล์ -> แท็บความปลอดภัย" เพราะมันไม่เหมือนกัน มันใกล้จริงๆ แต่ไม่มีซิการ์ เนื่องจากคุณกำลังแปลระหว่างระบบไฟล์ที่แตกต่างกันทางความหมายสองระบบคุณจะพบสิ่งแปลกประหลาดเช่น "กลุ่ม Everyone ไม่สามารถลบได้" และ "root เป็นเจ้าของไฟล์ทั้งหมดของฉัน" นั่นคือถ้าคุณใช้รูทเป็นรายการหลักใน "Take Possession" . นี่เป็นเพราะมีการอนุญาตจากทั่วโลก (กลุ่มอื่น ๆ ) และได้รับอนุญาตจากผู้ใช้เสมอ (ซึ่งตรงกับ "เจ้าของ") และใน Unix-land สิ่งเหล่านี้ไม่สามารถหายไปได้และถ้าพวกเขาไม่สามารถหายไปได้คุณ ไม่สามารถลบได้ทันที คุณสามารถ? เพื่อนร่วมทีมแผนกของฉันไม่สามารถมาจับได้ด้วยสิ่งนี้ -พวกเขาไม่สามารถละทิ้งสัมภาระ Windows ที่พวกเขาคุ้นเคย ดังนั้นจึงเป็นเรื่องน่าเศร้ามากมายเกี่ยวกับ "ทำไมฉันไม่สามารถลบสิ่งเหล่านี้" (เพราะเหตุผลที่ฉันเพิ่งให้) และ "แต่ถ้าทุกคนอยู่ในรายการแล้วมีช่องโหว่" (ไม่ใช่ความหมายคือ แตกต่างกัน) และอื่น ๆ และทุกครั้งที่ฉันต้องอธิบายเรื่องนี้ซ้ำแล้วซ้ำอีก สิทธิ์การใช้ไฟล์นั้นยุ่งยากเมื่อคุณกำลังแปล ตรวจสอบให้แน่ใจว่าได้ชำระสกีมาที่เหมาะสมสำหรับการปรับใช้ของคุณ

ประการที่สอง Winbind คือจุดอ่อนที่สุดของคุณ อย่างจริงจัง. RHEL 5.1 มาพร้อมกับ 3.0.25 (3.0.28 ถ้าคุณอัปเดต) และเวอร์ชั่นนอกกรอบจะล่มเนื่องจากข้อผิดพลาด เมื่อ Winbind ไปบริการไฟล์จะไปพร้อมกับมันเพราะไม่มีสิ่งใดที่จะรับรองความถูกต้อง สิ่งที่เรียบง่ายเพียงกดปุ่มรีเฟรชในหน้าต่าง Explorer (กด F5) ค้างไว้จะทำให้การเชื่อมต่อล่มสลายและหากดำเนินการภายใต้ภาระงานที่มากพอการพังทลายของ Winbind จะทำได้เอง การอัปเดตเป็น 3.0.28 แก้ไขปัญหานี้ แต่ไม่ได้ระบุว่ามีบางจุดที่ร้ายแรงในซอฟต์แวร์รุ่นเก่า เวอร์ชั่นสั้น: อัพเดทอยู่เสมอกับเวอร์ชันที่คุณใช้ พยายามหาตัวใหม่ล่าสุดถ้าเป็นไปได้เนื่องจากข้อผิดพลาดหลายอย่างอาจได้รับการแก้ไข ผู้บรรจุเครื่องดื่ม Distro เป็นที่รู้จักกันดีว่าเป็นผู้อยู่เบื้องหลังโค้งบั๊กสำหรับ Samba

ประการที่สามทีม Samba ทำงานหนักในการเพิ่มการสนับสนุนที่จะช่วยให้เครื่องมือการดูแลระบบ Windows ที่มีอยู่สามารถเชื่อมต่อกับบริการได้โดยตรง ตัวอย่างเช่นคุณสามารถตั้งค่าสคริปต์ที่จะเริ่มและหยุดการให้บริการ * ภายในเครื่องโดยใช้อินเทอร์เฟซสำหรับบริการ Windows เพียง แต่ไม่ใช้บริการเดียวกันเพื่อหยุด Samba (เพราะคุณจะตัดการเชื่อมต่อ) มีประโยชน์มากสำหรับการทำบริการอื่น ๆ บนเซิร์ฟเวอร์ นอกจากนี้คุณยังสามารถแนบผ่านการจัดการคอมพิวเตอร์และดูเซสชันที่เปิดอยู่เปิดไฟล์ ฯลฯ อย่างไรก็ตามไม่ได้ใช้โปรโตคอล RPC ทั้งหมดและความพยายามบางอย่างจะส่งผลให้เกิดข้อผิดพลาด (ไม่ร้ายแรง) ดังนั้นให้แน่ใจว่าคุณคำนึงถึงสิ่งนี้ในมุมมองการจัดการระบบและใช้ประโยชน์จากมันเมื่อเป็นไปได้ หากคุณสามารถใช้เครื่องมือการดูแลระบบ Windows ที่มีอยู่เพื่อเชื่อมต่อกับ Samba และคุณมีเจ้าหน้าที่อื่น ๆ ในโลก "Windows" ที่ต้องการความช่วยเหลือในการเปลี่ยนแปลงคุณสามารถทำให้การระเบิดดังกล่าวอ่อนลงได้โดยใช้เครื่องมือเหล่านั้นอีกครั้งจนกว่าพวกเขาจะคุ้นเคย บรรทัดคำสั่ง.

ก่อนหน้านี้ฉันจะดูรุ่นของแซมบ้าที่คุณกำลังปรับใช้ Ubuntu ดีสำหรับเดสก์ท็อปพอดูได้สำหรับเซิร์ฟเวอร์ มันเป็นคำในแอฟริกาโบราณที่แปลว่า "ฉันไม่สามารถติดตั้งเดเบียน" คุณจริงๆการปรับใช้ของคนอื่นเรียบเรียงจาก Debian และตรงไปตรงมาถ้าคุณต้องการที่มั่นคงทำไมไม่ไปกับเดิม ?

Debian - เราปล่อยเมื่อถึงเวลาเท่านั้น

Debian อาจมีซอฟต์แวร์ที่ดูเหมือนว่า "ค้าง" แต่ในความเป็นจริงแล้วทีมรักษาความปลอดภัยจะแจ้งให้ทราบเกี่ยวกับการแก้ไขความปลอดภัย backporting และนโยบายของ "เราไม่ได้เผยแพร่รุ่นใหม่เนื่องจากพฤติกรรมสามารถเปลี่ยนแปลงนำไปสู่การแตก" บางครั้ง หากคุณกำลังตั้งค่าระยะยาวด้วยความเสถียร หากคุณเรียนรู้ไปในทิศทางอื่นและต้องการให้ลูกเล่นใหม่ ๆ ปรากฏขึ้นอย่างต่อเนื่องผู้จำหน่ายในเชิงพาณิชย์อย่าง Red Hat หรือ SuSE อาจจะถูกใจคุณมากกว่า การอัปเดตซอฟต์แวร์แต่ละครั้งจะปรับปรุงแพคเกจให้สูงขึ้นแก้ไขข้อผิดพลาดและบางครั้งก็ให้ผลลัพธ์ที่ไม่ได้ตั้งใจด้วยคุณสมบัติใหม่ คุณเลือก distro ของคุณคุณเลือกพิษของคุณ

หวังว่านี่จะให้มุมมองเพิ่มเติมเกี่ยวกับสิ่งที่อยู่ข้างหน้าของคุณ ผมสามารถบอกคุณได้ว่าเมื่อตั้งค่าอย่างถูกต้องก็จะไม่เพียง แต่ทำงานได้อย่างราบรื่น แต่มากได้อย่างรวดเร็ว ลองใช้ฐานข้อมูลแบบไฟล์ (Access, FoxPro และอื่น ๆ ) ใน Samba แชร์บางครั้งและสังเกตว่ามันแค่กรีดร้องโดยเฉพาะอย่างยิ่งถ้าคุณสามารถใช้ NIC สองตัวได้ นิคส์คู่สามารถปรับได้ง่าย ๆ โดยไม่ต้อง "เชื่อม" หรือความงี่เง่าอื่น ๆ ลูกค้าดูเหมือนจะไม่สนใจและสิ่งเดียวที่คุณต้องกังวลคือทำให้แน่ใจว่าสวิตช์ของคุณรองรับมัน (ซึ่งสวิตช์คุณภาพดีจาก 5 ปีที่ผ่านมาจะ อย่างไรก็ตาม). เพียงใส่ที่อยู่ที่แตกต่างกันในแต่ละ NIC แต่เมื่อคุณระบุที่อยู่ที่จะใช้ใน Samba ให้เลือกที่อยู่เดียวเท่านั้น Linux (และสวิตช์) จะทำส่วนที่เหลือ


+1 ความเข้าใจและข้อมูลที่ยอดเยี่ยม ขอขอบคุณที่สละเวลาตอบคำถามที่มีค่า
cop1152

3

ผมคิดว่าคุณจะต้องการที่จะให้บริการไฟล์ไปยังเครื่อง Windows ดังนั้นซอฟต์แวร์ที่คุณกำลังมองหาที่เรียกว่าแซมบ้า

อาจเป็นสิ่งที่ใหญ่ที่สุดที่แตกต่าง "เซิร์ฟเวอร์ไฟล์ที่บ้าน" จาก "เซิร์ฟเวอร์ไฟล์งาน" คือว่าคุณมี ID ที่ใช้ร่วมกันระหว่างเครื่องหรือไม่

บนเซิร์ฟเวอร์ไฟล์ในบ้านคุณสามารถเชื่อมต่อกับชื่อผู้ใช้และรหัสผ่านและคุณสามารถเข้าถึงไฟล์ได้

บนเซิร์ฟเวอร์ไฟล์งานคุณมีไดเรกทอรีของรหัสที่ใช้ร่วมกัน (เช่น LDAP / Active Directory) และแต่ละไฟล์นั้นเป็นเจ้าของโดยเจ้าของบุคคลที่เชื่อมต่อซึ่งหมายความว่าคุณสามารถพูดว่า "กลุ่มการเงินเท่านั้นที่สามารถเข้าถึงไดเรกทอรีนี้" .

แซมบ้าสนับสนุนการทำงานร่วมกับโฆษณาและคู่มือเดียวกันมีส่วนในการตั้งค่าไฟล์เซิร์ฟเวอร์ AD-แบบบูรณาการ

อีกทางเลือกหนึ่งถ้าคุณต้องการโซลูชันเทิร์นคีย์สำหรับทำหน้าที่เป็นไฟล์เซิร์ฟเวอร์ (ที่คุณเรียกใช้อุปกรณ์โดยไม่มีการขยายมาตรฐานเช่น Ubuntu) ฉันขอแนะนำให้ดูOpenFilerซึ่งเป็น "NAS / SAN ในกล่อง" ด้วยเว็บ GUI สำหรับการตั้งค่าทั้งหมดนี้ คุณให้รหัสผ่านโดเมน Windows ของคุณกับมันและเข้าร่วมได้ง่ายเหมือนกับที่คุณใช้กับกล่อง Windows อย่างไรก็ตามคุณไม่ได้เรียนรู้ Linux คุณกำลังเรียนรู้ OpenFiler ซึ่งเป็นเลเยอร์ที่เป็นนามธรรม (ถึงแม้ว่าจะเป็นอันที่ดีมาก)


+1 ขอบคุณสำหรับข้อมูลและคำแนะนำ
cop1152

1

ฉันใช้ CentOS เป็นเซิร์ฟเวอร์ CIFS เป็นการส่วนตัว CentOS Linux เป็นไบนารีกระจายเซิร์ฟเวอร์ที่เข้ากันได้กับ Redhat enterprise Linux หากคุณกำลังมองหาเซิร์ฟเวอร์ NAS ที่เสถียร CentOS อาจเป็นตัวเลือกที่ดี

http://www.centos.org/


-1

ฉันจะแนะนำให้ใช้ThinstationหรือFreeNAS พวกเขาทั้งสองมีซีดีสดที่ไม่ต้องติดตั้ง FreeNAS เป็น NAS ฟรีที่ให้การสนับสนุนเกือบทุกอย่าง (รวมถึงแซมบ้า) และมีส่วนหน้าของ gui ซึ่งจะทำให้การเปลี่ยนผ่านง่ายขึ้น

หากคุณตัดสินใจที่จะไม่ใช้อย่างใดอย่างหนึ่งในบรรดาเซิร์ฟเวอร์ที่ดีแบบสแตนด์อโลนรักษาความปลอดภัย FTP เป็นvsftpd


1
ThinStation ใช้สำหรับทำหน้าที่เป็น thin client (RDP / ICA เป็นต้น) และโดยทั่วไปคนที่ต้องการ 'เซิร์ฟเวอร์ไฟล์' ต้องการ SMB ไม่ใช่ FTP
crb

FTP น่าจะถูกฆ่ามานานแล้ว หากคุณไม่ต้องการที่จะใช้หุ้น CIFS ในเครือข่ายที่หน้าต่างมีทางเลือกที่ดีกว่าเช่น WebDAV ด้วย SSL
มาร์ตินเอ็ม

ฉันไม่รู้ว่านี่ควรจะเป็น downvote หรือไม่อย่างไรก็ตามประสบการณ์ของฉันกับ FreeNAS ก็คือมันเป็นไฟล์เซิร์ฟเวอร์ที่ยอดเยี่ยม แต่ไม่ดีสำหรับการฝึกฝนตัวเองเกี่ยวกับวิธีการใช้งาน Linux ซึ่งเป็นสิ่งที่ผู้ชายคนนี้เป็นหลังจาก
Mark Henderson
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.