Tìm hiểu về tính năng quản lý User và Group trong Linux

17
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 1

Transcript of Tìm hiểu về tính năng quản lý User và Group trong Linux

Page 1: Tìm hiểu về tính năng quản lý User và Group trong Linux

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

Page 2: Tìm hiểu về tính năng quản lý User và Group trong Linux

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

Page 3: Tìm hiểu về tính năng quản lý User và Group trong Linux

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

Page 4: Tìm hiểu về tính năng quản lý User và Group trong Linux

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

Page 5: Tìm hiểu về tính năng quản lý User và Group trong Linux

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

Page 6: Tìm hiểu về tính năng quản lý User và Group trong Linux

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

Page 7: Tìm hiểu về tính năng quản lý User và Group trong Linux

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

Page 8: Tìm hiểu về tính năng quản lý User và Group trong Linux

-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

Page 9: Tìm hiểu về tính năng quản lý User và Group trong Linux

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

Page 10: Tìm hiểu về tính năng quản lý User và Group trong Linux

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

Page 11: Tìm hiểu về tính năng quản lý User và Group trong Linux

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

Page 12: Tìm hiểu về tính năng quản lý User và Group trong Linux

-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

Page 13: Tìm hiểu về tính năng quản lý User và Group trong Linux

-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