環境: ubuntu 11.04
首先我用帳號 styx, babe 各用 touch 產生了一個檔案:
(放到 /tmp)
-rw-r
作者: yvb 2013-08-29 22:19:00
都是因為 groups 造成的, 但一般使用者又沒權限 setgroups()另外, fdmaury = 6 那邊因為你沒使用 setgid(), 只用 setuid()
我有用 chgrp 指令強迫變更 mjb 的 group,就達到我要的效果了fdmaury = 6,那個暫且不論,一開始euid與egid都已經是styx,為什麼還能開啟babe的檔案(mjb)呢?
作者: yvb 2013-09-01 22:56:00
你打命令 "id" 時會列出三項: id, gid, 和 groups那個 groups 稱做 supplementary groups只要存取的檔案, gid出現在其中, 就視做以該gid進行存取,因此而可以存取 mjb.
uid也有出現,那為什麼拿掉mjb group r屬性就不能存取了呢?
作者: yvb 2013-09-02 21:02:00
檔案的存取權限判斷:(1) 檔案 uid 等於 euid ==> 取得 user 存取權限(2) 否則, 檔案 gid 等於 egid, 或在 groups 中 ==>取得 group 存取權限(3) 否則, 取得 others 存取權限.有 supplementary groups, 但沒有 supplementary users.不過, 要達到你要的權限存取, 在 file mode 為 -rw-r---- 時,Linux 還是有別的方式: 要使用 setfsuid() 和 setfsgid().
babe只有primary group,沒有supplementary group還是說supplementary包含了primary group
作者: yvb 2013-09-09 19:41:00
不清楚是否有文件規範是否 supplementary 包含 primary group,但目前所使用的 login 程式, 都會叫用 initgroup(),將 primary group 設進 supplementary.更正, initgroups(),