Update
This commit is contained in:
parent
455dc334e3
commit
607a2171c6
@ -7,7 +7,7 @@ By default, UNIX-like operating systems only provide simplistic Discretionary Ac
|
||||
|
||||
The policy used by traditional UNIX systems is based on the concepts of \textit{file owner}, \textit{group of a file}, and \textit{others}. For each file, the access rights for these three categories can be specified independently using a so-called access mode. The access mode is a bitmask which specifies whether the file owner, the group of the file, and others have read, write, or execute permissions.
|
||||
|
||||
Each process has it's own \textit{Effective User ID} (EUID), that identifies the user that initiated it. When a process tries to access a file, the kernel checks the access mode of the file, and grants or denies access based on the following rules:
|
||||
Each process has it's own \textit{Effective User ID} (EUID), the user that the process is running on behalf of. When a process tries to access a file, the kernel checks the access mode of the file, and grants or denies access based on the following rules:
|
||||
|
||||
\begin{itemize}
|
||||
\item If the process's effective user ID matches the file owner, the file owner's access mode is used.
|
||||
@ -16,7 +16,7 @@ Each process has it's own \textit{Effective User ID} (EUID), that identifies the
|
||||
|
||||
\end{itemize}
|
||||
|
||||
The access mode is stored in the file's inode, and is set by a process with the file owner's user ID using the \texttt{chmod} system call. The file owner is the user who created the file, and can be changed using the \texttt{chown} system call by a process with the effective user ID of a superuser. The group of a file is set to the group of the file owner when the file is created, and can also be changed using the \texttt{chown} system call by a process with the effective user ID of a superuser.
|
||||
The access mode is stored in the file's inode, and can be changed by a process with the file owner's user ID using the \texttt{chmod} system call. The file owner is the user who created the file, and can be changed using the \texttt{chown} system call by a process with the effective user ID of a superuser. The group of a file is set to the group of the file owner when the file is created, and can also be changed using the \texttt{chown} system call by a process with the effective user ID of a superuser.
|
||||
|
||||
Later, a feature called Access Control Lists (ACL) was introduced to many UNIX-like operating systems and eventually included in the POSIX standard. ACLs provide the ability to control file permissions of specific users, rather than just owner, group and others. Similar to the classic UNIX access control policies, only processes running with the user ID that matches the owner user ID of a file can change its ACLs.
|
||||
|
||||
|
@ -45,18 +45,25 @@ For performance testing, special scripts were written, that test the speed of `o
|
||||
|
||||
While it is difficult to put an objective score on the ease of use of any system, we measure the usability of ICFS by the amount of dialogues the user has to consciously react to while using the system.
|
||||
|
||||
In our testing we found that most programs' filesystem usage was quite manageable with ICFS. {\TeX}studio and Neovim only required the user to interact with a single dialogue with existing files, and none when creating new files.
|
||||
In our testing we found that most programs' filesystem usage was quite manageable with ICFS. {\TeX}studio and Neovim only required the user to interact with a single dialogue when opening existing projects, and none when creating new files.
|
||||
|
||||
The file manager Nautilus generally did not require any access permissions to function, but generated more dialogues than initially expected. When started, Nautilus opened files to scan them to display mini-previews of their contents.
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
\begin{subfigure}[b]{0.4\linewidth}
|
||||
\includegraphics[width=\linewidth]{./images/}
|
||||
\caption{}
|
||||
\end{subfigure}
|
||||
\begin{subfigure}[b]{0.5\linewidth}
|
||||
\includegraphics[width=\linewidth]{./images/}
|
||||
\caption{}
|
||||
\end{subfigure}
|
||||
\includegraphics[width=0.6\linewidth]{./images/picture-preview-nautilus.png}
|
||||
\caption{Example of a picture mini-preview: image on the left is the scaled-down version of the actual image stored in the file.}
|
||||
\end{figure}
|
||||
|
||||
So, for every image to be scanned, a permission was required. It might seem like a simple problem to solve at first: after all if the user gives even a temporary permission to the entire folder, all images should open seamlessly. The issue is, that Nautilus uses another program (gdk-pixbuf-thumbnailer) to scan images on its behalf, one image at a time. Hence, every temporary permission given to that program, will only last until the next image is opened. One practical solution to this problem is to give gdk-pixbuf-thumbnailer a permanent permission to access the folder in question.
|
||||
|
||||
The web browser used the filesystem only when a file was downloaded and consequently needed saving. To select the path for the file, web browsers use file selection dialogues provided by the system file manager.
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
|
||||
\includegraphics[width=\linewidth]{./images/file-selection-dialogue.png}
|
||||
|
||||
\caption{}
|
||||
\end{figure}
|
||||
|
||||
|
BIN
images/file-selection-dialogue.png
Normal file
BIN
images/file-selection-dialogue.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 140 KiB |
BIN
images/picture-preview-nautilus.png
Normal file
BIN
images/picture-preview-nautilus.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 11 KiB |
BIN
main-en.pdf
BIN
main-en.pdf
Binary file not shown.
@ -65,7 +65,7 @@ Overall, there appears to be little research on systems that actively involve us
|
||||
|
||||
\section{Requirements for the solution}
|
||||
|
||||
\todo[inline, author={\textbf{Draft note}}]{Negate the statements? (state what we want, not what we don't want)}
|
||||
%\todo[inline, author={\textbf{Draft note}}]{Negate the statements? (state what we want, not what we don't want)}
|
||||
|
||||
The key issues with existent solutions, that our the system proposed in this thesis will try to address are as follows:
|
||||
\begin{itemize}
|
||||
|
Loading…
x
Reference in New Issue
Block a user