Tài khoản và quyền
5.1 Khái niệm tài khoản và nhóm tài khoản
5.1.1 Tài khoản
Để có thể sử dụng hệ thống, NSD cần có một tài khoản. Tài khoản được đặc trưng bởi một cặp tên đăng nhập (user name, login) và mật khẩu (password). Mỗi tài khoản có một mã số người sử dụng (user id) mà hệ thống sử dụng để xác định tài khoản thực hiện các thao tác sau khi đăng nhập. Trong hệ điều hành Linux có 3 loại tài khoản: tài khoản của người quản trị hệ thống (root) có toàn quyền thực hiện các thao tác trên hệ thống, tài khoản thông thường chỉ có toàn quyền trên một thư mục dành riêng gọi là thư mục nhà, trên các thư mục khác chỉ có quyền hạn chế. Loại tài khoản thứ 2 này được chia làm 2 loại, một loại chỉ dùng để chạy các ứng dụng hệ thống (daemon), và một loại dành cho NSD thông thường. Với tài khoản của người sử dụng thông thường, ngoài tên, mật khẩu và mã số tài khoản, Linux còn cung cấp thêm thư mục nhà, shell mặc định cho NSD. Các thông tin này thường được đặt ở tệp /etc/passwd.
Tệp /etc/passwd là một tệp văn bản, mỗi dòng tương ứng với một tài khoản. Trong dòng có nhiều trường thông tin phân cách nhau bằng dấu :, lần lượt là tên tài khoản, mật khẩu, mã số tài khoản, mã số nhóm mặc định của tài khoản, Mô tả ngắn về tài khoản, thư mục nhà và shell,
[trunghq@localhost trunghq]$ cat /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin news:x:9:13:news:/etc/news: uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin ntp:x:38:38::/etc/ntp:/sbin/nologin trunghq:x:500:500::/home/trunghq:/bin/bash
Trường mật khẩu trong mỗi hàng thường có giá trị x. Giá trị này chỉ ra rằng mật khẩu không được lưu ở trong tệp /etc/passwd mà được mã hóa và lưu trong tệp /etc/shadow. Trường thứ 3 và thứ 4 lần lượt lưu trữ mã số của tài khoản và mã số của nhóm tài khoản mặc định. Linux phân biệt NSD chỉ thông qua mã số NSD, do đó nếu tồn tại 2 dòng có cùng mã só NSD, hệ
thống sẽ báo lỗi. Nếu có 2 dòng có cùng mã số tài khoản, khi đăng nhập vào hệ thống tài khoản đứng trước sẽ được sử dụng.
Tệp shadow chứa mật khẩu và các thông tin có liên quan đến mật khẩu. Tương tự như /etc/passwd, /etc/shadow gồm nhiều dòng, phân tách nhau bằng dấu :.
User:Pwd:Last pwd change :Minimum:Maximum:Warn:Inactive :Expire
User: Tên đăng nhập
Password: Mật khẩu
Last password change : Số ngày từ 01/01/1970 đến ngày thay đổi mật khẩu cuối cùng Minimum: Số ngày tối thiểu giữa 2 lần thay đổi mật khẩu. Maximum: Số ngày tối đa mật khẩu có giá trị. Warn : Số ngày đến khi mật khẩu bị hết hạn. Inactive : Số ngày đến khi mật khẩu bị vô hiệu hóa vì quá hạn. Expire : Số ngày từ 01/01/1970 đến khi mật khẩu bị vô hiệu