標籤:password linux 管理員 使用者
Linux使用者:UserName/password
UID:0-65535
管理員:0
普通使用者:1-60000
系統使用者:
CentOS6: 1-499
CentOS7:1-999
登入使用者:
CentOS6: 500+
CentOS7: 1000+
使用者的基本組:
使用者的私人組;
使用者的附加組
Linux使用者和組的相關的設定檔:
/etc/passwd:使用者名稱、UID、基本組等資訊
/etc/group:組名、GID、組內包含的使用者;
/etc/shadow:使用者密碼及相關屬性;
/etc/gshadow:組的密碼及相關屬性;
/etc/passwd:
name:password:UID:GID:GECOS:directory:shell
登入名稱:x:UID:GID:comment:主目錄:使用者預設shell
/etc/shadow:
login name:encrypted password:date of last password change:minimum password age:maximum password age:password warning period:password inactivity period:account expiration date:reserved field
$6$YNzGOv5VyXxmDU2n$PxariU7Ag0mBlzBoNLWUjubn9OBtoLJauXIfoRqQ1FtZt058FrQKJO6QVJTUXkP4LUKPsiH7ejWo8bg6c4RrC1
6:密碼編譯演算法
單向加密:
提取資料指紋;
md5, sha1, sha224, sha256, sha384, sha512
雪崩效應:
定長輸出:
相對於Unix元年;
1970年1月1號;
/etc/group
group_name:password:GID:user_list
密碼的複雜性策略:
1、使用數字、小寫字母、大寫字母、特殊字元四類中至少三類;
2、足夠長;
3、使用隨機密碼;
4、定期更換;
使用者和組管理的相關命令:
useradd、usermod、passwd、userdel
groupadd、groupmod、gpasswd、groupdel
chage, chsh, chfn
id, w, who, whoami
su
useradd命令: useradd(選項)(參數)
useradd命令用於Linux中建立的新的系統使用者。useradd可用來建立使用者帳號。帳號建好之後,再用passwd設定帳號的密碼.
而可用userdel刪除帳號。使用useradd指令所建立的帳號,實際上是儲存在/etc/passwd文字檔中。
選項:
-c<備忘>:加上備忘文字。備忘文字會儲存在passwd的備忘欄位中;
-d<登入目錄>:指定使用者登入時的啟始目錄;
-D:變更預設值;
-e<有效期間限>:指定帳號的有效期間限;
-f<緩衝天數>:指定在密碼到期後多少天即關閉該帳號;
-g<群組>:指定使用者所屬的群組;
-G<群組>:指定使用者所屬的附加群組;
-m:自動建立使用者的登入目錄;
-M:不要自動建立使用者的登入目錄;
-n:取消建立以使用者名稱稱為名的群組;
-r:建立系統帳號;
-s:指定使用者登入後所使用的shell;
-u:指定使用者id。
參數:使用者帳號名
執行個體:
1.預設值建立一個帳戶,使用者名稱為:mageedu
[[email protected] ~]# useradd mageedu
[[email protected] ~]# ll -d /home/mageedu
drwx------. 4 mageedu mageedu 4096 8月 30 23:54 /home/mageedu
[[email protected] ~]# grep mageedu /etc/passwd /etc/shadow /etc/group
/etc/passwd:mageedu:x:502:502::/home/mageedu:/bin/bash
/etc/shadow:mageedu:!!:16677:0:99999:7:::
/etc/group:mageedu:x:502: <==預設會建立一個與帳號一模一樣的使用者組名
2.建立使用者Oracle,所屬附加組database和sql,ID號為3000, 家目錄為/home/database
[[email protected] ~]# groupadd database <==首先建立兩個附加組
[[email protected] ~]# groupadd sql
[[email protected] ~]# useradd -G database,sql -u 3000 -d /home/database Oracle
Groupadd命令:
groupadd [選項] 參數
選項:
-g:指定建立工作群組的id;
-r:建立系統工作群組,系統工作群組的組ID小於500;
-K:覆蓋設定檔“/ect/login.defs”;
-o:允許添加組ID號不唯一的工作群組。
參數: 組名,指定建立工作群組名稱
執行個體:
1.建立一個使用者組,名稱為:mageedu
[[email protected] ~]# groupadd mageedu
[[email protected] ~]# grep mageedu /etc/group /etc/gshadow
/etc/group:mageedu:x:3001:
/etc/gshadow:mageedu:!:: #使用者組的內容與這兩個檔案相關:/etc/group , /etc/gshadow
2.將剛才建立的mageedu組名稱更改為Mygroup,GID為201.
[[email protected] ~]# groupmod -g 201 -n Mygroup mageedu
[[email protected] ~]# grep Mygroup /etc/group /etc/gshadow
/etc/group:Mygroup:x:201:
/etc/gshadow:Mygroup:!::
id:查看使用者相關的id資訊;
id [OPTION]... [USER]
-u: UID
-g: GID
-G: Groups
-n: NAME
[[email protected] ~]# id Oracle
uid=3000(Oracle) gid=3000(Oracle) 組=3000(Oracle),503(database),504(sql)
[[email protected] ~]# id <== 查看目前使用者的id資訊。
uid=0(root) gid=0(root) 組=0(root) 環境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
su:switch user, 切換使用者或以其它使用者的身份執行命令;
切換方式:
su USERNAME: 非完全切換;非登入式切換
su - USERNAME或su -l USERNAME: 完全切換;登入式切換
僅以指定使用者的身份執行指定的命令:
su - USERNAME -c ‘COMMAND‘
[[email protected] ~]# su wwg8708
[[email protected] root]$
[[email protected] root]$ su - <==普通使用者切換為root使用者
密碼:
[[email protected] ~]#
[[email protected] ~]# exit <==離開su的環境
logout
[[email protected] root]$
[[email protected] root]$ su - -c"命令" <=如果只是執行一個只有root才能進行的命令,且執行完畢就恢複原本的身份,則執行此命令,然後輸入root密碼。
使用root切換成為任何使用者時,並不需要輸入新使用者的密碼。
雖然su很方便,不過缺點是,當我的主機是多人管理的環境時,如果大家都要使用su 來初換成為root身份,那麼不就每個人都知道root的密碼,這樣密碼太多人知道可能會流傳出去,很不妥當,怎辦?
通過sudo來處理即可!
usermod:使用者屬性修改
usermod [OPTION]... LOGIN
-u UID
-g GID
-G GID[,GID,...]:修改使用者所屬的附加組;同時使用-a選項;
-s SHELL
-c ‘COMMENT‘
-d HOME: 修改使用者的家目錄為新位置時,使用者原來的檔案是不會被移動至新家;-m選項可實現同時將其遷至新的家目錄;
-l LOGIN:
-L:lock user
-U: unlock user
執行個體:
1.修改使用者mageedu的使用者名稱為mageedu1
[[email protected] ~]# usermod -l mageedu mageedu1
usermod:使用者屬性修改
usermod [OPTION]... LOGIN
-u UID
-g GID
-G GID[,GID,...]:修改使用者所屬的附加組;同時使用-a選項;
-s SHELL
-c ‘COMMENT‘
-d HOME: 修改使用者的家目錄為新位置時,使用者原來的檔案是不會被移動至新家;-m選項可實現同時將其遷至新的家目錄;
-l LOGIN:
-L:lock user
-U: unlock user
usermod:使用者屬性修改
usermod [OPTION]... LOGIN
-u UID
-g GID
-G GID[,GID,...]:修改使用者所屬的附加組;同時使用-a選項;
-s SHELL
-c ‘COMMENT‘
-d HOME: 修改使用者的家目錄為新位置時,使用者原來的檔案是不會被移動至新家;-m選項可實現同時將其遷至新的家目錄;
-l LOGIN:
-L:lock user
-U: unlock user
執行個體:修改ma
usermod:使用者屬性修改
usermod [OPTION]... LOGIN
-u UID
-g GID
-G GID[,GID,...]:修改使用者所屬的附加組;同時使用-a選項;
-s SHELL
-c ‘COMMENT‘
-d HOME: 修改使用者的家目錄為新位置時,使用者原來的檔案是不會被移動至新家;-m選項可實現同時將其遷至新的家目錄;
-l LOGIN:
-L:lock user
-U: unlock user
執行個體:
[[email protected] ~]# usermod -d /home/bak/ mageedu #修改mageedu使用者的家目錄
[[email protected] ~]# usermod -e 12/31/2015 mageedu #修改使用者的有效期間
passwd:給使用者添加密碼
passwd [OPTION] [UserName]
-l: lock user
-u: unlock user
-n mindays: 最短使用到期日;
-x maxdays:預設為99999天;
-w warndays:
-i inactivedays:
--stdin:從標準輸出接收使用者密碼;
echo ‘centos‘ | passwd --stdin centos
執行個體:
[[email protected] ~]# passwd mageedu1
更改使用者 mageedu1 的密碼 。
新的 密碼:
[[email protected] ~]# passwd -d mageedu1
清除使用者的密碼 mageedu1。
passwd: 操作成功
userdel:刪除使用者
userdel [-r] USERNAME
-r:刪除使用者的同時刪除其家目錄;
執行個體:
[[email protected] ~]# userdel -r amdin
[[email protected] ~]#
groupmod: 組屬性修改
groupmod [OPTION] GROUPNAME
-n GROUP_NAME
-g GID
執行個體:
[[email protected] ~]# useradd test
[[email protected] ~]# groupmod test -n test2 #將test組名換可test2
[[email protected] ~]# groupmod -g 1111 test2 #將test2的gid換成1111
gpasswd:設定組密碼
執行個體:
[[email protected] ~]# gpasswd test2 #設定test2組密碼
Changing the password for group test2
New Password:
Re-enter new password:
[[email protected] ~]#
newgrp:切換基本組為指定的組
[[email protected] ~]# newgrp test2 登入到test2群組
groupdel:刪除群組
[[email protected] ~]# groupdel tests
chage:密碼失效是通過此命令來管理的。
參數意思:
-m 密碼可更改的最小天數。為零時代表任何時候都可以更改密碼。
-M 密碼保持有效最大天數。
-W 使用者密碼到期前,提前收到警告資訊的天數。
-E 帳號到期的日期。過了這天,此帳號將不可用。
-d 上一次更改的日期
-I 停滯時期。如果一個密碼已到期這些天,那麼此帳號將不可用。
-l 例出當前的設定。由非特權使用者來確定他們的密碼或帳號何時到期。
[[email protected] ~]# chage -M 90 test #設定密碼有效期間為90天
finger 用 戶名 查看使用者資訊
[[email protected] ~]# finger test
Login: test Name:
Directory: /home/test Shell: /bin/bash
Never logged in.
No mail.
No Plan.
2015.8.25作業(練習):使用者管理各命令的使用