日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux根-文件系统-目录管理-文件管理-用户及权限详解-用户组-用户管理-权限管理...

發(fā)布時間:2025/3/21 linux 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux根-文件系统-目录管理-文件管理-用户及权限详解-用户组-用户管理-权限管理... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

? ?

一 、Linux文件結(jié)構(gòu)
  文件結(jié)構(gòu)是文件存放在磁盤等存貯設(shè)備上的組織方法。主要體現(xiàn)在對文件和目錄的組織上。
  目錄提供了管理文件的一個方便而有效的途徑。
  Linux使用標(biāo)準(zhǔn)的目錄結(jié)構(gòu),在安裝的時候,安裝程序就已經(jīng)為用戶創(chuàng)建了文件系統(tǒng)和完整而固定的目錄組成形式,并指定了每個目錄的作用和其中的文件類型。
   ? ? ? ? ? ? ? ? ? ?/根目錄
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?┃
┏━━┳━━━┳━━━┳━━━╋━━━┳━━━┳━━━┳━━━┓
┃ ? ┃ ? ? ?┃ ? ? ┃ ? ? ┃ ? ? ┃ ? ? ?┃ ? ? ┃ ? ? ┃
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采用的是樹型結(jié)構(gòu)。最上層是根目錄,其他的所有目錄都是從根目錄出發(fā)而生成的。微軟的DOS和windows也是采用樹型結(jié)構(gòu),但是在DOS 和 windows中這樣的樹型結(jié)構(gòu)的根是磁盤分區(qū)的盤符,有幾個分區(qū)就有幾個樹型結(jié)構(gòu),他們之間的關(guān)系是并列的。但是在linux中,無論操作系統(tǒng)管理幾個 磁盤分區(qū),這樣的目錄樹只有一個。從結(jié)構(gòu)上講,各個磁盤分區(qū)上的樹型目錄不一定是并列的。

  如果這樣講不好理解的話,我來舉個例子:
有一塊硬盤,分成了4個分區(qū),分別是/;/boot;/usr和windows下的fat
  對于/和/boot或者/和/usr,它們是從屬關(guān)系;對于/boot和/usr,它們是并列關(guān)系。

  如果我把windows下的fat分區(qū)掛載到/mnt/winc下,(掛載??哦,別急,呵呵,一會就講,一會就講。)那么對于/mnt/winc和/usr或/mnt/winc和/boot來說,它們是從屬于目錄樹上沒有任何關(guān)系的兩個分支。
  因為linux是一個多用戶系統(tǒng),制定一個固定的目錄規(guī)劃有助于對系統(tǒng)文件和不同的用戶文件進(jìn)行統(tǒng)一管理。但就是這一點讓很多從windows轉(zhuǎn)到linux的初學(xué)者感到頭疼。下面列出了linux下一些主要目錄的功用。

  /boot 系統(tǒng)啟動相關(guān)的文件,如內(nèi)核、initrd,以及grub(bootloader)

  /bin 二進(jìn)制可執(zhí)行命令 用戶命令
  /dev 設(shè)備特殊文件

????塊設(shè)備:隨機(jī)訪問,數(shù)據(jù)塊

????字符設(shè)備:線性訪問,按字符為單位

????設(shè)備號:主設(shè)備號(major)和次設(shè)備號(minor)

  /etc 系統(tǒng)管理和配置文件
  /etc/rc.d 啟動的配置文件和腳本
  /home 用戶主目錄的基點,用戶的家目錄,比如用戶user的主目錄就是/home/user,可以用~user表示
  /lib 標(biāo)準(zhǔn)程序設(shè)計庫,又叫動態(tài)鏈接共享庫,作用類似windows里的.dll文件 庫文件

????/lib/modules:內(nèi)核模塊文件

????靜態(tài)庫, .a

????動態(tài)庫,.dll,.so(shared object)

  /sbin 系統(tǒng)管理命令,這里存放的是系統(tǒng)管理員使用的管理程序
  /tmp 公用的臨時文件存儲點
  /root 系統(tǒng)管理員的主目錄-家目錄(呵呵,特權(quán)階級)
  /mnt 系統(tǒng)提供這個目錄是讓用戶臨時掛載其他的文件系統(tǒng)。掛載點目錄

  /media:掛載點目錄,移動設(shè)備

  /lost+found 這個目錄平時是空的,系統(tǒng)非正常關(guān)機(jī)而留下“無家可歸”的文件(windows下叫什么.chk)就在這里

  /opt 可選目錄,第三方程序的安裝目錄

  /proc 虛擬的目錄,是系統(tǒng)內(nèi)存的映射。可直接訪問這個目錄來獲取系統(tǒng)信息。偽文件系統(tǒng),內(nèi)核映射文件

  /sys 偽文件系統(tǒng),跟硬件設(shè)備相關(guān)的屬性映射文件

  /var 某些大文件的溢出區(qū),比方說各種服務(wù)的日志文件 可變化的文件
  /usr 最龐大的目錄,要用到的應(yīng)用程序和文件幾乎都在這個目錄。shared read-only 其中包含:
  /usr/X11R6 存放X window的目錄
  /usr/bin 眾多的應(yīng)用程序
  /usr/sbin 超級用戶的一些管理程序
  /usr/doc linux文檔
  /usr/include linux下開發(fā)和編譯應(yīng)用程序所需要的頭文件
  /usr/lib 常用的動態(tài)鏈接庫和軟件包的配置文件
  /usr/man 幫助文檔
  /usr/src 源代碼,linux內(nèi)核的源代碼就放在/usr/src/linux里
  /usr/local/bin 本地增加的命令

  /usr/local/sbin

  /usr/local/lib 本地增加的庫
二 、linux文件系統(tǒng)

文 件系統(tǒng)指文件存在的物理空間,linux系統(tǒng)中每個分區(qū)都是一個文件系統(tǒng),都有自己的目錄層次結(jié)構(gòu)。linux會將這些分屬不同分區(qū)的、單獨的文件系統(tǒng)按 一定的方式形成一個系統(tǒng)的總的目錄層次結(jié)構(gòu)。一個操作系統(tǒng)的運行離不開對文件的操作,因此必然要擁有并維護(hù)自己的文件系統(tǒng)。
  Llinux文件系統(tǒng)使用索引節(jié)點來記錄文件信息,作用像windows的文件分配表。
   索引節(jié)點是一個結(jié)構(gòu),它包含了一個文件的長度、創(chuàng)建及修改時間、權(quán)限、所屬關(guān)系、磁盤中的位置等信息。一個文件系統(tǒng)維護(hù)了一個索引節(jié)點的數(shù)組,每個文件 或目錄都與索引節(jié)點數(shù)組中的唯一一個元素對應(yīng)。系統(tǒng)給每個索引節(jié)點分配了一個號碼,也就是該節(jié)點在數(shù)組中的索引號,稱為索引節(jié)點號。
linux文件系統(tǒng)將文件索引節(jié)點號和文件名同時保存在目錄中。所以,目錄只是將文件的名稱和它的索引節(jié)點號結(jié)合在一起的一張表,目錄中每一對文件名稱和索引節(jié)點號稱為一個連接。

  對于一個文件來說有唯一的索引節(jié)點號與之對應(yīng),對于一個索引節(jié)點號,卻可以有多個文件名與之對應(yīng)。因此,在磁盤上的同一個文件可以通過不同的路徑去訪問它。
  可以用ln命令對一個已經(jīng)存在的文件再建立一個新的連接,而不復(fù)制文件的內(nèi)容。連接有軟連接和硬連接之分,軟連接又叫符號連接。它們各自的特點是:
  硬連接:原文件名和連接文件名都指向相同的物理地址。
目錄不能有硬連接;硬連接不能跨越文件系統(tǒng)(不能跨越不同的分區(qū))
文件在磁盤中只有一個拷貝,節(jié)省硬盤空間;

  由于刪除文件要在同一個索引節(jié)點屬于唯一的連接時才能成功,因此可以防止不必要的誤刪除。
  符號連接:用ln -s命令建立文件的符號連接符號連接是linux特殊文件的一種,作為一個文件,它的數(shù)據(jù)是它所連接的文件的路徑名。類似windows下的快捷方式。

  可以刪除原有的文件而保存連接文件,沒有防止誤刪除功能。
  這一段的的內(nèi)容過于抽象,又是節(jié)點又是數(shù)組的,我已經(jīng)盡量通俗再通俗了,又不好加例子作演示。大家如果還是云里霧里的話,我也沒有什么辦法了,只有先記住,日后在實際應(yīng)用中慢慢體會、理解了。這也是我學(xué)習(xí)的一個方法吧。
三 、掛載文件系統(tǒng)
由上一節(jié)知道,linux系統(tǒng)中每個分區(qū)都是一個文件系統(tǒng),都有自己的目錄層次結(jié)構(gòu)。linux會將這些分屬不同分區(qū)的、單獨的文件系統(tǒng)按一定的方式形成一個系統(tǒng)的總的目錄層次結(jié)構(gòu)。這里所說的“按一定方式”就是指的掛載。
將一個文件系統(tǒng)的頂層目錄掛到另一個文件系統(tǒng)的子目錄上,使它們成為一個整體,稱為掛載。把該子目錄稱為掛載點。
舉個例子吧:
  根分區(qū):
  /根目錄

┏━━━━┳━━━━━┳━━━━━┳━━━━━╋━━━━━┳━━━━━┳━━━━━┳━━━━━┓
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
bin home dev etc lib sbin tmp usr var

┏━┻━┓
┃ ┃
rc.d cron.d

┏━━━┳━━━┳━┻━┳━━━━┓
┃ ┃ ┃ ┃ ┃
init.d rc0.d rc1.d rc2.d ……
  /usr分區(qū) :
  usr

┏━━━━┳━━━╋━━━┳━━━┳━━━┓
┃ ┃ ┃ ┃ ┃ ┃
X11R6 src lib local man bin
┃ ┃
┃ ┏━━━╋━━━┓
┃ ┃ ┃ ┃
linux bin lib src
  掛載之后就形成了文章開始時的那個圖。像不像掛上去的?
  注意:1、掛載點必須是一個目錄。
  2、一個分區(qū)掛載在一個已存在的目錄上,這個目錄可以不為空,但掛載后這個目錄下以前的內(nèi)容將不可用。
對 于其他操作系統(tǒng)建立的文件系統(tǒng)的掛載也是這樣。但是需要理解的是:光盤、軟盤、其他操作系統(tǒng)使用的文件系統(tǒng)的格式與linux使用的文件系統(tǒng)格式是不一樣 的。光盤是ISO9660;軟盤是fat16或ext2;windows NT是fat16、NTFS;windows98是fat16、fat32;windows2000和windowsXP是fat16、fat32、 NTFS。掛載前要了解linux是否支持所要掛載的文件系統(tǒng)格式。
  掛載時使用mount命令:
格式:mount [-參數(shù)] [設(shè)備名稱] [掛載點]
  其中常用的參數(shù)有

  -t 指定設(shè)備的文件系統(tǒng)類型,常見的有:
  minix linux最早使用的文件系統(tǒng)
  ext2 linux目前常用的文件系統(tǒng)
  msdos MS-DOS的fat,就是fat16
  vfat windows98常用的fat32
  nfs 網(wǎng)絡(luò)文件系統(tǒng)
  iso9660 CD-ROM光盤標(biāo)準(zhǔn)文件系統(tǒng)
  ntfs windows NT 2000的文件系統(tǒng)
  hpfs OS/2文件系統(tǒng)
  auto 自動檢測文件系統(tǒng)
  -o 指定掛載文件系統(tǒng)時的選項。有些也可用在/etc/fstab中。常用的  有
  codepage=XXX 代碼頁
  iocharset=XXX 字符集
  ro 以只讀方式掛載
  rw 以讀寫方式掛載
  nouser 使一般用戶無法掛載
  user 可以讓一般用戶掛載設(shè)備
  提醒一下,mount命令沒有建立掛載點的功能,因此你應(yīng)該確保執(zhí)行mount命令時,掛載點已經(jīng)存在。(不懂?說白了點就是你要把文件系統(tǒng)掛載到哪,首先要先建上個目錄。這樣OK?)
  例子:windows98裝在hda1分區(qū),同時計算機(jī)上還有軟盤和光盤需要掛載。
  # 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
  現(xiàn)在就可以進(jìn)入/mnt/winc等目錄讀寫這些文件系統(tǒng)了。
  要保證最后兩行的命令不出錯,要確保軟驅(qū)和光驅(qū)里有盤。(要是硬盤的磁盤片也可以經(jīng)常隨時更換的話,我想就不會犯這樣的錯誤了 :-> )
如 果你的windows98目錄里有中文文件名,使用上面的命令掛載后,顯示的是一堆亂碼。這就要用到 -o 參數(shù)里的codepage iocharset選項。codepage指定文件系統(tǒng)的代碼頁,簡體中文中文代碼是936;iocharset指定字符集,簡體中文一般用cp936或 gb2312。
  當(dāng)掛載的文件系統(tǒng)linux不支持時,mount一定報錯,如windows2000的ntfs文件系統(tǒng)。可以重新編譯linux內(nèi)核以獲得對該文件系統(tǒng)的支持。關(guān)于重新編譯linux內(nèi)核,就不在這里說了。
四 、自動掛載

每次開機(jī)訪問windows分區(qū)都要運行mount命令顯然太煩瑣,為什么訪問其他的linux分區(qū)不用使用mount命令呢?
  其實,每次開機(jī)時,linux自動將需要掛載的linux分區(qū)掛載上了。那么我們是不是可以設(shè)定讓linux在啟動的時候也掛載我們希望掛載的分區(qū),如windows分區(qū),以實現(xiàn)文件系統(tǒng)的自動掛載呢?
  這是完全可以的。在/etc目錄下有個fstab文件,它里面列出了linux開機(jī)時自動掛載的文件系統(tǒng)的列表。我的/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文件里,第一列是掛載的文件系統(tǒng)的設(shè)備名,第二列是掛載點,第三列是掛載的文件系統(tǒng)類型,第四列是掛載的選項,選項間用逗號分隔。第五六列不知道是什么意思,還望高手指點。
  在最后兩行是我手工添加的windows下的C;D盤,加了codepage=936和iocharset=cp936參數(shù)以支持中文文件名。參數(shù)defaults實際上包含了一組默認(rèn)參數(shù):
  rw 以可讀寫模式掛載
  suid 開啟用戶ID和群組ID設(shè)置位
  dev 可解讀文件系統(tǒng)上的字符或區(qū)塊設(shè)備
  exec 可執(zhí)行二進(jìn)制文件
  auto 自動掛載
  nouser 使一般用戶無法掛載
  async 以非同步方式執(zhí)行文件系統(tǒng)的輸入輸出操作

?

linux操作系統(tǒng)及常用命令

#COMMAND options... arguments...????

? 命令???? 選項(短/長選項)? 參數(shù)

目錄管理:

????ls、cd、pwd、mkdir、rmdir、tree

文件管理:

????touch、stat、file、rm、cp、mv、nano

日期時間

????date、clock、hwclock、cal

查看文本

????cat、tac、more、less、head、tail

目錄:文件,路徑映射

路徑:從指令起到結(jié)束到目的地所經(jīng)過的位置????? 絕對路徑|相對路徑???????? /斜線??? window(\反斜線)

文件系統(tǒng):file system

⑴、目錄查看命令ls、cd 、type

? ? ?ls:顯示當(dāng)前目錄內(nèi)的文件

? ? ? ? ?-l:列出當(dāng)前目錄內(nèi)的文件并顯示其相關(guān)屬性?

? ? ? ? ?-a:顯示當(dāng)前目錄內(nèi)包含隱藏文件在內(nèi)的所有文件? .表示當(dāng)前目錄 ..表示父目錄

? ? ? ? ?-A:顯示當(dāng)前目錄內(nèi)除了.和..目錄以外的所有目錄

? ? ? ? ?-h:按單位為k或M進(jìn)行文件大小的顯示? 做單位轉(zhuǎn)換

???????? -d:顯示目錄資深屬性 ls-ld /root

???????? -i:index mode,inode

? ? ? ? ?-r:逆序顯示文件

? ? ? ? ?-R:遞歸(recursive)顯示目錄

????????????????ls -l 長格式?

????????????????????文件類型:

????????????????????????-:普通文件(f)

????????????????????????d:目錄文件

????????????????????????b:塊設(shè)備文件(block)

??? ??????????????????? c:字符設(shè)備文件(character)

??? ??????????????????? l:符號鏈接文件(symbolic link file)

??? ??????????????????? p:命令管道(pipe)

??? ??????????????????? s:套接字文件(socket)

??? ?????????????? 文件硬鏈接的次數(shù):

????????????????????文件的屬主(owner)

??????????????????? 文件的屬組(group)

??????????????????? 文件大小(size),單位是字節(jié)

??????????????????? 時間戳(timestamp):最近一次被修改的時間

?????????????????????????? 訪問:access

?????????????????????? ??? 修改:modify,文件內(nèi)容

?????????????????????? ??? 改變:change,metadate 元數(shù)據(jù)

cd: change directory

????cd 回到家目錄,主目錄,home directory “~”表示,or cd ~

????cd ~USERNAME:進(jìn)入指定用戶家目錄,cd ~student

????cd -:在當(dāng)前目錄和前一次所在的目錄直接來回切換

type:顯示指定屬于那種類型? ??? # type echo

????命令類型:內(nèi)置命令(shell內(nèi)置)

????外部命令:在文件系統(tǒng)的某個路徑下有一個與命令名稱相應(yīng)的可執(zhí)行文件

????環(huán)境變量:命名的內(nèi)存空間 PATH:使用冒號分隔的路徑

1內(nèi)部命令: help COMMAND?? #help echo

2外部命令: COMMAND --help

3命令手冊:manual 文件,文本文檔

man COMMAND

???

4在線文檔

????info COMMAND

5文檔/usr/share/doc

6google

⑵、系統(tǒng)時間查看和修改命令之clock、hwclock、date ? ntp網(wǎng)絡(luò)時間協(xié)議

? ? ? ? clock:顯示系統(tǒng)時間

? ? ? ? hwclock:顯示系統(tǒng)的硬件時間。

? ? ? ? hwclock -w:把系統(tǒng)時間同步到硬件

? ? ? ? hwclock -s:把硬件時間同步到系統(tǒng)

? ? ? ?date 修改時間

? ? ? ?date?月月日日時時分鐘年年(年年).秒秒

⑶、目錄、文件創(chuàng)建和刪除命令之mkdir,touch、rmdir、rm

? ? ? ? mkdir:創(chuàng)建空目錄

? ? ? ? mkdir -p:遞歸創(chuàng)建目錄

? ? ? ? touch:創(chuàng)建一個文件

? ? ? ? touch -c :文件存在的時候不再創(chuàng)建

? ? ? ? rmdir:刪除一個空目錄

? ? ? ? rmdir -p:遞歸刪除一個目錄

? ? ? ? rm:刪除文件

? ? ? ? rm -i:交互式刪除

? ? ? ? rm -f:暴力刪除

? ? ? ? rm -r:遞歸刪除目錄

? ? ? ? rm -rf:

? ? ?touch的另一個用法:修改時間戳?

? ? ? ? ?-a:只改變訪問時間

? ? ? ? ?-m:只改變修改時間

? ? ? ? ?-t:自建時間(年月日時分.秒)--與a、m配合使用!)

? ? ?stat:顯示文件的時間戳

⑷、文件、目錄的復(fù)制命令之cp

? ? ?cp /etc/passwd /tmp/:復(fù)制到目錄下并保存原文件名

? ???cp /etc/passwd /tmp/test:test目錄存在,意義如上,否則為復(fù)制并重新命名為test

? ? ? ? -r:遞歸復(fù)制目錄

? ? ? ? -i:交互式顯示信息

? ? ? ? -f:強(qiáng)制覆蓋

? ? ? ? -p:保持原文件的屬性

? ? ? ? -a:保留文件的所有屬性

? ? ? ? cp -P:復(fù)制鏈接文件的時候,直接復(fù)制鏈接(cp 鏈接文件默認(rèn)復(fù)制的是鏈接所指向的文件)

⑸、目錄文件的移動、重命名命令之mv

? ? ? ???mv SRC(源) DEST(目標(biāo))

? ? ? ? ?mv ab bc

⑹、文本文件查看命令之cat、more、less、head

? ? ? ? ?cat:鏈接并顯示文件的所有內(nèi)容

? ? ? ? ? ? -n:顯示的時候顯示行號

? ? ? ? ? ? -E:顯示每行的結(jié)束符

? ? ? ? ? ? -T:顯示制表符

? ? ? ? ?tac:逆序顯示

? ? ? ? ?more:與cat的用法大致相同,只是提供了向前向后翻頁來分頁進(jìn)行顯示。顯示到最后自動退出

? ? ? ? ?less:與more相似,只是顯示的最后需要輸入q才會退出顯示

? ? ? ? ?head:顯示文本文件的前n行

? ? ? ? ? ? ?-n:前n行

? ? ? ? ?tail:查看文本的后n行,默認(rèn)是10

? ? ? ? ? ? ?-n:后n行

? ? ? ? ?tail的特殊用法:

? ? ? ? ? ? ?-f:查看文件尾部,而且不退出,等待顯示后續(xù)追加的新內(nèi)容;

文本:linux行結(jié)束符為$,Windows的行結(jié)束提示符為$←┘(回車),控制符控制換行,所以有時windows打開linux文本無換行,linux打開window文本有報錯

⑺、文本處理命令之cut、sort、wc、tr?? sed、awk

? ? ? ? ?cut:用于剪切數(shù)據(jù)并顯示

? ? ? ? ? ? ?-d:指定字段分隔符。默認(rèn)為空格,cut -d: -f7 空格符 cut -d''

? ? ? ? ? ? ?-f:指定要選擇的字段

????????????????????-f 1,3???? 顯示1和3字段

??? ????????????????-f 1-3???? 顯示1到3字段

? ? ? ? ?sort:文本排序的命令

? ? ? ? ? ? ?-n:按數(shù)值的大小排序

? ? ? ? ? ? ?-r:降序排序

? ? ? ? ? ? ?-u:相同的行之顯示一次

? ? ? ? ? ? ?-f:忽略大小寫

? ? ? ? ?wc:文本統(tǒng)計命令

? ? ? ? ? ? -l:只顯示行數(shù)

? ? ? ? ? ? -w:只顯示單詞數(shù)

? ? ? ? ? ? -c:只顯示字節(jié)數(shù)

? ? ? ? ? ??-L:表示顯示最長的一行包含多少個字符

? ? ? ? ?tr:用于實現(xiàn)轉(zhuǎn)換或刪除字符

? ? ? ? ? ? tar ab AB:轉(zhuǎn)換

? ? ? ? ? ? tar -d:刪除出現(xiàn)的字符

⑻、目錄權(quán)限管理

? ? ? ? ? 1、chown:修改文件屬主--(只有管理員才有此權(quán)限)

? ? ? ? ? ? ? ?chown USERNAME file....(只改變目錄本身)

? ? ? ? ? ? ? ?-R:遞歸修改(修改目錄及其內(nèi)部文件的屬主)

? ? ? ? ? ? ? ?--reference=/path/to/somefile file:把file的屬主設(shè)定為與somefile的屬主一樣(不需要指定屬主)

? ? ? ? ? ? ? ?chown USERNAME:GRPNAME fiel... 同時改變屬主和屬組

? ? ? ? ? ? ? ?hown :GROUPNAME fiel.... ? 修改屬組

? ? ? ? ? ?2、修改文件屬組:chgrp:修改文件屬組--只有管理員才能使用

? ? ? ? ? ? ? ? 基本附件參數(shù)與chown一樣

? ? ? ? ? ? ? ??chgrp GROUPNAME file....(只改變目錄本身)

? ? ? ? ? ? ? ? -R:遞歸修改

? ? ? ? ? ? ? ? --reference=/path/to/somefile file... 把file的屬主設(shè)定為與somefile的屬組一樣(不需要指定屬組)

? ? ? ? ? ? 3、修改文件權(quán)限:chmod

? ? ? ? ? ? ? ?chmod 755 file..:直接指定權(quán)限的2進(jìn)制。

? ? ? ? ? ? ? ?修改某類用戶或某些類用戶權(quán)限(u 、g 、o 、a)

? ? ? ? ? ? ? ?chmod 用戶類別=MODE fiel..

? ? ? ? ? ? ? ?修改某類的用戶某位或某些位權(quán)限mode(wrx)

? ? ? ? ? ? ? ?chmod 用戶類別[-/+]MODE fiel..




linux用戶及權(quán)限詳解-用戶組-用戶管理-權(quán)限管理

用戶管理:

????useradd,userdel,usermod,passwd,chsh(修改用戶的默認(rèn)shell),shfn(修改注釋信息),finger,id,chage

組管理:

????groupadd,groupdel,groupmod,gpasswd

權(quán)限管理

????chown,chgrp,chmod,umask

在Linux中用戶和組被稱為安全權(quán)限模型的核心要素,本文主要是講解一些用戶和組管理的命令,其中的命令包括useradd、userdel、 usemod、chfn、chsh、chage、passwd、groupadd、groupmod、groupdel、gpasswd、su,本文只要 說的是一些常用的選項,如果需要別的選項,請獲取命令幫助

Linux中用戶類別分為:管理員用戶和普通用戶,其中管理員用戶的UID為0,普通用戶的UID為1-65535,

普通用戶又分為系統(tǒng)用戶和登陸用戶,其中系統(tǒng)用戶的UID為1-499,登陸用戶的UID為500-65535,

創(chuàng)建用戶

useradd等同于adduser,格式為useradd ?[options] UserName

其中常用選項包括以下幾個:

-u UID:指定用戶的UID,如果不指定的話,就在最后一個用戶的基礎(chǔ)上+1,useradd創(chuàng)建的第一個賬號的UID為500;

-g GID:指定用戶的GID,即用戶的基本組ID,但是GID要實現(xiàn)存在才可以,也可以直接使用組名

-G GID:指定用戶的額外組,當(dāng)時GID要實現(xiàn)存在才可以,也可以直接使用組名

-d 目錄:指定用戶的家目錄,這個家目錄最好是不要存在的文件夾,如果目錄已經(jīng)存在,會出現(xiàn)shell環(huán)境變量錯誤

-c 備注:為用戶添加備注信息

-s shell:指定用戶的默認(rèn)shell,應(yīng)該指定使用/etc/shells文件中出現(xiàn)的shell類型

-m:創(chuàng)建用戶時,強(qiáng)制給用戶創(chuàng)建家目錄,默認(rèn)情況下會在/home目錄下創(chuàng)建一個跟用戶名同名的文件夾來作為用戶的家目錄

-M:創(chuàng)建用戶時,不創(chuàng)建用戶家目錄

刪除用戶

userdel:用于刪除用戶,默認(rèn)情況下會保留用戶的家目錄,如果想連家目錄一起刪除的話,應(yīng)該使用-r選項

格式為 userdel [options] UserName

修改用戶的屬性信息

chsh:修改用戶的默認(rèn)shell

chfn:修改用戶的備注信息,會依次輸入用戶的名稱、辦公地址、辦公電話、家庭電話

usermod:修改用戶的屬性信息

格式為 usermod [options] UserName

-a :追加

-u UID:修改用戶的UID

-g GID:修改用戶基本組的GID,也可以直接使用基本組的組名

-G GID:修改用戶的額外組的GID,也可以直接使用基本組的組名,默認(rèn)狀態(tài)下會覆蓋原有的附加組,如果想要添加附加組,請在該選項前加-a選項

-c string:修改用戶的備注信息

-d 目錄:默認(rèn)不會遷移用戶的家目錄,如果要遷移,請以-m選項一起使用

-s shell:修改用戶的默認(rèn)shell ,應(yīng)該指定使用/etc/shells文件中出現(xiàn)的shell類型

-l 名稱:修改用戶的登陸名稱,但是不修改用的UID,GID

-e 時間:修改用戶的過期時間

-f 時間:修改用戶的非活動時間。

-L 用戶名:鎖定用戶賬號

-U 用戶名:將鎖定的用戶賬號進(jìn)行解鎖

chage:修改用戶的日期屬性

-E:距離1970-1-1號的時間天數(shù),過了這個時間,賬號不可訪問

-I: 設(shè)置非活動期限

-m:修改密碼最小使用時間

-M:修改密碼最長使用時間

-W:修改密碼警告時間

查看用戶的相關(guān)信息

id 查看用戶的id號

格式:id [options] UserName

-n:只顯示名稱

-u:只顯示用戶的UID

-g:顯示用戶的基本在GID

-G:顯示用戶的額外組的GID

修改用戶密碼

密碼安全性策略:

1、足夠復(fù)雜

2、足夠長、盡量交叉使用數(shù)字、大寫字母、小寫字母和特殊字符

3、盡量避免使用易猜測的密碼:

4、定期更換

passwd 修改用戶的密碼

格式:passwd [options] 用戶名

說明:普通用戶只能修改自身的密碼,管理員可以設(shè)定自身和所有普通用戶的密碼,在設(shè)定其他用戶密碼是直接使用passwd 用戶名即可

-l:鎖定用戶

-u:解鎖用戶

-n:設(shè)定用戶密碼的最少使用時間

-x:設(shè)定用戶密碼的最長使用時間

-w:設(shè)定用戶密碼的警告時間

-i:設(shè)定用戶密碼的非活動時間

/etc/passwd中的格式

用戶名:密碼占位符:UID:GID(基本組ID):用戶備注信息(多個以,隔開):家目錄:默認(rèn)shell

/etc/shadow中的格式

用戶名:密碼:最近的一次密碼修改時間距離1970-1-1的時間:最短使用期限:最長使用期限:警告時間:非活動時間(登陸就要修改密碼):賬號的過期期限:預(yù)留段

組的管理:

用戶組分為普通組和管理員組,在用戶看來,組可以分為兩類:基本組和額外組,額外組也叫附加組,組的管理和用戶的管理基本類似,這里就不再做累贅

?⑴、linux系統(tǒng)內(nèi)用戶分類:

? ? ?管理員:ID為0

? ? ?普通用戶:ID為1-655351、

? ? ? ? ? ? ? 系統(tǒng)用戶:ID為1-499,運行后臺服務(wù)的用戶,不允許登陸系統(tǒng)。? ? ? ? ? ? ? ? ? ? ? ??一般用戶:ID為500-60000

⑵、用戶管理基本命令

? ? 1、用戶增加命令之useradd

? ? ? ?useradd:直接增加用戶,家目錄和屬性等是默認(rèn)

? ? ? ? ? ? ? -u UID:指定用戶的UID

? ? ? ? ? ? ? -g GID:指定用戶的GID

? ? ? ? ? ? ? -G GID:指定用戶的附加組,可以指定多個,彼此之間用逗號隔開

? ? ? ? ? ? ? -c "信息":添加注釋信息

? ? ? ? ? ? ? -d 目錄:指定用戶的家目錄

? ? ? ? ? ? ? -s shell類型:指定用戶的shell

? ? ? ? ? ? ? -M:不給用戶創(chuàng)建家目錄

? ? ? ? ? ? ? -r:創(chuàng)建一個系統(tǒng)用戶,系統(tǒng)用戶不創(chuàng)建家目錄的。

? ? 2、 用戶刪除命令之userdel

? ? ? ?userdel:直接刪除用戶,默認(rèn)是不刪除用戶的家目錄的。

? ? ? ? ? ? ? -r:刪除用戶的時候也刪除其家目錄

? ? 3、用戶查看命令之id 、finger

? ? ? ??id:查看當(dāng)前用戶的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:指定家目錄,又移動此前家目錄的文件至新的家目錄內(nèi)

? ? ? ? ? ? ??-s:修改shell

? ? ? ? ? ? ? -l:修改用戶名?

? ? ? ? ? ? ? -L:鎖定用戶賬號

? ? ? ? ? ? ??-U:解鎖用戶賬號

? ? 5、用戶密碼管理命令passwd

? ? ? ? ?passwd USERNAME:修改用戶名密碼

? ? ? ? ? ??-l:鎖定賬號

? ? ? ? ? ? -U:解鎖賬戶

? ? ? ? ? ? -d:刪除用戶密碼

? ? ? ? ? ? -n:密碼最短使用時間

? ? ? ? ? ? -x:密碼最長使用時間

? ? ? ? ?更改用戶的密碼使用屬性:chage命令

? ? ? ? ? ? -d 最后一次修改時間

? ? ? ? ? ??-E 過期時間

? ? ? ? ? ??-I 非活動時間

? ? ? ? ? ??-m 最短使用期限

? ? ? ? ? ??-M 最長使用期限

? ? ? ? ? ??-w 警告時間

⑶、組管理基本命令

? ? 1、創(chuàng)建組:groupadd

? ? ? ? ? ?-g:指定GID

? ? ? ? ? ?-r:添加組為系統(tǒng)組

? ? 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:用戶的默認(rèn)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

三設(shè)置密碼,可用命令#passwd hive (root賬戶)也可

????#nano /etc/shadow

????????hive:!!(留待以后加密):15765:0:99999:7:::

???????????? 用戶? : 加密密碼:上次密碼修改時間:最短使用時間:最長使用期限:警告時間

#date+%s 今天到此刻為止經(jīng)過多少秒

然后除以每天的秒數(shù) 86400? 得到結(jié)果

passwd

????#openssl passwd

????#whatis passwd

????#man sslpasswd

????#openssl passwd -1 -salt '12345678'????????????????????????? 雜數(shù)-隨機(jī)數(shù)

????輸入密碼,復(fù)制黏貼

????#nano /etc/shadow

????將兩個!!換成黏貼的內(nèi)容?? 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可以用于查找的相關(guān)命令(本次重點在于說明find用法)

1、find:

是最為強(qiáng)大的查找命令,可以查找到你所想要找的所有文件

2、locate

同樣也是一個文件查找命令,locate 命令其實是"find-name"的另一種寫法,但是要比后者快得多,原因在于它不搜索具體目錄,而是搜索一個數(shù)據(jù)庫,這個數(shù)據(jù)庫中含有本地所有文件信 息。Linux系統(tǒng)自動創(chuàng)建這個數(shù)據(jù)庫,并且每天自動更新一次,所以使用locate命令查不到最新變動過的文件。

3、whereis

whereis命令只能用于程序名稱的搜索,而且只搜索二進(jìn)制文件(參數(shù)-b)、man說明文件(參數(shù)-m)和源代碼文件(參數(shù)-s)。如果省略參數(shù),則返回所有信息。

12[root@localhost ~]# whereis yumyum: /usr/bin/yum /etc/yum /etc/yum.conf /usr/share/man/man8/yum.8.gz

4、which

which命令的作用是,在PATH環(huán)境變量指定的路徑中,搜索某個系統(tǒng)命令的位置,并且返回第一個搜索結(jié)果。也就是說,使用which命令,就可以查看某個系統(tǒng)命令是否存在,以及執(zhí)行的到底是哪一個位置的可執(zhí)行文件(即命令)

12[root@localhost ~]# which yum/usr/bin/yum

5、type

type命令其實不能算查找命令,它是用來查找某個命令到底是由shell自帶的,還是由shell外部的獨立二進(jìn)制文件提供的。

12[root@localhost ~]# type yumyum is /usr/bin/yum

從以上各命令的功能可以看出,雖然在linux中有諸多可以用于查找的命令,但能夠基于文件(命令也是一個可執(zhí)行文件之一)層次查找的只有find與locate,兩者區(qū)別也比較明顯。

find與loacte的區(qū)別

find:

優(yōu)點:可實時查找,精確匹配

缺點:范圍遍歷,速度慢

locate:

優(yōu)點:查找速度快

缺點:依賴于數(shù)據(jù)庫、非實時查找


二、find 用法

格式:

find [options] [查找路徑] [查找條件] [處理動作]

? ?查找路徑:默認(rèn)為當(dāng)前目錄

? ?查找條件:默認(rèn)為查找指定路徑下的所有文件

? ?處理動作:默認(rèn)為顯示

1、條件查找(支持文件名通配)

-name "File_name"按名稱查找
12345678#查找/var/lib目錄下,名字為rpm的目錄或文件[root@localhost lib]# pwd/var/lib[root@localhost lib]# find -name "rpm"./rpm[root@localhost lib]# ls -ld rpm/drwxr-xr-x. 2 root root 4096 Feb 26 08:06 rpm/[root@localhost lib]#
-name "*"查找任意長度的任意字符
12345678#查找/var/lib目錄下以任意長度任意字符開頭以數(shù)字結(jié)尾的文件或目錄[root@localhost lib]# find -name "*5"./yum/history/2014-02-23/5./rpm/Sigmd5[root@localhost lib]# ls -l rpm/Sigmd5-rw-r--r--. 1 root root 77824 Feb 24 22:08 rpm/Sigmd5[root@localhost lib]# ls -ld yum/history/2014-02-23/5/drwx------ 2 root root 4096 Feb 23 19:47 yum/history/2014-02-23/5/
-name "?"包含任意單個定符
12345#查找/var/log下名字以s開頭后面跟一個任意字符結(jié)尾的文件或目錄[root@localhost log]# find -name "s?"./sa[root@localhost log]# ls -ld sadrwxr-xr-x. 2 root root 4096 Feb 26 00:00 sa
-name "[]"范圍內(nèi)的任意字符
12345678#查找/var/log/sa下名字以sa開頭后跟兩個數(shù)字的目錄或文件[root@localhost sa]# pwd/var/log/sa[root@localhost sa]# find -name "sa[0-9][0-9]"./sa23./sa25./sa26./sa24
-name "[^]"范圍外的任意字符
123456789101112131415#查找當(dāng)前目錄下名字不是小寫字母開頭的文件或目錄[root@localhost rpm]# pwd/var/lib/rpm[root@localhost rpm]# find -name "[^[:lower:]]*"../Filedigests./Sha1header./Provideversion./Dirnames./Packages./Obsoletename./Providename./Conflictname./Requirename......
-iname "File_name"查找時不區(qū)分字符大小寫
1234567891011121314151617[root@localhost log]# pwd/var/log[root@localhost log]# find -iname "[a-z]*"..../anaconda.syslog./prelink./prelink/prelink.log./dmesg.old./lastlog./anaconda.ifcfg.log./cron./dracut.log./messages./ConsoleKit./ConsoleKit/history./cups....
-user UserName根據(jù)屬主查找
1234567891011121314[root@localhost tmp]# pwd;ls -l/tmptotal 92-rwxr-xr-x? 1 root????? root????? 48568 Feb 25 12:31 cat-rw-rw-r--? 1 docker??? docker??????? 0 Feb 26 12:08 Device.c-rw-rw-r--? 1 docker??? docker??????? 0 Feb 26 12:08 device.h-rw-rw-r--? 1 docker??? docker??????? 0 Feb 26 12:08 device.txt-rwx------. 1 root????? root?????? 1195 Feb 23 19:26 ks-script-rxXCJd-rwxr-xr-x. 1 root????? root??????? 346 Feb 23 19:26 ks-script-rxXCJd.log-rw-r--r--? 1 openstack openstack?? 720 Feb 26 09:23 mounts.txt[root@localhost tmp]# find -user docker./device.h./Device.c./device.txt
-group GroupName根據(jù)屬組查找
1234567891011121314151617[root@localhost tmp]# ll-rw-r--r--? 1 openstack openstack?? 720 Feb 26 09:23 mounts.txtdrwxr-xr-x? 2 root????? root?????? 4096 Feb 25 18:39 repo-rw-r--r--? 1 root????? openstack?? 242 Feb 23 21:23 scprit.shdrwxr-xr-x? 2 root????? root?????? 4096 Feb 25 22:53 script-rw-r--r--? 1 root????? root??????? 106 Feb 24 11:46 tast.txtdrwxr-xr-x? 2 root????? root?????? 4096 Feb 25 12:32 test-rw-r--r--? 1 root????? openstack?? 145 Feb 24 16:49 test2.sh-rw-r--r--? 1 root????? openstack?? 125 Feb 24 16:56 test3.sh-rw-r--r--? 1 root????? openstack?? 721 Feb 24 17:04 test4.sh-rw-------. 1 root????? root????????? 0 Feb 23 19:12 yum.log[root@localhost tmp]# find -group openstack./scprit.sh./test4.sh./test2.sh./test3.sh./mounts.txt
-uid UID按照用戶的UID查找

123456789101112131415[root@localhost tmp]# lltotal 92-rwxr-xr-x? 1 root????? root????? 48568 Feb 25 12:31 cat-rw-rw-r--? 1?????? 502?????? 502???? 0 Feb 26 12:08 Device.c-rw-rw-r--? 1?????? 502?????? 502???? 0 Feb 26 12:08 device.h-rw-rw-r--? 1?????? 502?????? 502???? 0 Feb 26 12:08 device.txt-rwx------. 1 root????? root?????? 1195 Feb 23 19:26 ks-script-rxXCJd-rwxr-xr-x. 1 root????? root??????? 346 Feb 23 19:26 ks-script-rxXCJd.l[root@localhost tmp]# find -uid 502./device.h./Device.c./device.txt#當(dāng)有用戶被刪除了,那么他的文件屬組,將變成他之前的UID或GIU,#UID與GID就是在這種情況下用來定位的,以便后好的處理這些文件。#當(dāng)然存在的用戶也可使用UID或GID來查找.
-gid GID按照用戶的的GID查找
12345678910111213141516[root@localhost tmp]# ls -l-rw-r--r--? 1? 501? 501?? 720 Feb 26 09:23 mounts.txtdrwxr-xr-x? 2 root root? 4096 Feb 25 18:39 repo-rw-r--r--? 1 root? 501?? 242 Feb 23 21:23 scprit.shdrwxr-xr-x? 2 root root? 4096 Feb 25 22:53 script-rw-r--r--? 1 root root?? 106 Feb 24 11:46 tast.txtdrwxr-xr-x? 2 root root? 4096 Feb 25 12:32 test-rw-r--r--? 1 root? 501?? 145 Feb 24 16:49 test2.sh-rw-r--r--? 1 root? 501?? 125 Feb 24 16:56 test3.sh-rw-r--r--? 1 root? 501?? 721 Feb 24 17:04 test4.sh[root@localhost tmp]# find -gid 501./scprit.sh./test4.sh./test2.sh./test3.sh./mounts.txt
-nouser查無有效屬主的文件,即文件的屬主在/etc/passwd中不存在
12345678910111213141516171819202122232425[root@localhost include]# pwd/root/Download/httpd-2.2.26/include[root@localhost include]# lltotal 404-rw-r--r-- 1? 501 games? 1075 Jul 12? 2006 ap_compat.h-rw-r--r-- 1 root root?? 7371 Feb 24 20:29 ap_config_auto.h-rw-r--r-- 1? 501 games? 6850 Nov 14 00:51 ap_config_auto.h.in-rw-r--r-- 1? 501 games? 9472 Apr 15? 2011 ap_config.h-rw-r--r-- 1 root root?? 2704 Feb 24 21:58 ap_config_layout.h-rw-r--r-- 1? 501 games? 2784 Jul 12? 2006 ap_config_layout.h.in-rw-r--r-- 1? 501 games? 4167 May 10? 2007 ap_listen.h-rw-r--r-- 1? 501 games? 9803 Jun 28? 2013 ap_mmn.h[root@localhost include]# find . -nouser../http_request.h./util_xml.h./util_ldap.h./ap_mmn.h./ap_release.h./.indent.pro./ap_config.h./util_script.h./httpd.h./ap_listen.h./ap_mpm.h
-nogroup查無有效屬組的文件,即文件的屬組在/etc/group中不存在
1234567891011121314151617181920[root@localhost tmp]# pwd/tmp[root@localhost tmp]# lltotal 92-rwxr-xr-x? 1 root root 48568 Feb 25 12:31 cat-rw-rw-r--? 1? 502? 502???? 0 Feb 26 12:08 Device.c-rw-rw-r--? 1? 502? 502???? 0 Feb 26 12:08 device.h-rw-rw-r--? 1? 502? 502???? 0 Feb 26 12:08 device.txt-rwx------. 1 root root? 1195 Feb 23 19:26 ks-script-rxXCJd-rwxr-xr-x. 1 root root?? 346 Feb 23 19:26 ks-script-rxXCJd.log-rw-r--r--? 1? 501? 501?? 720 Feb 26 09:23 mounts.txt[root@localhost tmp]# find -nogroup./device.h./Device.c./device.txt./scprit.sh./test4.sh./test2.sh./test3.sh./mounts.txt

2、組合條件

-a與,同時滿足(and)
123456789101112[root@localhost tmp]# pwd/tmp[root@localhost tmp]# find -user root -nogroup./scprit.sh./test4.sh./test2.sh./test3.sh[root@localhost tmp]# find -user root -a -nogroup./scprit.sh./test4.sh./test2.sh./test3.sh
-o或(or)
1234567891011121314151617181920212223[root@localhost tmp]# pwd/tmp[root@localhost tmp]# lltotal 92-rwxr-xr-x? 1 root root 48568 Feb 25 12:31 cat-rw-rw-r--? 1? 502? 502???? 0 Feb 26 12:08 Device.c-rw-rw-r--? 1? 502? 502???? 0 Feb 26 12:08 device.h-rw-rw-r--? 1? 502? 502???? 0 Feb 26 12:08 device.txtdrwxr-xr-x? 2 root root? 4096 Feb 25 22:53 script-rw-r--r--? 1 root root?? 106 Feb 24 11:46 tast.txtdrwxr-xr-x? 2 root root? 4096 Feb 25 12:32 test-rw-r--r--? 1 root? 501?? 145 Feb 24 16:49 test2.sh-rw-r--r--? 1 root? 501?? 125 Feb 24 16:56 test3.sh-rw-r--r--? 1 root? 501?? 721 Feb 24 17:04 test4.sh[root@localhost tmp]# find -nouser -o -nogroup./device.h./Device.c./device.txt./scprit.sh./test4.sh./test2.sh./test3.sh./mounts.txt
-not, !非,取反
123456789101112131415161718192021222324[root@localhost tmp]# pwd/tmp[root@localhost tmp]# lltotal 92-rwxr-xr-x? 1 root root 48568 Feb 25 12:31 cat-rw-rw-r--? 1? 502? 502???? 0 Feb 26 12:08 Device.c-rw-rw-r--? 1? 502? 502???? 0 Feb 26 12:08 device.h-rw-rw-r--? 1? 502? 502???? 0 Feb 26 12:08 device.txt-rwx------. 1 root root? 1195 Feb 23 19:26 ks-script-rxXCJd-rwxr-xr-x. 1 root root?? 346 Feb 23 19:26 ks-script-rxXCJd.log-rw-r--r--? 1? 501? 501?? 720 Feb 26 09:23 mounts.txtdrwxr-xr-x? 2 root root? 4096 Feb 25 18:39 repo-rw-r--r--? 1 root? 501?? 242 Feb 23 21:23 scprit.shdrwxr-xr-x? 2 root root? 4096 Feb 25 22:53 script[root@localhost tmp]# find ! -user root./device.h./Device.c./device.txt./mounts.txt[root@localhost tmp]# find -not -user root./device.h./Device.c./device.txt./mounts.txt

3、文件類型查找(type)

-type f普通文件
123456789101112131415161718192021222324#查找文件類型為普通文件屬主不是root用戶或沒有屬組的文件[root@localhost tmp]# lltotal 92-rwxr-xr-x? 1 root root 48568 Feb 25 12:31 cat-rw-rw-r--? 1? 502? 502???? 0 Feb 26 12:08 Device.c-rw-rw-r--? 1? 502? 502???? 0 Feb 26 12:08 device.h-rw-rw-r--? 1? 502? 502???? 0 Feb 26 12:08 device.txt-rw-r--r--? 1? 501? 501?? 720 Feb 26 09:23 mounts.txtdrwxr-xr-x? 2 root root? 4096 Feb 25 18:39 repo-rw-r--r--? 1 root? 501?? 242 Feb 23 21:23 scprit.shdrwxr-xr-x? 2 root root? 4096 Feb 25 12:32 test-rw-r--r--? 1 root? 501?? 145 Feb 24 16:49 test2.sh-rw-r--r--? 1 root? 501?? 125 Feb 24 16:56 test3.sh-rw-r--r--? 1 root? 501?? 721 Feb 24 17:04 test4.sh-rw-------. 1 root root???? 0 Feb 23 19:12 yum.log[root@localhost tmp]# find -type f -not -user root -o -nogroup./device.h./Device.c./device.txt./scprit.sh./test4.sh./test2.sh./test3.sh./mounts.txt
-type f目錄
-type b塊設(shè)備
-type c
字符設(shè)備
-type l符號鏈接文件
-type p命名管道
-type s套接

其它文件類型查找方法與f用法相同。

4、文件大小查找(-size [+|-]#),Unit(c:字節(jié),k:KB,M:MB,G:GB

-size #指定大小(取值是不大于)
-size +#大于#
1234567#查找/etc/下類型為普通文件且大于2M[root@localhost tmp]# find? /etc/? -type f -size +2M/etc/selinux/targeted/modules/active/policy.kern/etc/selinux/targeted/policy/policy.24[root@localhost tmp]# ls -lh /etc/selinux/targeted/modules/active/policy.kern /etc/selinux/targeted/policy/policy.24-rw-r--r--. 1 root root 7.0M Feb 23 19:19 /etc/selinux/targeted/modules/active/policy.kern-rw-r--r--. 1 root root 7.0M Feb 23 19:19 /etc/selinux/targeted/policy/policy.24

-size: -#小于#

5、時間戳查找

以天為單位(time):

-atime [+|-]#

-mtime [+|-]#修改時間
-ctime [+|-]#改變時間
-atime [+|-]#訪問時間
123456789101112131415161718192021#查找在系統(tǒng)中2天內(nèi)訪問的文件[root@localhost tmp]# pwd/tmp[root@localhost tmp]# find -atime -2../device.h./Device.c./device.txt./script./script/b.sh./script/yum_install.sh./script/show_uid.sh./test4.sh./.ICE-unix./test2.sh./test3.sh./mounts.txt./cat./test./repo./repo/CentOS-Base.repo

以分鐘為單位(min)[+|-]#: ? ?

-amin [+|-]#訪問時間
-mmin [+|-]#修改時間
123456#查找在/tmp/script/5分鐘之內(nèi)修改過的文件[root@localhost script]# find /tmp/script/ -mmin -5 |ls -ltotal 12-rw-r--r-- 1 root root 630 Feb 26 16:37 b.sh-rw-r--r-- 1 root root 232 Feb 26 16:36 show_uid.sh-rw-r--r-- 1 root root 795 Feb 26 16:36 yum_install.sh
-cmin [+|-]#改變時間

6、權(quán)限查找

? ?-perm [+|-]MODE

-perm MODE精確匹配
1234567891011121314#查找類型為普通文件,權(quán)限為755的文件[root@localhost tmp]# pwd/tmp[root@localhost tmp]# ls -l [ktc]*-rwxr-xr-x? 1 root root 48568 Feb 25 12:31 cat-rwx------. 1 root root? 1195 Feb 23 19:26 ks-script-rxXCJd-rwxr-xr-x. 1 root root?? 346 Feb 23 19:26 ks-script-rxXCJd.log-rw-r--r--? 1 root root?? 106 Feb 24 11:46 tast.txt-rw-r--r--? 1 root? 501?? 145 Feb 24 16:49 test2.sh-rw-r--r--? 1 root? 501?? 125 Feb 24 16:56 test3.sh-rw-r--r--? 1 root? 501?? 721 Feb 24 17:04 test4.sh[root@localhost tmp]#? find . -type f? -perm? 755./ks-script-rxXCJd.log./cat
-perm +MODE任何一類用戶的任何一位權(quán)限匹配;常用于查找某類用戶的某特定權(quán)限是否存在
1234567891011121314[root@localhost etc]# find /etc/sysconfig/ -type f -perm +744 |ls -ltotal 1912drwxr-xr-x.? 3 root root?? 4096 Feb 23 19:15 abrtdrwxr-xr-x.? 4 root root?? 4096 Feb 23 19:21 acpi-rw-r--r--.? 1 root root???? 46 Feb 26 12:16 adjtime-rw-r--r--.? 1 root root?? 1512 Jan 12? 2010 aliases-rw-r--r--?? 1 root root? 12288 Feb 23 19:27 aliases.dbdrwxr-xr-x.? 2 root root?? 4096 Feb 23 19:19 alsadrwxr-xr-x.? 2 root root?? 4096 Feb 24 22:08 alternatives-rw-------.? 1 root root??? 541 Nov 23 20:43 anacrontab-rw-r--r--.? 1 root root??? 148 May 15? 2009 asound.conf-rw-r--r--.? 1 root root????? 1 Jan 30? 2012 at.deny-rw-r--r--?? 1 root root????? 0 Feb 26 14:01 A.txt.....


-MODE每類用戶的指定要檢查的權(quán)限位都匹配
12345678#在/etc/查找類型為普通文件,每一類用戶權(quán)限上都要匹配[root@localhost tmp]# find /etc/ppp/? -type f? -perm -154 -ls393983??? 4 -rwxr-xr-x?? 1 root???? root???????? 3196 Oct 10 22:48 /etc/ppp/ipv6-up393978??? 4 -rwxr-xr-x?? 1 root???? root????????? 386 Oct 10 22:48 /etc/ppp/ip-down393982??? 4 -rwxr-xr-x?? 1 root???? root???????? 1687 Oct 10 22:48 /etc/ppp/ipv6-down393981??? 8 -rwxr-xr-x?? 1 root???? root???????? 6517 Oct 10 22:48 /etc/ppp/ip-up.ipv6to4393980??? 4 -rwxr-xr-x?? 1 root???? root????????? 430 Oct 10 22:48 /etc/ppp/ip-up393979??? 4 -rwxr-xr-x?? 1 root???? root???????? 3262 Oct 10 22:48 /etc/ppp/ip-down.ipv6to4

7、處理動作:

-print打印在標(biāo)準(zhǔn)輸出上(默認(rèn));
-ls以長格式輸出各文件信息
-exec COMMAND {} \;對查找到的文件執(zhí)行指定的命令
123456789101112#查詢當(dāng)天修改過的文件[root@localhost tmp]# pwd/tmp[root@localhost tmp]#? find . -mtime -1 -type f -exec ls -l {} \;-rw-rw-r-- 1 502 502 0 Feb 26 12:08 ./device.h-rw-rw-r-- 1 502 502 0 Feb 26 12:08 ./Device.c-rw-rw-r-- 1 502 502 0 Feb 26 12:08 ./device.txt-rw-r--r-- 1 root root 629 Feb 25 18:32 ./script/b.sh-rw-r--r-- 1 root root 794 Feb 25 22:53 ./script/yum_install.sh-rw-r--r-- 1 root root 231 Feb 25 17:32 ./script/show_uid.sh-rw-r--r-- 1 501 501 720 Feb 26 09:23 ./mounts.txt-rw-r--r-- 1 root root 1926 Feb 25 18:37 ./repo/CentOS-Base.repo
-ok COMMAND {} \;交互式的-exec
12345678910111213#查找類型為普通文件,修改時間不大于兩天的文件是否顯示[root@localhost tmp]# find ./ -mtime -1 -type f -ok ls -l {} \;< ls ... ./device.h > ? Y-rw-rw-r-- 1 502 502 0 Feb 26 12:08 ./device.h< ls ... ./Device.c > ? Y-rw-rw-r-- 1 502 502 0 Feb 26 12:08 ./Device.c< ls ... ./device.txt > ? Y-rw-rw-r-- 1 502 502 0 Feb 26 12:08 ./device.txt< ls ... ./script/b.sh > ? Y-rw-r--r-- 1 root root 629 Feb 25 18:32 ./script/b.sh< ls ... ./script/yum_install.sh > ? Y-rw-r--r-- 1 root root 794 Feb 25 22:53 ./script/yum_install.sh< ls ... ./script/show_uid.sh > ? Y

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,結(jié)果一分鐘之前的所有文件就這么沒了~~~~悲劇了!

find |xargs COMMAND(查找大文件很有用)


====================================完===================================================





①、linux上日志系統(tǒng)類型:syslog和syslog-ng(開源版和商業(yè)版)
???? 1、syslog服務(wù):
?????? syslogd:系統(tǒng)日志,非內(nèi)核產(chǎn)生的信息
??? 配置文件:/etc/syslog.conf、
??? 配置以后利用service syslog reload(不用重啟服務(wù)讀取配置文件)
??? 日志服務(wù)器配置:etc/sysconfig/syslog內(nèi)SYSLOGD_OPTIONS="-m 0"改為SYSLOGD_OPTIONS="-r -m 0"即可作為日志服務(wù)器
???
??? klogd:內(nèi)核日志,專門負(fù)責(zé)內(nèi)核產(chǎn)生的信息
??? kernel啟動的時候是物理終端(/dev/console),產(chǎn)生的日志信息在/var/log/dmesg
??? dmesg命令:可以直接查看/var/log/dmesg;也可以使用cat /var/log/dmesg查看。
?????????sbin/init進(jìn)程信息屬于系統(tǒng)日志,放在以下位置:
????/var/log/messages:系統(tǒng)標(biāo)準(zhǔn)錯誤日志信息,非內(nèi)核產(chǎn)生的引導(dǎo)信息;各子系統(tǒng)產(chǎn)生的信息。
???? /var/log/maillog:郵件系統(tǒng)產(chǎn)生的日志信息
???? /var/log/secure:用戶登陸信息日志
???? 2、日志需要滾動:
????? message一段時間以后重新命名為message1..,然后新建一個message來存放日志。
?? logrotate:通過此命令對日志文件進(jìn)行切片
?? /etc/cron.daily/logrotate
??
?配置文件:/etc/syslog.conf
????
?配置文件定義格式為: facility.priority? action
?facility,可以理解為日志的來源或設(shè)備目前常用的facility有以下幾種:?

auth?????????#?認(rèn)證相關(guān)的????authpriv?????#?權(quán)限,授權(quán)相關(guān)的????cron?????????#?任務(wù)計劃相關(guān)的????daemon???????#?守護(hù)進(jìn)程相關(guān)的????kern?????????#?內(nèi)核相關(guān)的????lpr??????????#?打印相關(guān)的????mail?????????#?郵件相關(guān)的????mark?????????#?標(biāo)記相關(guān)的????news?????????#?新聞相關(guān)的????security?????#?安全相關(guān)的,與auth?類似?????syslog???????#?syslog自己的????user?????????#?用戶相關(guān)的????uucp?????????#?unix?to?unix?cp?相關(guān)的????local0?到?local7??#?用戶自定義使用????*????????????#?*表示所有的facility

?
?priority(log level)日志的級別,一般有以下幾種級別(從低到高)?
????

debug???????????#?程序或系統(tǒng)的調(diào)試信息????info????????????#?一般信息???notice??????????#?不影響正常功能,需要注意的消息????warning/warn????#?可能影響系統(tǒng)功能,需要提醒用戶的重要事件????err/error???????#?錯誤信息????crit????????????#?比較嚴(yán)重的????alert???????????#?必須馬上處理的????emerg/panic?????#?會導(dǎo)致系統(tǒng)不可用的????*???????????????#?表示所有的日志級別????none????????????#?跟*?相反,表示啥也沒有

?????
?action(動作)日志記錄的位置
??? 系統(tǒng)上的絕對路徑??? # 普通文件 如: /var/log/xxx
??? |?????????????????? # 管道? 通過管道送給其他的命令處理
??? 終端????????????? # 終端?? 如:/dev/console
??? @HOST?????????????? # 遠(yuǎn)程主機(jī) 如: @10.0.0.1?????
??? 用戶????????????? # 系統(tǒng)用戶 如: root
??? *?????????????????? # 登錄到系統(tǒng)上的所有用戶,一般emerg級別的日志是這樣定義的

?定義格式例子:
?

mail.info???/var/log/mail.log?#?表示將mail相關(guān)的,級別為info及info以上級別的信息記錄到/var/log/mail.log文件中???auth.=info??@10.0.0.1?????????#?表示將auth相關(guān)的,基本為info的信息記錄到10.0.0.1主機(jī)上去?????????????????????????????????#?前提是10.0.0.1要能接收其他主機(jī)發(fā)來的日志信息???user.!=error??????????????????#?表示記錄user相關(guān)的,不包括error級別的信息???user.!error???????????????????#?與user.error相反???*.info????????????????????????#?表示記錄所有的日志信息的info級別???mail.*????????????????????????#?表示記錄mail相關(guān)的所有級別的信息???*.*???????????????????????????#?你懂的.???cron.info;mail.info???????????#?多個日志來源可以用";"?隔開???cron,mail.info????????????????#?與cron.info;mail.info?是一個意思???mail.*;mail.!=info????????????#?表示記錄mail相關(guān)的所有級別的信息,但是不包括info級別的

?

本文出自 “Chris On the way”


轉(zhuǎn)載于:https://blog.51cto.com/zqslzr/1789980

總結(jié)

以上是生活随笔為你收集整理的linux根-文件系统-目录管理-文件管理-用户及权限详解-用户组-用户管理-权限管理...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。