怎样用root用户和普通用户默认权限执行只有root用户才有权限的命令

如何在普通用户编写的shell脚本里面执行root用户才有的命令
[问题点数:20分,结帖人VNROOY]
本版专家分:192
结帖率 100%
CSDN今日推荐
本版专家分:22786
2011年9月 Linux/Unix社区大版内专家分月排行榜第一2008年11月 C/C++大版内专家分月排行榜第一
2012年11月 Linux/Unix社区大版内专家分月排行榜第二2011年8月 Linux/Unix社区大版内专家分月排行榜第二2008年10月 C/C++大版内专家分月排行榜第二
2012年8月 Linux/Unix社区大版内专家分月排行榜第三
本版专家分:10113
匿名用户不能发表回复!|
其他相关推荐linux权限问题
&在权限字段一共有十个位 如:
-rwxrwx-w-减号是表示没有这个权限。第一位是用于表示文件属性的,如果是“d”则表示这是一个文件夹,如果是“l”表示这是一个链接,如果是“-”则表示是一个普通文件。第2位到第4位是表示文件拥有者对该文件所拥有的权限,第5位到第7位是文件拥有者所在工作组中其他用户对该文件所拥有的权限,最后3位是其他用户的对该文件所拥有的权限。
权限是对用户基于文件的操作限制,不同等级的用户拥有不同的操作权限,对于每个文件,都分为三种不同权限等级的用户:1:user(文件所有者);2:group(文件所有者所在组的其他用户);3:other(与文件所有者不同组的其他用户),文件所有者可以对文件的权限进行设置,包括读、写和执行3种普通权限。每个等级的用户都可以单独设定。
(注意:root没有权限限制,拥有对文件的所有权限,除非特别说明,下面所讲的都是普通用户)
命令查看文件的权限设置:
#ls –l test
-rwxr-x--x
关于常用的操作,这里不进行讨论。
注意:如果操作的用户,在当前位置的父目录没有读的权限的话,就算对test文件拥有所有权限(就算是文件所有者),系统也会拒绝用户进行ls
–l test操作,这是因为ls命令属于目录的读权限。也就是说:对于一个目录,用户如果没有读权限的话,用户没有对于在此目录下的任何操作;如果用户对test文件有写权限,但是对test文件的父目录没有写权限,那么,用户只有对test文件内容进行修改的操作权限,无法对test文件进行删除,复制,重命名等操作。
然而,如果用户对test
文件没有任何权限,但对test文件所在父目录有写的权限,那么,用户可以进行对test进行删除,复制,重命名等操作,包括对root用户的文件。这是因为,对于一个文件的删除,复制,重命名等操作,由父目录的“写”权限来限制。用户也可以通过vi
来实现对没有写权限的文件进行内容更改,这是由于vi
对于一个文件的编辑过程是先删除原文件,再重建的方法进行,(当然,如果对test的父目录没有写的权限,对test有写权限,也可以对test进行内容编辑)。
在用户对test
文件没有任何权限,但对test文件所在父目录有写的权限情况下,不能对文件进行chmod操作。chmod属于文件本身的写操作。
如果对一个目录testdir
没有执行权限,将不能进行 cd
testdir 的操作。
2.隐藏权限
Linux的的文件还有三个比较少用的隐藏权限setuid, setgid和sticky bit:
设置使文件在执行阶段具有文件所有者的权限。用户在执行一个可执行文件的过程中,拥有文件所有者的全部权限。(安全相关,慎用)。
setgid: 该权限只对目录有效。目录被设置该位后,
任何用户在此目录下创建的文件都具有和该目录所属的组相同的组。也就是说,所建文件对于目录目录创建用户所在组来说,拥有和文件所有者所在组相同的权限。
bit:对目录使用sticky
bit位设置后,
用户能够添加文件但同时不能删除文件。
就算用户对目录具有写权限,
也不能删除不属于他的文件(root除外)。
通过chmod命令来修改隐藏权限
chmod u+s test
&-- 为test文件加上setuid标志.
(setuid 只对文件有效)
chmod g+s test
&-- 为test目录加上setgid标志 (setgid 只对目录有效)
chmod o+t test
&-- 为test加上sticky bit标志
文件属性文件本身的性质,与用户无关,包括root用户都受其限制。但是某些高级属性设置只有root才能进行(如i,a等),并且root用户还可以还原属性,所以其实root用户还是不受限制。
文件的属性可以是以下几种:
A:不要更新文件的访问时间信息。
c:在文件不被访问时,系统自动对其压缩。
d:dump命令将不对该文件备份
s:当文件不被删除时,文件将被完全置零
S:文件无论什么时候改变,都会自动对磁盘进行同步
u:如果文件被删除,系统会保留其数据块以便以后能够恢复这个文件。
a:仅向文件添加内容,如果是目录,则不能删除目录里的文件,只能添加或编辑。
i:文件不可改变。包括root在内不能修改文件。如果是目录,则不能进行删除添加文件的操作。
D:检查压缩文件中的错误。
等等十三个属性。
可以通过命令lsattr显示文件属性
#lsattr test
-u--ia-------
用命令chatrr改变文件属性
#chattr +i test
其中“+i”为参数。表示为test加上不可更改属性。去掉属性用“-”
文件的属性更改是比较少用的操作,所有,在操作前应尽量熟悉其意义。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。IT菜鸟的点点滴滴
linux下普通用户root权限
linux中,普通用户可以使用sudo执行只有root用户才能执行的命令,具体可参考网上的sudoer文件配置策略,我是在/etc/sudoers.d目录下添加一个文件,/etc/sudoers文件会包含/etc/sudoers.d目录下的文件并执行。但是执行是得sudo执行相应命令,从而发生了一些问题:
最主要的是sudo会重置环境变量,此情况可修改/etc/sudoers中Defaults env_reset为Defaults !env_reset从而放弃sudo时的重置操作,但是不安全,不建议这样做。
其次,可以在Defaults env_keep +=“xxxxx” 中添加自己不需要重置的环境变量;
最后,最好的方式是在sudo时指定环境变量,如"sudo env LD_LIBRARY_PATH=/home/sleeping/usr/lib64 LD_CONFIG=/home/sleeping/config",然后加上需要执行的命令即可。
最好使用第三种方式,对系统的影响最小。
linux下将目录授权给其他用户的步骤
Linux学习之如何让普通用户获得ROOT权限
linux添加用户并设置为root权限
linux 下添加用户并赋予root权限
linux下如何添加一个用户并且让用户获得root权限
Linux系统下在普通用户如何使用root权限
Linux给普通用户添加root权限
Linux下普通用户授予root权限方法详解
linux怎么让普通用户拥有管理员权限
linux令普通用户拥有root权限
没有更多推荐了,普通用户执行需要root权限的命令的方法
我们经常会需要让普通用户干需要root权限的活,如普通用户用date命令修改系统日期等。date命令需要root权限才能执行,解决这个问题又2个方法:
由root用户执行chmod 4755 /bin/date
备注:也就是给date命令增加s权限位即设置setuid(4000),这样普通用户就可以执行date命令了,缺点也是很明显的,相当于去掉了date命令的root权限限制。
给shell脚本加壳:
#include "stdio.h"
#include "pwd.h"
main(int argc,char *argv[])
struct passwd *srcc_
char *proc_name = "sh ./myfile.sh");
gid_t srcc_
uid_t srcc_
srcc_pwd=getpwnam("root");
srcc_gid=srcc_pwd-&pw_
srcc_uid=srcc_pwd-&pw_
gg=setgid(srcc_gid);
uu=setuid(srcc_uid);
gg=system(proc_name);
root用户编译该文件生成可执行文件a.out,并chmod 4111 ./a.out
这样普通用户就可以通过执行./a.out完成任务(需要完成的任务写在./myfile.sh脚本里)
以root特权身份运行命令,对初用linux 很又用
如何在非root状态下用root身份执行命令
linux下获得root权限运行程序
『Bash Script』以root权限执行最近一条指令
centos非root用户(普通用户)安装rpm包
在Android中使用adb命令时关于权限方面的一些总结
Centos 普通用户su到root用户提示错误
linux系统中如何设置root权限
没有更多推荐了,其他回答(5)
添加sudo权限
进入超级用户模式。也就是输入"su -",系统会让你输入超级用户密码,输入密码后就进入了超级用户模式。(当然,你也可以直接用root用)
添加文件的写权限。也就是输入命令"chmod u+w /etc/sudoers"。&
编辑/etc/sudoers文件。也就是输入命令"vim /etc/sudoers",进入编辑模式,找到这一 行:"root ALL=(ALL) ALL"在起下面添加"xxx ALL=(ALL) ALL"(这里的xxx是你的用户名),然后保存退出。
撤销文件的写权限。也就是输入命令"chmod u-w /etc/sudoers"。&然后就行了。
收获园豆:10
园豆:1528
园豆:38074
园豆:1528
园豆:38074
园豆:1528
不能吧,有root权限就不叫普通用户啦,只能提升权限不用输入密码
园豆:1012
我瞎猜的。sudo,exit写在脚本里,中间加上要执行的命令,脚本权限设置为755
你这链接都打不开
园豆:1528
我没有试过。我觉得可以给普通用户加root组。然后把普通用户要执行的文件属性设置为同组用户可执行,及chmod g+x
如果所有的root能够执行的命令普通用户都想执行那还不如执行用root登录。肯定是部分命令要普通用户可以执行。所有我觉得把这些命令的执行权限赋值给普通用户就行了
清除回答草稿
&&&您需要以后才能回答,未注册用户请先。

我要回帖

更多关于 普通用户没权限root账户进不去 的文章

 

随机推荐