linux的chown和chmod命令

最近對root用戶做了限制,之前在Linux上的使用kettle,直接用root用戶的;現在要用普通用戶來使用kettle。所以直接把kettle相關路徑的文件主直接改成普通用戶datauser,再把原來/root/.kettle 目錄下的文件(主要是repositories.xml 資源庫的相關配置信息)都cp到/home/datauser 長時間不用有點忘了,順便總結下 Linux賦權限相關命令。

chown命令:
chown change owner的縮寫,更改與文件關聯的所有者或所屬組
語法: chown [-f][-h][-R] Owner:Group { File ... | Directory ... }
chown -R [-f ][-H| -L| -P] Owner:Group { File ... | Directory ... }
chown命令將 File 參數指定的文件的所有者更改爲 Owner 參數指定的用戶;參數-H、-L 和 -P 標誌是互斥的,指定不止一個時雖然不認爲是錯誤的;但是一般是指定的最後一個參數標誌確定命令操作。

chown參數:
-c(-change):顯示更改的部分的信息 
-f:忽略錯誤信息,不顯示錯誤信息 。
-h:只對符號鏈接的文件做修改,而不更改其他任何相關文件;當遇到符號鏈接而未指定-h標誌時,chown命令更改鏈接指向的文件或目錄的所有權,而非鏈接本身的所有權。
-H:如果也指定了-R 選項,並且引用類型目錄的文件的符號鏈接在命令行上指定,chown 變量會更改由符號引用的目錄的用戶標識(和組標識,如果已指定)和所有在該目錄下的文件層次結構中的所有文件。
-L:如果也指定了-R 選項,並且引用類型目錄的文件的符號在命令行上指定或在遍歷文件層次結構期間遇到,chown 命令會更改由符號鏈接引用的目錄的用戶標識(和組標識,如果已指定)和在該目錄之下的文件層次結構中的所有文件。
-P:如果也指定了-R 選項並且符號鏈接在命令行上指定或者在遍歷文件層次結構期間遇到,則如果系統支持該操作,則 chown 命令會更改符號鏈接的所有者標識(和組標識,如果已指定)。chown 命令不會執行至文件層次結構的任何其它部分的符號鏈接。
-R:遞歸處理,更改每個文件的所有權。
  • 例如將目錄/opt/data-integration下的所有文件、子目錄的所有者改成datauser 用命令chown -R datauser:datauser /opt/data-integration
  • 例如將文件file所有者改爲hadoop、羣組改爲root 用命令 chown hadoop:root file.txt
  • 例如將文件file所有者改爲hadoop 用命令chown hadoop: file
  • 例如將文件file的所屬羣組改爲users 用命令chown :users file

chmod命令:
linux文件權限有三級,依次爲所有者u、羣組g、其他o

  • 其中u(user)表示該文件的所有者,g(group)表示與該文件的所有者屬於同一個羣組,o(other)表示其他以外的人,a(all)表示這三者皆是。
  • + 表示增加權限,- 表示取消權限,= 表示唯一設定權限。
  • r 表示可讀取 對應4w 表示可寫入對應2x 表示可執行 對應1X 表示該文件有子目錄;若要rwx屬性則4+2+1=7; 若要rw-屬性則4+2=6; 若要r-x屬性則4+1=5。
  • 例如將文件file設爲所有人可以讀、寫、執行 可用命令chmod a=rwx file 或者chmod 777 file
  • 例如將文件file設爲除所有者外其他人只能讀的權限,可用命令chomod 744
  • 例如將當前文件夾下的所有文件的權限都設爲777 用命令chmod -R 777
  • 例如將文件file設爲所有人可讀 可用命令chmod ugo+r file或者 chmod a+r file
  • 例如將文件file設置與其所屬同一個羣組的可寫入,但其他以外的人則不可寫入 可用命令chmod ug+w,o-w file
  • 例如將當前目錄下所有文件與子目錄皆設爲任何人可讀取 可用命令chmod -R a+r dir/*
chmod其他參數說明:
-c : 若該文件權限確實已經更改,才顯示其更改動作
-f : 若該文件權限無法被更改也不顯示錯誤
-v : 顯示權限變更的詳細信息
-R : 對當前目錄下的所有文件與子目錄進行相同的權限變更(即以遞迴的方式逐個變更)

cp 命令:
linux複製某個目錄dir1下的所有文件到另一個目錄dir2中:
若dir2目錄不存在,用命令 cp -r dir1 dir2
若dir2目錄已存在,用命令cp -rf dir1/. dir2 ,如果目標目錄下存在文件需要先刪除,不然需要一個一個確認很麻煩,rm -rf /dir2/* ,做刪除操作很危險,一定要確認好了再刪,或者直接把 dir2 文件夾 mv 到 /tmp 目錄下 統一刪除 避免風險。

cp 命令參數:
-a: 效果和同時指定"-dpR"參數相同;
-d:當複製符號連接時,把目標文件或目錄也建立爲符號連接,並指向與源文件或目錄連接的原始文件或目錄;
-f:force 強制的意思,強行復制文件或目錄,不論目標文件或目錄是否已存在;
-i:覆蓋既有文件之前先詢問用戶,回答y時目標文件將被覆蓋,是交互式拷貝;
-l:對源文件建立硬連接,而非複製文件;
-p:保留源文件或目錄的屬性;
-R/r:遞歸處理,將指定目錄下的所有文件與子目錄一併處理;
-s:對源文件建立符號連接,而非複製文件;
-u:使用這項參數後只會在源文件的更改時間較目標文件更新時或是名稱相互對應的目標文件並不存在時,才複製文件;
-S:在備份文件時,用指定的後綴“SUFFIX”代替文件的默認後綴;
-b:覆蓋已存在的文件目標前將目標文件備份;
-v:詳細顯示命令執行的操作。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章