Linux-day2-上課筆記

UGO權限linux

1) 文件對於擁有者的權限   Uservim

2) 文件對於所屬組裏面的用戶的權限 Group服務器

3) 文件對於其餘人的權限  Othersui

 

對於文件的權限spa

1)對於文件可讀  r操作系統

2)對於文件可寫  w排序

3)可執行文件    x繼承

 

權限體如今什麼地方?ip

[root@jenny ~]# ll /usr/sbin/useraddci

-rwxr-x---. 1 root root 118232 Oct 31 00:33 /usr/sbin/useradd

 

1位 顯示了文件的類型

- 普通文件

d 目錄文件

l 連接文件

c 字符設備文件

b 塊設備文件

s 套接字文件

p 管道文件

 

2-4位 表明的是User的權限

5-7位 表明的是Group的權限

8-10位 表明的是Others的權限

 

 

 

修改權限相關指令

1) chown   修改文件的擁有者

chown jenny file  將文件擁有者修改成jenny用戶

chown :testgroup file  將文件所屬組變動爲testgroup

chown root:root file 同時將文件擁有者和所屬組修改成root

2) chgrp   修改文件的所屬組

chgrp GROUP FILENAME

3) chmod   修改文件的權限值

經過字符表達方式修改文件權限:

chmod u + r file

      g - w

      o = x

經過數字表達方式修改文件權限:

r-- = 100 = 4

-w- = 010 = 2

--x = 001 = 1

 

rw- = 4+2 = 6

r-x = 4+1 = 5

rwx =7

 

[root@jenny srv]# chmod 645 file

[root@jenny srv]# ls

file

[root@jenny srv]# ll

total 0

-rw-r--r-x. 1 root root 0 Apr 20 09:55 file

 

 

 

練習:

1.添加用戶carol,jenny,ivy

2.建立文件/tmp/file

3.要求

   1) carol用戶可以vim file文件,並正常保存退出    將文件擁有者變動爲carol,rw-

   2) jenny用戶可以看到file文件的內容,不容許修改  r--

   3) ivy用戶也可以看到file文件的內容,不容許修改  r--

   4) 其餘剩餘用戶對於文件沒有任何權限   ---

答案:

[root@jenny tmp]# ll /tmp/file

-rw-r-----. 1 carol testgroup 23 Apr 20 10:21 /tmp/file

   55  chown carol file

   64  groupadd testgroup

   65  usermod -aG testgroup ivy

   66  usermod -aG testgroup jenny

   67  id ivy

   68  id jenny

   69  ll

   70  chown :testgroup file

 

 

 

 

 

 

 

 

 

 

對於文件的權限

1)對於文件可讀  r

2)對於文件可寫  w

3)可執行文件    x

 

對於目錄的權限

- r: 可讀取目錄結構和權限

- w: 可更改目錄結構列表、新建 / 刪除 / 重命名 / 轉移子文件 / 目錄。

- x: 表示用戶可進入到該目錄中

 

 

 

目錄/testdir:

    carol: r-x

    ivy|jenny: rwx

    others: r-x

   86  mkdir /testdir

   87  ll -d /testdir/

   88  chown carol:testgroup /testdir/

   89  ll -d /testdir/

   90  chmod 575 /testdir/

   91  ll -d /testdir/

文件testfile:

    carol:rw-

    ivy|jenny: r--

    others: ---

 

建立文件、目錄默認權限和umask值有關

公式: 最大權限值-umask=默認權限值

目錄:  777 - 022 = 755

文件默認權限: 666 - 022 = 644

 

 

權限分類

1) UGO 基礎權限 - 控制文件、目錄的用戶行爲

root 用戶是不受UGO權限限制的

2) ACL 權限 - UGO權限的補充

alice r--

bob rw-

jenny rwx

ivy    r-x

設置的方式

       setfacl -m u:user:permission file

       setfacl -m g:group:permission file

刪除某一條規則

       setfacl -x u:user    file

       setfacl -x g:group   file

羅列ACL規則

       getfacl file

3) 特殊權限

   SUID: 文件,任何人在執行指定文件的時候,臨時擁有文件擁有者用戶的權限  /usr/bin/passwd

   設置方式 chmod u+s filename

   SGID: 目錄,繼承目錄所屬組

   設置方式 chmod g+s dirname

   STICKY: 目錄, 只有 root 用戶和文件擁有者有權刪除目錄中的文件

       設置方式 chmod +t dirname

4) ATTR權限(隱藏權限)

   設置命令:

        chattr +權限值 file

   查看:

        lsattr file

   權限的含義:

        i: 文件不可被刪,不可被改變(root也不行)

        a: 文件僅可被追加內容,不可被修改

       A: 不修改文件的訪問時間

5) selinux

通常狀況下,在生產環境中,關閉selinux

查看selinux

       [root@jenny tmp]# getenforce

       Enforcing

設置的方式

      1. [root@jenny tmp]# setenforce 0

        Permissive

       注意:上述針對當前環境有效,服務器重啓後無效

       2. vim /etc/selinux/config

       SELINUX=disabled

       注意:重啓服務器後生效

 

回家做業

1. man chattr查看attr具備哪些權限,分別對應的含義

 

二、權限相關做業:

題目
建立用戶carol,ivy,jenny,kevin,alice
建立/test目錄,並在目錄下建立testfile1,testfile2,testfile3

 

要求:

1) 全部用戶可以查看testfile1的內容。

usermod -aG testgroup carol
usermod -aG testgroup ivy
usermod -aG testgroup jenny
usermod -aG testgroup jenny
usermod -aG testgroup alice
chown :testgroup /test/testfiel1
chmod g+r /test/testfiel1

 

2) carol、ivy、jenny可以修改testfile1

setfacl -m u:carol:rw /test/testfiel1
setfacl -m u:ivy:rw /test/testfiel1 
setfacl -m u:jenny:rw /test/testfiel1


3) kevin、alice可以修改testfile2

setfacl -m u:kevin:rw /test/testfiel2
setfacl -m u:alice:rw /test/testfiel2

 

4) kevin、alice可以管理目錄下的建立、刪除文件操做

setfacl -m u:kevin:rwx /test
setfacl -m u:alice:rwx /test

 

5) carol、ivy、jenny不可以刪除、也不能建立文件

setfacl -x u:carol /test
setfacl -x u:ivy /test
setfacl -x u:jenny /test

 

6) testfile3 僅容許追加內容,不容許修改

chattr +a /test/testfiel3

 

7) 建立/tmp/testdir目錄,要求該目錄下建立的全部文件所屬組都爲testgroup這個組

          sgid權限

          mkdir /tmp/testdir

    chgrp testgroup /tmp/testdir

          chmod g+s /tmp/testdir

 

查找
whereis 查找命令絕對路徑(及其幫助文檔)對應的指令
which 查找命令絕對路徑所在位置
locate 基於文件名尋找文件路徑 (安裝locate程序:yum -y install mlocate.x86_64)
1. locate 運行機制
每隔一天,遍歷操做系統文件,並將遍歷的結果存放至/var/lib/mlocate/mlocate.db
當搜索的時候,直接讀取/var/lib/mlocate/mlocate.db,將結果顯示出來
locate: can not stat () `/var/lib/mlocate/mlocate.db': No such file or directory
能夠經過執行updatedb,遍歷操做系統文件
2. locate 特色
1)搜索的速度是相對較快的
2)不是實時的
3)模糊匹配
4)不是全系統掃描
/etc/updatedb.conf
5)查找條件比較單一
find 全方位搜索 
1. 特色
1)實時查找 --> 慢
2)查找條件豐富 權限、大小、時間、文件類型
3)能夠指定查找後動做
2. find命令格式
find [路徑] 查找條件 [執行動做]
一個條件一個參數,一個find命令能夠有多個條件

例子: 
1. 查找系統中名稱爲useradd的文件
find / -name useradd
查找系統中/usr/sbin目錄下,文件名稱不叫useradd的文件
find /tmp ! -name test
2. 查找系統中佔用大小大於7M的文件
find / -size +7M

du -sh    *   查看當前目錄下全部文件大小
查找系統中文件大小在7M到10M之間的文件
find / -size +7M -size -10M
find / -size +7M -size -10M 2> /dev/null
3. 查找系統中的塊設備文件
find / -type b
4. 基於用戶和組的查找
-user -group
-uid -gid
5. 查找7天內內容修改過的文件名
find / -mtime 7
6. 基於權限查找
find / -perm 644 表明徹底匹配644
find / -perm -644 表明需知足的最小權限
找jenny用戶可寫的文件,且jenny用戶是文件的擁有者
find / -user jenny -perm -200
執行動做, {}替代找到的文件 \;表明語句結束符
-ok 交互式的執行方式
find /tmp -name test -ok ls -l {} \;
-exec 非交互的執行方式
find /tmp -name test -exec ls -l {} \;

 

做業:
1) 查找系統中文件名爲wtmp的文件

find / -name wtmp


2) 查找系統中文件大小超過10M的文件名

find / -size  +10M


3) 查找access time比/etc/fstab更新的文件


4) 查找系統中擁有者是root,而且所屬組是input的文件

find / -user root -group input


5) 查找文件類型是連接文件的名稱

find / -type l


6) 將查找文件名爲test的文件移動到/srv目錄

find / -name '*test*' -exec mv {} /srv \;

 

打包、壓縮
1. zip程序
yum -y install zip
壓縮
zip [zipfile] [file]
zip -r test2.zip test # 壓縮目錄加-r選項
解壓
yum -y install unzip 
unzip [zipfile] # 默認狀況下,解壓到當前目錄
unzip test2.zip -d /opt/ # 指定解壓到/opt目錄
2. gzip 程序 、bzip2程序、xz程序
命令的用法
gzip 壓縮 gunzip 解壓
bzip2 壓縮 bunzip2 解壓
xz 壓縮 unxz 解壓
特色
1)壓縮時,源文件會自動被壓縮程序處理,源文件會不存在
2)解壓時,壓縮文件會消失,源文件出現
3)不可以壓縮目錄
4)沒法將多個文件壓縮至一個壓縮包
3. tar ---> 打包
用法:
打包 tar -cf /tmp/test.tar [file]
解包 tar -xf /tmp/test.tar
打包並壓縮 tar -czf /tmp/test.tar.gz [file] # 調用gzip程序完成壓縮
tar -cjf /tmp/test.tar.bz2 [file] # 調用的bzip2 程序完成壓縮
tar -cJf /tmp/test.tar.xz [file] # 調用xz程序完成壓縮
解壓並解包
tar -xzf test.tar.gz  test  #調用gzip完成解壓
tar -xjf  test.tar.bz2 test #調用bzip2完成解壓
tar -xJf test.tar.xz test  #調用xz程序完成解壓

指定位置解壓:
tar -xzf test.tar.gz -C /srv/
實驗:
1. 在/tmp/建立 test目錄,壓縮包名爲/tmp/test.tar.xz 對該目錄調用xz方式進行壓縮

tar -cJf /tmp/test.tar.xz /tmp/test

2. 將/tmp/test.tar.xz解壓,解壓到/opt目錄

tar -xJf /tmp/test.tar.xz /tmp/test

注意: tar路徑問題
若是被打包的文件是絕對路徑,tar會自動將其變爲相對路徑。
tar -czf /tmp/efg /srv/file1 /srv/file2
tar: Removing leading `/' from member names
[root@jenny srv]# tar -xzf /tmp/efg.tgz -C /opt/
[root@jenny srv]# cd /opt/
[root@jenny opt]# ls
srv
[root@jenny opt]# cd srv/
[root@jenny srv]# ls
file1 file2

 

重定向做業:

1. uid最大的一個用戶名字顯示出來

   sort -t: -k 3 -n /etc/passwd | tail -n1  | cut -d: -f1

2. /var/log目錄下的文件根據文件大小排序

   ll | sort -k5 -n -r

3. /etc/fstab文件中非註釋行(#開頭的行爲註釋行) 寫入/tmp/fstab文件中

   grep -v ^# /etc/fstab  > /tmp/fstab

4. boot目錄下的vmlinuz文件的擁有者截取出來

   ll /boot/vmlinuz-* | cut -d' ' -f3

相關文章
相關標籤/搜索