Tải bản đầy đủ (.pdf) (13 trang)

Managing user và permissions (quản lí người dùng và quyền hạn)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (338.79 KB, 13 trang )

Chương 3:

Managing User và Permissions

3.1. Định nghĩa người dùng
Các lệnh định nghĩa người dùng
useradd

Thêm các tài khoản cá nhân tới hệ thống.

adduser
usermod

Chỉnh sửa các thuộc tính của tài khoản cá nhân.

userdel

Xóa các tài khoản cá nhân từ hệ thống.

groupadd

Thêm các tài khoản nhóm tới hệ thống.

groupmod

Chỉnh sửa các thuộc tính của tài khoản nhóm.

groupdel

Gỡ bỏ các tài khoản nhóm khỏi hệ thống.


useradd [option] [content] [username]

Option:
-u

UID user ID (Mặc định: số tiếp theo phù hợp)

-g

GID group ID (Mặc định tạo group cùng tên với user)

-c

Comment (Mô tả về user (Mặc định: blank))

-d

Directory (Đường dẫn home directory (Mặc định:
/home/username))

-m

Tự tạo home directory

-G

Group chứa user

-M


Không tạo home directory

-e

Expire_date (Thời gian user bị vô hiệu hoá, dạng
YYYY-MM-DD)

accountname

Tên tài khoản cá nhân thực sự được tạo ra.


-u

Bạn có thể xác định ID cá nhân cho tài khoản này.

groupadd [-g gid [-o]] [-r] [-f] groupname
Option:
-g

Giá trị số của ID nhóm.

-o

Tùy chọn này cho phép để thêm nhóm với GID không duy
nhất.

-r

Dấu hiệu này chỉ thị sự thêm nhóm tới tài khoản hệ thống.


-f

Tùy chọn này khiến cho nó chỉ thoát ra với trạng thái thành
công nếu nhóm đã xác định đã tồn tại. Với –g, nếu GID đã tồn
tại, thì GID khác (duy nhất) được chọn.

groupname

Tên nhóm thực sự được tạo.

Đặt mật khẩu cho user

3.2. Quản lí người dùng
/etc/passwd: Giữ tài khoản người dùng và thông tin mật khẩu.
/etc/shadow: Giữ mật khẩu được biên thành mật mã của tài khoản tương ứng.


/etc/group: File này giữ thông tin nhóm cho mỗi tài khoản.
/etc/gshadow: File này giữ các thông tin tài khoản nhóm bảo mật.
❖ /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ó cấu trúc:
UserName : Password : UserID : PrincipleGroup : Comments : HomeDirectory : Shell
user3:x:1002:1002:usermoi:/home/user3:
Ý nghĩa của cụ thể của các trường:
1. Usename: Tên đăng nhập, phân biệt hoa/thường, nên dùng chữ thường.
2. Password: Lưu chuỗi passwd đã hash, nếu có sử dụng /etc/shadow thì ở đây sẽ là chữ
x

3. User ID: Hệ thống dùng user ID để phân biệt người này với người khác.
4. Group ID: Đây là Primary Group của user này.
5. Comment: Mô tả cho user.
6. Home Directory: Thư mục home của từng user, thường sẽ nằm trong /home/tenuser
7. Shell: Tên chương trình sẽ thực thi ngay sau khi user login vào. Nếu không có shell
user sẽ không thể login. Mặc nhiên trên Linux sẽ dùng bash shell ở đây.
❖ /etc/shadow : Chứa chuỗi password đã mã hóa bằng hàm băm và thông tin về khác
như Password Age của User, có cấu trúc bảng:
user3:$6$l5vvtgHj$q3eP0Nvc7twjKDZ/GLU2GfauJoPBp4xAEIrTb
R82/cl3Ir/6LYOB1PCwhAi.DIYdX59GuiSsOH7bW4/Rc5cGh.:17808:0:
99999:7:::
Ý nghĩa của cụ thể của các trường:
1. Usename: Phân biệt hoa/thường, nên dùng chữ thường.
2. Password: Lưu chuỗi passwd đã hash. Nếu nó chứa ! hay * thì người dùng không thể
login vào tài khoản này.
Trường màu đỏ cho biết phương thức mã hóa được sử dụng để mã hóa mật khẩu


$1 = MD5 hashing algorithm.
$2 = Blowfish Algorithm is in use.
$2a = eksblowfish Algorithm
$5 = SHA-256 Algorithm
$6 = SHA-512 Algorithm
Trường màu xanh là chuỗi random, kết hợp với mật khẩu để tại ra chuỗi mã hóa
3. Khoảng thời gian (tính bằng ngày) tính từ 1/1/1970 cho tới lần đổi mật khẩu gần
nhất.
4. Thời gian tối đa còn cho phép người dùng đổi mật khẩu, nếu là 0 tức là người dùng
có thể đổi mật khẩu bất cứ khi nào. Số khác ) là số ngày còn lại.
5. Thời gian hiệu lực tối đa của mật khẩu, nếu là 99999 có nghĩa là vô hạn.
6. Khoảng thời gian trước khi mật khẩu hết hạn, hệ thống sẽ cảnh báo cho người dùng

trước khi hết hạn
7. Khoảng thời gian mà tài khoản đã hết hạn đăng nhập
8. Khoảng thời gian mà tài khoản đã hết hạn đăng nhập tính từ ngày 1/1/1970 (đơn vị
tính là ngày)
9. Trường này để trống
Ngoài ra trong file /etc/shadow còn có thể có chứa một số ký tự đặc biệt để dùng vào
một số mục đích riêng như sau:
Nếu trường password rỗng tức là người dùng không có mật khẩu đăng nhập.
Nếu trường password là “!” tức là đăng nhập bằng mật khẩu của người dùng bị chặn
nhưng có thể đăng nhập bằng phương thức khác, ví dụ sử dụng ssh key.
Nếu trường password là “*LK*” hoặc “*” tức là tài khoản bị khóa, không thể đăng
nhập bằng mật khẩu nhưng vẫn có thể đăng nhập bằng phương thức khác.
❖ /etc/groups : Chứa thông tin về các groups, có cấu trúc:
GroupName : Password : GroupID : User1,User2,..., Usern
Mô tả 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/gshadow: Chứa chuỗi password đã mã hóa bằng hàm băm và thông tin về khác
như Password Age của User.
1. Group name: tên nhóm
2. Password: Mật khẩu đã mã hóa
3. Adminnistrator: Quản trị viên
4. Member: Liệt kê thành viên
3.3. Chính sách về mật khẩu

1. Độ dài tối thiểu (mặc định là 6 ký tự), quản trị có thể cấu hình thêm

2. Thiết lập chính sách yêu cầu mật khẩu phải thỏa mãn một số điều kiện
a. Số lượng chữ số.
b. Số lượng chữ cái in hoa
c. Số lượng chữ cái thường.
d. Số lượng các ký tự đặc biệt khác
e. Số lượng các ký tự của password mới được phép trùng với passwd cũ
3. Giới hạn số ngày tối đa mà một mật khẩu được phép sử dụng trước khi nó phải thay
đổi


4. Không cho phép sử dụng mật khẩu cũ
5. Giới hạn số lần được phép đăng nhập thất bại
6. Số loại ký tự tối thiểu trong password
7. Không chứa yếu tố cá nhân (ngày sinh, tên ..)
Tại file /etc/login.defs
Cấu hình số ngày hết hạn mật khẩu

Tại file /etc/pam.d/common-password
Ngăn chặn đặt lại mật khẩu cũ

3.4. Chính sách phân quyền
Một file hay thư mục trong hệ thống có 4 quyền cơ bản sau:
a. Read (r)
Đối với một file thì quyền Read chính là quyền được xem nội dung của file, còn đối
với một folder thì quyền Read chính là quyền xem được danh sách các folder con và file
bên trong folder đó.



b. Write (w)
Đối với một file thì quyền Write là cho phép thêm, sửa nội dùng file, còn đối với một
folder thì Write cho phép thêm, xóa một subfolder hay file trong thư mục đó.
c. Execute (x)
Đây là quyền thực thi. Đối với một file thì Execute cho phép thực thi file trong trường
hợp file này thuộc dạng program hoặc script, còn đối với một folder Execute cho phép cd
vào thư mục này.
d. Deny (-)
Không có quyền làm một thao tác gì đó đối với một file hay folder xác định.
Phân quyền của một file/folder có dạng:


Trong Linux, khi một file hay một thư mục được tạo ra thì các quyền hạn truy cập
đối với chúng là (read, write, execute) cho các chủ thể (owner, group, other) sẽ được xác
định dựa trên hai giá trị là quyền truy nhập cơ sở (base permission) và mặt nạ (mask).
Quyền mặc định cho một tập tin là 777 và cho một thư mục là 666
❖ Base Permission là giá trị được thiết lập sẵn từ trước, và ta không thể thay đổi được
+ Đối với file thông thườnggiá trị base perm là 666 (rw-rw-rw-)
+ Đối với thư mục (file đặc biệt) giá trị base perm là 777 (rwxrwxrwx)
❖ UMask là giá trị đựợc thiết lập bởi người dùng bằng lệnh umask
Nếu Umask = 022
+ Quyền mặc định hiện tại của thư mục là: 755 (777-022)
+ Quyền mặc định hiện tại của file là: 644 (666-022)
3.5. Công cụ phân quyền
Command lệnh: chmod
chmod [options] mode[,mode] file1 [file2...]


3.6. SUID, GUID, STICKY BIT
SUID (Set owner User ID up on execution) là một loại file permission đặc biệt. Thông

thường một file trong linux khi chạy thì sẽ được kế thừa từ user đang log in. SUID sẽ cấp
quyền "tạm thời" cho user chạy file quyền của user tạo ra file (owner). Nói một cách khác,
user chạy sẽ có UID và GID của người tạo ra file, khi chạy 1 file hay command.
SGID hay Set group ID, cũng tương tự như SUID, được sử dụng trên các file thực thi
để cho phép việc thực thi được thực hiện dưới owner group của file thay vì thực hiện như
group đang login trong hệ thống. .
SGID cũng có thể được sử dụng để thay đổi ownership group của files được tạo hoặc
di chuyển nó đến một thư mục mà owner group của nó sẽ là owner group của thư mục
chuyển đến thay vì là group nó được tạo ra.
STICKY BIT là một giá trị trong phân quyền. Khi một folder/file được bật STICKY
BIT thì những file/folder đó chỉ có thể được xóa hoặc thay đổi bởi chủ sở hữu nó hoặc root.
Bất cứ user nào có quyền w và x đều không thể rename hoặc xóa file/thư mục.
Phân quyền bằng chmod:


Nếu file không có quyền x thì khi cấu hình quyền sticky bit sẽ thể hiện bằng ký tự
“T”, ngược lại là “t”.
3.7. FTP
FTP là giao thức truyền tập tin được sử dụng trong hệ thống mạng thông qua giao
thức TCP/IP , hoạt động của FTP cần ít nhất 2 máy tính, một máy chủ và 1 máy khách.
FTP chạy trên 2 cổng là 20 và 21, cổng 21 dùng để kết nối và trao đổi command, cổng 20
dùng để trao đổi data.
FTP Active mode
Trong active mode,
– client sẽ là kẻ đưa ra yêu cầu phiên kết nối từ port cao(>1024) đến port 21
của server.
– server sẽ đáp trả lại 1 ACK đến client. Đồng thời, client cũng sẽ lắng nghe
trên 1 port cao nào đó, chờ đợi tín hiệu đến từ server.



– server sẽ dùng port 20 của nó để truyền dữ liệu đến 1 port cao khác đang
lắng nghe trên client
Ưu điểm:
Nhược điểm: Client sẽ lắng nghe trên 1 port nào đó đã đc server biết trước để server
connect tới.Với firewall, việc một tín hiệu từ bên ngoài cố gắng kết nối vào bên trong sẽ bị
deny!
FTP passive mode
– Khi khởi tạo kết nối, client sẽ đồng thời tạo ra 2 port cao. Port đầu tiên dùng
để kết nối đến port 21 của server, và port thứ 2 sẽ dùng để vận chuyển dữ
liệu.
– Port thứ nhất sẽ liên lạc với server qua port21 và nói cho server biết rằng đây
là passive mode.
– Khi biết đây là passive mode thì server sẽ lắng nghe trên 1 port cao, ko phải
port20 và sẽ trả lại thông tin cho client biết rằng đang lắng nghe ở port nào.
– Sau khi đã biết port lắng nghe tại server, client sẽ dùng port cao thứ 2 để kết
nối đến port cao mới đc tạo ra tại server, server sẽ đáp trả lại bằng 1 ACK để
chấp nhận!
Ưu điểm: Client chủ động trong quá trình kết nối
Nhược điểm: Việc mở nhiều cổng trên server để chờ kết nối từ client khiến server bị nguy
hiểm.
3.8. SFTP (FTP over SSH) và FTPS (FTP over SSL)
SFTP là FTP sử dụng giao thức SSH để kết nối với nhau, phiên kết nối của FTP được
nằm trong Secure Shell connection, dữ liệu trao đổi giữa 2 bên sẽ được mã hóa AES và
DES, và được truyền tải dưới dạng packet based. SFTP xác thực người dùng bằng ID,
password và key SSH. SFTP rất dễ dàng thông qua tưởng lửa và sử dụng một port mở là
22 cho mọi trao đổi trong phiên hoạt động
FTPS là phần mở rộng của giao thức FTP (thêm SSl/TLS cryptographic protocols).
Khi TLS connection được thiết lập, dữ liệu trao đổi giữa 2 bên sẽ được mã hóa AES và



DES. FTPS chứng thực người dùng thông qua ID, password và chứng chỉ được cấp bởi tổ
chức phát hành chứng chỉ. FTPS rất khó thông qua tường lửa, FTPS sử dụng nhiều cổng.
Số cổng ban đầu (mặc định là 21) được sử dụng để xác thực và chuyển bất kỳ lệnh nào.
Tuy nhiên, mỗi lần yêu cầu chuyển tệp hoặc yêu cầu danh sách thư mục được thực hiện,
cần phải mở một số cổng khác. Do đó, các host sẽ phải mở một loạt các cổng trong tường
lửa để cho phép các kết nối FTPS có thể khiến mạng dễ gặp rủi ro và làm suy yếu khả năng
phòng thủ an ninh mạng.
3.9. Inode
Mỗi file/ thư mục được liên kết với một inode mà chứa các thuộc tính của file đó như
là định dạng (text, binary,…), kích thước, ngày khởi tạo, vị trí trên thiết bị lưu trữ, chủ sở
hữu, quyền truy cập,… Thông tin về file/thư mục mà inode nắm giữ thường được gọi là
metadata, đặc biệt inode không chứa tên file và nội dung thật sự của file.
Mỗi inode được xác định bởi một con số (inode number) , có một bảng chỉ mục (inode
table) gồm inode number – vị trí inode trên thiết bị lưu trữ. Với inode number có được
kernel sẽ tìm trong bảng chỉ mục này và truy cập tới nội dung của inode, bao gồm con trỏ
dữ liệu từ đó truy cập tới nội dung của file mà liên kết với inode đó.
Khi một file được tạo, nó được gán một file name + một inode number là số nguyên
duy nhất trong một file system. Các file name và inode number tương ứng được lưu trữ
thành các mục (entry) trong thư mục, tức là thư mục thực ra chỉ là danh sách các liên kết
giữa file name và inode number mà thôi.
Khi người dùng hoặc chương trình sử dụng file name để tham khảo tới một file, hệ
điều hành sẽ sử dụng tên này để tìm kiếm inode tương ứng bằng cách tra cứu trong inode
table rồi từ đó biết được thông tin và vị trí của file trên thiết bị lưu trữ để phục vụ cho các
thao tác về sau (như chỉnh sửa nội dung của file, cung cấp thuộc tính của file,…).
3.10. Cấu hình vsftp
Cấu hình mode passive





×