15 ví dụ lệnh usermod trên Centos / Ubuntu / Debian / Fedora
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 mà chúng ta cần thay đổi các thuộc tính của một người dùng đã tồn tại như, thay đổi thư mục chủ 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, v.v., trong trường hợp đó lệnh 'usermod' được sử dụng.
Khi thực thi lệnh 'usermod' trong terminal, các tệp sau đây đượ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ộ công cụ mật khẩu shadow.
Cú pháp cơ bản của lệnh:
usermod [options] username
Yêu cầu
- Có tài khoản người dùng đã tồn tại để thực hiện lệnh usermod.
- Chỉ có người dùng siêu (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à các tùy chọn
Các tùy chọn của Usermod
Lệnh 'usermod' dễ sử dụng với nhiều tùy chọn để thay đổi một người dùng đã tồn tại. Hãy xem cách sử dụng lệnh usermod bằng cách thay đổi một số người dùng đã tồn tại trong hệ thống Linux thông qua các tùy chọn sau đây.
- -c = Thêm trường bình luận 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 nào đã tồn tại.
- -e = Đặt ngày hết hạn của tài khoản trong một khả năng 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 một 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 để bạn không thể sử dụng tài khoản đó.
- -m = Di chuyển nội dung của thư mục chủ từ thư mục chủ 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 an toàn).
- -s = Tạo một shell cụ thể cho tài khoản mới.
- -u = 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 ta sẽ xem '15 lệnh usermod' với các ví dụ thực tế và cách sử dụng trong Linux, giúp bạn học và nâng cao kỹ năng sử dụng dòng lệnh của mình với những tùy chọn này.
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 ghi chú (thông tin) ngắn về tài khoản người dùng. Ví dụ, hãy thêm thông tin cho 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 cho người dùng, ghi chú tương tự có thể được xem trong tệp /etc/passwd.
# grep -E --color 'tecmint' /etc/passwd tecmint:x:500:500:This is Tecmint:/home/tecmint:/bin/sh
Thay đổi thư mục chủ của người dùng
Trong bước trước, chúng ta có thể thấy thư mục chủ của chúng ta nằm trong /home/tecmint/. Nếu chúng ta muốn thay đổi nó sang một thư mục khác, chúng ta có thể thay đổi 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 chủ của chúng ta thành /var/www/, nhưng trước khi thay đổi, hãy kiểm tra thư mục chủ 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
Sau đó, thay đổi thư mục chủ từ /home/tecmint thành /var/www/ và xác nhận thư mục chủ 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
Đặt ngày hết hạn cho 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 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 một người dùng, hãy kiểm tra trạng thái 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 ngày hết hạn mật khẩu người dùng).
# 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à 1 tháng 12 năm 2014, hãy thay đổi thành 1 tháng 11 năm 2014 bằng cách sử dụng tùy chọn ‘usermod -e‘ và xác nhận ngày hết hạn bằng 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
Thay đổi nhóm chính của người dùng
Để thiết lập hoặc thay đổi nhóm chính cho một 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 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ờ, hãy đặ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)
Thêm nhóm cho người dùng hiện có
Nếu bạn muốn thêm một nhóm mới có tên là 'tecmint_test0' cho người dùng 'tecmint', bạn có thể sử dụng tùy chọn '-G' với lệnh usermod như dưới đây.
# usermod -G tecmint_test0 tecmint # id tecmint
Lưu ý: 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' một mình, nó sẽ gỡ bỏ 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 tùy chọn '-a' (append) với tùy chọn '-G' để thêm hoặc gắn thêm các nhóm mới.
Thêm nhóm bổ sung và nhóm chính cho người dùng
Nếu bạn muốn thêm người dùng vào bất kỳ một trong các 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 tài khoản người dùng 'tecmint_test0' vào nhóm người dùng 'wheel'.
# usermod -a -G wheel tecmint_test0 # id tecmint_test0
Vì vậy, người dùng 'tecmint_test0' sẽ thuộc nhóm chính và cũng thuộc nhóm phụ (wheel). Điều này cho phép tài khoản người dùng thông thường của tôi thực thi bất kỳ lệnh nào yêu cầu đặc quyền root trên hệ thống Linux.
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 có, chúng ta có thể sử dụng tùy chọn '-l' (tên đăng nhập mới). Trong ví dụ dưới đây, bạn thay đổi tên đăng nhập từ '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òn tồn tại vì chúng ta đã thay đổi thành 'tecmint_admin'.
# id tecmint
Kiểm tra tài khoản 'tecmint_admin', nó sẽ vẫn tồn tại với cùng UID và nhóm hiện có mà chúng ta đã thêm trước đó.
# id tecmint_admin
8.Khóa tài khoản người dùng
Để 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 sẽ không thể đăng nhập bằ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
Mở khóa tài khoản người dùng
Tùy chọn '-U' được sử dụng để mở khóa người dùng bị khóa, điều này sẽ loại bỏ dấu '!' trước mật khẩu đã được mã hóa.
# grep -E --color 'babin' /etc/shadow # usermod -U babin
Xác minh tài khoản sau khi mở khóa.
# grep -E --color 'babin' /etc/shadow
Di chuyển thư mục gốc của người dùng đến vị trí mới
Giả sử bạn có một tài khoản người dùng với tên 'pinky' và thư mục gốc là '/home/pinky', bạn muốn di chuyển 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 tin người dùng hiện có từ thư mục gốc hiện tại đến 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 thuộc sở hữu của người dùng pinky.
# ls -l /home/pinky/
Bây giờ chúng ta sẽ di chuyển thư mục gốc từ '/home/pinky' đến '/var/pinky'.
# usermod -d /var/pinky/ -m pinky
Tiếp theo, xác minh sự thay đổi thư mục.
# grep -E --color 'pinky' /etc/passwd
Kiểm tra các tệp tin trong '/home/pinky'. Ở đây, chúng ta đã di chuyển các tệp tin sử dụng tùy chọn -m nên sẽ không còn tệp tin. Các tệp tin của người dùng pinky sẽ nằm dưới '/var/pinky'.
# ls -l /home/pinky/ # ls -l /var/pinky/
Tạo mật khẩu không được mã hóa cho người dùng
Để tạo một 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í dụ, tôi đang đặt mật khẩu mới là 'redhat' cho người dùng pinky.
# usermod -p redhat pinky
Sau khi đặt mật khẩu, kiểm tra tệp shadow để xem liệu nó có trong định dạng đã được mã hóa hay không.
# grep -E --color 'pinky' /etc/shadow
Lưu ý: Bạn đã thấy trong hình ảnh trên, mật khẩu được hiển thị rõ ràng cho tất cả mọi người. Vì vậy, tùy chọn này không được khuyến nghị sử dụng, vì mật khẩu sẽ hiển thị cho tất cả người dùng.
Thay đổi Shell của người dùng
Shell đăng nhập của người dùng có thể được thay đổi hoặc xác định trong quá trình tạo người dùng bằng lệnh useradd hoặc thay đổi bằng lệnh 'usermod' sử dụng tùy chọn '-s' (shell). Ví dụ, người dùng 'babin' mặc định có shell /bin/bash, giờ tôi muốn thay đổi thành /bin/sh.
# grep -E --color 'babin' /etc/passwd # usermod -s /bin/sh babin
Sau khi thay đổi shell của người dùng, hãy kiểm tra shell của người dùng bằng lệnh sau.
# grep -E --color 'babin' /etc/passwd
Thay đổi User ID (UID)
Trong ví dụ dưới đây, bạn có thể thấy tài khoản người dùng của tôi là 'babin' có UID là 502, giờ tôi muốn thay đổi thành 888 làm UID của tôi. Chúng ta có thể gán UID từ 0 đến 999.
# grep -E --color 'babin' /etc/passwd OR # id babin
Giờ, hãy thay đổi UID cho người dùng babin bằng cách sử dụng tùy chọn '-u' (uid) và xác minh các thay đổi.
# usermod -u 888 babin # id babin
Sửa đổi tài khoản người dùng với nhiều tùy chọn
Ở đây, có một người dùng Jack và muốn sửa đổi thư mục gốc, shell, ngày hết hạn, nhãn, UID. Nhóm của anh ấy cùng một lúc bằng một lệnh duy nhất với tất cả các tùy chọn trên.
Người dùng Jack có thư mục gốc mặc định là /home/jack, giờ muốn thay đổi thành /var/www/html và gán shell của anh ta là bash, đặt ngày hết hạn là ngày 10 tháng 12 năm 2014, thêm nhãn mới là "This is jack", thay đổi UID thành 555 và anh ta sẽ là thành viên của nhóm apple.
Hãy xem cách sửa đổi tài khoản jack bằng nhiều tùy chọn.
# 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 về UID và thư mục gốc.
# grep -E --color 'jack' /etc/passwd
Kiểm tra hết hạn tài khoản.
# chage -l jack
Kiểm tra các nhóm mà jack đã là thành viên.
# grep -E --color 'jack' /etc/group
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 tại. Để thay đổi thành GID mới, chúng ta cần một nhóm hiện có. Ở đây đã có một tài khoản có tên là orange với GID là 777.
Giờ đây, tài khoản người dùng jack muốn được gán UID là 666 và GID là Orange (777).
Kiểm tra UID và GID hiện tại trước khi thay đổi.
# id jack
Thay đổi UID và GID.
# usermod -u 666 -g 777 jack
Kiểm tra các thay đổi.
# id jack
Mọi người cùng tìm kiếm: usermod, usermod centos