จำกัด เวลาที่อนุญาตให้ผู้ใช้ลงชื่อเข้าใช้


9

เรามีระบบ Backbox 3.13 หลายตัวที่สร้างบน Ubuntu 12.04 หนึ่งในวัยรุ่นของฉันไม่เข้าใจแนวคิดของสิ่งนี้เรียกว่า "หลับ" และมีแนวโน้มที่จะลุกขึ้นเล่นบนคอมพิวเตอร์ ฉันพยายาม จำกัด การกระทำนั้น เราลองพี่เลี้ยงซึ่งใช้งานได้สองสามวัน จากนั้นแม้ว่าการตั้งค่าจะยังคงอยู่ในสถานที่ แต่ก็ยังช่วยให้วัยรุ่นดังกล่าวสามารถเข้าถึงบัญชีผู้ใช้และอินเทอร์เน็ตของเธอได้

/etc/security/time.confหลังจากการวิจัยบางอย่างผมตัดสินใจที่จะลองปรับเปลี่ยน เห็นได้ชัดว่าฉันไม่ได้ทำอย่างถูกต้องเพราะไม่ว่าคำสั่งใดที่ฉันป้อนลงในไฟล์เรายังสามารถเข้าสู่บัญชีผู้ใช้ของเธอได้ เราไม่ต้องการให้เธอเข้าถึงได้ตั้งแต่ 21.00 น. ถึง 18.00 น. เรายังคงต้องการให้ฉันเข้าถึงคอมพิวเตอร์ได้ตลอดเวลา นี่คือไวยากรณ์หลายอย่างที่ฉันได้ลอง:

1. login;*;username;A12100-0600
2. login;*;username;!A12100-0600
3. login;*;username;!A12100-0600
   login;*;my username;A10000-2400
4. login;*;!username;A12100-0600

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


1
ลองlogin;*;daughter;A10600-2100ดู ควรอนุญาตให้มีการเข้าสู่ระบบระหว่างเวลา 6.00 น. ถึง 21.00 น. เท่านั้น ถ้านั่นไม่ได้ผลบางทีก็เป็น*;*;daughter;A10600-2100เช่นนั้น หากใช้งานได้คุณจะต้องมีcronงานที่ฆ่าช่วงเวลาลูกสาวของคุณเวลา 21.00 น. เนื่องจากจะเป็นการหยุดเซสชันใหม่เท่านั้น มีรายละเอียดบางอย่างที่นี่
Warwick

น่าเสียดายที่นี่ใช้งานไม่ได้ ฉันลองเข้าสู่ระบบ; *; ลูกสาว; A10600-1900 เพื่อทดสอบวิธีแก้ปัญหาโดยไม่มีประโยชน์ ฉันยังลอง ; ; ลูกสาว; A10600-1900 โดยไม่มีผลบวก สิ่งนี้ควรใช้งานได้ แต่ไม่ได้ผล เป็นเพราะระบบ Unity หรือไม่
user81117

2
คุณได้กำหนดค่าpamให้ใช้pam_timeหรือไม่ ถ้าไม่คุณต้องการaccount required pam_time.soทั้งใน/etc/pam.d/gdmและ/etc/pam.d/loginใต้authรายการ
Warwick

ฉันเพิ่มบรรทัดเหล่านั้นในไฟล์ / gdm และ / login จากนั้นป้อนข้อมูลลงในไฟล์ config อีกครั้ง เรายังไม่มีความสุขในตอนนี้ ฉันกำลัง Googling ตอนนี้เพื่อให้แน่ใจว่าฉันป้อนบรรทัดลงในจุดที่ถูกต้องในไฟล์ / gdm
user81117

ตามask.fedoraproject.org/en/question/7260/… , (ขออภัยเกี่ยวกับ URL ที่ยาว) ฉันควรจะยกเลิกคำสั่งโดยป้อนบรรทัดใหม่ ฉันแสดงความคิดเห็นว่ามีเครื่องหมาย # ใช่ไหม? นอกจากนี้ยังบอกว่าบัญชีที่ต้องการ pam_time.so จะอยู่ที่ท้ายไฟล์ / gdm ฉันรู้สิ่งหนึ่งที่แน่นอน เมื่อคิดออกแล้วฉันจะไม่ลืมอีกเร็วนัก!
user81117

คำตอบ:


1

1. แก้ไข /etc/pam.d/common-auth และเพิ่มบรรทัดต่อไปนี้: account required pam_time.so

2. แก้ไข /etc/security/time.conf และเพิ่มข้อ จำกัด : *;*;username;Al0800-2200

ตัวอย่างอนุญาตการล็อกอินด้วยซอฟต์แวร์ pam ที่รับรู้ได้ทุกวันระหว่าง 8.00 น. ถึง 22.00 น. ทุกวัน


0

เป็นเพียงที่นี่ที่คุณทำหรือคุณใช้คนแทน Ls?

ข้อ จำกัด เวลาควรอ่าน "เมืองหลวง A, L ขนาดเล็ก " และเวลา ...


สวัสดีนิกเก ฉันลองทั้งสองวิธีเนื่องจากฉันเห็นเอกสารแสดงทั้งอัลและ A1 ไม่มีวิธีการทำงาน ฉันมีเวลาพยายามที่จะคิดออกว่าทำไม
user81117

ขออภัยที่ทราบว่าไม่ใช่สาเหตุของปัญหาของคุณ ตรวจสอบอีกสิ่งหนึ่งเพื่อให้แน่ใจว่า: ระบบของคุณอาจใช้ DM อื่นหรือไม่ มองเข้าไปใน / etc / X11 / เริ่มต้นการแสดงผลผู้จัดการ ...
ม.ค.

ระบบกำลังใช้ Light DM ฉันคิดว่าเมื่อฉันติดตั้ง GDM ฉันจะตั้งค่าสำหรับ Light DM
user81117

0

ผลงานต่อไปนี้สำหรับฉัน:

*;*;child1|child2|child3;Wk0445-1958|Sa0445-2300|Su0445-1958

บรรทัดต่อไปนี้/etc/pam.d/common-accountอาจเป็นสิ่งที่ฉันเพิ่มหรือไม่ใส่คอมเม้นท์

account required  pam_time.so

ฉันยังมีงาน cron ที่จะตรวจสอบเวลา 20.00 น. หากเด็กคนหนึ่งเข้าสู่ระบบและออกจากระบบหากเป็นเช่นนั้น ... ส่วนที่ออกจากระบบจริงจะเป็นดังนี้:

echo 'logging off - Following children are still logged in...'
for n in $active_children ; do echo "  " $n ; done
festival --tts <<EOT
Is is bedtime. Good bye and good night.
EOT
for n in $active_children
do
    killall -HUP -u $n
done
sleep 15
for n in $active_children
do
    killall      -u $n
done
echo "[`date`] - done"

0

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

0 21 * * * /usr/bin/passwd -l childsUserName 0 6 * * * /usr/bin/passwd -u childsUserName'

หมายเหตุ: คุณอาจต้องปรับพา ธ ของคุณสำหรับคำสั่ง 'passwd' กำหนดเส้นทางที่เหมาะสมด้วย 'ซึ่ง'

ในกล่อง CentOS 6 ของฉัน:

which passwd

/usr/bin/passwd


ฉันไม่คิดว่ามันจะใช้ได้ เกิดอะไรขึ้นถ้าการตรวจสอบไม่ได้ทำกับฐานข้อมูลรหัสผ่านท้องถิ่น ( /etc/shadow)? passwd -lอาจไม่ทำอะไรเลยในกรณีนั้น ถ้าหากเครื่องถูกปิดหรืองาน cron ไม่สามารถทำงานได้ด้วยเหตุผลอื่น จากนั้นบัญชีอาจอยู่ในสถานะที่ไม่ต้องการ
jayhendren

ฉันไม่ทราบว่าระบบ UNIX หรือ Linux ใด ๆ ที่ไม่ได้ตรวจสอบความถูกต้องกับฐานข้อมูลรหัสผ่านท้องถิ่นเว้นแต่ว่าจะเชื่อมต่อกับเซิร์ฟเวอร์การตรวจสอบความถูกต้องกลาง
Ragansi

ความคิดเห็นก่อนหน้าของฉันถูกตัดออกก่อนเวลาอันควร ไม่ได้ตระหนักถึงการกดปุ่มป้อนโพสต์ความคิดเห็น อย่างไรก็ตาม. หากเครื่องถูกปิด cron จะสามารถออกจากระบบได้อย่างแน่นอน คุณสามารถใช้ cron เพื่อโทรหาสคริปต์ขนาดเล็กที่ตรวจสอบเวลาจากนั้นล็อคหรือปลดล็อคตามลำดับ เรียกใช้ทุก ๆ 5 นาทีหรือแม้กระทั่ง @reboot ใน cron
Ragansi

"ยกเว้นกรณีที่เชื่อมต่อกับเซิร์ฟเวอร์การตรวจสอบความถูกต้องกลาง" นั่นคือสิ่งที่ฉันหมายถึง
jayhendren

ในกรณีดังกล่าวเซิร์ฟเวอร์การตรวจสอบความถูกต้องกลางของคุณจะ (หรือควร ... ) มีสิ่งอำนวยความสะดวกในการใช้งานฟังก์ชั่นล็อคดังกล่าวข้างต้น ในกรณีดังกล่าวคุณไม่จำเป็นต้อง (และไม่จำเป็นต้องใช้) เพื่อทำการล็อกบัญชีผู้ใช้บนเครื่องท้องถิ่นเว้นแต่จะมีบางสิ่งที่ไม่ได้กำหนดค่าโดยมีจุดประสงค์ให้ใช้การตรวจสอบสิทธิ์กลาง
Ragansi
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.