นี่คือคำสั่ง lshell ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้หนึ่งในเวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS
โครงการ:
ชื่อ
lshell - เชลล์จำกัด
เรื่องย่อ
เปลือก [OPTIONS]
DESCRIPTION
เปลือก จัดเตรียมเชลล์จำกัดที่กำหนดค่าต่อผู้ใช้ การกำหนดค่าเสร็จสิ้นค่อนข้าง
เพียงแค่ใช้ไฟล์กำหนดค่า ควบคู่ไปกับ ssh's ได้รับอนุญาต_keys หรือกับ / etc / เชลล์
และ / etc / passwd กลายเป็นเรื่องง่ายมากที่จะ จำกัด การเข้าถึงของผู้ใช้ไปยังชุดที่ จำกัด
คำสั่ง
OPTIONS
--การกำหนดค่า
ระบุไฟล์ปรับแต่ง
--บันทึก
ระบุไดเร็กทอรีบันทึก
--
ที่ไหน คือ *ใดๆ* ไฟล์กำหนดค่าพารามิเตอร์
-ชม, --ช่วยด้วย
แสดงข้อความช่วยเหลือ
--รุ่น
แสดงเวอร์ชัน
การกำหนดค่า
คุณสามารถกำหนดค่า lshell ผ่านไฟล์กำหนดค่าได้:
On ลินุกซ์ -> /etc/lshell.conf
On * BSD -> /usr/{pkg,local}/etc/lshell.conf
เปลือก การกำหนดค่ามีส่วน 4 ประเภท:
[โลก] -> เปลือก ระบบ องค์ประกอบ (เท่านั้น 1)
[ค่าเริ่มต้น] -> เปลือก ผิดนัด ผู้ใช้งาน องค์ประกอบ (เท่านั้น 1)
[ฟู] -> ยูนิกซ์ ชื่อผู้ใช้ "ฟู" โดยเฉพาะ องค์ประกอบ
[กลุ่ม:บาร์] -> ยูนิกซ์ ชื่อกลุ่ม "บาร์" โดยเฉพาะ องค์ประกอบ
ลำดับความสำคัญเมื่อโหลดการตั้งค่ามีดังต่อไปนี้:
1- ผู้ใช้งาน องค์ประกอบ
2- บัญชีกลุ่ม องค์ประกอบ
3- ค่าเริ่มต้น องค์ประกอบ
[โลก]
เข้าสู่ระบบ
เส้นทางการกำหนดค่า (ค่าเริ่มต้นคือ /var/log/lshell/)
ระดับการบันทึก
0, 1, 2, 3 หรือ 4 (0: ไม่มีบันทึก -> 4: บันทึกทุกอย่าง)
ชื่อไฟล์บันทึก
- ตั้งค่าให้ syslog เพื่อเข้าสู่ syslog
- ตั้งชื่อไฟล์บันทึก เช่น %u-%y%m%d (เช่น foo-20091009.log): %u -> ชื่อผู้ใช้
%d -> วัน [1..31]
%m -> เดือน [1..12]
%y -> ปี [00..99]
%h -> เวลา [00:00..23:59]
syslogname
ในกรณีที่คุณใช้ syslog ให้ตั้งชื่อบันทึกของคุณ (ค่าเริ่มต้น: lshell)
รวม_dir
รวมไดเร็กทอรีที่มีไฟล์คอนฟิกูเรชันหลายไฟล์ ไฟล์เหล่านี้ได้เท่านั้น
มีการกำหนดค่าเริ่มต้น/ผู้ใช้/กลุ่ม การกำหนดค่าส่วนกลางจะเป็น .เท่านั้น
โหลดจากไฟล์การกำหนดค่าเริ่มต้น ตัวแปรนี้จะถูกขยาย (เช่น
/path/*.conf)
[ค่าเริ่มต้น] และ / หรือ [ชื่อผู้ใช้] และ / หรือ [กลุ่ม:ชื่อกลุ่ม]
นามแฝง
รายการนามแฝงคำสั่ง (คล้ายกับคำสั่งนามแฝงของ bash)
อนุญาตให้
รายการคำสั่งที่อนุญาตหรือตั้งค่าเป็น 'ทั้งหมด' เพื่ออนุญาตคำสั่งทั้งหมดใน PATH . ของผู้ใช้
ได้รับอนุญาต_cmd_path
รายการเส้นทาง ไฟล์ปฏิบัติการทั้งหมดภายในเส้นทางเหล่านี้จะได้รับอนุญาต
env_path
อัปเดตตัวแปรสภาพแวดล้อม $PATH ของผู้ใช้ (ทางเลือก)
env_vars
ตั้งค่าตัวแปรสภาพแวดล้อม (ไม่บังคับ)
ที่ต้องห้าม
รายการอักขระหรือคำสั่งต้องห้าม
history_file
ตั้งชื่อไฟล์ประวัติ สามารถใช้สัญลักษณ์แทน:
%u -> ชื่อผู้ใช้ (เช่น '/บ้าน/%u/.lhistory')
ประวัติศาสตร์_ขนาด
กำหนดขนาดสูงสุด (เป็นบรรทัด) ของไฟล์ประวัติ
home_path (เลิกใช้แล้ว)
ตั้งค่าโฮมโฟลเดอร์ของผู้ใช้ของคุณ หากไม่ได้ระบุไว้ โฮมไดเร็กทอรีจะถูกตั้งค่าเป็น
ตัวแปรสภาพแวดล้อม $HOME ตัวแปรนี้จะถูกลบออกในเวอร์ชันถัดไป
ของ lshell โปรดใช้เครื่องมือของระบบเพื่อตั้งค่าโฮมไดเร็กทอรีของผู้ใช้ NS
สามารถใช้สัญลักษณ์แทน:
%u -> ชื่อผู้ใช้ (เช่น '/บ้าน/%ยู')
อินโทร ตั้งค่าแนะนำการพิมพ์เมื่อเข้าสู่ระบบ
ล็อกอิน_สคริปต์
กำหนดสคริปต์ให้ทำงานเมื่อเข้าสู่ระบบของผู้ใช้
passwd รหัสผ่านของผู้ใช้เฉพาะ (ค่าเริ่มต้นว่างเปล่า)
เส้นทาง รายการเส้นทางเพื่อจำกัดผู้ใช้ตามภูมิศาสตร์ สามารถใช้สัญลักษณ์แทนได้
(เช่น '/var/log/ap*')
รวดเร็ว กำหนดรูปแบบพรอมต์ของผู้ใช้ (ค่าเริ่มต้น: ชื่อผู้ใช้)
%u -> ชื่อผู้ใช้
%h -> ชื่อโฮสต์
prompt_short
ตั้งค่าการอัพเดทไดเรกทอรีปัจจุบันพร้อมท์ - ตั้งค่าเป็น 1 หรือ 0 เกิน รายการคำสั่ง
ได้รับอนุญาตให้ดำเนินการผ่าน ssh (เช่น rsync, rdiff-backup, scp เป็นต้น)
SCP อนุญาตหรือห้ามการใช้การเชื่อมต่อ scp - ตั้งค่าเป็น 1 หรือ 0
Scpforce
บังคับไฟล์ที่ส่งผ่าน scp ไปยังไดเร็กทอรีเฉพาะ
scp_download
ตั้งค่าเป็น 0 เพื่อห้ามการดาวน์โหลด scp (ค่าเริ่มต้นคือ 1)
scp_upload
ตั้งค่าเป็น 0 เพื่อห้ามการอัปโหลด scp (ค่าเริ่มต้นคือ 1)
SFTP อนุญาตหรือห้ามการใช้การเชื่อมต่อ sftp - ตั้งค่าเป็น 1 หรือ 0
คำเตือน: ตัวเลือกนี้จะไม่ทำงานหากคุณใช้บริการ internal-sftp ของ OpenSSH
(เช่นเมื่อกำหนดค่าใน chroot)
sudo_commands
รายการคำสั่งที่อนุญาตให้ใช้กับ sudo(8). หากตั้งค่าเป็น 'ทั้งหมด' ทั้งหมด
คำสั่ง 'อนุญาต' จะสามารถเข้าถึงได้ผ่าน sudo(8)
เป็นไปได้ที่จะใช้แฟล็ก -u sudo เพื่อรันคำสั่งที่แตกต่างกัน
ผู้ใช้มากกว่ารูทเริ่มต้น
เครื่องจับเวลา ค่าเป็นวินาทีสำหรับตัวจับเวลาเซสชัน
เข้มงวด ความเข้มงวดในการเข้าสู่ระบบ หากตั้งค่าเป็น 1 คำสั่งที่ไม่รู้จักจะถือเป็นคำสั่งต้องห้าม
และตัวนับเตือนผู้ใช้จะลดลง หากตั้งค่าเป็น 0 คำสั่งจะถือว่าเป็น
ไม่รู้จัก และผู้ใช้จะได้รับคำเตือนเท่านั้น (เช่น *** ไวยากรณ์ที่ไม่รู้จัก)
Warning_counter
จำนวนคำเตือนเมื่อผู้ใช้ป้อนค่าต้องห้ามก่อนออกจาก
เปลือก ตั้งค่าให้ -1 เพื่อปิดการใช้งานตัวนับและเพียงแค่เตือนผู้ใช้
SHELL สร้างขึ้น คำสั่ง
นี่คือชุดคำสั่งที่พร้อมใช้งานกับ lshell เสมอ:
ชัดเจน ล้างเทอร์มินัล
ช่วยด้วย, ?
พิมพ์รายการคำสั่งที่อนุญาต
ประวัติ
พิมพ์ประวัติคำสั่ง
ลพาธ แสดงรายการเส้นทางที่อนุญาตและต้องห้ามทั้งหมด
ซูโด แสดงรายการคำสั่งที่อนุญาต sudo ทั้งหมด
ตัวอย่าง
$ เปลือก
พยายามเรียกใช้ lshell โดยใช้ค่าเริ่มต้น ${PREFIX}/etc/lshell.conf เป็นไฟล์กำหนดค่า
หากล้มเหลวจะมีการพิมพ์คำเตือนและ lshell ถูกขัดจังหวะ ตัวเลือก lshell คือ
โหลดจากไฟล์กำหนดค่า
$ เปลือก --การกำหนดค่า /path/to/myconf.file --บันทึก /path/to/mylog.log
การดำเนินการนี้จะแทนที่ตัวเลือกเริ่มต้นที่ระบุไว้สำหรับการกำหนดค่าและ/หรือไฟล์บันทึก
ใช้ กรณี
เป้าหมายหลักของ lshell คือการสร้างบัญชีเชลล์ด้วยการเข้าถึง ssh และ
จำกัดสภาพแวดล้อมของพวกเขาเป็นสองสามคำสั่งที่จำเป็น ในตัวอย่างนี้ ผู้ใช้ 'foo' และ
'แถบ' ของผู้ใช้ทั้งคู่อยู่ในกลุ่ม 'ผู้ใช้' UNIX:
ผู้ใช้งาน ฟู:
- ต้องสามารถเข้าถึงได้ / usr และ / var แต่ไม่ / usr / local
- ผู้ใช้คำสั่งทั้งหมดใน PATH ของเขา แต่ 'su'
- มีตัวนับเตือนตั้งไว้ที่ 5
- ตั้งค่าพาธบ้านเป็น '/home/users'
ผู้ใช้งาน บาร์:
- ต้องสามารถเข้าถึงได้ / ฯลฯ และ / usr แต่ไม่ / usr / local
- อนุญาตให้ใช้คำสั่งเริ่มต้นบวก 'ping' ลบ 'ls'
- ความเข้มงวดถูกตั้งค่าเป็น 1 (หมายความว่าเขาไม่ได้รับอนุญาตให้พิมพ์คำสั่งที่ไม่รู้จัก)
ในกรณีนี้ ไฟล์กำหนดค่าของฉันจะมีลักษณะดังนี้:
# คอนฟิกูเรชัน เริ่มต้น
[โลก]
เข้าสู่ระบบ : /var/log/lshell/
ระดับการบันทึก : 2
[ค่าเริ่มต้น]
อนุญาตให้ : ['ls','pwd']
ที่ต้องห้าม : [';', '&', '|']
Warning_counter : 2
เครื่องจับเวลา : 0
เส้นทาง : ['/ ฯลฯ', '/ usr']
env_path : ':/ sbin:/ usr / bin /'
SCP : 1 # or 0
SFTP : 1 # or 0
เกิน : ['rsync','ls']
นามแฝง : {'ls':'ls --color=auto','ll':'ls -l'}
[กลุ่ม:ผู้ใช้]
Warning_counter : 5
เกิน : - ['ls']
[ฟู]
อนุญาตให้ : 'ทั้งหมด' - ['ซู']
เส้นทาง : ['/ var', '/ usr'] - ['/ usr / local']
home_path : '/บ้าน/ผู้ใช้'
[บาร์]
อนุญาตให้ : + ['ปิง'] - ['ls']
เส้นทาง : - ['/ usr / local']
เข้มงวด : 1
Scpforce : '/home/bar/อัพโหลด/'
# คอนฟิกูเรชัน END
หมายเหตุ
เพื่อบันทึกคำเตือนของผู้ใช้ลงในไดเร็กทอรีการบันทึก (default /var/log/lshell/)
คุณต้องสร้างโฟลเดอร์ก่อน (หากยังไม่มี) และเปลี่ยนเป็นกลุ่ม lshell:
# กลุ่มเพิ่ม --ระบบ เปลือก
# mkdir /var/log/lshell
# chown :lshell /var/log/lshell
# chmod 770 /var/log/lshell
จากนั้นเพิ่มผู้ใช้ไปที่ เปลือก กลุ่ม:
# usermod -ก เปลือก user_name
เพื่อตั้งค่า lshell เป็นเชลล์เริ่มต้นสำหรับผู้ใช้:
On ลินุกซ์:
# ชช -s /usr/bin/lshell user_name
On *บีเอสดี:
# ชช -s /usr/{pkg,local}/bin/lshell user_name
ใช้ lshell ออนไลน์โดยใช้บริการ onworks.net