Re: [問題] setuid的疑問
※ 引述《jtorngl (燕去燕返燕歸來)》之銘言:
: setuid的用途為要執行該可執行檔的權限決定於檔案擁有者
: 那跟直接把群組或其他人的執行權限設成跟該檔案擁有者一樣有何差別?
: 例如:
: -rwsr-xr-- 1 root root 35108 Jun 16 2004 /bin/ping
: -rwxr-xr-x 1 root root 35108 Jun 16 2004 /bin/ping
: -rwsr-xr-x 1 root root 35108 Jun 16 2004 /bin/ping
: 請問這三種權限的差別在哪裡?
: 第一種一般使用者執行ping時會出現permission denied我懂
: 但是為什麼第二種權限設定時一般使用者執行ping時會出現
: ping:icmp open socket:Openretion not permitted
: 是因為有些指令只限定superuser才能執行的關係嗎?
: 看書上對於作用在執行檔的suid、sgid的用途搞不懂
: 一般用的到的好像都是設在目錄上的sgid跟sticky bit而已
setuid最容易懂的例子 應該是更改密碼的passwd指令 如下:
-rwsr-xr-x 1 root root 22960 Jul 17 2006 /usr/bin/passwd 檔案為root所有
~
我們在更改密碼的時候 必須去修改/etc/shadow裡面的密碼欄位
但是/etc/shadow的權限如下:
-r-------- 1 root root 1470 Dec 31 16:08 /etc/shadow
這是一般人不可讀、不可寫的 所以使用者無法直接更動這個檔案
那為了使一般user可以更改密碼 就透過讓passwd指令setuid來達成
user在改密碼時 可透過passwd取得修改/etc/shadow時所需的root權限
而如果把/etc/shadow權限開放給大家可修改 那就糟了...
我可以隨便把大家的密碼換掉 或是把這個檔案砍掉
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.109.230.177
※ 編輯: Tomcat 來自: 140.109.230.177 (01/28 23:36)
推
01/29 00:56, , 1F
01/29 00:56, 1F
→
01/29 00:57, , 2F
01/29 00:57, 2F
推
01/29 11:49, , 3F
01/29 11:49, 3F
※ 編輯: Tomcat 來自: 140.109.41.18 (01/29 12:45)
Linux 近期熱門文章
23
129
PTT數位生活區 即時熱門文章