GNOME Private Session
Please read the links for any info.

How did you hear about this internship? Someone added the information to the list https://github.com/tapasweni-pathak/SOC-Programs, I was looking for something to implement a project in coming months like https://wiki.gnome.org/Internships/2018/Projects/PrivateSession and working with mentors in an internship with would be best.

== Project Information ==

What project are you interested in? Private Session

Who is a possible mentor for the project you are interested in? Benjamin Berg, Christian Kellner

Please describe your experience with the GNOME community and GNOME projects as a user and as a contributor. Some experience with GNOME stack and some contributions to GNOME are required for considering the application. Include information and links to the contributions you made:  I have been using GNOME desktop and software since years. I started using linux based distro when I was in university in 2010. Since than my primary machine runs on linux have GNOME desktop. Some contributions can be found and will be updated here.

Please describe your experience with the project you are interested to participate as a user and as a contributor and relevant areas. Include information and links to the contributions you made:

Many parts of project needs thinking about steps and task list, so no mini projects or starter tasks could be prepared which can be patched during application period.

Background: Allow users to log into an ephemeral session

  • gnome-session: contains the GNOME session manager and configuration program.

Tasks: 

  1. Create a new session type which can theoretically run in parallel with another session without corrupting anything in $HOME.
  • Make $HOME point to overlayfs with modified storage living on tempfs
  • Probable files to be edited
  •  ~/.config/user-dirs.dirs
  • Probable Changes
  • create namespace[0]
  • create lower, upper, overlayfs in tempfs
  • allocate temp block device storage for lower and upper fs something like d if=/dev/zero of=lower-fs.img bs=some_value count=obvious_higher_value
  • allot ext4
  • mount fs create and chown(create files)
  • mount $home as readonly
  • create workdirs in upperfs or lowerfs(may be try with making lower or upper fs as readonly)
  • create overlayfs mount something like
  •                 sudo mount -t overlay -o \
  •           lowerdir=/tmp/lower,\
  •           upperdir=/tmp/upper/upper,\
  •           workdir=/tmp/upper/workdir \
  •           none /tmp/overlay
  • try nesting or combining overlays(possible in 4.0 kernel versions)
  •    
  1. Modifying gnome-shell (both lock screen and GDM part)
  • Switch user enablement