作者 主題: chown后使文件丢失了s属性,这是为什么?  (閱讀 2477 次)

0 會員 與 1 訪客 正在閱讀本文。

lhr

  • 可愛的小學生
  • *
  • 文章數: 18
    • 檢視個人資料
chown 修改后使得文件丢失s属性

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17484
    • 檢視個人資料
    • http://www.study-area.org
Re: chown后使文件丢失了s属性,这是为什么?
« 回覆 #1 於: 2016-03-23 21:09 »
有操作指令與前後的比較嗎?

lhr

  • 可愛的小學生
  • *
  • 文章數: 18
    • 檢視個人資料
Re: chown后使文件丢失了s属性,这是为什么?
« 回覆 #2 於: 2016-03-25 10:45 »
恩。修改id前这个属性是存在的,修改后s属性变为了x属性。
你在一个linux系统上也可以试试,这个问题。把一个文件的属性设置有s的,然后chown修改一下,这个问题就能复现了

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17484
    • 檢視個人資料
    • http://www.study-area.org
Re: chown后使文件丢失了s属性,这是为什么?
« 回覆 #3 於: 2016-03-25 21:07 »
s會有兩種: suid, sgid
請問你發現的是兩個都修改了還是只修改了其中一種?

還有,您知道 suid & sgid 對於 file & directory 有什麼差別嗎?是否能簡單說說你的理解?

lhr

  • 可愛的小學生
  • *
  • 文章數: 18
    • 檢視個人資料
Re: chown后使文件丢失了s属性,这是为什么?
« 回覆 #4 於: 2016-03-28 16:34 »
suid和sgid修改都试过,都会存在这个问题,就是如果文件有s属性,修改用户id后,属性都会被修改为x.
suid对与普通文件来说,可以让用户的euid、guid变为运行程序的所有者的uid和gid,从而达到可以访问的目的.
sgid相对suid安全一些,可一让同属一个组的用户访问。
目录的话,suid应该没什么作用,如果有sgid,则这个目录下的文件的组会自动转换为这个目录属主所在的组。


这个问题很好复现。是bug还是有其他原因?

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17484
    • 檢視個人資料
    • http://www.study-area.org
Re: chown后使文件丢失了s属性,这是为什么?
« 回覆 #5 於: 2016-03-29 21:51 »
看起來是正常的,可以說是一種保護機制。
因爲 suid/sgid 會讓 process 的 effective ID 繼承 file ownership ,
如果 ownership 改變了,理所當然不應該讓 process 的權限跟著改變,除非管理事後追補。

所以,任何時候,留一份完整的備份很有用。