Upload
duong-van-long
View
117
Download
0
Embed Size (px)
Citation preview
1. Các khái niệm cơ bản về quản lý account và group trong Linux
Account trên Linux bao gồm nhiều thông tin trong đó hai phần liên quan đến
việc sử dụng là username và userID:
username: khi sử dụng để login, gán quyền, v.v.. chúng ta thực hiện
thông qua username, nhưng hệ thống lại hiểu và làm theo userID.
userID: Số đi kèm với username, hệ điều hành dùng số này để quản lý.
Như vậy nếu có hai username khác nhau nhưng dùng chung một userID, thì hệ
thống xem hai tên này chỉ là một.
Quyền hạn: Linux chỉ phân biệt user làm hai loại
User có quyền root: Tất cả những user có userID=0, thường thì với một
máy mới, chúng ta sẽ có ngay một user tên root và có userID=0. Nếu chúng ta
tạo ra một user khác và sau đó sửa userID của nó thành 0, thì lúc này nó có
quyền root y chang user tên là root của hệ thống.
User thường: Tất cả các user có userID khác 0 điều là người dùng thường.
User và Group : Mỗi user trên linux bắt buộc phải thuộc một group nào đó
(gọi là Primary Group), ngoài ra còn có thể lựa chọn tham gia vào các group
khác (gọi là Secondary Group), theo một số tài liệu thì user có thể tham gia vào
tối đa 16 Secondary Group.
Trên Linux tất cả thông tin về users và groups đều được lưu vào các tệp tin
văn bản thường. Vì vậy thay vì dùng lệnh để quản lý user, có thể mở các files
này ra sửa trực tiếp. Tuy nhiên chỉ làm vậy khi thật cần thiết, và với mục đích
học tập mà thôi. Trước khi sửa chữa nên backup lại.
Về bản chất, Ubuntu được cài đặt dành cho 1 người duy nhất sử dụng trên hệ
thống, nhưng nếu yêu cầu có nhiều hơn 1 người, cách tốt nhất là tạo nhiều tài
khoản tương ứng với số người dùng. Do đó, mỗi người sẽ có những thiết lập và
thư mục lưu trữ riêng biệt, không ảnh hưởng cũng như liên quan đến tài khoản
khác. Thông thường, những máy tính sử dụng Linux có 2 tài khoản: user bình
thường và root - là tài khoản mức cao nhất, có thể quản lý mọi tài nguyên trên
máy tính, cấu hình và thiết lập thông số kỹ thuật, giám sát và điều khiển tất cả
các tài khoản còn lại. Người sử dụng không thể đăng nhập trực tiếp ngay vào tài
khoản root được, thay vào đó phải sử dụng câu lệnh sudo để chuyển tiếp.
Để quản lý, Linux lưu giữ danh sách tất cả user trong file /etc/groups. Trong
Terminal để xem và chỉnh sửa danh sách này hãy gõ lệnh sau:
sudo vigr /etc/groups
1
2. File /etc/group
Thông tin về group được lưu trong file /etc/group
Mỗi dòng trong file có 4 trường được phân cách bởi dấu ‘:’ ý nghĩa của các
trường theo thứ tự như sau:
Tên nhóm người dùng (groupname)
Mật khẩu nhóm người dùng (password – được mã hóa), nếu truờng này
rỗng tức là nhóm không yêu cầu password
Chỉ số nhóm người dùng (group id)
Danh sách các người dùng thuộc nhóm đó (users)
3. File /etc/passwd
Thông tin về các user được lưu trữ trong các files: /etc/passwd và
/etc/shadow.
/etc/passwd: File này chứa thông tin về user, điều khiển việc login của các user.
File này được lưu dưới dạng ASCII, mỗi dòng lưu thông tin của một user, và
mỗi dòng lại phân thành các trường bằng dấu hai chấm. Như vậy thông tin đã
được lưu dưới dạng một "bảng". Cấu trúc của nó như sau:
UserName : Password : UserID : PrincipleGroup : Comments : HomeDirectory
: Shell
2
Mỗi dòng trong file ứng với 7 trường thông tin của một user, và các trường
này được ngăn cách với nhau bởi dấu ‘:’. Ý nghĩa các trường đó lần lược như
sau:
Tên người dùng (username)
Mật khẩu người dùng (password - đã được mã hóa)
Chỉ số người dùng (user id)
Các chỉ số nhóm của người dùng (group id)
Tên đầy đủ hoặc các thông tin khác về tài khoản người dung (comment)
Thư mục để người dùng đăng nhập
Shell đăng nhập (chương trình chạy lúc đăng nhập)
Bất kỳ người dùng nào trên hệ thống đề có thể đọc được nội dung file etc\
passwd, và có thể đăng nhập với tư cách người dùng khác nếu biết được
password.
/etc/shadow : Chứa chuỗi password đã mã hóa bằng hàm băm và thông tin
khác như Password Age của User. Xem nội dung của /etc/shadow gần giống như
cách ở trên nhưng lile này chứa các thông tin nhạy cảm nên nó chỉ có thể đọc
được nếu bạn có quyền root.
3
4. Quản lí User
4.1 Quản lý bằng giao diện
4.1.1 Tạo tài khoản người dùng mới:
Để thêm một user mới ta phải đứng ở mức root(user cấp cao, người quản trị).
Để tạo mới 1 tài khoản ta chọn System –> Administration -> User and Groups
Xuất hiện cửa sổ User Manager
Trên thanh Toolbar chọn chức năng Add User. Nhập thông tin user cần add.
4
Trong tài khoản vừa lập ta chọn Advanced settings để thiết lập các thiết lập khác
Các module quản lý trực tiếp quyền truy cập của tài khoản nva có trong thẻ
User Privileges:
5
Khuyến cáo 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.
4.1.2 Thay đổi password
Chọn user cần thay đổi password, trên thanh toolbar chọn Properties.
6
Mặc định khi 1 user mới được tạo ra thì nó thuộc group chính là tên của user.
Khác với HDH Window là user mới thuộc group User.
4.2 Quản lý bằng lệnh
4.2.1 Thêm user mới với lệnh useradd
Cú pháp lệnh:
useradd [tùy-chọn] <tên-người-dùng>
useradd –D [tùy-chọn]
Để xem cú pháp của lệnh ta có thể dùng lệnh: man useradd
Nếu không có tỳchọn –D, lệnh useradd sẽ tạo một tài khoản người dùng mới
sử dụng các giá trị được chỉ ra trên dòng lệnh và các giá trị mặc định của hệ
thống. Tài khoản người dùng mới sẽ được nhập vào trong các file hệ thống, thư
mục cá nhân sẽ được tạo, hay các file khởi tạo được sao chép, điều này còn tùy
thuộc vào tùy chọn đưa ra.
Các tùy chọn như sau:
-c, comment: soạn thảo trường thông tin về người dùng.
-d, home_dir: tạo thư mục đăng nhập cho người dùng.
-e, expire_date: thiết đặt thời gian (YYYY-MM-DD) tài khoản người
dùng sẽ bị hủy bỏ.
-f, inactive_days: tùy chọn này xác định số ngày trước khi mật khẩu của
người dùng hết hiệu lực khi tài khoản bị hủy bỏ. Nếu =0 thì hủy bỏ tài
khoản người dùng ngay sau khi mật khẩu hết hiệu lực, =-1 thì ngược lại
(mặc định là -1)
-g, initial_group: tùy chọn này xác định tên hoặc số khởi tạo đăng nhập
nhóm người dùng. Tên nhóm phải tồn tại và số của nhóm phải tham chiếu
đến một nhóm đã tồn tại. Số nhóm ngầm định là 1
-G, group: danh sách các nhóm phụ mà người dùng cũng là thành viên
thuộc nhóm đó. Mỗi nhóm sẽ được ngăn cách với nhóm khác bởi dấu “,”
mặc định người dùng sẽ thuộc vào nhóm khởi tạo.
-m: với tùy chọn này thư mục cá nhân của người dùng sẽ được tạo nếu nó
chưa tồn tại.
-M: không tạo thư mục người dùng
-n: ngầm định thì khi thêm người dùng, một nhóm cùng tên với người
dùng sẽ được tạo. Tùy chọn này sẽ loại bỏ sự ngầm định trên.
-p, passwd: tạo mật khẩu đăng nhập cho người dùng
7
-s, shell: thiết lập shell đăng nhập cho người dùng
-u, uid: thiết đặt chỉ số người dùng, giá trị này phải là duy nhất.
Khi tùy chọn –D được sử dụng, lệnh useradd sẽ bỏ qua các giá trị ngầm định và
cập nhật các giá trị mới
-b, default_home: thêm tên người dùng vào cuối thư mục cá nhân để tạo
tên thư mục cá nhân mới
-e, default_expire_date: thay đổi thời hạn hết giá trị của tài khoản người
dùng
-f, default_inactive: xác định thời điểm hết hiệu lực của mật khẩu đăng
nhập khi tài khoản người dùng bị xóa bỏ.
-g, default_group: thay đổi chỉ số nhóm người dùng
-s, default_shell: thay đổi shell đăng nhập
4.2.2 Thiết lập mật khẩu của user với lệnh passwd
Cú pháp lệnh:
passwd [tùy-chọn] <tên-người-dùng>
với các tùy chọn như sau:
-k: thay đổi mật khẩu người dùng, lệnh đòi hỏi phải xác nhận quyền bằng
việc gõ mật khẩu đang dùng trước khi thay đổi mật khẩu. Cho phép người
dùng thay đổi mật khẩu của mình độc lập với siêu người dùng.
-f: đặt mật khẩu mới cho người dùng song không cần tiến hành việc kiểm
tra mật khẩu đang dùng. Chỉ siêu người dùng mới có quyền sử dụng tham
số này.
-l: khóa một tài khoản người dùng. Việc khóa tài khoản thực chất là việc
dịch bản mã hóa mật khẩu thành 1 xâu kí tự vô nghĩa bắt đầu bởi kí hiệu
“!”. Chỉ siêu người dùng mới có quyền sử dụng tham số này.
-stdin: việc nhập mật khẩu người dùng chỉ được tiến hành từ thiết bị vào
chuẩn không thể tiến hành từ đường dẫn (pipe). Nếu không có tham số
này cho phép nhập mật khẩu cả từ thiết bị vào chuẩn hoặc từ đường dẫn.
-u: mở khóa (tháo bỏ khóa) 1 tài khoản. Chỉ siêu người dùng mới có
quyền sử dụng tham số này.
-d: xóa bỏ mật khẩu của người dùng. Chỉ siêu người dùng mới có quyền
sử dụng tham số này.
-S: hiển thị thông tin ngắn gọn về trạng thái mật khẩu của người dùng
được đưa ra. Chỉ siêu người dùng mới có quyền sử dụng tham số này.
8
4.2.3 Thay đổi thuộc tính user
Trong Linux có nhiều lệnh cho phép thay đổi một số các thuộc tính của tài
khoản người dùng như:
chfn: thay đổi thông tin cá nhân của user
chsh: thay đổi shell đăng nhập
passwd: thay đổi password
Nhưng có một lệnh tổng quát cho phép thay đổi bất kỳ thông tin nào về tài
khoản người dùng do là lệnh usermod
Cú pháp lệnh:
usermod [tùy-chọn] <tên-người-dùng>
Các tùy chọn của lệnh:
-c, comment: thay đổi thông tin cá nhân của tài khoản người dùng
-d, home_dir: thây đổi thư mục cá nhân của tài khoản người dùng
-e, expire_date: thay đổi thời điểm hết hạn của tài khoản người dùng
(YYYY-MM-DD)
-f, inactive_days: thiết đặt số ngày hết hiệu lực của mật khẩu trước khi tài
khoản người dùng hết hạn sử dụng.
-g, initial_group: tùy chọn này thay đổi thông tên hoặc số khởi tạo đăng
nhập nhóm người dùng. Tên nhóm phải tồn tại và tham số của nhóm phải
tham chiếu đến nhóm đã tồn tại. Số nhóm ngầm định là 1.
-G, group: thay đổi danh sách các nhóm phụ mà người dùng cũng là
thành viên thuộc các nhóm đó. Mỗi nhóm sẽ được ngăn cách với nhóm
khác bởi dấu “,” mặc định người dùng sẽ thuộc vào nhóm khởi tạo.
-l, login_name: thay đổi thông tin đăng nhập của người dùng. Trong đó
số trường hợp, tên thư mục riêng của người dùng có thể sẽ thay đổi để
tham chiếu đến tên đăng nhập mới.
-p, passwd: thay đổi mật khẩu đăng nhập của tài khoản người dùng
-s, shell: thay đổi shell đăng nhập
-u, uid: thay đổi chỉ số người dùng
4.2.4 Xóa bỏ một user dùng lệnh userdel
Cú pháp lệnh: userdel [-r] <tên-người-dùng>
-r: các file tồn tại trong thư mục riêng của người dùng, cũng như các file
nằm trong các thư mục khác có liên quan đến người dùng sẽ bị xóa bỏ
cùng lúc với thư mục của người dùng.
9
5. Quản lý group
Thông tin về nhóm cũng tương tự như user được lưu trong : /etc/groups và
/etc/gshadows.
/etc/groups : Chứa thông tin về các groups
Cấu trúc của nó như sau:
GroupName : Password : GroupID : User1,User2,..., Usern
Mô chi tiết các trường:
1-groupname: tên nhóm
2-passwd: lưu chuỗi passwd đã băm, trong trường hợp có dùng
/etc/gshadow thì chỗ này được ghi là x
3-Group ID: ID của nhóm
4-users: Danh sách các user nhận group này là secondary, ngăn cách nhau
bằng dấu phẩy
/etc/gshadows : Chứa thông tin password của groups.
1-groupname: tên nhóm.
2-passwd: chuỗi passwd đã mã hóa bằng các hàm băm.
3-admins: danh sách các user có quyền admin trên group này.
4-users: các user
5.1 Quản lý bằng giao diện
5.1.1 Thêm Group mới:
Cũng tại User Manager Trên Toolbar chọn Add Group
5.1.2 Thêm người dùng vào Group
Có 2 cách để thêm người dùng vào Group:
Cách 1:
10
Properties của Group chọn tab Group User check vào User mà muốn
add vào.
Cách 2:
Properties của User chọn Tab Group check vào Group mà muốn add
user vào.
5.2 Quản lý bằng lệnh
5.2.1 Thêm group mới
Cú pháp lệnh:
groupadd [tùy-chọn] <tên-nhóm>
các tùy chọn là:
-g, gid: tùy chọn này xác định chỉ số nhóm người dùng, chỉ số này phải là
duy nhất. chỉ số mới phải có giá trị lớn hơn 500 và lớn hơn các chỉ số
nhóm đã có trên hệ thống. giá trị từ 0 đến 499 chỉ dùng cho các nhóm hệ
thống.
-r: tùy chọn này được dùng khi muốn thêm 1 tài khoản hệ thống.
11
-f: tùy chọn này sẽ bỏ qua việc nhắc nhở, nếu nhóm người dùng đó đã tồn
tại, nó sẽ bị ghi đè.
5.2.2 Sửa đổi các thuộc tính của group (lệnh groupmod)
Cú pháp lệnh:
groupmod [tùy-chọn] <tên-nhóm>
các tùy chọn là:
-g, gid: thay đổi giá trị chỉ số của nhóm người dùng.
-n. group_name: thay đổi tên nhóm người dùng
5.2.3 Xóa group (lệnh groupdel)
Cú pháp lệnh:
groupdel <tên-nhóm>
6. Thay đổi thông số mặc định
Khi sử dụng lệnh useradd hoặc groupadd, nếu chúng ta không liệt kê đầy đủ
các thông số cần thiết thì hệ thống sẽ lấy theo giá tri mặc nhiên đã được định
nghĩa.
Chúng ta có thể thay đổi định nghĩa những giá trị này trong file sau:
/etc/login.defs : file chứa thông số mặc định khi tạo user hoặc tạo
group.
/etc/skel/ : Tất cả những file là thư mục con trong này sẽ được copy
sang HOME của user mới.
Bảo mật tài khoản
Một số việc có thể làm để tăng độ an toàn:
Đặt ngày hết hạn cho những tài khoản tạm thời
# usermod –e 2003-12-20 henry
Khóa những tài khoản lâu không dùng đến:
# usermod –f 5 henry
Change passwords known by someone who leaves. If they know the root
password, change ALL password
Thay đổi thời hạn password với chage :
chage [options] <user>
Options:
-m <mindays> Minimum days
-M <maxdays> Maximum days
-d <lastdays> Day last changed
12
-I <inactive> Inactive lock, sau khi mật khẩu hết hạn bao lâu sẽ lock tài
khoản.
-E <expiredate> Expiration (YYYY-MM-DD or MM/DD/YY)
-W <warndays> Warning days
13