Các lệnh chmod và chown trong hệ thống Linux được sử dụng để thiết lập quyền truy cập, nhưng chúng có mục đích và cách sử dụng khác nhau. Chmod dùng để thay đổi quyền của tệp và thư mục, ví dụ như đặt quyền 777 cho một thư mục không thể đọc hoặc ghi. Trong khi đó, chown dùng để thay đổi chủ sở hữu và nhóm của tệp hoặc thư mục, giúp quản lý quyền truy cập của người dùng.
Sử dụng lệnh chmod
Cách sử dụng: chmod [-cfvR] [--help] [--version] chế độ tệp...
Giải thích: Quyền truy cập trong Linux/Unix được phân thành ba cấp: chủ sở hữu, nhóm và người khác. Chmod giúp kiểm soát cách mà người dùng khác có thể truy cập vào tệp.
Chế độ: Chuỗi ký hiệu quyền, dạng như sau: [ugoa...][[±=][rwxX]...][,...], trong đó u là chủ sở hữu của tệp, g là các thành viên cùng nhóm với chủ sở hữu, o là những người khác, a đại diện cho cả ba loại trên.
+ thêm quyền, - bỏ quyền, = thiết lập quyền cụ thể.
r quyền đọc, w quyền ghi, x quyền thực thi, X chỉ thêm quyền thực thi nếu tệp là thư mục hoặc đã được thiết lập quyền thực thi trước đó.
-c hiển thị thông báo nếu có thay đổi quyền
-f không hiển thị thông báo lỗi nếu không thể thay đổi quyền
-v hiển thị thông tin chi tiết về việc thay đổi quyền
-R áp dụng thay đổi quyền đệ quy cho tất cả các tệp và thư mục con
--help hiển thị hướng dẫn sử dụng
--version hiển thị phiên bản
Ví dụ: chmod -R 777 /www/itbulu.com/wp-content/*
Đặt quyền đọc, ghi cho tất cả các tệp trong thư mục trên, cũng có thể viết lại là:
cd wp-content chmod -R 777 *
Sử dụng lệnh chown
Quyền sử dụng: root
Cách sử dụng: chown [-cfhvR] [--help] [--version] người_dùng[:nhóm] tệp...
Giải thích: Trong Linux/Unix, mọi tệp đều có chủ sở hữu. Chown cho phép thay đổi chủ sở hữu của tệp. Chỉ có người quản trị hệ thống (root) mới có quyền thực hiện lệnh này.
người_dùng: ID mới của chủ sở hữu
nhóm: nhóm mới của chủ sở hữu
-c hoặc --change: tương tự như -v, nhưng chỉ hiển thị phần đã thay đổi
-f hoặc --quiet hoặc --silent: không hiển thị thông báo lỗi
-h hoặc --no-dereference: chỉ thay đổi quyền cho liên kết tượng trưng, không ảnh hưởng đến các tệp liên quan
-R hoặc --recursive: áp dụng thay đổi quyền đệ quy cho tất cả các tệp và thư mục con
-v hoặc --verbose: hiển thị quá trình thực hiện lệnh
--dereference: ngược lại với -h
--help: hiển thị hướng dẫn sử dụng
--reference=<tệp hoặc thư mục tham chiếu>: sao chép chủ sở hữu và nhóm từ tệp hoặc thư mục tham chiếu
--version: hiển thị thông tin phiên bản
Ví dụ: chown -R www:www /home/wwwroot/*
Giải thích: -R áp dụng thay đổi cho tất cả các tệp và thư mục, www đầu tiên là tên chủ sở hữu, www thứ hai là tên nhóm.
So sánh giữa chown và chmod
Chown thay đổi chủ sở hữu và nhóm của tệp và thư mục.
- Thay đổi chủ sở hữu của tệp hh.c thành người dùng codetc:
chown codetc hh.c
- Đổi chủ sở hữu và nhóm của thư mục /tmp/sco thành codetc và net:
chown -R codetc:net /tmp/sco
Chmod thay đổi quyền đọc, ghi, thực thi của tệp và thư mục.
- Thay đổi quyền của tệp hh.c thành đọc, ghi, thực thi:
chmod 777 hh.c
- Đổi quyền của tất cả các tệp trong thư mục thành đọc, ghi, thực thi:
chmod 777 .
Đổi tên thư mục và mở rộng bằng *
Thay đổi quyền của tất cả các tệp htm:
chmod 777 *.htm
- Đổi quyền của thư mục /tmp/sco thành đọc, ghi, thực thi:
chmod 777 /tmp/sco
- Đổi quyền của tất cả các thư mục con:
chmod 777 *
Đổi tên thư mục bằng *
- Đổi quyền của tất cả các tệp và thư mục con trong /tmp/sco:
chmod -R 777 /tmp/sco
Quyền đọc: r=4, quyền ghi: w=2, quyền thực thi: x=1. 777 là quyền tối đa, có thể kết hợp tùy ý.