Một phần của chuẩn này, chúng ta có thể thấy trên bất kì hệ điều hành kiểu Linux nào như những hệ thống UNIX BSD hay các bản phân phối Linux, là hệ thống giấy phép file của Unix.. Khi tạ
Trang 1Tìm hiểu giấy phép truy cập file cơ
bản trong UNIX
UNIX không chỉ là một hệ điều hành độc lập mà còn là một trong những thế hệ nối tiếp của AT&T UNIX được Ken Thompson và Dennis Ritchie phát triển cùng với sựu hỗ trợ của Brian Kernighan sau này.
Kể từ thời điểm đó, một chuẩn IEEE chính thức
cho hệ điều hành UNIX, có tên POSIX Standard
được phát triển Cái tên UNIX sau đó đã được
sử dụng để đặt tên cho những hệ điều hành
tuân thủ theo chuẩn duy nhất này của UNIX,
mà phiên bản hiện tại của chuẩn này (SUS 3)
rất giống với chuẩn POSIX:2001
Một phần của chuẩn này, chúng ta có thể thấy trên bất kì hệ điều hành kiểu Linux nào như những hệ thống UNIX BSD hay các bản phân phối Linux, là hệ thống giấy phép file của Unix Hệ thống này cung cấp ba kiểu đối tượng chính, mỗi đối tượng trong số này có thể được chấp thuận hay từ chối cấp ba loại giấy phép tương ứng
Các đối tượng
Trang 2Owner (chủ sở hữu)
Mỗi file và thư mục (một loại file cụ thể) đều có một Owner Đây là tài khoản người dùng có toàn quyền với file này, cho phép thực hiện một số thao tác như thay đổi giấy phép file Owner được coi là một tài khoản người dùng gốc (root) hay tài
khoản người dùng cá nhân, hay thậm chí là một tài khoản người dùng bất kì được
tự động tạo để sử dụng một vài chức năng của phần mềm mà chúng ta đã cài đặt Thông thường, Owner của một file là tài khoản được sử dụng để tạo file đó, mặc dù sau đó những file này có thể được gán lại cho Owner khác bằng lệnh chown
Group (nhóm)
Ngoài Owner, mỗi file đều có một tài khoản nhóm Nhóm này, giống như tài khoản người dùng là chủ sở hữu file (Owner), có một nhóm giấy phép truy cập vào file đó Khi tạo một file, nhóm này sẽ được coi là nhóm mặc định của tài khoản người dùng được sử dụng để tạo file này, dù sau đó file này có thể được gán lại cho một nhóm khác bằng lệnh chgrp Ví dụ, trong tài khoản gốc, điều này có nghĩa là nhóm sở hữu file này là nhóm wheel trong những hệ thống BSD Unix
World (cộng đồng)
Đây là đối tượng được cấp phép cuối cùng Đối tượng này bao gồm mọi tài khoản không phải là Owner hay thành viên của nhóm sở hữu file
Các loại giấy phép
Những giấy phép trong UNIX bao gồm ba giá trị nhị phân dạng số:
100 Giá trị số nhị phân 100 (giá trị thập phân tương ứng là 4) cấp
phép read hay r (đọc) file cho đối tượng Điều này có nghĩa là, dù đối tượng nào
được cấp giấy phép này đều có thể xem dữ liệu trong file Một tài khoản được cấp
Trang 3phép read tới một thư mục sẽ có thể xem dữ liệu trong thư mục đó.
10 Trị số nhị phân này (giá trị thập phân tương ứng là 2) tương ứng với giấy
phép write hay w (ghi) Có nghĩa là những đối tượng được cấp giấy phép này đều
có thể ghi dữ liệu hay thực hiện thay đổi cho file, hoặc thậm chí là xóa dữ liệu trong
đó Tương tự, một tài khoản được cấp phép write tới một thư mục cũng có thể thực
hiện thay đổi dữ liệu trong thư mục đó, như tạo các file mới
1 Đây là một trị số nhị phân (giá trị thập phân tương ứng là 1) thể hiện giấy
phép execute hay x (thực thi) Có nghĩa là những đối tượng được cấp giấy phép này
có thể chạy file, như trong trường hợp có thể chạy ứng dụng Nếu không có đối tượng nào được cấp phép chạy file, chúng sẽ không được truy cập vào bất cứ file nào ngoại trừ những dữ liệu thô trên ổ cứng Khi một tài khoản được cấp
phép execute tới một thư mục nó có thể truy cập vào thư mục đó để thực hiện mọi
thao tác, bao gồm cả xem dữ liệu, vì khi xem dữ liệu của một thư mục từ bên ngoài người dùng sẽ phải chạy ứng dụng rồi truy cập vào thư mục đó
Những trị số này có thể được kết hợp lại với nhau để tạo ra một nhóm giấy phép cho đối tượng người dùng cụ thể Ví dụ, khi kết hợp 100 và 10 sẽ tạo ra đối tượng với giấy phép 110 với quyền truy cập đọc và ghi, mà không có quyền thực thi
Tương ứng với trị số nhị phân 110 này là giá trị thập phân 6
Hiển thị và thay đổi giấy phép
Hiển thị giấy phép
Để kiểm tra các cài đặt giấy phép của một file, chúng ta chỉ cần dùng lệnh ls với tùy chọn –l để hiển thị thông tin bao gồm cả các giấy phép Khi chạy lệnh này trên thư
mục /etc/periodic của hệ thống mặc định Free BSD chúng ta sẽ thấy những thông
tin như sau:
> ls -l /etc/periodic
drwxr-xr-x 2 root wheel 1024 Sep 7 09:10 daily
Trang 4drwxr-xr-x 2 root wheel 512 Sep 7 09:10 monthly
drwxr-xr-x 2 root wheel 512 Sep 7 09:10 security
drwxr-xr-x 2 root wheel 512 Sep 7 09:10 weekly
Kí tự d ở phía đầu của mỗi dòng cho biết file đó là thư mục Nhóm giấy phép
còn lại sau đó được chia thành những nhóm gồm 3 kí tự, trong đó, theo thứ tự các
nhóm giấy phép này sẽ là ba quyền x, w và r của từng đối
tượng Owner, Group và World Dấu gạch nối giữa các nhóm để phân biệt giấy phép của các đối tượng Do đó, với những thư mục trong /etc/periodic, đối
tượng Owner có các giấy phép 111/7/rwx, tương ứng với r, w và x, trong khi đó giấy phép của cả đối tượng Group và World sẽ là 101/5/r-x, hay r và x.
Các cột root và wheel là những giấy phép chỉ định của đối
tượng Owner và Group cho những file này.
Thay đổi giấy phép
Giả sử chúng ta có một file tmp.txt, và chúng ta muốn thay đổi cấp phép cho file này Vì mục đích minh họa nên chúng ta sẽ gán giấy phép ban đầu cho file này như sau:
> ls -l tmp.txt
-rw-r r 1 jon doe 0 Nov 12 15:30 tmp.txt
Lưu ý rằng để thực hiện thay đổi file này chúng ta phải đăng nhập với tài khoản có đặc quyền hệ thống cần thiết để không chỉ tác động tới file mà còn tác động tới mọi đối tượng người dùng và nhóm Nếu không, chúng ta sẽ không thể gán file tmp.txt cho root user mà không đăng nhập như root
Quản lý bảo mật cấp độ file
Nếu sử dụng hệ điều hành UNIX hay kiểu UNIX, chúng ta cần nắm được những phương thức quản lý bảo mật cấp độ file cơ bản nhất Một yếu tố quan trọng với bảo mật cấp độ file trên hệ thống UNIX là để giới hạn giấy phép file đến mức có thể
Trang 5mà không làm ảnh hưởng tới chức năng của hệ điều hành, và không ngăn cản
chúng ta truy cập vào những file cần thiết
Quan trọng nhất, giấy phép file bên ngoài thư mục chủ của tài khoản người dùng
(như /usr/home/jon/ trong trường hợp tài khoản giả định jon ở trên,
hay /root/ trong trường hợp tài khoản root của hệ thống FreeBSD,
hay/home/jon/ và /root/ trên hệ thống nền tảng Linux điển hình) cần được giữ
nguyên như mặc định nếu chúng ta không biết chính xác thao tác đang thực hiện
Hầu hết các file dữ liệu trong thư mục chủ của tài khoản người dùng, như các file
văn bản, cần cấp giấy phép110/6/rw- cho tài khoản đó, và cấp giấy phép 000/0/-cho đối tượng Group và World Trong khi đó mọi thư mục con trong thư mục chủ
đó sẽ cấp phép 111/7/rwx cho đối tượng Owner, và 000/0/- cho đối
tượng Group và Worldnếu chúng ta chú ý tới quyền riêng tư với các tài khoản khác,
hay để ngăn ngừa những kẻ bẻ khóa bảo mật có thể chiếm quyền hay tạo những tài khoản khác trên hệ thống
Nắm được phương pháp sử dụng giấy phép file của UNIX là chúng ta đã hiểu được một thành phần bảo mật cơ bản của UNIX Nếu không sử dụng giấy phép bảo mật file, thì khả năng phân quyền rất mạnh của hệ điều hành UNIX giúp cung cấp khả năng bảo mật đáng kể so với các hệ điều hành khác đã bị suy giảm
Xian (Theo
TechRepublic)