Đặt UID, Nhận UID và Các bit dính trong Quyền tệp Linux là gì?
Là một người dùng mới làm quen với Linux, bạn tìm hiểu về các quyền và quyền sở hữu được liên kết với tệp và thư mục. Hệ điều hành giống Linux / Unix cho phép bạn thiết lập kết hợp các quyền chín bit để ngăn người dùng khác truy cập tệp / thư mục không cần thiết. Tương tự với những điều này là các quyền đặc biệt đối với các tệp thực thi được gọi là UID đặt, GID đặt và các bit cố định.
Việc hiểu các quyền đặc biệt có thể hơi quá sức đối với các quản trị viên Linux đầy tham vọng. Tại đây, bạn sẽ tìm hiểu một chút kiến thức cơ bản về các quyền đối với tệp thông thường và giải thích chúng khác với các quyền đặc biệt như thế nào. Chúng tôi cũng chứng minh chức năng SetID, GetID và bit dính với các ví dụ để hiểu toàn diện.
Mục Lục
Quyền đối với tệp Linux thông thường
Linux sử dụng lệnh chmod để gán / thay đổi đọc (r = 4), viết (w = 2), và thực thi (x = 1) quyền đối với tệp và thư mục. Có nghĩa là, chín bit được đề cập ở trên áp dụng cho ba nhóm quyền chính. Ba tập hợp đầu tiên dành cho người dùng sở hữu tệp, tập hợp thứ hai dành cho nhóm được gán cho tệp / thư mục và ba tập hợp cuối cùng đại diện cho tất cả những người dùng khác.
Ví dụ: một tệp thông thường tất cả các loại quyền cho tất cả các danh mục người dùng sẽ xuất hiện dưới dạng -rwxrwxrwx. Trong khi – thay thế các chữ cái thể hiện sự không có quyền đó. Bây giờ chmod lệnh sử dụng số và chữ cái để thay đổi quyền như sau:
sudo chmod 755 file #for rwxr-xr-x
sudo chmod 644 file #for rw-r--r--
sudo chmod a-w file #for r-xr-xr-x
sudo chmod a+x file #for --x--x--x
Quyền đối với tệp Linux đặc biệt
Các setuid bit đại diện cho quyền trên một tệp thực thi có thể được chạy bởi những người dùng khác với sự ủy quyền của chủ sở hữu. Ví dụ: khi người dùng tối đa chạy lệnh vi với tư cách là người dùng John, bạn sẽ có quyền đọc / ghi John.
Để xác định các tệp với setuid, hãy sử dụng ls ra lệnh và tìm kiếm S bit thay cho bit thực thi x, như sau.
Đặt Bit UID
Các setuid bit đại diện cho quyền trên một tệp thực thi có thể được chạy bởi những người dùng khác với sự ủy quyền của chủ sở hữu. Ví dụ: khi người dùng tối đa chạy lệnh vi như nguồn gốc, anh ta sẽ có quyền đọc / ghi của nguồn gốc. Để xác định các tệp với setuid, hãy sử dụng ls ra lệnh và tìm kiếm S bit thay cho bit thực thi x, như sau:
ls -la /etc/passwd
-rwsr-xr-x 1 root root 88464 Dec 14 12:46 passwd
Một số ví dụ khác là:
ls -la /bin/gpasswd
-rwsr-xr-x 1 root root 88464 Jul 14 15:08 gpasswd
ls -la /bin/su
-rwsr-xr-x 1 root root 67816 Jul 21 2020 su
ls -la /newgrp
-rwsr-xr-x 1 root root 44784 Jul 14 15:08 newgrp
ls -la /bin/sudo
-rwsr-xr-x 1 root root 166056 Jan 19 2021 sudo
Để đặt bit setuid cho các tệp thực thi, hãy sử dụng lệnh chmod như sau:
chmod u+s /etc/passwd
Để xóa quyền thực thi tệp từ người dùng hoặc chủ sở hữu không phải root:
chmod u-s /etc/passwd
Đặt bit GID
Như đã thảo luận, bit set uid kiểm soát quyền truy cập tệp đối với những người dùng khác, trong khi bit setgid (GID) tạo ra các thư mục cộng tác. Điều đó có nghĩa là bất kỳ tệp nào được tạo bên trong thư mục đó đều có thể truy cập được vào nhóm của thư mục. Do đó, nó cho phép tất cả các thành viên trong nhóm chạy các tệp thực thi mà không có đặc quyền của chủ sở hữu và bảo vệ chúng khỏi những người dùng khác.
Làm theo các bước sau để tạo một thư mục cộng tác trong hệ thống Linux của bạn:
Tạo một nhóm bằng cách sử dụng groupadd lệnh với id nhóm 415 để cộng tác:
groupadd -g 415 admins
Sử dụng lệnh usermod để thêm John vào nhóm để truy cập / thực thi tệp.
usermod -aG admins john
Sử dụng mkdir lệnh để tạo một thư mục:
mkdir /tmp/collaborative_dir
Sử dụng chgrp lệnh gán thư mục cho quản trị viên tập đoàn:
chgrp admins /tmp/collaborative_dir
Sử dụng chmod lệnh thay đổi quyền thư mục thành 2775. Bit 2 bật gid đặt, 7 để gán rwx đầy đủ cho người dùng và nhóm, trong khi 5 (rw) cho những người khác.
chmod 2775 /tmp/collaborative_dir
Cuối cùng, thay đổi tài khoản người dùng của bạn thành John và tạo một tệp trong thư mục cộng tác để kiểm tra quyền đối với tệp.
su - john
touch /tmp/collaborative_dir/file.txt
Lệnh su có thể cung cấp cho bạn một lỗi xác thực. Trong trường hợp này, hãy nhập sudo su lệnh chuyển sang thư mục gốc và chạy lại su – john để thay đổi tài khoản người dùng
Bây giờ hãy liệt kê các quyền để kiểm tra (các) bit GID được đặt cho thư mục và tệp mới được tạo.
ls -ld /tmp/collaborative_dir /tmp/collaborative_dir/file.txt
Trong một tình huống điển hình, một tệp được tạo bởi john sẽ có một john nhóm được gán cho nó. Vì bạn tạo tệp bên trong thư mục bit GID đã đặt, nó chỉ định quyền cho quản trị viên nhóm, sao cho bất kỳ ai thuộc nhóm, như người dùng chris, sẽ có quyền truy cập vào nó.
Bits dính
Không giống như các bit SID và GID, các bit dính khác nhau về chức năng vì nó bảo vệ các tệp và thư mục khỏi bị người dùng khác đổi tên và xóa. Quyền đối với tệp thông thường cho phép bất kỳ người dùng nào có quyền ghi có thể xóa hoặc đổi tên tệp. Trong khi với tập hợp bit dính, bạn không thể thực hiện được trừ khi bạn là người dùng gốc hoặc chủ sở hữu của tệp.
Trường hợp lý tưởng để sử dụng các bit dính là thư mục mà tất cả người dùng có thể truy cập để tạo tệp. Ví dụ, sử dụng ls -ld lệnh kiểm tra tmp quyền thư mục, như sau:
Bạn có thể nhận thấy rằng hơi dính t thay thế bit thực thi x. Làm theo bộ hướng dẫn đã cho để tạo một thư mục xóa bị hạn chế:
Bây giờ, hãy tạo một thư mục khác trong / tmp thư mục:
mkdir /tmp/new_dir
Thay đổi quyền đối với tệp thành 1777 để đặt bit dính (t) và toàn quyền truy cập thư mục:
chmod 1777 /tmp/new_dir
Bây giờ sao chép bất kỳ tệp nào từ /Vân vân thư mục để / tmp / new_dir và thay đổi quyền của nó thành 666:
cp /etc/ /tmp/new_dir
chmod 666 /tmp/new_dir/services
Liệt kê thư mục và tất cả nội dung của nó để xem các quyền:
ls -ld /tmp/new_dir /tmp/new_dir/services
Bạn có thể nhận thấy bit dính thay vì bit thực thi, có nghĩa là chỉ root hoặc john người dùng mới có thể xóa tệp, vì tệp nằm trong thư mục bit dính.
Hiểu quyền đối với tệp đặc biệt trong Linux
Bài viết trình bày cách đặt các bit này để cải thiện khả năng cộng tác trên các tệp và thư mục được chia sẻ và bảo vệ chúng khỏi bị truy cập, thực thi và xóa trái phép. Ngay cả khi bạn không tạo tệp / thư mục bằng các bit này, việc hiểu các quyền đối với tệp đặc biệt sẽ hữu ích trong nhiều trường hợp, đặc biệt là trong việc khắc phục sự cố hoặc với tư cách là quản trị viên hệ thống. Trong khi đó, việc sử dụng không cẩn thận các bit này có thể gây ra nhiều lỗ hổng bảo mật khác nhau.
Đọc tiếp
Giới thiệu về tác giả