Difference between cat and sudo cat?
Solution 1
For a little humour I would say that cat is an animal and sudo cat is a feline with superpowers. :D
sudo is a command that you use to obtain root privileges. root is a special user that manages the machine, and for this he/she has superpowers. For example, if there is a file that only root can see its contents, and you are logged in as a normal user, you can use
$ sudo cat name_of_the_file
to read it. Also if there is a program that only root can run, like the reboot command:
$ reboot
warning: must be root!
$ sudo reboot
rebooting...........
THE CATCH IS: you must be specially (and manually) assigned by root to have permission to use sudo. The permission is given in a file called /etc/sudoers. In Ubuntu, the first user, the one created during install, is automatically a sudoer. But the subsequent users are not. You have to add them manually to the group sudo
whose members are allowed to use the command sudo
.
By the way, /etc/sudoers is a file that only root can see. So if you do
$ cat /etc/sudoers
you will not be able to see its contents. But if you do:
$ sudo cat /etc/sudoers
you are good.
Hope this helps.
Solution 2
Cat is a standard unix utiliy and a most frequently used command which concatenate files and print on the standard output.
You may open a terminal (press CTRL+ATL+T) & type man cat
to know more about the command and its usage.
Further, the difference between cat
& using sudo cat
;
- cat - Frequently & the standard command in use to print an output
- sudo cat - Which prints an output with root privilege. This is mostly needed when a file doesn't have read access for certain user/users but not limited to root user.
Example;
-rw------- 2 root root 4096 996 Feb 6 20:39 log.txt
Above seen is a file which only a root user (or a user who's within root group) can read/write. In such situation you will need to use sudo cat filename
to print the output.
Assume it helped you to understand more.!
Solution 3
cat
is used to read a file; sudo
is used for super user privileges. So sudo cat
means read the file with super user (that is, root) privileges.
Related videos on Youtube
![Naseer](https://i.stack.imgur.com/Kydf9.jpg?s=256&g=1)
Naseer
Updated on September 18, 2022Comments
-
Naseer almost 2 years
Can you tell me what the difference is between
cat
andsudo cat
?All I know so far is that cat is used for displaying contents of file and concatenation.
-
Qasim over 10 yearscat is used to read file, sudo is use for super user privileges. so sudo cat mean read the file with super user ( that is root ) privileges.
-
Naseer over 10 yearsThanx that helped.
-
-
AzkerM over 10 years+1 for explaining cat with an impressive ways. Indeed an amazingly constructed answer. :)
-
Emmet over 10 yearsSurely
sudo cat
is something masquerading as a cat? :oP -
tobyink over 10 yearsI can't believe nobody has yet posted a link to xkcd.com/149
-
Paddy Landau over 10 yearsNote for all newcomers: Do not directly edit
/etc/sudoers
. Any changes to this file must be made viavisudo
. You can grant administrator privilege to users from the System Settings > User Accounts; no need to manually edit/etc/sudoers
. -
Henrique about 10 yearsWill I go to jail for editing /etc/sudoers directly? I really loathe visudo (as I despise vi/vim in general). Didn't know about the sudo group, though, thanks.
-
curusarn over 6 years@Henrique The point is you can get locked out of
sudo
if you cause a syntax error in/etc/sudoers
and then you can't fix it because you can't usesudo
.visudo
won't let you save the file if there is a syntax error. Also you can setvisudo
to editor of your choice withsudo update-alternatives --config editor
-
Henrique over 5 yearsThanks for the clarification, never knew that. But, still, if you know the guy that owns the root password, you can Always cry for help.
-
Henrique over 4 yearsJust as a personal anecdote, some months after this thread I was locked out of the system for neglecting to use visudo, and I instantly remembered @curusarn 's warning.