modprobe命令\x0d\x0aLinux命令:modprobe 。\x0d\x0a功能說(shuō)明:自動(dòng)處理可載入模塊。\x0d\x0a語(yǔ)法:modprobe [-acdlrtvV][--help][模塊文件][符號(hào)名稱(chēng) = 符號(hào)值]。\x0d\x0a補(bǔ)充說(shuō)明:modprobe可載入指定的個(gè)別模塊,或是載入一組相依的模塊。modprobe會(huì)根據(jù)depmod所產(chǎn)生的相依關(guān)系,決定要載入哪些模塊。若在載入過(guò)程中發(fā)生錯(cuò)誤,在modprobe會(huì)卸載整組的模塊。\x0d\x0a\x0d\x0a內(nèi)容\x0d\x0a1、modprobe 命令是根據(jù)depmod -a的輸出/lib/modules/version/modules.dep來(lái)加載全部的所需要模塊。\x0d\x0a2、刪除模塊的命令是:modprobe -r filename。\x0d\x0a3、系統(tǒng)啟動(dòng)后,正常工作的模塊都在/proc/modules文件中列出。使用lsmod命令也可顯示相同內(nèi)容。\x0d\x0a4、在內(nèi)核中有一個(gè)“Automatic kernel module loading"功能被編譯到了內(nèi)核中。當(dāng)用戶(hù)嘗試打開(kāi)某類(lèi)型的文件時(shí),內(nèi)核會(huì)根據(jù)需要嘗試加載相應(yīng)的模塊。/etc/modules.conf或 /etc/modprobe.conf文件是一個(gè)自動(dòng)處理內(nèi)核模塊的控制文件。\x0d\x0amodprobe命令主要用于在Linux 2.6內(nèi)核中加載和刪除Linux內(nèi)核模塊。通過(guò)此命令用戶(hù)可以輕松地加載和刪除Linux內(nèi)核模塊,同時(shí)使用此命令加載Linux內(nèi)核模塊時(shí),Linux內(nèi)核會(huì)自動(dòng)解決內(nèi)核模塊之間的依賴(lài)關(guān)系,將相互依賴(lài)的模塊自動(dòng)加載,如下所示:\x0d\x0a1) 加載RAID1陣列級(jí)別模塊:\x0d\x0a[root@rhel5 boot]# modprobe raid1 \x0d\x0a\x0d\x0a2) 顯示已加載的RAID1陣列級(jí)別模塊:\x0d\x0a[root@rhel5 boot]# lsmod |grep raid1 raid1 25153 0 \x0d\x0a\x0d\x0a3) 刪除RAID1陣列級(jí)別模塊:\x0d\x0a[root@rhel5 boot]# modprobe -r raid1 \x0d\x0a\x0d\x0a4) 顯示RAID1陣列級(jí)別模塊:\x0d\x0a[root@rhel5 boot]# lsmod |grep raid1 \x0d\x0a\x0d\x0amodprobe命令在加載模塊時(shí)會(huì)自動(dòng)解決依賴(lài)的模塊。當(dāng)加載的模塊需依賴(lài)另一個(gè)模塊時(shí),系統(tǒng)會(huì)自動(dòng)將此模塊加載。而當(dāng)用戶(hù)使用insmod命令加載模塊時(shí),則不會(huì)自動(dòng)解決相對(duì)應(yīng)的依賴(lài)模塊。\x0d\x0amodprobe命令中的"-r"參數(shù)表示刪除指定模塊,"-c"參數(shù)表示顯示/etc/modprobe.conf配置文件的參數(shù),"-C"參數(shù)表示指定內(nèi)核配置文件,"-f"表示覆蓋,"-l"表示顯示模塊的絕對(duì)路徑。\x0d\x0a[root@rhel5 boot]# modprobe -l|grep raid /lib/modules/2.6.18-8.el5/kernel/drivers/md/raid0.ko /lib/modules/2.6.18-8.el5/kernel/drivers/md/raid456.ko /lib/modules/2.6.18-8.el5/kernel/drivers/md/raid1.ko /lib/modules/2.6.18-8.el5/kernel/drivers/md/raid10.ko /lib/modules/2.6.18-8.el5/kernel/drivers/scsi/megaraid.ko /lib/modules/2.6.18-8.el5/kernel/drivers/scsi/aacraid/aacraid.ko /lib/modules/2.6.18-8.el5/kernel/drivers/scsi/megaraid/megaraid_mbox.ko /lib/modules/2.6.18-8.el5/kernel/drivers/scsi/megaraid/megaraid_mm.ko /lib/modules/2.6.18-8.el5/kernel/drivers/scsi/megaraid/megaraid_sas.ko /lib/modules/2.6.18-8.el5/kernel/drivers/scsi/raid_class.ko \x0d\x0a\x0d\x0a以上命令表示顯示系統(tǒng)中所有的編譯模塊,并過(guò)濾包含有raid字符串的模塊。
成都創(chuàng)新互聯(lián)專(zhuān)業(yè)為企業(yè)提供孟村網(wǎng)站建設(shè)、孟村做網(wǎng)站、孟村網(wǎng)站設(shè)計(jì)、孟村網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、孟村企業(yè)網(wǎng)站模板建站服務(wù),十余年孟村做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
修改bashrc文件,這種方法更為安全,它可以把使用這些環(huán)境變量的權(quán)限控制到用戶(hù)級(jí)別,這里是針對(duì)某一特定的用戶(hù),如果你需要給某個(gè)用戶(hù)權(quán)限使用這些環(huán)境變量,你只需要修改其個(gè)人用戶(hù)主目錄下的 .bashrc文件就可以了。
在下面添加:
Export PATH="$PATH:/usr/lpp/mmfs/bin/mmgetstate"
一般這類(lèi)系統(tǒng)頭文件都在/usr/src/linux-2.6.16.46-0.12/include/linux/mm.h 系統(tǒng)里面,你可以用這個(gè)命令找 find / -name mm.h
是在windows下做開(kāi)發(fā)的,但是編譯環(huán)境還是在linux上。。大體的步驟如下:
1.首先在windows環(huán)境下編寫(xiě)工程(eclipse下編寫(xiě)android工程)
2.打開(kāi)linux開(kāi)發(fā)環(huán)境(tcl平臺(tái):\\10.120.90.207\longc\workspace\code\project\kernel\android\JB)
3.將運(yùn)行環(huán)境的腳本文件運(yùn)行./evnsetup:配置android運(yùn)行環(huán)境
/JB/build/
找到envsetup.sh
運(yùn)行.envsetup.sh(source
envsetup.h或./envsetup)
所有操作都在終端完成
4.將工程文件拷貝到指定目錄下(TCL平臺(tái)下的自帶程序在package\TCL_Apps目錄下)
5.刪除一些文件
保留/res,/src,AndroidManifest.xml三個(gè)文件
創(chuàng)建Android.mk(makefile文件,linux下用makefile文件來(lái)集成一些命令,運(yùn)行程序的指令和設(shè)置都在此處)Android.mk的編寫(xiě)
6.編譯
進(jìn)入工程文件目錄
輸入mm命令進(jìn)行編譯。
7.生成apk文件,編譯完成
1. 最常用的命令列表
下面列出十個(gè)在使用linux過(guò)程中使用頻率最高的命令。這里只作簡(jiǎn)單介紹,具體用法請(qǐng)參考后面內(nèi)容。
cat,顯示文件內(nèi)容。
cd,改變目錄路徑。
cp,復(fù)制文件。
find,查找文件。
grep,搜索、過(guò)濾信息。
ls,列出目錄信息。
more,分頁(yè)顯示。
rm,刪除文件或目錄。
vi,調(diào)用vi文本編輯器。
who,顯示登錄用戶(hù)信息。
2. chmod----改變一個(gè)或多個(gè)文件的存取模式(mode)
chmod [options] mode files
只能文件屬主或特權(quán)用戶(hù)才能使用該功能來(lái)改變文件存取模式。mode可以是數(shù)字形式或以who opcode permission形式表示。who是可選的,默認(rèn)是a(所有用戶(hù))。只能選擇一個(gè)opcode(操作碼)??芍付ǘ鄠€(gè)mode,以逗號(hào)分開(kāi)。
options:
-c,--changes
只輸出被改變文件的信息
-f,--silent,--quiet
當(dāng)chmod不能改變文件模式時(shí),不通知文件的用戶(hù)
--help
輸出幫助信息。
-R,--recursive
可遞歸遍歷子目錄,把修改應(yīng)到目錄下所有文件和子目錄
--reference=filename
參照f(shuō)ilename的權(quán)限來(lái)設(shè)置權(quán)限
-v,--verbose
無(wú)論修改是否成功,輸出每個(gè)文件的信息
--version
輸出版本信息。
who
u
用戶(hù)
g
組
o
其它
a
所有用戶(hù)(默認(rèn))
opcode
+
增加權(quán)限
-
刪除權(quán)限
=
重新分配權(quán)限
permission
r
讀
w
寫(xiě)
x
執(zhí)行
s
設(shè)置用戶(hù)(或組)的ID號(hào)
t
設(shè)置粘著位(sticky bit),防止文件或目錄被非屬主刪除
u
用戶(hù)的當(dāng)前權(quán)限
g
組的當(dāng)前權(quán)限
o
其他用戶(hù)的當(dāng)前權(quán)限
作為選擇,我們多數(shù)用三位八進(jìn)制數(shù)字的形式來(lái)表示權(quán)限,第一位指定屬主的權(quán)限,第二位指定組權(quán)限,第三位指定其他用戶(hù)的權(quán)限,每位通過(guò)4(讀)、2(寫(xiě))、1(執(zhí)行)三種數(shù)值的和來(lái)確定權(quán)限。如6(4+2)代表有讀寫(xiě)權(quán),7(4+2+1)有讀、寫(xiě)和執(zhí)行的權(quán)限。
還可設(shè)置第四位,它位于三位權(quán)限序列的前面,第四位數(shù)字取值是4,2,1,代表意思如下:
4,執(zhí)行時(shí)設(shè)置用戶(hù)ID,用于授權(quán)給基于文件屬主的進(jìn)程,而不是給創(chuàng)建此進(jìn)程的用戶(hù)。
2,執(zhí)行時(shí)設(shè)置用戶(hù)組ID,用于授權(quán)給基于文件所在組的進(jìn)程,而不是基于創(chuàng)建此進(jìn)程的用戶(hù)。
1,設(shè)置粘著位。
實(shí)例:
$ chmod u+x file 給file的屬主增加執(zhí)行權(quán)限
$ chmod 751 file 給file的屬主分配讀、寫(xiě)、執(zhí)行(7)的權(quán)限,給file的所在組分配讀、執(zhí)行(5)的權(quán)限,給其他用戶(hù)分配執(zhí)行(1)的權(quán)限
$ chmod u=rwx,g=rx,o=x file 上例的另一種形式
$ chmod =r file 為所有用戶(hù)分配讀權(quán)限
$ chmod 444 file 同上例
$ chmod a-wx,a+r 同上例
$ chmod -R u+r directory 遞歸地給directory目錄下所有文件和子目錄的屬主分配讀的權(quán)限
$ chmod 4755 設(shè)置用ID,給屬主分配讀、寫(xiě)和執(zhí)行權(quán)限,給組和其他用戶(hù)分配讀、執(zhí)行的權(quán)限。
3. chgrp----修改文件或目錄的所屬組
chgrp [options] newgroup files/directorys
組名可以用組的ID號(hào),也可用/etc/group中的組名。只有文件的屬主或特權(quán)用戶(hù)(root)才可改變它的組。
options:
-c,--changes
只輸出被改變文件的信息
-f,--silent,--quiet
當(dāng)不能改變文件組屬性時(shí),不通知文件的用戶(hù)
--help
輸出幫助信息。
-R,--recursive
可遞歸遍歷子目錄,把修改應(yīng)到目錄下所有文件和子目錄
--reference=filename
參照f(shuō)ilename的組信息來(lái)設(shè)置當(dāng)前文件的組
-v,--verbose
輸出詳細(xì)信息
--version
輸出版本信息。
實(shí)例:
$ chgrp root test 把test的所屬組更改root組
$ chgrp -R mysql test 遞歸地把test目錄及該目錄下所有文件和子目錄的組屬性設(shè)置成mysql
$ chgrp root * 把當(dāng)前目錄中所有文件的組屬性設(shè)置成root
4. chown----設(shè)置一個(gè)或多個(gè)文件或目錄的屬主身份
chown [options] newowner files/directorys
新的屬主可以是用戶(hù)的ID號(hào),也可以是/etc/passwd里的登錄名。chown也可接受這樣的形式:newowner:newgroup或newowner.newgroup。同時(shí)改變所屬組的屬性。如果句點(diǎn)和冒號(hào)后沒(méi)有組名,則組改變?yōu)樾聦僦鞯慕M。只有文件或目錄的當(dāng)前屬主才有權(quán)改變它的屬性。
options:
-c,--changes
只輸出被改變文件的信息
--dereference
跟蹤符號(hào)鏈接
-h,--no-dereference
改變每一個(gè)符號(hào)鏈的屬主身份,而不是被引用文件的屬主身份
-f,--silent,--quiet
當(dāng)不能改變文件屬主屬性時(shí),不通知文件的用戶(hù)
--help
輸出幫助信息。
-R,--recursive
可遞歸遍歷子目錄,把修改應(yīng)到目錄下所有文件和子目錄
--reference=filename
把屬主改變成filename文件的屬主
-v,--verbose
輸出詳細(xì)信息
--version
輸出版本信息。
實(shí)例:
$ chown root test 把test文件的屬主改進(jìn)root
$ chown -R root test_directory 遞歸地把test_directory目錄下的所有文件屬主改成root
$ chown --dereference root test_link 把test_link鏈接的原文件屬主改成root,鏈接文件屬主不變
$ chown --no-dereference root test_link 把test_link的鏈接文件屬主改成root,原文件屬主不變
5. date----顯示、修改系統(tǒng)時(shí)間
date [options][+format][date]
$ date -s 06/09/2004 修改日期(按月日年格式)
$ date -s 13:56:00 修改時(shí)間(按時(shí)分秒格式)
$ date -r test 顯示test文件最后一次的修改時(shí)間
$ date +'%Y-%m-%d' 以yyyy-mm-dd格式顯示日期,其它格式請(qǐng)參考幫助
$ clock -r 查詢(xún)BIOS時(shí)間
$ clock -w 把修改后的時(shí)間寫(xiě)回BIOS
6. df-----顯示已安裝文件系統(tǒng)的磁盤(pán)容量狀態(tài)
df [options][name]
$ df -h 以友好的格式輸出所有已安裝文件系統(tǒng)的磁盤(pán)容量狀態(tài)
$ df -m /home 以M為單位輸出home目錄的磁盤(pán)容量狀態(tài)
$ df -k 以K為單位輸出所有已安裝文件系統(tǒng)的磁盤(pán)容量狀態(tài)
$ df -i 報(bào)告空閑的、用過(guò)的或部份用過(guò)的(百份比)索引節(jié)點(diǎn)
$ df -t ext3 僅顯示文件類(lèi)型為ext3的文件系統(tǒng)的磁盤(pán)狀態(tài)
$ df -x ext3 僅顯示文件類(lèi)型不為ext3的文件系統(tǒng)的磁盤(pán)狀態(tài)
$ df -T 除顯示文件系統(tǒng)磁盤(pán)容量大小外還顯示文件系統(tǒng)類(lèi)型
$ df -l 僅顯示本地文件系統(tǒng)。
7. fdisk----分區(qū)表查詢(xún)工具
fdisk [options][driver]
$ fdisk -l 列出所有分區(qū)信息
8. hdparm----硬盤(pán)管理
hdparm [options][driver]
$ hdparm -d /dev/hda 顯示硬盤(pán)的DMA模式是不打開(kāi),1代表on
$ hdparm -tT /dev/hda 測(cè)試硬盤(pán)的寫(xiě)性能
$ hdparm -d1 /dev/hda 開(kāi)啟dma功能
$ hdparm -d1 -X68 -c3 -m16 /dev/hda
選項(xiàng)說(shuō)明:
-c3:把硬盤(pán)的IO模式從16位轉(zhuǎn)成32位。
-m16:改變硬盤(pán)的多路扇區(qū)的讀功能,-m16使硬盤(pán)在一次I/O中斷中讀入16個(gè)扇區(qū)的數(shù)據(jù)。
-d1:打開(kāi)DMA模式。
-X68:支持ATA66的數(shù)據(jù)傳輸模式。下面是其它模式的設(shè)置對(duì)照
ATA33.......參數(shù)是-X66
ATA66.......參數(shù)是-X68
ATA100......參數(shù)是-X69
$ hdparm -k1 /dev/hda 保存設(shè)置
9. ln-----為文件建立別名
ln [options] sourcename [destname]
ln [options] sourcenames destdirectory
$ ln -s file1 file2 建立一個(gè)到file1的符號(hào)鏈接file2,刪除file2不會(huì)影響file1
$ ln -s -f file1 file2 建立一個(gè)到file1的符號(hào)鏈接file2,并不提示是否重寫(xiě)
10. shutdown-----終止所有進(jìn)程序,關(guān)閉計(jì)算機(jī)。
shutdown [options] when [message]
用when可以是指定的關(guān)機(jī)時(shí)間(以hh:mm格式)、關(guān)機(jī)前要等待的時(shí)間(以+m格式)、或者now。message指定一條廣播消息通知所有用戶(hù)退出系統(tǒng)。showdown給所有進(jìn)程發(fā)送SIGTERM信號(hào),并調(diào)用init 1執(zhí)行實(shí)際的關(guān)機(jī)動(dòng)作。
$ shutdown -c 取消正在進(jìn)行的關(guān)閉操作
$ shutdown -f 快速重新啟動(dòng),在重新啟動(dòng)時(shí)禁止對(duì)fsck的常規(guī)調(diào)用
$ shutdown -h 當(dāng)關(guān)閉完成時(shí)停止系統(tǒng)
$ shutdown -k 輸出警告信息,但禁止實(shí)際的關(guān)閉
$ shutdown -n 不調(diào)用init就執(zhí)行關(guān)閉
$ shutdown -r 當(dāng)關(guān)閉完成時(shí)重新啟動(dòng)系統(tǒng)
$ shutdown -t 5 在殺死進(jìn)程和改變運(yùn)行級(jí)別之間確保延時(shí)5秒
11. sleep-----執(zhí)行另一個(gè)命令之前等待的時(shí)間
sleep amount [units]
units默認(rèn)為秒(s),m表示分鐘,h表示小時(shí),d表示天。
12. swapon/swapoff-----啟動(dòng)和關(guān)閉交換分區(qū)
swapon/swapoff [options] device
$ swapon -s 顯示交換分區(qū)信息
$ swapon -a 激活所有在/etc/fstab中有sw標(biāo)記的分區(qū)
$ swapon -p 1 設(shè)置交換分區(qū)優(yōu)先級(jí)為1
13. tune2fs-----調(diào)整Linux第二擴(kuò)展文件系統(tǒng)的參數(shù)
tune2fs [options] device
$ tune2fs -l /dev/hda1 顯示hda1分區(qū)的超級(jí)塊內(nèi)容
$ tune2fs -c 100 /dev/hda1 設(shè)置hda1分區(qū)每mount100次就進(jìn)行磁盤(pán)檢查
14. uniq----過(guò)濾、統(tǒng)計(jì)、刪除重復(fù)行
uniq [options][file1 [files]]
$ uniq -c file file中的重復(fù)行輸出一次,并在每行前顯示重復(fù)次數(shù)
$ uniq -d file file中的重復(fù)行輸出一次,但不輸出唯一的行
$ uniq -u file 只輸出file中的唯一行
$ uniq file1 file2 把file1中的重復(fù)的相鄰行刪除,并把每行的一個(gè)拷貝送到file2
15. wc-----輸出每個(gè)文件中的字符數(shù)、單詞數(shù)及行數(shù)。
wc [options][files]
$ wc -l file 輸出file中的行數(shù)
$ wc -w file 輸出file中的單詞數(shù)
$ wc -c file 輸出file中的字符數(shù)
有三種不同類(lèi)型的用戶(hù)可對(duì)文件或目錄進(jìn)行訪問(wèn):文件所有者,同組用戶(hù)、其他用戶(hù)。所有者一般是文件的創(chuàng)建者。所有者可以允許同組用戶(hù)有權(quán)訪問(wèn)文件,還可以將文件的訪問(wèn)權(quán)限賦予系統(tǒng)中的其他用戶(hù)。在這種情況下,系統(tǒng)中每一位用戶(hù)都能訪問(wèn)該用戶(hù)擁有的文件或目錄。
每一文件或目錄的訪問(wèn)權(quán)限都有三組,每組用三位表示,分別為文件屬主的讀、寫(xiě)和執(zhí)行權(quán)限;與屬主同組的用戶(hù)的讀、寫(xiě)和執(zhí)行權(quán)限;系統(tǒng)中其他用戶(hù)的讀、寫(xiě)和執(zhí)行權(quán)限。當(dāng)用ls -l命令顯示文件或目錄的詳細(xì)信息時(shí),最左邊的一列為文件的訪問(wèn)權(quán)限。例如:
$ ls?-l sobsrc.?tgz
-rw-r--r--?1?root root?483997?Ju1?l5?17:3l?sobsrc.?tgz
橫線代表空許可。r代表只讀,w代表寫(xiě),x代表可執(zhí)行。注意這里共有10個(gè)位置。第一個(gè)字符指定了文件類(lèi)型。在通常意義上,一個(gè)目錄也是一個(gè)文件。如果第一個(gè)字符是橫線,表示是一個(gè)非目錄的文件。如果是d,表示是一個(gè)目錄。例如:
– rw- r– r–
普通文件 文件主 組用戶(hù) 其他用戶(hù)
是文件sobsrc.tgz 的訪問(wèn)權(quán)限,表示sobsrc.tgz是一個(gè)普通文件;sobsrc.tgz的屬主有讀寫(xiě)權(quán)限;與sobsrc.tgz屬主同組的用戶(hù)只有讀權(quán)限;其他用戶(hù)也只有讀權(quán)限。
確定了一個(gè)文件的訪問(wèn)權(quán)限后,用戶(hù)可以利用Linux系統(tǒng)提供的chmod命令來(lái)重新設(shè)定不同的訪問(wèn)權(quán)限。也可以利用chown命令來(lái)更改某個(gè)文件或目錄的所有者。利用chgrp命令來(lái)更改某個(gè)文件或目錄的用戶(hù)組。
下面分別對(duì)這些命令加以介紹。
chmod 命令
chmod命令是非常重要的,用于改變文件或目錄的訪問(wèn)權(quán)限。用戶(hù)用它控制文件或目錄的訪問(wèn)權(quán)限。
以主文件夾下的一個(gè)名為“cc”的文件夾為例。下面一步一步介紹如何修改權(quán)限:
1.打開(kāi)終端。輸入”su”(沒(méi)有引號(hào))
2.接下來(lái)會(huì)要你輸入密碼,輸入你的root密碼。
3.假設(shè)我的文件夾在主目錄里,地址為? /var/home/dengchao/cc? 。假設(shè)我要修改文件權(quán)限為777,則在終端輸入? chmod? 777 /var/home/userid/cc 文件夾的權(quán)限就變?yōu)榱?77。
如果是修改文件夾及子文件夾權(quán)限可以用? chmod -R 777 /var/home/userid/cc
具體的權(quán)限(例如777的含意等)在下面解釋下:
1.777有3位,最高位7是設(shè)置文件所有者訪問(wèn)權(quán)限,第二位是設(shè)置群組訪問(wèn)權(quán)限,最低位是設(shè)置其他人訪問(wèn)權(quán)限。
其中每一位的權(quán)限用數(shù)字來(lái)表示。具體有這些權(quán)限:
r(Read,讀取,權(quán)限值為4):對(duì)文件而言,具有讀取文件內(nèi)容的權(quán)限;對(duì)目錄來(lái)說(shuō),具有瀏覽目 錄的權(quán)限。
w(Write,寫(xiě)入,權(quán)限值為2):對(duì)文件而言,具有新增、修改文件內(nèi)容的權(quán)限;對(duì)目錄來(lái)說(shuō),具有刪除、移動(dòng)目錄內(nèi)文件的權(quán)限。
x(eXecute,執(zhí)行,權(quán)限值為1):對(duì)文件而言,具有執(zhí)行文件的權(quán)限;對(duì)目錄了來(lái)說(shuō)該用戶(hù)具有進(jìn)入目錄的權(quán)限。
2. 首先我們來(lái)看如何確定單獨(dú)一位上的權(quán)限數(shù)值,例如最高位表示文件所有者權(quán)限數(shù)值,當(dāng)數(shù)字為7時(shí),7用“rwx”表示 –{4(r)+2(w)+1(x)=7}–又如果數(shù)值為6,則用“rw-”表示–{4(r)+2(w)+0(x)=6}–,”-”表示不具備權(quán)限,這里表 示不具備“執(zhí)行”權(quán)限。
假如我們?cè)O(shè)定其他用戶(hù)的訪問(wèn)權(quán)限為 “r–”,則數(shù)值為4+0+0=4
一開(kāi)始許多初學(xué)者會(huì)被搞糊涂,其實(shí)很簡(jiǎn)單,我們將rwx看成二進(jìn)制數(shù),如果有則用1表示,沒(méi)有則有0表示,那么rwx則可以表示成為:111
而二進(jìn)制的111就是7。
3.我們?cè)賮?lái)看下怎么確定3個(gè)數(shù)位上的權(quán)限。假如我們要給一個(gè)文件設(shè)置權(quán)限,具體權(quán)限如下:
文件所有者有“讀”、“寫(xiě)”、“執(zhí)行”權(quán)限,群組用戶(hù)有“讀”權(quán)限,其他用戶(hù)有“讀”權(quán)限,則對(duì)應(yīng)的字母表示為”rwx r– r–“,對(duì)應(yīng)的數(shù)字為744
一般都是最高位表示文件所有者權(quán)限值,第二位表示群組用戶(hù)權(quán)限,最低位表示其他用戶(hù)權(quán)限。
下面來(lái)舉些例子熟悉下。
權(quán)限 ? ?數(shù)值 ?
rwx rw- r– ? ?764 ?
rw- r– r– ? ?644 ?
rw- rw- r– ? ?664 ?
該命令有兩種用法。一種是包含字母和操作符表達(dá)式的文字設(shè)定法;另一種是包含數(shù)字的數(shù)字設(shè)定法。
1. 文字設(shè)定法
chmod [who] [+ | – | =] [mode] 文件名?
命令中各選項(xiàng)的含義為:
操作對(duì)象who可是下述字母中的任一個(gè)或者它們的組合:
u 表示“用戶(hù)(user)”,即文件或目錄的所有者。
g 表示“同組(group)用戶(hù)”,即與文件屬主有相同組ID的所有用戶(hù)。
o 表示“其他(others)用戶(hù)”。
a 表示“所有(all)用戶(hù)”。它是系統(tǒng)默認(rèn)值。
操作符號(hào)可以是:
+ 添加某個(gè)權(quán)限。
– 取消某個(gè)權(quán)限。
= 賦予給定權(quán)限并取消其他所有權(quán)限(如果有的話(huà))。
設(shè)置mode所表示的權(quán)限可用下述字母的任意組合:
r 可讀。
w 可寫(xiě)。
x 可執(zhí)行。
X 只有目標(biāo)文件對(duì)某些用戶(hù)是可執(zhí)行的或該目標(biāo)文件是目錄時(shí)才追加x 屬性。
s 在文件執(zhí)行時(shí)把進(jìn)程的屬主或組ID置為該文件的文件屬主。方式“u+s”設(shè)置文件的用戶(hù)ID位,“g+s”設(shè)置組ID位。
t 保存程序的文本到交換設(shè)備上。
u 與文件屬主擁有一樣的權(quán)限。
g 與和文件屬主同組的用戶(hù)擁有一樣的權(quán)限。
o 與其他用戶(hù)擁有一樣的權(quán)限。
-c?:?若該檔案權(quán)限確實(shí)已經(jīng)更改,才顯示其更改動(dòng)作
-f?:?若該檔案權(quán)限無(wú)法被更改也不要顯示錯(cuò)誤訊息
-v?:?顯示權(quán)限變更的詳細(xì)資料
-R?:?對(duì)目前目錄下的所有檔案與子目錄進(jìn)行相同的權(quán)限變更(即以遞回的方式逐個(gè)變更)
–help?:?顯示輔助說(shuō)明
–version?:?顯示版本
文件名:以空格分開(kāi)的要改變權(quán)限的文件列表,支持通配符。在一個(gè)命令行中可給出多個(gè)權(quán)限方式,其間用逗號(hào)隔開(kāi)。例如:chmod g+r,o+r example使同組和其他用戶(hù)對(duì)文件example 有讀權(quán)限。
例1:
$ chmod a+x sort
即設(shè)定文件sort的屬性為:
文件屬主(u) 增加執(zhí)行權(quán)限
與文件屬主同組用戶(hù)(g) 增加執(zhí)行權(quán)限
其他用戶(hù)(o) 增加執(zhí)行權(quán)限
例2:
$ chmod ug+w,o-x text
即設(shè)定文件text的屬性為:
文件屬主(u) 增加寫(xiě)權(quán)限
與文件屬主同組用戶(hù)(g) 增加寫(xiě)權(quán)限
其他用戶(hù)(o) 刪除執(zhí)行權(quán)限
例3:
$ chmod u+s a.out
假設(shè)執(zhí)行chmod后a.out的權(quán)限為(可以用ls – l a.out命令來(lái)看):
–rws--x--x?1?inin users?7192?Nov?4?14:22?a.out
并且這個(gè)執(zhí)行文件要用到一個(gè)文本文件shiyan1.c,其文件存取權(quán)限為“–rw——-”,即該文件只有其屬主具有讀寫(xiě)權(quán)限。
當(dāng)其他用戶(hù)執(zhí)行a.out這個(gè)程序時(shí),他的身份因這個(gè)程序暫時(shí)變成inin(由于chmod命令中使用了s選項(xiàng)),所以他就能夠讀取shiyan1.c這個(gè)文件(雖然這個(gè)文件被設(shè)定為其他人不具備任何權(quán)限),這就是s的功能。
因此,在整個(gè)系統(tǒng)中特別是root本身,最好不要過(guò)多的設(shè)置這種類(lèi)型的文件(除非必要)這樣可以保障系統(tǒng)的安全,避免因?yàn)槟承┏绦虻腷ug而使系統(tǒng)遭到入侵。
例4:
$ chmod a–x mm.txt
$ chmod?–x mm.txt
$ chmod ugo–x mm.txt
以上這三個(gè)命令都是將文件mm.txt的執(zhí)行權(quán)限刪除,它設(shè)定的對(duì)象為所有使用者。
2. 數(shù)字設(shè)定法
我們必須首先了解用數(shù)字表示的屬性的含義:0表示沒(méi)有權(quán)限,1表示可執(zhí)行權(quán)限,2表示可寫(xiě)權(quán)限,4表示可讀權(quán)限,然后將其相加。所以數(shù)字屬性的格式應(yīng)為3個(gè)從0到7的八進(jìn)制數(shù),其順序是(u)(g)(o)。
例如,如果想讓某個(gè)文件的屬主有“讀/寫(xiě)”二種權(quán)限,需要把4(可讀)+2(可寫(xiě))=6(讀/寫(xiě))。
數(shù)字設(shè)定法的一般形式為:chmod [mode] 文件名?
例1:
$ chmod?644?mm.txt
$ ls?–l
即設(shè)定文件mm.txt的屬性為:
-rw-r--r--?1?inin users?1155?Nov?5?11:22?mm.txt
文件屬主(u)inin 擁有讀、寫(xiě)權(quán)限
與文件屬主同組人用戶(hù)(g) 擁有讀權(quán)限
其他人(o) 擁有讀權(quán)限
例2:
$ chmod?750?wch.txt
$ ls?–l
-rwxr-x---?1?inin users?44137?Nov?12?9:22?wchtxt
即設(shè)定wchtxt這個(gè)文件的屬性為:
文件主本人(u)inin 可讀/可寫(xiě)/可執(zhí)行權(quán)
與文件主同組人(g) 可讀/可執(zhí)行權(quán)
其他人(o) 沒(méi)有任何權(quán)限
chgrp命令
功能:改變文件或目錄所屬的組。
語(yǔ)法:chgrp?[選項(xiàng)] group filename?
參數(shù):
-c或–changes 效果類(lèi)似”-v”參數(shù),但僅回報(bào)更改的部分。
-f或–quiet或–silent 不顯示錯(cuò)誤信息。
-h或–no-dereference 只對(duì)符號(hào)連接的文件作修改,而不更動(dòng)其他任何相關(guān)文件。
-R或–recursive 遞歸處理,將指定目錄下的所有文件及子目錄一并處理。
-v或–verbose 顯示指令執(zhí)行過(guò)程。
–help 在線幫助。
–reference=lt;參考文件或目錄gt; 把指定文件或目錄的所屬群組全部設(shè)成和參考文件或目錄的所屬群組相同。
–version 顯示版本信息。
該命令改變指定指定文件所屬的用戶(hù)組。其中g(shù)roup可以是用戶(hù)組ID,也可以是/etc/group文件中用戶(hù)組的組名。文件名是以空格分開(kāi)的要改變屬組的文件列表,支持通配符。如果用戶(hù)不是該文件的屬主或超級(jí)用戶(hù),則不能改變?cè)撐募慕M。
該命令的各選項(xiàng)含義為:
– R 遞歸式地改變指定目錄及其下的所有子目錄和文件的屬組。
例1:
$?chgrp?-?R book?/opt/local?/book
改變/opt/local /book/及其子目錄下的所有文件的屬組為book。
chown?命令
功能:更改某個(gè)文件或目錄的屬主和屬組。這個(gè)命令也很常用。例如root用戶(hù)把自己的一個(gè)文件拷貝給用戶(hù)yusi,為了讓用戶(hù)yusi能夠存取這個(gè)文件,root用戶(hù)應(yīng)該把這個(gè)文件的屬主設(shè)為yusi,否則,用戶(hù)yusi無(wú)法存取這個(gè)文件。
語(yǔ)法:chown?[選項(xiàng)] 用戶(hù)或組 文件
說(shuō)明:chown將指定文件的擁有者改為指定的用戶(hù)或組。用戶(hù)可以是用戶(hù)名或用戶(hù)ID。組可以是組名或組ID。文件是以空格分開(kāi)的要改變權(quán)限的文件列表,支持通配符。
參數(shù)說(shuō)明:
user : 新的檔案擁有者的使用者 ID
group : 新的檔案擁有者的使用者群體(group)
-c : 若該檔案擁有者確實(shí)已經(jīng)更改,才顯示其更改動(dòng)作
-f : 若該檔案擁有者無(wú)法被更改也不要顯示錯(cuò)誤訊息
-h : 只對(duì)于連結(jié)(link)進(jìn)行變更,而非該 link 真正指向的檔案
-v : 顯示擁有者變更的詳細(xì)資料
-R : 對(duì)目前目錄下的所有檔案與子目錄進(jìn)行相同的擁有者變更(即以遞回的方式逐個(gè)變更)
–help : 顯示輔助說(shuō)明
–version : 顯示版本
例1:把文件yusi123.com的所有者改為yusi。
$?chown?yusi yusi123.com
例2:把目錄/demo及其下的所有文件和子目錄的屬主改成yusi,屬組改成users。
$ chown?-?R yusi.users?/demo
例如:chown qq /home/qq ?(把home目錄下的qq目錄的擁有者改為qq用戶(hù))
例如:chown -R qq /home/qq ?(把home目錄下的qq目錄下的所有子文件的擁有者改為qq用戶(hù))