Cách dùng lệnh usermod trong Linux
Trong bài này mình sẽ hướng dẫn cách sử dụng lệnh usermod trong Linux, đây là lệnh được sử dụng để thay đổi thông tin về người dùng trong hệ thống Linux.
usermod là công cụ dòng lệnh cho phép bạn sửa đổi thông tin đăng nhập của người dùng.
Bài viết này trình bày cách sử dụng lệnh usermod để thêm người dùng vào nhóm, thay đổi user shell, tên đăng nhập, thư mục home và nhiều tính năng khác.
1. Cú pháp lệnh usermod trong Linux
Cú pháp cơ bản của lệnh usermod như sau:
Bài viết này được đăng tại [free tuts .net]
usermod [options] USER
Trong đó USER là tên của người dùng cần đổi thông tin, options là những tùy chọn riêng cho lệnh đó. Chúng ta sẽ lần lượt tìm hiểu những tùy chọn trong các phần tiếp theo.
Cũng lưu ý rằng chỉ có tài khoản root hoặc tài khoản thuộc nhóm root có quyền sudo mới chạy được lệnh này.
2. Sử dụng usermod Linux để thêm người dùng vào group
Công dụng đầu tiên của lệnh usermod trong Linux là dùng để thêm user vào group.
Để thêm một user có sẵn trong hệ thống vào một nhóm có sẵn thì chúng ta sử dụng hai tùy chọn -a -G
.
usermod -a -G GROUP USER
Nếu bạn muốn thêm người dùng vào nhiều nhóm cùng một lúc thì hãy đặt các nhóm sau tùy chọn -G và được phân cách bằng dấu phẩy (không có khoảng trắng xen vào).
Ví dụ dưới đây mình thêm user freetuts vào nhóm games.
sudo usermod -a -G games freetuts
Lưu ý rằng hãy luôn sử dụng tùy chọn -a (append) khi thêm người dùng vào một nhóm mới, nếu không thì người dùng sẽ bị xóa khỏi các nhóm không được liệt kê sau tùy chọn -G (tức là sẽ xóa user ra khỏi các nhóm khác).
Nếu người dùng hoặc nhóm không tồn tại trên hệ thống thì lệnh usermod sẽ hiển thị một cảnh báo.
3. Sử dụng usermod Linux để thay đổi nhóm chính
Để thay đổi nhóm chính cho người dùng thì hãy chạy lệnh usermod kết hợp với tùy chọn -g đặt phía trước tên user và tên group.
sudo usermod -g GROUP USER
Ví dụ dưới đây mình đổi group chính của tài khoản freetuts thành group developers.
usermod -g developers linuxize
Mỗi người dùng sẽ có một nhóm chính và nhiều nhóm phụ.
4. Sử dụng usermod đổi thông tin người dùng
Để thay đổi thông tin bổ sung của người dùng thì hãy chạy lệnh usermod kết hợp với tùy chọn -c.
usermod -c "GECOS Comment" USER
Lệnh dưới đây mình thay đổi thông tin bổ sung cho người dùng freetuts.
usermod -c "Admin Freetuts Blog" freetuts
Những thông tin này sẽ được lưu trữ trong file /etc/passwd
.
5. Dùng usermod để thay đổi thư mục home của người dùng
Lệnh usermod cũng được dùng để thay đổi thư mục home cho người dùng.
Trong hầu hết các bản phối của Linux thì thư mục home sẽ có tên trùng với tên tài khoản của người dùng, và nó được đặt trong thư mục /home
.
Vì một lý do nào đó mà bạn muốn thay đổi thư mục home này thì hãy sử dụng tùy chọn -d
với cú pháp sau:
usermod -d HOME_DIR USER
Mặc định thì lệnh này sẽ không di chuyển dữ liệu từ thư mục cũ sang thư mục mới. Để di chuyển nội dung thì bạn phải sử dụng thêm tùy chọn -m
nhé.
usermod -d HOME_DIR -m USER
Ví dụ dưới đây mình đã đổi thư mục home cho user www-data
. thành /var/www
.
usermod -d /var/www www-data
6. Dùng usermod thay đổi shell script cho user
Mỗi user sẽ có một file shell riêng và nó sẽ được kích hoạt mỗi khi user này đăng nhập vào hệ thống.
Để thay đổi file shell này thì bạn hãy sử dụng lệnh usermod kết hợp với tùy chọn -s như sau:
usermod -s SHELL USER
Ví dụ dưới đây mình đã đổi shell của user thành Zsh.
sudo usermod -s /usr/bin/zsh freetuts
Bạn có thể xem tất cả các shell có sẵn trên hệ thống của mình trong file /etc/shells
.
7. Dùng usermod thay đổi UID
Lệnh usermod trong Linux cũng có thể dùng để thay đổi UID.
UID chính là user identifier, nó chính là là mã số của user, giốn như mã chứng minh nhân dân của bạn vậy đó.
Để thay đổi UID thì ta sử dụng tham số -u nhé.
usermod -u UID USER
8. Dùng usermod thay đổi tên đăng nhập của người dùng
Bạn cũng có thể sử dụng lệnh usermod trong Linux để thay đổi tên đăng nhập của user, bằng cách sử dụng tham số -l.
usermod -l NEW_USER USER
Lưu ý là khi đổi username thì đổi luôn cả thư mục home cho user này nhé.
Bạn có thể tham khảo thêm bài viết cách đổi tên user trong Linux để biết thêm thông tin nhé.
9. Dùng usermod thiết lập ngày hết hạn cho người dùng
Ngày hết hạn chính là ngày mà user sẽ bị khóa. Để đặt ngày hết hạn của người dùng thì hãy sử dụng tùy chọn -e:
sudo usermod -e DATE USER
Trong đó DATE sẽ có định dạng là: YYYY-MM-DD.
Ví dụ: Khóa người dùng freetuts kể từ ngày 2022-02-21.
sudo usermod -e "2022-02-21" freetuts
Để mở tài khoản lại thì bạn hãy để rỗng ở phần DATE nhé.
sudo usermod -e "" freetuts
Để xem ngày hết hạn của một user nào đó thì sử dụng tùy chọn -l.
sudo chage -l freetuts
Kết quả sẽ có dạng như sau:
Last password change : Jul 24, 2018 Password expires : never Password inactive : never Account expires : never Minimum number of days between password change : 0 Maximum number of days between password change : 99999 Number of days of warning before password expires : 7
Ngày hết hạn sẽ được lưu trữ trong file /etc/shadow
.
10. Dùng lệnh usermod khóa và mở khóa tài khoản
Tùy chọn -L cho phép bạn khóa hoặc mở khóa một tài khoản bất kì trên Linux.
usermod -L USER
Lệnh này sẽ thêm một dấu chấm thang vào phần mật khẩu mã hóa của người dùng nên không thể đăng nhập được. Nhưng họ vẫn có thể sử dụng những phương pháp đăng nhập khác như sử dụng key-based authentication.
Nếu bạn muốn vô hiệu hóa tất cả các phương thức đăng nhập thì phải thiết lập ngày hết hạn cho nó thành 1.
sudo usermod -L freetuts sudo usermod -L -e 1 freetuts
Để mở khóa thì chạy lệnh với tùy chọn -U.
usermod -U USER
Như vậy là mình đã hướng dẫn xong cách sử dụng lệnh usermod trong Linux, đây là lệnh dùng để thay đổi thông tin của người dùng rất hữu ích.