精华内容
下载资源
问答
  • 2021-06-07 04:42:01

    每个手机的储存位置不一样,这些手机网站的根目录又在哪呢?下面小编整理了一些关于手机网站根目录在哪的问答,希望能对大家有所帮助。

    乐视手机储存的根目录在哪?

    推荐回答:根目录就是进入文件管理器以后,第一个目录。

    华为手机中的应用程序备份文件夹在什么目录下?

    推荐回答:则看内置的/,应该是和网络备份有关系;sdcard)下的HuaweiBackup目录,是一个apk文件还有一个__online_temp的目录你想问华为的全备份工具的备份吗?在你的外置SD卡(如果没有

    小米2s的内置存储根目录在哪?

    推荐回答:下面是查看小米2s的根目录的方法:1、打开手机,然后进入文件管理。2、点击文件管理里面的手机,然后进入。3、此时看见的就是储存的根目录,不进入任何文件夹。备注:刷机操作时候下载的rom会使用根目录。

    手机的内部存储空间的根目录是指哪个文件?

    推荐回答:就是D盘的根目录 查看原帖就是第一阶目录如果是电脑的话:/,D;

    安卓手机sd卡根目录在哪?

    推荐回答:根目录下的sdcard还有一个就是在sdcard目录下有一个external_sd

    小米note的手机内存根目录在哪?

    推荐回答:就是打开资源管理器看到的第一个目录了

    什么是内存卡的根目录?

    推荐回答:好. 那就不是根目录了.比如你在里面建了一个文件夹.根目录也就是一级目录的意思. 然后再在文件夹里存储东西.就是你双击打开内存卡 出来的可存储东西的地方就是根目录。

    MIUI V5 3.5.10 里面的文件管理器可以查看手机内部存储系统文件目录吗?

    推荐回答:不可以的,手机的内部存储建议您不要读取和修改。谢谢你支持小米手机,帮助你更准确的解决问题,否则可能会造成手机没法正常使用。

    如果你想知道更详细的描述,欢迎到猪八戒网服务购咨询有关专业人士,帮助你解决你遇到的麻烦。

    更多相关内容
  • linux根目录解释

    千次阅读 2020-05-29 15:24:17
    一、 /bin 目录 看到“bin”大家应该能想到 bin 文件, bin 文件就是可执行文件。所以此目录下存放着系统 需要的可执行文件,一般都是一些命令,比如.../dev/ttymxc0(I.MX6ULL 根目录会有此文件)就表示 I.MX6ULL 的串口

    一、 /bin 目录

    看到“bin”大家应该能想到 bin 文件, bin 文件就是可执行文件。所以此目录下存放着系统需要的可执行文件,一般都是一些命令,比如 ls、 mv 等命令。此目录下的命令所有的用户都可以使用。

    二、 /dev 目录

    dev 是 device 的缩写,所以此目录下的文件都是和设备有关的,此目录下的文件都是设备文件。

    在 Linux 下一切皆文件,即使是硬件设备,也是以文件的形式存在的,比如:

    /dev/ttymxc0(I.MX6ULL 根目录会有此文件)就表示 I.MX6ULL 的串口 0,我们要想通过串口 0发送或者接收数据就要操作文件/dev/ttymxc0,通过对文件/dev/ttymxc0 的读写操作来实现串口0 的数据收发。

    /dev/console 系统控制台,也就是直接和系统连接的监视器。

    /dev/fd 软驱设备驱动程序。如: / d e v / f d 0指系统的第一个软盘,也就是通常所说的a:盘,/ d e v / f d 1指第二个软盘,. . . . . .而/ d e v / f d 1 h 1 4 4 0则表示访问驱动器1中的4 . 5高密盘。

    /dev/tty 提供虚拟控制台支持。如: / d e v / t t y 1指的是系统的第一个虚拟控制台, / d e v / t t y 2则是系统的第二个虚拟控制台。

    /dev/pty 提供远程登陆伪终端支持。在进行te l n e t登录时就要用到/ d e v / p t y设备。

    /dev/ttys 计算机串行接口,对于d o s来说就是“ c o m 1”口。 9. /dev/cua 计算机串行接口,与调制解调器一起使用的设备。

    /dev/null “黑洞”,所有写入该设备的信息都将消失。例如:当想要将屏幕上的输出信息隐藏起来时,只要将输出信息输入到/ d e v / n u l l中即可。

    三、 /etc 目录

    这是我们linux系统的神经中枢,它包含所有与系统相关的配置文件。一个“配置文件”要被定义为用来控制程序操作的本地文件;

    它必须是静态的,不能是可执行二进制文件。因此,定期备份这个目录是个好主意。如果您重新安装或丢失当前的安装,它肯定会为您节省大量的重新配置时间。

    通常,不能存放二进制文件

    /etc/rc或/etc/rc.d或/etc/rc*xx.d 启动、或改变运行级时运行的脚本或脚本的目录。

    /etc/passwd 用户数据库,其中的域给出了用户名、真实姓名、用户起始目录、加密口令和用户的其他信息。

    /etc/fdprm 软盘参数表,用以说明不同的软盘格式。可用setfdprm 进行设置。更多的信息见s e t f d p r m的帮助页。

    /etc/fstab 指定启动时需要自动安装的文件系统列表。也包括用swapon -a启用的s w a p区的信息。

    /etc/group 类似/etc/passwd ,但说明的不是用户信息而是组的信息。包括组的各种数据。

    /etc/inittab init 的配置文件。

    /etc/issue 包括用户在登录提示符前的输出信息。通常包括系统的一段短说明或欢迎信息。具体内容由系统管理员确定。

    /etc/magic “f i l e”的配置文件。包含不同文件格式的说明,“f i l e”基于它猜测文件类型。

    /etc/motd m o t d是message of the day的缩写,用户成功登录后自动输出。内容由系统管理员确定。常用于通告信息,如计划关机时间的警告等。

    /etc/mtab 当前安装的文件系统列表。由脚本( s c r i t p )初始化,并由mount 命令自动更新。当需要一个当前安装的文件系统的列表时使用(例如df 命令)。

    /etc/shadow 在安装了影子( s h a d o w )口令软件的系统上的影子口令文件。影子口令文件将/ e t c / p a s s w d文件中的加密口令移动到/ e t c / s h a d o w中,而后者只对超级用户( r o o t )可读。这使破译口令更困难,以此增加系统的安全性。

    /etc/login.defs l o g i n命令的配置文件。

    /etc/printcap 类似/etc/termcap ,但针对打印机。语法不同。

    /etc/profile 、/ e t c / c s h . l o g i n、/etc/csh.cshrc 登录或启动时b o u r n e或c shells执行的文件。这允许系统管理员为所有用户建立全局缺省环境。

    /etc/securetty 确认安全终端,即哪个终端允许超级用户( r o o t )登录。一般只列出虚拟控制台,这样就不可能(至少很困难)通过调制解调器( m o d e m )或网络闯入系统并得到超级用户特权。

    /etc/shells 列出可以使用的s h e l l。chsh 命令允许用户在本文件指定范围内改变登录的s h e l l。提供一台机器f t p服务的服务进程ftpd 检查用户s h e l l是否列在/etc/shells 文件中,如果不是,将不允许该用户登录。

    /etc/termcap 终端性能数据库。说明不同的终端用什么“转义序列”控制。写程序时不直接输出转义序列(这样只能工作于特定品牌的终端),而是从/etc/termcap 中查找要做的工作的正确序列。这样,多数的程序可以在多数终端上运行。

    四、/lib 目录

    lib 是 library 的简称,也就是库的意思,因此此目录下存放着 Linux 所必须的库文件, 存放着内核模块和系统最基本的动态链接共享库。其作用类似于Windows里的.dll文件。

    命令和用户编写的应用程序要使用这些库文件。几乎所有的应用程序都须要用到这些共享库,是二进制文件。它们对于基本系统功能是必不可少的。

    包含支持位于/bin和/sbin下的二进制文件的库文件.

    库文件名为 ld或lib.so.*

    例如:ld-2.11.1.so,libncurses.so.5.7

    /lib/modules
    /lib/modules 目录包含系统核心可加载各种模块,尤其是那些在恢复损坏的系统时重新引导系统所需的模块(例如网络和文件系统驱动)。

    五、/mnt 目录

    临时挂载目录,一般是空目录,可以在此目录下创建空的子目录

    比如/mnt/sd、/mnt/usb,这样就可以将 SD 卡或者 U 盘挂载到/mnt/sd 或者/mnt/usb 目录中。

    系统提供这个目录是让用户临时挂载别的文件系统。这是一个通用的挂载点,您可以在其中挂载文件系统或设备。安装是使系统可用的文件系统。安装后,您的文件将可在挂载点访问。该目录通常包含挂载点或子目录,在其中安装软盘和CD。如果你愿意,你也可以在这里创建额外的挂载点。标准安装点将。包括/MNT/CDROM和/MNT/软盘。在系统上的任何地方创建一个挂载点都没有限制,但按照惯例,纯粹的实用性不会浪费文件系统的挂载点。

    六、/proc 目录

    包含系统进程的相关信息。
    /proc 文件系统是一个伪的文件系统,就是说它是一个实际上不存在的目录,此目录一般是空的,因而这是一个非常特殊的目录。它并不存在于某个磁盘上,而是由核心在内存中产生。这个目录用于提供关于系统的信息。下面说明一些最重要的文件和目录(/proc 文件系统在proc man页中有更详细的说明)。

    当 Linux 系统启动以后会将此目录作为 proc 文件系统的挂载点, proc是个虚拟文件系统,没有实际的存储设备。 proc 里面的文件都是临时存在的,一般用来存储系统运行信息文件。系统资源以文本信息形式存在。例如:/proc/uptime

    这是一个虚拟的文件系统,包含有关正在运行的进程的信息。例如:/proc/{pid}目录中包含的与特定pid相关的信息。

    在Linux下,/proc包含每个运行的进程的目录,包括内核进程。

    /proc/x 关于进程x的信息目录,这一x是这一进程的标识号。每个进程在/proc 下有一个名为自己进程号的目录。

    /proc/cpuinfo 存放处理器( c p u )的信息,如c p u的类型、制造商、型号和性能等。

    /proc/devices 当前运行的核心配置的设备驱动的列表。

    /proc/dma 显示当前使用的d m a通道。

    /proc/filesystems 核心配置的文件系统信息。

    /proc/interrupts 显示被占用的中断信息和占用者的信息,以及被占用的数量。

    /proc/ioports 当前使用的i / o端口。

    /proc/kcore 系统物理内存映像。与物理内存大小完全一样,然而实际上没有占用这么多内存;它仅仅是在程序访问它时才被创建。(注意:除非你把它拷贝到什么地方,否则/proc 下没有任何东西占用任何磁盘空间。)

    /proc/kmsg 核心输出的消息。也会被送到s y s l o g。

    /proc/ksyms 核心符号表。

    /proc/loadavg 系统“平均负载”; 3个没有意义的指示器指出系统当前的工作量。

    /proc/meminfo 各种存储器使用信息,包括物理内存和交换分区( s w a p )。

    /proc/modules 存放当前加载了哪些核心模块信息。

    /proc/net 网络协议状态信息。

    /proc/self 存放到查看/proc 的程序的进程目录的符号连接。当2个进程查看/proc 时,这将会是不同的连接。这主要便于程序得到它自己的进程目录。

    /proc/stat 系统的不同状态,例如,系统启动后页面发生错误的次数。

    /proc/uptime 系统启动的时间长度。

    /proc/version 核心版本。

    七、/usr 目录

    要注意, usr 不是 user 的缩写,而是 Unix Software Resource 的缩写,也就是 Unix 操作系统软件资源目录。

    这里有个小知识点,那就是 Linux 一般被成为类 Unix 操作系统,苹果的 MacOS也是类 Unix 操作系统。关于 Linux 和 Unix 操作系统的渊源大家可以直接在网上找 Linux 的发展历史来看。

    既然是软件资源目录,因此/usr 目录下也存放着很多软件,一般系统安装完成以后此目录占用的空间最多。

    /usr 是个很重要的目录,通常这一文件系统很大,因为所有程序安装在这里。/usr 里的所有文件一般来自l i n u x发行版( d i s t r i b u t i o n );本地安装的程序和其他东西在/usr/local 下,因为这样可以在升级新版系统或新发行版时无须重新安装全部程序。/usr 目录下的许多内容是 可选的,但这些功能会使用户使用系统更加有效。/ u s r可容纳许多大型的软件包和它们的配置文件。下面列出一些重要的目录(一些不太重要的目录被省略了)。

    包含二进制文件、库文件、文档和二级程序的源代码。

    /usr/bin中包含用户程序的二进制文件。如果你在/bin中找不到用户二进制文件,到/usr/bin目录看看。例如:at、awk、cc、less、scp。

    /usr/sbin中包含系统管理员的二进制文件。如果你在/sbin中找不到系统二进制文件,到/usr/sbin目录看看。例如:atd、cron、sshd、useradd、userdel。

    /usr/local中包含了从源安装的用户程序。例如,当你从源安装Apache,它会在/usr/local/apache2中。
    /usr/x11r6 包含x wi n d o w系统的所有可执行程序、配置文件和支持文件。为简化x的开发和安装,x的文件没有集成到系统中。x wi n d o w系统是一个功能强大的图形环境,提供了大量的图形工具程序。用户如果对microsoft wi n d o w s或m a c h i n t o s h比较熟悉的话,就不会对x wi n d o w系统感到束手无策了。

    /usr/x386 类似/ u s r / x 11r6 ,但是是专门给x 11 release 5的。

    /usr/bin 集中了几乎所有用户命令,是系统的软件库。另有些命令在/bin 或/usr/local/bin 中。

    /usr/sbin包括了根文件系统不必要的系统管理命令,例如多数服务程序。

    /usr/man、/ u s r / i n f o、/ u s r / d o c 这些目录包含所有手册页、g n u信息文档和各种其他文档文件。每个联机手册的“节”都有两个子目录。例如: / u s r / m a n /m a n 1中包含联机手册第一节的源码(没有格式化的原始文件),/ u s r / m a n / c a t 1包含第一节已格式化的内容。l联机手册分为以下九节:内部命令、系统调用、库函数、设备、文件格式、游戏、宏软件包、系统管理和核心程序。

    /usr/include 包含了c语言的头文件,这些文件多以. h结尾,用来描述c语言程序中用到的数据结构、子过程和常量。为了保持一致性,这实际上应该放在/usr/lib 下,但习惯上一直沿用了这个名字。

    /usr/lib 包含了程序或子系统的不变的数据文件,包括一些s i t e - w i d e配置文件。也包含了/usr/bin和/usr/sbin用到的库。名字l i b来源于库(library); 编程的原始库也存在/usr/lib 里。当编译程序时,程序便会和其中的库进行连接。也有许多程序把配置文件存入其中。

    /usr/local 本地安装的软件和其他文件放在这里。这与/ u s r很相似。用户可能会在这发现一些比较大的软件包,如t e x、e m a c s等。/var文件系统/var 包含系统一般运行时要改变的数据。通常这些数据所在的目录的大小是要经常变化或扩充的。原来/ v a r目录中有些内容是在/ u s r中的,但为了保持/ u s r目录的相对稳定,就把那些需要经常改变的目录放到/ v a r中了。每个系统是特定的,即不通过网络与其他计算机共享。 下面列出一些重要的目录(一些不太重要的目录省略了)。

    在这里插入图片描述

    八、/var 目录

    此目录存放一些可以改变的数据。这个目录下可以找到内容可能增长的文件。
    这包括 - 系统日志文件(/var/log);包和数据库文件(/var/lib);电子邮件(/var/mail);打印队列(/var/spool);锁文件(/var/lock);多次重新启动需要的临时文件(/var/tmp);

    /var/catman 包括了格式化过的帮助( m a n )页。帮助页的源文件一般存在/ u s r / m a n / m a n中;有些m a n页可能有预格式化的版本,存在/ u s r / m a n / c a t中。而其他的m a n页在第一次看时都需要格式化,格式化完的版本存在/var/man 中,这样其他人再看相同的页时就无须等待格式化了。 (/var/catman 经常被清除,就像清除临时目录一样。)

    /var/lib 存放系统正常运行时要改变的文件。

    /var/local 存放/usr/local 中安装的程序的可变数据(即系统管理员安装的程序)。注意,如果必要,即使本地安装的程序也会使用其他/var 目录,例如/var/lock 。

    /var/lock 锁定文件。许多程序遵循在/var/lock 中产生一个锁定文件的约定,以用来支持他们正在使用某个特定的设备或文件。其他程序注意到这个锁定文件时,就不会再使用这个设备或文件。

    /var/log 各种程序的日志( l o g )文件,尤其是login (/var/log/wtmp log纪录所有到系统的登录和注销) 和syslog (/var/log/messages 纪录存储所有核心和系统程序信息)。/var/log 里的文件经常不确定地增长,应该定期清除。

    /var/run 保存在下一次系统引导前有效的关于系统的信息文件。例如, /var/run/utmp 包含当前登录的用户的信息。

    /var/spool 放置“假脱机( s p o o l )”程序的目录,如m a i l、n e w s、打印队列和其他队列工作的目录。每个不同的s p o o l在/var/spool 下有自己的子目录,例如,用户的邮箱就存放在/var/spool/mail 中。

    /var/tmp 比/tmp 允许更大的或需要存在较长时间的临时文件。注意系统管理员可能不允许/var/tmp 有很旧的文件。

    九、/sbin 目录

    此目录页用户存放一些可执行文件,但是此目录下的文件或者说命令只有管理员才能使用,主要用户系统管理。

    和一开始我们讲的bin类似,s就是super 的意思,/sbin是Linux和其他UNIX类操作系统中root目录的标准子目录,包含可执行程序(即准备运行)程序,也就是说这里存放的是系统管理员使用的管理程序。

    十、/sys 目录

    系统启动以后此目录作为 sysfs 文件系统的挂载点, sysfs 是一个类似于 proc 文件系统的特殊文件系统, sysfs 也是基于 ram 的文件系统,也就是说它也没有实际的存储设备。此目录是系统设备管理的重要目录,此目录通过一定的组织结构向用户提供详细的内核数据结构信息。

    十一、/opt 目录

    可选的文件、软件存放区,由用户选择将哪些文件或软件放到此目录中。

    十二、/home 目录

    存放linux系统的用户

    我们通常同“~”来表示家目录。

    所有用户用home目录来存储他们的个人档案。
    例如:/home/john、/home/nikita

    十三、/tmp 目录

    包含系统和用户创建的临时文件。
    当系统重新启动时,这个目录下的文件都将被删除。

    十四、/srv 目录

    srv代表服务。

    包含服务器特定服务相关的数据。

    例如,/srv/cvs包含cvs相关的数据。

    十五、/media 目录

    可移动媒体设备
    用于挂载可移动设备的临时目录。

    举例来说,挂载CD-ROM的/media/cdrom,挂载软盘驱动器的/media/floppy;

    十六、/lost+found 目录

    lost+found目录只准root 及所属者读取创建进入。我们切换到root用户cd进入发现是空的。这个文件夹是Linux、MaOS和其他类似UNIX的操作系统的一部分。每个文件系统即每个分区都有自己lost+found的目录。你会在这里找到被损坏的文件的恢复位。 这个目录平时是空的,当系统不正常关机后,这里就成了一些无家可归的文件的避难所,也就是说它对于恢复由于许多原因如电源故障而没有正确关闭的文件是有用的。任何要恢复的文件都保存在该文件夹中。fsck命令用于恢复这些文件。

    参考
    https://blog.csdn.net/weixin_40921797/article/details/81664453
    https://blog.csdn.net/weixin_40928253/article/details/85566226

    展开全文
  • CentOS 根目录下目录介绍

    千次阅读 2020-06-19 15:28:28
    使用命令查看根目录 cd / tree -L 1 目录结构如下 . |-- bin -> usr/bin |-- boot |-- dev |-- etc |-- home |-- lib -> usr/lib |-- lib64 -> usr/lib64 |-- media |-- mnt |-- opt |-- proc |-- root |-...

    使用命令查看根目录

    cd /
    tree -L 1
    

    目录结构如下

    .
    |-- bin -> usr/bin
    |-- boot
    |-- dev
    |-- etc
    |-- home
    |-- lib -> usr/lib
    |-- lib64 -> usr/lib64
    |-- media
    |-- mnt
    |-- opt
    |-- proc
    |-- root
    |-- run
    |-- sbin -> usr/sbin
    |-- srv
    |-- sys
    |-- tmp
    |-- usr
    `-- var
    

    目录介绍

    • bin:存放普通用户可执行的指令,即使在单用户模式下也能够执行处理
    • boot:开机引导目录,包括 Linux 内核文件与开机所需要的文件
    • dev:设备目录,所有的硬件设备及周边均放置在这个设备目录中
    • etc:各种配置文件目录,大部分配置属性均存放在这里
    • home:这里主要存放你的个人数据,具体每个用户的设置文件,用户的桌面文件夹,还有用户的数据都放在这里。每个用户都有自己的用户目录,位置为:/home/username。当然,root 用户除外。
    • lib:开机时常用的动态链接库,bin 及 sbin 指令也会调用对应的 lib 库
    • lib64:开机时常用的动态链接库 64 位,bin 及 sbin 指令也会调用对应的 lib 库
    • media:可移除设备挂载目录,类似软盘、U 盘等临时挂载目录
    • mnt:用户临时挂载其他的文件系统,额外的设备可挂载在这里,相对临时而言
    • opt:第三方软件安装目录,现在习惯性的放置在 /usr/local 中
    • proc:虚拟文件系统,通常是内存中的映射,特别注意在误删除数据文件后,比如 DB,只要系统不重启,还是由很大几率能将数据找回来
    • root:系统管理员主目录,除 root 之外,其他用户均放置在 /home 目录下
    • run:系统运行时所需文件,以前放在 /var/run 中,后台拆分成独立的 /run 目录。重启后重新生成对应的目录数据
    • sbin:只有 root 才能运行的管理指令,跟 bin 类似,但只属于 root 管理员
    • srv:服务启动后需要访问的数据目录
    • sys:跟 proc 一样虚拟文件系统,记录核心系统硬件信息
    • tmp:存放临时文件目录,所有用户对该目录均可读写
    • usr:应用程序放置目录
    • var:存放系统执行过程经常改变的文件,
    展开全文
  • linux chroot 命令 设置根目录路径

    千次阅读 2020-02-26 12:46:42
    在 linux 系统中,系统默认的目录结构都是以 /,即以 (root) 开始的。而在使用 chroot 之后,系统的目录结构将以指定的位置作为 / 位置。 基本语法 chroot NEWROOT [COMMAND [ARG]...] 具体用法请参考本文的 ...

    chroot,即 change root directory (更改 root 目录)。在 linux 系统中,系统默认的目录结构都是以 /,即以根 (root) 开始的。而在使用 chroot 之后,系统的目录结构将以指定的位置作为 / 位置。

    基本语法

    chroot NEWROOT [COMMAND [ARG]...]

    具体用法请参考本文的 demo。

    为什么要使用 chroot 命令

    增加了系统的安全性,限制了用户的权力:
    在经过 chroot 之后,在新根下将访问不到旧系统的根目录结构和文件,这样就增强了系统的安全性。一般会在用户登录前应用 chroot,把用户的访问能力控制在一定的范围之内。

    建立一个与原系统隔离的系统目录结构,方便用户的开发:
    使用 chroot 后,系统读取的是新根下的目录和文件,这是一个与原系统根下文件不相关的目录结构。在这个新的环境中,可以用来测试软件的静态编译以及一些与系统不相关的独立开发。

    切换系统的根目录位置,引导 Linux 系统启动以及急救系统等:
    chroot 的作用就是切换系统的根位置,而这个作用最为明显的是在系统初始引导磁盘的处理过程中使用,从初始 RAM 磁盘 (initrd) 切换系统的根位置并执行真正的 init,本文的最后一个 demo 会详细的介绍这种用法。

    通过 chroot 运行 busybox 工具

    busybox 包含了丰富的工具,我们可以把这些工具放置在一个目录下,然后通过 chroot 构造出一个 mini 系统。简单起见我们直接使用 docker 的 busybox 镜像打包的文件系统。先在当前目录下创建一个目录 rootfs:

    $ mkdir rootfs

    然后把 busybox 镜像中的文件释放到这个目录中:

    $ (docker export $(docker create busybox) | tar -C rootfs -xvf -)

    通过 ls 命令查看 rootfs 文件夹下的内容:

    $ ls rootfs

    万事俱备,让我们开始吧!

    执行 chroot 后的 ls 命令

    $ sudo chroot rootfs /bin/ls

    虽然输出结果与刚才执行的 ls rootfs 命令形同,但是这次运行的命令却是 rootfs/bin/ls。

    运行 chroot 后的 pwd 命令

    $ sudo chroot rootfs /bin/pwd

    哈,pwd 命令真把 rootfs 目录当根目录了!

    不带命令执行 chroot

    $ sudo chroot rootfs

    这次出错了,因为找不到 /bin/bash。我们知道 busybox 中是不包含 bash 的,但是 chroot 命令为什么会找 bash 命令呢? 原来,如果不给 chroot 指定执行的命令,默认它会执行 '${SHELL} -i',而我的系统中 ${SHELL} 为 /bin/bash。
    既然 busybox 中没有 bash,我们只好指定 /bin/sh 来执行 shell 了。

    $ sudo chroot rootfs /bin/sh

    运行 sh 是没有问题的,并且我们打印出了当前进程的 PID。

    检查程序是否运行在 chroot 环境下

    虽然我们做了好几个实验,但是肯定会有朋友心存疑问,怎么能证明我们运行的命令就是在 chroot 目录后的路径中呢?
    其实,我们可以通过 /proc 目录下的文件检查进程的中的根目录,比如我们可以通过下面的代码检查上面运行的 /bin/sh 命令的根目录(请在另外一个 shell 中执行):

    $ pid=$(pidof -s sh)
    $ sudo ls -ld /proc/$pid/root

    输出中的内容明确的指出 PID 为 46644 的进程的根目录被映射到了 /tmp/rootfs 目录。

    通过代码理解 chroot 命令

    下面我们尝试自己实现一个 chroot 程序,代码中涉及到两个函数,分别是 chroot() 函数和 chdir() 函数,其实真正的 chroot 命令也是通过调用它们实现的:

    #include <stdio.h>
    #include <unistd.h>
    #include <stdlib.h>
     
    int main(int argc, char *argv[])
    {
        if(argc<2){
            printf("Usage: chroot NEWROOT [COMMAND...] \n");
            return 1;
        }
    
        if(chroot(argv[1])) {
            perror("chroot");
            return 1;
        }
     
        if(chdir("/")) {
            perror("chdir");
            return 1;
        }
     
        if(argc == 2) {
            // hardcode /bin/sh for my busybox tools.
            argv[0] = (char *)"/bin/sh";
     
            argv[1] = (char *) "-i";
            argv[2] = NULL;
        } else {
            argv += 2;
        }
     
        execvp (argv[0], argv);
        printf("chroot: cannot run command `%s`\n", *argv);
     
        return 0;
    }

    把上面的代码保存到文件 mychroot.c 文件中,并执行下面的命令进行编译:

    $ gcc -Wall mychroot.c -o mychroot

    mychroot 的用法和 chroot 基本相同:

    $ sudo ./mychroot ./rootfs

    特别之处是我们的 mychroot 在没有传递命令的情况下执行了 /bin/sh,原因当然是为了支持我们的 busybox 工具集,笔者在代码中 hardcode 了默认的 shell:

    argv[0] = (char *)"/bin/sh";

    从代码中我们也可以看到,实现 chroot 命令的核心逻辑其实并不复杂。

    实例:通过 chroot 重新设置 root 密码

    忘记了 root 密码该怎么办?接下来的 demo 将演示如何通过 chroot 命令重新设置 centos7 中被忘记了的 root 密码。
    systemd 的管理机制中,rescure 模式和 emeryency 模式是无法直接取得 root 权限的,需要使用 root 密码才能进入 rescure 和 emeryency 环境。所以我们需要通过其他方式来设置 root 密码。我们可以为内核的启动指定 "rd.break" 参数,从而让系统在启动的早期停下来,此时我们可以通过使用 root 权限并结合 chroot 命令完成设置 root 密码的操作。下面我们一起来看具体的操作过程。

    在系统启动过程中进入开机菜单时按下字母键 e 进程开机菜单的编辑模式:

    这就是系统的开机菜单,按下 e 后进入编辑界面:

    找到以 "linux16 /vmlinuz-" 开头的行。如果默认没有看到该行,需要按向下键把它滚动出来。
    然后定位到该行结尾处,输入一个空格和字符串 "rd.break",如下图所示:

    接着按下 ctrl + x 以该设置继续启动,启动过程中操作系统会停下来,这是系统启动过程中的一个非常早的时间点:

    所以系统的根目录还挂载在 RAM disk 上(就是内存中的一个文件系统),我们可以通过 mount 命令检查系统当前挂载的文件系统,下面是我们比较关心的两条:

    上图中 mount 命令输出的第一行说明此时的根目录在一个 RAM disk 中, 即 rootfs。
    图中输出的第二行说明我们的文件系统此时被挂载到了 /sysroot 目录,并且是只读的模式:

    /dev/mapper/centos-root on /sysroot type xfs (ro,relatime,attr2,inode64,noquota)

    而在我们正常登陆系统的情况下,系统根目录的挂载情况如下:

    /dev/mapper/centos-root on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)

    该时间点的最大优势是我们具有 root 权限!所以让我们开始设置新的 root 密码吧。

    先通过下面的命令把 /sysroot 重新挂载为可读写的模式:

    switch_root:/# mount -o remount,rw /sysroot

    然后用下面 chroot 命令把根目录切换到我们原来的环境中:

    switch_root:/# chroot /sysroot

    此时可以理解为:我们以 root 权限登录了原来的系统,修改密码就很容易了!用下面的命令为 root 用户设置新的密码:

    sh-4.2# echo "new_root_pw" | passwd --stdin root

    接下来还要处理 SELinux 相关的问题。由于当前的环境中 SELinux 并未启动,所以我们对文件的修改可能造成文件的 context 不正确。为了确保开机时重新设定 SELinux context,必須在根目录下添加隐藏文件 .autorelabel:

    sh-4.2# touch /.autorelabel

    最后从 chroot 中退出,并重启系统:

    sh-4.2# exit
    switch_root:/# reboot

    重新进入登陆界面时就可以使用刚才设置的密码以 root 登陆了!

    总结

    chroot 是一个很有意思的命令,我们可以用它来简单的实现文件系统的隔离。但在一个容器技术繁荣的时代,用 chroot 来进行资源的隔离实在是 low 了点。所以 chroot 的主要用途还是集中在系统救援、维护等一些特殊的场景中。

     

     

    展开全文
  • ubuntu系统根目录扩容

    千次阅读 2020-02-19 23:29:17
    ubuntu系统在安装的时候,可能给根目录分配的空间太小,当软件安装太多时容易空间不足,下面介绍一种给根目录扩容的方法(给其他目录扩容类似): 需要用到的软件gparted。 安装 sudo apt-get install gparted 然后...
  • Linux常用命令 系统管理命令 打包压缩相关命令 关机/重启机器 Linux管道 Linux软件包管理 APT(Advanced Packaging Tool)...Linux根目录下各个目录的作用 Linux常用命令 grep 关键字 文件名 //将文本中含...
  • kali虚拟机根目录扩容

    千次阅读 2017-03-31 15:19:39
    kali虚拟机根目录扩容注意:操作之前一定要将虚拟机所有文件进行备份!备份!备份!(不是快照!)不保证方法一定有效,扩容出错本人概不负责0x01 背景随着kali的使用与更新,我们原本分配的硬盘大小也就往往无法满足...
  • 磁盘根目录下隐藏病毒文件删除

    千次阅读 2015-10-11 16:59:05
    每个磁盘根目录下都存在Autorun.inf并且在任务管理器中而且rundll.exe这个程序。不用说一定是中毒了。在进行了仔细检查以后,发现此病毒的“威力”为是很大。但是根据手工现有的工具没有办法删除隐藏在磁盘根目录中...
  • Linux(/)根目录下各个文件夹的含义及使用

    千次阅读 多人点赞 2020-05-27 18:15:37
    Linux根目录下的文件夹 1、/- 根 每一个文件和目录都是从根目录开始。 只有root用户可在该目录下的进行写操作(拥有写权限)。注意:/root是root用户的主目录,这与/.不一样 /root:系统管理员root的家目录,系统第...
  • 修改ftp配置文件,锁定用户ftp根目录失败的可能原因 一 、配置文件修改错误 配置项总共就下面这几项,按着ftp服务器搭建配置的教程(我自己写的ftp服务实践记录)走,居然不成功?原因可能如下: 单词写错 行末有...
  • Linux查看软件安装目录及位置 方法

    千次阅读 2021-05-12 10:03:11
    对Linux了解的朋友都知道,在linux中软件一般默认都是安装在到“/...Linux查看软件安装目录及位置4种方法说起是3种方法,无非是Linux下的几个个命令而已,find、whereis、which、locate都可以,特别是前两个命令更...
  • Linux根目录下各个目录的功能介绍

    万次阅读 2017-11-23 10:19:12
    介绍Linux 根目录(/)下各个目录的功能Linux下,一切对象皆为文件的主旨,在根目录下,涵盖了所有核心关键的目录,每个目录分管不同的功能项,一些核心的功能目录,更是不能去随意改动或者删除,对根目录下的目录有一定的...
  • kali如何在根目录下扩容硬盘空间

    万次阅读 2017-11-13 23:01:55
    kali虚拟机根目录扩容 注意:操作之前一定要将虚拟机所有文件进行备份!备份!备份!(不是快照!)不保证方法一定有效,扩容出错本人概不负责 0x01 背景 随着kali的使用与更新,我们原本分配的硬盘大小也就往往...
  • Linux系统根目录各文件夹的含义

    千次阅读 2017-06-19 10:18:34
    我最近安装了Centos7.0的版本,觉得相比于6系列有了很大的不同,但是这两个版本在根目录“/”下的文件夹结构还是大体上相同的,我的centos7文件结构截图如下: 首先,我要说明我在安装centos系统的过程中,...
  • 当初准备装双系统时,也思考了很久分配多少空间给Ubuntu16.04系统,查了许多资料,大多意思是‘/’目录总共给20GB,其他的给/home。网上资料推荐的大多跟这篇文章一样:...
  • 跟其他软件不太一样,没有安装在PragrameFiles文件夹中 C:\Users\Administrator\AppData\Local\Programs\Python\Python310 二、如何查看Python的安装目录 1. cmd 2.输入命令:where python...
  • 安卓清理君——清除手机垃圾

    千次阅读 2021-05-28 06:34:24
    想调教一下你的手机?来试试安卓清理君整理手机,清理垃圾,管理文件,存储文件样样在行!...根目录清理,一键扫描根目录垃圾文件及文件夹,极速清理,还你超级干净的根目录(≖ิൠ≖ิ)*4.空文件清理,快速扫描手...
  • 虚拟机不到/mnt/hgfs挂载目录

    万次阅读 多人点赞 2017-02-10 22:35:10
    如果在安装好 VMware Tools 并在设置里面设定好共享目录之后仍然不到 /mnt/hgfs 默认挂载目录,那么尝试以下步骤: 1. 确认VMware Tools 和共享目录设定已经完成: 2. 如果操作结果如上所示,那么表示前提...
  • Linux根目录文件夹解释

    千次阅读 2014-07-07 22:37:25
    为了更好的理解Red Hat Linux根目录”/“下各个系统文件夹的含义和用途,下面以红帽9.0个人版为例,按各个文件夹的功能将根目录下 文件夹分为以下四类: 一 、管理类文件夹: /boot 该目录默认下存放的是Linux...
  • linux下根目录切换隔离chroot工具小结

    千次阅读 2016-01-02 04:03:48
    在 linux 系统中,系统默认的目录结构都是以 `/`,即是以 (root) 开始的。而在使用 chroot 之后,系统的目录结构将以指定的位置作为 `/` 位置。 2.chroot命令的使用  chroot这条命令在大多数Unix/Linux系统
  • 2021年软件测试面试题大全

    万次阅读 多人点赞 2020-11-30 15:16:59
    目录 一、面试基础题 简述测试流程: 什么是软件测试?软件测试的目的与原则 问:软件生存周期及其模型是什么? 什么是软件质量? 自动化测试脚本开发的主要步骤: 目前主要的测试用例设计方法是什么? 常见的测试用例...
  • 刚才打开非linux系统文件的windows下的D盘(“软件”)时,看到它的上一级目录是“media”,之前脑子里就出现过...Linux根目录”/“下各个系统文件夹的含义和用途 /boot 该目录默认下存放的是Linux的启动文件和内
  • 安卓如何查找应用的安装包目录

    千次阅读 2022-04-22 15:12:29
    查找应用的安装包: 1,查看应用信息adb shell dumpsys package com.tencent.qnet com.tencent.qnet是Qnet这个...先启动应用,然后执行命令:adb shell dumpsys activity activities ...包名-页面名字 2,在打印信息中
  • linux根目录下各个文件夹的作用

    千次阅读 2014-03-07 18:45:44
    经常会忘记linux根目录各个文件的作用,所以记下来以备参考。  /bin: 存放最常用命令;  /sbin : 该目录用来存放系统管理员使用的管理程序  /boot : 启动Linux的核心文件;  /cdrom : 关于光驱的...
  • 目录一:当不到/boot系统的时候,会进入grub的一个命令行页面,该页面只能使用有限的几个命令,例如ls、set、insmod等。 (1)使用ls出/boot分区(PS:我的/boot单独分区,...也有可能会在这个单独分区的根目录...
  • 用了这么久 Linux ,才知道这些概念。。。

    万次阅读 多人点赞 2022-02-08 14:06:01
    Linux 和 UNIX 中的文件系统是一个以 / 为根的树状式文件结构,/ 是 Linux 和 UNIX 中的根目录,同样它也是文件系统的起点。所有的文件和目录都位于 / 路径下,包括我们经常听到的 /usr、/etc、/bin、/home 等。在...
  • 软件测试面试题(含答案)

    万次阅读 多人点赞 2021-03-01 15:15:38
    软件测试面试题(含答案)
  • 然后逍遥安卓模拟器设置页面将会打开,在里面我们切换到里面的共享目录选项下,如图。 4.在这个共享目录下,我们就会看到逍遥安卓模拟器下载的,或者是保存的音乐或者图片或者视频等等文件都保存在哪个文件夹中,...
  • 【Linux】一步一步学Linux——Linux系统目录详解(09)

    千次阅读 多人点赞 2019-07-08 23:10:18
    00. 目录 文章目录00. 目录01. 文件系统介绍02. 常用目录介绍03. /etc目录文件04. /dev目录文件05. /usr目录文件06. /var目录文件07. /proc08. 比较重要的一些目录09. 参考 01. 文件系统介绍 Win和Linux文件系统...
  • linuxcentos系统目录的详细介绍

    千次阅读 2021-05-10 03:36:03
    下面以centos系统为例介绍下:为了更好的理解Red Hat Linux根目录”/“下各个系统文件夹的含义和用途,下面以红帽个人版为例,按各个文件夹的功能将根目录下文件夹分为以下四类:一、管理类文件夹:/root 系统管理员...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 86,400
精华内容 34,560
关键字:

怎么找软件的根目录