用戶態軟件讀寫root文件方法

在linux中每個進程有三個[實際上有第4個]用戶標識符.
        real uid      : 真實用戶ID.
        saved uid     : 已保存用戶ID
        effective uid : 有效用戶ID
    真實用戶ID(real uid)是login時的用戶.而在運行過程中,用於所有的安全檢查的是有效用戶ID(effective uid).

用戶態軟件訪問root文件方法:

1、setuid(0) || seteuid(0) || 
2、chown root:root ${exe}

3、chmod 4111 ${exe} #改變有效id和已保存id


gtk3+ 不能使用setuid的方法,因爲setuid的時候gtk會初始化動態加載模塊,大概50萬行,這是一個安全漏洞,所以gtk禁用setuid,setgid。gtk程序想使用root權限可以嘗試使用一個root的後臺程序或者用gksu的方法啓動時輸入root密碼



現在有一個普通用戶operation,我想讓他有權限重啓nginx服務,但是不允許他操作其他的系統服務及程序,從網上找到了很多解決方法,都是基於sudoer的配置的

operation ALL=(ALL) NOPASSWD: /etc/init.d/nginx restart

格式如下:
USER_FLAG HOST_FLAG=(RUNAS_FLAG) NOPASSWD:COMMAND_FLAG
另外建議使用visudo命令進行編輯,不要直接修改/etc/sudoers。如命令格式不對、使用visudo編輯時保存退出會提示錯誤的


參考文章:http://blog.chinaunix.net/uid-20722281-id-160009.html

http://www.gtk.org/setuid.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章