Operating Systems 2017F: Assignment 4: Difference between revisions
| (9 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
These questions refer to the code from [[Operating Systems 2017F: Tutorial 7|Tutorial 7]] and [[Operating Systems 2017F: Tutorial 8|Tutorial 8]].  | |||
==Full Questions==  | ==Full Questions==  | ||
| Line 22: | Line 22: | ||
<ol style="list-style-type:lower-alpha">  | <ol style="list-style-type:lower-alpha">  | ||
<li> /etc/passwd  | <li> /etc/passwd  | ||
<li> ~/.ssh/authorized_keys  | <li> '''~/.ssh/authorized_keys'''  | ||
<li> ~/.ssh/known_hosts  | <li> ~/.ssh/known_hosts  | ||
<li> ~/.ssh/id_rsa.pub  | <li> ~/.ssh/id_rsa.pub  | ||
| Line 33: | Line 33: | ||
<li> ~/.ssh/known_hosts  | <li> ~/.ssh/known_hosts  | ||
<li> ~/.ssh/id_rsa.pub  | <li> ~/.ssh/id_rsa.pub  | ||
<li> ~/.ssh/id_rsa  | <li> '''~/.ssh/id_rsa'''  | ||
</ol>  | </ol>  | ||
<li> How do sshfs inode values relate to the inodes in the remotely mounted filesystem?  | <li> How do sshfs inode values relate to the inodes in the remotely mounted filesystem?  | ||
<ol style="list-style-type:lower-alpha">  | <ol style="list-style-type:lower-alpha">  | ||
<li> The sshfs inode values are identical to those on the remote filesystem.  | <li> The sshfs inode values are identical to those on the remote filesystem.  | ||
<li> The sshfs inode values have no relationship to the remote filesystem inode values.  | <li> '''The sshfs inode values have no relationship to the remote filesystem inode values.'''  | ||
<li> The sshfs inode values are the remote inode numbers plus a fixed offset.  | <li> The sshfs inode values are the remote inode numbers plus a fixed offset.  | ||
<li> The sshfs inode values are sometimes the same as the remote inode values, and sometimes they are different.  | <li> The sshfs inode values are sometimes the same as the remote inode values, and sometimes they are different.  | ||
| Line 46: | Line 46: | ||
<li>Line 14, <tt>self.ino += 1</tt>  | <li>Line 14, <tt>self.ino += 1</tt>  | ||
<li>Line 18, <tt>self.ino = 1</tt>  | <li>Line 18, <tt>self.ino = 1</tt>  | ||
<li>Both Line 14 and 18  | <li>'''Both Line 14 and 18'''  | ||
<li>None of the above  | <li>None of the above  | ||
</ol>  | </ol>  | ||
<li> In sshfs, do a file's uid and gid values come from the remote server or from the mounting user's uid and gid?  | <li> In sshfs, do a file's uid and gid values come from the remote server or from the mounting user's uid and gid?  | ||
<ol style="list-style-type:lower-alpha">  | <ol style="list-style-type:lower-alpha">  | ||
<li>From the remote server.  | <li>'''From the remote server.'''  | ||
<li>From the mounting user's uid and gid.  | <li>From the mounting user's uid and gid.  | ||
</ol>  | </ol>  | ||
| Line 59: | Line 59: | ||
<li>Process's gid matches the file's gid.  | <li>Process's gid matches the file's gid.  | ||
<li>The process's uid and gid match the file's uid and gid.  | <li>The process's uid and gid match the file's uid and gid.  | ||
<li>None of the above.  | <li>'''None of the above.'''  | ||
</ol>  | </ol>  | ||
<li> In sshfs, what determines whether a file operation is allowed or not?  | <li> In sshfs, what determines whether a file operation is allowed or not?  | ||
<ol style="list-style-type:lower-alpha">  | <ol style="list-style-type:lower-alpha">  | ||
<li>the remote ssh daemon  | <li>the remote ssh daemon  | ||
<li>the remote kernel  | <li>'''the remote kernel'''  | ||
<li>the local kernel  | <li>the local kernel  | ||
<li>the local ssh process  | <li>the local ssh process  | ||
| Line 72: | Line 72: | ||
<li>euid is equal to the uid of the calling user (process that did the execve of fusermount)  | <li>euid is equal to the uid of the calling user (process that did the execve of fusermount)  | ||
<li>euid is the uid of fuse  | <li>euid is the uid of fuse  | ||
<li>euid=0 (root)  | <li>'''euid=0 (root)'''  | ||
<li>None of the above  | <li>None of the above  | ||
</ol>  | </ol>  | ||
<li> What environment variable allows ssh to connect to the local authentication agent?  | <li> What environment variable allows ssh to connect to the local authentication agent?  | ||
<ol style="list-style-type:lower-alpha">  | <ol style="list-style-type:lower-alpha">  | ||
<li>SSH_AUTH_SOCK  | <li>'''SSH_AUTH_SOCK'''  | ||
<li>TERM  | <li>TERM  | ||
<li>SSH_AGENT_LAUNCHER  | <li>SSH_AGENT_LAUNCHER  | ||
| Line 86: | Line 86: | ||
<li>Other regular users on the system could use the private key to impersonate the owner.  | <li>Other regular users on the system could use the private key to impersonate the owner.  | ||
<li>ssh and ssh-add will refuse to use the key.  | <li>ssh and ssh-add will refuse to use the key.  | ||
<li>Both (a) and (b)  | <li>'''Both (a) and (b)'''  | ||
<li>None of the above  | <li>None of the above  | ||
</ol>  | </ol>  | ||
<li>   | <li> What option to you give to dd to control how many bytes dd writes with each write system call?  | ||
<ol style="list-style-type:lower-alpha">  | <ol style="list-style-type:lower-alpha">  | ||
<li>bs=  | <li>'''bs='''  | ||
<li>ibs=  | <li>ibs=  | ||
<li>count=  | <li>count=  | ||
<li>None of the above  | <li>None of the above  | ||
</ol>  | </ol>  | ||
<li> When you make a write system call to a file on a sshfs-mounted filesystem,   | <li> When you make a write system call to a file on a sshfs-mounted filesystem (to a file that the user has write access to) , which of the following also happens?  | ||
<ol style="list-style-type:lower-alpha">  | |||
<li>'''A remote sftp-server process does a write system call.'''  | |||
<li>The local kernel makes a write system call.  | |||
<li>The remote kernel makes a write system call.  | |||
<li>All of the above.  | |||
</ol>  | |||
</ol>  | </ol>  | ||
Latest revision as of 18:18, 7 December 2017
These questions refer to the code from Tutorial 7 and Tutorial 8.
Full Questions
- To enable public key (password-less) authentication in ssh, a user's public key should be added to what file on the remote system?
 - In ssh (on the Linux command line), in what file is a user's private key normally stored?
 - How do sshfs inode values relate to the inodes in the remotely mounted filesystem?
 - What lines in memoryll determine the inode numbers?
 - In sshfs, do a file's uid and gid values come from the remote server or from the mounting user's uid and gid?
 - What permissions does a process require for regular file access?
 - In sshfs, what determines whether a file operation is allowed or not, the remote ssh daemon, the remote kernel, the local kernel, or the local ssh process?
 - When you run fusermount via execve, what euid does fusermount's process have?
 - What environment variable allows ssh to connect to the local authentication agent?
 - Why must ssh private keys only be readable by the owner?
 - How do you control how many bytes dd writes with each write system call?
 - When you make a write system call to a file on a sshfs-mounted filesystem, how many additional write (or writev) system calls must be executed, and what processes make those system calls?
 
Multiple Choice
- To enable public key (password-less) authentication in ssh, a user's public key should be added to what file on the remote system?
- /etc/passwd
 - ~/.ssh/authorized_keys
 - ~/.ssh/known_hosts
 - ~/.ssh/id_rsa.pub
 - ~/.ssh/id_rsa
 
 -  In ssh (on the Linux command line), in what file is a user's private key normally stored?
- /etc/passwd
 - ~/.ssh/authorized_keys
 - ~/.ssh/known_hosts
 - ~/.ssh/id_rsa.pub
 - ~/.ssh/id_rsa
 
 -  How do sshfs inode values relate to the inodes in the remotely mounted filesystem?
- The sshfs inode values are identical to those on the remote filesystem.
 - The sshfs inode values have no relationship to the remote filesystem inode values.
 - The sshfs inode values are the remote inode numbers plus a fixed offset.
 - The sshfs inode values are sometimes the same as the remote inode values, and sometimes they are different.
 
 -  What lines in memoryll determine the inode numbers?
- Line 14, self.ino += 1
 - Line 18, self.ino = 1
 - Both Line 14 and 18
 - None of the above
 
 -  In sshfs, do a file's uid and gid values come from the remote server or from the mounting user's uid and gid?
- From the remote server.
 - From the mounting user's uid and gid.
 
 - Which of the following is sufficient to allow a process to be able to read a regular file?
- Process's uid matches the file's uid.
 - Process's gid matches the file's gid.
 - The process's uid and gid match the file's uid and gid.
 - None of the above.
 
 -  In sshfs, what determines whether a file operation is allowed or not?
- the remote ssh daemon
 - the remote kernel
 - the local kernel
 - the local ssh process
 
 -  When you run fusermount via execve, what euid does fusermount's process have?
- euid is equal to the uid of the calling user (process that did the execve of fusermount)
 - euid is the uid of fuse
 - euid=0 (root)
 - None of the above
 
 -  What environment variable allows ssh to connect to the local authentication agent?
- SSH_AUTH_SOCK
 - TERM
 - SSH_AGENT_LAUNCHER
 - DISPLAY
 
 -  Why must ssh private keys only be readable by the owner?
- Other regular users on the system could use the private key to impersonate the owner.
 - ssh and ssh-add will refuse to use the key.
 - Both (a) and (b)
 - None of the above
 
 -  What option to you give to dd to control how many bytes dd writes with each write system call?
- bs=
 - ibs=
 - count=
 - None of the above
 
 -  When you make a write system call to a file on a sshfs-mounted filesystem (to a file that the user has write access to) , which of the following also happens?
- A remote sftp-server process does a write system call.
 - The local kernel makes a write system call.
 - The remote kernel makes a write system call.
 - All of the above.