Linux學習:Linux基礎命令集(3)

本次記錄以下命令如useradd, usermod, passwd, userdel, groupadd, groupmod, groupdel, gpasswd, su, id, chfn, chsh, chage, finger的使用格式、常用選項及它們有哪些使用實例等。

  • 用戶和工作組管理相關命令

1. useradd 創建新用戶命令

創建新用戶命令格式:useradd [OPTION] LOGIN

OPTION:

-u 直接指定一個特定的UID給新建賬號

-g 指定用戶所屬的基本組,此組必須事先存在

[root@www ~]# useradd -u 600 -g users t1

[root@www ~]# ll -d /home/t1

drwx------. 4 t1 users 4096 8月 31 19:31 /home/t1

-c 用戶信息說明

-d 指定某個目錄成爲主文件夾,使用絕對路徑

-G 指定所屬的附加組(還可以加入的用戶組)

[root@www ~]# useradd -u 3000 -g database -G sql -c DBA -d /home/database Oracle

[root@www ~]# grep Oracle /etc/passwd /etc/shadow /etc/group

/etc/passwd:Oracle:x:3000:502:DBA:/home/database:/bin/bash

/etc/shadow:Oracle:!!:16678:0:99999:7:::

/etc/group:sql:x:503:Oracle

[root@www ~]# id Oracle

uid=3000(Oracle) gid=502(database) 組=502(database),503(sql)

-s 指定用戶shell

-M 不要創建用戶主文件夾(系統賬號默認值)

-m 要創建用戶主文件夾(一般賬號默認值)

-r 創建系統賬戶

[root@www ~]# useradd -r sysaccount

[root@www ~]# grep sysaccount /etc/passwd /etc/shadow /etc/group

/etc/passwd:sysaccount:x:495:491::/home/sysaccount:/bin/bash

/etc/shadow:sysaccount:!!:16678::::::

/etc/group:sysaccount:x:491:

useradd參考文件

[root@www ~]# useradd -D

GROUP=100                 <-- 默認用戶組

HOME=/home              <-- 默認的主文件夾所在目錄

INACTIVE=-1

EXPIRE=

SHELL=/bin/bash          <-- 默認的shell

SKEL=/etc/skel             <-- 用戶主文件夾的內容數據參考目錄

CREATE_MAIL_SPOOL=yes

2. passwd設置密碼命令

設置密碼命令格式:passwd [OPTION] [USERNAME]

OPTION:

-l 使密碼失效

-u未鎖定密碼

[root@www etc]# passwd -l Oracle

鎖定用戶 Oracle 的密碼 。

passwd: 操作成功

[root@www etc]# passwd -S Oracle

Oracle LK 2015-08-31 0 60 7 10 (密碼已被鎖定。)

[root@www etc]# grep Oracle /etc/shadow

Oracle:!!$6$7f.VFz5z$TocJp42wo8V6DdsgcF.7TOxGLJwfsCQGuwpqyHSVhQ6hER6K3Kyr0CDQmdaPzCS.kyWySlwElYdTUwuNRuciG1:16678:0:60:7:10::

-n 多久不可修改密碼天數

-x 多久內必須要改動密碼

-w 密碼過期前的警告天數

-i 密碼失效日期

[root@www ~]# passwd lab_test1

更改用戶 lab_test1 的密碼 。

新的 密碼:

無效的密碼: 過短

無效的密碼: 過於簡單

重新輸入新的 密碼:

passwd: 所有的身份驗證令牌已經成功更新。

-S 列出密碼相關參數

[root@www etc]# passwd -S Oracle

Oracle PS 2015-08-31 0 99999 7 -1 (密碼已設置,使用 SHA512 加密。)

每60天需要更改密碼,密碼過期後10天未使用就宣告密碼失效

[root@www etc]# passwd -x 60 -i 10 Oracle

調整用戶密碼老化數據Oracle。

passwd: 操作成功

[root@www etc]# passwd -S Oracle

Oracle PS 2015-08-31 0 60 7 10 (密碼已設置,使用 SHA512 加密。)

--stdin 從標準輸出接收用戶密碼

[root@www etc]# echo "abcdefg" | passwd --stdin Oracle

更改用戶 Oracle 的密碼 。

passwd: 所有的身份驗證令牌已經成功更新。

3. chage密碼過期時間設置命令

修改賬號和密碼的有效期限。

密碼過期時間設置命令格式:chage [OPTION]...LOGIN

OPTION:

-l 列出當前的設置(用戶及密碼的有效期限)

[root@www ~]# chage -l Oracle

Last password change : Aug 31, 2015

Password expires : Oct 30, 2015

Password inactive : Nov 09, 2015

Account expires : never

Minimum number of days between password change : 0

Maximum number of days between password change : 60

Number of days of warning before password expires : 7

-d 最近一次更改密碼的日期,格式YYYY-MM-DD

讓用戶在第一次登錄時強制他們一定要更改密碼後才能夠使用系統資源

[root@www ~]# useradd agetest

[root@www ~]# echo "agetest" | passwd --stdin agetest

更改用戶 agetest 的密碼 。

passwd: 所有的身份驗證令牌已經成功更新。

[root@www ~]# chage -d 0 agetest

You are required to change your password immediately (root enforced)

WARNING: Your password has expired.

You must change your password now and login again!

Changing password for user agetest.

Changing password for agetest.

(current) UNIX password:                         <-- 這個賬號被強制要求必須更改密碼!

-E 賬號失效日,格式YYYY-MM-DD

-I 密碼失效日期

-m密碼最短保留天數

-M密碼多久需要進行更改

-W密碼過期前警告日期

4. usermod賬號屬性修改命令

用於修改用戶的基本信息,它不允許你改變正在線上的使用者賬號名稱。當usermod命令用來改變user id,必須確認這名user沒有在電腦上執行任何程序。

賬號屬性修改命令格式:usermod [OPTION]...LOGIN

OPTION:

-c修改賬號的說明

[root@www ~]# usermod -c "lab_test1 is test Account" lab_test1

[root@www ~]# grep lab_test1 /etc/passwd

lab_test1:x:501:501:lab_test1 is test Account:/home/lab_test1:/bin/bash

-u 修改用戶ID

-g 修改用戶所屬的基本組

-G 修改用戶所屬的附加組

-l 修改用戶賬號名稱

-d 修改用戶登入時的目錄(主文件夾)

[root@www ~]# usermod -u 666 -g root -G lab_test1 -l test1_lab -d /account_lab lab_test1

lab_test1:x:501:501::/home/lab_test1:/bin/bash

[root@www /]# grep "test1_lab" /etc/passwd /etc/shadow /etc/group

/etc/passwd:test1_lab:x:666:0:lab_test1 is test Account:/account_lab:/bin/bash

/etc/shadow:test1_lab:$6$r26qUB6T$udvZrhtQh342s40B.QPX.gjkBi.jv8YZitOAu8F40k/9iJ0cBS3b/cz.2qDO5j3rrmIYT6d.BgdTWSW5Zr3xl.:16678:0:99999:7:::

/etc/group:lab_test1:x:501:test1_lab

-L 鎖定用戶密碼,使密碼無效

-U 解除密碼鎖定

-s 修改用戶登入後所使用的shell

5. userdel刪除賬號命令

用於刪除給定的用戶,以及與用戶相關的文件。若不加選項,則僅刪除用戶賬號,而不刪除相關文件。

刪除賬號命令格式:userdel [OPTION]...LOGIN

OPTION:

-f 強制刪除用戶,即使用戶當前已登錄

-r 刪除用戶的同時,刪除與用戶相關的所有文件

用戶賬號/密碼相關參數:/etc/passwd, /etc/shadow

用戶組相關參數:/etc/group, /etc/gshadow

用戶個人文件數據:/home/username, /var/spool/mail/username

t1:x:600:100::/home/t1:/bin/bash

[root@www ~]# userdel -r t1

[root@www ~]# ll -d /home/t1

ls: 無法訪問/home/t1: 沒有那個文件或目錄

6. groupadd創建新工作組命令

創建一個新的工作組,其信息將被添加到系統文件中。

創建新工作組命令格式:groupadd [OPTION]...GROUPNAME

OPTION:

-g 指定新建工作組的ID

-r 創建系統工作組,系統工作組的組ID小於500

[root@www ~]# groupadd -g 600 lab_group1

[root@www ~]# grep lab_group1 /etc/group /etc/gshadow

/etc/group:lab_group1:x:600:

/etc/gshadow:lab_group1:!::

7. groupmod工作組屬性更改命令

工作組屬性更改命令格式:

groupmod [OPTION]...GROUPNAME

OPTION:

-g 修改既有的GID

-n 修改既有的組名稱

[root@www ~]# groupmod -g 488 -n group1 lab_group1

[root@www ~]# grep group1 /etc/group /etc/gshadow

/etc/group:group1:x:488:

/etc/gshadow:group1:!::

8. groupdel刪除工作組命令

刪除指定的工作組,本命令要修改的系統文件包括/etc/group和/etc/gshadow。若該羣組中仍包括某些用戶,則必須先刪除這些用戶後,方能刪除羣組。

刪除工作組命令格式:groupdel GROUPNAME

[root@www ~]# groupdel group1

[root@www ~]# grep group1 /etc/group /etc/gshadow

9. gpasswd工作組密碼設定命令

如果系統管理員沒時間幫用戶加入到指定工作組內,這時可新建“用戶組管理員”來管理指定賬號加入/移出有關用戶組。

工作組密碼設定命令格式:gpasswd [OPTION]...GROUPNAME

OPTION:

不帶任何參數,表示給予groupname一個密碼(/etc/gshadow)

-A 指定某用戶賬號爲指定工作組的管理員

[root@www ~]# gpasswd -A Allen users

[root@www ~]# grep users /etc/group /etc/gshadow

/etc/group:users:x:100:

/etc/gshadow:users::Allen:

-r 將groupname的密碼刪除

-R 讓groupname密碼欄失效

-a 添加用戶到指定組中

-d 從指定組中刪除用戶

[Allen@www ~]$ gpasswd -a lab_test2 users

Adding user lab_test2 to group users

[Allen@www ~]$ grep users /etc/group

users:x:100:lab_test2

  • 用戶功能相關命令

10. finger查看用戶信息命令

用於查看用戶信息,包括本地與遠端主機的用戶皆可,帳號名稱沒有大小寫的差別。(大部分是/etc/passwd裏面的信息)

單獨執行finger指令,它會顯示本地主機現在所有的用戶的登陸信息,包括帳號名稱,真實姓名,登入終端機,閒置時間,登入時間以及地址和電話。

查看用戶信息命令格式:finger [OPTION] USERNAME OPTION:

-s 列出該用戶的帳號名稱,真實姓名,登入終端機,閒置時間,登入時間以及地址和電話;

[root@NTPServer ~]# finger -s

Login Name Tty Idle Login Time Office Office Phone

root root pts/1 Sep 1 10:28 (10.10.6.240)

[root@NTPServer ~]# finger root

Login: root Name: root

Directory: /root Shell: /bin/bash

On since 二 9月 1 10:28 (CST) on pts/1 from 10.10.6.240

New mail received 二 9月 1 10:28 2015 (CST)

Unread since 二 10月 8 12:23 2013 (CST)

11. chfn改變finger顯示信息命令

改變finger命令顯示的信息。這些信息都存放在/etc目錄裏的passwd文件裏。若不指定任何選項,則chfn命令會進入問答式界面。

改變finger顯示信息命令格式:chfn [OPTION] [USERNAME] OPTION:

-f 設置真實姓名

-h 設置家中的電話號碼

-o 設置辦公室地址

-p 設置辦公室的電話號碼

[root@www ~]# chfn -f Allen.Huang

Changing finger information for root.

Finger information changed.

[root@www ~]# grep root /etc/passwd

root:x:0:0:Allen.Huang:/root:/bin/bash

12. chsh更改shell命令

更換登錄系統時使用的shell。若不指定任何參數與用戶名稱,則chsh會以應答的方式進行設置。

更改shell命令格式:chsh [OPTION] [USERNAME]

OPTION:

-l 列出目前系統可用的shell清單(/etc/shells)

[Allen@www ~]$ chsh -l

/bin/sh

/bin/bash

/sbin/nologin

/bin/dash

/bin/tcsh

/bin/csh

-s 更改用戶預設的shell環境

[root@www ~]# chsh -s /bin/csh Allen; grep Allen /etc/passwd

Changing shell for Allen.

Shell changed.

root:x:0:0:Allen.Huang:/root:/bin/bash

Allen:x:500:500:Allen.Huang:/home/Allen:/bin/csh

13. id查詢賬戶信息命令

顯示真實有效的用戶ID(UID)和組ID(GID)。UID 是對一個用戶的單一身份標識。組ID(GID)則對應多個UID。

查詢賬戶信息命令格式:id [OPTION] [USERNAME]

OPTION:

-g顯示用戶所屬羣組的ID

-G顯示用戶所屬附加羣組的ID

-u顯示用戶ID

[root@www ~]# id root

uid=0(root) gid=0(root) 組=0(root)

14. su切換用戶身份命令

用於切換當前用戶身份到其他用戶身份,變更時須輸入所要變更的用戶帳號與密碼。

切換用戶身份命令格式:su [OPTION]...[USERNAME]

OPTION:

- 代表切換爲root身份

-l 改變身份時,也同時變更工作目錄,以及HOME,SHELL, USER, LOGNAME。也會變更PATH變量

-m,-p變更身份時,不要變更環境變量

-c執行完指定的指令後,即恢復原來的身份

使用root切換成爲任何用戶時,並不需要輸入新用戶的密碼。

[root@www ~]# su -l Allen

[Allen@www ~]$ env |grep Allen                      <--用戶的環境變量

HOME=/home/Allen

USER=Allen

LOGNAME=Allen

PWD=/home/Allen

GROUP=Allen

MAIL=/var/spool/mail/Allen

[Allen@www ~]$ useradd –D               <--此用戶無權限執行此命令

useradd: Command not found.

[Allen@www ~]$ su - -c "useradd -D"         <--Root權限執行此命令

密碼:

GROUP=100

HOME=/home

INACTIVE=-1

EXPIRE=

SHELL=/bin/bash

SKEL=/etc/skel

CREATE_MAIL_SPOOL=yes

[Allen@www ~]$ su -

密碼:

[root@www ~]#

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章