15 ví dụ cụ thể về lệnh usermod trong Linux

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.

usermod Command Examples

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.

  1. /etc/passwd - Thông tin tài khoản người dùng.
  2. /etc/shadow - Thông tin tài khoản bảo mật.
  3. /etc/group - Thông tin tài khoản nhóm.
  4. /etc/gshadow - Thông tin tài khoản nhóm bảo mật.
  5. /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

  1. Chúng ta phải có tài khoản người dùng hiện có để thực thi lệnh usermod.
  2. Chỉ superuser (root) được phép thực thi lệnh usermod.
  3. Lệnh usermod có thể được thực thi trên bất kỳ bản phân phối Linux nào.
  4. 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.

  1. -c = Chúng tôi có thể thêm trường ghi chú cho tài khoản người dùng.
  2. -d = Để thay đổi thư mục cho bất kỳ tài khoản người dùng hiện có nào.
  3. -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ể.
  4. -g = Thay đổi nhóm chính cho một Người dùng.
  5. -G = Để thêm các nhóm bổ sung.
  6. -a = Để thêm bất kỳ nhóm nào vào một nhóm phụ.
  7. -l = Thay đổi tên đăng nhập từ tecmint thành tecmint_admin.
  8. -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.
  9. -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.
  10. -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).
  11. -s = Tạo một Shell cụ thể cho các tài khoản mới.
  12. -u = Được sử dụng để gán UID cho tài khoản người dùng trong khoảng từ 0 đến 999.
  13. -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
Add User Information in Linux

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
Change User Home Directory

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
Add User Expiry Date in Linux

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)
Change User Group in Linux

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
Add Group to User in Linux

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
Add Multiple Groups to User

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
Change User Login Name in Linux

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
Lock User Account in Linux

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
Unlock User Account in Linux

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/
Move User Home Directory in Linux

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
Create Unencrypted User Password in Linux

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
Change User Login Shell in Linux

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
Change User UID in Linux

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
Using Multiple Options with usermod

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
Change User GID

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.