5.2 Bài 1
Chứng chỉ: |
Linux Essentials |
---|---|
Phiên bản: |
1.6 |
Chủ đề: |
5 Bảo mật và Quyền trong Tệp |
Mục tiêu: |
5.2 Tạo Người dùng và Nhóm |
Bài: |
1 trên 1 |
Giới thiệu
Việc quản lý người dùng và nhóm trên một máy Linux là một trong những khía cạnh chính của tác vụ quản trị hệ thống. Trên thực tế, Linux là một hệ điều hành đa người dùng mà trong đó nhiều người dùng có thể sử dụng cùng một máy trong cùng một thời điểm.
Thông tin về người dùng và nhóm được lưu trữ trong bốn tệp trong cây thư mục /etc/
:
/etc/passwd
-
một tệp gồm bảy trường được phân tách bằng dấu hai chấm chứa thông tin cơ bản về người dùng
/etc/group
-
một tệp gồm bốn trường được phân tách bằng dấu hai chấm chứa thông tin cơ bản về nhóm
/etc/shadow
-
một tệp gồm chín trường được phân tách bằng dấu hai chấm chứa mật khẩu người dùng đã được mã hóa
/etc/gshadow
-
tệp gồm bốn tệp trường được phân tách bằng dấu hai chấm chứa mật khẩu nhóm đã được mã hóa
Tất cả các tệp này đều được cập nhật bởi một bộ công cụ dòng lệnh dùng để quản lý người dùng và nhóm; chúng ta sẽ thảo luận sau trong bài học này. Chúng cũng có thể được quản lý bằng các ứng dụng đồ họa (riêng cho từng bản phân phối Linux) cung cấp các giao diện quản lý đơn giản và trực tiếp hơn.
Warning
|
Mặc dù các tệp đều là văn bản thuần túy nhưng ta không được chỉnh sửa chúng trực tiếp. Hãy luôn sử dụng các công cụ được cung cấp cùng với bản phân phối của bạn cho mục đích này. |
Tệp /etc/passwd
/etc/passwd
là một tệp luôn có thể đọc được chứa danh sách người dùng, mỗi người dùng trên một dòng riêng biệt:
frank:x:1001:1001::/home/frank:/bin/bash
Mỗi dòng bao gồm bảy trường được phân tách bằng dấu hai chấm:
- Tên người dùng
-
Tên được sử dụng khi người dùng đăng nhập vào hệ thống.
- Mật khẩu
-
Mật khẩu được mã hóa (hoặc
x
nếu mật khẩu ẩn được sử dụng). - ID người dùng (UID)
-
Số ID được gán cho người dùng trong hệ thống.
- ID nhóm (GID)
-
Số nhóm chính của người dùng trong hệ thống.
- GECOS
-
Trường nhận xét tùy chọn, được sử dụng để thêm thông tin bổ sung về người dùng (chẳng hạn như tên đầy đủ). Trường có thể chứa nhiều mục được phân tách bằng dấu phẩy.
- Thư mục chính
-
Đường dẫn tuyệt đối của thư mục chính của người dùng.
- Vỏ
-
Đường dẫn tuyệt đối của chương trình được khởi chạy tự động khi người dùng đăng nhập vào hệ thống (thường là vỏ tương tác, chẳng hạn như
/bin/bash
).
Tệp /etc/group
/etc/group
là một tệp luôn có thể đọc được chứa danh sách các nhóm, mỗi nhóm nằm trên một dòng riêng biệt:
developer:x:1002:
Mỗi dòng bao gồm bốn trường được phân tách bằng dấu hai chấm:
- Tên nhóm
-
Tên của nhóm.
- Mật khẩu nhóm
-
Mật khẩu được mã hóa của nhóm (hoặc
x
nếu sử dụng mật khẩu ẩn). - ID nhóm (GID)
-
Số ID được gán cho nhóm trong hệ thống.
- Danh sách thành viên
-
Danh sách người dùng thuộc nhóm được phân tách bằng dấu phẩy, ngoại trừ những người dùng thuộc nhóm chính.
Tệp /etc/shadow
/etc/shadow
là một tệp chỉ có thể được đọc bởi người dùng gốc và người dùng có đặc quyền hệ thống; nó chứa mật khẩu được mã hóa của người dùng, mỗi mật khẩu ở trên một dòng riêng biệt:
frank:$6$i9gjM4Md4MuelZCd$7jJa8Cd2bbADFH4dwtfvTvJLOYCCCBf/.jYbK1IMYx7Wh4fErXcc2xQVU2N1gb97yIYaiqH.jjJammzof2Jfr/:18029:0:99999:7:::
Mỗi dòng bao gồm chín trường được phân tách bằng dấu hai chấm:
- Tên tài khoản
-
Tên được sử dụng khi người dùng đăng nhập vào hệ thống.
- Mật khẩu được mã hóa
-
Mật khẩu được mã hóa của người dùng (nếu giá trị là
!
tức là tài khoản đã bị khóa). - Ngày thay đổi mật khẩu cuối cùng
-
Ngày thay đổi mật khẩu cuối cùng, tức số ngày kể từ ngày 01/01/1970. Giá trị
0
có nghĩa là người dùng phải thay đổi mật khẩu ở lần truy cập tiếp theo. - Tuổi mật khẩu tối thiểu
-
Số ngày tối thiểu sau khi thay đổi mật khẩu mà người dùng phải trải qua trước khi được phép thay đổi mật khẩu lần tiếp theo.
- Tuổi mật khẩu tối đa
-
Số ngày tối đa phải trôi qua trước khi yêu cầu thay đổi mật khẩu.
- Thời gian cảnh báo mật khẩu
-
Số ngày trước khi mật khẩu hết hạn mà trong khoảng thời gian đó người dùng được cảnh báo phải thay đổi mật khẩu.
- Thời gian mật khẩu không hoạt động
-
Số ngày sau khi mật khẩu hết hạn mà người dùng nên cập nhật mật khẩu. Sau thời gian này, nếu người dùng không thay đổi mật khẩu, tài khoản sẽ bị vô hiệu hóa.
- Ngày hết hạn tài khoản
-
Ngày được tính kể từ ngày 01/01/1970, mà trong đó tài khoản người dùng sẽ bị vô hiệu hóa. Trường trống có nghĩa là tài khoản người dùng sẽ không bao giờ hết hạn.
- Một trường dành riêng
-
Một trường được dành riêng để sử dụng trong tương lai.
Tệp /etc/gshadow
/etc/gshadow
là một tệp chỉ có thể đọc được bởi người dùng gốc và bởi người dùng có quyền gốc chứa mật khẩu được mã hóa cho các nhóm, mỗi nhóm ở một dòng riêng biệt:
developer:$6$7QUIhUX1WdO6$H7kOYgsboLkDseFHpk04lwAtweSUQHipoxIgo83QNDxYtYwgmZTCU0qSCuCkErmyR263rvHiLctZVDR7Ya9Ai1::
Mỗi dòng bao gồm bốn trường được phân tách bằng dấu hai chấm:
- Tên nhóm
-
Tên của nhóm.
- Mật khẩu được mã hóa
-
Mật khẩu được mã hóa cho nhóm (mật khẩu này được sử dụng khi một người dùng không phải là thành viên của nhóm muốn tham gia nhóm bằng cách sử dụng lệnh
newgrp
— nếu mật khẩu bắt đầu bằng!
thì không ai được phép truy cập nhóm bằngnewgrp
). - Quản trị viên nhóm
-
Danh sách quản trị viên của nhóm được phân tách bằng dấu phẩy (họ có thể thay đổi mật khẩu của nhóm và có thể thêm hoặc xóa thành viên nhóm bằng lệnh
gpasswd
). - Thành viên nhóm
-
Danh sách các thành viên của nhóm được phân tách bằng dấu phẩy.
Bây giờ, chúng ta đã biết về nơi lưu trữ thông tin người dùng và nhóm. Hãy cùng tìm hiểu về các công cụ dòng lệnh quan trọng nhất để cập nhật các tệp này.
Thêm và Xóa Tài khoản Người dùng
Trong Linux, ta có thể thêm tài khoản người dùng mới bằng lệnh useradd
và xóa tài khoản người dùng bằng lệnh userdel
.
Nếu bạn muốn tạo tài khoản người dùng mới có tên frank
với cài đặt mặc định, bạn có thể chạy lệnh như sau:
# useradd frank
Sau khi tạo người dùng mới, bạn có thể đặt mật khẩu bằng passwd
:
# passwd frank Changing password for user frank. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully.
Cả hai lệnh này đều yêu cầu quyền gốc. Khi bạn chạy lệnh useradd
, thông tin người dùng và nhóm được lưu trữ trong cơ sở dữ liệu mật khẩu và nhóm sẽ được cập nhật cho tài khoản người dùng mới được tạo và nếu được chỉ định, thư mục chính của người dùng mới sẽ được tạo cùng với một nhóm có cùng tên với tài khoản người dùng.
Tip
|
Hãy nhớ rằng bạn luôn có thể sử dụng tiện ích
hoặc
để xem thông tin cơ bản về tài khoản |
Các tùy chọn quan trọng nhất áp dụng cho lệnh useradd
là:
-c
-
Tạo tài khoản người dùng mới với tùy chỉnh (ví dụ: tên đầy đủ).
-d
-
Tạo tài khoản người dùng mới với thư mục chính tùy chỉnh.
-e
-
Tạo tài khoản người dùng mới bằng cách đặt ngày cụ thể mà tài khoản sẽ bị vô hiệu hóa.
-f
-
Tạo tài khoản người dùng mới bằng cách đặt số ngày sau khi mật khẩu hết hạn mà trong khoảng thời gian đó người dùng nên cập nhật mật khẩu.
-g
-
Tạo tài khoản người dùng mới với một GID cụ thể
-G
-
Tạo tài khoản người dùng mới bằng cách thêm nó vào nhiều nhóm phụ.
-m
-
Tạo một tài khoản người dùng mới với thư mục chính của nó.
-M
-
Tạo tài khoản người dùng mới không có thư mục chính.
-s
-
Tạo tài khoản người dùng mới với vỏ đăng nhập cụ thể.
-u
-
Tạo tài khoản người dùng mới với UID cụ thể. Khi tài khoản người dùng mới được tạo, bạn có thể sử dụng các lệnh
id
vàgroups
để tìm ra UID, GID và các nhóm mà tài khoản đó thuộc về.
# id frank uid=1000(frank) gid=1000(frank) groups=1000(frank) # groups frank frank : frank
Tip
|
Hãy nhớ kiểm tra và chỉnh sửa tệp |
Nếu muốn xóa tài khoản người dùng, bạn có thể sử dụng lệnh userdel
. Cụ thể, lệnh này sẽ cập nhật thông tin được lưu trữ trong cơ sở dữ liệu tài khoản, xóa tất cả các mục liên quan đến người dùng được chỉ định. Tùy chọn -r
cũng sẽ xóa thư mục chính của người dùng và tất cả các nội dung của nó cùng với bộ đệm thư của người dùng. Các tệp khác nằm ở các vị trí khác phải được tìm kiếm và xóa bằng cách thủ công.
# userdel -r frank
Giống như trước, bạn cần quyền gốc để xóa tài khoản người dùng.
Thư mục Skeleton
Khi bạn thêm tài khoản người dùng mới, thậm chí tạo cả thư mục chính cho nó, thư mục chính mới được tạo sẽ chứa các tệp và thư mục được sao chép từ thư mục skeleton (theo mặc định /etc/skel
). Ý tưởng đằng sau điều này rất đơn giản: quản trị viên hệ thống muốn thêm người dùng mới có cùng tệp và thư mục vào chính của họ. Do đó, nếu bạn muốn tùy chỉnh các tệp và thư mục được tạo tự động trong thư mục chính của tài khoản người dùng mới, bạn phải thêm các tệp và thư mục mới này vào thư mục skeleton.
Tip
|
Hãy lưu ý rằng các tệp hồ sơ thường được tìm thấy trong thư mục skeleton là các tệp ẩn. Do đó, nếu bạn muốn liệt kê tất cả các tệp và thư mục trong thư mục skeleton mà sẽ được sao chép vào thư mục chính của người dùng mới được tạo, bạn phải sử dụng lệnh |
Thêm và Xóa Nhóm
Đối với tác vụ quản lý nhóm, bạn có thể thêm hoặc xóa nhóm bằng lệnh groupadd
và groupdel
.
Nếu muốn tạo một nhóm mới có tên developer
, bạn có thể chạy lệnh sau với quyền gốc:
# groupadd -g 1090 developer
Tùy chọn -g
của lệnh này sẽ tạo một nhóm có GID cụ thể.
Nếu muốn xóa nhóm developer
, bạn có thể chạy lệnh như sau:
# groupdel developer
Warning
|
Hãy nhớ rằng khi thêm một tài khoản người dùng mới, nhóm chính và các nhóm phụ chứa tài khoản đó phải tồn tại trước khi khởi chạy lệnh |
Lệnh passwd
Lệnh này chủ yếu được sử dụng để thay đổi mật khẩu của người dùng. Bất kỳ người dùng nào cũng có thể thay đổi mật khẩu của họ, nhưng chỉ người dùng gốc mới có thể thay đổi mật khẩu của bất kỳ một người dùng nào.
Tùy thuộc vào tùy chọn passwd
được sử dụng, bạn có thể kiểm soát các khía cạnh cụ thể của tuổi thọ cuả mật khẩu:
-d
-
Xóa mật khẩu của tài khoản người dùng (từ đó đặt mật khẩu trống, biến nó thành tài khoản không có mật khẩu).
-e
-
Buộc tài khoản người dùng thay đổi mật khẩu.
-l
-
Khóa tài khoản người dùng (mật khẩu được mã hóa có tiền tố là dấu chấm than).
-u
-
Mở khóa tài khoản người dùng (sẽ xóa dấu chấm than).
-S
-
Xuất thông tin về trạng thái mật khẩu cho một tài khoản cụ thể.
Các tùy chọn này chỉ có sẵn cho người dùng gốc. Để xem danh sách đầy đủ các tùy chọn, hãy tham khảo các trang hướng dẫn.
Bài tập Hướng dẫn
-
Đối với mỗi mục sau đây, hãy chỉ ra tệp mà nó đang nhắc đến:
-
developer:x:1010:frank,grace,dave
-
root:x:0:0:root:/root:/bin/bash
-
henry:$1$.AbCdEfGh123456789A1b2C3d4.:18015:20:90:5:30::
-
henry:x:1000:1000:User Henry:/home/henry:/bin/bash
-
staff:!:dave:carol,emma
-
-
Hãy quan sát kết quả sau để trả lời bảy câu hỏi tiếp theo:
# cat /etc/passwd | tail -3 dave:x:1050:1050:User Dave:/home/dave:/bin/bash carol:x:1051:1015:User Carol:/home/carol:/bin/sh henry:x:1052:1005:User Henry:/home/henry:/bin/tcsh # cat /etc/group | tail -3 web_admin:x:1005:frank,emma web_developer:x:1010:grace,kevin,christian dave:x:1050: # cat /etc/shadow | tail -3 dave:$6$AbCdEfGh123456789A1b2C3D4e5F6G7h8i9:0:20:90:7:30:: carol:$6$q1w2e3r4t5y6u7i8AbcDeFgHiLmNoPqRsTu:18015:0:60:7::: henry:!$6$123456789aBcDeFgHa1B2c3d4E5f6g7H8I9:18015:0:20:5::: # cat /etc/gshadow | tail -3 web_admin:!:frank:frank,emma web_developer:!:kevin:grace,kevin,christian dave:!::
-
ID người dùng (UID) và ID nhóm (GID) của
carol
là gì? -
Vỏ nào được đặt cho
dave
vàhenry
? -
Tên nhóm chính của
henry
là gì? -
Các thành viên của nhóm
web_developer
là ai? Ai trong số đó là quản trị viên nhóm? -
Người dùng nào không đăng nhập được vào hệ thống?
-
Người dùng nào nên thay đổi mật khẩu trong lần đăng nhập tiếp theo vào hệ thống?
-
Phải qua bao nhiêu ngày trước khi phải thay đổi mật khẩu cho
carol
?
-
Bài tập Mở rộng
-
Với quyền gốc, hãy chạy lệnh
useradd -m dave
để thêm tài khoản người dùng mới. Lệnh này thực hiện những thao tác nào? Giả sử rằngCREATE_HOME
vàUSERGROUPS_ENAB
trong/etc/login.defs
được đặt là "yes". -
Bây giờ, bạn đã tạo tài khoản
dave
; người dùng này có thể đăng nhập vào hệ thống không? -
Hãy xác định ID người dùng (UID) và ID nhóm (GID) của
dave
và tất cả các thành viên của nhómdave
. -
Hãy tạo các nhóm
sys_admin
,web_admin
vàdb_admin
và xác định ID nhóm (GID) của chúng. -
Hãy thêm tài khoản người dùng mới có tên
carol
với UID 1035 và đặtsys_admin
làm nhóm chính,web_admin
vàdb_admin
làm nhóm phụ. -
Hãy xóa tài khoản người dùng
dave
vàcarol
cũng như các nhómsys_admin
,web_admin
vàdb_admin
mà bạn đã tạo trước đó. -
Hãy chạy lệnh
ls -l /etc/passwd /etc/group /etc/shadow /etc/gshadow
và mô tả đầu ra mà nó cung cấp cho bạn về quyền đối với tệp. Giả sử trong trường hợp hệ thống của bạn sử dụng mật khẩu ẩn, tệp nào trong số bốn tệp này bị ẩn vì lý do bảo mật? -
Hãy chạy lệnh
ls -l /usr/bin/passwd
. Bit đặc biệt nào được thiết lập và ý nghĩa của nó là gì?
Tóm tắt
Trong bài học này, bạn đã học về:
-
Nguyên tắc cơ bản của việc quản lý người dùng và nhóm trong Linux
-
Quản lý thông tin người dùng và nhóm được lưu trữ trong cơ sở dữ liệu mật khẩu và nhóm
-
Quản lý thư mục skeleton
-
Thêm và xóa tài khoản người dùng
-
Thêm và xóa tài khoản nhóm
-
Thay đổi mật khẩu của tài khoản người dùng
Các lệnh sau đã được nhắc tới trong bài học này:
useradd
::
Tạo một tài khoản người dùng mới.
groupadd
-
Tạo một tài khoản nhóm mới.
userdel
-
Xóa tài khoản người dùng.
groupdel
-
Xóa một tài khoản nhóm.
passwd
-
Thay đổi mật khẩu của tài khoản người dùng và kiểm soát tất cả các khía cạnh về tuổi thọ mật khẩu.
Đáp án Bài tập Hướng dẫn
-
Đối với mỗi mục sau đây, hãy chỉ ra tệp mà nó đang nhắc đến:
-
developer:x:1010:frank,grace,dave
/etc/group
-
root:x:0:0:root:/root:/bin/bash
/etc/passwd
-
henry:$1$.AbCdEfGh123456789A1b2C3d4.:18015:20:90:5:30::
/etc/shadow
-
henry:x:1000:1000:User Henry:/home/henry:/bin/bash
/etc/passwd
-
staff:!:dave:carol,emma
/etc/gshadow
-
-
Hãy quan sát kết quả sau để trả lời bảy câu hỏi tiếp theo:
# cat /etc/passwd | tail -3 dave:x:1050:1050:User Dave:/home/dave:/bin/bash carol:x:1051:1015:User Carol:/home/carol:/bin/sh henry:x:1052:1005:User Henry:/home/henry:/bin/tcsh # cat /etc/group | tail -3 web_admin:x:1005:frank,emma web_developer:x:1010:grace,kevin,christian dave:x:1050: # cat /etc/shadow | tail -3 dave:$6$AbCdEfGh123456789A1b2C3D4e5F6G7h8i9:0:20:90:7:30:: carol:$6$q1w2e3r4t5y6u7i8AbcDeFgHiLmNoPqRsTu:18015:0:60:7::: henry:!$6$123456789aBcDeFgHa1B2c3d4E5f6g7H8I9:18015:0:20:5::: # cat /etc/gshadow | tail -3 web_admin:!:frank:frank,emma web_developer:!:kevin:grace,kevin,christian dave:!::
-
ID người dùng (UID) và ID nhóm (GID) của
carol
là gì?UID là 1051 và GID là 1015 (trường thứ ba và thứ tư trong
/etc/passwd
). -
Vỏ nào được đặt cho
dave
vàhenry
?dave
sử dụng /bin/bash vàhenry
sử dụng /bin/tcsh (trường thứ bảy trong/etc/passwd
). -
Tên nhóm chính của
henry
là gì?Tên nhóm là
web_admin
(trường đầu tiên trong/etc/group
). -
Các thành viên của nhóm
web_developer
là ai? Ai trong số đó là quản trị viên nhóm?Các thành viên là
grace
,kevin
vàchristian
(trường thứ tư trong/etc/group
), nhưng chỉ cókevin
là quản trị viên của nhóm (trường thứ ba trong/etc/gshadow
) . -
Người dùng nào không đăng nhập được vào hệ thống?
Tài khoản người dùng
henry
bị khóa (có dấu chấm than phía trước mật khẩu đã băm trong/etc/shadow
). -
Người dùng nào nên thay đổi mật khẩu trong lần đăng nhập tiếp theo vào hệ thống?
Nếu trường thứ ba (Ngày thay đổi mật khẩu cuối cùng) trong
/etc/shadow
là 0 thì người dùng nên thay đổi mật khẩu của mình vào lần đăng nhập tiếp theo vào hệ thống. Do đó,dave
phải thay đổi mật khẩu của mình. -
Phải qua bao nhiêu ngày trước khi phải thay đổi mật khẩu cho
carol
?60 ngày (trường thứ năm trong
/etc/shadow
).
-
Đáp án Bài tập Mở rộng
-
Với quyền gốc, hãy chạy lệnh
useradd -m dave
để thêm tài khoản người dùng mới. Lệnh này thực hiện những thao tác nào? Giả sử rằngCREATE_HOME
vàUSERGROUPS_ENAB
trong/etc/login.defs
được đặt là "yes".Lệnh sẽ thêm một người dùng mới có tên
dave
vào danh sách người dùng trong hệ thống. Thư mục chính củadave
sẽ được tạo (theo mặc định là/home/dave
) và các tệp và thư mục chứa trong thư mục skeleton sẽ được sao chép vào thư mục chính. Cuối cùng, nhóm mới sẽ được tạo với cùng tên của tài khoản người dùng. -
Bây giờ, bạn đã tạo tài khoản
dave
; người dùng này có thể đăng nhập vào hệ thống không?Không, vì tài khoản
dave
đã bị khóa (xem dấu chấm than trong/etc/shadow
).# cat /etc/shadow | grep dave dave:!:18015:0:99999:7:::
Nếu bạn đặt mật khẩu cho
dave
, tài khoản này sẽ được mở khóa. Bạn có thể thực hiện việc này bằng cách sử dụng lệnhpasswd
.# passwd dave Changing password for user dave. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully.
-
Hãy xác định ID người dùng (UID) và ID nhóm (GID) của
dave
và tất cả các thành viên của nhómdave
.# cat /etc/passwd | grep dave dave:x:1015:1019::/home/dave:/bin/sh # cat /etc/group | grep 1019 dave:x:1019:
UID và GID của
dave
lần lượt là 1015 và 1019 (trường thứ ba và thứ tư trong/etc/passwd
) và nhómdave
không có thành viên nào (trường thứ tư trong/etc/group
trống) . -
Hãy tạo các nhóm
sys_admin
,web_admin
vàdb_admin
và xác định ID nhóm (GID) của chúng.# groupadd sys_admin # groupadd web_admin # groupadd db_admin # cat /etc/group | grep admin sys_admin:x:1020: web_admin:x:1021: db_admin:x:1022:
GID cho các nhóm
sys_admin
,web_admin
vàdb_admin
lần lượt là 1020, 1021 và 1022. -
Hãy thêm tài khoản người dùng mới có tên
carol
với UID 1035 và đặtsys_admin
làm nhóm chính,web_admin
vàdb_admin
làm nhóm phụ.# useradd -u 1035 -g 1020 -G web_admin,db_admin carol # id carol uid=1035(carol) gid=1020(sys_admin) groups=1020(sys_admin),1021(web_admin),1022(db_admin)
-
Hãy xóa tài khoản người dùng
dave
vàcarol
cũng như các nhómsys_admin
,web_admin
vàdb_admin
mà bạn đã tạo trước đó.# userdel -r dave # userdel -r carol # groupdel sys_admin # groupdel web_admin # groupdel db_admin
-
Hãy chạy lệnh
ls -l /etc/passwd /etc/group /etc/shadow /etc/gshadow
và mô tả đầu ra mà nó cung cấp cho bạn về quyền đối với tệp. Giả sử trong trường hợp hệ thống của bạn sử dụng mật khẩu ẩn, tệp nào trong số bốn tệp này bị ẩn vì lý do bảo mật?# ls -l /etc/passwd /etc/group /etc/shadow /etc/gshadow -rw-r--r-- 1 root root 853 mag 1 08:00 /etc/group -rw-r----- 1 root shadow 1203 mag 1 08:00 /etc/gshadow -rw-r--r-- 1 root root 1354 mag 1 08:00 /etc/passwd -rw-r----- 1 root shadow 1563 mag 1 08:00 /etc/shadow
Các tệp
/etc/passwd
và/etc/group
luôn có thể đọc được và bị ẩn vì lý do bảo mật. Khi mật khẩu bóng được sử dụng, bạn có thể thấyx
trong trường thứ hai của các tệp này bởi vì mật khẩu được mã hóa cho người dùng và nhóm được lưu trữ trong/etc/shadow
và/etc/gshadow
, và chúng chỉ có thể được đọc bởi người dùng gốc (trong một số hệ thống thì là bởi các thành viên thuộc nhómshadow
) -
Hãy chạy lệnh
ls -l /usr/bin/passwd
. Bit đặc biệt nào được thiết lập và ý nghĩa của nó là gì?# ls -l /usr/bin/passwd -rwsr-xr-x 1 root root 42096 mag 17 2015 /usr/bin/passwd
Lệnh
passwd
có bit SUID (ký tự thứ tư của dòng này) có nghĩa là lệnh được thực thi với các đặc quyền của chủ sở hữu tệp (quyền gốc). Đây là cách người dùng bình thường có thể thay đổi mật khẩu của họ.