chmod u+s(轉)


參看了 http://hi.baidu.com/hehongrong/item/b64a6d6b094cf634ac3e8382 里面說 

 -s :在文件執行時把進程的屬主或組ID置為該文件的文件屬主。

這句話當時我看就有點誤解

到底是誰設置成誰呢?

現在明白了,是進程的主變了,不是文件的主變

總之就是 進程的主臨時改變了,變成了進程文件的主。

所以這樣要求這個文件是exe的進程文件,不能是腳本。

其次,是臨時變,就是在動態運行的過程變。

 

<權限范圍>+<權限設置> 開啟權限范圍的文件或目錄的該項權限設置。

<權限范圍>-<權限設置> 關閉權限范圍的文件或目錄的該項權限設置。

<權限范圍>=<權限設置> 指定權限范圍的文件或目錄的該項權限設置。

權限范圍的表示法如下:

  u:User,即文件或目錄的擁有者。

  g:Group,即文件或目錄的所屬群組。

  o:Other,除了文件或目錄擁有者或所屬群組之外,其他用戶皆屬於這個范圍。

  a:All,即全部的用戶,包含擁有者,所屬群組以及其他用戶。

 

權限設置的表示法如下:

-s :在文件執行時把進程的屬主或組ID置為該文件的文件屬主。

  -c : 若該檔案權限確實已經更改,才顯示其更改動作

  -f : 若該檔案權限無法被更改也不要顯示錯誤訊息

  -v : 顯示權限變更的詳細資料

  -R : 對目前目錄下的所有檔案與子目錄進行相同的權限變更(即以遞回的方式逐個變更)

 

如果是一個可執行文件, 那么在執行時, 一般該文件只擁有調用該文件的用戶具有的權限. 而setuid, setgid 可以來改變這種設置.

setuid: 設置使文件在執行階段具有文件所有者的權限. 典型的文件是 /usr/bin/passwd. 如果一般用戶執行該文件, 則在執行過程中, 該文件可以獲得root權

限, 從而可以更改用戶的密碼.

 

當其他用戶執行oracle的sqlplus這個程序時,他的身份因這個程序暫時變成oracle(這句話也是指代不清,他的身份是誰的身份呢?)

  chmod u+s sqlplus

首先 sqlplus本來就屬於oracle的,所以要說清 執行chmod u+s sqlplus實在非oracle用戶環境地下執行。

這樣才可以使得執行chmod命令的這個非oracle用戶 對 sqlplus 擁有臨時的oracle的權限。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM