Một số công cụ và lệnh dùng để quản lý user trong Linux

SysVN xin tiếp tục giới thiệu bài viết “Một số công cụ và lệnh dùng để quản lý user trong Linux”. Bài viết tôi đã giới thiệu định nghĩa 1 user và các file dùng để quản lý user các bạn có thể xem lại tại đây.

  1. Công cụ quản lý user

Để quản lý user ta có thể dùng command line hoặc dùng giao diện đồ họa

  • Quản lý bằng command line
    – useradd: tạo user.
    – usermod: chỉnh sửa thông tin user.
    – userdel: xóa user.
    – groupadd: tạo group.
    – groupdel: xóa group.
    – groupmod: chỉnh sửa thông tin group.
  • Quản lý bằng giao diện đồ họa

2. Tạo tài khoản người dùng

Để tạo tài khoản người dùng ta dùng lệnh useradd. Để biết cú pháp lệnh và những option của lệnh useradd ta dùng lệnh man useradd hoặc useradd –h.

useradd –h
useradd: option ‘–h’ is ambiguous
Usage: useradd [options] LOGIN

Options:
-b, –base-dir BASE_DIR base directory for the home directory of the
new account
-c, –comment COMMENT GECOS field of the new account
-d, –home-dir HOME_DIR home directory of the new account
-D, –defaults print or change default useradd configuration
-e, –expiredate EXPIRE_DATE expiration date of the new account
-f, –inactive INACTIVE password inactivity period of the new account
-g, –gid GROUP name or ID of the primary group of the new
account
-G, –groups GROUPS list of supplementary groups of the new
account
-h, –help display this help message and exit
-k, –skel SKEL_DIR use this alternative skeleton directory
-K, –key KEY=VALUE override /etc/login.defs defaults
-l, –no-log-init do not add the user to the lastlog and
faillog databases
-m, –create-home create the user’s home directory
-M, –no-create-home do not create the user’s home directory
-N, –no-user-group do not create a group with the same name as
the user
-o, –non-unique allow to create users with duplicate
(non-unique) UID
-p, –password PASSWORD encrypted password of the new account
-r, –system create a system account
-s, –shell SHELL login shell of the new account
-u, –uid UID user ID of the new account
-U, –user-group create a group with the same name as the user
-Z, –selinux-user SEUSER use a specific SEUSER for the SELinux user mapping

Ví dụ 1:

  • Tạo usera bằng lệnh useradd usera
  • Kiểm tra usera vừa tạo trong /etc/passwd bằng lệnh cat /etc/passwd

root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
saslauth:x:499:76:”Saslauthd user”:/var/empty/saslauth:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
grid:x:501:501:Oracle Grid Infrastructure Owner:/home/grid:/bin/bash
oracle:x:502:501:Oracle RDBMS Owner:/home/oracle:/bin/bash
dbus:x:81:81:System message bus:/:/sbin/nologin
haldaemon:x:68:68:HAL daemon:/:/sbin/nologin
usera:x:503:508::/home/usera:/bin/bash

  • Kiểm tra usera vừa tạo trong /etc/shadow bằng lệnh cat /etc/shadow

root:$6$2KoxkLivFAXReI2c$CjGuK.vSVr/qKErRu.Bxjpigp5lTFCnEiDRCyYyjFRJIYf3HxFTMJtA3TT7noPnqwrV1AR87dmtEjtfzb74xO.:17142:0:99999:7:::
bin:*:15695:0:99999:7:::
daemon:*:15695:0:99999:7:::
adm:*:15695:0:99999:7:::
lp:*:15695:0:99999:7:::
sync:*:15695:0:99999:7:::
shutdown:*:15695:0:99999:7:::
halt:*:15695:0:99999:7:::
mail:*:15695:0:99999:7:::
uucp:*:15695:0:99999:7:::
operator:*:15695:0:99999:7:::
games:*:15695:0:99999:7:::
gopher:*:15695:0:99999:7:::
ftp:*:15695:0:99999:7:::
nobody:*:15695:0:99999:7:::
vcsa:!!:17142::::::
saslauth:!!:17142::::::
postfix:!!:17142::::::
sshd:!!:17142::::::
grid:$6$YavDLcYo$APHo..vwTvF/lgjVfIg6mb.dAXjJekNA3fkMjL621/50cS7rmkYVWGrVsIntdzV27aI.WVKdR6GLYYtlWNCVq1:17142:0:99999:7:::
oracle:$6$VGkWDlvf$MhhK/3H4b3ItLd9dVBSfoJwaDqou045MI7w5Wy28/8cxP3zOicaHGvr9Za2dco7u8lBIWemjiVkeGrgm6EPJG1:17142:0:99999:7:::
dbus:!!:17142::::::
haldaemon:!!:17142::::::
usera:!!:17268:0:99999:7:::

Ta nhận thấy usera có hai dấu !! –> usera bị tạm khóa do chưa đặt password

  • Kiểm tra usera vừa tạo trong /etc/group bằng lệnh cat /etc/group

tape:x:33:
dialout:x:18:
saslauth:x:76:
postdrop:x:90:
postfix:x:89:
sshd:x:74:
oinstall:x:501:
dba:x:502:grid,oracle
oper:x:503:oracle
asmadmin:x:504:grid
asmdba:x:506:grid,oracle
asmoper:x:507:grid
dbus:x:81:
haldaemon:x:68:haldaemon
usera:x:508:

  • Đặt password cho usera bằng lệnh passwd usera
  • Kiểm tra usera trong file /etc/shadow bằng lệnh cat /etc/shadow|grep usera

usera:$6$Jr.fYU.C$Y0txhsEV2rT4eI0BZAKwLZyxvFkNDyay4a/W/k7PymzOLqZmKZNe9VymoVC0nm.3En3tcCOVP38sTXTtBiS1Z/:17268:0:99999:7:::

Ta nhận thấy usera đã được active do đã đặt password và password đã được mã hóa.

Mặc định thư mục home của user được tạo ra trong /home. Để thay đổi thư mục home mặc định ta dùng thêm tham số -d

Ví dụ 2: useradd -c “Day la tai khoan dung de test” -d /tmp/userb userb

saslauth:x:499:76:”Saslauthd user”:/var/empty/saslauth:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
grid:x:501:501:Oracle Grid Infrastructure Owner:/home/grid:/bin/bash
oracle:x:502:501:Oracle RDBMS Owner:/home/oracle:/bin/bash
dbus:x:81:81:System message bus:/:/sbin/nologin
haldaemon:x:68:68:HAL daemon:/:/sbin/nologin
usera:x:503:508::/home/usera:/bin/bash
userb:x:504:509:Day la tai khoan dung de test:/tmp/userb:/bin/bash

Ví dụ 3: tạo userc có thư mục home là /tmp/userc và thuộc group users bằng lệnh 

useradd -d /tmp/userc -g users userc

grid:x:501:501:Oracle Grid Infrastructure Owner:/home/grid:/bin/bash
oracle:x:502:501:Oracle RDBMS Owner:/home/oracle:/bin/bash
dbus:x:81:81:System message bus:/:/sbin/nologin
haldaemon:x:68:68:HAL daemon:/:/sbin/nologin
usera:x:503:508::/home/usera:/bin/bash
userb:x:504:509:Day la tai khoan dung de test:/tmp/userb:/bin/bash
userc:x:505:100::/tmp/userc:/bin/bash

Group user có ID=100

2. Thay đổi password user

Để thay đổi password user dùng lệnh passwd. Vi dụ: passwd root

Changing password for user root.
New password:
BAD PASSWORD: it is based on a dictionary word
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.

3. Thay đổi thông tin user

Để thay đổi thông tin user dùng lệnh usermod, để xem cú pháp lệnh dùng lệnh man usermod hoặc usermod –h

Options:
-c, –comment COMMENT new value of the GECOS field
-d, –home HOME_DIR new home directory for the user account
-e, –expiredate EXPIRE_DATE set account expiration date to EXPIRE_DATE
-f, –inactive INACTIVE set password inactive after expiration
to INACTIVE
-g, –gid GROUP force use GROUP as new primary group
-G, –groups GROUPS new list of supplementary GROUPS
-a, –append append the user to the supplemental GROUPS
mentioned by the -G option without removing
him/her from other groups
-h, –help display this help message and exit
-l, –login NEW_LOGIN new value of the login name
-L, –lock lock the user account
-m, –move-home move contents of the home directory to the
new location (use only with -d)
-o, –non-unique allow using duplicate (non-unique) UID
-p, –password PASSWORD use encrypted password for the new password
-s, –shell SHELL new login shell for the user account
-u, –uid UID new UID for the user account
-U, –unlock unlock the user account
-Z, –selinux-user new SELinux user mapping for the user account

Vi dụ 1:  Thay đổi home directory của userb là: /home/userb dùng lệnh 

usermod -d /home/userb userb

cat /etc/passwd

postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
grid:x:501:501:Oracle Grid Infrastructure Owner:/home/grid:/bin/bash
oracle:x:502:501:Oracle RDBMS Owner:/home/oracle:/bin/bash
dbus:x:81:81:System message bus:/:/sbin/nologin
haldaemon:x:68:68:HAL daemon:/:/sbin/nologin
usera:x:503:508::/home/usera:/bin/bash
userb:x:504:509:Day la tai khoan dung de test:/home/userb:/bin/bash
userc:x:505:100::/tmp/userc:/bin/bash

Ví dụ 2: Thay đổi userb thuộc group users dùng lệnh  usermod -g users userb

cat /etc/passwd

saslauth:x:499:76:”Saslauthd user”:/var/empty/saslauth:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
grid:x:501:501:Oracle Grid Infrastructure Owner:/home/grid:/bin/bash
oracle:x:502:501:Oracle RDBMS Owner:/home/oracle:/bin/bash
dbus:x:81:81:System message bus:/:/sbin/nologin
haldaemon:x:68:68:HAL daemon:/:/sbin/nologin
usera:x:503:508::/home/usera:/bin/bash
userb:x:504:100:Day la tai khoan dung de test:/home/userb:/bin/bash
userc:x:505:100::/tmp/userc:/bin/bash

4. Khóa và mở khóa tài khoản người dùng

Để khóa user dùng lệnh passwd –l hoặc usermod -L

Vi dụ: Khóa usera dùng lệnh passwd -l usera

cat /etc/shadow

saslauth:!!:17142::::::
postfix:!!:17142::::::
sshd:!!:17142::::::
grid:$6$YavDLcYo$APHo..vwTvF/lgjVfIg6mb.dAXjJekNA3fkMjL621/50cS7rmkYVWGrVsIntdzV27aI.WVKdR6GLYYtlWNCVq1:17142:0:99999:7:::
oracle:$6$VGkWDlvf$MhhK/3H4b3ItLd9dVBSfoJwaDqou045MI7w5Wy28/8cxP3zOicaHGvr9Za2dco7u8lBIWemjiVkeGrgm6EPJG1:17142:0:99999:7:::
dbus:!!:17142::::::
haldaemon:!!:17142::::::
usera:!!$6$Jr.fYU.C$Y0txhsEV2rT4eI0BZAKwLZyxvFkNDyay4a/W/k7PymzOLqZmKZNe9VymoVC0nm.3En3tcCOVP38sTXTtBiS1Z/:17268:0:99999:7:::
userb:!!:17268:0:99999:7:::
userc:!!:17268:0:99999:7:::

Dấu !! cho thấy usera đã bị khóa

Để mở khóa dùng lệnh passwd -u hoặc usermod -U

Ví dụ: Mở khóa usera dùng lệnh usermod -U usera

grid:$6$YavDLcYo$APHo..vwTvF/lgjVfIg6mb.dAXjJekNA3fkMjL621/50cS7rmkYVWGrVsIntdzV27aI.WVKdR6GLYYtlWNCVq1:17142:0:99999:7:::
oracle:$6$VGkWDlvf$MhhK/3H4b3ItLd9dVBSfoJwaDqou045MI7w5Wy28/8cxP3zOicaHGvr9Za2dco7u8lBIWemjiVkeGrgm6EPJG1:17142:0:99999:7:::
dbus:!!:17142::::::
haldaemon:!!:17142::::::
usera:!$6$Jr.fYU.C$Y0txhsEV2rT4eI0BZAKwLZyxvFkNDyay4a/W/k7PymzOLqZmKZNe9VymoVC0nm.3En3tcCOVP38sTXTtBiS1Z/:17268:0:99999:7:::
userb:!!:17268:0:99999:7:::
userc:!!:17268:0:99999:7:::

5. Tạo nhóm người dùng

Tạo nhóm người dùng sử dụng lệnh groupadd, để xem cú pháp lệnh sử dụng lệnh man groupadd hoặc groupadd –h

Options:
-f, –force exit successfully if the group already exists,
and cancel -g if the GID is already used
-g, –gid GID use GID for the new group
-h, –help display this help message and exit
-K, –key KEY=VALUE override /etc/login.defs defaults
-o, –non-unique allow to create groups with duplicate
(non-unique) GID
-p, –password PASSWORD use this encrypted password for the new group
-r, –system create a system account

Ví dụ: Tạo nhóm group1 sử dụng groupadd group1

oinstall:x:501:
dba:x:502:grid,oracle
oper:x:503:oracle
asmadmin:x:504:grid
asmdba:x:506:grid,oracle
asmoper:x:507:grid
dbus:x:81:
haldaemon:x:68:haldaemon
usera:x:508:
userb:x:509:
group1:x:510:

6. Thay đổi thông tin nhóm

Để thay đổi thông tin nhóm dùng lệnh groupmod, dùng lệnh man groupmod hoặc groupmod –h

Options:
-g, –gid GID change the group ID to GID
-h, –help display this help message and exit
-n, –new-name NEW_GROUP change the name to NEW_GROUP
-o, –non-unique allow to use a duplicate (non-unique) GID
-p, –password PASSWORD change the password to this (encrypted)
PASSWORD

Vi dụ 1: Thay đổi tên group1 thành nhom1 sử dụng lệnh groupmod -n nhom1 group1

asmadmin:x:504:grid
asmdba:x:506:grid,oracle
asmoper:x:507:grid
dbus:x:81:
haldaemon:x:68:haldaemon
usera:x:508:
userb:x:509:
nhom1:x:510:

Ví dụ 2: Thay đổi group id của nhom1 thành 700 sử dụng lệnh groupmod -g 700 nhom1

asmadmin:x:504:grid
asmdba:x:506:grid,oracle
asmoper:x:507:grid
dbus:x:81:
haldaemon:x:68:haldaemon
usera:x:508:
userb:x:509:
nhom1:x:700:

7. Xóa group và user

Để xóa group dùng lệnh groupdel, để xóa user dùng lệnh userdel

8. Login & Logout

  • Dấu # được hiển thị cho user root
  • Dấu $ hiển thị cho user thường
  • Từ user root chuyển quá usera dùng lệnh su usera hoặc su – user không cần nhập password
  • Từ usera chuyển sang userb dùng lệnh su userb hoặc su – userb và cần nhập password của userb

Các bạn tự tìm hiểu sự khác nhau giữa su và su – nhé???