預設許可權umask、文件系統許可權、特殊許可權

来源:http://www.cnblogs.com/znix/archive/2017/09/26/7597592.html
-Advertisement-
Play Games

第1章 許可權相關錯誤 1.1 普通用戶 ls /root/ /root 屬於root 普通用戶沒有任何許可權,所以無法查看 [oldboy@znix ~]$ ls /root/ ls: cannot open directory /root/: Permission denied [oldboy@zn ...


第1章 許可權相關錯誤

1.1 普通用戶 ls /root/

/root  屬於root 普通用戶沒有任何許可權,所以無法查看

[oldboy@znix ~]$ ls /root/

ls: cannot open directory /root/: Permission denied

[oldboy@znix ~]$ ls -ld /root/

dr-xr-x---. 5 root root 4096 Sep  5 12:05 /root/

1.2 普通用戶touch /root/oldboy.txt

創建文件,要看文件所在目錄的許可權,/root  屬於root 普通用戶沒有任何許可權,所以無法再裡面創建文件,創建文件需要有所在目錄的wx許可權。

[oldboy@znix ~]$ touch /root/oldboy.txt

touch: cannot touch `/root/oldboy.txt': Permission denied

[oldboy@znix ~]$ ls -ld /root/

dr-xr-x---. 5 root root 4096 Sep  5 12:05 /root/

1.3 普通用戶\rm -f /etc/passwd

刪除文件需要有文件所在目錄的wx許可權,普通用戶只有r-x許可權,所以無法刪除。

[oldboy@znix ~]$ \rm -f /etc/passwd

rm: cannot remove `/etc/passwd': Permission denied

[oldboy@znix ~]$ ls -ld /etc

drwxr-xr-x. 78 root root 4096 Sep  5 11:27 /etc

[oldboy@znix ~]$ ll /etc/passwd

-rw-r--r-- 1 root root 1177 Sep  5 11:27 /etc/passwd

1.4 普通用戶cat /etc/shadow

查看文件的內容的時候,需要看文件的許可權,在這裡普通用戶對這個文件沒有任何許可權,所以無法查看文件的內容。

查看文件的內容要用於文件的r許可權。

[oldboy@znix ~]$ cat /etc/shadow

cat: /etc/shadow: Permission denied

[oldboy@znix ~]$ ll  /etc/shadow

---------- 1 root root 881 Sep  5 11:27 /etc/shadow

1.5 出現錯誤的解決辦法

1、先確定要操作的是文件還是目錄

2、確當你和操作對象的關係

3、文件先看文件的許可權

4、目錄先看目錄的許可權

5查看文件內容、修改文件內容、運行文件(腳本),要看文件的許可權

6查看目錄里的內容、刪除文件、創建文件、重命名(文件改名),要看目錄許可權

第2章 文件的訪問過程

2.1 過程

2.1.1

inode

文件的許可權

block的位置

 

block

文件的實際內容

文件

相對路徑訪問文件

 

 

 

2.1.2 據對路徑訪問

/目錄

目錄的block,找對應的文件

/etc目錄的inode

inode

文件的許可權

block的位置

 

block

文件的實際內容

文件

                                                                           

2.2 關係

1.文件的名字是存放在所在目錄的block裡面

2.文件名與inode的對應關係放在目錄的block

第3章 網站許可權-讓網站根安全

3.1 linux系統預設許可權

3.1.1 文件預設許可權

文件最大許可權-rw-rw-rw-  oldboy.txt 666

一般會給文件644許可權   rw-r--r-- 

3.1.2 目錄預設許可權

目錄預設最大許可權-rwxrwxrwx 777

一般會給目錄  755 許可權rwxr-xr-x  root root oldboydir   

3.2 如何規劃網站許可權,讓網站更加安全

3.2.1 讓網站以www身份運行

[root@znix /]# useradd www

3.2.2 讓主要的文件歸root用戶所有

[root@znix /]# mkdir -p /app/blog

[root@znix /]# mkdir -p /app/blog/upload

[root@znix /]# ll -d /app/blog/ /app/blog/upload/

drwxr-xr-x 3 root root 4096 Sep  6 10:09 /app/blog/

drwxr-xr-x 2 root root 4096 Sep  6 10:09 /app/blog/upload/

[root@znix /]# su - www

[www@znix ~]$ cd /app

app/         application/

[www@znix ~]$ cd /app/blog/upload/

[www@znix upload]$

3.2.3 對於用戶上傳的文件處理

讓用戶上傳的文件放在屬於www用戶的文件夾中;

限制文件的尾碼;

上傳之後不能查看……

[root@znix /]# chown www.www /app/blog/upload/

[root@znix /]# ll -d /app/blog/ /app/blog/upload/

drwxr-xr-x 3 root root 4096 Sep  6 10:09 /app/blog/

drwxr-xr-x 2 www  www  4096 Sep  6 10:09 /app/blog/upload/

[root@znix /]# cd /app/blog/upload/

[root@znix upload]# touch aaa.png

[root@znix upload]#

第4章 umask - 預設許可權控制

控制著linux裡面預設的許可權

4.1 系統中文件和目錄預設許可權

file---666 -rw-rw-rw

dir ---777 drwxrwxrwx

 

4.2 umask 反掩碼計算

預設的最大許可權減去 umask

4.2.1 umask為偶數

實例4-1 umask0022

文件:

file-  666-022=644

目錄:

dir-  777-022=755

 

4.2.2 umask為奇數

實例4-2  umask0032

4.3 umask為奇數時,計算文件的預設許可權的時候,要在奇數位加1

file- 666-032=634

      +010=644

目錄的不變

4.4 示例umask=035

[root@znix ~]# umask 035

[root@znix ~]# touch file035

[root@znix ~]# mkdir dir035

[root@znix ~]# ll file035 && ll -d dir035

-rw-r---w- 1 root root 0 Sep  6 10:42 file035

drwxr---w- 2 root root 4096 Sep  6 10:42 dir035

file=642  dir=742

4.5 永久修改umask的方法

[root@znix ~]# vim /etc/profile

if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then

    umask 002

else

    umask 022

fi

解釋:

如果 [ 用戶UID>=199 ] 並且  [ 用戶的名字 == 用戶組名字 ];然後

    umask 002

那麼

    umask 022

果如

第5章 文件系統的許可權

5.1 chattr 設置文件系統的許可權(change attr)

chattr  +a  只能追加 append

chattr  +i   無敵 不能進行任何操作(immutable

5.2 測試 +a

只能向文件中追加內容,不能刪除

[root@znix ~]# chattr +a oldboy.txt

[root@znix ~]# lsattr oldboy.txt

-----a-------e- oldboy.txt

[root@znix ~]# echo 123 >> oldboy.txt

[root@znix ~]# > oldboy.txt

-bash: oldboy.txt: Operation not permitted

5.2.1 取掉許可權 -a

[root@znix ~]# chattr -a oldboy.txt

[root@znix ~]# lsattr oldboy.txt

-------------e- oldboy.txt

5.3 測試 +i

不能對文件進行任何操作,root用戶也不能操作。

[root@znix ~]# chattr +i oldboy.txt

[root@znix ~]# lsattr oldboy.txt

----i--------e- oldboy.txt

5.4 lsattr

  list attr  顯示文件系統的許可權

[root@znix ~]# lsattr -d  /etc/

-------------e- /etc/

第6章 linux的特殊許可權

-rw-r--r-- 1 root root 252 Sep  6 11:04 oldboy.txt

這個是9位基礎許可權。

linux12位許可權,還有3個特殊許可權。

6.1 三種特殊的許可權

[root@znix ~]# ls -ld /tmp/ /usr/bin/passwd  /usr/bin/locate  /bin/ls

-rwxr-xr-x.  1 root root    117048 Mar 23 02:52 /bin/ls

drwxrwxrwt. 11 root root      4096 Sep  6 11:29 /tmp/

-rwx--s--x.  1 root slocate  38464 Mar 12  2015 /usr/bin/locate

-rwsr-xr-x.  1 root root     30768 Nov 24  2015 /usr/bin/passwd

6.2 rwsr-xr-x  

放在主人的位置上 suid ,運行包含suid許可權的 命令的時候,相當於這個命令的所有者。

比如:/usr/bin/passwd修改用戶密碼

6.2.1 rm目錄suid許可權

[root@znix ~]# chmod u+s /bin/rm

[root@znix ~]# ll /bin/rm

-rwsr-xr-x. 1 root root 57440 Mar 23 02:52 /bin/rm

[oldboy@znix ~]$ \rm -f /root/oldboy.txt

[root@znix ~]# chmod u-s /bin/rm

[root@znix ~]# ll /bin/rm

-rwxr-xr-x. 1 root root 57440 Mar 23 02:52 /bin/rm

6.2.2 suid S與小s

文件的許可權,x許可權時+s為小s沒有x+s為大S

[root@znix ~]# ll test.txt

-rw-r--r--. 2 root root 22 Sep  4 12:28 test.txt

[root@znix ~]# chmod u+s test.txt

[root@znix ~]# ll test.txt

-rwSr--r--. 2 root root 22 Sep  4 12:28 test.txt

[root@znix ~]# chmod u+x test.txt

[root@znix ~]# ll test.txt

-rwsr--r--. 2 root root 22 Sep  4 12:28 test.txt

6.3 drwxrwxrwt 粘滯位

[root@znix ~]# ll -d /tmp/

drwxrwxrwt. 11 root root 4096 Sep  6 11:29 /tmp/

設置了粘滯位的目錄在目錄下麵創建的文件只能自己管理自己的

6.4 rwx--s--x  sgid

       用戶運行locate的時候是slocate組的。很少使用!

rwx--s--x.  1 root slocate  38464 Mar 12  2015 /usr/bin/locate

第7章  系統中病毒怎麼辦

7.1 解絕辦法

1、使用top 命令看誰用的cpu最多

2、找出占用cpu 或記憶體大的進程的pid號碼

3、根據進程的pid 殺掉進程

7.2 結束進程的方法

[root@znix ~]# kill 進程號碼

7.3 top命令

    PID pid process id 進程的號碼 系統中是唯一的

    CMD 進程的名字(命令)

 

 PID   USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                     

 14011 oldboy    20   0  102m  672  568 R 19.2  0.1   0:09.45 dd       

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Sentinel(哨兵)是Redis 的高可用性解決方案:由一個或多個Sentinel 實例 組成的Sentinel 系統可以監視任意多個主伺服器,以及這些主伺服器屬下的所有從伺服器,併在被監視的主伺服器進入下線狀態時,自動將下線主伺服器屬下的某個從伺服器升級為新的主伺服器。 ...
  • 一、Linux概述 Linux是一款全球性的免費的開源的操作系統平臺,其特點是實現了多任務多用戶處理,主要是依賴內核kernel shell,且占用資源少 (最小配置只要4Mb記憶體就能運行)。 百度百科概述 Linux是一套免費使用和自由傳播的類Unix操作系統,是一個基於POSIX和UNIX的多用 ...
  • 原文發表於cu:2017-03-27 參考文檔: 本文涉及keepalived的安裝,簡單配置,為haproxy做高可用。 一.環境準備 1. 操作系統 CentOS-7-x86_64-Everything-1511 2. Keepalived版本 截至2017-03-22,keepalived版本 ...
  • 嵌入式系統在我們的日常生活中已經隨處可見,已經貫穿在我們生活的方方面面,今天筆者就來淺談一下對嵌入式的認識。 一、什麼是嵌入式系統 在清華大學出版社出版的《嵌入式系統原理與設計》當中,對嵌入式系統是這樣進行定義的:嵌入式系統是以應用為中心,以電腦技術為基礎,採用可裁剪軟硬體,適用於對功能、可靠性、 ...
  • 網路配置 網路參數設置: 1)命令行設置,可以立即生效,但是電腦重啟後所有的設置會失效; 2)修改系統配置文件,不會馬上生效,但是可以永久保存設置; 命令行設置網路參數1》網路介面參數 ifconfig命令 ifconfig eth0 192.168.10.10 netmask 255.255.2 ...
  • 一、預設許可權 每一個終端都有一個 umask 屬性,是用來確定新建文件或目錄的預設許可權的許可權“掩碼”(mask 有“掩碼”的含義,至於 u,後面說)。 Linux 中一般有預設的許可權掩碼,使用命令 umask 用以查看或設置: 一般地,普通用戶(uid 為 500 以上)的許可權掩碼預設為 0002, ...
  • 轉載http://bgutech.blog.163.com/blog/static/18261124320116181119889/ 1. 什麼是workqueue Linux中的Workqueue機制就是為了簡化內核線程的創建。通過調用workqueue的介面就能創建內核線程。並且可以根據當前系統 ...
  • 1、PIC單片機匯流排結構——哈佛結構:即指令和數據空間是完全分開的,所以與常見的微控制器不同的一點是,程式和數據匯流排可以採用不同的寬度。以PIC16F684單片機為例,數據匯流排是8位的,但指令匯流排位數是14位。 2、在PIC單片機中,我們將RAM存儲器稱作文件寄存器(F寄存器)。 3、PIC中程式寄 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...