## 命令格式與目錄處理命令ls
### 命令格式
“`properties
命令格式:命令 [-選項][參數]
例:ls -la /etc
說明:1) 個別命令使用不遵循此格式
2) 當有多個選項時,可以寫在一起
3) 簡化選項與完整選項
-a 等于 –all
“`
### 目錄處理命令ls
“`properties
命令名稱:ls
命令英文原意:list
命令所在路徑:/bin/ls
執行權限:所有用戶
功能描述:顯示目錄文件
語法:ls 選項[-ald][文件或目錄]
-a 顯示所有文件,包括隱藏文件
-l 詳細信息顯示
-d 查看目錄屬性
文件權限標志
-rw-r–r–
–> 文件類型(-文件 d目錄 l軟鏈接文件)
–> rw– r– r–
u????g???o
u所有者 g所屬組 o其他人
r讀??w寫??x執行
“`
## 關機重啟命令
### shutdown命令(推薦)
“`properties
[root@localhost ~]#shutdown [選項] 時間
選項:
-c: 取消前一個關機命令
-h: 關機
-r: 取消前一個關機命令
“`
### 其他關機命令
“`properties
[root@localhost ~]#halt
[root@localhost ~]#poweroff
[root@localhost ~]#init 0
“`
### 其他重啟命令
“`properties
[root@localhost ~]#reboot
[root@localhost ~]#init 6
“`
### 系統運行級別
“`properties
0????????關機
1????????單用戶
2????????不完全多用戶,不含NFS服務
3????????完全多用戶
4????????未分配
5????????圖形界面
6????????重啟
[root@localhost ~]#cat /etc/inittab
#修改系統默認運行級別
id:3:initdefault:
#查詢系統運行級別
[root@localhost ~]#runlevel
“`
### 退出登錄命令
“`properties
#注銷用戶
[root@localhost ~]#logout
#退出控制臺
[root@localhost ~]#exit
#logout和exit的區別
logout 注銷用戶
exit 退出控制臺,對于多層shell,用于逐層退出,到最頂層shell,作用就和logout相同。
如果沒有切換過用戶的話,這兩個命令都是退出控制臺了。
如果切換過用戶的話,這兩個命令都是注銷當前用戶,返回上一個用戶
“`
## 鏈接命令
### ln鏈接命令
“`properties
命令名稱:ln
命令英文原意:link
命令所在路徑:/bin/ln
執行權限:所有用戶
語法:
ln -s [原文件] [目標文件]
-s 創建軟鏈接
ln????創建硬鏈接
功能描述:生成鏈接文件
示例
#創建文件/etc/issue的軟鏈接/tmp/issue.soft
[root@localhost ~]#ln -s /etc/issue /tmp/issue.soft
#創建文件/etc/issue的硬鏈接/tmp/issue.hard
[root@localhost ~]#ln /etc/issue /tmp/issue.hard
“`
### 軟鏈接和硬鏈接的區別
“`properties
#軟鏈接特征:類似Windows快捷方式
1、lrwxrwxrwx l 軟鏈接
軟鏈接文件權限都為rwxrwxrwx
2、文件大小-只是符號鏈接
3、/tmp/issue.soft -> /etc/issue
箭頭指向原文件
#硬鏈接特征:
1、拷貝cp -p + 同步更新
echo “this is a test” >> /etc/motd
2、可通過i節點識別
3、不能跨分區
4、不能針對目錄使用
“`
## 文件處理命令
### touch創建文件命令
“`properties
命令名稱:touch
命令所在路徑:/bin/touch
執行權限:所有用戶
語法:
touch [文件名]
功能描述:創建空文件
#示例:
[root@localhost ~]#touch demo.txt
“`
### cat查看文件內容命令
“`properties
命令名稱:cat
命令所在路徑:/bin/cat
執行權限:所有用戶
語法:
cat [文件名]
功能描述:顯示文件內容
-n??顯示行號
#示例:
[root@localhost ~]#cat demo.txt
hello!
linux
[root@localhost ~]#cat -n demo.txt
1 hello!
2 linux
“`
### more查看長文件內容命令
“`properties
命令名稱:more
命令所在路徑:/bin/more
執行權限:所有用戶
語法:
more [文件名]
(空格)或f 翻頁
(Enter)??換行
q或Q????退出
功能描述:分頁顯示文件內容
示例:
[root@localhost ~]#more /etc/services
“`
### less查看長文件內容命令
“`properties
命令名稱:less
命令所在路徑:/usr/bin/less
執行權限:所有用戶
語法:
less [文件名]
功能描述:分頁顯示文件內容(可向上下翻頁↑↓)
示例:
[root@localhost ~]#less /etc/services
“`
### head查看文件前幾行命令
“`properties
命令名稱:head
命令所在路徑:/usr/bin/head
執行權限:所有用戶
語法:
head [文件名]
功能描述:顯示文件前面幾行
-n???指定行數
示例:
[root@localhost ~]#head -n 20 /etc/services
“`
### tail查看文件后面幾行命令(動態日志查看)
“`properties
命令名稱:tail
命令所在路徑:/usr/bin/tail
執行權限:所有用戶
語法:
tail [文件名]
功能描述:顯示文件后面幾行
-n???指定行數
-f????動態顯示文件末尾內容
示例:
[root@localhost ~]#tail -n 20 /etc/services
[root@localhost ~]#tail -f /tomcat/logs/catalina.out
“`
## vim編輯器
### vim常用操作
#### vim簡介
vim是一個功能強大的全屏幕文本編輯器,是Linux/UNIX上最常用的文本編輯器,它的作用是建立、編輯、顯示文本文件。
**vim沒有菜單,只有命令**
#### vim工作模式

#### 插入命令
命令????????????作用
a????????????????在光標所在字符后插入
A????????????????在光標所在行尾插入
i????????????????在光標所在字符前插入
I????????????????在光標所在行行首插入
o????????????????在光標下插入新的一行
O????????????????在光標上插入新的一行
#### 定位命令
命令????????????作用
:set nu????????????設置行號
:set nonu????????取消行號
gg????????????????到第一行
G????????????????到最后一行
nG????????????????到第n行
:n????????????????到第n行
$????????????????移至行尾
0????????????????移至行首
#### 刪除命令
命令????????????作用
x????????????????刪除光標所在處的字符
nx????????????????刪除光標所在處后n個字符
dd????????????????刪除光標所在行,ndd刪除n行
dG????????????????刪除光標所在行到文件末尾內容
D????????????????刪除光標所在處到行尾內容
n1,n2d????????????刪除指定范圍的行
#### 復制和剪切命令
命令????????????作用
yy????????????????復制當前行
nyy????????????????復制當前行以下n行
dd????????????????剪切當前行
ndd????????????????剪切當前行以下n行
p????????????????粘貼在當前光標所在行下
P????????????????粘貼在當前光標所在行上
#### 替換和取消命令
命令????????????作用
r????????????????取代光標所在處字符
R????????????????從光標所在處開始替換字符,按Esc結束
u????????????????取消上一步操作
#### 搜索和搜索替換命令
命令????????????作用
/string????????????搜索指定字符串
?????????????????搜索時忽略大小寫:set ic
n????????????????搜索指定字符串的下一個出現位置
:%s/old/new/g????全文替換指定字符串
:n1,n2s/old/new/g 在指定范圍內替換指定字符串
#### 保存和退出命令
命令????????????作用
:w????????????????保存修改
:w new_filename 另存為指定文件
:wq????????????????保存修改并退出
ZZ????????????????快捷鍵,保存修改并退出
:q!????????????????不保存修改退出
:wq!????????????????強制保存修改并退出(文件所有者及root可使用)
### vim使用技巧
1.?導入文檔中的內容 r 文件名
示例:r demo.txt
2.?導入命令執行結果:r !命令
示例:r !date
?????2017年 07月 17日 星期一 10:14:36 CST
3.?自定義快捷鍵:map 快捷鍵 觸發命令 (命令可以任意組合)
示例:map ^P I#<ESC>???注釋
?????:map ^B 0x?????????????取消注釋
4.?連續行注釋:n1,n2s/^/#/g
????????????:n1,n2s/^#//g
????????????:n1,n2s/^/\/\/g????//(java中的單行注釋)
5.?替換:ab syso System.out.println(“”);??(eclipse中快捷鍵syso)
6.?自定義快捷鍵,電腦重啟之后,設置的快捷鍵需要重新設置,如果需要自定義的編輯模式永久生效,需要在用戶根目錄(root用戶[/root] 普通用戶[/home/fei])配置.vimrc文件
示例:cd ~ 打開根目錄
?????touch .vimrc 創建配置文件
?????vim .vimrc?????編輯配置文件
?????????set nu??顯示行號
?????????map ^P I#<ESC>???注釋
?????:wq????????????退出并保存
## 軟件包管理簡介
### 1、軟件包分類
–?源碼包
?????腳本安裝包
–?二進制包
?????RPM包
?????系統默認包
### 2、源碼包
源碼包的優點:
1.?開源,如果有足夠的能力,可以修改源碼
2.?可以自由選擇所需的功能
3.?軟件是編譯安裝,所以更加適合自己的系統,更加穩定也效率更高
4.?卸載方便
源碼包的缺點:
1.?安裝過程步驟較多,尤其安裝較大的軟件集合時(如LAMP環境搭建),容易出現拼寫錯誤
2.?編譯過程時間較長,安裝比二進制安裝時間長
3.?因為是編譯安裝,安裝過程中一旦報錯新手很難解決
### 3、RPM包
二進制包的優點:
1.?包管理系統簡單,只通過幾個命令就可以實現包的安裝、升級、查詢和卸載
2.?安裝速度比源碼包安裝快的多
二進制包的缺點
1.?經過編譯,不再可以看到源代碼
2.?功能選擇不如源碼包靈活
3.?依賴性
## RPM包管理-rpm命令管理
### 1、RPM包命名規則
“`properties
舉例:httpd-2.2.15-15.el6.centos.1.i686.rpm
httpd????????????????????軟件包名
2.2.15????????????????????軟件版本
15????????????????????????軟件發布的次數
el6.centos????????????????適合的Linux平臺
i686????????????????????適合的硬件平臺
rpm????????????????????????rpm包擴展名
“`
### 2、RPM包依賴性
–?樹形依賴:a→b→ c
–?環形依賴:a→b→c→a
–?模塊依賴:模塊依賴查詢網站
?????www.rpmfind.net
### 3、包全名與包名
“`properties
#包全名:操作的包是沒有安裝的軟件包時,使用包全名。而且要注意路徑
#包名:操作已經安裝的軟件包時,使用包名。是搜索/var/lib/rpm/中的數據庫
“`
### 4、RPM安裝
“`properties
rpm -ivh 包全名
選項:
-i(install)????????安裝
-v(verbose)????????顯示詳細信息
-h(hash)????????顯示進度
–nodeps????????不檢測依賴性
“`
### 5、RPM包升級
“`properties
rpm -Uvh 包全名
選項:
-U(upgrade)????????升級
“`
### 6、卸載
“`properties
rpm -e 包名
選項:
-e(erase)????????卸載
–nodeps????????不檢查依賴性
“`
### 7、查詢是否安裝
“`properties
[root@localhost ~]# rpm????-q????包名
#查詢包是否安裝
選項:
-q????查詢(query)
[root@localhost ~]# rpm –qa
#查詢所有已經安裝的RPM包
選項:
-a????所有(all)
“`
### 8、查詢軟件包詳細信息
“`properties
[root@localhost ~]#????rpm –qi 包名
選項:
-i????查詢軟件信息(information)
-p????查詢未安裝包信息(package)
“`
### 9、查詢包中文件安裝位置
“`properties
[root@localhost ~]#????rpm –ql 包名 選項:
-l????列表(list)
-p????查詢未安裝包信息(package)
“`
### 10、查詢系統文件屬于哪個RPM包
“`properties
[root@localhost ~]#????rpm –qf 系統文件名 選項:
-f????查詢系統文件屬于哪個軟件包(file)
“`
### 11、RPM包校驗
“`properties
[root@localhost ~]# rpm –V 已安裝的包名 選項:
-V????校驗指定RPM包中的文件(verify)
#驗證內容中的8個信息的具體內容如下:
? S????文件大小是否改變
? M????文件的類型或文件的權限(rwx)是否被改變
? 5????文件MD5校驗和是否改變(可以看成文件內容是否 改變)
? D????設備的中,從代碼是否改變
? L????文件路徑是否改變
? U????文件的屬主(所有者)是否改變
? G????文件的屬組是否改變
? T????文件的修改時間是否改變
“`
“`properties
#文件類型
1????c????配置文件(config file)
2????d????普通文檔(documentation)
3????g????“鬼”文件(ghost file),很少見,就是該文件不 應該被這個RPM包包含
4????l????授權文件(license file)
5????r????描述文件(read me)
“`
### 12、RPM包中文件提取
“`properties
[root@localhost ~]# rpm2cpio 包全名 |????\ cpio -idv .文件絕對路徑
#將rpm包轉換為cpio格式的命令
rpm2cpio
#是一個標準工具,它用于創建軟件檔案文件和從檔案文件中提取文件
cpio
[root@localhost ~]# cpio 選項 < [文件|設備]
#選項:
-i:copy-in模式,還原
-d:還原時自動新建目錄
-v:顯示還原過程
#示例
#查詢ls命令屬于哪個軟件包
[root@localhost ~]# rpm -qf /bin/ls
#將ls命令移動到/tmp文件夾,造成ls命令誤刪除假象
[root@localhost ~]# mv /bin/ls /tmp/
#提取RPM包中ls命令到當前目錄的/bin/ls下
[root@localhost ~]# rpm2cpio /mnt/cdrom/Packages/coreutils- 8.4-19.el6.i686.rpm | cpio -idv????./bin/ls
#把ls命令復制會/bin/目錄,修復文件丟失
[root@localhost ~]# cp /root/bin/ls????/bin/
“`
## RPM包管理-yum在線管理
### 1、IP地址配置和網絡yum源
#### 1.1 IP地址配置
“`properties
[root@localhost ~]# setup
#使用setup工具
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
把ONBOOT=“no” 改為
ONBOOT=“yes“
#啟動網卡
[root@localhost ~]# service network restart
#重啟網絡服務
“`
#### 1.2 網絡yum源
“`properties
[root@localhost yum.repos.d]# vi /etc/yum.repos.d/CentOS-Base.repo
? [base]????容器名稱,一定要放在[]中
? name????容器說明,可以自己隨便寫
? mirrorlist????鏡像站點,這個可以注釋掉
? baseurl????我們的yum源服務器的地址。默認是CentOS官方的yum源服務 器,是可以使用的,如果你覺得慢可以改成你喜歡的yum源地 址
? enabled????此容器是否生效,如果不寫或寫成enable=1都是生效,寫成
enable=0就是不生效
? gpgcheck????如果是1是指RPM的數字證書生效,如果是0則不生效
? gpgkey????數字證書的公鑰文件保存位置。不用修改
“`
### 2、yum命令
#### 2.1 查詢
“`properties
1)查詢
[root@localhost yum.repos.d]# yum list
#查詢所有可用軟件包列表
[root@localhost yum.repos.d]# yum search 關鍵字
#搜索服務器上所有和關鍵字相關的包
“`
#### 2.2 安裝
“`properties
2)安裝
[root@localhost yum.repos.d]# yum –y install 包名 選項:
install????安裝
-y????自動回答yes
“`
#### 2.3 升級
“`properties
[root@localhost yum.repos.d]# yum -y update 包名 選項:
update????升級
-y????自動回答yes
注意:升級一定要加包名,否則linuk系統全盤升級,一般很牛逼的人都不會輕易去嘗試。
“`
#### 2.4 卸載
“`properties
[root@localhost yum.repos.d]#????yum????-y????remove????包名 選項:
remove????卸載
-y????自動回答yes
注意:盡量不要使用yum卸載,因為它會自動把依賴包也卸載掉,但是有些依賴包不僅僅是一個軟件在使用,其他軟件也在使用這個依賴包。
“`
#### 2.5 yum軟件組管理命令
“`properties
[root@localhost ~]#????yum????grouplist
#列出所有可用的軟件組列表
[root@localhost ~]#????yum????groupinstall????軟件組名
#安裝指定軟件組,組名可以由grouplist查詢出來
[root@localhost ~]#????yum????groupremove????軟件組名
#卸載指定軟件組
“`
### 3、光盤yum源搭建
#### 3.1 光盤yum源搭建步驟
“`properties
1)掛載光盤
[root@localhost ~]# mount /dev/cdrom /mnt/cdrom/
2)讓網絡yum源文件失效
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# mv CentOS-Base.repo CentOS-Base.repo.bak
[root@localhost yum.repos.d]# mv CentOS-Debuginfo.repo Centos-Debuginfo.repo.bak
[root@localhost yum.repos.d]# mv CentOS-Vault.repo CentOS-Vault.repo.bak
3)修改光盤yum源文件
[root@localhost yum.repos.d]# vim CentOS-Media.repo
[c6-media]
name=CentOS-$releasever-Media
baseurl=file///mnt/cdrom
#地址為你自己的光盤掛載地址
# file:///media/cdrom/
# file:///media/cdrecorder/
#注釋這兩個不存在的地址
gpgcheck=1
enabled=1
#把enabled=0改為enabled=1,讓這個yum源配置文件生效
gpgkey=file:///etc/pki/rpm-gpg/RRM-GPG-KEY-CentOS-6
注意:一般配置文件有嚴格的格式限制,不能多加空格或者注釋。
“`
## 源碼包管理
### 1、源碼包與RPM包的區別
“`properties
1、區別
? 安裝之前的區別:概念上的區別
? 安裝之后的區別:安裝位置不同
#RPM包安裝位置
是安裝在默認位置中
#RPM包默認安裝路徑
/etc/????????????????配置文件安裝目錄
/usr/bin/????????????可執行的命令安裝目錄
/usr/lib/????????????程序所使用的函數庫保存位置
/usr/share/doc/????????基本的軟件使用手冊保存位置
/usr/share/man/????????幫助文件保存位置
#源碼包安裝位置
安裝在指定位置當中,一般是
/usr/local/軟件名/
#安裝位置不同帶來的影響
RPM包安裝的服務可以使用系統服務管 理命令(service)來管理,例如RPM包安 裝的apache的啟動方法是:
/etc/rc.d/init.d/httpd start
service httpd start
#而源碼包安裝的服務則不能被服務管理命 令管理,因為沒有安裝到默認路徑中。所 以只能用絕對路徑進行服務的管理,如:
/usr/local/apache2/bin/apachectl start
“`
### 2、源碼包的安裝過程
#### 2.1 安裝準備
“`properties
#安裝C語言編譯器
[root@localhost ~]# yum –y install gcc
#下載源碼包
[root@localhost ~]# wget http://mirror.bit.edu.cn/apache/httpd/httpd-2.2.34.tar.gz
“`
#### 2.2 安裝注意事項
“`properties
#源代碼保存位置:/usr/local/src/
#軟件安裝位置:/usr/local/
#如何確定安裝過程報錯:
a.安裝過程停止
b.并出現error、warning或no的提示
“`
#### 2.3 源碼包安裝過程
“`properties
#下載源碼包
[root@localhost ~]# wget http://mirror.bit.edu.cn/apache/httpd/httpd-2.2.34.tar.gz
#解壓縮下載的源碼包
[root@localhost ~]# tar -xvf httpd-2.2.34.tar.gz /usr/local/apache2
#進入解壓縮目錄
[root@localhost ~]# cd /usr/local/apache2/httpd-2.2.34
#定義安裝位置
[root@localhost httpd-2.2.34]# ./configure??–prefix=/usr/local/apache2
“`
#### 2.4 ./configure 軟件配置與檢查
“`properties
???定義需要的功能選項。
???檢測系統環境是否符合安裝要求。
???把定義好的功能選項和檢測系統環境的信息 都寫入Makefile文件,用于后續的編輯。
“`
#### 2.5 源碼包的編譯與安裝
“`properties
#編譯解壓后的源碼包
[root@localhost httpd-2.2.34]# make
#清除上次的make命令所產生的object文件(后綴為“.o”的文件)及可執行文件
[root@localhost httpd-2.2.34]# make clean
#將編譯成功的可執行文件安裝到系統目錄中,一般為/usr/local/bin目錄。
[root@localhost httpd-2.2.34]# make install
“`
#### 2.6 測試是否安裝成功
“`properties
#啟動apache服務
[root@localhost httpd-2.2.34]# /usr/local/apache2/bin/apachectl start
#在瀏覽器輸入
localhost:80
#瀏覽器顯示內容
It works!
“`
#### 2.7 源碼包的卸載
“`properties
#不需要卸載命令,直接刪除安裝目錄即可。不會遺留任何垃圾文件
“`
## 腳本安裝包
### 1、 腳本安裝包簡介
“`properties
# 腳本安裝包并不是獨立的軟件包類型,常見 安裝的是源碼包。
# 是人為把安裝過程寫成了自動安裝的腳本, 只要執行腳本,定義簡單的參數,就可以完 成安裝。
# 非常類似于Windows下軟件的安裝方式
“`
### 2、 Webmin的作用
“`properties
#Webmin 是一個基于 Web 的 Linux 系統管 理界面。您就可以通過圖形化的方式設置 用戶帳號、Apache、DNS、文件共享等服 務。
“`
### 3、Webmin安裝過程
“`properties
#創建文件夾webmin
[root@localhost ~]# mkdir /usr/local/webmin
#進入/usr/local/webmin
[root@localhost ~]# cd /usr/local/webmin
#下載軟件
[root@localhost webmin]# wget https://sourceforge.net/projects/webadmin/files/webmin/1.850/webmin-1.850.tar.gz/download
# 解壓縮,并進入解壓縮目錄
[root@localhost webmin-1.850]# tar -xvf webmin-1.850.tar.gz
# 執行安裝腳本
[root@localhost webmin-1.850]# ./setup.sh
注意:安裝過程中,鍵盤enter鍵,就表示執行下一步;
:安裝過程中,需要設置登錄名和密碼
小技巧:Ctrl+Backspace(退格鍵)?????刪除
# 安裝完之后,測試是否安裝成功
# 開啟防火墻10000端口
[root@localhost webmin-1.850]# /sbin/iptables -I INPUT -p tcp –dport 10000 -j ACCEPT
[root@localhost webmin-1.850]# /etc/rc.d/init.d/iptables save
# 瀏覽器測試,輸入linux Ip+端口號(10000)
成功的話,會進入一個登陸界面
“`
## 用戶和用戶組管理
### 1、用戶管理簡介
“`properties
# 越是對服務器安全性要求高的服務器,越需要建立合理的用戶權限等級制度和 服務器操作規范。
# 在Linux中主要是通過用戶配置文件來查 看和修改用戶信息
“`
### 2、用戶配置文件
#### 2.1????用戶信息文件/etc/passwd
“`properties
#查看用戶信息配置文件信息
[root@localhost ~]# vim /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
demo:x:500:500::/home/demo:/bin/bash
liqi:x:501:501::/home/liqi:/bin/bash
mysql:x:498:498:MySQL server:/var/lib/mysql:/bin/bash
ucenter:x:502:502::/ucenter:/bin/bash
[root@localhost ~]# man 5 passwd
#看主要內容 The field descriptions are:
accout
password
UID
…
#第1字段:用戶名稱
#第2字段:密碼標志
#第3字段:UID(用戶ID)
?????0:????????????超級用戶
?????1-499:????????系統用戶(偽用戶)
例如:mysql:x:498:498:MySQL server:/var/lib/mysql:/bin/bash
?????500-65535:????普通用戶
例如:demo:x:500:500::/home/demo:/bin/bash
#第4字段:GID(用戶初始組ID)
#第5字段:用戶說明
#第6字段:家目錄
?????普通用戶:/home/用戶名/
?????超級用戶:/root/
#第7字段:登錄之后的Shell
//shell是用戶和計算機交流的中介,“登錄shell”保證用戶和計算機交流(一般Linux默認的用戶shell都是bash ,也就是說你可以登錄進去敲命令。),“非登陸shell(/bin/nologin 就是一個非登陸shell)”無法讓用戶與計算機交流。
“`
#### 2.2 初始組和附加組
“`properties
#初始組:就是指用戶一登錄就立刻擁有這 個用戶組的相關權限,每個用戶的初始組 只能有一個,一般就是和這個用戶的用戶名相同的組名作為這個用戶的初始組。
#附加組:指用戶可以加入多個其他的用戶 組,并擁有這些組的權限,附加組可以有 多個。
“`
#### 2.3 Shell是什么
“`properties
#Shell就是Linux的命令解釋器。
#在/etc/passwd當中,除了標準Shell是/bin/bash之外,還可以寫如/sbin/nologin(用戶禁用),/usr/bin/passwd等。
“`
### 3、影子文件/etc/shadow
#### 3.1 影子文件/etc/shadow
“`properties
[root@localhost ~]# cat /etc/shadow
root:$6$CDD56Ji0/1P8TRCD$9QaqGR9Jpy6v9tYbs12rnhMynPdyYy2Y.AEsfUbh4bEgc7aF5UvIWB5DjYc6owmWsHus0WAfTOzJPTWAfp2.b/:17350:0:99999:7:::
“`
**配置文件詳解**
“`properties
#第1字段:用戶名
#第2字段:加密密碼
加密算法升級為SHA512散列加密算法
如果密碼位是“!!”或“*”代表沒有密碼,不能登 錄
# 第3字段:密碼最后一次修改日期
使用1970年1月1日作為標準時間,每過一天時間戳 加1
//改密碼提示 it is based on a dictionary word(它是基于字典的詞)????????is too similar to the old one(和之前設置的密碼太相似)
# 第4字段:兩次密碼的修改間隔時間(和 第3字段相比)
# 第5字段:密碼有效期(和第3字段相比)
# 第6字段:密碼修改到期前的警告天數( 和第5字段相比)
# 第7字段:密碼過期后的寬限天數(和第5 字段相比)
?????0:代表密碼過期后立即失效
???-1:則代表密碼永遠不會失效。
# 第8字段:賬號失效時間
?????要用時間戳表示
# 第9字段:保留
“`
#### 3.2 時間戳換算
“`properties
#把時間戳換算為日期
?????date -d “1970-01-01 16066 days”
# 把日期換算為時間戳
?????echo $(($(date –date=”2017/07/29″ +%s)/86400+1))
注意:時間 +%s 有個空格 一定要加上
“`
### 4、組信息文件/etc/group和組密碼文件/etc/gshadow
#### 4.1 組信息文件/etc/group
“`properties
[root@localhost ~]# cat /etc/group
root:x:0:
bin:x:1:bin,daemon
demo:x:500:
liqi:x:501:
第一字段:組名
第二字段:組密碼標志
第三字段:GID
第四字段:組中附加用戶
“`
#### 4.2 組密碼文件/etc/gshadow
“`properties
[root@localhost ~]# cat /etc/gshadow
root:::
bin:::bin,daemon
demo:!::
liqi:!::
第一字段:組名
第二字段:組密碼
第三字段:組管理員用戶名
第四字段:組中附加用戶
“`
### 5、 用戶管理相關文件
#### 5.1 用戶的家目錄
“`properties
# 普通用戶:/home/用戶名/,所有者和所屬
組都是此用戶,權限是700
# 超級用戶:/root/,所有者和所屬組都是
root用戶,權限是550
[root@localhost ~]# cd /home
[root@localhost home]# ll
總用量 24
drwx——. 4 demo demo??4096 7月???6 23:45 demo
drwx——. 4 liqi liqi??4096 7月???6 09:32 liqi
drwx——. 2 root root 16384 7月???4 02:36 lost+found
“`
#### 5.2 用戶的郵箱
“`properties
# /var/spool/mail/用戶名/長度
[root@localhost ~]# cd /var/spool/mail
[root@localhost mail]# ll
總用量 8
-rw-rw—-. 1 demo????mail????0 7月??24 08:22 demo
-rw-rw—-. 1 liqi????mail??609 7月???6 01:55 liqi
-rw——-. 1 root????mail 1215 7月???6 01:57 root
-rw-rw—-. 1 rpc?????mail????0 7月???4 02:43 rpc
-rw-rw—-. 1 ucenter mail????0 7月???7 01:51 ucenter
“`
5.3 用戶的模板目錄
“`properties
# /etc/skel ,每創建一個用戶時,系統會按照模板文件給新得生成對應的文件
[root@localhost ~]# cd /etc/skel
[root@localhost skel]# ls -a
.??..??.bash_logout??.bash_profile??.bashrc??.gnome2
示例:
[root@localhost skel]# touch warning.txt
[root@localhost skel]# vim warning.txt
隨便寫點內容
#創建一個用戶
[root@localhost skel]# useradd user1
#為用戶設置密碼
[root@localhost skel]# passwd user1
更改用戶 user1 的密碼 。
新的 密碼:
無效的密碼: 過于簡單化/系統化
無效的密碼: 過于簡單
重新輸入新的 密碼:
passwd: 所有的身份驗證令牌已經成功更新。
#切換到use1用戶
[root@localhost user1]# su user1
[user1@localhost ~]$ ls -a
.???.bash_logout???.bashrc??warning.txt
..??.bash_profile??.gnome2
我們可以看到這個用戶的家目錄生成了warning.txt
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/92923