linux根-文件系统-目录管理-文件管理-用户及权限详解-用户组-用户管理-权限管理...
? ?
一 、Linux文件結構
文件結構是文件存放在磁盤等存貯設備上的組織方法。主要體現在對文件和目錄的組織上。
目錄提供了管理文件的一個方便而有效的途徑。
Linux使用標準的目錄結構,在安裝的時候,安裝程序就已經為用戶創建了文件系統和完整而固定的目錄組成形式,并指定了每個目錄的作用和其中的文件類型。
? ? ? ? ? ? ? ? ? ?/根目錄
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?┃
┏━━┳━━━┳━━━┳━━━╋━━━┳━━━┳━━━┳━━━┓
┃ ? ┃ ? ? ?┃ ? ? ┃ ? ? ┃ ? ? ┃ ? ? ?┃ ? ? ┃ ? ? ┃
bin ?home ? ?dev ? ? etc ? ? lib ? ? sbin ? ?tmp ? ? ?usr ? ?var
? ? ? ? ? ? ? ? ? ? ?┃ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ┃
? ? ? ? ? ? ? ? ?┏━┻━┓ ? ? ┏━━┳━━┳━━┳━┻━┳━━┓
? ? ? ? ? ? ? ? ?┃ ? ? ?┃ ? ?┃ ? ┃ ? ?┃ ? ?┃ ? ? ┃ ? ?┃
? ? ? ? ? ? ? ? rc.d ? cron.d X11R6 ?src ? lib ? local ? ?man ?bin
? ? ? ? ? ? ? ? ?┃ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
┏━━━┳━━┳━┻━┳━━━┓ ? ? ? ?
┃ ? ? ?┃ ? ?┃ ? ? ?┃ ? ? ?┃
init.d rc0.d ?rc1.d ?rc2.d …… linux bin lib src
Linux采用的是樹型結構。最上層是根目錄,其他的所有目錄都是從根目錄出發而生成的。微軟的DOS和windows也是采用樹型結構,但是在DOS 和 windows中這樣的樹型結構的根是磁盤分區的盤符,有幾個分區就有幾個樹型結構,他們之間的關系是并列的。但是在linux中,無論操作系統管理幾個 磁盤分區,這樣的目錄樹只有一個。從結構上講,各個磁盤分區上的樹型目錄不一定是并列的。
如果這樣講不好理解的話,我來舉個例子:
有一塊硬盤,分成了4個分區,分別是/;/boot;/usr和windows下的fat
對于/和/boot或者/和/usr,它們是從屬關系;對于/boot和/usr,它們是并列關系。
如果我把windows下的fat分區掛載到/mnt/winc下,(掛載??哦,別急,呵呵,一會就講,一會就講。)那么對于/mnt/winc和/usr或/mnt/winc和/boot來說,它們是從屬于目錄樹上沒有任何關系的兩個分支。
因為linux是一個多用戶系統,制定一個固定的目錄規劃有助于對系統文件和不同的用戶文件進行統一管理。但就是這一點讓很多從windows轉到linux的初學者感到頭疼。下面列出了linux下一些主要目錄的功用。
/boot 系統啟動相關的文件,如內核、initrd,以及grub(bootloader)
/bin 二進制可執行命令 用戶命令
/dev 設備特殊文件
????塊設備:隨機訪問,數據塊
????字符設備:線性訪問,按字符為單位
????設備號:主設備號(major)和次設備號(minor)
/etc 系統管理和配置文件
/etc/rc.d 啟動的配置文件和腳本
/home 用戶主目錄的基點,用戶的家目錄,比如用戶user的主目錄就是/home/user,可以用~user表示
/lib 標準程序設計庫,又叫動態鏈接共享庫,作用類似windows里的.dll文件 庫文件
????/lib/modules:內核模塊文件
????靜態庫, .a
????動態庫,.dll,.so(shared object)
/sbin 系統管理命令,這里存放的是系統管理員使用的管理程序
/tmp 公用的臨時文件存儲點
/root 系統管理員的主目錄-家目錄(呵呵,特權階級)
/mnt 系統提供這個目錄是讓用戶臨時掛載其他的文件系統。掛載點目錄
/media:掛載點目錄,移動設備
/lost+found 這個目錄平時是空的,系統非正常關機而留下“無家可歸”的文件(windows下叫什么.chk)就在這里
/opt 可選目錄,第三方程序的安裝目錄
/proc 虛擬的目錄,是系統內存的映射。可直接訪問這個目錄來獲取系統信息。偽文件系統,內核映射文件
/sys 偽文件系統,跟硬件設備相關的屬性映射文件
/var 某些大文件的溢出區,比方說各種服務的日志文件 可變化的文件
/usr 最龐大的目錄,要用到的應用程序和文件幾乎都在這個目錄。shared read-only 其中包含:
/usr/X11R6 存放X window的目錄
/usr/bin 眾多的應用程序
/usr/sbin 超級用戶的一些管理程序
/usr/doc linux文檔
/usr/include linux下開發和編譯應用程序所需要的頭文件
/usr/lib 常用的動態鏈接庫和軟件包的配置文件
/usr/man 幫助文檔
/usr/src 源代碼,linux內核的源代碼就放在/usr/src/linux里
/usr/local/bin 本地增加的命令
/usr/local/sbin
/usr/local/lib 本地增加的庫
二 、linux文件系統
文 件系統指文件存在的物理空間,linux系統中每個分區都是一個文件系統,都有自己的目錄層次結構。linux會將這些分屬不同分區的、單獨的文件系統按 一定的方式形成一個系統的總的目錄層次結構。一個操作系統的運行離不開對文件的操作,因此必然要擁有并維護自己的文件系統。
Llinux文件系統使用索引節點來記錄文件信息,作用像windows的文件分配表。
索引節點是一個結構,它包含了一個文件的長度、創建及修改時間、權限、所屬關系、磁盤中的位置等信息。一個文件系統維護了一個索引節點的數組,每個文件 或目錄都與索引節點數組中的唯一一個元素對應。系統給每個索引節點分配了一個號碼,也就是該節點在數組中的索引號,稱為索引節點號。
linux文件系統將文件索引節點號和文件名同時保存在目錄中。所以,目錄只是將文件的名稱和它的索引節點號結合在一起的一張表,目錄中每一對文件名稱和索引節點號稱為一個連接。
對于一個文件來說有唯一的索引節點號與之對應,對于一個索引節點號,卻可以有多個文件名與之對應。因此,在磁盤上的同一個文件可以通過不同的路徑去訪問它。
可以用ln命令對一個已經存在的文件再建立一個新的連接,而不復制文件的內容。連接有軟連接和硬連接之分,軟連接又叫符號連接。它們各自的特點是:
硬連接:原文件名和連接文件名都指向相同的物理地址。
目錄不能有硬連接;硬連接不能跨越文件系統(不能跨越不同的分區)
文件在磁盤中只有一個拷貝,節省硬盤空間;
由于刪除文件要在同一個索引節點屬于唯一的連接時才能成功,因此可以防止不必要的誤刪除。
符號連接:用ln -s命令建立文件的符號連接符號連接是linux特殊文件的一種,作為一個文件,它的數據是它所連接的文件的路徑名。類似windows下的快捷方式。
可以刪除原有的文件而保存連接文件,沒有防止誤刪除功能。
這一段的的內容過于抽象,又是節點又是數組的,我已經盡量通俗再通俗了,又不好加例子作演示。大家如果還是云里霧里的話,我也沒有什么辦法了,只有先記住,日后在實際應用中慢慢體會、理解了。這也是我學習的一個方法吧。
三 、掛載文件系統
由上一節知道,linux系統中每個分區都是一個文件系統,都有自己的目錄層次結構。linux會將這些分屬不同分區的、單獨的文件系統按一定的方式形成一個系統的總的目錄層次結構。這里所說的“按一定方式”就是指的掛載。
將一個文件系統的頂層目錄掛到另一個文件系統的子目錄上,使它們成為一個整體,稱為掛載。把該子目錄稱為掛載點。
舉個例子吧:
根分區:
/根目錄
┃
┏━━━━┳━━━━━┳━━━━━┳━━━━━╋━━━━━┳━━━━━┳━━━━━┳━━━━━┓
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
bin home dev etc lib sbin tmp usr var
┃
┏━┻━┓
┃ ┃
rc.d cron.d
┃
┏━━━┳━━━┳━┻━┳━━━━┓
┃ ┃ ┃ ┃ ┃
init.d rc0.d rc1.d rc2.d ……
/usr分區 :
usr
┃
┏━━━━┳━━━╋━━━┳━━━┳━━━┓
┃ ┃ ┃ ┃ ┃ ┃
X11R6 src lib local man bin
┃ ┃
┃ ┏━━━╋━━━┓
┃ ┃ ┃ ┃
linux bin lib src
掛載之后就形成了文章開始時的那個圖。像不像掛上去的?
注意:1、掛載點必須是一個目錄。
2、一個分區掛載在一個已存在的目錄上,這個目錄可以不為空,但掛載后這個目錄下以前的內容將不可用。
對 于其他操作系統建立的文件系統的掛載也是這樣。但是需要理解的是:光盤、軟盤、其他操作系統使用的文件系統的格式與linux使用的文件系統格式是不一樣 的。光盤是ISO9660;軟盤是fat16或ext2;windows NT是fat16、NTFS;windows98是fat16、fat32;windows2000和windowsXP是fat16、fat32、 NTFS。掛載前要了解linux是否支持所要掛載的文件系統格式。
掛載時使用mount命令:
格式:mount [-參數] [設備名稱] [掛載點]
其中常用的參數有
-t 指定設備的文件系統類型,常見的有:
minix linux最早使用的文件系統
ext2 linux目前常用的文件系統
msdos MS-DOS的fat,就是fat16
vfat windows98常用的fat32
nfs 網絡文件系統
iso9660 CD-ROM光盤標準文件系統
ntfs windows NT 2000的文件系統
hpfs OS/2文件系統
auto 自動檢測文件系統
-o 指定掛載文件系統時的選項。有些也可用在/etc/fstab中。常用的 有
codepage=XXX 代碼頁
iocharset=XXX 字符集
ro 以只讀方式掛載
rw 以讀寫方式掛載
nouser 使一般用戶無法掛載
user 可以讓一般用戶掛載設備
提醒一下,mount命令沒有建立掛載點的功能,因此你應該確保執行mount命令時,掛載點已經存在。(不懂?說白了點就是你要把文件系統掛載到哪,首先要先建上個目錄。這樣OK?)
例子:windows98裝在hda1分區,同時計算機上還有軟盤和光盤需要掛載。
# mk /mnt/winc
# mk /mnt/floppy
# mk /mnt/cdrom
# mount -t vfat /dev/hda1 /mnt/winc
# mount -t msdos /dev/fd0 /mnt/floppy
# mount -t iso9660 /dev/cdrom /mnt/cdrom
現在就可以進入/mnt/winc等目錄讀寫這些文件系統了。
要保證最后兩行的命令不出錯,要確保軟驅和光驅里有盤。(要是硬盤的磁盤片也可以經常隨時更換的話,我想就不會犯這樣的錯誤了 :-> )
如 果你的windows98目錄里有中文文件名,使用上面的命令掛載后,顯示的是一堆亂碼。這就要用到 -o 參數里的codepage iocharset選項。codepage指定文件系統的代碼頁,簡體中文中文代碼是936;iocharset指定字符集,簡體中文一般用cp936或 gb2312。
當掛載的文件系統linux不支持時,mount一定報錯,如windows2000的ntfs文件系統。可以重新編譯linux內核以獲得對該文件系統的支持。關于重新編譯linux內核,就不在這里說了。
四 、自動掛載
每次開機訪問windows分區都要運行mount命令顯然太煩瑣,為什么訪問其他的linux分區不用使用mount命令呢?
其實,每次開機時,linux自動將需要掛載的linux分區掛載上了。那么我們是不是可以設定讓linux在啟動的時候也掛載我們希望掛載的分區,如windows分區,以實現文件系統的自動掛載呢?
這是完全可以的。在/etc目錄下有個fstab文件,它里面列出了linux開機時自動掛載的文件系統的列表。我的/etc/fstab文件如下:
/dev/hda2 / ext3 defaults 1 1
/dev/hda1 /boot ext3 defaults 1 2
none /dev/pts devpts gid=5,mode=620 0 0
none /proc proc defaults 0 0
none /dev/shm tmpfs defaults 0 0
/dev/hda3 swap swap defaults 0 0
/dev/cdrom /mnt/cdrom iso9660 noauto,codepage=936,iocharset=gb2312 0 0
/dev/fd0 /mnt/floppy auto noauto,owner,kudzu 0 0
/dev/hdb1 /mnt/winc vfat defaults,codepage=936,iocharset=cp936 0 0
/dev/hda5 /mnt/wind vfat defaults,codepage=936,iocharset=cp936 0 0
在/etc/fstab文件里,第一列是掛載的文件系統的設備名,第二列是掛載點,第三列是掛載的文件系統類型,第四列是掛載的選項,選項間用逗號分隔。第五六列不知道是什么意思,還望高手指點。
在最后兩行是我手工添加的windows下的C;D盤,加了codepage=936和iocharset=cp936參數以支持中文文件名。參數defaults實際上包含了一組默認參數:
rw 以可讀寫模式掛載
suid 開啟用戶ID和群組ID設置位
dev 可解讀文件系統上的字符或區塊設備
exec 可執行二進制文件
auto 自動掛載
nouser 使一般用戶無法掛載
async 以非同步方式執行文件系統的輸入輸出操作
?
linux操作系統及常用命令
#COMMAND options... arguments...????
? 命令???? 選項(短/長選項)? 參數
目錄管理:
????ls、cd、pwd、mkdir、rmdir、tree
文件管理:
????touch、stat、file、rm、cp、mv、nano
日期時間
????date、clock、hwclock、cal
查看文本
????cat、tac、more、less、head、tail
目錄:文件,路徑映射
路徑:從指令起到結束到目的地所經過的位置????? 絕對路徑|相對路徑???????? /斜線??? window(\反斜線)
文件系統:file system
⑴、目錄查看命令ls、cd 、type
? ? ?ls:顯示當前目錄內的文件
? ? ? ? ?-l:列出當前目錄內的文件并顯示其相關屬性?
? ? ? ? ?-a:顯示當前目錄內包含隱藏文件在內的所有文件? .表示當前目錄 ..表示父目錄
? ? ? ? ?-A:顯示當前目錄內除了.和..目錄以外的所有目錄
? ? ? ? ?-h:按單位為k或M進行文件大小的顯示? 做單位轉換
???????? -d:顯示目錄資深屬性 ls-ld /root
???????? -i:index mode,inode
? ? ? ? ?-r:逆序顯示文件
? ? ? ? ?-R:遞歸(recursive)顯示目錄
????????????????ls -l 長格式?
????????????????????文件類型:
????????????????????????-:普通文件(f)
????????????????????????d:目錄文件
????????????????????????b:塊設備文件(block)
??? ??????????????????? c:字符設備文件(character)
??? ??????????????????? l:符號鏈接文件(symbolic link file)
??? ??????????????????? p:命令管道(pipe)
??? ??????????????????? s:套接字文件(socket)
??? ?????????????? 文件硬鏈接的次數:
????????????????????文件的屬主(owner)
??????????????????? 文件的屬組(group)
??????????????????? 文件大小(size),單位是字節
??????????????????? 時間戳(timestamp):最近一次被修改的時間
?????????????????????????? 訪問:access
?????????????????????? ??? 修改:modify,文件內容
?????????????????????? ??? 改變:change,metadate 元數據
cd: change directory
????cd 回到家目錄,主目錄,home directory “~”表示,or cd ~
????cd ~USERNAME:進入指定用戶家目錄,cd ~student
????cd -:在當前目錄和前一次所在的目錄直接來回切換
type:顯示指定屬于那種類型? ??? # type echo
????命令類型:內置命令(shell內置)
????外部命令:在文件系統的某個路徑下有一個與命令名稱相應的可執行文件
????環境變量:命名的內存空間 PATH:使用冒號分隔的路徑
1內部命令: help COMMAND?? #help echo
2外部命令: COMMAND --help
3命令手冊:manual 文件,文本文檔
man COMMAND
???
4在線文檔
????info COMMAND
5文檔/usr/share/doc
6google
⑵、系統時間查看和修改命令之clock、hwclock、date ? ntp網絡時間協議
? ? ? ? clock:顯示系統時間
? ? ? ? hwclock:顯示系統的硬件時間。
? ? ? ? hwclock -w:把系統時間同步到硬件
? ? ? ? hwclock -s:把硬件時間同步到系統
? ? ? ?date 修改時間
? ? ? ?date?月月日日時時分鐘年年(年年).秒秒
⑶、目錄、文件創建和刪除命令之mkdir,touch、rmdir、rm
? ? ? ? mkdir:創建空目錄
? ? ? ? mkdir -p:遞歸創建目錄
? ? ? ? touch:創建一個文件
? ? ? ? touch -c :文件存在的時候不再創建
? ? ? ? rmdir:刪除一個空目錄
? ? ? ? rmdir -p:遞歸刪除一個目錄
? ? ? ? rm:刪除文件
? ? ? ? rm -i:交互式刪除
? ? ? ? rm -f:暴力刪除
? ? ? ? rm -r:遞歸刪除目錄
? ? ? ? rm -rf:
? ? ?touch的另一個用法:修改時間戳?
? ? ? ? ?-a:只改變訪問時間
? ? ? ? ?-m:只改變修改時間
? ? ? ? ?-t:自建時間(年月日時分.秒)--與a、m配合使用!)
? ? ?stat:顯示文件的時間戳
⑷、文件、目錄的復制命令之cp
? ? ?cp /etc/passwd /tmp/:復制到目錄下并保存原文件名
? ???cp /etc/passwd /tmp/test:test目錄存在,意義如上,否則為復制并重新命名為test
? ? ? ? -r:遞歸復制目錄
? ? ? ? -i:交互式顯示信息
? ? ? ? -f:強制覆蓋
? ? ? ? -p:保持原文件的屬性
? ? ? ? -a:保留文件的所有屬性
? ? ? ? cp -P:復制鏈接文件的時候,直接復制鏈接(cp 鏈接文件默認復制的是鏈接所指向的文件)
⑸、目錄文件的移動、重命名命令之mv
? ? ? ???mv SRC(源) DEST(目標)
? ? ? ? ?mv ab bc
⑹、文本文件查看命令之cat、more、less、head
? ? ? ? ?cat:鏈接并顯示文件的所有內容
? ? ? ? ? ? -n:顯示的時候顯示行號
? ? ? ? ? ? -E:顯示每行的結束符
? ? ? ? ? ? -T:顯示制表符
? ? ? ? ?tac:逆序顯示
? ? ? ? ?more:與cat的用法大致相同,只是提供了向前向后翻頁來分頁進行顯示。顯示到最后自動退出
? ? ? ? ?less:與more相似,只是顯示的最后需要輸入q才會退出顯示
? ? ? ? ?head:顯示文本文件的前n行
? ? ? ? ? ? ?-n:前n行
? ? ? ? ?tail:查看文本的后n行,默認是10
? ? ? ? ? ? ?-n:后n行
? ? ? ? ?tail的特殊用法:
? ? ? ? ? ? ?-f:查看文件尾部,而且不退出,等待顯示后續追加的新內容;
文本:linux行結束符為$,Windows的行結束提示符為$←┘(回車),控制符控制換行,所以有時windows打開linux文本無換行,linux打開window文本有報錯
⑺、文本處理命令之cut、sort、wc、tr?? sed、awk
? ? ? ? ?cut:用于剪切數據并顯示
? ? ? ? ? ? ?-d:指定字段分隔符。默認為空格,cut -d: -f7 空格符 cut -d''
? ? ? ? ? ? ?-f:指定要選擇的字段
????????????????????-f 1,3???? 顯示1和3字段
??? ????????????????-f 1-3???? 顯示1到3字段
? ? ? ? ?sort:文本排序的命令
? ? ? ? ? ? ?-n:按數值的大小排序
? ? ? ? ? ? ?-r:降序排序
? ? ? ? ? ? ?-u:相同的行之顯示一次
? ? ? ? ? ? ?-f:忽略大小寫
? ? ? ? ?wc:文本統計命令
? ? ? ? ? ? -l:只顯示行數
? ? ? ? ? ? -w:只顯示單詞數
? ? ? ? ? ? -c:只顯示字節數
? ? ? ? ? ??-L:表示顯示最長的一行包含多少個字符
? ? ? ? ?tr:用于實現轉換或刪除字符
? ? ? ? ? ? tar ab AB:轉換
? ? ? ? ? ? tar -d:刪除出現的字符
⑻、目錄權限管理
? ? ? ? ? 1、chown:修改文件屬主--(只有管理員才有此權限)
? ? ? ? ? ? ? ?chown USERNAME file....(只改變目錄本身)
? ? ? ? ? ? ? ?-R:遞歸修改(修改目錄及其內部文件的屬主)
? ? ? ? ? ? ? ?--reference=/path/to/somefile file:把file的屬主設定為與somefile的屬主一樣(不需要指定屬主)
? ? ? ? ? ? ? ?chown USERNAME:GRPNAME fiel... 同時改變屬主和屬組
? ? ? ? ? ? ? ?hown :GROUPNAME fiel.... ? 修改屬組
? ? ? ? ? ?2、修改文件屬組:chgrp:修改文件屬組--只有管理員才能使用
? ? ? ? ? ? ? ? 基本附件參數與chown一樣
? ? ? ? ? ? ? ??chgrp GROUPNAME file....(只改變目錄本身)
? ? ? ? ? ? ? ? -R:遞歸修改
? ? ? ? ? ? ? ? --reference=/path/to/somefile file... 把file的屬主設定為與somefile的屬組一樣(不需要指定屬組)
? ? ? ? ? ? 3、修改文件權限:chmod
? ? ? ? ? ? ? ?chmod 755 file..:直接指定權限的2進制。
? ? ? ? ? ? ? ?修改某類用戶或某些類用戶權限(u 、g 、o 、a)
? ? ? ? ? ? ? ?chmod 用戶類別=MODE fiel..
? ? ? ? ? ? ? ?修改某類的用戶某位或某些位權限mode(wrx)
? ? ? ? ? ? ? ?chmod 用戶類別[-/+]MODE fiel..
linux用戶及權限詳解-用戶組-用戶管理-權限管理
用戶管理:
????useradd,userdel,usermod,passwd,chsh(修改用戶的默認shell),shfn(修改注釋信息),finger,id,chage
組管理:
????groupadd,groupdel,groupmod,gpasswd
權限管理
????chown,chgrp,chmod,umask
在Linux中用戶和組被稱為安全權限模型的核心要素,本文主要是講解一些用戶和組管理的命令,其中的命令包括useradd、userdel、 usemod、chfn、chsh、chage、passwd、groupadd、groupmod、groupdel、gpasswd、su,本文只要 說的是一些常用的選項,如果需要別的選項,請獲取命令幫助
Linux中用戶類別分為:管理員用戶和普通用戶,其中管理員用戶的UID為0,普通用戶的UID為1-65535,
普通用戶又分為系統用戶和登陸用戶,其中系統用戶的UID為1-499,登陸用戶的UID為500-65535,
創建用戶
useradd等同于adduser,格式為useradd ?[options] UserName
其中常用選項包括以下幾個:
-u UID:指定用戶的UID,如果不指定的話,就在最后一個用戶的基礎上+1,useradd創建的第一個賬號的UID為500;
-g GID:指定用戶的GID,即用戶的基本組ID,但是GID要實現存在才可以,也可以直接使用組名
-G GID:指定用戶的額外組,當時GID要實現存在才可以,也可以直接使用組名
-d 目錄:指定用戶的家目錄,這個家目錄最好是不要存在的文件夾,如果目錄已經存在,會出現shell環境變量錯誤
-c 備注:為用戶添加備注信息
-s shell:指定用戶的默認shell,應該指定使用/etc/shells文件中出現的shell類型
-m:創建用戶時,強制給用戶創建家目錄,默認情況下會在/home目錄下創建一個跟用戶名同名的文件夾來作為用戶的家目錄
-M:創建用戶時,不創建用戶家目錄
刪除用戶
userdel:用于刪除用戶,默認情況下會保留用戶的家目錄,如果想連家目錄一起刪除的話,應該使用-r選項
格式為 userdel [options] UserName
修改用戶的屬性信息
chsh:修改用戶的默認shell
chfn:修改用戶的備注信息,會依次輸入用戶的名稱、辦公地址、辦公電話、家庭電話
usermod:修改用戶的屬性信息
格式為 usermod [options] UserName
-a :追加
-u UID:修改用戶的UID
-g GID:修改用戶基本組的GID,也可以直接使用基本組的組名
-G GID:修改用戶的額外組的GID,也可以直接使用基本組的組名,默認狀態下會覆蓋原有的附加組,如果想要添加附加組,請在該選項前加-a選項
-c string:修改用戶的備注信息
-d 目錄:默認不會遷移用戶的家目錄,如果要遷移,請以-m選項一起使用
-s shell:修改用戶的默認shell ,應該指定使用/etc/shells文件中出現的shell類型
-l 名稱:修改用戶的登陸名稱,但是不修改用的UID,GID
-e 時間:修改用戶的過期時間
-f 時間:修改用戶的非活動時間。
-L 用戶名:鎖定用戶賬號
-U 用戶名:將鎖定的用戶賬號進行解鎖
chage:修改用戶的日期屬性
-E:距離1970-1-1號的時間天數,過了這個時間,賬號不可訪問
-I: 設置非活動期限
-m:修改密碼最小使用時間
-M:修改密碼最長使用時間
-W:修改密碼警告時間
查看用戶的相關信息
id 查看用戶的id號
格式:id [options] UserName
-n:只顯示名稱
-u:只顯示用戶的UID
-g:顯示用戶的基本在GID
-G:顯示用戶的額外組的GID
修改用戶密碼
密碼安全性策略:
1、足夠復雜
2、足夠長、盡量交叉使用數字、大寫字母、小寫字母和特殊字符
3、盡量避免使用易猜測的密碼:
4、定期更換
passwd 修改用戶的密碼
格式:passwd [options] 用戶名
說明:普通用戶只能修改自身的密碼,管理員可以設定自身和所有普通用戶的密碼,在設定其他用戶密碼是直接使用passwd 用戶名即可
-l:鎖定用戶
-u:解鎖用戶
-n:設定用戶密碼的最少使用時間
-x:設定用戶密碼的最長使用時間
-w:設定用戶密碼的警告時間
-i:設定用戶密碼的非活動時間
/etc/passwd中的格式
用戶名:密碼占位符:UID:GID(基本組ID):用戶備注信息(多個以,隔開):家目錄:默認shell
/etc/shadow中的格式
用戶名:密碼:最近的一次密碼修改時間距離1970-1-1的時間:最短使用期限:最長使用期限:警告時間:非活動時間(登陸就要修改密碼):賬號的過期期限:預留段
組的管理:
用戶組分為普通組和管理員組,在用戶看來,組可以分為兩類:基本組和額外組,額外組也叫附加組,組的管理和用戶的管理基本類似,這里就不再做累贅
?⑴、linux系統內用戶分類:
? ? ?管理員:ID為0
? ? ?普通用戶:ID為1-655351、
? ? ? ? ? ? ? 系統用戶:ID為1-499,運行后臺服務的用戶,不允許登陸系統。? ? ? ? ? ? ? ? ? ? ? ??一般用戶:ID為500-60000
⑵、用戶管理基本命令
? ? 1、用戶增加命令之useradd
? ? ? ?useradd:直接增加用戶,家目錄和屬性等是默認
? ? ? ? ? ? ? -u UID:指定用戶的UID
? ? ? ? ? ? ? -g GID:指定用戶的GID
? ? ? ? ? ? ? -G GID:指定用戶的附加組,可以指定多個,彼此之間用逗號隔開
? ? ? ? ? ? ? -c "信息":添加注釋信息
? ? ? ? ? ? ? -d 目錄:指定用戶的家目錄
? ? ? ? ? ? ? -s shell類型:指定用戶的shell
? ? ? ? ? ? ? -M:不給用戶創建家目錄
? ? ? ? ? ? ? -r:創建一個系統用戶,系統用戶不創建家目錄的。
? ? 2、 用戶刪除命令之userdel
? ? ? ?userdel:直接刪除用戶,默認是不刪除用戶的家目錄的。
? ? ? ? ? ? ? -r:刪除用戶的時候也刪除其家目錄
? ? 3、用戶查看命令之id 、finger
? ? ? ??id:查看當前用戶的id信息(全部的信息)
? ? ? ? ? id -g:查看GID信息
? ? ? ? ? id -u:查看UID信息
? ? ? ? ? id -G:查看全部GID信息
? ? ? ???finger:查看用戶賬戶信息
? ? ? ? ? ?finger USERNAME
? ? 4、用戶屬性修改命令usermod
? ? ? ? ?usermod命令:修改賬戶的屬性
? ? ? ? ? ?usermod [option] USERNAME
? ? ? ? ? ? ? -u|g|G: 修改UID|GID|附加組(直接覆蓋之前的附加組)
? ? ? ? ? ? ? -a -G: 加附加組,不覆蓋之前的附加組
? ? ? ? ? ? ? -c:修改注釋信息
? ? ? ? ? ? ??-d:為用戶指定新家目錄(原來的家目錄無法再訪問)
? ? ? ? ? ? ??-d -m:指定家目錄,又移動此前家目錄的文件至新的家目錄內
? ? ? ? ? ? ??-s:修改shell
? ? ? ? ? ? ? -l:修改用戶名?
? ? ? ? ? ? ? -L:鎖定用戶賬號
? ? ? ? ? ? ??-U:解鎖用戶賬號
? ? 5、用戶密碼管理命令passwd
? ? ? ? ?passwd USERNAME:修改用戶名密碼
? ? ? ? ? ??-l:鎖定賬號
? ? ? ? ? ? -U:解鎖賬戶
? ? ? ? ? ? -d:刪除用戶密碼
? ? ? ? ? ? -n:密碼最短使用時間
? ? ? ? ? ? -x:密碼最長使用時間
? ? ? ? ?更改用戶的密碼使用屬性:chage命令
? ? ? ? ? ? -d 最后一次修改時間
? ? ? ? ? ??-E 過期時間
? ? ? ? ? ??-I 非活動時間
? ? ? ? ? ??-m 最短使用期限
? ? ? ? ? ??-M 最長使用期限
? ? ? ? ? ??-w 警告時間
⑶、組管理基本命令
? ? 1、創建組:groupadd
? ? ? ? ? ?-g:指定GID
? ? ? ? ? ?-r:添加組為系統組
? ? 2、刪除組:groupdel
? ? ? ? ? -g:以GID 刪除
? ? ? ? ? -n:以組名刪除
? ? 3、組密碼:gpasswd
? ? ? ? ? gpasswd GROUPNAME
? ? 4、組屬性修改命令groupmod
? ? ? ? ?groupmod [option] GROUPNAME
? ? ? ? ?-g GID:修改GID
? ? ? ? ?-n:修改組名稱
#cat /etc/passwd
#what is passwd
#man 5 passswd
account:登陸名
password:密碼
UID:用戶的id號
GID:基本組id
comment:注釋
HOME DIR:家目錄
SHELL:用戶的默認shell?????????????? #cat /etc/shells
#cat /etc/shadow
#man 5 shadow
account:登陸名
encrypted password:加密的密碼
保留字段
手動添加用戶hive,基本組為hive(5000),附加組為mygroup
一添加組hive-gid為5000,同時附加組mygroup添加hive
????#nano? /etc/group
????????hive:x:5000:
????????mygroup:x:504:user3,hive
二添加用戶hive
???? #nano /etc/passwd
????????hive:x:5000:5000:hive-注釋符:/home/hive:/bin/bash
三設置密碼,可用命令#passwd hive (root賬戶)也可
????#nano /etc/shadow
????????hive:!!(留待以后加密):15765:0:99999:7:::
???????????? 用戶? : 加密密碼:上次密碼修改時間:最短使用時間:最長使用期限:警告時間
#date+%s 今天到此刻為止經過多少秒
然后除以每天的秒數 86400? 得到結果
passwd
????#openssl passwd
????#whatis passwd
????#man sslpasswd
????#openssl passwd -1 -salt '12345678'????????????????????????? 雜數-隨機數
????輸入密碼,復制黏貼
????#nano /etc/shadow
????將兩個!!換成黏貼的內容?? salt一樣,生成密碼就一樣
四提供家目錄
????#cp -r /etc/skel /home/hive
????#chown -R hive.hive /home/hive/
????#chmod -R go= /home/hive/
????#ls -ld /home/hive
????#ls -la /home/hive
????#su - hive ? 沒有密碼不可直接登錄,但可以su過去
????#id???
????#exit
一、linux可以用于查找的相關命令(本次重點在于說明find用法)
1、find:
是最為強大的查找命令,可以查找到你所想要找的所有文件
2、locate
同樣也是一個文件查找命令,locate 命令其實是"find-name"的另一種寫法,但是要比后者快得多,原因在于它不搜索具體目錄,而是搜索一個數據庫,這個數據庫中含有本地所有文件信 息。Linux系統自動創建這個數據庫,并且每天自動更新一次,所以使用locate命令查不到最新變動過的文件。
3、whereis
whereis命令只能用于程序名稱的搜索,而且只搜索二進制文件(參數-b)、man說明文件(參數-m)和源代碼文件(參數-s)。如果省略參數,則返回所有信息。
| 12 | [root@localhost ~]# whereis yumyum: /usr/bin/yum /etc/yum /etc/yum.conf /usr/share/man/man8/yum.8.gz |
4、which
which命令的作用是,在PATH環境變量指定的路徑中,搜索某個系統命令的位置,并且返回第一個搜索結果。也就是說,使用which命令,就可以查看某個系統命令是否存在,以及執行的到底是哪一個位置的可執行文件(即命令)
| 12 | [root@localhost ~]# which yum/usr/bin/yum |
5、type
type命令其實不能算查找命令,它是用來查找某個命令到底是由shell自帶的,還是由shell外部的獨立二進制文件提供的。
| 12 | [root@localhost ~]# type yumyum is /usr/bin/yum |
從以上各命令的功能可以看出,雖然在linux中有諸多可以用于查找的命令,但能夠基于文件(命令也是一個可執行文件之一)層次查找的只有find與locate,兩者區別也比較明顯。
find與loacte的區別
find:
優點:可實時查找,精確匹配
缺點:范圍遍歷,速度慢
locate:
優點:查找速度快
缺點:依賴于數據庫、非實時查找
二、find 用法
格式:
find [options] [查找路徑] [查找條件] [處理動作]
? ?查找路徑:默認為當前目錄
? ?查找條件:默認為查找指定路徑下的所有文件
? ?處理動作:默認為顯示
1、條件查找(支持文件名通配)
| -name "File_name" | 按名稱查找 | ||||
| |||||
| -name "*" | 查找任意長度的任意字符 | ||||
| |||||
| -name "?" | 包含任意單個定符 | ||||
| |||||
| -name "[]" | 范圍內的任意字符 | ||||
| |||||
| -name "[^]" | 范圍外的任意字符 | ||||
| |||||
| -iname "File_name" | 查找時不區分字符大小寫 | ||||
| |||||
| -user UserName | 根據屬主查找 | ||||
| |||||
| -group GroupName | 根據屬組查找 | ||||
| |||||
| -uid UID | 按照用戶的UID查找 | ||||
| |||||
| -gid GID | 按照用戶的的GID查找 | ||||
| |||||
| -nouser | 查無有效屬主的文件,即文件的屬主在/etc/passwd中不存在 | ||||
| |||||
| -nogroup | 查無有效屬組的文件,即文件的屬組在/etc/group中不存在 | ||||
| |||||
2、組合條件
| -a | 與,同時滿足(and) | ||
| |||
| -o | 或(or) | ||
| |||
| -not, ! | 非,取反 | ||
| |||
3、文件類型查找(type)
| -type f | 普通文件 | ||
| |||
| -type f | 目錄 | ||
| -type b | 塊設備 | ||
| -type c | 字符設備 | ||
| -type l | 符號鏈接文件 | ||
| -type p | 命名管道 | ||
| -type s | 套接 | ||
其它文件類型查找方法與f用法相同。
4、文件大小查找(-size [+|-]#),Unit(c:字節,k:KB,M:MB,G:GB
| -size # | 指定大小(取值是不大于) | ||
| -size +# | 大于# | ||
| |||
| -size: -# | 小于# | ||
5、時間戳查找
以天為單位(time):
-atime [+|-]#
| -mtime [+|-]# | 修改時間 | ||
| -ctime [+|-]# | 改變時間 | ||
| -atime [+|-]# | 訪問時間 | ||
| |||
以分鐘為單位(min)[+|-]#: ? ?
| -amin [+|-]# | 訪問時間 | ||
| -mmin [+|-]# | 修改時間 | ||
| |||
| -cmin [+|-]# | 改變時間 | ||
6、權限查找
? ?-perm [+|-]MODE
| -perm MODE | 精確匹配 | ||
| |||
| -perm +MODE | 任何一類用戶的任何一位權限匹配;常用于查找某類用戶的某特定權限是否存在 | ||
| |||
| -MODE | 每類用戶的指定要檢查的權限位都匹配 | ||
| |||
7、處理動作:
| 打印在標準輸出上(默認); | |||
| -ls | 以長格式輸出各文件信息 | ||
| -exec COMMAND {} \; | 對查找到的文件執行指定的命令 | ||
| |||
| -ok COMMAND {} \; | 交互式的-exec | ||
| |||
find把查找到的所有文件一次性地傳遞給-exec所指定的命令
| 12345678910111213 | [root@localhost tmp]# ls -l *.doc-rw-r--r-- 1 root root 0 Feb 26 16:53 fdsfd.doc-rw-r--r-- 1 root root 0 Feb 26 16:52 WER.doc[root@localhost tmp]# find /tmp -iname "*.doc " | rm -rf[root@localhost tmp]# ls -l *.doc-rw-r--r-- 1 root root 0 Feb 26 16:53 fdsfd.doc-rw-r--r-- 1 root root 0 Feb 26 16:52 WER.doc[root@localhost tmp]# find /tmp -iname "*.doc" -exec mv {} {}x \;[root@localhost tmp]# ls -l *.docx-rw-r--r-- 1 root root 0 Feb 26 16:47 asdfadf.docx-rw-r--r-- 1 root root 0 Feb 26 16:53 fdsfd.docx-rw-r--r-- 1 root root 0 Feb 26 16:52 WER.docx-rw-r--r-- 1 root root 0 Feb 26 16:47 xxx.docx |
注:find:把查找到的所有文件一次性地傳遞給-exec所指定的文件
管道傳遞的是字符串,不能使用文件操作指令處理,
如果要用可以使用以下命令
| 123456789 | [root@localhost tmp]# touch asdf.c[root@localhost tmp]# touch asdf.h[root@localhost tmp]# touch asdf.so[root@localhost tmp]# touch asdf.ppt[root@localhost tmp]# touch asdf.doc[root@localhost tmp]# touch study.dox[root@localhost tmp]# find? -mmin 1 | xargs rm -rf[root@localhost tmp]# ls#此處的-mmin 1表示修改時間到從1分鐘不到2分鐘之間的文件刪除,慎用,我剛才#就是+1,結果一分鐘之前的所有文件就這么沒了~~~~悲劇了! |
find |xargs COMMAND(查找大文件很有用)
====================================完===================================================
①、linux上日志系統類型:syslog和syslog-ng(開源版和商業版)
???? 1、syslog服務:
?????? syslogd:系統日志,非內核產生的信息
??? 配置文件:/etc/syslog.conf、
??? 配置以后利用service syslog reload(不用重啟服務讀取配置文件)
??? 日志服務器配置:etc/sysconfig/syslog內SYSLOGD_OPTIONS="-m 0"改為SYSLOGD_OPTIONS="-r -m 0"即可作為日志服務器
???
??? klogd:內核日志,專門負責內核產生的信息
??? kernel啟動的時候是物理終端(/dev/console),產生的日志信息在/var/log/dmesg
??? dmesg命令:可以直接查看/var/log/dmesg;也可以使用cat /var/log/dmesg查看。
?????????sbin/init進程信息屬于系統日志,放在以下位置:
????/var/log/messages:系統標準錯誤日志信息,非內核產生的引導信息;各子系統產生的信息。
???? /var/log/maillog:郵件系統產生的日志信息
???? /var/log/secure:用戶登陸信息日志
???? 2、日志需要滾動:
????? message一段時間以后重新命名為message1..,然后新建一個message來存放日志。
?? logrotate:通過此命令對日志文件進行切片
?? /etc/cron.daily/logrotate
??
?配置文件:/etc/syslog.conf
????
?配置文件定義格式為: facility.priority? action
?facility,可以理解為日志的來源或設備目前常用的facility有以下幾種:?
?
?priority(log level)日志的級別,一般有以下幾種級別(從低到高)?
????
?????
?action(動作)日志記錄的位置
??? 系統上的絕對路徑??? # 普通文件 如: /var/log/xxx
??? |?????????????????? # 管道? 通過管道送給其他的命令處理
??? 終端????????????? # 終端?? 如:/dev/console
??? @HOST?????????????? # 遠程主機 如: @10.0.0.1?????
??? 用戶????????????? # 系統用戶 如: root
??? *?????????????????? # 登錄到系統上的所有用戶,一般emerg級別的日志是這樣定義的
?定義格式例子:
?
?
本文出自 “Chris On the way”
轉載于:https://blog.51cto.com/zqslzr/1789980
總結
以上是生活随笔為你收集整理的linux根-文件系统-目录管理-文件管理-用户及权限详解-用户组-用户管理-权限管理...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 朋友 你还好么
- 下一篇: 花香蝶自聚 草盛马自来