Trong các bản phân phối Unix / Linux, lệnh usermod được sử dụng để sửa đổi hoặc thay đổi bất kỳ thuộc tính nào của tài khoản người dùng đã được tạo trước đó thông qua dòng lệnh. Lệnh 'usermod' tương tự như 'useradd' hoặc 'adduser' nhưng đã được cấp quyền đăng nhập cho một người dùng đã tồn tại.
Lệnh 'useradd' hoặc 'adduser' được sử dụng để tạo tài khoản người dùng trong các hệ thống Linux.
Sau khi tạo tài khoản người dùng, trong một số tình huống nơi chúng ta cần thay đổi các thuộc tính của người dùng hiện có như thay đổi thư mục gốc của người dùng, tên đăng nhập, shell đăng nhập, ngày hết hạn mật khẩu, vv, trong trường hợp này chúng ta sử dụng lệnh 'usermod'.
Khi chúng ta thực thi lệnh 'usermod' trong cửa sổ dòng lệnh, các tệp sau được sử dụng và ảnh hưởng.
- /etc/passwd - Thông tin tài khoản người dùng.
- /etc/shadow - Thông tin tài khoản bảo mật.
- /etc/group - Thông tin tài khoản nhóm.
- /etc/gshadow - Thông tin tài khoản nhóm bảo mật.
- /etc/login.defs - Cấu hình bộ mã jacket.
Cú pháp cơ bản của lệnh là:
usermod [options] username
Yêu cầu
- Chúng ta phải có tài khoản người dùng hiện có để thực thi lệnh usermod.
- Chỉ superuser (root) được phép thực thi lệnh usermod.
- Lệnh usermod có thể được thực thi trên bất kỳ bản phân phối Linux nào.
- Phải có kiến thức cơ bản về lệnh usermod với các tùy chọn
Tùy chọn của Usermod
Lệnh 'usermod' rất dễ sử dụng với nhiều tùy chọn để thay đổi một người dùng hiện có. Hãy xem cách sử dụng lệnh usermod bằng cách thay đổi một số người dùng hiện có trên hệ Linux với sự trợ giúp của các tùy chọn sau đây.
- -c = Chúng tôi có thể thêm trường ghi chú cho tài khoản người dùng.
- -d = Để thay đổi thư mục cho bất kỳ tài khoản người dùng hiện có nào.
- -e = Sử dụng tùy chọn này, chúng ta có thể đặt ngày hết hạn tài khoản trong khoảng thời gian cụ thể.
- -g = Thay đổi nhóm chính cho một Người dùng.
- -G = Để thêm các nhóm bổ sung.
- -a = Để thêm bất kỳ nhóm nào vào một nhóm phụ.
- -l = Thay đổi tên đăng nhập từ tecmint thành tecmint_admin.
- -L = Để khóa tài khoản người dùng. Điều này sẽ khóa mật khẩu để chúng ta không thể sử dụng tài khoản.
- -m = Di chuyển nội dung của thư mục gốc từ thư mục gốc hiện có sang thư mục mới.
- -p = Sử dụng mật khẩu không được mã hóa cho mật khẩu mới. (Không được Bảo mật).
- -s = Tạo một Shell cụ thể cho các tài khoản mới.
- -u = Được sử dụng để gán UID cho tài khoản người dùng trong khoảng từ 0 đến 999.
- -U = Để mở khóa các tài khoản người dùng. Điều này sẽ xóa khóa mật khẩu và cho phép chúng ta sử dụng tài khoản người dùng.
Trong bài viết này, chúng tôi sẽ xem ‘15 lệnh usermod’ với những ví dụ cụ thể và cách sử dụng trên Linux, giúp bạn học và nâng cao kỹ năng dòng lệnh của mình bằng cách sử dụng các tùy chọn này.
15 ví dụ về lệnh usermod
1. Thêm thông tin vào tài khoản người dùng
Tùy chọn '-c' được sử dụng để đặt một bình luận ngắn (thông tin) về tài khoản người dùng. Ví dụ, hãy thêm thông tin về người dùng tecmint bằng cách sử dụng lệnh sau.
# usermod -c "This is Tecmint" tecmint
Sau khi thêm thông tin người dùng, cùng một bình luận có thể được hiển thị trong tệp /etc/passwd.
# grep -E --color 'tecmint' /etc/passwd
tecmint:x:500:500:This is Tecmint:/home/tecmint:/bin/sh
2. Thay đổi thư mục gốc của người dùng
Trong bước trên, chúng ta có thể thấy rằng thư mục gốc của chúng tôi nằm trong /home/tecmint/, Nếu chúng ta cần thay đổi nó sang một thư mục khác, chúng ta có thể thay đổi nó bằng cách sử dụng tùy chọn -d với lệnh usermod.
Ví dụ, tôi muốn thay đổi thư mục gốc của chúng tôi thành /var/www/, nhưng trước khi thay đổi, hãy kiểm tra thư mục gốc hiện tại của người dùng, bằng cách sử dụng lệnh sau.
# grep -E --color '/home/tecmint' /etc/passwd
tecmint:x:500:500:This is Tecmint:/home/tecmint:/bin/sh
Bây giờ, thay đổi thư mục gốc từ /home/tecmint thành /var/www và xác nhận thư mục gốc sau khi thay đổi.
# usermod -d /var/www/ tecmint
# grep -E --color '/var/www/' /etc/passwd
tecmint:x:500:500:This is Tecmint:/var/www:/bin/sh
3. Đặt ngày hết hạn tài khoản người dùng
Tùy chọn '-e' được sử dụng để đặt ngày hết hạn cho một tài khoản người dùng với định dạng ngày 'YYYY-MM-DD'. Trước khi đặt ngày hết hạn cho người dùng, hãy kiểm tra trạng thái ngày hết hạn hiện tại của tài khoản bằng cách sử dụng lệnh 'chage' (thay đổi thông tin hết hạn mật khẩu người dùng) như sau.
# chage -l tecmint
Last password change : Nov 02, 2014
Password expires : never
Password inactive : never
Account expires : Dec 01, 2014
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
Trạng thái hết hạn của người dùng 'tecmint' là Dec 1, 2014, hãy thay đổi nó thành Nov 1, 2014 bằng tùy chọn 'usermod -e' và xác nhận ngày hết hạn với lệnh 'chage'.
# usermod -e 2014-11-01 tecmint
# chage -l tecmint
Last password change : Nov 02, 2014
Password expires : never
Password inactive : never
Account expires : Nov 01, 2014
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
4. Thay đổi nhóm chính của người dùng
Để đặt hoặc thay đổi nhóm chính cho người dùng, chúng ta sử dụng tùy chọn '-g' với lệnh usermod. Trước khi thay đổi nhóm chính của người dùng, hãy đảm bảo kiểm tra nhóm hiện tại cho người dùng tecmint_test.
# id tecmint_test
uid=501(tecmint_test) gid=502(tecmint_test) groups=502(tecmint_test)
Bây giờ, đặt nhóm babin làm nhóm chính cho người dùng tecmint_test và xác nhận các thay đổi.
# usermod -g babin tecmint_test
# id tecmint_test
uid=501(tecmint_test) gid=502(babin) groups=502(tecmint_test)
5. Thêm Nhóm cho Người dùng hiện có
Nếu bạn muốn thêm nhóm mới được gọi là tecmint_test0 vào người dùng tecmint, bạn có thể sử dụng tùy chọn -G với lệnh usermod như được hiển thị dưới đây.
# usermod -G tecmint_test0 tecmint
# id tecmint
Lưu ý: Hãy cẩn thận, khi thêm các nhóm mới vào người dùng hiện có bằng tùy chọn '-G' duy nhất, sẽ xóa tất cả các nhóm hiện có mà người dùng thuộc về. Vì vậy, luôn luôn thêm '-a' (nối gắn) với tùy chọn '-G' để thêm hoặc nối gắn các nhóm mới.
6. Thêm Nhóm bổ sung và Nhóm chính cho người dùng
Nếu bạn cần thêm người dùng vào một trong những nhóm bổ sung, bạn có thể sử dụng các tùy chọn '-a' và '-G'. Ví dụ, ở đây chúng tôi sẽ thêm một tài khoản người dùng tecmint_test0 với user wheel.
# usermod -a -G wheel tecmint_test0
# id tecmint_test0
Vì vậy, người dùng tecmint_test0 vẫn ở trong nhóm chính của mình và cũng ở trong nhóm phụ (vòng tròn). Điều này sẽ giúp tài khoản người dùng bình thường của tôi thực thi bất kỳ lệnh nào có đặc quyền root trên hệ Linux của bạn.
eg : sudo service httpd restart
7. Thay đổi tên đăng nhập của người dùng
Để thay đổi tên đăng nhập của người dùng hiện tại, chúng ta có thể sử dụng '-l' (đăng nhập mới) tùy chọn. Trong ví dụ dưới đây, chúng tôi đang thay đổi tên đăng nhập tecmint thành tecmint_admin. Vì vậy, tên người dùng tecmint đã được đổi thành tên mới tecmint_admin.
# usermod -l tecmint_admin tecmint
Bây giờ kiểm tra tài khoản tecmint, Nó sẽ không được hiển thị vì chúng ta đã thay đổi thành tecmint_admin.
# id tecmint
Kiểm tra tài khoản tecmint_admin, nó sẽ tồn tại với cùng một UID và nhóm hiện tại mà chúng ta đã thêm trước đó.
# id tecmint_admin
8. Khóa tài khoản người dùng
Để mở khóa tài khoản người dùng hệ thống, chúng ta có thể sử dụng tùy chọn '-L' (khóa), sau khi tài khoản bị khóa, chúng ta không thể đăng nhập bằng cách sử dụng mật khẩu và bạn sẽ thấy một dấu '!' được thêm trước mật khẩu được mã hóa trong tệp /etc/shadow, có nghĩa là mật khẩu bị vô hiệu hóa.
# usermod -L babin
Kiểm tra tài khoản bị khóa.
# grep -E --color 'babin' cat /etc/shadow
9. Mở khóa tài khoản người dùng
Tùy chọn '-U' được sử dụng để mở khóa bất kỳ người dùng nào đã khóa, điều này sẽ xóa '!' trước mật khẩu được mã hóa.
# grep -E --color 'babin' /etc/shadow
# usermod -U babin
Xác minh người dùng sau khi mở khóa.
# grep -E --color 'babin' /etc/shadow
10. Di chuyển thư mục gốc của người dùng đến vị trí mới
Hãy tưởng tượng bạn có một tài khoản người dùng là pinky với thư mục gốc /home/pinky/, bạn muốn di chuyển đến vị trí mới là /var/pinky/. Bạn có thể sử dụng các tùy chọn -d và -m để di chuyển các tệp người dùng hiện có từ thư mục gốc hiện tại sang thư mục gốc mới.
Kiểm tra tài khoản và thư mục gốc hiện tại của nó.
# grep -E --color 'pinky' /etc/passwd
Sau đó liệt kê các tệp tin mà tài khoản pinky sở hữu.
# ls -l /home/pinky/
Bây giờ chúng ta phải di chuyển thư mục gốc từ /home/pinky sang /var/pinky.
# usermod -d /var/pinky/ -m pinky
Vào, xác minh sự thay đổi của thư mục.
# grep -E --color 'pinky' /etc/passwd
Kiểm tra các tệp tin trong /home/pinky. Ở đây chúng tôi đã di chuyển các tệp tin sử dụng -m option nên không có tệp tin. Các tệp tin người dùng pinky sẽ nằm trong /var/pinky.
# ls -l /home/pinky/
# ls -l /var/pinky/
11. Tạo mật khẩu không được mã hóa cho người dùng
Để tạo mật khẩu không được mã hóa, chúng ta sử dụng tùy chọn '-p' (mật khẩu). Vì mục đích minh họa, tôi đang đặt mật khẩu mới là redhat trên người dùng pinky của tôi.
# usermod -p redhat pinky
Sau khi đặt mật khẩu, hãy kiểm tra tệp shadow để xem liệu nó có ở định dạng đã được mã hóa hay không.
# grep -E --color 'pinky' /etc/shadow
Lưu ý: Bạn đã thấy rằng trong hình ảnh trên, mật khẩu hoàn toàn hiển thị cho tất cả mọi người. Vì vậy, không khuyến nghị sử dụng tùy chọn này, vì mật khẩu sẽ hiển thị cho tất cả các người dùng.
12. Thay đổi Shell đăng nhập của người dùng
Shell đăng nhập người dùng có thể được thay đổi hoặc xác định trong quá trình tạo người dùng với lệnh useradd hoặc thay đổi với lệnh 'usermod' bằng tùy chọn '-s' (shell). Ví dụ, người dùng babin sở hữu /bin/bash shell theo mặc định, bây giờ tôi muốn thay đổi nó thành /bin/sh.
# grep -E --color 'babin' /etc/passwd
# usermod -s /bin/sh babin
Sau khi thay đổi shell người dùng, hãy xác minh shell người dùng bằng lệnh sau.
# grep -E --color 'babin' /etc/passwd
13. Thay đổi User ID (UID)
Trong ví dụ dưới đây, bạn có thể thấy rằng tài khoản người dùng babin của tôi giữ UID của 502, bây giờ tôi muốn thay đổi nó thành 888 làm UID của tôi. Chúng ta có thể gán UID trong khoảng từ 0 đến 999.
# grep -E --color 'babin' /etc/passwd
OR
# id babin
Bây giờ, hãy thay đổi UID cho người dùng babin bằng tùy chọn '-u' (uid) và xác minh các thay đổi.
# usermod -u 888 babin
# id babin
14. Điều chỉnh tài khoản người dùng với nhiều tùy chọn
Ở đây chúng ta có một tài khoản người dùng Jack và bây giờ tôi muốn chỉnh sửa thư mục gốc, shell, ngày hết hạn, nhãn, UID và nhóm của anh ta cùng một lúc sử dụng một lệnh duy nhất với tất cả các tùy chọn như chúng ta đã thảo luận ở trên.
Tài khoản người dùng Jack có thư mục gốc mặc định /home/jack, Bây giờ tôi muốn thay đổi nó thành /var/www/html và gán shell của anh ta thành bash, thiết lập ngày hết hạn là ngày 10 tháng 12 năm 2014, thêm nhãn mới là 'Đây là Jack', thay đổi UID thành 555 và anh ta sẽ là thành viên của nhóm táo.
Hãy xem cách điều chỉnh tài khoản jack bằng cách sử dụng nhiều tùy chọn sau.
# usermod -d /var/www/html/ -s /bin/bash -e 2014-12-10 -c "This is Jack" -u 555 -aG apple jack
Sau đó, kiểm tra các thay đổi của UID và thư mục gốc.
# grep -E --color 'jack' /etc/passwd
Kiểm tra tài khoản hết hạn.
# chage -l jack
Kiểm tra nhóm mà jack đã được tham gia.
# grep -E --color 'jack' /etc/group
15. Thay đổi UID và GID của người dùng
Chúng ta có thể thay đổi UID và GID của một người dùng hiện có. Để thay đổi thành mới GID, chúng ta cần một nhóm hiện có. Ở đây đã có một tài khoản có tên là cam với GID là 777.
Bây giờ tài khoản người dùng jack của tôi muốn được gán với UID 666 và GID Orange (777).
Kiểm tra UID và GID hiện tại trước khi thay đổi.
# id jack
Chỉnh sửa UID và GID.
# usermod -u 666 -g 777 jack
Kiểm tra các thay đổi.
# id jack
Kết luận
Ở đây chúng tôi đã thấy cách sử dụng lệnh usermod với các tùy chọn của nó một cách rất chi tiết, Trước khi biết về lệnh usermod, mọi người phải biết về lệnh 'useradd' và các tùy chọn của nó để sử dụng lệnh usermod. Nếu tôi đã bỏ sót bất kỳ điểm nào trong bài viết, xin hãy cho tôi biết qua các ý kiến và đừng quên thêm những ý kiến quý giá của bạn.