1. Trang chủ
  2. » Luận Văn - Báo Cáo

báo cáo bài tập nguyên lý hệ điều hành mô phỏng quản lý người dùng của windows server

24 1 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Mô phỏng quản lý người dùng của Windows Server
Tác giả Trần Minh Quang, Đặng Tiến Đạt, Đinh Văn Hiếu, Nguyễn Tiến Đạt, Nguyễn Văn Sỹ Lâm
Trường học Trường Đại Học Thăng Long
Chuyên ngành Nguyên lý hệ điều hành
Thể loại Báo cáo bài tập
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 24
Dung lượng 2,23 MB

Nội dung

Qua đó, người quản trị có thể cung cấp quyền truy cập, thay đổi mật khẩu và quản lý các thuộc tính khác của người dùng trên hệ thống.Quản lý quyền truy cập: Windows Server cho phép người

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC THĂNG LONG

BÁO CÁO BÀI TẬP

NGUYÊN LÝ HỆ ĐIỀU HÀNH

MÔ PHỎNG QUẢN LÝ NGƯỜI DÙNG CỦA WINDOWS SERVER

Mã sinh viên Họ và tên

Trang 2

MỤC LỤC

PHẦN 1 TỔNG QUAN VỀ WINDOWS SERVER 1

1.1 Windows server là gì? 1

1.2 Cách windows server quản lý người dùng 1

1.3 Ưu điểm 2

1.4 Nhược điểm 2

PHẦN 2 PHÂN TÍCH THIẾT KẾ 3

PHẦN 3 SOURCE CODE 4

3.1 Giới thiệu về source code 4

3.2 Cách cài đặt 4

3.3 Cách sử dụng 5

3.4 Giải thích 6

3.4.1 Account.h 6

3.4.2 Account.cpp 6

3.4.3 FileManager.h 11

3.4.4 FileManager.cpp 11

3.4.5 CharacterHandling.h & CharacterHandling.cpp 15

3.4.6 Draw.h & Draw.cpp 16

3.4.7 App.cpp 16

PHẦN 4 TỔNG KẾT 20

Trang 3

DANH MỤC MINH HỌA

Ảnh 2.1 Mô tả phân tích thiết kế 3

Ảnh 3.1 Minh họa mở terminal 5

Ảnh 3.2 Biên dịch và khởi chạy ứng dụng 5

Bảng 3.1 Giải thích lớp Account 11

Bảng 3.2 Giải thích lớp FileManager 15

Trang 4

PHẦN 1 TỔNG QUAN VỀ WINDOWS SERVER

1.2 Cách windows server quản lý người dùng

Quản lý người dùng trên Windows Server là một phần quan trọng trong việc triển khai vàduy trì hệ thống Windows Server cung cấp một loạt công cụ và tính năng hỗ trợ quản lýngười dùng một cách hiệu quả Dưới đây là một số phương pháp phổ biến được sử dụng đểquản lý người dùng trên Windows Server:

Quản lý tài khoản người dùng: Windows Server cho phép tạo, xóa và chỉnh sửa tàikhoản người dùng Điều này có thể được thực hiện thông qua các công cụ như "LocalUsers and Groups" hoặc "Active Directory Users and Computers" Qua đó, người quảntrị có thể cung cấp quyền truy cập, thay đổi mật khẩu và quản lý các thuộc tính kháccủa người dùng trên hệ thống

Quản lý quyền truy cập: Windows Server cho phép người quản trị quản lý quyền truycập cho từng người dùng hoặc nhóm người dùng Sử dụng các công cụ như "LocalSecurity Policy" hoặc "Group Policy Management", người quản trị có thể cấu hình cácquyền và hạn chế truy cập vào các tài nguyên như tệp tin, thư mục, máy in và ứngdụng

Quản lý chính sách mật khẩu: Windows Server cho phép thiết lập và thực thi chínhsách mật khẩu để đảm bảo tính bảo mật của người dùng Người quản trị có thể đặt yêucầu về độ dài, độ phức tạp và tuổi tối đa của mật khẩu Hơn nữa, cũng có thể cấu hìnhcác thời gian hết hạn và khóa tài khoản sau một số lần đăng nhập không thành công.Theo dõi và ghi nhật ký hoạt động: Windows Server cung cấp khả năng theo dõi và ghinhật ký các hoạt động người dùng trên hệ thống Công cụ "Event Viewer" cho phépngười quản trị xem và phân tích các sự kiện liên quan đến người dùng như đăng nhập,đăng xuất, thay đổi mật khẩu và quyền truy cập

Tự động hóa quản lý người dùng: Windows Server cung cấp các công cụ nhưPowerShell và giao diện lập trình ứng dụng (API) để tự động hóa quá trình quản lýngười dùng Sử dụng các kịch bản và mã lệnh, người quản trị có thể thực hiện các tác

vụ quản lý người dùng hàng loạt và tự động

1

Trang 5

Quản lý người dùng trên Windows Server là một phần quan trọng để đảm bảo tính bảo mật,hiệu suất và quản lý hiệu quả của hệ thống Việc sử dụng các công cụ và tính năng củaWindows Server giúp người quản trị nắm vững quyền kiểm soát và quản lý người dùng trênmôi trường hệ điều hành Windows Server.

1.3 Ưu điểm

Quyền kiểm soát linh hoạt: cung cấp các công cụ và tính năng cho phép người quản trị

có quyền kiểm soát linh hoạt đối với tài khoản người dùng, có thể xác định các quyềntruy cập chi tiết cho từng tài khoản người dùng

Tích hợp với Active Directory: cung cấp một hệ thống quản lý người dùng phân tán,linh hoạt và mạnh mẽ Active Directory cho phép quản lý người dùng, nhóm ngườidùng, tài khoản và chính sách trên nhiều máy chủ và thiết bị

Công cụ quản lý tổng thể: có nhiều công cụ quản lý tổng thể như "Local Users andGroups", "Group Policy Management" và "PowerShell" Nhờ đó, người quản trị có thểthực hiện các tác vụ quản lý người dùng một cách dễ dàng, từ tạo và xóa tài khoản, đếncấu hình quyền truy cập và quản lý chính sách mật khẩu

Tự động hóa và quản lý hàng loạt: Windows Server cung cấp các công cụ nhưPowerShell và giao diện lập trình ứng dụng (API) cho phép tự động hóa và quản lýngười dùng hàng loạt Điều này giúp tiết kiệm thời gian và công sức cho việc quản lý

và triển khai người dùng trên nhiều máy chủ

1.4 Nhược điểm

Đòi hỏi kiến thức chuyên sâu: Quản lý người dùng trên Windows Server đòi hỏi ngườiquản trị có kiến thức và hiểu biết về hệ thống Windows Server Điều này có thể tạo ramột ngưỡng độ phức tạp và đòi hỏi thời gian và đào tạo để nắm vững các khái niệm vàcông cụ liên quan

Phụ thuộc vào cấu hình và phiên bản: Cách quản lý người dùng trên Windows Server

có thể khác nhau tùy thuộc vào cấu hình và phiên bản cụ thể của Windows Server.Đòi hỏi quản lý và duy trì hệ thống: đòi hỏi quản lý và duy trì hệ thống một cách đềuđặn Điều này bao gồm việc cập nhật bảo mật, giám sát hoạt động và xử lý sự cố liênquan đến quản lý người dùng

Khả năng mở rộng và quy mô: Quản lý người dùng có thể trở nên phức tạp và khókhăn khi số lượng người dùng tăng lên Cần phải đảm bảo tính ổn định của hệ thống

Trang 6

PHẦN 2 PHÂN TÍCH THIẾT KẾ

Ảnh 2.1 Mô tả phân tích thiết kế

3

Trang 7

PHẦN 3 SOURCE CODE

3.1 Giới thiệu về source code

Ngôn ngữ sử dụng trong dự án này là C++

Source code bao gồm một loạt các chức năng quan trọng như sau:

Trang chủ: đây là trang đầu tiên hiển thị sau khi người dùng đăng nhập thành công.Trang chủ cung cấp một giao diện người dùng dễ sử dụng để truy cập các chức năngkhác;

Đăng ký: chức năng này cho phép người dùng tạo một tài khoản mới trong hệ thống.Người dùng cần cung cấp thông tin cần thiết và tạo một tài khoản với tên đăng nhập vàmật khẩu duy nhất;

Đăng nhập: chức năng này cho phép người dùng đăng nhập vào tài khoản đã đăng ký.Người dùng cần cung cấp tên đăng nhập và mật khẩu chính xác để truy cập vào hệthống;

Đăng xuất: khi người dùng đăng nhập thành công, chức năng này cho phép họ đăngxuất khỏi tài khoản hiện tại và quay trở lại trang đăng nhập;

Quên mật khẩu: nếu người dùng quên mật khẩu, chức năng này sẽ giúp họ khôi phụcmật khẩu bằng cách yêu cầu cung cấp các thông tin xác thực Sau đó, hệ thống sẽ cungcấp cho họ một lựa chọn để thay đổi mật khẩu mới;

Quản lý file: chức năng này cho phép người dùng quản lý các file trong hệ thống.Người dùng có thể tạo, xóa, sửa đổi và tìm kiếm các file theo nhu cầu của mình;Quản lý người dùng: chức năng này cho phép quản trị viên của hệ thống thực hiện cáchoạt động quản lý người dùng như phân quyền, xóa người dùng, chỉnh sửa thông tinngười dùng, và các hoạt động tương tự

Điều này sẽ giúp người dùng dễ dàng tương tác với ứng dụng và sử dụng các chứcnăng theo nhu cầu của họ

3.2 Cách cài đặt

Bước 1: Mở thư mục chứa mã nguồn (source code)

Bước 2: Mở Command Prompt bằng một trong hai cách sau:

Cách 1: Nhập "cmd" vào thanh địa chỉ và nhấn Enter

Cách 2: Chuột phải (hoặc nhấn phím Shift + chuột phải) và chọn "Open in terminal"

Trang 8

Ảnh 3.2 Minh họa mở terminal

Bước 3: Nhập các câu lệnh sau vào terminal:

Để biên dịch mã nguồn: g++ App.cpp -o App

5

Trang 9

3.4 Giải thích

3.4.1 Account.h

Tiêu chuẩn thư viện và namespace: các đoạn mã #include đưa vào các tiêu chuẩn thưviện C++ như <iostream>, <vector>, và <utility> Chúng cho phép sử dụng các chứcnăng và đối tượng có sẵn trong thư viện

Guard macros:

Dòng #ifndef ACCOUNT_H kiểm tra xem ACCOUNT_H đã được định nghĩa trước

đó chưa Nếu chưa, tiếp tục biên dịch file;

Dòng #define ACCOUNT_H định nghĩa ACCOUNT_H để tránh việc biên dịch lạiphần khai báo lớp nếu file đã được đưa vào từ trước;

Dòng #endif kết thúc guard macros

Khai báo lớp Account:

Dòng class Account bắt đầu khai báo lớp Account;

Trong phần này, lớp Account được định nghĩa với các thành viên bảo vệ (protected) vàcác phương thức công khai (public)

Khai báo các phương thức và biến thành viên của lớp Account:

Các phương thức và biến thành viên của lớp Account được khai báo trong phần publiccủa lớp;

Các phương thức bao gồm hàm khởi tạo (constructor), các phương thức thêm/sửa/xóathông tin tài khoản, các phương thức kiểm tra thông tin, đọc/ghi tệp tin, và các phươngthức khác liên quan đến hoạt động của tài khoản

Kết thúc file: ký tự #endif kết thúc file "Account.h" và đóng guard macros.3.4.2 Account.cpp

File "Account.cpp" chứa các định nghĩa chi tiết cho các phương thức của lớp Account Dướiđây là giải thích ngắn gọn về file này

Tiêu chuẩn thư viện và namespace: Các đoạn mã #include đưa vào các thư viện vàfile h cần thiết cho việc triển khai các phương thức của lớp Account Các thư viện baogồm <iostream>, <fstream>, <sstream>, <vector>, <string.h>, <chrono>, và các file hliên quan đến dự án như "Account.h", "CharacterHandling.h", và "Struct.h".Implement các phương thức của lớp Account: Các phương thức của lớp Account đượctriển khai ở đây Đây là nơi thực hiện các thao tác như thêm/sửa/xóa thông tin, kiểm

Trang 10

tra thông tin, đọc/ghi tệp tin, và các thao tác khác liên quan đến hoạt động của tàikhoản.

Kết thúc file: file "Account.cpp" kết thúc sau khi triển khai các phương thức và địnhnghĩa hàm toàn cục

Để hiểu rõ hơn về các hàm trong file “Account.cpp”, dưới dây là chi tiết các hàm:

Account::Account()

Đây là hàm khởi tạo (constructor) của lớp Account.Hàm thiết lập giá trị ban đầu cho biến thành viên isLogin vàđọc dữ liệu từ tệp tin "info.txt" bằng cách gọi hàmreadFileAccount()

Account::getIsLogin() Hàm này trả về giá trị hiện tại của biến thành viên isLogin.

Trả về true nếu tài khoản đã đăng nhập và false nếu chưa

Account::setInfo

(UserInfo info)

Hàm này thiết lập giá trị cho biến thành viên info.Tham số info là một đối tượng UserInfo chứa thông tin tàikhoản cần thiết lập

Trang 11

Trả về các mã lỗi để xác định kết quả kiểm tra.

Mã lỗi: 1 (đúng), -1 (không tìm thấy), -2 (sai tên đăng nhậphoặc mật khẩu), -3 (yêu cầu thay đổi mật khẩu), -4 (tài khoản

bị vô hiệu hóa)

Trả về true nếu mã xác minh dúng và false nếu sai

Account::readFileAccount()

Hàm này đọc dữ liệu từ tệp tin "info.txt" và lưu thông tin tàikhoản vào vector list của lớp Account

Dữ liệu từ tệp tin được chuyển thành các đối tượng UserInfo

và được thêm vào vector list

Trang 12

Hàm Giải thích

Account::writeFileAccount()

Hàm này ghi dữ liệu từ vector list vào tệp tin "info.txt".Mỗi đối tượng UserInfo trong vector list sẽ được ghi thànhmột dòng trong tệp tin

Account::printList() Hàm này in ra màn hình danh sách các tài khoản trong vector

(string username, string

fullName, string email, string

Hàm này thay đổi mật khẩu của tài khoản

Tham số oldPassword là mật khẩu cũ, newPassword là mậtkhẩu mới, reNewPassword là mật khẩu mới nhập lại.Kiểm tra xem mật khẩu cũ có khớp với mật khẩu hiện tại củatài khoản hay không

Kiểm tra xem mật khẩu mới và mật khẩu mới nhập lại cókhớp nhau hay không

Kiểm tra độ dài của mật khẩu mới, xem nó có ít nhất 8 ký tự,

có chứa số và ký tự đặc biệt không

Nếu tất cả kiểm tra đều thành công, hàm sẽ cập nhật mậtkhẩu mới cho tài khoản và ghi vào vector list và tệp tin

"info.txt"

Account::forgotPassword

(string type, string username)

Hàm này xử lý quên mật khẩu của tài khoản

Tham số type có thể là email hoặc số điện thoại, username làtên đăng nhập của tài khoản

9

Trang 13

Hàm Giải thích

Hàm kiểm tra xem thông tin type và username có khớp vớibất kỳ tài khoản nào trong vector list hay không.Nếu khớp, hàm tạo mã xác minh ngẫu nhiên cho tài khoản vàtrả về 1 (thành công)

Nếu không khớp, hàm trả về các mã lỗi (-1: thông tinemail/số điện thoại không tồn tại, -2: tên đăng nhập khôngtồn tại)

Tham số newPassword và reNewPassword là mật khẩu mới

Nếu tất cả kiểm tra đều thành công, hàm sẽ cập nhật mậtkhẩu mới cho tài khoản và ghi vào vector list và tệp tin

Hàm ghi thời gian hiện tại và hoạt động vào tệp tin log củatài khoản tương ứng

Trang 14

Hàm Giải thích

Account::activityLog

(vector<pair<string, string>>

&data, string username):

Hàm này truy cập vào tệp tin log và lưu các hoạt động vàovector data

Tham số data là một vector chứa cặp (thời gian, hoạt động).Tham số username là tên đăng nhập của tài khoản, mặc định

Khai báo lớp FileManager: chỉ định rằng nó kế thừa từ lớp Account

Khai báo các phương thức của lớp FileManager:

Các phương thức của lớp FileManager được khai báo trong phần public của lớp;Các phương thức bao gồm các thao tác kiểm tra quyền truy cập, lấy thông tin về tệptin, ghi thông tin vào tệp tin, tạo tệp tin, di chuyển, sao chép, đổi tên và xóa tệp tin, vàgán quyền truy cập cho người dùng khác

Kết thúc file: ký tự #endif kết thúc file "FileManager.h" và đóng guard macros.Lớp FileManager được kế thừa từ lớp Account, vì vậy nó sẽ có các phương thức và biếnthành viên của lớp Account cũng như các phương thức mới được định nghĩa trong lớpFileManager

3.4.4 FileManager.cpp

Dưới đây là giải thích từng phương thức trong file "FileManager.cpp":

11

Trang 15

fileAccess: Đối tượng Permission chứa danh sách ngườidùng có quyền truy cập.

Phương thức sẽ kiểm tra xem người dùng có tên username

có nằm trong danh sách người dùng có quyền truy cập vàotệp tin hay không

Trả về true nếu người dùng có quyền truy cập, ngược lạitrả về false

FileManager::getInfoFile

(string dirName, string

fileName, FileInfo &fileInfo,

Permission &fileAccess)

Phương thức này lấy thông tin về tệp tin từ tên thư mục vàtên tệp tin

dirName: Tên thư mục chứa tệp tin

fileName: Tên tệp tin

fileInfo: Tham chiếu đến đối tượng FileInfo để lưu trữthông tin về tệp tin

fileAccess: Tham chiếu đến đối tượng Permission để lưutrữ quyền truy cập

Phương thức sẽ đọc thông tin tệp tin từ các tệp tin dữ liệu

và nội dung tương ứng

Thông tin bao gồm tên tác giả, người dùng được phépxem, chỉnh sửa, xóa, đổi tên tệp tin, và nội dung tệp tin.Thông tin sẽ được lưu trong các biến thành viên của đốitượng fileInfo và fileAccess

FileManager::writeInfoFile

(string dirName, string

fileName, FileInfo fileInfo,

Trang 16

Hàm Giải thích

fileName: Tên tệp tin

fileInfo: Đối tượng FileInfo chứa thông tin về tệp tin.fileAccess: Đối tượng Permission chứa quyền truy cậpvào tệp tin

Phương thức sẽ ghi thông tin về tệp tin, bao gồm tên tácgiả và danh sách người dùng được phép xem, chỉnh sửa,xóa, đổi tên tệp tin, vào tệp tin dữ liệu tương ứng.Nội dung tệp tin sẽ được ghi vào tệp tin tương ứng

dirName: Tên thư mục chứa tệp tin mới

fileName: Tên tệp tin mới

Phương thức sẽ tạo một tệp tin mới với đường dẫn đượcxác định bởi dirName và fileName

FileManager::moveFile

(string currentDir, string

targetDir, string fileName,

FileInfo fileInfo, Permission

fileAccess)

Phương thức này di chuyển tệp tin từ một thư mục hiện tạiđến một thư mục đích

currentDir: Tên thư mục hiện tại chứa tệp tin

targetDir: Tên thư mục đích để di chuyển tệp tin.fileName: Tên tệp tin cần di chuyển

fileInfo: Đối tượng FileInfo chứa thông tin về tệp tin.fileAccess: Đối tượng Permission chứa quyền truy cậpvào tệp tin

Phương thức sẽ kiểm tra quyền truy cập của người dùng

và tên tác giả để xác định xem có thể di chuyển tệp tin haykhông

Nếu được phép, phương thức sẽ di chuyển tệp tin từ thưmục hiện tại sang thư mục đích

FileManager::copyFile

(string currentDir, string

Phương thức này sao chép tệp tin từ một thư mục hiện tạisang một thư mục đích

13

Ngày đăng: 01/05/2024, 21:46

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w