Chmod

Trong các hệ điều hành giống Unix, chmod là một lệnh của trình bao Unix và là lời gọi hệ thống, dùng để thay đổi quyền truy cập tập tin của các đối tượng tập tin (bao gồm cả tập tin và thư mục, hay đặt các cờ đặc biệt lên đối tượng tập tin.Tutorial for chmod  Chmod là viết tắt của change mode.

 Lịch sử 
Lệnh chmod xuất hiện lần đầu trong phiên bản 1 của AT&T Unix.

Cú pháp lệnh
chmod [options] mode[,mode] file1 [file2...]
chmod

Các tùy chọn thường sử dụng:

 -R đệ quy, lệnh có tác dụng cả với các đối tượng trong thư mục con
 -f  bắt buộc, tiếp tục thực hiện với tất cả các đối tượng dù xảy ra lỗi
 -v hiển thị tiến trình làm việc với các đối tượng

Nếu đối số của lệnh là một liên kết tượng trưng, lệnh sẽ ảnh hưởng tới đối tượng đích của liên kết. Chế độ truy cập gán trên liên kết thường không được sử dụng.

Để xem chế độ truy cập của tập tin, ta dùng lệnh ls hay stat:

$ ls -l phoneNumbers
-rwxr-xr--  1 dgerman  staff  823 Dec 16 15:03 phoneNumbers
$ stat -c %a phoneNumbers
754

Các chế độ r, w, và x xác định quyền đọc (read), ghi (write) và thực thi (execute) trên tập tin. Tập tin phoneNumbers có thể được đọc, ghi, thực thi bởi chủ sở hữu dgerman, các người dùng trong nhóm staff có thể đọc và thực thi, tất cả các người dùng khác có quyền đọc.

Chế độ bát phân

Định dạng số của chmod cung cấp một cách biểu diễn và gán chế độ truy cập bằng 4 ký số bát phân. 3 ký số bên phải là quyền truy cập của chủ sở hữu, nhóm và các người dùng khác, ký số thứ tư từ phải sang trái biểu diễn các cờ đặc biệt setuid, setgid và sticky</tt>.

Quyền truy cập biểu diễn dạng số
 # quyền  rwx 7  toàn quyền  111 6  đọc và ghi  110 5  đọc và thực thi  101 4  chỉ đọc  100 3  ghi và thực thi  011 2  chỉ ghi  010 1  chỉ thực thi  001 0  không có quyền  000

Ví dụ 
Cho phép người dùng trong nhóm programmers có thể cập nhật tập tin:
$ ls -l sharedFile
-rw-r--r--  1 jsmith programmers 57 Jul  3 10:13  sharedFile
$ chmod 664 sharedFile
$ ls -l sharedFile
-rw-rw-r--  1 jsmith programmers 57 Jul  3 10:13  sharedFile

Do các cờ setuid, setgid và sticky không được đặt, lệnh trên tương đương với:

$ chmod 0664 sharedFile

Chế độ tượng trưng

Lệnh chmod cũng cho phép sử dụng các ký hiệu tượng trưng để điều chỉnh một chế độ cụ thể mà không ảnh hưởng tới các chế độ khác. Chế độ tượng trưng gồm 3 thành phần, kết hợp lại thành một chuỗi:

$ chmod [tham chiếu][toán tử][chế độ] file...

Tham chiếu (hay lớp) dùng để xác định những người dùng nào sẽ được điều chỉnh quyền truy cập. Tham chiếu mặc định sử dụng là "all" cho tất cả các nhóm nếu không có tham chiếu được chỉ định. Tuy nhiên việc thay đổi các quyền truy cập còn phụ thuộc vào thiết lập umask. Tham chiếu được biểu diễn bởi các ký tự sau:
 Tham chiếu Nhóm  Mô tảu  người dùng    chủ sở hữu tập ting  nhóm   các người dùng thuộc nhóm của tập tino  khác  các người dùng không thuộc nhóm cũng không phải chủ sở hữua  tất cả    tất cả ba lớp trên, tương đương với ugo

Chương trình chmod sử dụng một toán tử để quy định cách thay đổi chế độ của tập tin:
 Toán tử Mô tả+ Thêm chế độ sau đó vào tập tin- Xóa chế độ theo sau trong tập tin (nếu có)= quy định chính xác chế độ cho tập tin

Một ký tự sẽ biểu diễn chế độ được thêm/xóa trên tập tin. Có ba chế độ cơ bản như sau:
 Chế độ Tên Mô tảr  read   đọc tập tin/ liệt kê các tập tin trong một thư mụcw  write  ghi vào tập tin/ tạo tập tin mới trong thư mụcx  execute  thực thi tập tin/xem đệ quy một cây thư mụcX  special execute  không hẳn là một quyền truy cập nhưng có thể sử dụng thay cho x. X đặt quyền thực thi cho thư mục bất chấp các quyền hiện có và đặt quyền thực thi có tập tin đã có ít nhất 1 quyền thực thi đã thiết lập (chủ sở hữu, nhóm, khác). Lệnh chỉ hữu dụng khi sử dụng kèm với toán tử '+' và thường sử dụng cùng với tùy chọn -R để đặt quyền truy cập cho nhóm hay "người dùng khác" trên một thư mục lớn mà không cần thiết lập quyền thực thi trên các tập tin thông thường (ví dụ tập tin văn bản), ví dụ khi dùng lệnh "chmod -R a+rx.", tất cả tập tin trong cây thư mục (cả tập văn bản) đều được gắn cờ x trong khi lệnh "chmod -R a+rX." chỉ gắn cờ cho các file execute.s  setuid/gid  xem Chế độ đặc biệtt  sticky  xem Chế độ đặc biệt

Dùng dấu phẩy để cách các chế độ tượng trưng nếu muốn thực hiện nhiều thay đổi trong một lệnh.

Ví dụ sử dụng chế độ tượng trưng
Các chế độ đặc biệt
Ví dụ bằng dòng lệnh

Lời gọi hệ thống

Đọc thêm
Tập tin system permissions
Modes (Unix)
chown, lệnh dùng để thay đổi chủ sở hữu của một tệp hay thư mục trên các hệ điều hình tương tự Unix
chgrp, lệnh dùng để thay đổi nhóm của một tệp hay thư mục trên các hệ điều hình tương tự Unix
cacls, lệnh được sử dụng trên Windows NT và các phiên bản dẫn xuất của nó để sửa đổi các danh sách kiểm soát truy cập được liên kết với một tệp hoặc thư mục
attrib
User identifier
Group identifier
List of Unix programs

Tham khảo

 Liên kết ngoài 

chmod — manual page from GNU coreutils.
GNU "Setting Permissions" manual
Solaris 9 chmod man page
Mac OS X chmod man page, which also supports access control lists.
CHMOD-Win 3.0 — Freeware Windows' ACL ←→ CHMOD converter.
Beginners tutorial with on-line "live" example
chmod examples  Searchable examples

Thể loại:Unix
Thể loại:Bảo mật hệ điều hành
Thể loại:Tiện ích Unix SUS2008