[ShellScript] Làm sao để kiểm tra user chạy shell script là user root hay không ?

186

E hèm, khi bạn lập trình shell script sử dụng trong hệ thống Linux dành cho các tác vụ tự động, hoặc thống kê tài nguyên hệ thống,… thì đôi khi các chương trình lệnh trong script cần phải được chạy dưới quyền user root hoặc user cấp cao như root mới có kết quả.

Vậy bạn có nhu cầu cần kiểm tra user đang chạy script có phải là user root hay không ? Nếu không phải thì không tiếp tục nữa. Ok dựa trên nhu cầu cực kì đơn giản đó chúng ta sẽ đến với phần thảo luận đơn giản sau :

Làm thế nào để kiểm tra user chạy script là user root hay không ?

Như các bạn đã biết thì mỗi user đều có một User ID (UID) riêng biệt và độc nhất dành cho user đó, các bạn có thể kiểm tra tại file ‘/etc/passwd’. Bash shell sẽ lưu trữ thông tin UID user tương ứng ở 1 biến môi trường có tên là $UID $EUID. Bạn cũng có thể dùng chương trình khác như ‘id’ để kiểm tra danh tính mà user đang chạy shell,..

Ok vậy nội dung script đơn giản sẽ như sau, phần nội dung râu ria mình không ghi cụ thể nhé, các bạn tự sáng tạo ra :

1. Cách 1 – ‘id’

– Sử dụng chương trình ‘id‘ để trích xuất thông tin UID user rồi so sánh.

 
2. Cách 2 – ‘$UID’

– Sử dụng biến môi trường chứa thông tin UID của user $UID hoặc $EUID để so sánh.

 
3. Kiểm tra

– Bạn thử kiểm tra nội dung đơn giản trên xem nào. Nội dung code cơ bản trên mình để trong file ‘demo.sh‘ nhé.

 
– Chuyển sang user khác để chạy script.

 
Ok, vậy là xong bài note nhỏ cho các bạn newbie mới tiếp cận học bash script nhé.

Đánh giá sao từ người đọc :
[ Tổng : 0 - Trung bình: 0 ]

LEAVE A REPLY