LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1434|回复: 6

shell初级问题:普通用户执行shell,如何拥有root权限

[复制链接]
发表于 2005-4-7 09:38:41 | 显示全部楼层 |阅读模式
shell初级问题:普通用户执行shell,如何拥有root权限

不知道有没有把问题表述清楚,举个例子:

普通用户 my,  有一个root用户创建的shell ,其中包含 mkdir  /test,以root身份能正常执行

但以my身份执行的话肯定权限不允许

有哪些方法让此操作可行呢?
发表于 2005-4-7 13:54:07 | 显示全部楼层
方法一:setuid
若是linux,这个方法不行(linux禁止了setuid的脚本),某些unix这个方法可能行,但非常的危险。
方法二:变相用su转变身份执行命令
里面当然还要含有root密码,也非常危险。
方法三:用C来实现吧
安全,但可能某些问题由shell解决容易,用C可是个大难题

补充一点:
关于setuid的脚本,搜索一下论坛,有人问过的,危险的地方有一篇文章详细讲述了
回复 支持 反对

使用道具 举报

发表于 2005-4-7 16:25:30 | 显示全部楼层
如果要求无法实现,那么一定是要求出了错
你的脚本是只运行一次的啊?没考虑回退撤销的问题?
建临时文件的话,去 /tmp 建立
回复 支持 反对

使用道具 举报

发表于 2005-4-7 16:44:51 | 显示全部楼层
用sudo赋予普通用户一定的权限应该也可以吧!
回复 支持 反对

使用道具 举报

发表于 2005-4-7 17:55:23 | 显示全部楼层
What about  "sudo "?
回复 支持 反对

使用道具 举报

发表于 2005-4-7 21:45:42 | 显示全部楼层
[翻譯] DJG's Sudo Guide

--------------------------------------------------------------------------------
譯者﹕Jalala <jalala@kkcity.com.tw>



SUDO是一個可以讓某些人暫時以root的身分執行某些經過允許的指令,也可說
像是指派使用者至不同的群組給予特殊的檔案權限,無論如何,他允許使用者
於機器上使用特殊的指令,可以有效指派特殊權限的方法。

第一步,拿到SUDO軟體。

可以到Debian下載(副檔名.deb)於ftp://ftp.debian.org、或下"apt-get ins
tall sudo"

或於http://www.rpmfind.net/RPM尋得。

如果上面都行不通,到http://www.courtesan.com/sudo/拿Tar壓縮檔。

配置SUDO允許執行的使用者

現在SUDO裝好,我們於/etc找一個叫sudoers檔案編輯。
如果上面都行不通,到http://www.courtesan.com/sudo/拿Tar壓縮檔。

配置SUDO允許執行的使用者

現在SUDO裝好,我們於/etc找一個叫sudoers檔案編輯。

話說在前,你還要一個visudo軟體,他已置入SUDO軟體內,它提供安全檢查,
核對sudoers 的語法及斷句的錯誤,及禁止修改文件。

Visudo要Bash的VISUAL參數,設定文字編輯器的環境,請跟我下這個指令:

export VISUAL="pico -w"

在此,我們用PICO?碜鰹槲淖志庉嬈鞯沫h境,我們現在輸入visudo,現在它打
開了/etc/sudoers供我們編輯。
在這,你會看到像這樣幾行的字:

注意:這是Debian的安裝方式,這裡有些參數我沒有著墨,我們是用預設值,
引以為例。這份是Sudo基本安裝指南,你可以輸入"man sudoers"或"man sudo
"看看我沒寫的地方。

#主機群列表

#使用群列表

#使用命令群

#設定某人能使用某命令
root    ALL=(ALL) ALL

以下為範例,純屬虛構。不過你聽完我這一席話,你就知道設定的方法。
主機名稱,就是可以使用Sudo的主機或簡易機主機名,在這裡可以指定一個或
多群主機,看看下面設法:

I.主機群列表
這一部分為主機的名稱。格式為:

Host_Alias 主機群名稱 = 主機一,主機二,其他...

第一?就是設定使用群的定義,如果只有一台要用Sudo,就不用設定。

II.使用群列表

這一部分為使用者群組的名稱。格式為:

User_Alias 使用群名稱 = 使用者一,使用者二,其他...
II.使用群列表

這一部分為使用者群組的名稱。格式為:

User_Alias 使用群名稱 = 使用者一,使用者二,其他...

我們?碓嚳纯矗O定三個群組:ADMINS、PARTTIME及LINUXGROUP,也可以包含
不同組別的使用者。

User_Alias      ADMINS = netman, harrier, master
User_Alias      PARTTIME = jalala, sonar , huge
User_Alias      LINUXGROUP = lyte, SirPlaya

III.使用命令群

這一部分跟上面兩種格式相同:
User_Alias      ADMINS = netman, harrier, master
User_Alias      PARTTIME = jalala, sonar , huge
User_Alias      LINUXGROUP = lyte, SirPlaya

III.使用命令群

這一部分跟上面兩種格式相同:

Cmnd_Alias 命令群  = 命令一,命令二,其他...

如果要加入特別參數,可以用[]通用參數使用指令,舉個例子,USERS 這群使
用/usr/sbin/adduser [A-z]*,後面可使用一至多個參數。

Cmnd_Alias      BROWSE = /bin/ls, /bin/cd, /bin/cat
Cmnd_Alias      KILL = /bin/kill
Cmnd_Alias      USERS = /usr/sbin/adduser [A-z]*,/usr/sbin/userdel -
r [A-z]*

IV.設定某人能使用某命令
下面這行就是全部的指令都能執行,不過有個麻煩是「他什麼都能做」。

root    ALL=(ALL) ALL

下一行就是設定ADMINS群組裡面的netman、harrier及master,給予權限。

ADMINS ALL=ALL

下一行就比較有趣了喔,我們?碓O定PARTTIME裡的這三位臨時工jalala、sonar
及huge,可以在所有伺服器中,使用USERS、KILL及BROWSE這三群指令,還可以
執行/usr/bin/passwd,可是我們現在不想讓他改密碼( 因為我怕他們信用太低
把我的主機吞了 ),那有什麼方法,?恚】纯次蚁旅嬖觞N變魔術:

PARTTIME ALL=USERS,KILL,BROWSE,/usr/bin/passwd [A-z]*, !/usr/bin/pass
wd root

看到了嗎,我在/usr/bin/passwd我加了一個"!",這樣就Ok拉。

djg DJNET=ALL

那這一行又是什麼,就是讓DJNET主機群?淼膁jg「開放所有權限」。

最後快大功告成了,我們?碓O定LINUXGROUP內的lyte及SirPlaya 執行KILL,USE
RS, and BROWSE命令群內,本機的www 使用者能用的指令表,讓LINUXHELP(lin
group1及lingroup2這兩台)使用。該使用者可暫時使用Root 身份執行該指令。

LINUXGROUP LINUXHELP=(www) ALL (root) KILL,USERS,BROWSE

好了,現在/etc/sudoers經過適當調整後,存檔?K離開visudo,如果語法錯錯誤
他還會提示您。
使用SUDO

現在看看我怎麼用Sudo:

djg@localhost:~ $ sudo -l
Password:   (在這輸入您的密碼)

如此一?恚琩jg 就會按照/etc/sudoers的規則,?矸峙渲噶睢

djg@localhost:~ $ sudo -u 使用者可以執行的指令 commandhere
Password:   (在這輸入您的密碼)
(如果無誤就會執行「使用者可以執行的指令」)

如果您使用root指令,-u參數會為預設值,通常這不需要,最簡單的用法:

djg@localhost:~ $ sudo commandhere

sudo於五分鐘之內,不需重新輸入密碼。

你可以?腟udo使用說明書得到你需要的資?,我抽空還會修一修這份文件。
現在,你大概對使用者給予特殊權限,已經有個譜了,還有問題的話,你可以?

LinuxHelp.net on DALnet問問題吧

本文作者DJG, djg@linuxhelp.net於2000年一月一日編寫。
譯者Jalala@TFUG,Jalala放棄本篇文章利益,僅供各大教學網站及網中人站長
做教學使用,本文絕對不擔保引起之衍生利益損失或意外損失擔保責任。
Jalala於2002年 7月 9日翻譯

======================================================================
本文的MD5檢查碼:672a92248700185e0d24c42a8ea8f57a

--
長期使用傻瓜相機的結果, 把人變成只會按一下電動開關
Linux/FreeBSD 就像 SLR 相機, 讓我們正確操控光圈、快門、對焦.
Free Software Fundation  自由、合法、專業、免費 的軟體
--
回复 支持 反对

使用道具 举报

发表于 2005-4-8 15:06:30 | 显示全部楼层
1,想方设法提高自己的权限,知道root级!
2,让root给你sudo的机会
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表