sudo rm -rf / 是啥意思?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sudo rm -rf / 是啥意思?相关的知识,希望对你有一定的参考价值。
是强制,递归删除根分区的意思。删除所有文件夹,包括操作系统本身, rm:删除,参数-rf :递归强制,\\:根目录。
扩展资料:
sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具;
如halt,reboot,su ,这样不仅减少了root用户的登陆 和管理时间,同样也提高了安全性,这个命令的唯一作用就是调用root的权限去执行一些高级别权限的命令,用的时候直接调用 vim /etc/sudoers 这个文件,你可以用root的权限指定哪些用户可以调用sudoers。
sudo不是对shell的一个代替,它是面向每个命令的。sudo的配置文件是sudoers文件,它允许系统管理员集中的管理用户的使用权限和使用的主机。它所存放的位置默认是在/etc/sudoers,属性必须为0440。
而如果你直接用root用户登陆的话,那就直接拥有了root权限,也就是最高级的权限,可以执行任何命令,就不需要再调用sudoers。
参考资料:百度百科 sudo rm -rf
参考技术Asudo rm -rf /强制,递归删除根分区,就是删除所以文件,包括操作系统本身。
用户可以用rm命令删除不需要的目录及文件。该命令的功能是删除一个目录中的一个或多个文件或目录,他也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是断开了链接,源文件保持不变。
扩展资料:
sudo使一般用户不需要知道超级用户的密码即可获得权限。首先超级用户将普通用户的名字、可以执行的特定命令、按照哪种用户或用户组的身份执行等信息,登记在特殊的文件中(通常是/etc/sudoers),即完成对该用户的授权(此时该用户称为“sudoer”)。
在一般用户需要取得特殊权限时,其可在命令前加上“sudo”,此时sudo将会询问该用户自己的密码(以确认终端机前的是该用户本人),回答后系统即会将该命令的进程以超级用户的权限运行。之后的一段时间内(默认为5分钟,可在/etc/sudoers自定义),使用sudo不需要再次输入密码。
参考资料:百度百科 rm
参考技术B 这个命令是用管理员权限清楚要删除的文件夹已经文件里的所有文件(和Windows的删除文件夹一个概念)因为这是命令行的东西,要打开Terminal,在命令行里敲这行命令加要删除的文件名
比如要删除的文件夹名叫test,那就在terminal里敲
sudo rm -rf test
!这会永久删除test文件夹里的所有文件和test这个文件夹,不清楚不要乱尝试 参考技术C sudo rm -rf /
强制,递归删除根分区,你可别这样做啊!致命的。 参考技术D 以最高权限强制删除根目录下的所有文件
sudo是以root权限运行,root类似于Windows的System用户。而rm是删除命令
-rf代表强制删除目录下(包括子目录)所有文件(例如根目录下的abc文件夹下有2个文件和文件夹aaa,文件夹aaa中也有2个文件,那么执行“rm -rf /abc”就会删除所有的4个文件)
/*代表根目录,即Windows中的C盘,根目录存储着Linux系统及用户文件
执行结果:首先肯定有部分关键文件是删不掉的,但系统内核与GRUB仍会受损,所以慎重执行
以 root 身份运行 Python 脚本(使用 sudo) - 有效用户的用户名是啥?
【中文标题】以 root 身份运行 Python 脚本(使用 sudo) - 有效用户的用户名是啥?【英文标题】:Running Python script as root (with sudo) - what is the username of the effective user?以 root 身份运行 Python 脚本(使用 sudo) - 有效用户的用户名是什么? 【发布时间】:2011-08-08 22:56:46 【问题描述】:我最近开始为我的 python 脚本使用 ConfigParser() 来为配置文件添加一些功能。我知道如何使用它,但我有一个问题。我的脚本需要以 root 用户身份运行,使用 sudo。配置文件位于~/.config/scriptconfig/
中,但是当您以 sudo 身份运行脚本时,它会暂时将用户更改为 root,因此找不到配置文件。我想要做的是获取 有效 用户的配置文件,以便它获取 /home/myuser/.config/scriptconfig/config.cfg
而不是 /root/.config/scriptconfig/config.cfg
,这不存在。
我需要脚本能够在不同的机器上运行,而不仅仅是我的。所以我需要获取有效用户的主目录
这是我尝试使用的代码示例:
import os, ConfigParser
config = ConfigParser.RawConfigParser()
homepath = os.path.expanduser("~/")
configpath = homepath + ".config/scriptconfig/config.cfg"
config.read(configpath)
get = config.get('Config', 'Example')
print get
它应该从配置文件中打印example
的值,但是当以sudo 运行时,路径是/home/root
,所以它找不到配置文件。
【问题讨论】:
您是否使用os.getuid()
获取真实用户(而不是有效用户)并从中计算出主目录?还是您只是使用os.path.expanduser()
?
我正在使用os.path.expanduser("~/")
。我使用 os.getuid()
因为脚本必须以 root 身份运行。所以它会检查以确保你是 root,如果你不是它,它会吐出一条错误消息并退出。
@JMariz:既然扩展用户不起作用,你为什么要使用它?
好吧,假设我是另一台机器上的用户myuser2
。我希望它能够在其他人的计算机上运行。所以它需要找到 ~/ 目录。所以它需要能够自动检测用户的主目录。但是作为 sudo 它不能这样做,因为用户已更改为 root。
并非如此。概念是一样的。我只需要找到有效用户的主路径,这就是原始问题所要求的。
【参考方案1】:
如果您使用 sudo (sudo myscript.py
) 运行脚本,则环境变量 $USER
将是 root
,而环境变量 $SUDO_USER
将是执行命令 sudo myscript.py
的用户的名称。以下内容只是对 Cédric Julien 上一篇文章的澄清。考虑以下场景:
Linux 用户bob
登录系统并拥有sudo 权限。他编写了以下名为myscript.py
的python脚本:
#!/usr/bin/python
import os
print os.getenv("USER")
print os.getenv("SUDO_USER")
然后他使用chmod +x myscript.py
使脚本可执行,然后使用以下命令以 sudo 权限执行他的脚本:
sudo ./myscript.py
该程序的输出将是(使用 python 2.x.x):
root
bob
如果 bob 在没有 sudo 权限的情况下运行程序
./myscript.py
他会得到以下输出:
bob
None
【讨论】:
【参考方案2】:如果您想在启动 sudo 命令之前获取已登录的用户,则将其存储在 SUDO_USER 环境变量中。
import os
sudo_username = os.getenv("SUDO_USER")
home_dir = "/home/" + sudo_username
您还拥有用户 ID 和组 ID 的 SUDO_UID 和 SUDO_GID。
【讨论】:
macOS:os.path.expanduser('~'+os.getenv("SUDO_USER"))
通常只获得 SUDO_USER 的用户名是不够的,您需要 Mac 和 Linux 上的主目录,正如 @Liviu 上面提到的那样。如果不使用 sudo,您需要用户本身的主目录。解决方案就像这篇文章***.com/a/42750492/796858【参考方案3】:
这不起作用。
homepath = os.path.expanduser("~/")
所以不要使用它。
你想要这个。
username= os.environ["LOGNAME"]
homepath = os.path.expanduser("~"+username+"/")
http://docs.python.org/library/os.html#os.getlogin
或者这个。
username= pwd.getpwuid(os.getuid())[0]
homepath = os.path.expanduser("~"+username+"/")
【讨论】:
应该是'homepath = os.path.expanduser("~")'以上是关于sudo rm -rf / 是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章
sudo apt-get install build-essential这句是啥意思