×

Lệnh umask trong Bash đặt quyền mặc định cho tệp tin

Khi làm việc với hệ điều hành Linux hoặc Unix, việc quản lý quyền truy cập tệp tin là một điều vô cùng quan trọng. Bài viết dưới đây sẽ giúp bạn tìm hiểu về lệnh umask trong Bash — một công cụ hữu ích cho việc thiết lập quyền mặc định cho các tệp tin và thư mục mới được tạo ra. Bạn sẽ biết được cách sử dụng, ý nghĩa của các giá trị quyền, cũng như cách điều chỉnh nó theo yêu cầu công việc của bạn.

Umask là gì?

Umask (user file-creation mode mask) là một tham số trong hệ thống Unix/Linux được sử dụng để xác định quyền truy cập mặc định cho các tệp tin và thư mục mới được tạo ra. Umask chỉ định quyền mà người dùng muốn khóa lại, tức là quyền mà sẽ không được cấp cho các tệp tin hoặc thư mục mới.

Khi một tệp tin hay thư mục mới được tạo ra, hệ thống sẽ dựa vào umask để điều chỉnh quyền truy cập theo cách mà bạn đã xác định. Giá trị umask được đặt dưới dạng số bát phân và nó thực hiện chức năng như một bộ lọc lên quyền mặc định.

Cấu trúc quyền truy cập

Trong hệ thống Unix/Linux, quyền truy cập thường được mô tả bởi ba loại người dùng: chủ sở hữu (owner), nhóm (group), và người khác (others). Mỗi loại người dùng có thể có một trong ba quyền sau:

  • Đọc (Read, biểu thị bởi số 4)
  • Ghi (Write, biểu thị bởi số 2)
  • Thực thi (Execute, biểu thị bởi số 1)

Quyền truy cập tổng cộng sẽ được tính bằng phép cộng các giá trị này. Ví dụ, nếu một tệp tin có quyền đọc và ghi cho chủ sở hữu và quyền chỉ đọc cho nhóm, giá trị quyền sẽ là 6 cho chủ sở hữu (4 + 2) và 4 cho nhóm.

Cách hoạt động của umask

Khi bạn tạo một tệp tin hoặc thư mục mới, hệ thống sẽ mạnh định các quyền mặc định. Thông thường, quyền mặc định cho một tệp tin mới là 666 (đọc và ghi cho tất cả người dùng) và cho một thư mục mới là 777 (đọc, ghi và thực thi cho tất cả người dùng).

Khi umask được áp dụng, nó sẽ khóa một số quyền từ các giá trị mặc định này. Chẳng hạn, nếu umask là 022, nghĩa là quyền ghi cho nhóm và người khác sẽ bị chặn lại. Quyền cuối cùng cho thư mục mới sẽ là 755 (7 cho chủ sở hữu, 5 cho nhóm, và 5 cho người khác) và cho tệp tin mới sẽ là 644 (6 cho chủ sở hữu và 4 cho nhóm và người khác).

Cách sử dụng lệnh umask

Để kiểm tra giá trị umask hiện tại, bạn chỉ cần mở terminal và nhập:

umask

Giá trị trả về sẽ là số bát phân đại diện cho umask hiện tại. Ví dụ, bạn có thể thấy giá trị như:

0002

Để đặt giá trị umask mới cho phiên hiện tại, bạn có thể nhập trực tiếp lệnh umask với giá trị mong muốn. Ví dụ:

umask 027

Một số giá trị umask phổ biến và ý nghĩa của chúng

  • 0000: Không có quyền nào bị chặn (tất cả quyền đều được cấp cho tất cả người dùng).
  • 0022: Chặn quyền ghi cho nhóm và người khác (thư mục mới sẽ có quyền 755, tệp mới 644).
  • 0077: Chặn tất cả quyền cho nhóm và người khác (tất cả tệp và thư mục mới chỉ có quyền cho chủ sở hữu).

Các ví dụ thực tế với umask

Dưới đây là một vài ví dụ thực tế để giúp bạn hiểu rõ hơn về cách umask hoạt động:

Ví dụ 1: Đặt umask 002

Giả sử, bạn muốn tạo một môi trường hợp tác cho một nhóm lập trình viên, nơi mà nhóm có thể ghi và đọc tệp tin. Bạn sẽ thiết lập umask như sau:

umask 002

Với umask này, khi bạn tạo một thư mục mới bằng lệnh mkdir mydir, quyền truy cập sẽ được thiết lập như sau:

  • Thư mục mới mydir sẽ có quyền là 775 (chủ sở hữu có quyền đọc, ghi và thực thi; nhóm có quyền đọc, ghi và thực thi; người khác có quyền đọc).

Ví dụ 2: Đặt umask 007

Nếu bạn đang làm việc trong một môi trường rất nhạy cảm, nơi mà bạn muốn đảm bảo rằng không một ai ngoài nhóm làm việc có thể tiếp cận các tệp tin, bạn có thể đặt umask như sau:

umask 007

Khi đó, khi tạo tệp tin, quyền truy cập sẽ là 770 cho thư mục (chủ sở hữu và nhóm có quyền đọc, ghi và thực thi; người khác không có quyền gì).

Giới thiệu các biến môi trường

Ngoài việc sử dụng lệnh umask trong terminal, bạn cũng có thể thiết lập umask trong tệp cấu hình của shell, ví dụ như trong ~/.bashrc hay ~/.profile. Bạn chỉ cần thêm dòng:

umask 002

Điều này sẽ đảm bảo rằng mỗi khi bạn mở một phiên làm việc mới, umask sẽ được thiết lập như bạn mong muốn.

Kết luận

Khi làm việc với các tệp tin và thư mục trong hệ thống Unix/Linux, việc hiểu và sử dụng umask là cần thiết để quản lý quyền truy cập một cách hiệu quả. Qua bài viết này, bạn đã có cơ sở để áp dụng umask theo cách mà bạn mong muốn, từ việc tạo các tệp tin và thư mục cho đến quản lý quyền truy cập trong một nhóm làm việc. Việc thiết lập umask đúng cách không chỉ bảo vệ dữ liệu mà còn tạo ra một môi trường làm việc minh bạch.

Comments