整合營銷服務(wù)商

          電腦端+手機端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          如何在 Web 服務(wù)器文檔根目錄上設(shè)置只讀文件權(quán)限

          如何在 Web 服務(wù)器文檔根目錄上設(shè)置只讀文件權(quán)限

          :如何對我存放在 /var/www/html/ 目錄中的所有文件設(shè)置只讀權(quán)限?

          你可以使用 chmod 命令對 Linux/Unix/macOS/OS X/*BSD 操作系統(tǒng)上的所有文件來設(shè)置只讀權(quán)限。這篇文章介紹如何在 Linux/Unix 的 web 服務(wù)器(如 Nginx、 Lighttpd、 Apache 等)上來設(shè)置只讀文件權(quán)限。

          如何設(shè)置文件為只讀模式

          語法為:

          1. ### 僅針對文件 ###

          2. chmod 0444 /var/www/html/*

          3. chmod 0444 /var/www/html/*.php

          如何設(shè)置目錄為只讀模式

          語法為:

          1. ### 僅針對目錄 ###

          2. chmod 0444 /var/www/html/

          3. chmod 0444 /path/to/your/dir/

          4. # ***************************************************************************

          5. # 假如 web 服務(wù)器的用戶/用戶組是 www-data,文件擁有者是 ftp-data 用戶/用戶組

          6. # ***************************************************************************

          7. # 設(shè)置目錄所有文件為只讀

          8. chmod -R 0444 /var/www/html/

          9. # 設(shè)置文件/目錄擁有者為 ftp-data

          10. chown -R ftp-data:ftp-data /var/www/html/

          11. # 所有目錄和子目錄的權(quán)限為 0445 (這樣 web 服務(wù)器的用戶或用戶組就可以讀取我們的文件)

          12. find /var/www/html/ -type d -print0 | xargs -0 -I {} chmod 0445 "{}"

          找到所有 /var/www/html 下的所有文件(包括子目錄),鍵入:

          1. ### 僅對文件有效 ###

          2. find /var/www/html -type f -iname "*" -print0 | xargs -I {} -0 chmod 0444 {}

          然而,你需要在 /var/www/html 目錄及其子目錄上設(shè)置只讀和執(zhí)行權(quán)限,如此才能讓 web 服務(wù)器能夠訪問根目錄,鍵入:

          1. ### 僅對目錄有效 ###

          2. find /var/www/html -type d -iname "*" -print0 | xargs -I {} -0 chmod 0544 {}

          警惕寫權(quán)限

          請注意在 /var/www/html/ 目錄上的寫權(quán)限會允許任何人刪除文件或添加新文件。也就是說,你可能需要設(shè)置一個只讀權(quán)限給 /var/www/html/ 目錄本身。

          1. ### web根目錄只讀 ###

          2. chmod 0555 /var/www/html

          在某些情況下,根據(jù)你的設(shè)置要求,你可以改變文件的屬主和屬組來設(shè)置嚴(yán)格的權(quán)限。

          1. ### 如果 /var/www/html 目錄的擁有人是普通用戶,你可以設(shè)置擁有人為:root:root 或 httpd:httpd (推薦) ###

          2. chown -R root:root /var/www/html/

          3. ### 確保 apache 擁有 /var/www/html/ ###

          4. chown -R apache:apache /var/www/html/

          關(guān)于 NFS 導(dǎo)出目錄

          你可以在 /etc/exports 文件中指定哪個目錄應(yīng)該擁有只讀或者讀寫權(quán)限 [1]。這個文件定義各種各樣的共享在 NFS 服務(wù)器和他們的權(quán)限。如:

          1. # 對任何人只讀權(quán)限

          2. /var/www/html *(ro,sync)

          3. # 192.168.1.10(upload.example.com)客戶端讀寫權(quán)限訪問

          4. /var/www/html 192.168.1.10(rw,sync)

          關(guān)于用于 MS-Windows客戶端的 Samba(CIFS)只讀共享

          要以只讀共享 sales,更新 smb.conf,如下:

          1. [sales]

          2. comment = Sales Data

          3. path = /export/cifs/sales

          4. read only = Yes

          5. guest ok = Yes

          關(guān)于文件系統(tǒng)表(fstab)

          你可以在 Unix/Linux 上的 /etc/fstab 文件中配置掛載某些文件為只讀模式。

          你需要有專用分區(qū),不要設(shè)置其他系統(tǒng)分區(qū)為只讀模式。

          如下在 /etc/fstab 文件中設(shè)置 /srv/html 為只讀模式。

          1. /dev/sda6 /srv/html ext4 ro 1 1

          你可以使用 mount 命令重新掛載分區(qū)為只讀模式[2](使用 root 用戶)

          1. # mount -o remount,ro /dev/sda6 /srv/html

          或者

          1. # mount -o remount,ro /srv/html

          上面的命令會嘗試重新掛載已掛載的文件系統(tǒng)到 /srv/html上。這是改變文件系統(tǒng)掛載標(biāo)志的常用方法,特別是讓只讀文件改為可寫的。這種方式不會改變設(shè)備或者掛載點。讓文件變得再次可寫,鍵入:

          1. # mount -o remount,rw /dev/sda6 /srv/html

          1. # mount -o remount,rw /srv/html

          Linux:chattr 命令

          你可以在 Linux 文件系統(tǒng)上使用 chattr 命令改變文件屬性為只讀[3],如:

          1. chattr +i /path/to/file.php

          .editorconfig

          1.EditorConfig和Prettier一樣,都是用來配置格式化你的代碼的,這個格式化代碼,要和你lint配置相符!否則會出現(xiàn)你格式化代碼以后,卻不能通過你的代碼校驗工具的檢驗。

          2.讓使用不同編輯器的開發(fā)者在共同開發(fā)一個項目時“無痛”地遵循編碼規(guī)范(編碼風(fēng)格),就可以使用EditorConfig插件,會在項目根目錄尋找.editorconfig文件并使用其中定義的編碼風(fēng)格。 默認配置

          [*]
          charset=utf-8
          indent_style=space
          indent_size=2
          end_of_line=lf
          insert_final_newline=true
          trim_trailing_whitespace=true
          

          語法

          1. editorConfig配置文件需要是UTF-8字符集編碼的, 以回車換行或換行作為一行的分隔符
            斜線(/)被用作為一個路徑分隔符,井號(#)或分號(;)被用作于注釋. 注釋需要與注釋符號寫在同一行

          通配符

          *                匹配除/之外的任意字符串
          **               匹配任意字符串
          ?                匹配任意單個字符
          [name]           匹配name中的任意一個單一字符
          [!name]          匹配不存在name中的任意一個單一字符
          {s1,s2,s3}       匹配給定的字符串中的任意一個(用逗號分隔) 
          {num1..num2}    匹配num1到num2之間的任意一個整數(shù), 這里的num1和num2可以為正整數(shù)也可以為負整數(shù)

          屬性
          所有的屬性和值都是忽略大小寫的. 解析時它們都是小寫的

          indent_size     用一個整數(shù)定義的列數(shù)來設(shè)置縮進的寬度,如果indent_style為tab,則此屬性默認為tab_width
          tab_width       用一個整數(shù)來設(shè)置tab縮進的列數(shù)。默認是indent_size
          end_of_line     設(shè)置換行符,值為lf、cr和crlf
          charset         設(shè)置編碼,值為latin1、utf-8、utf-8-bom、utf-16be和utf-16le,不建議使用utf-8-bom
          trim_trailing_whitespace  設(shè)為true表示會去除換行行首的任意空白字符。
          insert_final_newline      設(shè)為true表示使文件以一個空白行結(jié)尾
          root           表示是最頂層的配置文件,發(fā)現(xiàn)設(shè)為true時,才會停止查找.editorconfig文件

          .prettierrc(格式化配置項)

          1.EditorConfig和Prettier一樣,都是用來配置格式化你的代碼的,這個格式化代碼,要和你lint配置相符!否則會出現(xiàn)你格式化代碼以后,卻不能通過你的代碼校驗工具的檢驗。

          2.當(dāng)我們使用右鍵格式化的時候,就會自動幫我們補全符號,但是,有些符號在eslint中就會報語法錯誤,那我們需要怎么辦呢?可以通過.prettierrc來進行文件配置

          {
              "semi": false,    // 使用分號, 默認true
              "singleQuote": true,   // 使用單引號, 默認false(在jsx中配置無效, 默認都是雙引號)
              "bracketSpacing": true   // 對象中的空格 默認true
          }
          

          .browserslistrc 文件

          在使用腳手架搭建項目時,會自動生成.browserslistrc文件,該文件只要是 配置兼容瀏覽器
          對于部分配置參數(shù)做一些解釋:
          " >1%" :代表著全球超過1%人使用的瀏覽器
          “l(fā)ast 2 versions” : 表示所有瀏覽器兼容到最后兩個版本
          “not ie <=8” :表示IE瀏覽器版本大于8(實則用npx browserslist 跑出來不包含IE9 )
          “safari >=7”:表示safari瀏覽器版本大于等于7


          Vue .env .env.development .env.production

          1.項目根目錄下創(chuàng)建.env、.env.development和.env.production三個文件,文件名解釋分別如下:   .env 無論開發(fā)環(huán)境還是生產(chǎn)環(huán)境都會加載的配置文件   .env.development 開發(fā)環(huán)境加載的配置文件   .env.production 生產(chǎn)環(huán)境加載的配置文件

          2.環(huán)境變量的簡單使用示例。需要注意,配置文件里的屬性名必須以VUE_APP_開頭,比如在.env文件這樣聲明一個環(huán)境變量:

          VUE_APP_QQQ=`QQ`

          然后就可以在代碼里這樣用了:

          console.log(process.env.VUE_APP_QQQ)  // -> `QQ`
          1. 那為什么是三個文件呢?
            比如現(xiàn)在三個文件里內(nèi)容分別如下:
          // .env
          VUE_APP_QQQ=`QQ`
          
          // .env.development
          VUE_APP_QQQ=`WW`
          
          // .env.production
          VUE_APP_QQQ=`RR`

          那么首先,Vue在啟動時,無論是在開發(fā)環(huán)境還是在生產(chǎn)環(huán)境,它始終都會加載.env文件里的內(nèi)容,然后(劃重點)=>根據(jù)Node環(huán)境變量’NODE_ENV’的值來選擇加載’development’還是’production’。

          比如我們平常通過npm run serve啟動時,我們本地系統(tǒng)的環(huán)境變量NODE_ENV 值默認是development,這時就會先后加載.env和.env.development這兩個文件。

          而當(dāng)我們打包到服務(wù)器后,服務(wù)器的NODE_ENV值一般為production,則此時Vue仍會先加載.env文件,然后加載.env.production文件。

          其次,在按順序加載文件時,Vue會把后一個加載的文件內(nèi)容和前面加載的文件內(nèi)容進行比較,如果存在變量名相同,那么它會采用后一個文件里的變量值為變量的最終值。

          拿上面三個文件內(nèi)容打個比方:我們在日常開發(fā)時,NODE_ENV值是development,那么Vue就會首先加載.env文件里的內(nèi)容,然后繼續(xù)加載.env.development文件里的內(nèi)容。那么我們發(fā)現(xiàn)變量名VUE_APP_QQQ存在多個,這時Vue就會采用后一個文件里的變量值為變量的最終值。因此我們通過console輸出看一看。

          console.log(VUE_APP_QQQ)  // -> `WW`

          .eslintrc.js

          module.exports={
            root: true,
            parser: 'babel-eslint',
            parserOptions: {
              //設(shè)置"script"(默認)或"module"如果你的代碼是在ECMAScript中的模塊。
              sourceType: 'module'
            },
            env: {
              browser: true,
            },
            // https://github.com/feross/standard/blob/master/RULES.md#javascript-standard-style
            extends: 'standard',
            // required to lint *.vue files
            plugins: [
              'html'
            ],
            // add your custom rules here
            'rules': {
              // allow paren-less arrow functions
              'arrow-parens': 0,
              // allow async-await
              'generator-star-spacing': 0,
              // allow debugger during development
              'no-debugger': process.env.NODE_ENV==='production' ? 2 : 0,
              "no-unused-vars": [2, { 
                // 允許聲明未使用變量
                "vars": "local",
                // 參數(shù)不檢查
                "args": "none" 
              }],
              // 關(guān)閉語句強制分號結(jié)尾
              "semi": [0],
              //key值前面是否要有空格
               "key-spacing": [0, {
                "singleLine": {
                  "beforeColon": false,
                  "afterColon": true
                },
                "multiLine": {
                  "beforeColon": true,
                  "afterColon": true,
                  "align": "colon"
                },
              //空行最多不能超過100行
              "no-multiple-empty-lines": [0, {"max": 100}],
              //關(guān)閉禁止混用tab和空格
              "no-mixed-spaces-and-tabs": [0],
              //數(shù)組第一個指定是否啟用這個規(guī)則,第二個指定幾個空格
              "indent":[1,2],
          }
          

          其中的rules是配置規(guī)則的

          配置參數(shù)

          rules: {
              "規(guī)則名": [規(guī)則值, 規(guī)則配置]
          }

          規(guī)則值

          "off"或者0    //關(guān)閉規(guī)則關(guān)閉
          "warn"或者1    //在打開的規(guī)則作為警告(不影響退出代碼)
          "error"或者2    //把規(guī)則作為一個錯誤(退出代碼觸發(fā)時為1)

          常見規(guī)則列表

          Rust 編程語言中,target 目錄是由 Cargo(Rust 的包管理和構(gòu)建工具)自動生成的。它主要用于存放構(gòu)建輸出的產(chǎn)物文件相關(guān)的編譯期產(chǎn)生的中間文件等。但是 target 目錄往往會非常大,即使一個簡單的 hello world 程序,就已經(jīng)達到 9 MB 了。

          可能一個比較簡單的項目,會達到 1 GB 多。甚至有些網(wǎng)友調(diào)侃——如果電腦硬盤太小,可能學(xué)不了 Rust。

          0x01 指定 target 目錄

          另外當(dāng)電腦中的 Rust 項目太多時,無法管理 target 目錄。其實我們可以指定所有項目統(tǒng)一的 target 目錄。下面將以 Windows 操作系統(tǒng)為例演示。

          首先在 C:\Users\用戶名\.cargo\ 目錄下,找到 config.toml 文件。如果在該目錄下沒有 config.toml 文件,則需要創(chuàng)建該文件。如下圖所示:

          注意:config 文件也有可能沒有擴展名,如 config,又或者是其它擴展名,如 config.txt,配置文件的擴展名不重要,重要的是文件名稱必須是 config

          在文件中添加下面的配置信息:

           [build]
          target-dir="D:/my-target"

          上面的配置是指定所有項目的統(tǒng)一 target 目錄為 D:/my-target。如下圖:

          我們再次編譯項目,查看項目根目錄和 D:/my-target 目錄,如下圖:

          可以看到,在項目的工程目錄已經(jīng)沒有 target 目錄,真正的 target 目錄已經(jīng)被我們指定為 D:/my-target 目錄了。

          0x02 target 目錄有什么

          下面是一個簡單項目的 target 目錄,讓我們看下它會包含什么呢?

          target 目錄包含以下幾個子目錄和文件:

          target/debug:

          • 存儲調(diào)試模式下構(gòu)建的可執(zhí)行文件和庫文件。
          • 包含中間編譯產(chǎn)物,如對象文件(.o 文件)和生成的二進制文件。

          target/release:

          • 存儲發(fā)布模式下構(gòu)建的可執(zhí)行文件和庫文件。
          • 與調(diào)試模式相比,發(fā)布模式進行了優(yōu)化,生成的二進制文件通常更小且運行速度更快。

          target/doc:

          • 存放項目文檔(通常是通過 cargo doc 命令生成的 HTML 文檔)。

          target/.fingerprint:

          • 存儲構(gòu)建的指紋文件,用于跟蹤哪些文件已經(jīng)被編譯以及是否需要重新編譯。

          target/package:

          • 存放項目打包后的文件,通常用于 cargo publish 命令發(fā)布到 crates.io 倉庫。

          其他臨時文件和目錄:

          • 包括構(gòu)建緩存、生成的匯編代碼等。

          0x03 指定 target 目錄的優(yōu)缺點

          統(tǒng)一存放 target 文件既有優(yōu)點也有缺點:

          優(yōu)點

          緩存復(fù)用

          如果多個項目使用相同的依賴庫,通過指定一個共享的 target 目錄,可以復(fù)用編譯緩存,減少重復(fù)編譯的時間,大幅提升構(gòu)建效率。

          管理方便

          通過將編譯輸出集中到一個特定目錄,可以更方便地管理和清理編譯輸出文件。當(dāng) Rust 項目過多時,我們可以隨時清理 target 文件。

          缺點

          多個項目共享同一個 target 目錄可能會因為不同的依賴版本而產(chǎn)生沖突,當(dāng)遇到?jīng)_突時需要及時清理 target 目錄。

          0x04 小結(jié)

          總體上講,指定 target 目錄可以帶來顯著的構(gòu)建效率提升,但也需要考慮潛在的版本沖突問題,這個需要根據(jù)實際的項目來取舍。


          主站蜘蛛池模板: 亚洲国产成人久久综合一区77| 亚洲美女视频一区| 久久亚洲国产精品一区二区| 日韩欧国产精品一区综合无码| 亚洲啪啪综合AV一区| 3D动漫精品一区二区三区| 狠狠综合久久av一区二区| 午夜福利国产一区二区| 国产精品亚洲不卡一区二区三区| 日韩免费观看一区| 视频一区二区精品的福利| 成人精品一区二区三区中文字幕| 无码人妻一区二区三区在线视频| 精品国产一区AV天美传媒| 国产精品538一区二区在线| 韩国福利一区二区美女视频| 精品在线一区二区| 无码人妻av一区二区三区蜜臀| 亚洲色精品aⅴ一区区三区 | 日韩精品一区二区三区老鸦窝| 无码人妻一区二区三区精品视频 | 亚洲毛片不卡av在线播放一区| 久久精品一区二区三区日韩| 国产精品久久亚洲一区二区| 亚洲日韩AV一区二区三区四区 | 日韩国产免费一区二区三区| 日本一区午夜艳熟免费| 在线观看国产区亚洲一区成人| 小泽玛丽无码视频一区| 美女视频一区二区| 爆乳熟妇一区二区三区| 国产在线观看一区二区三区精品| 一区精品麻豆入口| 波多野结衣AV无码久久一区| 久久综合精品国产一区二区三区| 亚洲av高清在线观看一区二区| 中文字幕一区二区三区在线播放| 国产精品视频一区二区三区不卡| 国产精品第一区第27页| 国产一区二区免费| eeuss鲁片一区二区三区|