% Options for packages loaded elsewhere \PassOptionsToPackage{unicode}{hyperref} \PassOptionsToPackage{hyphens}{url} \documentclass[ ]{article} \usepackage{amsmath,amssymb} \usepackage{titlesec} \usepackage{titling} \usepackage{lmodern} \usepackage{xcolor} \usepackage{iftex} \usepackage[margin=1in]{geometry} \ifPDFTeX \usepackage[T1]{fontenc} \usepackage[utf8]{inputenc} \usepackage{textcomp} % provide euro and other symbols \else % if luatex or xetex \usepackage{unicode-math} \defaultfontfeatures{Scale=MatchLowercase} \defaultfontfeatures[\rmfamily]{Ligatures=TeX,Scale=1} \fi % Use upquote if available, for straight quotes in verbatim environments \IfFileExists{upquote.sty}{\usepackage{upquote}}{} \IfFileExists{microtype.sty}{% use microtype if available \usepackage[]{microtype} \UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts }{} \makeatletter \@ifundefined{KOMAClassName}{% if non-KOMA class \IfFileExists{parskip.sty}{% \usepackage{parskip} }{% else \setlength{\parindent}{0pt} \setlength{\parskip}{1pt plus 2pt minus 1pt}} }{% if KOMA class \KOMAoptions{parskip=half}} \makeatother \definecolor{myblue}{RGB}{24, 102, 201} \titleformat{\section} {\huge\bfseries\color{myblue}} {} {0em} {}[\titlerule] \titleformat{\subsection} {\Large\bfseries} {} {0em} {} \titleformat{\subsubsection}[runin] {\bfseries} {} {0em} {}[:] \titlespacing{\subsubsection} {0em}{0.75em}{0.5em} \titlespacing{\subsection} {0em}{1em}{0.65em} \titlespacing{\maketitle} {0em}{0em}{0em} \renewcommand{\maketitle}{ \begin{center} {\huge\bfseries \theauthor}\\ \vspace{.35em} sufyaan.me/doas \end{center} } \usepackage{color} \usepackage{fancyvrb} \newcommand{\VerbBar}{|} \newcommand{\VERB}{\Verb[commandchars=\\\{\}]} \DefineVerbatimEnvironment{Highlighting}{Verbatim}{commandchars=\\\{\}} % Add ',fontsize=\small' for more characters per line \newenvironment{Shaded}{}{} \newcommand{\AlertTok}[1]{\textcolor[rgb]{1.00,0.00,0.00}{\textbf{#1}}} \newcommand{\AnnotationTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{#1}}}} \newcommand{\AttributeTok}[1]{\textcolor[rgb]{0.49,0.56,0.16}{#1}} \newcommand{\BaseNTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{#1}} \newcommand{\BuiltInTok}[1]{\textcolor[rgb]{0.00,0.50,0.00}{#1}} \newcommand{\CharTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{#1}} \newcommand{\CommentTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textit{#1}}} \newcommand{\CommentVarTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{#1}}}} \newcommand{\ConstantTok}[1]{\textcolor[rgb]{0.53,0.00,0.00}{#1}} \newcommand{\ControlFlowTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{\textbf{#1}}} \newcommand{\DataTypeTok}[1]{\textcolor[rgb]{0.56,0.13,0.00}{#1}} \newcommand{\DecValTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{#1}} \newcommand{\DocumentationTok}[1]{\textcolor[rgb]{0.73,0.13,0.13}{\textit{#1}}} \newcommand{\ErrorTok}[1]{\textcolor[rgb]{1.00,0.00,0.00}{\textbf{#1}}} \newcommand{\ExtensionTok}[1]{#1} \newcommand{\FloatTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{#1}} \newcommand{\FunctionTok}[1]{\textcolor[rgb]{0.02,0.16,0.49}{#1}} \newcommand{\ImportTok}[1]{\textcolor[rgb]{0.00,0.50,0.00}{\textbf{#1}}} \newcommand{\InformationTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{#1}}}} \newcommand{\KeywordTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{\textbf{#1}}} \newcommand{\NormalTok}[1]{#1} \newcommand{\OperatorTok}[1]{\textcolor[rgb]{0.40,0.40,0.40}{#1}} \newcommand{\OtherTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{#1}} \newcommand{\PreprocessorTok}[1]{\textcolor[rgb]{0.74,0.48,0.00}{#1}} \newcommand{\RegionMarkerTok}[1]{#1} \newcommand{\SpecialCharTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{#1}} \newcommand{\SpecialStringTok}[1]{\textcolor[rgb]{0.73,0.40,0.53}{#1}} \newcommand{\StringTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{#1}} \newcommand{\VariableTok}[1]{\textcolor[rgb]{0.10,0.09,0.49}{#1}} \newcommand{\VerbatimStringTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{#1}} \newcommand{\WarningTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{#1}}}} \setlength{\emergencystretch}{3em} % prevent overfull lines \providecommand{\tightlist}{% \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}} \setcounter{secnumdepth}{-\maxdimen} % remove section numbering \ifLuaTeX \usepackage[bidi=basic]{babel} \else \usepackage[bidi=default]{babel} \fi \babelprovide[main,import]{english} % get rid of language-specific shorthands (see #6817): \let\LanguageShortHands\languageshorthands \def\languageshorthands#1{} \ifLuaTeX \usepackage{selnolig} % disable illegal ligatures \fi \IfFileExists{bookmark.sty}{\usepackage{bookmark}}{\usepackage{hyperref}} \IfFileExists{xurl.sty}{\usepackage{xurl}}{} % add URL line breaks if available \urlstyle{same} % disable monospaced font for URLs \hypersetup{ pdftitle={(POST) Use Doas Instead Of Sudo}, pdflang={en}, colorlinks=true, linkcolor=blue, filecolor=blue, urlcolor=blue, pdfcreator={LaTeX via pandoc}} \title{Sufyaan's Website} \author{Sufyaan's Website} \date{} \begin{document} \maketitle \section[Use Doas Instead Of Sudo]{Use Doas Instead Of Sudo}\label{why-i-use-terminal-apps} \textbf{20 April 2023} \textbf{Category: }Linux \& Software \& Guides Sudo. It is often used by Linux users to perform commands with root privileges instead of being in a root shell all the time. However, \href{https://access.redhat.com/security/cve/CVE-2023-22809}{there has recently been a vulnerability in sudo due to which people are switching to doas.} \hypertarget{what-is-doas}{% \subsection[What is Doas?]{What is Doas?}\label{what-is-doas}} OpenDoas or Doas is a portable version of the doas utility that is used on OpenBSD. OpenDoas can be installed on Unix-like system which includes Linux. It is designed to be more minimal and has less configuration options than sudo. If you are on a personal computer, then I highly recommend you switch to doas because it has a much smaller codebase which leaves less room for error. However, if you are part of a professional environment with many individuals needing to use sudo, I recommend staying with sudo because it offers more configuration options to be used for groups and users. \hypertarget{installing-doas}{% \subsection[Installing Doas]{Installing Doas}\label{installing-doas}} Doas is available on almost all major distributions. If your distribution is Debian-based (Ubuntu, Linux Mint, Zorin OS), simply type: \texttt{sudo\ apt\ install\ doas} If you run an Arch-based system (Artix, Arco, Endeavour, Manjaro), type: \texttt{sudo\ pacman\ -S\ opendoas} If you use RHEL-based systems (Fedora, CentOS), type: \texttt{sudo\ dnf\ install\ opendoas} Doas should now be installed but it will not work out of the box. There is one line that we need to add to the configuration file. \hypertarget{configuring-doas}{% \subsection[Configuring Doas]{Configuring Doas}\label{configuring-doas}} You have to configure doas as it is not included in most distributions by default but do not fret! One of its plus points is that its configuration is much better than sudo\textquotesingle s. To begin, edit the /etc/doas.conf file as root. If you are the only user on your system and do not plan to allow other users to use your system, this line will suffice. \texttt{permit\ persist\ username\ as\ root} Many distributions have a group (wheel, sudoers) that are allowed to run sudo commands. If you would like to allow that group to send commands as root, type this: \texttt{permit\ persist\ :wheel\ as\ root} \hypertarget{using-doas}{% \subsection[Using Doas]{Using Doas}\label{using-doas}} Using doas is incredibly simple. Just type doas instead of sudo. For example, if you usually type: \texttt{sudo\ pacman\ -Syu} then just type: \texttt{doas\ pacman\ -Syu} I also recommend aliasing doas to \textquotesingle doas -\/-\textquotesingle{} since it causes issues sometimes if you just use doas. Apart from that, this is it for the setup. \hypertarget{conclusion}{% \subsection[Conclusion]{Conclusion}\label{conclusion}} If you are the only person on your Linux machine, you should switch to doas. It is much more lightweight and is similar to sudo. It has a smaller codebase which, in my opinion, prevents exploits from popping up as often as sudo. However, if you are in a professional environment, you should stick with sudo. \end{document}