PHÂN QUYỀN CHMOD – LINUX CentOS

bởi | CentOS 7, LPI

Home » LPI » CentOS 7 » PHÂN QUYỀN CHMOD – LINUX CentOS

Sử dụng câu lệnh chmod để phân quyền cho file và folder. Kết
hợp lệnh chmod với find để tìm kiếm và phân quyền theo loại dữ liệu.

Sử dụng lệnh Chmod

– Hiển thị quyền của file hoặc folder thì dùng lệnh “ls -l”
[root@thanhdd ~]# touch filemoi.txt
[root@thanhdd ~]# mkdir folder1

[root@thanhdd ~]# ls -l
-rw-r--r-- 1 root root 0 Jun 12 22:58 filemoi.txt
drwxr-xr-x 2 root root 4096 Jun 12 23:11 folder1

[test@server ~]# ls -ld home
[test@server ~]# ls -la

– Biểu diễn phân quyền “d rwx r-x r-x” bao gồm 10 phần
+ Bit đầu tiên xác định đây là dạng dữ liệu gì
+ Nếu là “d” nghĩa là thư mục
+ Nếu là “_” nghĩa là file
+ Nếu là “l” nó là đường link ( gần giống như shortcut trong Windows)
– Từ bit thứ 2 đến bit thứ 4 : dùng để xác định quyền cho “user Owner”
– Từ bit thứ 5 đến bit thứ 7 : dùng để xác định quyền cho “Group” (group primary)
– Từ bit thứ 8 đến bit thứ 10 : dùng để xác định quyền cho “Other” (hay everyone)

Read = 4 (r)
Write = 2 (w)
Execute = 1 (thực thi)
Không có quyền = 0 (-)
– Ví dụ quyền 400
+ user owner: chỉ có READ
+ group owner: Không có quyền
+ other: Không có quyền
– Ví dụ quyền 705
+ user owner: 7 = 4 + 2 + 1 = read + write + execute
+ group owner: Không có quyền
+ other: có quyền read + thực thi

– Folder mặc định có quyền là 755. File được tạo ra mặc định có quyền la 644

– Để thay đổi quyền mặc định khi tạo ra file và folder ta dùng câu lệnh “umask”.
Giá trị umask ta có thể nhập từ 0—>7
[root@thanhdd ~]# umask 080
-bash: umask: 080: octal number out of range
[root@thanhdd ~]# umask 980
-bash: umask: 980: octal number out of range
+ Sửa mặc định folder tạo ra có quyền (permission) mặc định là 750
Tính 777-750=027
[root@thanhdd ~]# umask 027
=> Thì lúc đó tính 027-001=026 sau đó 666-026=640 sẽ ra quyền mặc định của file mới tạo ra là 640

– Sử dụng chmod thiết lập quyền chỉ cho user owner có quyền read write execute. Group owner và other không có quyền gì hết.
[root@thanhdd ~]# chmod 700 123456.txt
=> User ower đã có rwx

– Sử dụng Recursive với chmod
[root@thanhdd ~]# mkdir thanhdd123
[root@thanhdd ~]# mkdir thanhdd123/thanhdd456
[root@centos7 thanhdd123]# touch test.txt
[root@thanhdd ~]# chmod -R 700 thanhdd123
=> -R là recursive
=> Tất cả các “file và folder” nằm bên dưới của thư mục thanhdd123 đều bị thay đổi quyền 700

Sử dụng lệnh find kết hợp chmod

– Nếu như ta muốn xét quyền theo một loại dữ liệu nào đó thì ta có thể sử dụng
lệnh find kết hợp với chmod
[root@thanhdd ~]# find thanhdd123 -type f
=> Tìm kiếm bên trong folder thanhdd123 loại là file
[root@thanhdd ~]# find . -type f
=> Tìm kiếm bên trong thư mục hiện hành loại file
[root@thanhdd ~]# find thanhdd123 -type d
=> Tìm kiếm bên trong folder thanhdd123 loại là directory
[root@thanhdd ~]# find thanhdd123 -type f -name "*.txt"
=> Tìm kiếm bên trong folder athena laoi5 là file , với đuôi mở rộng là txt

– Chmod cho tất cả các file bên trong cấu trúc thư muc athena thành 700
[root@thanhdd ~]# find thanhdd123 -type f | xargs chmod 750
=> xargs sẽ lấy “output” của lệnh find làm “input” cho câu lệnh dùng sau nó
=> chmod 750 cho tất cả các file mà câu lệnh “find” nó tìm kiếm ra
[root@thanhdd ~]# find thanhdd123 -type d | xargs chmod 750
=> chmod 750 cho tất cả các folder mà câu lệnh “find” nó tìm kiếm ra

Chown Chgroup

– Chown câu lệnh dùng để thay đổi user owner và group owner của file và folder
– Chgrp là câu lệnh dùng để thay đổi Group Owner của file và folder

+ [root@thanhdd ~]# ls -l
-rw-r–r– 1 root root 0 Jun 12 22:58 filemoi.txt
+ [root@thanhdd ~]# chown student filemoi.txt
[root@thanhdd ~]# ls -l
-rw-r--r-- 1 student root 0 Jun 12 22:58 filemoi.txt
=> Thay đổi user owner của file 123.txt là user student
=> group ower vẫn là root
+ [root@thanhdd ~]# chgrp student filemoi.txt
=> Thay đổi group owner của file filemoi.txt
[root@thanhdd ~]# ls -l
-rw-r--r-- 1 student student 0 Jun 12 22:58 filemoi.txt
+ [root@thanhdd ~]# chown student:root filemoi.txt
=> Thay đổi user owner là student và group owner root cho file filemoi.txt
[root@thanhdd ~]# ls -l
-rw-r--r-- 1 student root 0 Jun 12 22:58 filemoi.txt

– Ví dụ cấu hình chown
[root@thanhdd ~]# chown -R ldap:root /etc/openldap/
=> thay đổi user owner là ldap và group owner là root cho folder /etc/openldap
[root@thanhdd ~]# chown -R apache: /var/www/site1
=> thay đổi user owner và group owner là apache cho folder /var/www/site1

Setfacl và Getfacl

– Để phân quyền cho file và folder cho groub và user cụ thể

– Kich hoat tinh nang ACL o tren partition /

[root@srv01 ~]# vi /etc/fstab
UUID=508c760c / ext4 defaults,acl 1 1
[root@srv01 ~]# mount -o remount /

– Xem phân quyền cụ thể của folder [hocvien]

getfacl hocvien
getfacl hocvien

– Set user test có quyền đọc và thực thi trên folder hoc viên, kể các các file và folder bên trong

setfacl -Rm u:test:r-x hocvien/
setfacl -Rm user:test:r-x hocvien

– Kiểm tra lại sẽ thấy quyền của folder hocvien sẽ có thêm dấu +

# ls -l
total 12
-rw-------. 1 root root 1709 Jul 7 08:48 anaconda-ks.cfg
drwxr-x---+ 4 root root 4096 Jul 28 19:37 hocvien

– Kiểm tra lại phân quyền cụ thể của folder hocvien

[root@localhost ~]# getfacl hocvien
# file: hocvien
# owner: root
# group: root
user::rwx
user:test:r-x
group::---
group:test:r-x
mask::r-x
other::---

-m: modify
-x: remove quyền