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 ý:
Khi chúng ta chạy lệnh ‘useradd‘ thì nó thực hiện những bước như sau:
Cú pháp của lệnh này như sau:
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.
[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.
[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:
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:
Đâ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.
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.
[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.
[root@tecmint ~]# cat /etc/passwd | grep anusha anusha:x:505:505::/data/projects:/bin/bash
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‘.
[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é.
[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.
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ể.
[root@tecmint ~]# useradd -u 1000 -g 500 tarunika
Kiểm tra trong file /etc/passwd sẽ như sau:
[root@tecmint ~]# cat /etc/passwd | grep tarunika tarunika:x:1000:500::/home/tarunika:/bin/bash
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.
[root@tecmint ~]# useradd -G admins,webadmin,developers tecmint
Kiểm tra trong file /etc/passwd sẽ như sau:
[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
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.
[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é.
[root@tecmint ~]# ls -l /home/shilpi ls: cannot access /home/shilpi: No such file or directory
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.
[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:
[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
Đố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‘.
[root@tecmint ~]# useradd -e 2014-04-27 -f 45 tecmint
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.
[root@tecmint ~]# useradd -c "Manis Khurana" mansi
Kiểm tra trong file /etc/passwd sẽ như sau:
[root@tecmint ~]# tail -1 /etc/passwd mansi:x:1006:1008:Manis Khurana:/home/mansi:/bin/sh
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.
[root@tecmint ~]# useradd -s /sbin/nologin tecmint
Kiểm tra trong file /etc/passwd sẽ như sau:
[root@tecmint ~]# tail -1 /etc/passwd tecmint:x:1002:1002::/home/tecmint:/sbin/nologin
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.
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.
[root@tecmint ~]# useradd -m -d /var/www/ravi -s /bin/bash -c "TecMint Owner" -U ravi
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).
[root@tecmint ~]# useradd -m -d /var/www/tarunika -s /bin/zsh -c "TecMint Technical Writer" -u 1000 -g 1000 tarunika
Hy vọng qua các ví dụ trên bạn sẽ hiểu rõ hơn về cách sử dụng lệnh useradd để thêm user mới trong Linux. Chúc bạn thành công!
Nguồn: freetutsTips: Tham gia Channel Telegram KDATA để không bỏ sót khuyến mãi hot nào