Thứ Sáu, 28 tháng 7, 2023

Cách dùng lệnh useradd trong Linux để thêm người dùng mới

Trong bài này chúng ta cùng tìm hiểu cách dùng lệnh adduser hoặc useradd trong Linux, công dụng của lệnh này là thêm một người dùng mới vào danh sách user của Linux.

Trong Linux, lệnh useradd là một lệnh cấp thấp (low-lever) được dùng để thêm / tạo tài khoản người dùng mới trong Linux và các hệ điều hành Unix khác. Lưu ý rằng lệnh useradd cũng tương tự như useradd.

Trong một số bản Linux khác thì lệnh useradd có thể có sự khác biệt nhẹ, vì vậy bạn nên đọc tài liệu của phiên bản linux đó trước khi xem bài này.

Mục lục

  • I. Cú pháp lệnh useradd trong Linux
  • II. Các ví dụ sử dụng lệnh useradd trong Linux cơ bản
    • 1. Tạo mới user ở một thư mục khác thư mục home
    • 2. Tạo người dùng và gắn ID User cụ thể
    • 3. Tạo người dùng và gắn ID Group cụ thể
    • 4. Thêm một người dùng vào nhiều nhóm
    • 5. Thêm người dùng mà không cần thư mục /home
    • 6. Tạo user có ngày hết hạn tài khoản
    • 7. Tạo user kèm ngày hết hạn cho mật khẩu
    • 9. Thêm người dùng kèm một comment
    • 8. Thay đổi Login Shell cho người dùng
  • III. Các ví dụ sử dụng lệnh useradd trong Linux nâng cao
    • 1. Thêm user tại thư mục home, default shell và custom comment
    • 2. Thêm user tại thư mục home, custom Shell, custom comment và UID/GID

I. Cú pháp lệnh useradd trong Linux

Khi chúng ta chạy lệnh ‘useradd‘ thì nó thực hiện những bước như sau:

Bài viết này được đăng tại [tranvanbinh.vn]

  • Chỉnh sửa các file /etc/passwd/etc/shadow/etc/group và /etc/gshadow cho tài khoản người dùng mới được tạo.
  • Tạo và điền thư mục chính cho người dùng mới.
  • Đặt quyền và quyền sở hữu cho thư mục chính.

Cú pháp của lệnh này như sau:

1
useradd [options] username

Trong đó phần options ta sẽ được học thông qua những ví dụ ở phần II.

Thêm mới người dùng trong Linux

Để thêm người dùng mới thì ta chạy lệnh ‘useradd‘ hoặc ‘adduser‘ với ‘username’. ‘username’ là tên đăng nhập của người dùng, được sử dụng để đăng nhập vào hệ thống.

Mỗi lần chạy lệnh ta chỉ có thể thêm một người dùng và tên người dùng đó phải là duy nhất (khác với tên người dùng khác đã tồn tại trên hệ thống).

Ví dụ: để thêm người dùng mới có tên là ‘tecmint‘, hãy sử dụng lệnh sau.

1
[root@tecmint ~]# useradd tecmint

Khi chúng ta thêm người dùng mới vào Linux bằng lệnh ‘useradd‘ thì người dùng đó sẽ ở trạng thái bị khóa, vì vây ta cần đặt mật khẩu cho nó bằng lệnh ‘passwd‘ thì mới mở khóa được.

1
2
3
4
5
[root@tecmint ~]# passwd tecmint
Changing password for user tecmint.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.

Sau khi bạn đặt mật khẩu thì nó sẽ được lưu vào file /etc/passwd, cấu trúc dữ liệu của nó được lưu trong file có dạng như sau:

1
tecmint:x:504:504:tecmint:/home/tecmint:/bin/bash

Trong đó được chia làm 7 phần được ngăn cách nhau bởi dấu hai chấm. Ý nghĩa của mỗi phần như sau:

  • Username: Là tên đăng nhập, có độ dài từ 1 đến 32 ký tự.
  • Password: Là mật khẩu, được lưu trữ trong file /etc/shadow ở dạng mã hóa.
  • User ID (UID): Mỗi user phải có một ID và duy nhất, ta gọi nó là UID.
  • Group ID (GID): Là group id nhận dạng người dùng này, ta gọi là GID
  • User Info: Là thông tin cơ bản về người dùng, chẳng hạn như full name.
  • Home Directory: Là đường dẫn tuyệt đối đến thư mục chính của người dùng.
  • Shell: Là đường dẫn tuyệt đối đến login shell của người dùng.

II. Các ví dụ sử dụng lệnh useradd trong Linux cơ bản

Đây là những ví dụ ở mức cơ bản, nhưng đó là nền tảng để bạn tạo ra những lệnh nâng cao.

1. Tạo mới user ở một thư mục khác thư mục home

Theo mặc định, lệnh ‘useradd‘ tạo thư mục chính của người dùng trong thư mục /home với tên người dùng. Như ở ví dụ trên ta có thể thấy thư mục chính mặc định cho người dùng ‘tecmint‘ là /home/tecmint.

Tuy nhiên, ta hoàn toàn có thể thay đổi thư mục bằng cách sử dụng tùy chọn -d cùng với đó là vị trí của thư mục mới.

Ví dụ: lệnh sau sẽ tạo một người dùng ‘analha‘ với thư mục chính /data/project.

1
[root@tecmint ~]# useradd -d /data/projects anusha

Lúc này kiểm tra trong file /etc/passwd bạn có thể thấy thư mục chính của người dùng và thông tin liên quan đến người dùng hoàn toàn khác.

1
2
3
[root@tecmint ~]# cat /etc/passwd | grep anusha
 
anusha:x:505:505::/data/projects:/bin/bash

2. Tạo người dùng và gắn ID User cụ thể

Trong Linux, mỗi người dùng đều có UID (số nhận dạng duy nhất) của riêng mình. Theo mặc định, bất cứ khi nào chúng ta tạo tài khoản người dùng mới trong Linux, nó sẽ chỉ định userid 500, 501, 502, v.v.

Tuy nhiên, chúng ta có thể tạo user’s bằng userid tùy chỉnh với tùy chọn ‘-u‘.

Ví dụ: lệnh sau sẽ tạo một người dùng ‘navin‘ với userid tùy chỉnh là ‘999‘.

1
[root@tecmint ~]# useradd -u 999 navin

Bây giờ kiểm tra xem thông tin có chính xác hay không nhé.

1
2
3
[root@tecmint ~]# cat /etc/passwd | grep navin
 
navin:x:999:999::/home/navin:/bin/bash

Lưu ý rằng bạn phải đảm bảo giá trị của ID người dùng phải là duy nhất so với bất kỳ người dùng nào khác đã được tạo trên hệ thống.

3. Tạo người dùng và gắn ID Group cụ thể

Tương tự, mỗi người dùng đều có GID (số nhận dạng nhóm) riêng. Chúng tôi có thể tạo người dùng với ID nhóm cụ thể cũng với tùy chọn -g.

Ở trong ví dụ này ta sẽ thêm người dùng ‘tarunika‘ với UID và GID được chỉ định cụ thể.

1
[root@tecmint ~]# useradd -u 1000 -g 500 tarunika

Kiểm tra trong file /etc/passwd sẽ như sau:

1
2
3
[root@tecmint ~]# cat /etc/passwd | grep tarunika
 
tarunika:x:1000:500::/home/tarunika:/bin/bash

4. Thêm một người dùng vào nhiều nhóm

Tùy chọn ‘-G‘ được sử dụng để thêm người dùng vào các nhóm bổ sung. Mỗi tên nhóm được phân tách bằng dấu phẩy, không có dấu cách xen vào.

Trong ví dụ này ta đang thêm người dùng ‘tecmint‘ vào nhiều nhóm như admins, webadmin và developer.

1
[root@tecmint ~]# useradd -G admins,webadmin,developers tecmint

Kiểm tra trong file /etc/passwd sẽ như sau:

1
2
3
4
5
[root@tecmint ~]# id tecmint
 
uid=1001(tecmint) gid=1001(tecmint)
groups=1001(tecmint),500(admins),501(webadmin),502(developers)
context=root:system_r:unconfined_t:SystemLow-SystemHigh

5. Thêm người dùng mà không cần thư mục /home

Trong một số trường hợp, chúng ta không muốn chỉ định thư mục chính cho người dùng vì một số lý do bảo mật. Trong trường hợp này, khi người dùng đăng nhập vào một hệ thống vừa mới khởi động lại, thư mục chính của nó sẽ là root. Khi người dùng đó sử dụng lệnh su, thư mục đăng nhập của nó sẽ là thư mục chính của người dùng trước đó.

Để tạo của người dùng mà không có thư mục chính của họ thì ta sử dụng tùy chọn ‘-M‘.

Ví dụ: lệnh sau sẽ tạo một người dùng ‘shilpi‘ không có thư mục chính.

1
[root@tecmint ~]# useradd -M shilpi

Kiểm tra trong file /etc/passwd sẽ như sau:

Bây giờ hãy sử dụng lệnh ls để xem có thư mục /home không nhé.

1
2
3
[root@tecmint ~]# ls -l /home/shilpi
 
ls: cannot access /home/shilpi: No such file or directory

6. Tạo user có ngày hết hạn tài khoản

Theo mặc định, khi chúng ta thêm tài khoản người dùng bằng lệnh ‘useradd’ thì tài khoản đó không bao giờ hết hạn, tức là ngày hết hạn của họ được đặt thành 0.

Tuy nhiên, chúng tôi có thể đặt ngày hết hạn bằng tùy chọn ‘-e‘, đặt ngày ở định dạng YYYY-MM-DD. Điều này rất hữu ích cho việc tạo tài khoản tạm thời trong một khoảng thời gian cụ thể.

Ở đây trong ví dụ này, chúng ta tạo một người dùng ‘aparna‘ có ngày hết hạn tài khoản là ngày 27 tháng 4 năm 2014 ở định dạng YYYY-MM-DD.

1
[root@tecmint ~]# useradd -e 2014-03-27 aparna

Xác minh thời hạn của tài khoản và mật khẩu bằng lệnh ‘chage‘ cho người dùng ‘aparna‘ sau khi đặt ngày hết hạn tài khoản như sau:

1
2
3
4
5
6
7
8
9
[root@tecmint ~]# chage -l aparna
 
Last password change                 : Mar 28, 2014
Password expires                 : never
Password inactive                : never
Account expires                  : Mar 27, 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

7. Tạo user kèm ngày hết hạn cho mật khẩu

Đối số ‘-f‘ được sử dụng để xác định số ngày hết hạn cho mật khẩu. Mặc định thì giá trị hết hạn mật khẩu được đặt thành -1, có nghĩa là không bao giờ hết hạn.

Trong ví dụ này chúng ta sẽ đặt ngày hết hạn mật khẩu tài khoản là 45 ngày đối với người dùng ‘tecmint’ bằng cách sử dụng các tùy chọn ‘-e‘ và ‘-f‘.

1
[root@tecmint ~]# useradd -e 2014-04-27 -f 45 tecmint

9. Thêm người dùng kèm một comment

Tùy chọn ‘-c‘ cho phép bạn thêm comment cho người dùng vừa tạo. Ví dụ như bạn cần ghi note lại thông tin gồm: tên đầy đủsố điện thoại, v.v. của người dùng vào file /etc/passwd. Comment có thể được thêm vào dưới dạng một dòng duy nhất mà không có bất kỳ khoảng trắng nào.

Ví dụ: lệnh sau sẽ thêm người dùng ‘mansi‘ và sẽ chèn tên đầy đủ của người dùng đó là "Manis Khurana" vào phần comment.

1
[root@tecmint ~]# useradd -c "Manis Khurana" mansi

Kiểm tra trong file /etc/passwd sẽ như sau:

1
2
3
[root@tecmint ~]# tail -1 /etc/passwd
 
mansi:x:1006:1008:Manis Khurana:/home/mansi:/bin/sh

8. Thay đổi Login Shell cho người dùng

Khi một phiên đăng nhập thành công thì login shell của người dùng đó cũng được mở theo. Nếu bạn muốn thay đổi login shell này thì có thể sử dụng đối số -s.

Trong ví dụ dưới đây mình đã thiết lập shell cho tài khoản useradd là Non-Login Shell.

1
[root@tecmint ~]# useradd -s /sbin/nologin tecmint

Kiểm tra trong file /etc/passwd sẽ như sau:

1
2
3
[root@tecmint ~]# tail -1 /etc/passwd
 
tecmint:x:1002:1002::/home/tecmint:/sbin/nologin

III. Các ví dụ sử dụng lệnh useradd trong Linux nâng cao

Dưới đây là 2 ví dụ nâng cao, sự kết hợp của nhiều tùy chọn trong lệnh useradd.

1. Thêm user tại thư mục home, default shell và custom comment

Lệnh sau sẽ tạo một người dùng ‘ravi‘ với thư mục chính là /var/www/tecmint, shell mặc định là /bin/bash và thêm thông tin comment cho người dùng.

1
[root@tecmint ~]# useradd -m -d /var/www/ravi -s /bin/bash -c "TecMint Owner" -U ravi

2. Thêm user tại thư mục home, custom Shell, custom comment và UID/GID

Lệnh tương tự như ví dụ trên, nhưng ở đây chúng ta định nghĩa shell là /bin/zsh và UID và GID tùy chỉnh cho người dùng ‘tarunika‘. Trong đó ‘-u‘ xác định UID của người dùng mới (tức là 1000) và ‘-g‘ xác định GID (tức là 1000).

1
[root@tecmint ~]# useradd -m -d /var/www/tarunika -s /bin/zsh -c "TecMint Technical Writer" -u 1000 -g 1000 tarunika

Qua 2 ví dụ ở phần nâng cao này mình muốn nhấn mạnh rằng: Bạn có thể sử dụng các thông số tùy chọn ở phần 1 và gắn liên tiếp để tạo thành một lệnh tạo user nâng cao trong Linux.

=============================
* KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE trực tiếp từ tôi giúp bạn bước đầu trở thành những chuyên gia DBA, đủ kinh nghiệm đi thi chứng chỉ OA/OCP, đặc biệt là rất nhiều kinh nghiệm, bí kíp thực chiến trên các hệ thống Core tại VN chỉ sau 1 khoá học.
* CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
* Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile/Zalo: 0902912888
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: https://www.youtube.com/@binhguru
👨 Tiktok: https://www.tiktok.com/@binhguru
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhguru
👨 Podcast: https://www.podbean.com/pu/pbblog-eskre-5f82d6
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội

=============================
Cách dùng lệnh useradd trong Linux để thêm người dùng mới, oracle tutorial, học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,sql tutorial, khóa học pl/sql tutorial, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail,oracle RAC, ASM, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, postgresql tutorial, mysql tutorial, mariadb tutorial, ms sql server tutorial, nosql, mongodb tutorial, oci, cloud, middleware tutorial, hoc solaris tutorial, hoc linux tutorial, hoc aix tutorial, unix tutorial, securecrt, xshell, mobaxterm, putty

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master