นี่คือคำสั่ง gnudoit.emacs ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้หนึ่งในเวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS
โครงการ:
ชื่อ
gnuserv, gnuclient - เซิร์ฟเวอร์และไคลเอนต์สำหรับ Emacs และ XEmacs
เรื่องย่อ
ตาโต [-display display] [-q] [-v] [-l library] [-batch] [-f ฟังก์ชั่น] [-eval form]
[-h ชื่อโฮสต์] [-p port] [-r remote-pathname] [[+line] file] ...
กนูโดอิท [Q] ฟอร์ม
กนูเซิร์ฟ
กนูแทช ลบเมื่อ gnuserv 3.x
DESCRIPTION
ตาโต อนุญาตให้ผู้ใช้ร้องขอกระบวนการ Emacs หรือ XEmacs ที่ทำงานอยู่เพื่อแก้ไขชื่อ
ไฟล์หรือไดเร็กทอรี และ/หรือประเมินรูปแบบเสียงกระเพื่อม ขึ้นอยู่กับสภาพแวดล้อมของคุณ มันสามารถ
เฟรม X หรือเฟรม TTY การใช้งานทั่วไปอย่างหนึ่งคือการเชื่อมต่อผ่านสายโทรศัพท์กับa
เครื่องที่กระบวนการ Emacs หรือ XEmacs กำลังทำงานอยู่
กนูโดอิท เป็นเชลล์สคริปต์ส่วนหน้าของ ``gnuclient -batch -eval form'' การใช้งานคือ
เลิกใช้แล้ว พยายามทำความคุ้นเคยกับการโทรหา gnuclient โดยตรง
กนูเซิร์ฟ เป็นโปรแกรมเซิร์ฟเวอร์ที่ตั้งค่าให้ทำงานโดย Emacs หรือ XEmacs ให้จัดการทั้งหมด
คำขอเข้าและออก ปกติจะไม่เรียกใช้โดยตรง แต่เริ่มต้นจาก
Emacs หรือ XEmacs โดยโหลดไฟล์ กนูเซิร์ฟ แพ็คเกจและประเมินแบบฟอร์ม Lisp (gnuserv-
เริ่ม).
กนูแทช ไม่มีอยู่แล้ว.
OPTIONS
ตาโต รองรับตัวเลือกบรรทัดคำสั่งของ Emacs ได้มากเท่าที่ควรในนี้
บริบท. นอกจากนี้ยังเพิ่มบางส่วนของตัวเอง
สามารถระบุตัวเลือกที่มีชื่อยาวได้โดยใช้เครื่องหมายยัติภังค์คู่แทนที่จะเป็นตัวเดียว
หนึ่ง.
-แสดง แสดง, --แสดง รายการผลิตภัณฑ์
หากได้รับตัวเลือกนี้หรือตั้งค่าตัวแปรสภาพแวดล้อม `DISPLAY' ไว้
gnuclient จะบอก Emacs ให้แก้ไขไฟล์ในเฟรมบนอุปกรณ์ X ที่ระบุ
-q ตัวเลือกนี้แจ้ง ตาโต เพื่อออกเมื่อเชื่อมต่อกับ .แล้ว
กระบวนการ XEmac โดยทั่วไป ตาโต รอจนกว่าไฟล์ทั้งหมดในคำสั่ง
เสร็จสิ้นบรรทัดด้วย (บัฟเฟอร์ถูกฆ่า) โดยกระบวนการ XEmacs และทั้งหมด
แบบฟอร์มได้รับการประเมินแล้ว
-v เมื่อระบุตัวเลือกนี้ ตาโต จะขอไฟล์ที่ระบุเป็น
ดูแทนที่จะแก้ไข
-l ห้องสมุด
บอกให้ Emacs โหลดไลบรารีที่ระบุ
-แบทช์ บอก Emacs ว่าอย่าเปิดเฟรมใดๆ เพียงโหลดไลบรารี่และประเมินโค้ดเสียงกระเพื่อม ถ้า
ไม่มีไฟล์ที่จะดำเนินการ ฟังก์ชันที่จะเรียกใช้หรือแบบฟอร์มเพื่อประเมินจะได้รับโดยใช้ -l,
-f,หรือ -ประเมิน ตัวเลือก จากนั้นจะอ่านแบบฟอร์มเพื่อประเมินจาก STDIN
-f ฟังก์ชั่น
ทำให้ Emacs เรียกใช้ฟังก์ชันเสียงกระเพื่อม
-ประเมิน ฟอร์ม
ทำให้ Emacs ดำเนินการในรูปแบบเสียงกระเพื่อม
-h ชื่อโฮสต์
ใช้เฉพาะกับซ็อกเก็ตโดเมนอินเทอร์เน็ต ตัวเลือกนี้จะระบุเครื่องโฮสต์
ที่ควรจะวิ่ง กนูเซิร์ฟ. หากไม่ได้ระบุตัวเลือกนี้ ค่าของ
ตัวแปรสภาพแวดล้อม GNU_HOST ถูกใช้หากตั้งค่าไว้ หากไม่มีการระบุชื่อโฮสต์และ
ไม่ได้ตั้งค่าตัวแปร GNU_HOST จะไม่มีการเชื่อมต่ออินเทอร์เน็ต
หมายเหตุ: กนูเซิร์ฟ ไม่อนุญาตให้เชื่อมต่ออินเทอร์เน็ตเว้นแต่การตรวจสอบ XAUTH คือ
ใช้หรือระบุตัวแปร GNU_SECURE และชี้ไปที่รายการไฟล์
โฮสต์ที่เชื่อถือได้ทั้งหมด (ดูความปลอดภัยด้านล่าง)
โปรดทราบว่าอาจระบุที่อยู่อินเทอร์เน็ตแทนชื่อโฮสต์ซึ่งสามารถ
เร่งความเร็วการเชื่อมต่อกับเซิร์ฟเวอร์โดยเฉพาะอย่างยิ่งถ้าไคลเอนต์
เครื่องกำลังทำงาน YP
โปรดทราบว่าชื่อโฮสต์ของ ยูนิกซ์ สามารถใช้ระบุการเชื่อมต่อกับ
เซิร์ฟเวอร์ควรใช้ซ็อกเก็ตโดเมน Unix (หากได้รับการสนับสนุน) แทนที่จะเป็นอินเทอร์เน็ต
ซ็อกเก็ตโดเมน
-p พอร์ต ใช้เฉพาะกับซ็อกเก็ตโดเมนอินเทอร์เน็ต ตัวเลือกนี้ระบุพอร์ตบริการ
ใช้ในการสื่อสารระหว่างเซิร์ฟเวอร์และไคลเอนต์ หากไม่ได้ระบุตัวเลือกนี้
จากนั้นจะใช้ค่าของตัวแปรสภาพแวดล้อม GNU_PORT หากตั้งค่าไว้ มิฉะนั้น a
บริการที่เรียกว่า ``gnuserv'' ถูกค้นหาในฐานข้อมูลบริการ สุดท้ายถ้าไม่
สามารถหาค่าอื่น ๆ สำหรับพอร์ตได้ จากนั้นจะใช้พอร์ตเริ่มต้นซึ่งก็คือ
โดยปกติ 21490 + uid
โปรดทราบว่าตั้งแต่ กนูเซิร์ฟ ไม่อนุญาตให้ใช้ตัวเลือกบรรทัดคำสั่ง พอร์ตสำหรับมันจะ
ต้องระบุด้วยวิธีทางเลือกวิธีใดวิธีหนึ่ง
-r ชื่อพา ธ
ใช้เฉพาะกับซ็อกเก็ตโดเมนอินเทอร์เน็ต อาจจำเป็นต้องใช้อาร์กิวเมนต์ชื่อพาธเพื่อ
แจ้ง Emacs ถึงวิธีเข้าถึงไดเร็กทอรีรากของเครื่องระยะไกล ตาโต
ต่อท้ายสตริงนี้กับอาร์กิวเมนต์พาธแต่ละรายการที่ให้ไว้ ตัวอย่างเช่น หากคุณกำลังพยายาม
เพื่อแก้ไขไฟล์บนเครื่องไคลเอนต์ที่ชื่อ otter ซึ่งมีไดเร็กทอรีรากเป็น
สามารถเข้าถึงได้จากเครื่องเซิร์ฟเวอร์ผ่านเส้นทาง /net/otter จากนั้นอาร์กิวเมนต์นี้
ควรตั้งค่าเป็น '/net/otter' หากละเว้นตัวเลือกนี้ ค่าจะถูกใช้
จากตัวแปรสภาพแวดล้อม GNU_NODE หากตั้งค่าไว้ หรือสตริงว่างเป็นอย่างอื่น
[+น] ไฟล์
นี่คือเส้นทางของไฟล์ที่จะแก้ไข หากไฟล์เป็นไดเร็กทอรี ดังนั้น
ไดเร็กทอรีเบราว์เซอร์ dired หรือ monkey มักจะถูกเรียกใช้แทน เคอร์เซอร์ถูกวาง
ที่บรรทัดหมายเลข 'n' หากระบุไว้
ติดตั้ง
กนูเซิร์ฟ ถูกบรรจุเป็นมาตรฐานด้วย XEmacs เวอร์ชันล่าสุด ดังนั้นคุณควรจะ
สามารถเริ่มเซิร์ฟเวอร์ได้ง่ายๆ โดยการประเมิน XEmacs Lisp form (gnuserv-start) หรือ
เทียบเท่าโดยพิมพ์ `Mx gnuserv-start'
การกำหนดค่า
การทำงานของชุดโปรแกรมนี้ส่วนใหญ่ควบคุมที่ด้านเสียงกระเพื่อมใน Emacs และ
พฤติกรรมของมันสามารถปรับแต่งได้มาก พิมพ์ `Mx ปรับแต่งกลุ่ม RET gnuserv
RET' เพื่อให้เข้าถึงได้ง่าย เอกสารเพิ่มเติมสามารถพบได้ในไฟล์ `gnuserv.el'
ตัวอย่าง
gnuclient -q -f mh-สเมล
gnuclient -h นกกาเหว่า -r /ange@otter: / tmp /*
ฉลาด ../src/listproc.c
ตัวอย่างเพิ่มเติมและสคริปต์ตัวตัดทอนตัวอย่างมีให้ในไดเร็กทอรี etc/gnuserv ของ
การติดตั้งอีแมค
สวพ.FMXNUMX IPC
SysV IPC ใช้เพื่อสื่อสารระหว่าง ตาโต และ กนูเซิร์ฟ ถ้าสัญลักษณ์ SYSV_IPC คือ
กำหนดไว้ที่ด้านบนของ gnuserv.h สิ่งนี้เข้ากันไม่ได้กับทั้งโดเมน Unix และ Internet-
การสื่อสารซ็อกเก็ตโดเมนตามที่อธิบายไว้ด้านล่าง ไฟล์ชื่อ /tmp/gsrv??? ถูกสร้างเป็น
คีย์สำหรับคิวข้อความและหากลบออกจะทำให้การสื่อสารระหว่างเซิร์ฟเวอร์และ
ไคลเอ็นต์จะล้มเหลวจนกว่าเซิร์ฟเวอร์จะรีสตาร์ท
UNIX-DOMAIN ซ็อกเก็ต
ซ็อกเก็ตโดเมน Unix ใช้เพื่อสื่อสารระหว่าง ตาโต และ กนูเซิร์ฟ ถ้าสัญลักษณ์
UNIX_DOMAIN_SOCKETS ถูกกำหนดไว้ที่ด้านบนสุดของ gnuserv.h ไฟล์ชื่อ
/tmp/gsrvdir????/gsrv ถูกสร้างขึ้นเพื่อการสื่อสาร หากตั้งสัญลักษณ์ USE_TMPDIR ไว้ที่
ด้านบนสุดของ gnuserv.h, $TMPDIR เมื่อตั้งค่า จะถูกใช้แทน /tmp หากไฟล์นั้นคือ
ถูกลบหรือ TMPDIR มีค่าต่างกันสำหรับเซิร์ฟเวอร์และไคลเอนต์, การสื่อสาร
ระหว่างเซิร์ฟเวอร์และไคลเอนต์จะล้มเหลว เฉพาะผู้ใช้ที่รัน gnuserv เท่านั้นที่จะสามารถ
เชื่อมต่อกับซ็อกเก็ต
อินเทอร์เน็ต-โดเมน ซ็อกเก็ต
ซ็อกเก็ตโดเมนอินเทอร์เน็ตใช้เพื่อสื่อสารระหว่าง ตาโต และ กนูเซิร์ฟ ถ้า
สัญลักษณ์ INTERNET_DOMAIN_SOCKETS ถูกกำหนดไว้ที่ด้านบนสุดของ gnuserv.h ทั้งโดเมนอินเทอร์เน็ต
และซ็อกเก็ตโดเมน Unix สามารถใช้ได้พร้อมกัน หากระบุชื่อโฮสต์ผ่าน -h หรือ
ผ่านตัวแปรสภาพแวดล้อม GNU_HOST ตาโต สร้างการเชื่อมต่อโดยใช้อินเทอร์เน็ต
ซ็อกเก็ตโดเมน หากไม่เป็นเช่นนั้น จะมีการพยายามเชื่อมต่อภายในเครื่องผ่านซ็อกเก็ตโดเมน unix-domain หรือ
เอสวายเอสวี ไอพีซี
การรักษาความปลอดภัย
การใช้ซ็อกเก็ตโดเมนอินเทอร์เน็ตจำเป็นต้องมีรูปแบบการรักษาความปลอดภัยที่แข็งแกร่งกว่าซึ่งไม่ใช่
จำเป็นกับซ็อกเก็ตโดเมน Unix หรือ SysV IPC ปัจจุบันการรับรองความถูกต้องสองครั้ง
รองรับโปรโตคอลเพื่อให้สิ่งนี้: MIT-MAGIC-COOKIE-1 (อิงตาม X11 xauth(1)
โปรแกรม) และกลไกการควบคุมการเข้าใช้โฮสต์อย่างง่าย ซึ่งต่อจากนี้ไปจะเรียกว่า GNUSERV-1 NS
โปรโตคอล GNUSERV-1 พร้อมใช้งานเสมอ ในขณะที่การรองรับ MIT-MAGIC-COOKIE-1 อาจหรืออาจ
ไม่ได้เปิดใช้งาน (ผ่าน #define ที่ด้านบนสุดของ gnuserv.h) ในเวลาคอมไพล์
กนูเซิร์ฟโดยใช้ GNUSERV-1 ดำเนินการควบคุมการเข้าถึงในรูปแบบที่จำกัดที่ระดับเครื่อง
โดยค่าเริ่มต้น จะไม่เปิดซ็อกเก็ตโดเมนอินเทอร์เน็ต หากสามารถพบตัวแปร GNU_SECURE ได้
in กนูเซิร์ฟสภาพแวดล้อมและตั้งชื่อไฟล์ที่อ่านได้ จากนั้นไฟล์นี้จะเปิดขึ้นและ
ถือว่าเป็นรายการโฮสต์ หนึ่งรายการต่อบรรทัด ซึ่งเซิร์ฟเวอร์จะอนุญาตการร้องขอ
การเชื่อมต่อจากโฮสต์อื่นจะถูกปฏิเสธ แม้แต่เครื่องที่ กนูเซิร์ฟ is
ไม่อนุญาตให้รันทำการเชื่อมต่อผ่านซ็อกเก็ตอินเทอร์เน็ตเว้นแต่ชื่อโฮสต์
ระบุไว้อย่างชัดเจนในไฟล์นี้ โปรดทราบว่าโฮสต์อาจเป็นที่อยู่ IP ที่เป็นตัวเลข
หรือชื่อโฮสต์และนั่น ใด ผู้ใช้บนโฮสต์ที่ได้รับอนุมัติอาจเชื่อมต่อกับ gnuserv และ
ดำเนินการ elisp โดยพลการ (เช่น ลบไฟล์ทั้งหมดของคุณ) หากไฟล์นี้มีจำนวนมาก
ชื่อโฮสต์เซิร์ฟเวอร์อาจใช้เวลาในการเริ่มต้นค่อนข้างนาน
เมื่อเปิดใช้งานโปรโตคอล MIT-MAGIC-COOKIE-1 ซ็อกเก็ตอินเทอร์เน็ต is เปิดโดยค่าเริ่มต้น
กนูเซิร์ฟ จะยอมรับการเชื่อมต่อจากโฮสต์ใด ๆ และจะรอ "คุกกี้วิเศษ"
(โดยพื้นฐานแล้ว รหัสผ่าน) ที่ลูกค้าจะนำเสนอ หากลูกค้าไม่แสดง
คุกกี้ หรือถ้าคุกกี้ไม่ถูกต้อง การรับรองความถูกต้องของไคลเอ็นต์ถือว่ามี
ล้มเหลว. ณ จุดนี้. กนูเซิร์ฟ กลับไปที่โปรโตคอล GNUSERV-1; หากลูกค้าเป็น
โทรจากโฮสต์ที่ระบุไว้ในไฟล์ GNU_SECURE การเชื่อมต่อจะได้รับการยอมรับ
มิฉะนั้นจะถูกปฏิเสธ
การใช้ MIT-MAGIC-คุกกี้-1 การรับรอง
เมื่อราคาของ กนูเซิร์ฟ เซิร์ฟเวอร์เริ่มทำงานแล้ว จะมองหาคุกกี้ที่กำหนดไว้สำหรับการแสดงผล 999 on
เครื่องที่ทำงานอยู่ หากพบคุกกี้จะถูกเก็บไว้เพื่อใช้เป็น
คุกกี้รับรองความถูกต้อง คุกกี้เหล่านี้ถูกกำหนดไว้ในไฟล์การอนุญาต (โดยปกติ
~/.Xauthority) ที่ควบคุมโดย X11 xauth(1) โปรแกรม ตัวอย่างเช่น เครื่อง
"กาลี" ซึ่งเรียกใช้ emacs ที่เรียกใช้ กนูเซิร์ฟ ควรตอบสนองดังนี้ (ที่
พร้อมท์เชลล์) เมื่อตั้งค่าอย่างถูกต้อง
กาลี% รายการ xauth
GS65.SP.CS.CMU.EDU:0 MIT-MAGIC-คุกกี้-1 11223344
KALI.FTM.CS.CMU.EDU:999 MIT-MAGIC-คุกกี้-1 1234
ในกรณีข้างต้น ไฟล์การอนุญาตจะกำหนดคุกกี้สองตัว อันที่สองกำหนด
สำหรับหน้าจอ 999 บนเครื่องเซิร์ฟเวอร์ ใช้สำหรับการพิสูจน์ตัวตน gnuserv
ที่ฝั่งเครื่องไคลเอนต์ ไฟล์การอนุญาตต้องมีบรรทัดเหมือนกัน
ระบุ เซิฟเวอร์ คุกกี้. กล่าวอีกนัยหนึ่งบนเครื่อง "foobar" ที่ต้องการ
เชื่อมต่อกับ "kali" เอาต์พุต `xauth list' ควรมีบรรทัด:
KALI.FTM.CS.CMU.EDU:999 MIT-MAGIC-คุกกี้-1 1234
ในการสร้างคุกกี้ คุณสามารถใช้คำสั่งเช่น
xauth เพิ่ม `ชื่อโฮสต์':999 MIT-MAGIC-COOKIE-1 `head -c512 /dev/urandom|md5sum'
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับไฟล์การอนุญาต โปรดดูที่ xauth(1X11) คนหน้าคน
หรือเรียกใช้ xauth แบบโต้ตอบ (โดยไม่มีข้อโต้แย้ง) และพิมพ์ "help" ที่พรอมต์
จำกรณีนั้นในชื่อของโปรโตคอลการอนุญาต (เช่น`MIT-MAGIC-
คุกกี้-1') is สำคัญ!
และพวกเรา
การแสดงผล อุปกรณ์ X เริ่มต้นเพื่อใส่กรอบแก้ไข
ใช้ gnudoit.emacs ออนไลน์โดยใช้บริการ onworks.net