买个苹果笔记本什么时候出来的电脑,有没有出的

中国领先的IT技术网站
51CTO旗下网站
Linux系统下,如何以其他用户身份运行程序
本教程给出了Linux系统下,如何使用runuser命令、su命令和sudo命令以其他用户身份来运行程序,以及这三个命令的运行效率比较。
作者:Mitchell Chu来源:| 15:46
#1:runuser命令
runuser命令使用一个替代的用户或者组ID运行一个Shell。这个命令仅在root用户时有用。
仅以会话PAM钩子运行,并且没有密码提示。如果用一个非root用户,并且该用户没有权限设置user ID,这个命令将会因为程序没有setuid而失败。因runuser不会运行认证和账户PAM钩子,它比su更底层。
runuser&-l&userNameHere&-c&'command'&runuser&-l&userNameHere&-c&'/path/to/command&arg1&arg2'&
举例来说,作为一个root用户,你也许想检查下oracle用户下的shell资源限制,输入:
#&runuser&-l&oracle&-c&'ulimit&-SHa'&
或者监察下nginx或lighttpd web服务器限制:
#&runuser&-l&nginx&-c&'ulimit&-SHa'&
#&runuser&-l&lighttpd&-c&'ulimit&-SHa'&
有时,root用户由于权限(安全)问题不能浏览NFS挂载的共享:
#&ls&-l&/nfs/wwwroot/cyberciti.biz/http&
#&cd&/nfs/wwwroot/cyberciti.biz/http&
可能的输出:
-bash:&cd:&/nfs/wwwroot/cyberciti.biz/http/:&Permission&denied&
尽管如此,apache用户被允许浏览或访问挂载在/nfs/wwwroot/cyberciti.biz/http/下基于nfs的系统:
#&runuser&-l&apache&-c&'ls&-l&/nfs/wwwroot/cyberciti.biz/http/'&
#&runuser&-l&apache&-c&'cd&/nfs/wwwroot/cyberciti.biz/http/;&vi&index.php'&
使用runuser命令,无需使用密码,并且,只能在root用户下使用。
可用选项:
1. -l: 让shell成为登录shell,用 runuser -l PAM 文件替代默认的
2. -g:指定主要的组
3. -G 追加组
4. -c:命令,要传到shell的单个命令
5. --session-command=COMMAND:使用-c传递单个命令道shell中并且不创建新的会话
6. -m: 不重置环境变量。
#2:su命令
su命令允许你成为一个超级用户或者替代用户(substitute user),欺骗用户(spoof user),设置用户(set user)或者切换用户(switch user)。它允许一个Linxu用户切换当前用户到那些你知道密码的目标用户,切换包括与之关联的运行中的控制台(console)或者Shell,它的语法如下:
su&-&su&-&username&
切换到root用户
su命令会询问目标用户的密码,在你的shell命令行中输入 su - 来切换到root用户(你必须知道root用户的密码):
vivek@wks01:~$&su&-&
vivek@wks01:~$&su&-&root&
输出示例:
Password:&root@wks01:/root#&logout&vivek@wks01:~$&
如果输入了正确的root密码,会话的所有权(这里应该指当前控制台的上下文&&译注)将改为root账户。输入logout可以退出一个root登录的shell,输入 whoami或者id命令来验证当前会话的所有者:
用root账户运行命令
su&-&root&-c&&command&&#&OR&su&-&-c&&command&arg1&&
查看/root目录下的内容,这些原本是普通用户无法访问的,运行:
su&-&root&-c&&ls&-l&/root&&
需要注意的是,Linix和一些Unix-like系统有一个wheel用户组,并且只允许这个组内的用户使用su切换到root。
使用su命令来让其他用户运行命令
下面这个命令是切换到oracle的账户,并且显示限制清单:
$&su&-&oracle&-c&'ulimit&-aHS'&
同样, 如果提供了正确的oracle密码,会话所有权将会变成oracle账户。su命令的日志保存在系统日志中,一般是在/var/log/auth.log(Debian/Ubuntu)或者/var/log/secure(RHEL/CentOS)。
#3:sudo命令
sudo以另外的用户来执行一个命令,但是它跟着一组关于那些用户可以以那些其他用户执行那些命令的规则(有点绕口&&译注)。这个规则在/etc/sudoers这个文件中被定义。不像su,sudo验证用户是靠用户自己的密码而不是那个要切换的用户密码。当提供一个审计跟踪命令和他们的参数时(原文:...whileproviding an audit trail of the commands and their arguments&&译注)sudo允许一个系统管理员给某些用户(或用户组)委派以root或其他用户来运行某些(或全部)命令的权限。这允许无需在用户之间共享密码就可以在指定宿主上将指定命令委派给指定用户。语法如下:
sudo&command&
参照下面的这些链接来获取更多信息:
1. 在Linux操作系统如何配置和使用sudo工具1
2. sudo项目主页2
GUI工具注意事项(su和sudo的前端GUI)
gksu 命令是su的前台,gksudo是sudo的前端。他们的主要用途是用来运行需要root权限但不需要运行一个X terminal emulator和使用直接使用su的图形化命令。语法如下:
gksu&[-u&&user&]&[options]&&command&&gksudo&[-u&&user&]&[options]&&command&&
仅输入gksu,将会显示下面这个弹窗:
图1:运行中的gksu
然后,你将会被要求输入root用户的密码:
图2:Gnome gksu对目标用户的验证框
你也可以直接运行下面代码:
gksu&-u&root&'ls&/root'&
或,以oracle用户运行命令:
gksu&-u&oracle&'ulimit&-aHS'&
或作为root登录:
gksu&-u&root&-l&
总结:runuser VS su VS sudo
请查看man帮助页面来获取更多关于su,sudo,gksu,和gksudo命令的相关信息。
本文是nixCraft一篇文章的翻译,非常感谢nixCraft提供如此棒的教程,原文可以通过参考的原文连接查看,在翻译中省略了头尾一些非相关信息,同时由于翻译时间有限,是通过边看边译的形式完成此篇博文,错误肯定非常多,还请大家多多指正。
1.& 在Linux操作系统下如何配置和使用sudo()
2.& sudo项目主页()
3. 本篇博客原文()
【编辑推荐】
【责任编辑: TEL:(010)】
大家都在看猜你喜欢
头条头条外电头条外电
24H热文一周话题本月最赞
讲师:0人学习过
讲师:5人学习过
讲师:0人学习过
精选博文论坛热帖下载排行
本书综合介绍了微软的Windows Server 2003操作系统和微软其他常用应用软件提供的服务,同时融入了作者在Windows网络管理上的多年实际应用经...
订阅51CTO邮刊2005年1月 Linux/Unix社区大版内专家分月排行榜第三
2005年1月 Linux/Unix社区大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。博客访问: 6858696
博文数量: 802
注册时间:
认证徽章:
Oracle ACE 总监,OCM联盟(ocmu.org)创始人,恩墨学院()创始人,ITPUB Oracle专题深入讨论版版主,资深Oracle数据库专家,北京大学理学硕士,获Oracle OCM 10g 11g认证,ACOUG核心成员,DATAGURU专家团成员,Blogger。Good luck.
ITPUB论坛APP
ITPUB论坛APP
APP发帖 享双倍积分
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: Linux
sudo命令可以实现在oracle用户下以root用户身份执行命令,这里给出sudo命令的配置和使用方法。1.美妙的sudo命令存在价值root用户具有所有的操作权限,是真正的“God”级别的用户,这样是非常危险的,sudo便是权利下放的途径。使用sudo,我们可以实现将root用户一些特定的权限定制后下放。2.配置sudoers实现oracle用户以root身份执行命令我们可以通过配置/etc/sudoers文件完成对sudo的配置。其实,若想对sudo命令的进行完美配置相对比较复杂,其中包括别名定义和授权规则两大类别,详细的说明可以使用sudo的帮助页进行查看。不过我们若只是为了达到在oracle用户下方便的以root用户身份执行命令,相对是简单的。这里给出配置方法。1)在root用户下编辑sudoers配置文件如果不参考sudo命令的帮助页,单纯的从sudoers配置文件中的注释信息中也可以获得有效的调整提示。[root@secdb1 ~]# vi /etc/sudoers(1)修改前内容# sudoers file.## This file MUST be edited with the 'visudo' command as root.## See the sudoers man page for the details on how to write a sudoers file.## Host alias specification# User alias specification# Cmnd alias specification# Defaults specification# User privilege specificationroot&&& ALL=(ALL) ALL# Uncomment to allow people in group wheel to run all commands#%wheel ALL=(ALL)&&&&&& ALL# Same thing without a password#%wheel ALL=(ALL)&&&&&& NOPASSWD: ALL# Samples# %users& ALL=/sbin/mount /cdrom,/sbin/umount /cdrom# %users& localhost=/sbin/shutdown -h now(2)变动内容是将与wheel组相关的配置信息前的注释符号“#”去掉。使所有属于wheel组的用户具有root用户的所有命令执行的权限。(3)修改后内容# sudoers file.## This file MUST be edited with the 'visudo' command as root.## See the sudoers man page for the details on how to write a sudoers file.## Host alias specification# User alias specification# Cmnd alias specification# Defaults specification# User privilege specificationroot&&& ALL=(ALL) ALL# Uncomment to allow people in group wheel to run all commands%wheel ALL=(ALL)&&&&&& ALL# Same thing without a password%wheel ALL=(ALL)&&&&&& NOPASSWD: ALL# Samples# %users& ALL=/sbin/mount /cdrom,/sbin/umount /cdrom# %users& localhost=/sbin/shutdown -h now2)将oracle用户添加到wheel组中[root@secdb1 ~]# vi /etc/group在group文件中找到“wheel”关键字所在行记录。在wheel记录后面添加“,oracle”,实现将oracle用户加入到wheel组中修改前内容wheel:x:10:root修改后内容wheel:x:10:root,oracle到此,配置阶段结束。此时oracle用户可以通过sudo的方式执行root用户下的所有命令。3.测试oracle用户下sudo的执行效果我们可以使用“id”命令简单测试一下sudo命令的可用性。1)oracle用户下使用id命令获得当前用户的信息[oracle@secdb1 ~]$ iduid=500(oracle) gid=501(oinstall) groups=10(wheel),500(dba),501(oinstall) context=user_u:system_r:unconfined_t2)使用sudo方式执行“id”命令[oracle@secdb1 ~]$ sudo iduid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel) context=root:system_r:unconfined_t很显然,此时的反馈信息中记录了root用户的相关信息,并且此处没有提示输入密码。4.小结关于sudo的深入配置方法,请参考sudo的帮助页(可以使用“man sudo”自行查询)。本文给出的是在oracle用户使用sudo命令快速简便的配置方法。简便带来的结果是定制的不够细致,此时oracle用户可以以root身份执行所有命令,没有体现出sudo对权限限制的真谛。Good luck.secooler11.05.14-- The End --
阅读(7881) | 评论(0) | 转发(2) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。在普通用户下进入root用户
在普通用户下进入root用户
在普通用户下登录,首次启用root的操作如下:
XX:~$ &sudo passwd root
[sudo] password for XX: 输入密码
确认:输入密码
再确认:输入密码
提示成功更新密码
此时,root用户已经启用。
进入root的操作如下:
XX:~$ &su root
密码:输入密码
此时,已经可以进行root权限的操作了。
也可以用:
su 普通用户名
切换到普通用户下进行操作。此时不需要输入密码了。
我用的是ubuntu Linux 12.10版。以上都本人验证可用。
此种方法开机登录时貌似只能从普通用户登录,然后从终端用su root操作进入root用户。
(window.slotbydup=window.slotbydup || []).push({
id: '2467140',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467141',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467142',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467143',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467148',
container: s,
size: '1000,90',
display: 'inlay-fix'}

我要回帖

更多关于 苹果笔记本什么时候出来的 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信