Quản lý các Users trong Ubuntu Server. (P1)
Là một developer, bên cạnh các kiến thức về lập trình thì việc học thêm các kiến thức về quản trị mạng, quản lý hệ thống, server cũng rất hữu ích. Và trong bài ngày hôm nay mình sẽ giới thiệu các quản lý user trong Ubuntu Server. Nhìn chung thì ngày việc sử dụng các VPS là rất phổ biến và đa phần ...
Là một developer, bên cạnh các kiến thức về lập trình thì việc học thêm các kiến thức về quản trị mạng, quản lý hệ thống, server cũng rất hữu ích. Và trong bài ngày hôm nay mình sẽ giới thiệu các quản lý user trong Ubuntu Server. Nhìn chung thì ngày việc sử dụng các VPS là rất phổ biến và đa phần các VPS sử dụng hệ điều hành Linux. Đối với người quản trị, bản thân User cũng là một nguồn tài nguyên cần phải quản lý. Bạn sẽ phải tạo mới , quản lý mật khẩu, xóa tài khoản và phân cấp quyền thao tác với các tài nguyên. Điều này có thể là biggest headache .
Trong bài viết này chúng ta sẽ cover một số vấn đề :
- Hiểu về root.
- Tạo mới và xóa user.
- Hiểu về /etc/passwd và /etc/shadow files.
- Phân phối các file config mặc định với /etc/skel
- Chuyển đổi giữa các user.
- Quản lý nhóm.
- Quản lý mật khẩu.
- Cấu hình quyền truy cập sudo.
- Cấp quyền thao tác với files và thư mục.
Hiểu về root.
Trong hệ điều hành Linux, root là tài khoản luôn được tạo ra đầu tiên và là thằng có quyền lực tối thượng trong hệ thống, nói chung là nó thích làm gì cũng được. Cũng chính vì nó có quá nhiều quyền lực như vậy nên cộng đồng Linux người ta khuyên là nên hạn chế dùng vì có thể gây ra những tai nạn đáng tiếc, thôi thì chịu khó tạo thêm một thằng user thường mà sài.
Tạo mới và xóa user.
Để tạo mới user trên Ubuntu Server thì có 2 câu lệnh thần thánh là adduser và useradd và chỉ có quyền root mới chạy lệnh này được. Ví dụ dưới đây tạo ra một user có tên là jdoe với thư mục home/jdoe
useradd -d /home/jdoe -m jdoe # root user sudo useradd -d /home/jdoe -m jdoe
Và kết quả.
Thiết lập password: Sử dụng lệnh passwd Nếu thay đổi passwd của user khác thì cần quyền root bằng cách dùng thêm sudo.
root@ubuntu-server:~# passwd jdoe Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully
Bây giờ chúng ta đã có tài khoản jdoe . Một cách khác có thể tạo mới User là dùng command adduser.
root@ubuntu-server:~# adduser dscully Adding user `dscully' ... Adding new group `dscully' (1006) ... Adding new user `dscully' (1006) with group `dscully' ... Creating home directory `/home/dscully' ... Copying files from `/etc/skel' ... Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully Changing the user information for dscully Enter the new value, or press ENTER for the default Full Name []: Dana Scully Room Number []: 405 Work Phone []: 555-412-5555 Home Phone []: 412-555-5555 Other []: Trust no one Is the information correct? [Y/n] y
Dễ thấy là câu lệnh này cho chúng ta khá nhiều options như Full Name , Room Number , Work Phone... Lưu ý là adduser thì tiện lợi hơn nhưng không phải có sẵn trễn tất cả các phiên bản hệ điều hành Linux , vì vậy nếu không sử dụng Ubuntu thì bạn nên sử dụng lệnh useradd.
Để xóa một user ta sự dụng lệnh:
sudo userdel dscully
Nếu muốn xóa cả thư mục dscully trong /home thì có thể dùng lệnh
userdel -r dscully
Hiểu về /etc/passwd và /etc/shadow files.
Việc lưu trữ thông tin các User đã được tạo nằm ở trong 2 text files là /etc/passwd và /etc/shadow.
sudo cat /etc/passwd cat /etc/shadow # chỉ có root user mới có quyền xem file này.
Trong file /etc/passwd
testuser:x:1000:1000::/home/testuser:0 testuser2:x:1006:1006:Test user,,,:/home/testuser2:/bin/bash myuser:x:1002:1002::/home/myuser: myuser2:x:1003:1003::/home/myuser2: jdoe:x:1004:1004::/home/jdoe: bsmith:x:1005:1005::/home/bsmith:/bin/bash jdoe2:x:1007:1007::/home/jdoe2:
testuser # USERNAME 1000 # userId 1000 # groupId.
Khi tạo mới một User thì một group tương ứng cũng được tạo ra.
Trong file /etc/shadow:
myuser2:$6$maFOiNL.:16809:0:99999:7::: jdoe:$6$TPxx8Z.:16809:0:99999:7::: bsmith:$6$KoShUY.:16809:0:99999:7::: testuser3:$6$QAGTNqR:16809:0:99999:7::
Password của User sẽ được băm ra thành một chuỗi hash và lưu trữ trong /etc/shadow.
Phân phối các file config mặc định với /etc/skel
Thông thường ,đôi lúc chúng ta sẽ có những cấu hình mặc định dành cho một nhóm người nào đó, ví dụ như config cho text editors và version control systems. Tất cả những cấu hình mặc định này sẽ được để trong /etc/skel và được copy vào thư mục /home của user khi tạo mới. Để view được nội dung của thư mục /etc/skel: sử dụng lệnh ls -la /etc/skel
.bash_logout .bashrc .profile
Khi tạo user thì những file này sẽ được tự động copy vào thư mục /home/tên user ... Bài viết còn nữa.