Linux幫助信息獲取用戶文件權限管理(下)

 

Linux文件權限和屬性的修改

文件權限的修改:

-rwxrwxrwx

 u   g  o

①其中r=4 w=2 x=1 可根據數值來修改權限

[root@server55 ~]#chmod 755 文件名  此時修改後的權限爲 –rwxr-xr-x

②使用 = 來規定 u g o user group other)的權限

[root@server55 ~]#chmod o= --- 文件名  此時其他權限不變 o沒有任何權限

③使用 + - 來添加和刪減權限

[root@server55 ~]#chmod u+x,go-w 文件名  u添加xgo刪去w,;注意其間用逗號連接

-R遞歸修改

--reference=文件a  文件b   b參照a的權限修改

 

文件屬主和屬組的修改:

[root@server55 ~]#chown 選項 屬主:屬組 文件名

-R 遞歸修改

--reference=文件a  文件b   b參照a的屬住屬組修改

[root@server55 ~]#chown –R redhat:redhat a a目錄的屬組屬主全都更改爲redhat

 

[root@server55 ~]#chgrp 選項 屬組 文件名 

-R 遞歸修改

--reference=文件a  文件b   b參照a的屬住屬組修改

BASH功能的介紹

1.       命令行編輯

ctrl+a 光標跳到命令行的前端

ctrl+e 光標跳到命令行的尾部

ctrl+u 刪除光標前內容

ctrl+k 刪除光標後內容

2.       文件名通配

多與ls命令配合使用

*:爲任意長度通配符;

?:爲單字通配符;

[][]括號內內容單個匹配;eg:以abc任意一個字母開頭的文件名:[abc]*

[:alpha:]指代任意字母

[:digit:]指代任意數字

[:lower:]指代小寫字母

[:upper:]指代大寫字母

[:space:]指代空字符

eg:以字母開頭的緊接着是數字的文件

[[:alpha:]][[:digit:]]*

eg:顯示/etc目錄下的字母數字開頭的文件

[root@server55 ~]# ls /etc/[[:alpha:]][[:digit:]]*

/etc/a2ps.cfg  /etc/a2ps-site.cfg

 

3.       命令行和路徑補全功能

輸入命令時補全鍵位TAB鍵,若無法補全 連續按兩次TAB,顯示與當前字符匹配的所有命令。

輸入文件路徑時按TAB會補全與之先匹配的路徑。

4.命令行展開

~:對應用戶的家目錄。

{}egmkdir –pv {x,y}_{1,2,3} 則在當前目錄下生成x1,x2,x3,y1,y2,y3六個文件。

5.命令行擴展

$() ` `反引號

[root@server55 ~]# touch a-`date +"%y-%m-%d-%H-%M-%S"`

[root@server55 ~]# ls

a  a-11-07-19-10-54-45  Desktop  install.log  install.log.syslog

其中 ` ` 爲命令替換符,起作用是將 ` …` 中的指令執行,並返回結果

 

腳本的簡單介紹

腳本script:就是命令的堆砌。

變量引用:

[root@server55 ~]#ab=myfile  定義一個變量

[root@server55 ~]#touch “$sb” $變量 返回變量的值

生成文件名爲myfile的文件

 

$變量:返回變量的值

'  ' :強引用,單引號內不會發生變量替換;

"  ":弱引用,雙引號內會發生變量替換。

 

簡單腳本的編寫:

腳本開頭固定格式#!/bin/bash

 

實例:

寫一個腳本:

複製/etc/skel目錄至/home,並且重命名爲centos

設定此目錄及其內部文件或子目錄的屬主屬組爲redhat用戶,redhat

設定此目錄及其內部文件或子目錄的權限爲屬組和其它用戶沒有任何權限

修改redhat用戶的家目錄爲/home/centos

切換至redhat用戶,驗正其家目錄是否正常可用

 

腳本實現:

#!/bin/bash

#

cp -R /etc/skel /home/centos

ls -ldh /home/centos

chown redhat:redhat /home/centos -R

ls -ldh /home/centos

chmod 700 -R /home/centos

ls -lh /home/centos

usermod -d /home/centos redhat

finger redhat

su - redhat

 

運行腳本:

[root@server55 ~]# nano myscript.sh

[root@server55 ~]# ./myscript.sh

drwx------ 4 redhat redhat 4.0K Jul 19 13:58 /home/centos

drwx------ 4 redhat redhat 4.0K Jul 19 13:58 /home/centos

total 8.0K

drwx------ 3 redhat redhat 4.0K Jul 19 13:58 skel

Login: redhat                        Name: (null)

Directory: /home/centos                   Shell: /bin/bash

Never logged in.

No mail.

No Plan.

[redhat@server55 ~]$ pwd

/home/centos

 

寫一個腳本:

1、創建目錄/tmp/scripts

2、切換工作目錄至此目錄中

3、複製/etc/pam.d目錄至當前目錄,並重命令爲test

4、將當前目錄中的test及其裏面的文件和子目錄的屬主改爲redhat

5、將test及其子目錄中的文件的其它用戶的權限改爲沒有任何權限

腳本內容:

#!/bin/bash

mkdir -p /tmp/scripts

ls -ldh /tmp/scripts

cd /tmp/scripts

pwd

cp -R /etc/pam.d test

ls -l test

chown redhat:redhat test -R

ls -l test

chmod -R o=--- test

ls -l test

執行腳本:

[root@server55 ~]# ./testscript1.sh

執行結果:

total 552

-rw-r----- 1 redhat redhat 390 Jul 19 14:20 atd

-rw-r----- 1 redhat redhat  97 Jul 19 14:20 authconfig

-rw-r----- 1 redhat redhat  97 Jul 19 14:20 authconfig-gtk

-rw-r----- 1 redhat redhat  97 Jul 19 14:20 authconfig-tui

-rw-r----- 1 redhat redhat 192 Jul 19 14:20 chfn

-rw-r----- 1 redhat redhat 192 Jul 19 14:20 chsh

-rw-r----- 1 redhat redhat 232 Jul 19 14:20 config-util

……

 

寫一個腳本:

1、顯示當前系統日期和時間,而後創建目錄/tmp/lstest

2、切換工作目錄至/tmp/lstest

3、創建目錄a1d, b56e, 6test

4、創建空文件xy, x2y, 732

5、列出當前目錄下以ax或者6開頭的文件或目錄;

6、列出當前目錄下以字母開頭,後跟一個任意數字,而後跟任意長度字符的文件或目錄;

 

腳本內容:

#!/bin/bash

date

mkdir /tmp/lstest

cd /tmp/lstest

mkdir a1d b56e 6test

touch xy x2y 732

ls -ldh

ls -ldh [ax6]*

ls -ldh [[:alpha:]][[:digit:]]*

執行腳本:

[root@server55 ~]# ./testscript2.sh

執行結果:

Tue Jul 19 14:49:02 CST 2011

drwxr-xr-x 5 root root 4.0K Jul 19 14:49 .

drwxr-xr-x 2 root root 4.0K Jul 19 14:49 6test

drwxr-xr-x 2 root root 4.0K Jul 19 14:49 a1d

-rw-r--r-- 1 root root    0 Jul 19 14:49 x2y

-rw-r--r-- 1 root root    0 Jul 19 14:49 xy

drwxr-xr-x 2 root root 4.0K Jul 19 14:49 a1d

drwxr-xr-x 2 root root 4.0K Jul 19 14:49 b56e

-rw-r--r-- 1 root root    0 Jul 19 14:49 x2y

 

注意:ls –d 顯示目錄自身的屬性,而不是目錄中的文件。

eg

①:不加-d

[root@server55 ~]# ls -l /tmp/lstest/[[:alpha:]][[:digit:]]*

-rw-r--r-- 1 root root    0 Jul 19 14:34 /tmp/lstest/x2y

 

/tmp/lstest/a1d:

total 0

 

/tmp/lstest/b56e:

total 0

②:加-d之後

[root@server55 ~]# ls -ld /tmp/lstest/[[:alpha:]][[:digit:]]*

drwxr-xr-x 2 root root 4096 Jul 19 14:34 /tmp/lstest/a1d

drwxr-xr-x 2 root root 4096 Jul 19 14:34 /tmp/lstest/b56e

-rw-r--r-- 1 root root    0 Jul 19 14:34 /tmp/lstest/x2y

兩者本質如下:

[root@server55 ~]# ls -ld /tmp/lstest/ a1d

[root@server55 ~]# ls -l /tmp/lstest/ a1d

的區別,由於a1d是目錄文件所以不加-d就查看其目錄下的內容了。

          

                                                July 19th 23:55 2011

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章