Why does a fakechroot exist?


 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers Why does a fakechroot exist?
# 1  
Old 07-11-2018
Why does a fakechroot exist?

I am really confused as to why a tool like fakechroot exists and what does it do.

Chroot is an ability only for root users, correct? Then a tool that allows to bypass that is clearly a security flaw, correct?

When and why would you need something like this?

Is there any relation between fakechroot and fakeroot?
# 2  
Old 07-11-2018
Such tools are to allow an (ordinary) user to create a root environment within their little bubble WITHOUT affecting anyone else on the system. It all happens within their individual user space. They do NOT get any enhanced privileges.

As I say, within their little bubble only.

For example, they could install a software package within their own 'fake root' and the install routine would be lead to believe that it was installing on the main system but it's not.
# 3  
Old 07-11-2018
Quote:
Originally Posted by hicksd8
Such tools are to allow an (ordinary) user to create a root environment within their little bubble WITHOUT affecting anyone else on the system. It all happens within their individual user space. They do NOT get any enhanced privileges.

As I say, within their little bubble only.

For example, they could install a software package within their own 'fake root' and the install routine would be lead to believe that it was installing on the main system but it's not.

Okay, I have a couple of doubts about the whole thing.

Let me start by asking you why chroot is only permitted for root users?

What harm would there be if a normal user were to perform a chroot?
# 4  
Old 07-11-2018
To put it plainly, chroot is a real change root and not a fake change root and so it affects the whole system, i.e. all users. Therefore, it takes root privilege to action. The whole system is switched to running on a different root directory. Therefore, a standard user cannot be allowed to do this.

A fake chroot is playing around within a users own environment and nobody else sees any change.

An example of a real chroot can be when a system doesn't boot properly so the sysadmin boots the system from DVD into single user mode. Having booted that way, the system root is the root of the DVD. Now the sysadmin can use chroot to switch to the normal hard disk root to see how the system behaves; stable or wobbly?

Fake change root is exactly what is says; fake!

Last edited by hicksd8; 07-12-2018 at 04:53 AM..
This User Gave Thanks to hicksd8 For This Post:
# 5  
Old 07-11-2018
Don't mix up the root user and the file system's root.
# 6  
Old 07-12-2018
I'm confused by a lot of the discussion in this thread. The chroot utility does not in any way, shape, or form change the system's root directory.

The chroot utility (and the underlying chroot() system call) starts a new process with the root directory for that process (and any descendants of that process) set to the directory specified on the command line in that chroot utility invocation.

The root directory of any processes that were running before chroot was invoked (and any descendants of those processes) continue to run with their original root directory.

From what I see in the manual pages, it appears that fakechroot is only available on Debian Linux systems. It also seems that fakechroot does not actually change the root directory of the process it starts, but the library used by the linker that fakechroot uses to link the process it starts fakes the behavior used to run the process as though it had been chrooted in some cases while ignoring chroot behavior in other cases.

I believe the chroot utility and system call are available on all recent UNIX, Linux, and BSD systems.
These 2 Users Gave Thanks to Don Cragun For This Post:
# 7  
Old 07-12-2018
Yes, I believe that is true but also consider the scenario where a Solaris Global Zone boots a non-global zone and then sets (ie, changes) that non-global zones root directory with chroot. The parent (kernel) process of that non-global is now set to a different root directory and that affects all future users logging into that zone.

Therefore my understanding was that if the root user changed the root directory of the global zone kernel (PID 1) that would affect future users that log in??

Interesting discussion this!
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Homework & Coursework Questions

Group Doesn't Exist

Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted! 1. The problem statement, all variables and given/known data: I'm able to create a group but when I'm trying to delete the group it keeps stating Group Doesn't Exist. I know... (2 Replies)
Discussion started by: GoBoyGo
2 Replies

2. Shell Programming and Scripting

Help: Backfile if backup does not exist

I am trying to work on a script that will first check to see if a backup of a file exists, and if it does it will prompt the user to ask if he/she wants it replace. Of course, if the user says no then the file should be skipped. Here is the code I have written. Does it look as if it is working... (1 Reply)
Discussion started by: xshellscriptx
1 Replies

3. UNIX for Dummies Questions & Answers

Does ${%name} exist in csh?

I have this code in tcsh and would like to know whether the syntax below will work in csh. if( "${%rsl}" == 0 ) then echo "rsl is empty" endif ---------- Post updated at 06:38 AM ---------- Previous update was at 05:53 AM ---------- It does not seem so. Perhaps the best thing is to... (2 Replies)
Discussion started by: kristinu
2 Replies

4. Shell Programming and Scripting

if pid exist ?

Hi I need help to whit a script that start a program if a nother program is started first . I thought something like this . if then start program 2 Thanks (4 Replies)
Discussion started by: pelle
4 Replies

5. Shell Programming and Scripting

Find out whether files exist.

I have the following data stored in a file. 1 /home/file13 /home/file2 2 /home/file41 /home/file654 3 /home/file61 /home/file45 4 /home/file81 /home/file43 ... I want to print the first column provided the files represented by the second and third column exist. How to do that? (3 Replies)
Discussion started by: kevintse
3 Replies

6. Shell Programming and Scripting

Group Exist Scripting

Hey People, I've got a question! How can i write a function in a script which is looking for if a group exist and if not, that the group "users" is the standard group..I know that i have to use "grep" und "if-else"..I will be very happy for answers ;) Greetz Ali (2 Replies)
Discussion started by: AliC
2 Replies

7. UNIX for Dummies Questions & Answers

testing if files exist

I am trying to test arguments to see if they are files in any directory. I have : but it's not working (7 Replies)
Discussion started by: skooly5
7 Replies

8. UNIX for Dummies Questions & Answers

su: user x does not exist

somehow my user names and groups on one of our machines are changed to numbers 700, 701, etc. thus, i can only ssh into this machine as root. is there a way to migrate the user names and groups to this machine? thanks! (3 Replies)
Discussion started by: user23
3 Replies

9. UNIX for Dummies Questions & Answers

does it exist in linux?

Is there a jumpstart equivalent tool in the linux environment? (1 Reply)
Discussion started by: pbonilla
1 Replies
Login or Register to Ask a Question