Trêng ®¹i häc má - ®Þa chÊt
Khoa Công Nghệ Thông Tin
(&)
BÀI TẬP LỚN
Mã nguồn mở
Đề tài: Nghiên cứu và thiết lập hệ thống người dùng trên hệ điều hành Linux
Ubuntu.
Sinh viên: Giáo viên hướng dẫn:
1. Dương Thị Thảo GV. Đặng Văn Nam
MSSV: 1021050309
2. Trần Xuân Đức
MSSV: 1021050264
Hà nội, tháng 5 năm 2013
MỤC LỤC
Trong những năm gần đây HDH Linux đang ngày càng trở nên phổ biến trong
trường học và môi trường công nghiệp. hệ Unix này, với chức năng và tính ổn
định cho phép nó tồn tại song song với các hệ điều hành thương mại khác. Hơn
nữa, sự phổ biến của mã nguồn Linux trên Internet đã đóng góp rất nhiều cho sự
phổ cập của linux.
Ubuntu là một hệ điều hành máy tính dựa trên Debian GNU/Linux, một bản
phân phối Linux thông dụng. Ubuntu là một hệ điều hành do cộng đồng phát
triển và là hệ điều hành tuyệt vời cho các máy tính xách tay, máy tính để bàn và
cả máy chủ. Bất kỳ bạn sử dụng nó ở đâu, Ubuntu đều có tất cả các ứng dụng
mà bạn luôn cần, từ các ứng dụng soạn thảo văn bản tới thư điện tử, từ phần
mềm máy chủ web tới các công cụ lập trình.
Trong bài báo cáo dưới đây chúng em xin trình bày về đề tài: “Nghiên cứu và
thiết lập hệ thống người dùng trên hệ điều hành ubuntu” .
Với khoảng thời gian không nhiều nhưng với sự nỗ lực của bản thân và sự
hướng dẫn tận tình của thầy giáo, chúng em đã hoàn thành bài tập. Tuy nhiên do
thời gian còn hạn chế nên phạm vi nghiên cứu còn nhiều vấn đề chưa giải quyết
được triệt để. Chúng em mong được sự chỉ bảo của thầy để chúng em hoàn
3
Linux là hệ điều hành đa người dùng, nghĩa là nhiều người có thể đăng nhập
và cùng lúc sử dụng một hệ thống. Ưu điểm này có vẻ không phát huy mấy trên
máy PC ở nhà, song ở trong công ty hoặc trường học thì nó giúp cho việc dùng
chung tài nguyên, từ đó giảm thiểu chi phí đầu tư vào máy móc.
Ngay cả khi ở nhà, bạn cũng có thể đăng nhập vào Linux với nhiều trương
khoản (account) khác nhau qua các terminal ảo và tổ chức dịch vụ trên mạng
riêng cho mình bằng cách sử dụng Linux với nhiều modem.
Có thể kể tên các hệ điều hành miễn phí khác như FreeBSD, OpenBSD,
NetBSD v.v. Cũng phải kể đến ảnh hưởng lớn công ty Sun (chủ nhân của ngôn
ngữ Java) vì Sun muốn cung cấp hệ điều hành Solaris dùng miễn phí trên máy
PC. Phiên bản Solaris chạy trên chip Intel sẽ trở nên một đối thủ đáng gờm của
Linux với mã nguồn mở và nhờ danh tiếng là hệ điều hành rất ổn định và tương
thích với hệ Solaris chạy trên chip Sun SPARC.
Bản thân việc độc lập với những công ty lớn cũng tiềm tàng một điểm yếu của
Linux. Khi chưa có một mạng lưới riêng cung cấp dịch vụ bảo trì thì tất nhiên
người ta sẽ ngại sử dụng Linux. Tuy thế, với sự phát triển của Internet, các tổ
chức hỗ trợ người dùng Linux đã tạo nên các Website và forum để tháo gỡ cho
bạn nhiều vấn đề khó khăn.
Hơn nữa Linux có thể không chạy tốt với một số phần cứng ít phổ biến, thậm
chí việc hỏng hóc hoặc xoá mất dữ liệu đôi khi cũng xảy ra, bởi vì Linux luôn
thay đổi và khó được thử nghiệm đầy đủ trước khi đưa lên Internet.
Linux không phải là đồ chơi sẵn có, nó được thiết kế nhằm mang đến cho
người sử dụng cảm giác cùng tham gia vào một dự án mới. Tuy nhiên thực tế
cho thấy Linux chạy tương đối ổn định và cho bạn một cơ may không tốn kém
để học và sử dụng UNIX, một họ hệ điều hành chuyên nghiệp hiện nay đang
được rất nhiều người dùng trên các máy chủ và trạm tính toán cao cấp.
4
II. Các bản phát hành Linux
Nhiều người đã biết đến các nhà sản xuất phần mềm RedHat, ManDrake,
thông tin cá nhân hay quốc gia của họ có bị gửi về một tổ chức hay một quốc gia
nào khác hay không. Thí dụ Trung Quốc đã phát triển hệ điều hành Hồng Kỳ từ
kernel của Linux để không bị lệ thuộc Microsoft Windows, cũng như họ đang tự
nghiên cứu bộ vi xử lý Hồng Tâm để thay thế cho họ chip Intel.
Tại Việt Nam, việc nghiên cứu xây dựng một hệ điều hành từ kernel Linux đã
thu được một số thành công nhất định. Chắc bạn cũng đã biết đến Vietkey Linux
và CMC RedHat Linux (phiên bản tiếng Việt của RedHat Linux 6.2).
Gần đây, các công ty nổi tiếng như IBM, Sun, Intel, Oracle cũng bắt đầu
nghiên cứu Linux và xây dựng các phần mềm ứng dụng cho nó.
IV. Lợi thế của Linux
Tại sao có thể chọn Linux thay vì chọn một trong những hệ điều hành khác
chạy trên PC như DOS, Windows 95/98, Windows NT, hoặc Windows 2000 ?
Linux cung cấp cho bạn một môi trường học lập trình mà hiện nay chưa có hệ
nào sánh được. Với Linux, bạn có đầy đủ cả mã nguồn, trong khi đó các sản
phẩm mang tính thương mại thường không bao giờ tiết lộ mã nguồn.
6
Cuối cùng, Linux mang đến cho bạn cơ hội sống lại bầu không khí của cuộc
cách mạng vi tính trước kia. Cho đến giữa thập niên 1970, máy tính điện tử còn
là sân chơi riêng của các tổ chức lớn, chẳng hạn như chính quyền, tập đoàn
doanh nghiệp và trường đại học. Người dân thường đã không thể sử dụng những
thành tựu kỳ diệu của công nghệ thông tin.
Song với sự xuất hiện của bộ vi xử lý đầu tiên (1971) rồi máy tính cá nhân
(1975), mọi việc đã thay đổi. Thoạt tiên, đó là đất dụng võ của các tay hacker
say mê vi tính. Họ thậm chí có thể tự làm ra những máy tính cá nhân và hệ điều
hành đơn giản, nhưng các hệ này chưa làm gì được nhiều ở góc độ hiệu năng.
Với kinh nghiệm tích luỹ dần theo năm tháng, một số hacker đã trở thành nhà
doanh nghiệp, rồi cùng với khả năng tích hợp ngày càng cao của các vi mạch,
PC đã trở thành phổ biến (rất tiếc hiện nay xã hội thường nghĩ xấu về chữ
"hacker", xin mời bạn xem thêm mục "Ai phát triển Linux?" ở cuối chương này
để phân biệt rõ hơn hacker và cracker là những ai).
trình, bao gồm các bộ biên dịch cho nhiều ngôn ngữ lập trình hàng đầu hiện nay,
chẳng hạn như C, C++. Bạn cũng có thể dùng ngôn ngữ Pascal thông qua trình
biên dịch FreePascal. Nếu bạn không thích sử dụng những ngôn ngữ vừa kể,
Linux có sẵn các công cụ như Flex và Bison để bạn xây dựng ngôn ngữ riêng
cho mình.
Hai khái niệm hiện nay được đề cập rất nhiều là hệ thống mở (open system)
và tính liên tác (interoperability) đều gắn với khả năng của những hệ điều hành
có thể liên lạc với nhau. Phần lớn các hệ mở đòi hỏi phải thoả mãn tương thích
tiêu chuẩn IEEE POSIX (giao diện hệ điều hành khả chuyển). Linux đáp ứng
những tiêu chuẩn ấy và được lưu hành với mã nguồn mở.
V. Ai phát triển Linux
8
Linux là một hệ thống được xây dựng bởi các hacker và cho các hacker. Mặc
dù hiện nay trong xã hội từ hacker thường có hàm ý tiêu cực, song nếu theo
nghĩa ban đầu thì hacker không phải là tội phạm. Hacker tìm hiểu những gì có
bên trong một hệ thống cho đến từng chi tiết và có khả năng sửa chữa nếu hệ
thống ấy bị hỏng hóc. Đa số các hacker không xâm nhập hệ thống vì tiền bạc
hoặc ác ý, mặc dù sau này đã có những người vượt qua giới hạn ấy và bị tập thể
các hacker gọi là cracker (tin tặc) hay hacker mũ đen. Giới hacker cảm thấy bị
xúc phạm khi mọi người xem họ như lũ phá hoại và gọi chung là tin tặc.
Những hacker chân chính, còn gọi là hacker mũ trắng, rất có công trong việc
phát hiện kẽ hở của các phần mềm, giúp mọi người và chủ nhân của những phần
mềm ấy cảnh giác trước sự tấn công của giới tin tặc. Cũng nhờ công cuộc bảo vệ
này mà Linux và các ứng dụng Linux (nói rộng hơn là các phần mềm nguồn mở)
càng ngày càng an toàn hơn.
Phần lớn những người sử dụng UNIX chỉ được cấp cho một số trương khoản
với quyền hạn thu hẹp, do đó một người bình thường không thể thử nghiệm đầy
đủ các câu lệnh UNIX. Với Linux bạn có một phiên bản hoạt động tương tự
UNIX nhưng cho phép quản trị, sử dụng, vào ra thoải mái không giới hạn, một
điều hiếm gặp trong cuộc sống. Linux cho bạn biết thế nào là làm hacker, song
APT/Synaptic để quản lý các gói đã cài. Ubuntu đã đóng góp trực tiếp và lập tức
tất cả thay đổi đến Debian, chứ không chỉ tuyên bố chúng lúc phát hành, mặc dù
các gói của Debian và Ubuntu không cần thiết “tương thích nhị phân” với nhau.
Nhiều nhà phát triển Ubuntu cũng là người duy trì các gói khoá (gói chủ chốt)
của chính Debian. Dù sao, Ian Murdock, nhà sáng lập của Debian, đã chỉ trích
Ubuntu vì sự không tương thích giữa các gói của Ubuntu và Debian, ông nói
rằng Ubuntu đã làm sai lệch quá xa so với Debian Sarge, do đó không còn giữ
được sự tương thích.
Hiện tại, Logo của Ubuntu vẫn giữ nguyên như bản đầu tiên, Ubuntu 4.10
(Warty Warthog).
10
II. Các phiên bản Ubuntu
a. Phiên bản thông thường
Ubuntu 6.06 LTS Bình minh của Ubuntu (Dawn of Ubuntu)
Các phiên bản Ubuntu được đặt tên theo dạng Y.MM (tên), trong đó Y tương
ứng với năm phát hành, và MM tương ứng với tháng phát hành. Tên trong ngoặc
là tên hiệu được đặt cho phiên bản trước khi phát hành chính thức. Trong tháng
10 năm 2004, Ubuntu phát hành phiên bản đầu tiên, Ubuntu 4.10. Mỗi phiên bản
Ubuntu thông thường được hỗ trợ trong vòng 18 tháng, chúng cũng được phát
hành định kỳ 6 tháng 1 lần và việc nâng cấp lên phiên bản mới hoàn toàn miễn
phí. Người dùng được khuyến khích nâng cấp lên phiên bản mới để có thể sử
dụng các tính năng mới nhất mà ứng dụng cung cấp. Phiên bản Ubuntu chính
thức mới nhất hiện tại là Ubuntu 12.00 (Oneiric Ocelot).
b. Phiên bản hỗ trợ lâu dài
Ubuntu cũng có những phiên bản hỗ trợ dài hạn “Long Term Support”, hỗ trợ
trong vòng 3 năm đối với máy tính để bàn và 5 năm đối với máy chủ. Ubuntu
10.04 (Lucid Lynx), ra mắt vào ngày 29, tháng 4 năm 2010, là phiên bản Long
Term Support hỗ trợ đến hiện tại. Canonical sẽ ra mắt phiên bản Long Term
Support mỗi 2 năm một lần, và dự kiến sẽ ra mắt bản Long Term Support tiếp
theo vào năm 2012.
phiên bản Ubuntu 12.10, tập tin ảnh đĩa chỉ có thể được ghi lên đĩa DVD, USB,
hoặc đĩa cứng, vì dung lượng của nó đã vượt quá giới hạn tối đa của đĩa CD.
Đĩa cài đặt Ubuntu yêu cầu máy tính có từ 256 MB RAM trở lên. Quá trình
cài đặt Ubuntu sử dụng giao diện đồ họa, tốc độ cài đặt phụ thuộc vào cấu hình
máy tính, trung bình là từ 20 - 30 phút.
Ngoài ra, người dùng có thể cài đặt Ubuntu lên một đĩa ảo bên trong
Windows bằng bộ cài đặt Wubi. Mặc dù tốc độ xử lý có thể bị giảm sút so với
cài đặt đầy đủ, nhưng bù lại, cài đặt bên trong Windows không yêu cầu người
dùng phải phân vùng lại đĩa cứng và có thể được gỡ bỏ dễ dàng từ ngay trong
Windows.
Ubuntu cung cấp một tập hợp đầy đủ các tính năng có thể hoạt động ngay lập
tức từ bản cài đặt chuẩn, nhưng lại vừa vặn trong 1 đĩa CD. Có một đĩa chạy
trực tiếp và một đĩa cài đặt truyền thống cho mỗi lần phát hành. CD chạy trực
tiếp cho phép người dùng xem xét phần cứng của họ có tương thích với hệ điều
hành hay không trước khi cài đặt lên đĩa cứng. Đĩa Ubuntu, Edubuntu được gửi
miễn phí cho bất cứ ai yêu cầu, và tập tin ảnh đĩa cũng có sẵn để tải về. Ubuntu
khi chạy cần 256 MB RAM, và khi cài đặt lên đĩa cứng, chiếm 3GB dung lượng
đĩa trống.
Quá trình cài đặt Ubuntu sử dụng giao diện đồ họa, tốc độ cài đặt nhanh hay
chậm sẽ tuỳ thuộc vào cấu hình máy tính, trung bình là từ 20 – 30 phút.
c. Giao diện
13
Ubuntu sử dụng giao diện đồ họa thân thiện GNOME, qua đó hướng đến sự
đơn giản hóa trong quá trình sử dụng. Đặc điểm có thể nhận thấy rõ ở giao diện
mặc định của Ubuntu là các màu chuyển giữa nâu và cam. Ubuntu đi kèm với
Compiz-Fusion, để tạo sự bóng bẩy trong quá trình sử dụng.
Cho đến tháng 4, 2005, Ubuntu có một gói tùy chọn được gọi là ubuntu-
calendar, gói này tải về một hình nền mới vào mỗi tháng, phù hợp với chủ đề
màu nâu của giao diện. Các hình nền này thể hiện những người mẫu bán khỏa
thân và nó bị chỉ trích như “risqué (khiêu gợi không thích hợp, thiếu tế nhị)”.
Các gói được quy về các thành phần như sau:
• Phần mềm tự do Phần mềm không tự do
• Được hỗ trợ Main Restricted
• Không được hỗ trợ Universe Multiverse
Phần mềm “tự do” ở đây chỉ bao gồm những phần mềm thoả yêu cầu giấy
phép của Ubuntu, nói chung, tương ứng với chính sách phần mềm tự do của
Debian. (Dù sao, cũng có một ngoại lệ cho Main; nó “cũng có thể bao gồm các
firmware nhị phân, các phông chữ (các phần được dùng bởi các thành phần
của Main) không được phép sửa đổi nếu không có sự cho phép của tác giả” khi
việc phân phối lại chúng không bị gây trở ngại.”)
Phần mềm không tự do thường không được hỗ trợ (Multiverse), nhưng cũng có
ngoại lệ (Restricted) cho một số phần mềm không tự do quan trọng, như driver
của các thiết bị, không có chúng, người dùng không thể sử dụng Ubuntu trên hệ
thống của họ, đặc biệt là các driver card đồ hoạ nhị phân. Mức độ hỗ trợ bị giới
hạn hơn main, vì các nhà phát triển không thể truy cập vào mã nguồn.
Thường thì Main và Restricted chứa tất cả phần mềm cho một hệ thống Linux
16
thông thường. Các phần mềm khác có cùng chức năng và các phần mềm chuyên
dụng được liệt kê trongUniversevà Multiverse.
Ngoài các kho chính thức ra còn có Ubuntu Backports, một dự án được công
nhận chính thức, liệt kê các phiên bản mới hơn của một vài phần mềm nào đó
chỉ có trong phiên bản không ổn định của Ubuntu. Các kho không thể bao gồm
tất cả nhưng nó chứa hầu hết các gói được người dùng yêu cầu, các gói này
được liệt kê chỉ khi chúng đáp ứng được các yêu cầu về chất lượng.
• Các phần mềm độc quyền
Ubuntu có một hệ thống chứng nhận cho phần mềm của bên thứ ba. Ubuntu
chứng nhận phần mềm độc quyền sẽ làm việc tốt trong Ubuntu. Dù sao, vẫn có
nhiều chương trình quen thuộc với người dùng trên các hệ điều hành không tự
do, như Microsoft Windows, không tương thích và chưa được Ubuntu chứng
nhận. Một vài phần mềm độc quyền không giới hạn bản phân phối được đưa vào
Trường thứ 1 : tên người dùng được đặt tối đa là 8 ký tự, được dùng các ký
tự viết hoa nhưng thông thường tên người dùng được đặt bằng các ký tự viết
thường. Tên người dùng trong file này khớp với tên người dùng trong file
/etc/passwd. Trong ví dụ trường thứ nhất là “nobody”.
Trường thứ 2 : mật khẩu của người dùng, mật khẩu này đã được mã hóa sử
dụng thuật toán MD5 và các thuật toán khác.
Nếu thông tin trong trường thứ 2 là ký tự trắng (không có ký tự) : tài khoản
người dùng chưa được đặt mật khẩu, người dùng chỉ cần sử dụng username để
đăng nhập vào hệ thống.
Nếu thông tin trong trường thứ 2 là ký tự * : tài khoản người dùng đã bị vô
hiệu hóa trên hệ thống.
Trường thứ 3 : số lượng ngày kể từ khi mật khẩu được thay đổi lần cuối cùng
(lần thay đổi mật khẩu cuối cùng được tính từ ngày 1-01-1970). Trong ví dụ
trường thứ 3 bằng “15093” ngày.
Trường thứ 4 : số lượng ngày tối thiểu được yêu cầu giữa các lần thay đổi
mật khẩu (số lượng ngày còn lại trước khi người dùng được phép thay đổi mật
khẩu). Trong ví dụ trường thứ 4 bằng “0” có nghĩa người dùng được phép thay
đổi mật khẩu bất kỳ lúc nào.
Trường thứ 5 : số lượng ngày tối đa mà mật khẩu còn giá trị (sau khi người
dùng bị bắt buộc thay đổi mật khẩu). Trong ví dụ trường thứ 5 bằng “99999”
ngày cho biết người dùng có thể sử dụng mật khẩu của họ mà không phải thay
đổi trong rất nhiều năm.
Trường thứ 6 : số lượng ngày trước khi mật khẩu bị hết hạn sử dụng mà
người dùng sẽ được cảnh báo để phải thay đổi mật khẩu. Trong ví dụ trường thứ
6 bằng “7”.
Trường thứ 7 : số lượng ngày mà tài khoản người dùng bị vô hiệu hóa sau
khi mật khẩu hết hạn sử dụng.
19
Trường thứ 8 : số lượng ngày mà tài khoản người dùng bị vô hiệu hóa kể từ
ngày 1-01-1970.
chắn không nằm trong root group.
II. Tạo tài khoản người dùng mới
Để tạo mới 1 tài khoản, các bạn hãy chọn System –> Administration -> User
and Groups -> Add:
Đặt tên cho tài khoản đó và đánh dấu ô encrypt để tăng tính bảo mật cho thư
mục home của tài khoản đó:
21
Nhấn nút Advanced Settings để điều chỉnh các thuộc tính khác:
Các module quản lý trực tiếp quyền truy cập của tài khoản Anna có trong
thẻ User Privileges:
22
Lời khuyến cáo cho mọi người: nên bỏ bớt quyền Administer System khỏi tất
cả các tài khoản bình thường, để đảm bảo rằng những người khác không thể can
thiệp và thay đổi các thiết lập cố định của hệ thống.
Mỗi file trong Linux đều được thiết lập quyền truy cập bởi 1 tài khoản hoặc 1
nhóm người dùng nhất định, người dùng có thể sử dụng lệnh ls -l để hiển thị
toàn bộ các thiết lập này từ Terminal:
Theo thứ tự, cú pháp này sẽ được đọc từ trái sang phải, mỗi thành phần trong
câu lệnh mang ý nghĩa như sau:<permissions> 1 <file owner> <file group>
<file size> <file date> <file name>
23
Ví dụ, trong ví dụ trên đã chỉ ra rằng có 1 file với tên anki, các quyền truy cập
được thiết lập là rwxr-xr-x, được quản lý trực tiếp bởi tài khoản root, thuộc về
nhóm root và có dung lượng 159 byte.
Mục phân quyền có 4 thành phần chính. Đầu tiên là mục đánh dấu, được sử
dụng để chỉ định đó là thư mục hoặc file (d nếu là thư mục và dấu – nếu là file
bình thường). Chuỗi 9 ký tự tiếp theo được chia làm 3 tổ hợp bằng nhau, xác
định rõ ràng tài khoản người sử dụng, nhóm và quyền truy cập.<flag><user
permissions><group permissions><everyone permissions>
Như trong ví dụ trên, chúng ta có rwxr-xr-x, có thể phân tích cụ thể như