Mount
noexec 掛載選項是否暗示 nosuid?
Internet 上的許多指南都建議設置 nosuid和noexec 選項,例如在 /tmp 掛載點上。但是 noexec 不是暗示 nosuid 嗎?不能執行的東西不能使用 suid 位,對吧?
感謝 LJKims 的連結,它可以幫助我回答我自己的問題。我忘記了也可以為目錄設置 suid/sgid 位。
根據GNU coreutils 文件,在 suid-directory 中創建的文件和目錄繼承目錄的所有者(sgid-directories 顯然繼承了組)。因此,如果您想避免這種行為,在掛載點上同時設置 noexec 和 nosuid 是有意義的。
為了完整性:在我對目前 Debian 的測試中,目錄上的 suid 位無效,但只有 sgid 位使文件/目錄繼承目錄的組。
# mkdir /test # chmod 6777 /test # ls -ld /test drwsrwsrwx 2 root root 4096 Jun 10 18:50 /test $ mkdir /test/foo; touch /test/bar $ ls -l /test -rw-r--r-- 1 user root 0 Jun 10 18:51 bar drwxr-sr-x 2 user root 4096 Jun 10 18:51 foo
編輯: 為了完整性: nosuid 掛載選項不影響 sgid 目錄(至少在 Debian 8 上)。
# mount -o loop,nosuid test.img /test # mkdir /test/foo # chmod 2777 /test/foo $ touch /test/foo/bar; mkdir /test/foo/baz $ ls -l /test/foo -rw-r--r-- 1 user root 0 Jun 12 09:46 bar drwxr-sr-x 2 user root 4096 Jun 12 09:46 baz