CSC3412 Assignment 1: Git, PAM, and Syncthing Implementation Details

Verified

Added on  2022/08/22

|9
|1309
|17
Homework Assignment
AI Summary
This assignment solution addresses three key areas of system administration: Git, PAM, and Syncthing. The Git section explains its distributed version control system, comparing it to SVN and highlighting its advantages such as local branching and offline capabilities. It details the basic Git workflow, including initializing a repository, adding and committing files, and accessing previous versions. The PAM (Pluggable Authentication Modules) section discusses its role in authenticating users for various Linux services, explaining its service modules, control flags, and its function in managing authentication across different applications. Finally, the Syncthing section describes a file synchronization application, contrasting it with other syncing software and detailing its installation, configuration, and security features. The assignment draws on references to support the discussions on each topic.
Document Page
Part 1
Git
Basic Description:
Git is a Distributed version control system. With tiny footprint and easy to learn features it
provides lightning fast performance. Version control system are the one that records changes in
the files or codes which are done overtime so that the specific version can be accessed whenever
required. Git version control system is free and open source that can handle nearly everything
from very tiny to large projects with efficiency and speed.
Git outclasses SVN, CVS RCS and darcs with features like, convenient staging areas, multiple
work-flows and local branching (Stansberry, 2008).
Git differs from SVN as SVN is centralized version control system whereas Git is a distributed
version control system. Also Git can use multiple repositories unlike SVN. As compared to
SVN, rcs and darcs Git is faster to commit. Most of the time Git is utilizing local repositories and
committing to central repositories is done very often. Also since everyone is having their own
repositories at Git thus it does not have a single point of failure. Also unlike other control
systems Git can work offline so that the work can goes on even if the connection is lost without
losing the features.
Mercurial is very much closer to Git. Git has complex commands whereas Mercurial is simple.
Git is very fast and efficient for the users that have a working experience in it whereas Mercurial
can be used even with less experience. The main pro of Git is that its branching model is much
effective as compared to Mercurial (Gehman, 2019).
Basic work-flow of Git repository
1. Firstly initialize Git repository using "git init" command
2. To add and store files into a folder type "add" command, both new and modified files can be
store in it.
3. To save the file do it with "commit" command. This would be the savepoint and the file can be
later saved for new version.
4. If an old version of file needs to be accessed use "Revert" command.
tabler-icon-diamond-filled.svg

Paraphrase This Document

Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
Document Page
Git status command is used to check the status of the repository:
Committing the changes:
Document Page
Document Page
Part 2
PAM module
PAM stands for Pluggable Authentication Modules, is a module of Linux system that is layered
between Linux native authenticate system and Linux applications. Many of the programs in the
Linux system utilizes PAM modules such as password, SU, logging in, SSH and other services.
The main task of PAM module is to authenticate users. Many services in the system requires
authentication like, FTP, SSH, IMAP, TELNET and so on and thus there needs too many
authentication file required to be maintained besides /etc/shadow which can turn into a complex
problem, in case there is inconsistency of authentication data between these files. Here came into
picture PAM, which allows use of same user database for logging into services by system
administrator (Ebrahim, 2017).
PAM service module is one of the Linux PAM modules that provides authentication and services
to secure applications such as FTP or login. PAM services are of four types:
Account management modules
Authentication service modules
Password management modules
Password management modules
In PAM this service modules are stored in stack. If a requisite is failed, an error is triggered by
PAM and the module stack stops processing. When all the modules are successfully processed
PAM returns to the application (Das, 2020).
Control flags:
Service files have control flags. To determine whether a module will be continued or
failed, a control flag should be selected for each entry in the PAM configuration file. The
failure or success of the request is determined by each module in a stack. There are
basically four flags in service files:
Requisite: If a module which is flagged as requisite fails, PAM will immediately get back
to the calling application and a failure would be reported.
Required: The execution in the not stopped if a module flagged as required fails. It would
continue to execute other modules, and after execution there are one or more failed
modules, failure would be returned to the calling application by PAM.
Sufficient: The execution of modules are stopped when a sufficient module returns OK.
Optional: The module continues to execute even if it fails and ignores the return code.
tabler-icon-diamond-filled.svg

Paraphrase This Document

Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
Document Page
Part 3:
Syncthing is an application for continuous file synchronization. Using syncthing files between
computers can be synchronized in real time, and securely from intruders. This application is
trustworthy, open and decentralized (Luong, 2017).
The difference between syncthing and other syncing software are as follows:
Web GUI: Syncthing can be configured and monitored from its powerful interface
through any web browser
Portable: It can work with Windows, FreeBSD, MAC OS X, OpenBSD and Solaris.
Simple: It is very simple to set up and use. Neither it needs advance configuration setting
nor does it bother for the IP address. It works on LAN over internet connection.
Powerful: it can synchronize files between two or more computers at a time, with as
much number of folders as require.
Installation and Configuration
Document Page
As soon as it install, it will automatically launch its GUI
To configure syncthing
Document Page
To start Syncthing – Type “syncthing”
When a user starts syncthing below script is used
tabler-icon-diamond-filled.svg

Paraphrase This Document

Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
Document Page
Syncthing addresses the security issues by using those port which are not usable and random those are
not obvious and not used by any other services or application. By doing this the Syncthing has complete
privilege on it and can only be accessed by authorized user. This way remote access is made secured.
The user systemd configuration required on the virtual machine, there are exists two option while
installing Syncthing, to install it as user as service or system as service. The system as a service is
basically suggested only for server where it will be running at start up even the user has no active
session and it can run even without any active user and system keep on provide service. Example is the
server where Syncthing is installed and accessed by multiple clients. The second option is set up as user
as service where Syncthing will start when users logged in and example is the desktop where there is no
need to run unnecessarily the instance of syncthing (Crawford, 2019).
Reference:
Crawford, D. 2019. Syncthing Review. Available,
https://proprivacy.com/cloud/review/syncthing [Accessed 23 March 2020]
Das, A. 2020. Syncthing: Open Source P2P File Syncing Tool. Available,
https://itsfoss.com/syncthing [Accessed 23 March 2020]
Ebrahim, M. 2017, An Easy Guide to Linux-PAM. Available, https://dzone.com/articles/linux-
pam-easy-guide [Accessed 23 March 2020]
Gehman, C. 2019, Git vs. Mercurial: How Are They Different?
Available,https://www.perforce.com/blog/vcs/git-vs-mercurial-how-are-they-different [Accessed
23 March 2020]
Document Page
Luong, A. 2017, Syncthing or Resilio Sync: How Should You Share Files on Linux? Available,
https://www.makeuseof.com/tag/share-files-linux-using-syncthing-resilio-sync/ [Accessed 23
March 2020]
Stansberry, G. 2008. 6 Version Control Systems Reviewed. Available,
https://www.smashingmagazine.com/2008/09/the-top-7-open-source-version-control-systems/
[Accessed 23 March 2020]
chevron_up_icon
1 out of 9
circle_padding
hide_on_mobile
zoom_out_icon
[object Object]