Ubuntu <= 11.10 Người dùng làm theo hướng dẫn này cho Người dùng Ubuntu> = 11.10 đọc thông báo trang dưới cùng:
Có tất cả các chương trình đó đã hết hạn và tất cả các câu hỏi của bạn được trả lời ở đây và có cái nhìn tốt với sự kiểm soát của phụ huynh .....
Khi chúng tôi nói về việc buộc người dùng đăng xuất, điều chúng tôi thực sự đang nói đến là thực hiện các hạn chế về thời gian đối với tài khoản để truy cập hệ thống hoặc dịch vụ. Cách dễ nhất mà tôi đã tìm thấy để thực hiện các hạn chế về thời gian là sử dụng mô-đun trình cắm có tên là Linux-PAM .
Mô đun xác thực Pluggable (PAM) là một cơ chế để xác thực người dùng. Cụ thể, chúng tôi sẽ sử dụng pam_time
mô-đun để kiểm soát quyền truy cập theo thời gian của người dùng đối với các dịch vụ.
Sử dụng pam_time
mô-đun, chúng tôi có thể đặt các hạn chế truy cập cho một hệ thống và / hoặc các ứng dụng cụ thể vào các thời điểm khác nhau trong ngày cũng như vào các ngày cụ thể hoặc trên các dòng thiết bị đầu cuối khác nhau. Tùy thuộc vào cấu hình, bạn có thể sử dụng mô-đun này để từ chối quyền truy cập cho từng người dùng dựa trên tên của họ, thời gian trong ngày, ngày trong tuần, dịch vụ họ đang đăng ký và thiết bị đầu cuối của họ mà họ đang yêu cầu .
Khi sử dụng pam_time
, bạn phải chấm dứt cú pháp của từng dòng (hoặc quy tắc) trong /etc/security/time.conf
tệp bằng một dòng mới. Bạn có thể nhận xét từng dòng bằng dấu thăng [#] và hệ thống sẽ bỏ qua văn bản đó cho đến dòng mới.
Đây là cú pháp cho một quy tắc:
dịch vụ; ttys, người dùng, thời gian
The first field — services — is a logic list of PAM service names.
The second field — tty — is a logic list of terminal names.
The third field — users — is a logic list of users or a netgroup of users.
The fourth field — times — indicates the applicable times.
Đây là một ví dụ về một bộ quy tắc điển hình:
login ; * ; !bobby ; MoTuWeThFr0800-2000
login ; * ; !root ; !Al0000-2400
http ; * ; !bobby ; MoTuWeThFr0800-2000
http ; * ; !root; !Al0000-2400
Các quy tắc này hạn chế người dùng đăng nhập vào giữa giờ 0800 và 2000 và họ cũng hạn chế truy cập Internet trong những giờ này. Root sẽ có thể đăng nhập bất cứ lúc nào và duyệt Internet trong mọi thời điểm.
Lưu ý: Hệ thống ghi lại các lỗi với các quy tắc này là syslog (3).
Với Ubuntu Linux, có thể gán cho các giới hạn thời gian trên máy tính của bạn, để ngăn kết nối của một hoặc nhiều người dùng với hệ thống của bạn. Với các giới hạn về thời gian, ví dụ, bạn có thể giới hạn quyền truy cập vào máy tính cho con cái của bạn (một loại kiểm soát của cha mẹ, nói ngắn gọn) hoặc thậm chí bảo vệ kết nối với máy chủ của bạn trong một số giờ nhất định.
Cấu hình thủ công
Hiểu những gì bạn sẽ làm
Trong suốt hướng dẫn này, chúng tôi sẽ sử dụng PAM (Mô-đun xác thực có thể cắm được, Mô-đun xác thực có thể cắm bằng tiếng Anh). Nó cho phép bạn kiểm soát xác thực người dùng khi họ kết nối. Sau đó, chúng tôi sẽ sử dụng các tệp cấu hình bảo mật để xác định giờ đăng nhập được phép. Các thao tác này có thể được thực hiện trên bất kỳ phiên bản Ubuntu nào và chỉ cần một trình soạn thảo văn bản đơn giản (vim, emacs, nano, gedit, kate, để đặt tên cho một số). Kích hoạt giờ giới hạn thông qua Mô-đun PAM
Trước hết, trước tiên hãy đến /etc/pam.d/
, nơi có tất cả các dịch vụ có thể định cấu hình:
$ Ls /etc/pam.d/
atd common-account common-session gdm login ppp sudo
chfn common-auth cron gdm-autologin Other samba
chsh common-cupsys gnome-screensaver password passwd su
Nếu chúng tôi muốn chặn kết nối với máy tính, chúng tôi sẽ phải thay đổi dịch vụ gdm. Chỉnh sửa tệp để gdm và thêm dòng mã này (ở cuối tệp):
account required pam_time.so
GDM là bản phân phối màn hình đăng nhập Ubuntu, Edubfox và Xubfox. Đối với Kubfox, sử dụng KDE, dịch vụ kdm được gọi, nó sẽ là tệp mà nó sẽ mở. Và bạn đã hoàn tất việc cấu hình PAM! Điều này sẽ cho phép kiểm soát giờ trên dịch vụ này.
Nếu bạn có một máy chủ, có lẽ bạn không có GUI. Trong trường hợp này, GDM / KDM không được cài đặt và kết nối sẽ không bị chặn. Để ngăn kết nối với TTY, bạn phải sửa đổi thông tin đăng nhập của cùng một tệp và thêm cùng một dòng mã so với xác nhận trước đó. Hành động này cũng áp dụng cho những người đã cài đặt GUI và muốn chặn quyền truy cập vào màn hình đăng nhập và thiết bị đầu cuối.
Định cấu hình Giờ truy cập
Bây giờ dịch vụ PAM đã được kích hoạt, chúng tôi chỉ phải định cấu hình thời gian truy cập. Mở /etc/security
. Một số tập tin cấu hình có sẵn:
$ Ls /etc/security/
access.conf namespace.conf pam_env.conf
group.conf namespace.init time.conf
limits.conf opasswd time.conf.bak
Chỉnh sửa tập tin time.conf
. Một số giải thích và ví dụ (tiếng Anh) giới thiệu. Để đặt lịch truy cập, sao chép và dán dòng mã sau (ở cuối tệp, như mọi khi):
*;*;user;scheduler
Thay vì trường người dùng, hãy nhập tài khoản đăng nhập bạn muốn chặn.
Nếu bạn muốn chặn nhiều người dùng, hãy nhập thông tin đăng nhập của họ liên tiếp, cách nhau bởi | nhà điều hành. Ví dụ: nếu tôi muốn đóng băng tài khoản của Patrick, John và Emily:
*;*;Patrick|jean|emilie;scheduler
Theo khuyết điểm, nếu bạn muốn chặn quyền truy cập vào hệ thống cho tất cả người dùng, đặc biệt là một người dùng, hãy sử dụng! Trước người liên quan. Ví dụ: nếu tôi muốn quyền truy cập vào máy tính bị từ chối đối với tất cả người dùng, ngoại trừ Nicolas và Xavier:
Nicolas *;*;!|xavier;scheduler
Bây giờ chuyển sang các khu vực lĩnh vực. Trong lĩnh vực này, việc lựa chọn ngày và giờ sẽ được phép kết nối. Trước tiên, bạn phải chỉ định ngày trong tuần, sử dụng các chữ viết tắt sau:
Mo : Monday Fr : Friday Wd : Sa/Su
Tu : Tuesday Sa : Saturday wk : Mo/Tu/We/Th/Fr
We : Wenesday Su : Sunday
Th : Thursday Al : All Days
Hãy cẩn thận đừng nhầm lẫn giữa các chữ viết tắt Wk và Wd là sai lệch! đặc biệt được xác định kém trên Internet: bạn có thể dễ dàng tìm thấy thông tin mâu thuẫn!
Sau đó, chúng tôi xác định thời hạn. Chúng phải được định dạng 24H, bao gồm 4 chữ số. Ví dụ: để hạn chế 3:17 chiều đến 6:34 tối, chúng tôi viết: 1517-1834. Để cho phép Marie chỉ kết nối vào thứ ba, từ 3:17 chiều đến 6:34 tối, chúng tôi có được kết quả:
*;*;marie;Tu1517-1834
Kết nối ngoài những giờ này sẽ bị cấm. Đối với người dùng, có thể sử dụng các toán tử | và! để chỉ ra nhiều lần (sau đó chỉ ra rằng tất cả các giờ đăng nhập được cho phép, ngoại trừ những giờ được hiển thị).
Hai ngôi sao (ký tự đại diện) ở đầu dòng mã lần lượt là các trường dịch vụ tty. Vì bạn muốn chặn tất cả quyền truy cập vào hệ thống, không cần thiết phải chỉ định dịch vụ nào hoặc bạn muốn chặn dịch vụ nào. Tuy nhiên, nếu bạn muốn ngăn chặn việc sử dụng một dịch vụ cụ thể, chỉ cần chỉ định nó như ví dụ sau:
login;tty1|tty4|tty5;marie;!Wd0000-2400
Do đó, người dùng kết hôn không thể kết nối với TTY, 4 và 5 vào cuối tuần.
Một số ví dụ về lịch trình hạn chế
mathilde được phép kết nối mỗi ngày từ 1:20 chiều đến 3:20 tối và từ 4:00 chiều đến 8:30 tối:
*;*;mathilde;Al1320-1520|Al1600-2030
Stone, Frank và Florian được phép kết nối từ 2:00 pm đến 6:45 pm trong các ngày trong tuần và 2:00 pm đến 10:15 pm cho cuối tuần:
*;*;Stone|franck|florian;Wk1400-1845|Wd1400-2215
Olive không bao giờ được phép kết nối. jessica có thể đăng nhập vào thứ Tư từ 1:00 chiều đến 4:00 chiều:
*;*;olivier;!Al0000-2400
*;*;jessica;We1300-1600
2 dòng khác nhau, trong hai thời gian khác nhau cho mỗi người dùng Hết hạn Phiên
Khi một phiên hết hạn (vượt quá thời gian trong khi người dùng đã được kết nối), PAM có thể đến tay người dùng. Mặc dù mathilde kết nối trong những giờ cho phép, nhưng hoàn toàn miễn phí khi vượt quá những giờ này! Đối với điều này, chúng tôi sẽ sử dụng một chương trình mới: ắccron. Ứng dụng này thực thi các lệnh trong khoảng thời gian. Trong trường hợp của chúng tôi, chúng tôi sẽ sử dụng lệnh skskill-KILL-u, để ngắt kết nối người dùng khi phiên hết hạn. Xử lý rất đơn giản. Đơn giản chỉ cần chỉnh sửa tập tin ọ / etc / crontab. Sau đó thêm dòng mã sau:
Minute Hour Day * * (s) root skill -KILL -u User
Như trước đây, thay thế lịch trình trường phút và thời gian mong muốn. Sau đó điền vào (các) ngày bởi (các) ngày bị cấm (s) hoặc chỉ cần nhập dấu hoa thị (*) để chỉ ra tất cả các ngày trong tuần. Cuối cùng, thay đổi trường được sử dụng bởi tài khoản đăng nhập để bị chặn và thì đấy!
Ngày không nhận thấy cùng một cách với các cron
công việc! Dưới đây là danh sách các chữ viết tắt sẽ được sử dụng với chương trình này:
mon : monday fri : friday
tue : tuesday sat : saturday
wed : wednesady sun : sunday
thu : thursday * : all hours
Một số ví dụ về cron
công việc (với ví dụ về thời gian trong phần trước)
jessica có thể đăng nhập vào thứ Tư từ 1:00 chiều đến 4:00 chiều
-> Ngắt kết nối: Thứ ba lúc 4:00 chiều.
00 16 * root * wed skill -KILL -u jessica
mathilde được phép kết nối mỗi ngày từ 1:20 chiều đến 3:20 chiều và từ 4:00 chiều đến 8:30 tối.
-> Ngắt kết nối: Hàng ngày, 8:30 tối đến 3:20 chiều ET.
20 15 * * * root skill -KILL -u mathilde
30 20 * * * root skill -KILL -u mathilde
Stone, Frank và Florian được phép kết nối từ 2:00 pm đến 6:45 pm trong các ngày trong tuần và 2:00 pm đến 10:15 pm cho cuối tuần
-> Ngắt kết nối (1): Thứ Hai, Thứ Ba, Thứ Tư, Thứ Năm và Thứ Sáu, lúc 18 giờ 45 phút. -> Ngắt kết nối (2): Thứ bảy và Chủ nhật lúc 10:15 tối.
45 18 * * mon,tue,wed,thu,fri root skill -KILL -u stone && skill -KILL -u franck && skill -KILL -u florian
15 22 * * sat,sun root skill -KILL -u stone && skill -KILL -u franck && skill -KILL -u florian
Lệnh skill-KILL-u ngắt kết nối người dùng khỏi GUI, cũng như TTY. Nó là hoàn toàn có thể sử dụng cho các quản trị viên máy chủ. Tuy nhiên, lệnh này là ngay lập tức và việc ngắt kết nối sẽ được thực hiện mà không cần thông báo trước. Do đó, tốt hơn hết là ngăn chặn việc cài đặt thiết bị này cho người dùng máy tính hoặc mạng được đề cập!
Có thể ngăn người dùng bằng một wall
lệnh được khởi chạy cron
vài phút trước khi kết thúc khung thời gian , sẽ được hiển thị trong các thiết bị đầu cuối của tất cả người dùng.
40 18 * * Mon,Tue,wed,thu,fri root echo "end of session in 5 minutes" | wall
Để ngăn người dùng GUI có thể được sử dụng thay cho lệnh wall notify-send
nằm trong gói libnotify-bin
40 18 * * Mon,Tue,wed,thu,fri stone DISPLAY=:0 notify-send "end of session in 5 minutes"
Người dùng Ubuntu 11.10
Tôi đã thấy xung quanh người dùng có vấn đề với Pam và tôi đã thấy rất nhiều lỗi về điều đó vậy tại sao lại là lý do ??? Ubuntu 11.10 đơn giản như vậy không hỗ trợ GDM nữa, trình quản lý hiển thị mới là lightGDM, vấn đề là ở chỗ lưu trữ lệnh này account required pam_time.so
tôi nghĩ là trong /etc/pam.d/lightdm
hoặc /etc/pam.d/lightdm-autologin
nhưng lỗi thế nào ???
vì vậy chỉ để xung quanh bạn có thể kiểm tra 2 tệp nhật ký LightGdm này:
- /var/log/lightdm/lightdm.log
- /var/log/lightdm/x-0.log
hoặc chạy LightGdm trong chế độ gỡ lỗi:
LightDM - bộ đệm
hoặc báo cáo lỗi:
ubfox-bug lightdm
Tôi báo cáo Bug ở đây để vượt qua ngón tay của bạn và chờ đợi ....