前段時(shí)間由于個(gè)人原因長(zhǎng)時(shí)間沒(méi)有更新,后面會(huì)繼續(xù)更新的。這都是我在學(xué)習(xí)linux時(shí)做的筆記,寫在這里方便大家也是方便自己。
用戶管理相關(guān)文件
- /etc/passwd
- /etc/group
- /etc/shadow
- /etc/gshadow
/etc/passwd文件格式:
root:x:0:0:root:/root:/bin/bash
1. 用戶名
2. 用戶的密碼占位符
3. UID
4. GID
5. 注釋信息
6. 用戶家目錄
7. 用戶默認(rèn)的shell
/etc/group 文件格式:
www:x:1002:
1. 組名
2. 組密碼占位符
3. GID
4. 以此組為其附加組的用戶的用戶名列表,如果有多個(gè)用戶可以用逗號(hào)隔開(kāi)
/etc/shadow文件格式:
www:!!:15836:0:99999:7:::
zhou:$1$zNXbcLE7$ANbOzBEBzSGWD.wy21.b31:16041:0:99999:7:::
1. 用戶的登陸名;
2. 加密過(guò)的密碼,如果為!!則表示此用戶已禁用;
加密方法是md5(Message Degist 消息摘要),這是一個(gè)單向加密算法。
單向加密的特點(diǎn):
2.1 定長(zhǎng)輸出 128bit。不管源數(shù)據(jù)多長(zhǎng),加密后的密文都一樣長(zhǎng);
2.2 雪崩效應(yīng),即:改變了一點(diǎn),加密后的結(jié)果都不一樣;
2.3 源文一樣,加密后的密文都一樣;
常見(jiàn)的單向加密算法:sha1 = secure hash algorithm 安全的hash算法;
$1$zNXbcLE7$ANbOzBEBzSGWD.wy21.b31
第1和第2個(gè)$之間的那個(gè)”1”表示:加密的方法是md5;
第2和第3個(gè)$之間的那串字符表示:系統(tǒng)在給密碼加密的時(shí)候所添加的“鹽”,是為了防止相同的密碼加密后的密文一樣,造成信息的泄露,這一點(diǎn)是利用了md5的雪崩效應(yīng);
第3個(gè)$后面的字符串就是密碼+“鹽”后的密文;
3. 記錄從1970年1月1日開(kāi)始到你最近一次修改密碼之間所經(jīng)過(guò)的天數(shù);也就是密碼的最近修改時(shí)間;
4. 密碼最短使用期限:?jiǎn)挝惶鞌?shù),默認(rèn)為0,表示不限制;
5. 密碼最長(zhǎng)使用期限:?jiǎn)挝惶鞌?shù),默認(rèn)是99999,表示可以永久有效;
6. 在密碼過(guò)期N天之前,向用戶發(fā)出警告;默認(rèn)是7天;
用戶帳號(hào)的非活動(dòng)期,在此期間,用戶登陸后第一件事,就是修改自己的密碼;當(dāng)錯(cuò)過(guò)此時(shí)間后,此帳號(hào)會(huì)被禁用。只有找root來(lái)啟用;
7. 用戶帳號(hào)的有效期限;
8. 最后一段做保留;
創(chuàng)建用戶
useradd|adduser [options] username
/etc/default/useradd 該文件用來(lái)初始化一些參數(shù)的值。比如默認(rèn)的shell,默認(rèn)的家目錄的位置等;
/etc/skel/ 該目錄中的文件就是在創(chuàng)建新用戶時(shí)的模板文件,當(dāng)創(chuàng)建好一個(gè)用戶時(shí),就會(huì)把該目錄下的文件CP到該用戶的家目錄下面,一般該目錄都是隱藏的文件;
/etc/login.defs 該文件指定了用戶的UID和GID的最小值500和最大值60000,默認(rèn)添加用戶的時(shí)候就從最小值開(kāi)始;
-c 表示為當(dāng)前要添加的用戶寫個(gè)注釋信息;
-u 表示指定用戶的UID;
-g 表示指定用戶的GID;
-G 表示指定用戶的附加組;
-d 表示指定用戶的家目錄位置;
-M 表示不為用戶創(chuàng)建家目錄;
-s 表示指定用戶的默認(rèn)shell;選項(xiàng)都在/etc/shells中
-e 指定用戶的過(guò)期日期,格式MM/DD/YYYY
-o 表示可以創(chuàng)建一個(gè)與已知的UID相同的用戶,例如# useradd –o –u 0 xfzhou 表示創(chuàng)建了一個(gè)uid為0的xfzhou用戶,當(dāng)然了這個(gè)用戶也是root。在Linux中是根據(jù)UID來(lái)識(shí)別用戶的級(jí)別的;
-r 創(chuàng)建一個(gè)程序用戶,UID范圍是 1-499,這些用戶是不能登陸系統(tǒng)的;
當(dāng)用戶創(chuàng)建完成后,該用戶由于沒(méi)有密碼,所以是不能直接登陸系統(tǒng)的。可以先由root給該用戶先設(shè)置個(gè)初始密碼。當(dāng)用戶登陸后就可以自己來(lái)改密碼了;
#passwd username
#passwd //不寫用戶名就是給當(dāng)前用戶改密碼;
passwd –l 鎖定一個(gè)用戶
passwd –u 解鎖用戶
passwd –stdin < passwdfile
創(chuàng)建組:
groupadd [options] groupname
# groupadd -g num group1 創(chuàng)建組的同是為組設(shè)置gid
gpasswd命令:
gpasswd -a user1 group1 //把用戶user1添加到group1中去。
gpasswd -d user2 group2 //把user2從group2組中刪除;
gpasswd -M user1 user2 user3 group1 一次性把多個(gè)用戶添加到指定的組中;
查看用戶信息:
# id [options].. username
-u 顯示指定用戶的UID
-g 顯示用戶的GID
-G 顯示用戶附加組
-n 顯示用戶的用戶名
[root@Nginx ~]# id -u root
0
[root@Nginx ~]# id -g root
0
[root@Nginx ~]# id -G root
0 1 2 3 4 6 10
[root@Nginx ~]# id -G root -n
root bin daemon sys adm disk wheel
[root@Nginx ~]#
# finger username //user information lookup program
[root@Nginx /]# finger root
Login: root Name: root
Directory: /root Shell: /bin/bash
On since 一 12月 2 21:10 (CST) on pts/0 from 192.168.10.254
On since 一 12月 2 22:12 (CST) on pts/1 from 192.168.10.254
1 hour 35 minutes idle
New mail received 一 12月 2 22:19 2013 (CST)
Unread since 六 5月 11 14:07 2013 (CST)
No Plan.
[root@Nginx /]#
# who
[root@Nginx /]# who
root pts/0 2013-12-02 21:10 (192.168.10.254)
root pts/1 2013-12-02 22:12 (192.168.10.254)
[root@Nginx /]#
# w
[root@Nginx /]# w
23:49:47 up 2:42, 2 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.10.254 21:10 0.00s 0.48s 0.01s w
root pts/1 192.168.10.254 22:12 1:37m 0.06s 0.04s man useradd
[root@Nginx /]#
# whoami
[root@Nginx /]# whoami
root
[root@Nginx /]#
修改用戶屬性:
usermod
chage
chfn
chsh
chsh username 更改用戶的shell和passwd的用法有點(diǎn)像
chfn username 修改用戶的注釋信息。
usermod [options] username
-u 更改用戶的UID
-g 更改用戶的GID
-G 更改用戶的附加組,如果只有“-G”則是更換用戶的附加組。如果想給用戶增加一個(gè)附加組的話,可以使用“-G number -a”,加上“-a” 其實(shí)就是Append的意思,這樣就不會(huì)把原來(lái)的覆蓋掉;
-c 修改用戶的注釋信息;
-s 修改用戶的默認(rèn)shell
-d 更改用戶的家目錄位置,要配全-m來(lái)使用即:”usermod –d /path/dir –m username”,-m:表示移動(dòng)用戶的家目錄,因?yàn)橛脩舻募夷夸浵旅孢€有可能有其他的文件;
-l 更改用戶的登陸名;
-L 鎖定用戶
-U 解鎖用戶
刪除用戶:
userdel [options] username
-r 表示在刪除用戶的時(shí)候同時(shí)把用戶的家目錄也刪除。默認(rèn)是不刪除用戶的家目錄的。是為了能夠再找回用戶的資料;
創(chuàng)建用戶組:
groupadd [options] groupname
-g 指定組id
-r 創(chuàng)建系統(tǒng)組 1-499
修改用戶組信息:
groupmod [options] groupname
-g GID
-n 修改組名稱
刪除組:
groupdel groupname
給組加密碼:
在切換基本組的時(shí)候,需要輸入組的密碼;
netgrp grouname //會(huì)提示輸入密碼;
gpasswd -a USER GROUP //將用戶USER加入到GROUP組中,注意,這里是附加組;
gpasswd –d USER GROUP //將用戶USER從GROUP組中移除;也是附加組;
gpasswd –A USER1,USER2.... GROUP
gpasswd –M USER1,USER2.... GROUP //這兩個(gè)都是一次性向GROUP中添加多個(gè)用戶;
用戶切換命令:
su - switch user
su USERNAME //非登陸式切換;
su – USERNAME //登陸式切換;
su –l USERNAME //登陸式切換;
su – USERNAME –c ‘command’ 切換到指定用戶后,以用戶的shell執(zhí)行command
su USERNAME -c ‘command’
- 文件權(quán)限管理:
Linux權(quán)限和八進(jìn)制的對(duì)應(yīng)關(guān)系:
|
Linux權(quán)限 |
二進(jìn)制 |
八進(jìn)制 |
|
--- |
000 |
0 |
|
--x |
001 |
1 |
|
-w- |
010 |
2 |
|
-wx |
011 |
3 |
|
r-- |
100 |
4 |
|
r-x |
101 |
5 |
|
rw- |
110 |
6 |
|
rwx |
111 |
7 |
例如:rwxr-xr-x 755
第一個(gè)3位對(duì)應(yīng) 文件的屬主的權(quán)限;用u表示文件的屬主;
第二個(gè)3位對(duì)應(yīng) 文件屬組的權(quán)限;用g表示文件屬組
第三個(gè)3位對(duì)應(yīng) 其他人的權(quán)限;用o表示其他人;
用a表示所有人;
修改文件的權(quán)限:
chmod [options] perm file..
perm的指定方法:
chmod 777 /tmp/test.txt
chmod u=rwx,g=rwx /tmp/test.txt
chmod g=w /tmp/test.txt //注意這個(gè)g=w會(huì)直接覆蓋掉以前的權(quán)限;如果要想在原有的權(quán)限上增加一個(gè)權(quán)限,應(yīng)該使用g+rwx,如果要取消用戶的某位的權(quán)限則要使用-rwx;
chmod g+x,o-rw /tmp/test.txt
chmod a-w /tmp/test.txt
在修改目錄的權(quán)限的時(shí)候,可以使用-R 來(lái)對(duì)目錄下的文件的權(quán)限也進(jìn)行修改;
chmod –R 775 /tmp/test
在文件的權(quán)限中還有三個(gè)特殊的權(quán)限:SUID、SGID和t(粘滯位)
SUID、SGID通常叫作SET位權(quán)限,多用于對(duì)可執(zhí)行腳本或程序來(lái)設(shè)置,例如/usr/bin/passwd 它就是被設(shè)置了SUID的程序;
SUID表示:對(duì)屬主添加SET位權(quán)限;SGID表示:對(duì)屬組設(shè)置SET位權(quán)限;當(dāng)某個(gè)文件被設(shè)置了SUID或SGID后,任何用戶在執(zhí)行該文件的時(shí)候,都會(huì)獲得該文件對(duì)應(yīng)的屬主或?qū)俳M身份所擁有的權(quán)限!要注意的是:SUID、SGID只能對(duì)文件的屬主和屬組來(lái)設(shè)置;
SUID 對(duì)應(yīng)八進(jìn)制中的4,SGID對(duì)應(yīng)八進(jìn)制中的2;這兩個(gè)都可以使用”s”來(lái)表示;
方法:chmod u+s,g+s filename
chmod 4777 filename
chmod 6777 filename2
當(dāng)一個(gè)文件被設(shè)置了SET位權(quán)限后,其對(duì)應(yīng)的x就會(huì)變成”s”,如果該文件原本不具有執(zhí)行權(quán)限,則會(huì)變成”S”
t(粘滯位):該權(quán)限一般用在一個(gè)開(kāi)放的目錄中;在一個(gè)開(kāi)放的目錄,會(huì)有很多個(gè)用戶的文件,每個(gè)用戶對(duì)這個(gè)開(kāi)放的目錄都具有寫權(quán)限,所以對(duì)這個(gè)開(kāi)放的目錄設(shè)置t權(quán)限可以防止,某個(gè)用戶刪除不屬于他的文件;注意粘滯位權(quán)限通常只對(duì)目錄設(shè)置,并且只能設(shè)置在權(quán)限的第三個(gè)3位上,也就是其他人的權(quán)限位上;t對(duì)應(yīng)八進(jìn)制中的1。
方法:
chmod o+t filename
chmod 1777 filename
改變文件的屬主和屬組:
chown [options] filename
chown USERNAME:GROUPNAME filename
chown –R USERNAME filename
chown –R .GROUPNAME filename
chgrp –R GROUPNAME filename
還有幾個(gè)特殊的權(quán)限:
chattr {+|-}{i|a} filename
如果是+i 則是鎖住文件的i節(jié)點(diǎn),這樣所有用戶(包括root)都無(wú)法刪除和修改該文件。使用ls –lh只能看到正常的文件屬性。這時(shí)如果你有權(quán)限,但是卻刪除不了的時(shí)候,你就要檢查下文件的特殊權(quán)限了,使用lsattr來(lái)查看;
同樣的,chattr +a file 則是使用該文件只能以追加的方式向里面添加內(nèi)容,不能直接使用其他文本編輯器打開(kāi)添加;同樣所有的用戶也包括root是無(wú)法刪除的,這種屬性通常會(huì)用在日志文件上;
- 顏色
33 顏色控制符;
[3 設(shè)置字體顏色;
1~7 表示7種顏色;
[4 表示對(duì)背景色設(shè)置;
1~7 單獨(dú)數(shù)字表示對(duì)字體的顯示進(jìn)行控制;5是閃爍;
上面的這幾個(gè)可以疊加在一起,之間用分號(hào)隔開(kāi):
33[0m 表示顏色控制結(jié)束;如果最后忘記加了則,以后你所輸入的字符都會(huì)是這個(gè)顏色;不過(guò)可以使用reset來(lái)重置下終端;
例如:
[root@Nginx ~]# echo -e "33[31m Bob.Zhou33[0m"
Bob.Zhou
[root@Nginx ~]# echo -e "33[5;31m Bob.Zhou33[0m"
Bob.Zhou //這個(gè)應(yīng)該是閃爍的!
[root@Nginx ~]#






