Hi guys well i finally found a good path for me to settle in and that is to become a linux administrator. I am about done with my 4 year degree, and I do plan on testing for my linux + certification, however, what are the true essentials that a good Jr developer should know?
protocols, applications, management, snmp, backing up etc?
what tools technology
example, samba print server, samba file sharing server etc
Your topic says "how to be a good administrator, but your question body is about being a good developer. Unless you're going the DevOps route - which may be a bit ambitious if you're still junior-level - the answers are different.
A developer needs basically how to log in and get around. Knowing how to write shell scripts is very useful, although I'll admit I managed to dodge the really complicated parts of that for several years. Knowing python and/or perl is also good. And, of course, it's essential to know how to use (and ideally, how to install) your build tools and editors. Also how to run whatever debuggers your chosen language employs. These days, knowing how to set up tests is considered important as well.
A sysadmin should start by knowing how to install and operate Linux itself. Installation is probably easier these days for Linux than it is for Windows, but you do need to know some basic things about disk layout and plugging into the network. You should know how to use yum and rpm for redhat-style distros and apt-get/synaptic/dpkg for Debian-style distros. You probably won't run across the secondary stuff like "emerge" for gentoo or manual package build/install.
A sysadmin should know how to manage disk space. That means fdisk (or one of its relatives, such as parted) and LVM. Also how to create and mount filesystems.
A sysadmin should know how to configure network interfaces (preferably both Redhat and Debian styles, since they're quite different).
A sysadmin should know where the log information is and how to read it. Which can be a challenge, since the old way of maintaining discrete logfiles is being pushed aside in the newer distros in favor of the journalctl database.
A sysadmin should know how init scripts work and how their replacement (systemd) operates and how to stop and start system processes (dæmons).
That more or less covers basic operation. Then there's infrastructure. Client and server configurations for:
File shares. Samba, NFS, and more recently things like glusterfs and ceph. Extended file systems.
Printing (Usually that means CUPS)
Backup and restore. For example, bacula
Installing, configuring and maintaining web servers, both primary (apache httpd) specialized (ngnix) and proxy (squid). Apache will usually be sufficient for starters, though.
Installing, configuring and maintaining other servers and clients, such as NTP (system time), DHCP and so forth.
System monitoring tools such as nagios and cacti, with bonus points for learning SNMP. Also, the low-level tools such as ps and top and the status files under /proc.
Full-time administrators currently are well-advised to know how to work with virtual machines and provisioning systems such as Ansible, chef and puppet.
I'm sure I could go on and on. Adverts for junior system admin positions tend to be long "laundry lists" and laundry lists should be viewed sceptically, since they're often drawn up by people who don't know what's really required, but they can point out possibilities.
"privilege" comes from the Latin words for "private" and "law" (legal) and dates to feudal times. To "claim privilege" meant that you were above the laws that applied to the common people.
Before moving to things like samba, apache, I would recommend to learn the most important Linux/Unix tools along with shell scripting. A lot of server work can be easily automated or simplified, if you know how.
Understanding of security concepts is also very important. You cannot even imagine how often I saw /var/www folder blasted with chmod -R 777, because somebody had no idea how to set correct permissions. If a server get cracked by your incorrect configuration, then you can get in serious troubles.
And lastly, understand the philosophy and work of the system. Learn how to configure and compile kernel, learn about run levels, init scripts, how everything works. This knowledge will give you solid fundamentals that you will need in the future.