Báo cáo đề tài phân quyền người dùng file và thư mục trên hệ điều hành ubuntu
Trang 1Mục Lục Trang
Lời cám ơn 4
Giới thiệu về đề tài 5
PHẦN MỘT: TỔNG QUAN VỀ NGƯỜI DÙNG 6
I.USER 6
1.Định nghĩa người dùng 6
1.1 UID 6
1.2 Tài khoản người dùng trên hệ thống 8
1.2.1 Tài khoản root 9
1.2.2 Tài khoản nobody 10
1.2.2 Tài khoản bin 11
1.3 Home Directory 11
1.4 Tạo tài khoản người dùng bằng giao diện 12
1.4.1 Thêm người dùng mới 12
1.4.2 Sửa người dùng 16
1.4.3 Xóa người dùng 17
1.5 Tạo tài khoản người dùng bằng lệnh trên terminal 18
1.5.1 Thêm người dùng mới 18
1.5.2 Sửa người dùng 20
1.5.3 Xóa người dùng 21
1.6 Kiểm tài khoản người dùng đã tạo 21
Trang 22.1 GID 24
2.2 Tạo Group bằng bằng lệnh trên terminal 24
2.3 Xóa Group 24
2.4 Kiểm tra Group đã tạo 24
III Thêm Người Dùng vào Group 25
3.1 Thêm người dùng vào Group 25
3.2 Kiểm tra người dùng đã được thêm vào group 25
PHẦN HAI: PHÂN QUYỀN NGƯỜI DÙNG TRÊN TẬP TIN VÀ THƯ MỤC 28
I Quyền truy cập trên file system 28
II Phân quyền người dùng trên giao diện 29
2.1 Phân quyền cho tập tin 29
2.1.1 Cấp quyền truy cập trên tập tin 29
2.1.2 Thay đổi chủ sở hữu 30
2.1.3 Thay đổi nhóm sở hữu 31
2.2 Phân quyền cho thư mục 32
2.2.1 Cấp quyền truy cập trên thư mục 32
2.2.2 Thay đổi chủ sở hữu 34
2.2.3 Thay đổi nhóm sở hữu 35
III Phân quyền người dùng bằng lệnh trên terminal 36
A Dùng ký hiệu đặc trưng 36
3A.1 Cấp quyền truy cập trên tập tin bằng lệnh chmod 36
3A.2 Cấp quyền truy cập trên thư mục bằng lệnh chmod 38
B Dùng thông số tuyệt đối 40
3B.1 Cấp quyền truy cập trên tập tin bằng lệnh chmod 40
3B.2 Cấp quyền truy cập trên thư mục bằng lệnh chmod 41
Trang 34.1 Thay đổi chủ sở hữu trên tập tin bằng lệnh chown 43
4.2 Thay đổi chủ sở hữu trên thư mục bằng lệnh chown 44
V Thay đổi nhóm sở hữu 45
5.1 Thay đổi nhóm sở hữu trên tập tin bằng lệnh chgrp 46
5.2 Thay đổi nhóm sở hữu trên thư mục bằng lệnh chgrp 46
PHẦN BA: PHÂN QUYỀN SỬ DỤNG TÀI NGUYÊN TNK34 48
I Yêu cầu đặt ra 48
II Triển khai ví dụ 49
Trang 4Lời đầu tiên nhóm chúng em xin chân thành bày tỏ lòng cảm ơn và kính trọng
sâu sắc đối với Thầy Dương Văn Hải, người đã tận tình hướng dẫn nhóm chúng em
trong suốt quá trình hoàn thành bài báo cáo này Thầy đã mở ra cho nhóm chúng
em những vấn đề tài nghiên cứu rất lý thú, hướng nhóm chúng em vào nghiên cứu các lĩnh vực hết sức thiết thực và vô cùng bổ ích, đồng thời tạo điều kiện thuận lợi cho nhóm chúng em học tập và nghiên cứu Nhóm chúng em đã học hỏi được rất nhiều ở Thầy phong cách làm việc, cũng như phương pháp nghiên cứu khoa học… Nhóm chúng em luôn được Thầy cung cấp các tài liệu, các chỉ dẫn hết sức quý báu khi cần thiết trong suốt thời gian thực hiện đề tài
Cám ơn nhà trường đã tạo điều kiện về cơ sở vật chất, phòng học và phòng thực hành tạo điều kiện cho chúng em có thể trao đổi với nhau và nhận được sự hướng dẫn tận tình của thầy Cám ơn những bạn bè lớp TNK34 đã chia sẻ tài liệu, hướng dẫn và trao đổi với nhóm để chúng em có thể hoàn thành được bài báo cáo hoàn thiện
Đà Lạt, ngày 15,tháng 5, năm 2014
Nhóm 5 – Lớp TNK34
Sinh Viên Thực Hiện:
Lương Văn Kiên Nguyễn Nhật
Lê Hồ Yến Quân Nguyễn Phước Tiến
Trang 5GIỚI THIỆU ĐỀ TÀI
Mã nguồn mở là ngồn ngữ được sử dụng phổ biến trên toàn thế giới tuy nhiên
còn khá ít tại Việt Nam, nguồn mở tuân theo giấy phép cấp phát miễn phí
GNU/GPL, Mở từ mã nguồn để mở cả tư duy của người sử dụng Bất kỳ ai cũng
đều có thể tùy biến những gì mình muốn hoặc phân phối cho cộng đồng Với sự
đóng góp của cộng đồng trên toàn thế giới,dẫn tới việc tiến hành trao đổi thông tin
, chia sẻ dữ liệu trở nên dễ dàng hơn Hệ điều hành mở Ubuntu – Linux đang ngày
một hoàn thiện hơn và chứng tỏ ưu thế vượt trội của mình Khi sử dụng mã nguồn
mở hay bất kỳ hệ điều hành đa nhiệm nào như Ubuntu – Linux thì việc tạo và quản
lý, phân quyền truy cập để bảo đảm tiện ích, an toàn và bảo mật dữ liệu là rất quan
trọng, Việc quản lý trên máy tính dựa vào tài khoản (account) Mỗi account như
vậy có tên (user name), mật khẩu (password) và kèm theo một số quyền hạn
(permission) nhất định Mỗi khi bật máy bạn sẽ logon (đăng nhập) bằng cách chọn
một account để sử dụng Nếu account có mật khẩu, bạn phải gõ đúng mật khẩu Kể
từ đó, bạn sử dụng máy tính với những quyền hạn của account đó.Chính vì vậy để
đảm bảo cho tính bảo mật và an toàn dữ liệu của các ngừi dung thì nhóm em xin
trình bày tìm hiểu về cách tạo người dùng, tài khoản người dùng và phân quyền các
tập tin và thư mục trong Ubuntu
Trong đề tài ”Phân quyền người dùng trên file và thư mục” nhóm sẽ giới
thiệu kỹ về quyền truy cập trên tập tin và thư mục đối với người dùng
Nhóm sẽ triển khai sơ lược về người dùng, tiếp theo đó sẽ vào đề tài chính,
trong quá trình hoàn thành còn nhiều sơ sót, thầy và các bạn bổ sung them để bài
báo cáo hoàn thiện hơn
Phân Quyền Người Dùng Trên File Và Thư Mục.
Trang 6Để tạo một người dùng mới, thay đổi thuộc tính của một người dùng cũng như xóa bỏ một người dùng chỉ khi có quyền của một người quản trị (root) Mỗi
user còn có một định danh riêng gọi là UID
Định danh của người dùng bình thường sử dụng giá trị bắt đầu từ 500
Group là tập hợp nhiều user lại
Mỗi user luôn là thành viên của một group
Khi tạo một user thì mặc định một group được tạo ra
1.1 UID
UID (viết tắt của User Identification) là môt con số nguyên dương duy nhất
được hệ điều hành Ubuntu gán cho mỗi tài khoản người dùng Hệ thống sẽ sử dụng
UID để nhận diện user, trái với con người phân biệt các tài khoản qua Username
Xem các UID:
File /etc/passwd lưu trữ thông tin về tất cả user, mỗi user nằm trên 1 dòng
bao gồm các trường: Username, Password dạng mã hóa (nếu sử dụng shadow
password thì trường này được thay bằng ký tự x), UID, GUID, Gesco (chứa thông
tin phụ như Full name, Phone number ), Home directory, Shell mà user sẽ sử dụng
Trang 7VD : Xem thông tin các user với lệnh
Cat etc/passwd
User kien gồm các thông tin sau:
Mật khẩu được mã hóa: x
Trang 8- UID = 0: được gán cho tài khoản root – người dùng có đặc quyền cao nhất trong
Linux
- UID = 65534: thường được dành riêng cho tài khoản nobody - người dùng không
có bất cứ đặc quyền quản trị nào UID này thường được dành cho các cá
nhân truy cập từ xa tới hệ thống qua FTP hay HTTP
- UID trong khoảng 1->99: thường được dành riêng cho các tài khoản hệ thống đặc
biệt, thường được gọi là các pseudo-users, như wheel, daemon, lp, operator, news,
mail, httpd, sshd…
Đây đều là các tài khoản quản trị nhưng lại không nắm giữ tất cả các đặc quyền như
root, chúng chỉ đảm nhận một vài công việc chuyên biệt nào đó như: daemon chỉ dùng để quản lý các dịch vụ (start, stop, resume, restart…), httpd cho Web server
Apache…
Dĩ nhiên các tài khoản này có nhiều quyền hạn hơn các người dùng bình thường
(normal user)
Quản lý các UID
Trên 1 số bản phân phối Linux (Distro), các normal user nhận UID lớn hơn 100 Ví
dụ, Redhat gán UID cho normal user bắt đầu từ 500, Debian bắt đầu từ 1000 Chính
vì sự khác nhau về cách gán UID này, bạn nên tự đặt UID cho các user nếu trong mạng sử dụng nhiều Distro
Ngoài ra, bạn cũng nên dành riêng 1 dải UID cho các tài khoản cục bộ (local account) như 1000-9999, 1 dải khác cho các người dùng truy cập từ xa tới hệ thống qua mạng (remote user) như 10000-65534 để dễ bề quản lý cũng như giúp rà soát
các hoạt động của người dùng trong các file log…
Cuối cùng, trái với những ý nghĩ truyền thống rằng UID phải là duy nhất cho mỗi người dùng trong cùng 1 hệ thống, bạn vẫn có thể để UID trùng nhau cho các tài khoản có Username khác nhau Tuy nhiên, việc UID không còn là độc nhất sẽ gây
ra các nguy cơ về bảo mật, ví dụ, nếu ai đó thay đổi UID của họ về 0 thì quyền hạn của họ sẽ ngang bằng với root! (các user có cùng UID sẽ có quyền hạn ngang nhau)
1.2 Tài khoản người dùng trên hệ thống
Trong quá trình cài đặt một hệ thống Linux, một số tài khoản người dùng đặc biệt sẽ tự động được tạo ra Các tài khoản người dùng này được sử dụng với
Trang 9một số chức năng đặc biệt trên hệ thống
Có 3 tài khoản người dùng chính : root, nobody và bin
1.2.1 Tài khoản root
VD: Trạng thái của tài khoản root
Tài khoản root còn được gọi là tài khoản siêu người dùng là tài khoản có quyền cao nhất trên hệ thống Ubuntu Người dùng sử dụng tài khoản root để thực hiện một số công việc quản trị hệ thống bao gồm : thêm các tài khoản người dùng mới, thay đổi mật khẩu của người dùng, xem các file log của hệ thống, cài đặt phần mềm, gỡ bỏ phần mềm, thay đổi quyền của file trên hệ thống …
Khi sử dụng tài khoản root, người dùng phải rất cẩn thận vì mọi thao sẽ ảnh hưởng trực tiếp đến hệ thống Tuy nhiên trong quá trình người dùng sử dụng tài khoản root để thực hiện một số công việc quản trị, hệ thống luôn có cảnh báo các thao tác mà người dùng đang thực hiện để tránh trường hợp người dùng làm sai ảnh hưởng đến hệ thống
Khi cài đặt Ubuntu Bạn chính là người cài đặt, lúc đó bạn sẽ tạo 1 user và password để truy cập hệ thống Và user này thuộc nhóm Admin Quyền lực của nhóm này tuy mạnh nhưng không liên tục, nói cách khác thì quyền mặc định của bạn sử dụng không phải là quyền lớn nhất đối với hệ thống
Thay đổi password cho root
Lưu ý: Khi thực hiện lệnh với đặc quyền của root, cần thêm sudo trước lệnh
sudo passwd root
Trang 10Enter new UNIX password: Nhập password mới cho root
Retype new UNIX password: Nhập lại password lần nữa
Thông báo sau cùng : passwd: password updated successfully là thành công!
Để chuyển sang tài khoản root, dùng lệnh:
1.2.2 Tài khoản nobody
Tài khoản người dùng nobody được sử dụng để chạy các dịch vụ trên hệ thống Tài khoản này không có thư mục home hoặc môi trường làm việc shell Nếu tài khoản này bị lỗi, các dịch vụ đang chạy sử dụng tài khoản này sẽ bị ảnh hưởng nhưng hệ thống vẫn được bảo mật
VD: Tạo một tài khoản không có môi trường làm việc shell
Trang 11User toantin không có môi trường làm việc shell
1.2.3 Tài khoản bin
Tài khoản bin được sử dụng trên hệ thống với thư mục home là /bin Tài khoản này được sử dụng để bảo mật các file nhị phân cơ bản trên hệ thống Tài khoản bin không có môi trường làm việc shell Tài khoản này được tạo mặc định trong quá trình cài đặt hệ thống
1.3 Home Directory
Mỗi người dùng trên Ubuntu được cấp một thư mục riêng (gọi là home
directory), thực chất là một thư mục con của /home Có dạng /home/username;
nghĩa là nếu username là knqt thì home directory là /home/ knqt Riêng đối với
accout root thì home directory là /root
Các user Có thể cùng thuộc một nhóm (group) hoặc là khác nhóm; các user trong cùng một nhóm thì có quyền hạn như nhau Thường thì tất cả các user đều
thuộc vào nhóm User (trừ root và các account dành riêng cho hệ thống)
Mỗi người dùng chỉ có quyền thao tác trong thư mục riêng của mình (và những thư mục khác được phép của hệ thống) mà thôi Người dùng này không thể truy cập vào thư mục riêng của user khác (trừ trường hợp được chính người dùng
đó hoặc root cho phép) Mỗi tập tin (file) và thư mục trên Ubuntu đều được "đăng
ký chủ quyền", nghĩa là thuộc về một người dùng và nhóm nào đó
Thường thì tập tin và thư mục được tạo bởi người dùng nào thì sẽ thuộc về
người dùng đó
Trang 121.4 Tạo tài khoản người dùng bằng giao diện
1.4.1 Thêm người dùng mới
Có thể thêm nhiều tài khoản người dùng vào máy tính cài Ubuntu Cung cấp một tài khoản cho từng người trong gia đình hoặc công ty Mỗi người dùng có thư
mục riêng, tài liệu riêng, và các thiết lập Phải là admin mới có thể thêm tài khoản người dùng
Cách thêm 1 tài khoản mới:
Bước 1: Đăng nhập vào user root hoặc user có quyền admin để có thể quản lý các
user
Bước 2: Nhấp vào tên user trên thanh menu và chọn User Account sẽ hiện lên giao
diện quản lý user
Trang 13
Bước 3: Trong danh sách các tài khoản bên trái, nhấp vào nút “+” để thêm một tài
khoản người dùng mới
Bước 4: Nếu muốn người dùng mới có quyền truy cập quản trị máy tính, chọn quản
trị cho các loại tài khoản Quản trị viên có thể làm những việc như thêm và xóa người sử dụng, cài đặt phần mềm và trình điều khiển thiết bị và thay đổi ngày giờ
hệ thống
Trang 14
Bước 5: Nhập tên đầy đủ của người dùng mới Tên truy nhập sẽ được điền tự động
dựa vào tên đầy đủ Mặc định là có thể OK, nhưng có thể thay đổi nó
Bước 6: Nhấp vào Tạo
Bước 7: Tài khoản ban đầu là vô hiệu cho đến khi nhập mật khẩu của người dùng
Trong Tài khoản nhấp vào tuỳ chọn Password – Account Disabled
Trang 15
Bây giờ sử dụng các quyền trong danh sách thả xuống để thiết lập mật khẩu, cho
phép người sử dụng đăng nhập :
Set a password now: Tạo ngay 1 Password
Log in without a password: Đăng nhập mà không cần mật khẩu
Enable this Account: Người dùng thiết lập lại mật khẩu trong lần đăng nhập đầu
tiên
Sau khi chọn bạn nhập Mật khẩu mới và xác thực lại lần nữa
Bước 8: Nhấp vào Thay đổi Có thể nhấp vào hình ảnh bên cạnh tên của người sử
dụng bên phải để thiết lập một hình ảnh cho tài khoản Hình ảnh này sẽ được hiển thị trong cửa sổ đăng nhập
Trang 161.4.2 Sửa người dùng
Thay đổi tên người dùng:
Nhấp vào nhãn bên cạnh hình ảnh của người sử dụng bên trái và nhập tên
mới cho cho tài khoản
Thay đổi quyền của người dùng:
Nhấp vào nhãn bên cạnh Account Type của người sử dụng cần thay đổi sẽ hiện ra một cửa sổ với các tùy chọn quyền quản trị để chúng ta lựa chọn Chọn quyền cần thay đổi
Thay đổi ngôn ngữ:
Nhấp vào nhãn bên cạnh language của người sử dụng sẽ hiện ra một cửa sổ với các tùy chọn language để chúng ta lựa chọn chọn language cần thay đổi
Thay đổi mật khẩu người dùng:
Nhập mật khẩu hiện tại của bạn, sau đó nhập mật khẩu mới Nhập mật khẩu
mới của bạn một lần nữa trong xác nhận mật khẩu
Trang 17Nhấp vào Thay đổi
1.4.3 Xóa người dùng
Phải là admin mới có thể xóa tài khoản người dùng Xem, thêm một tài khoản người dùng mới Nếu user nào đó không còn sử dụng ,có thể xóa tài khoản đó đi Nhấp vào tên của user trên thanh menu và chọn User Account
Chọn tài khoản mà bạn muốn xóa và nhấp vào dấu “ - ” ở góc dưới màn hình
Trang 18Mỗi người sử dụng có thư mục home riêng gồm các các tập tin và các thiết lập của mình
Những tập tin bị xóa vĩnh viễn sẽ không thể phục hồi
1.5 Tạo tài khoản người dùng bằng lệnh trên terminal
1.5.1 Thêm người dùng mới
Có hai phương pháp sử dụng câu lệnh trong Terminal để tạo người dùng là useradd và adduser
useradd [ten user]
adduser [ten user]
Với useradd sẽ tự động tạo các file của người dùng trên hệ thống, tạo thư mục home cho người dùng và một số cấu hình khác phụ thuộc vào các chức năng được
sử dụng Khi một tài khoản người dùng được tạo ra thì một tài khoản nhóm người dùng cùng tên với người dùng cũng sẽ được tạo ra trên hệ thống (UID = GROUP ID)
Ví dụ: Ta thêm tài khoản có tên kien dùng lệnh :
Trang 19adduser kien
Kết quả của lệnh:
Sau đó hệ thống yêu cầu nhập password:
Tiếp theo, cập nhật thông tin cá nhân của user caotu rồi yêu cầu xác nhận thông tin
Nếu chưa đúng, ta chọn n, hệ thống sẽ cho người tạo nhập lại từ đầu và có hiển thị những thông tin đã nhập ở trước để đối chiếu:
Trang 201.5.2 Sửa người dùng
Sau khi tạo một tài khoản người dùng, để chỉnh sửa một số thông tin của tài khoản người dùng chúng ta sử dụng câu lệnh usermod Câu lệnh usermod cho phép chúng ta chỉnh sửa một tài khoản người dùng với các tiêu chí sau : thay đổi thư mục home của người dùng, thay đổi thời gian hết hạn của tài khoản, thay đổi nhóm của người dùng, thay đổi tên đăng nhập, thay đổi login shell … Các option dùng với usermod giống với các option sử dụng với lệnh useradd
Cú pháp :
Usermod [option] <tên người dùng>
Mục [Options] như sau:
-c : thay đổi thông tin về username
-d : thay đổi home directory cho username Thường đi kèm với option -m để di chuyển các files của username sang home directory mới
-e: thay đổi ngày username hết hạn, theo form: yyyy-mm-dd
-f: thay đổi sô ngày sau khi password hết hạn cho đến khi username bị disable -g: thay đổi group chính chứa username
-G: thay đổi các group phụ chứa username Nếu thêm option -a sau GID hoặc
groupname thì danh sách group phụ chứa username sẽ add thêm group này chứ không bị thay đổi hoàn toàn thành group này
-l: thay đổi tên login của username (usermod old_name -l new_name)
-L: lock username
-p: thay đổi password cho username
-s: thay đổi default shell cho username
-u: thay đổi UID cho username
-U: unlock username
Trang 21Ví dụ: Ở trên, mặc định hệ thống cho UID của user kien là 1003
Để xóa một tài khoản người dùng chúng ta sử dụng câu lệnh :
Userdel <tên người dùng>
Lệnh này sẽ xóa tài khoản người dùng trong 2 file /etc/passwd và /etc/shadow Người dùng không thể đăng nhập vào hệ thống khi tài khoản của người dùng đã bị xóa
1.6 Kiểm tra tài khoản người dùng đã tạo
1.6.1 Kiểm tra trên giao diện
Nhấp vào tên user trên thanh menu và chọn User Account
Trang 22Sẽ hiện ra danh sách các tài khoản đã tạo
Trang 231.6.2 Kiểm tra trên terminal
Mỗi người dùng đều có một shell đăng nhập, là chương trình để chạy mỗi khi đăng nhập vào hệ thống.Sử dụng lệnh sau để kiểm tra danh sách người dùng và tra UID:
Mỗi group còn có một định danh riêng gọi là GID
Định danh của group thường sử dụng giá trị bắt đầu từ 500
2.2 Tạo Group bằng bằng lệnh trên terminal
Cú pháp:
Groupadd [tên group]
Trang 242.3 Xóa Group
Cú pháp:
Groupdel [tên group]
VD: Xóa Group SinhVien
Password group SinhVien : x
GID group SinhVien : 1006
Password group GiangVien : x
GID group GiangVien : 1005
Trang 25III Thêm Người Dùng vào Group
3.1 Thêm người dùng vào Group
Cú pháp:
Usermod –g[nhóm][user]
VD: Đưa user kien vào nhóm SinhVien
Usermod –g SinhVien kien
Lưu ý: Trong Ubuntu mỗi user chỉ thuộc 1 nhóm (chỉ có 1 GID duy nhất) Khi tạo
user mới thì mặc định group sẽ được tạo ra là chính user đó
3.2 Kiểm tra người dùng đã được thêm vào group
Để kiểm tra người dùng đã được thêm vào group, Đầu tiên ta kiểm tra thông tin user trong file : /etc/passwd
Cú pháp:
Cat etc/passwd
Trang 26Tiếp theo ta kiểm tra thông tin group trong file : /etc/group
Cú pháp:
Cat etc/group
Như vậy: các user kien, nhat, quan, tien đã thuộc group SinhVien với GID là 1006