Trên hệ điều hành Linux và Unix, tất cả các tệp mới được tạo với một bộ quyền mặc định. Các umasktiện ích cho phép bạn xem hoặc để thiết lập mặt nạ tạo chế độ tập tin, trong đó xác định các bit cho phép cho các tập tin hoặc thư mục mới được tạo ra.

Nó được sử dụng bởi mkdir, touch, tee và các lệnh khác để tạo các tệp và thư mục mới.

Quyền của Linux

Trước khi đi sâu hơn, hãy giải thích ngắn gọn về mô hình quyền của Linux.

Trong Linux, mỗi tệp được liên kết với một chủ sở hữu và một nhóm và được chỉ định quyền truy cập quyền cho ba lớp người dùng khác nhau:

  • Chủ sở hữu tệp.
  • Các thành viên trong nhóm.
  • Mọi người khác.

Có ba loại quyền áp dụng cho mỗi lớp:

  • Quyền đọc.
  • Quyền ghi.
  • Quyền thực thi.

Khái niệm này cho phép bạn chỉ định người dùng nào được phép đọc tệp, ghi vào tệp hoặc thực thi tệp.

Để xem các quyền đối với tệp, hãy sử dụng ls lệnh:

ls -l dirname
drwxr-xr-x 12 linuxize users 4.0K Apr  8 20:51 dirname
|[-][-][-]    [------] [---]
| |  |  |        |       |       
| |  |  |        |       +-----------> Group
| |  |  |        +-------------------> Owner
| |  |  +----------------------------> Others Permissions
| |  +-------------------------------> Group Permissions
| +----------------------------------> Owner Permissions
+------------------------------------> File Type

Ký tự đầu tiên đại diện cho loại tệp có thể là tệp thông thường ( - ), thư mục ( d ), liên kết tượng trưng ( l ) hoặc bất kỳ loại tệp đặc biệt nào khác.

Chín ký tự tiếp theo đại diện cho các quyền, mỗi bộ ba ký tự. Nhóm đầu tiên hiển thị quyền của chủ sở hữu, nhóm thứ hai cho phép nhóm và nhóm cuối cùng hiển thị quyền của mọi người khác.

Ký tự rcó giá trị bát phân 4 là viết tắt của đọc, w với giá trị bát phân là 2 viết, x với giá trị bát phân là 1 cho quyền thực thi và ( - ) với giá trị bát phân là 0 không có quyền.

Ngoài ra còn có ba người kia quyền tập tin đặc biệt loại: setuidsetgid,và Sticky Bit.

Trong ví dụ trên ( rwxr-xr-x ) có nghĩa là chủ sở hữu có quyền đọc, ghi và thực thi ( rwx), nhóm và những người khác có quyền đọc và thực thi.

Nếu chúng tôi trình bày các quyền đối với tệp bằng ký hiệu số, chúng tôi sẽ đưa ra con số 755:

  • Chủ sở hữu: rwx=4+2+1 = 7
  • Nhóm: r-x=4+0+1 = 5
  • Khác: r-x=4+0+1 = 5

Khi được biểu diễn bằng ký hiệu số, quyền có thể có ba hoặc bốn chữ số bát phân (0-7). Chữ số đầu tiên đại diện cho các quyền đặc biệt và nếu nó bị bỏ qua, điều đó có nghĩa là không có quyền đặc biệt nào được đặt trên tệp. Trong ví dụ của chúng ta 755 cũng giống như 0755. Chữ số đầu tiên có thể là sự kết hợp của 4for setuid2 for setgid và 1 for Sticky Bit.

chmod Quyền đối với tệp có thể được thay đổi bằng lệnh và quyền sở hữu bằng chown lệnh.

Hiểu umask

Theo mặc định, trên các hệ thống Linux, quyền tạo mặc định 666 dành cho tệp, quyền này cấp quyền đọc và ghi cho người dùng, nhóm và những người khác và 777 cho các thư mục, có nghĩa là quyền đọc, ghi và thực thi đối với người dùng, nhóm và những người khác. Linux không cho phép tạo tệp với quyền thực thi.

Các quyền tạo mặc định có thể được sửa đổi bằng cách sử dụng tiện ích umask.

umask chỉ ảnh hưởng đến môi trường shell hiện tại. Trên hầu hết các bản phân phối Linux, giá trị umask toàn hệ thống mặc định được đặt trong tệp pam_umask.so hoặc /etc/profile.

Nếu bạn muốn chỉ định một giá trị khác trên cơ sở mỗi người dùng, hãy chỉnh sửa các tệp cấu hình shell của người dùng, chẳng hạn như ~/.bashrc hoặc ~/.zshrc. Bạn cũng có thể thay đổi giá trị umask phiên hiện tại bằng cách chạy umask theo sau là giá trị mong muốn.

Để xem giá trị umask hiện tại, chỉ cần nhập umask mà không có bất kỳ đối số nào:

umask

Đầu ra sẽ bao gồm

022

Các giá trị umask có chứa các bit cho phép rằng sẽ KHÔNG được đặt trên các tập tin mới được tạo ra và thư mục.

Như chúng ta đã đề cập, các quyền tạo mặc định cho các tệp là 666 và cho các thư mục 777. Để tính toán các bit quyền của các tệp mới, hãy trừ giá trị umask khỏi giá trị mặc định.

Ví dụ: để tính toán mức độ umask 022 ảnh hưởng đến các tệp và thư mục mới được tạo, hãy sử dụng:

  • Files: 666 - 022 = 644. Chủ sở hữu có thể đọc và sửa đổi các tệp. Nhóm và những người khác chỉ có thể đọc các tệp.
  • Thư mục: 777 - 022 = 755 Chủ sở hữu có thể cd vào thư mục và liệt kê, đọc, sửa đổi, tạo hoặc xóa các tệp trong thư mục. Nhóm và những người khác có thể cd vào thư mục và liệt kê và đọc các tệp.

Bạn cũng có thể hiển thị giá trị mặt nạ trong ký hiệu tượng trưng bằng cách sử dụng tùy chọn -S:

umask -S
u=rwx,g=rx,o=rx

Không giống như ký hiệu số, giá trị ký hiệu tượng trưng chứa các bit quyền sẽ được đặt trên các tệp và thư mục mới được tạo.

Đặt giá trị umask

Umask tạo tệp có thể được đặt bằng cách sử dụng ký hiệu bát phân hoặc ký hiệu. Để thực hiện các thay đổi vĩnh viễn, thiết lập mới umask giá trị trong một tập tin cấu hình toàn cầu như file /etc/profile mà sẽ ảnh hưởng đến tất cả người dùng hoặc trong tập tin cấu hình vỏ của người dùng như ~/.profile~/.bashrc hoặc ~/.zshrc, mà sẽ chỉ ảnh hưởng đến người dùng. Tệp người dùng được ưu tiên hơn các tệp chung.

Trước khi thực hiện các thay đổi đối với giá trị umask, hãy đảm bảo rằng giá trị mới không gây ra rủi ro bảo mật tiềm ẩn. Các giá trị ít hạn chế hơn 022 nên được sử dụng hết sức thận trọng. Ví dụ: umask 000 có nghĩa là bất kỳ ai cũng có quyền đọc, ghi và thực thi trên tất cả các tệp mới được tạo.

Giả sử chúng ta muốn đặt các quyền hạn chế hơn cho các tệp và thư mục mới được tạo để những người khác sẽ không thể truy cập cd vào các thư mục và đọc tệp. Các quyền chúng ta muốn 750 dành cho thư mục và 640 tệp.

Để tính toán giá trị umask, chỉ cần trừ các quyền mong muốn từ quyền mặc định:

Giá trị umask: 777-750 = 027

umask Giá trị mong muốn được biểu thị bằng ký hiệu số là 027.

Để đặt vĩnh viễn giá trị mới trên toàn hệ thống, hãy mở /etc/profile bằng trình chỉnh sửa văn bản của bạn:

sudo nano /etc/profile

và thay đổi hoặc thêm dòng sau vào đầu tệp /etc/profile

umask 027

Để các thay đổi có hiệu lực, hãy chạy lệnh source sau hoặc đăng xuất và đăng nhập:

source /etc/profile

Để xác minh cài đặt mới, chúng tôi sẽ tạo một tệp và thư mục mới bằng cách sử dụng mkdir và touch :

mkdir newdir
touch newfile

Nếu bạn kiểm tra các quyền bằng cách sử dụng ls, bạn sẽ nhận thấy rằng tệp mới có 640 và các 750 quyền thư mục mới , như chúng ta muốn:

drwxr-x--- 2 linuxize users 4096 Jul  4 18:14  newdir
-rw-r----- 1 linuxize users    0 Jul  4 18:14  newfile

Một cách khác để đặt mask tạo tệp là sử dụng ký hiệu tượng trưng. Ví dụ umask u=rwx,g=rx,o= là giống như umask 027.

Phần kết luận

Trong hướng dẫn này, chúng ta đã giải thích các quyền của Linux và cách sử dụng lệnh umask để đặt các bit quyền cho các tệp hoặc thư mục mới được tạo.

Để biết thêm thông tin, hãy nhập man umask terminal của bạn.

Nếu bạn có bất kỳ câu hỏi nào, hãy để lại bình luận bên dưới.

4 2 votes
Article Rating
Tagged:
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments