TỰ HỌC SỬ DỤNG LINUX - Trang 87

78

Làm quen với hệ thống tập tin ext3fs

Nếu bạn biết về mã đôi của hệ cơ số tám, thì hiểu rằng những số đứng sau tên

lệnh không phải gì khác mà chính là bản ghi ở hệ cơ số tám của 9 bit xác định
quyền truy cập cho chủ sở hữu, nhóm sở hữu và những người dùng còn lại.

Chỉ có chủ sở hữu tập tin hoặc người dùng cao cấp mới có khả năng thay đổi

quyền truy cập bằng câu lệnh chmod. Để có thể thay đổi quyền của nhóm sở hữu,
thì chủ sở hữu (không phải root) phải là thành viên của nhóm đó.

Để kết thúc bài học về quyền truy cập đến tập tin cần nói thêm về những tính

chất khác có thể gặp của tập tin mà cũng xác định bằng lệnh chmod. Đó là những
tính chất cho các tập tin thực thi. Trong mô tả inode, phần cấu trúc 2 byte xác
định tính chất tập tin, chúng chiếm các vị trí 5 – 7 ngay sau mã cho biết dạng
tập tin. Tính chất đầu tiên đó là “

bit thay đổi ID

10

người dùng”. Ý nghĩa của bit

này như sau.

Thông thường, khi người dùng gọi thực hiện một chương trình nào đó, thì

chương trình này nhận được những quyền truy cập đến tập tin và thư mục của
người dùng đã chạy nó. Nếu như có đặt “bit thay đổi ID người dùng”, thì chương
trình nhận được quyền truy cập đến tập tin và thư mục của chủ sở hữu tập
tin chương trình. Như vậy bit này còn có thể gọi là “

bit thay đổi ID chủ sở hữu

tiến trình”. Điều này cho phép giải quyết một số vấn đề khó thực hiện. Ví dụ
điển hình nhất là câu lệnh thay đổi mật khẩu passwd. Tất cả mật khẩu được
lưu trong tập tin /etc/passwd (hoặc một tập tin mã hóa nào khác, trong đa số
trường hợp là /etc/shadow) mà chủ sở hữu là người dùng cao cấp root. Vì thế
chương trình nếu do người dùng chạy sẽ không thể thực hiện lệnh ghi vào tập tin
này. Có nghĩa là người dùng không thể thay đổi mật khẩu của mình. Nhưng tập
tin /usr/bin/passwd có “bit thay đổi ID người dùng”, và root là chủ sở hữu tập
tin chương trình này. Do đó chương trình thay đổi mật khẩu passwd được chạy
với quyền root và nhận được quyền ghi vào tập tin /etc/passwd. Tất nhiên là
trong chương trình passwd đã có mã để người dùng chỉ được phép thay đổi một
dòng trong tập tin này – dòng tài khoản của người dùng đó.

Người dùng cao cấp root có thể đặt “bit thay đổi ID người dùng” bằng lệnh:

[root]# chmod +s tên_tập_tin

Tương tự như vậy chúng ta có “

bit thay đổi ID nhóm”. Ý nghĩa của bit này

cũng giống như trên nhưng chỉ thay thế “người dùng” bằng “nhóm”.

Một tính chất nữa của tập tin thực thi đó là “

bit dính” (chính xác hơn là “bit

lưu chương trình”) hay thuật ngữ tiếng Anh là “sticky bit”. Chúng ta sẽ dùng
thuật ngữ “bit lưu chương trình” vì đúng với ngữ cảnh này hơn. Bit này chỉ hệ
thống biết sau khi dừng chương trình cần lưu lại nó trong bộ nhớ. Rất thuận tiện
khi đặt bit này cho những chương trình thường gọi, vì trong trường hợp này sẽ
tiết kiệm được thời gian nạp chương trình vào bộ nhớ mỗi lần chạy. Bit này chỉ
cần thiết trên những máy cũ. Trên những máy “top model” (high end) hiện đại
thì rất hiếm khi sử dụng.

Nếu sử dụng phương án xác định tính chất ở dạng số của lệnh chmod, thì giá

trị của ba tính chất vừa nói phải nằm trước những số xác định quyền truy cập
(tức là số đầu tiên trong dãy 4 số xác định tất cả các tính chất của tập tin). Ví dụ:

10

Identificator, mỗi người dùng có một ID dạng số như vậy. ID của người dùng là duy nhất, không trùng lặp.

Ví dụ ID của người dùng cao cấp root là 0.

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.