How to avoid sudo password only for certain commands
How to shutdown/reboot
How to set ubuntu server to have LAN internet connection
Sudo nano etc/network/interfaces
How to create symlinks inside shared folders on VirtualBox?
How to tell which process is holding onto what port
How to synchronise the server clock
How to track a log file that changes as time goes by
How to set ubuntu server to have LAN internet connection (Static)
Another way to set up static IP
How to change machine name
How to fix errors involving missing erl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LANG = "en_US.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
How to mount flash drive in Ubuntu Server
How to find Installed Packages Location:
All installed packages via apt-get goes into the directory: /var/cache/apt/archives
How to have shared folders on Ubuntu VM via Virtual Box
How to install Guest Additions
Install LibreOffice to Ubuntu
Install unoconv package (works for >= 12.04)
Create New SSH keys
Gain remote access to another server using ssh
have a mail smtp host on ubuntu server
Add www-data to sudoers file
Allow all sudoers to execute sudo without password
Change password for other users
Setup ssh login without password
a) Make .ssh folders for the user b On B
b) Actually assign a’s public key into user b on B as an authorized key
Pdftotext how to convert to and from pdf
Prepare /var/virtual for webapp source code
update packages including those kept back
how to purge old kernel packages when run of disk space
how to display list of users and their ids
how to remove the 12 packages can be installed message when you login via ssh
if ubuntu is guest OS, ssh into it
How to unzip zip file in terminal
How to install Jenkins on ubuntu
How to configure jenkins to use subdomain like [Link]
How to make prompt appear if it is missing
This account is currently not available
How to find out full path of a command
How to update known_hosts file when the ip address changes for a server and you try to ssh
How to allow a certain command be sudo by a particular user without password prompted.
how to prepare server for ssh agent forwarding
show all users
How to use tar and gzip
Creating a tape archive:
Listing the contents of an archive:
Extracting all files from an archive:
Compress:
Decompress:
Update system clock
Sync Clock Via NTP
Setup Puppet Master on Ubuntu 12.04 LTS
How to update to higher versions of ubuntu
Verify your settings on ubuntu Check version
How to restart jenkins when you accidentally lock yourself out by security
How to find all files and delete
How to avoid sudo password only for certain
commands
[Link]
ord
sudo visudo
then type something like
jenkins ALL=(root) NOPASSWD: /usr/local/bin/[Link]
where jenkins is the user alias
How to shutdown/reboot
To shutdown safely:
sudo shutdown -h now
To reboot:
sudo reboot
How to set ubuntu server to have LAN internet
connection
Sudo nano etc/network/interfaces
Add the following lines
auto eth0
iface eth0 inet dhcp
Sudo etc/init.d/networking restart
How to create symlinks inside shared folders on
VirtualBox?
The problem is basically because `yo angular appname` will attempt to create symlinks.
There is an issue with creating symlinks inside SharedFolders for VirtualBox VMs.
The solution is that
a) make sure you are running Linux variant as Host OS (Mac, Linux, etc)
b) Shut down your VM.
c) run the following command in your host OS terminal.
VBoxManage setextradata VMNAME
VBoxInternal2/SharedFoldersEnableSymlinksCreate/SHAREDFOLDERNAME 1
where you need to replace `VMNAME` and `SHAREDFOLDERNAME`
d) now re-run the VM and execute the `yo angular appname`. If need be remove any previously
created files and folders by your previous `yo angular appname` command before re-running it.
[Link]
How to tell which process is holding onto what port
netstat -tulpn
How to synchronise the server clock
timedatectl
You should expect the following:
Local time: Fri 2017-08-04 [Link] SGT
Universal time: Fri 2017-08-04 [Link] UTC
Timezone: Asia/Singapore (SGT, +0800)
NTP enabled: yes
NTP synchronized: yes
RTC in local TZ: no
DST active: n/a
How to check if pinging to ntp servers?
ntpq -c lpeer
You should see
remote refid st t when poll reach delay offset jitter
=========================================================================
=====
61-216-153-106. .INIT. 16 u - 64 0 0.000 0.000 0.000
61-216-153-105. .INIT. 16 u - 64 0 0.000 0.000 0.000
[Link] .INIT. 16 u - 64 0 0.000 0.000 0.000
[Link] .INIT. 16 u - 64 0 0.000 0.000 0.000
[Link] .INIT. 16 u - 64 0 0.000 0.000 0.000
To sync, run sudo apt-get install ntp
How to track a log file that changes as time goes by
tail -f /path/to/log
How to set ubuntu server to have LAN internet
connection (Static)
Make sure etho is down.
Command:
sudo ifdown eth0
Go to:
Sudo nano etc/network/interfaces
Add the following lines
auto eth0
iface eth0 inet static
address <ip address>
netmask <subnet mask>
gateway <gateway address>
Then bring interface up:
sudo ifup eth0
If doesn’t work, restart networking service:
/etc/init.d/networking restart
Another way to set up static IP
1. ensure that dhcp is working in interfaces.
2. run sudo ifconfig eth0 [Link] netmask [Link]
To go back to dhcp again use
sudo dhclient eth0
[Link]
To configure a default gateway, you can use the route command in the following manner. Modify
the default gateway address to match your network requirements.
sudo route add default gw [Link] eth0
To verify your default gateway configuration, you can use the route command in the following
manner.
route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
[Link] [Link] [Link] U 1 0 0 eth0
[Link] [Link] [Link] UG 0 0 0 eth0
How to change machine name
You need to edit the computer name in two files:
/etc/hostname
and
/etc/hosts
These will both need administrative access, so run
gksu gedit /path/to/file
Replace any instances of the existing computer name with your new one. When complete
run
sudo service hostname start
The name will also be changed if you restart your computer.
(p.s the sudo service hostname start didn't work so had to restart the computer)
How to fix errors involving missing erl: warning:
Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LANG = "en_US.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale
("C").
On ubuntu, need to add in the following:
sudo locale-gen en_US en_US.UTF-8
sudo dpkg-reconfigure locales
quit the ubuntu and restart it for the changes to work.
if you need to ssh into the server, on the machine you ssh from make sure that you add the
following to your own .bashrc and .bash_profile
# Setting for the new UTF-8 terminal support in Lion
export LC_CTYPE=en_US.UTF-8
export LC_ALL=en_US.UTF-8
and then RESTART the terminal.
read the following:
[Link]
[Link]
How to mount flash drive in Ubuntu Server
[Link]
Step 1: Type “sudo fdisk -l” to check which disk the USB is detect on. (e.g. /dev/sdb1)
Step 2: Create a folder where you want the USB to be mounted on (e.g. /media/usb)
Type “sudo mkdir /media/usb”
Step 3: Mount the usb
For FAT type hard disk:
Type “sudo mount -t vfat /dev/sdb1 /media/usb -o
uid=1000,gid=1000,utf8,dmask=027,fmask=137” <- This is based on Step 1 and 2 examples.
For NTFS hard disk:
sudo mount -t ntfs-3g /dev/sdb1 /media/usb
To unmount, type: “sudo umount /dev/sdb1” || “sudo umount /media/usb”
How to find Installed Packages Location:
All installed packages via apt-get goes into the directory: /var/cache/apt/archives
How to have shared folders on Ubuntu VM via Virtual
Box
1. VBox > Settings > Shared Folders and add the folder you want to share inside VM
2. Choose auto mount and permanent if available.
3. check /media inside VM. Does it show /sf_SharedFolderName?
a. if no, install GuestAdditions
b. if yes, you have successfully mounted a shared folder.
How to install Guest Additions
Go here to download [Link]
Look for the version and then download the iso
Read this [Link]
sudo apt-get install linux-headers-$(uname -r) build-essential
sudo apt-get install dkms -y
sudo mount /dev/cdrom /media/cdrom
sudo sh /media/cdrom/[Link]
sudo apt-get install openssh-server
How to mount your shared folder to another part of
the VM
1. Create the folder that you want the shared folder to appear as well.
Eg:
inside /var/virtual you do a mkdir SharedFolder so that you have a
/var/virtual/SharedFolder
2. Now you need to create a script so that everytime you turn on the vm, you automatically
mound this shared folder to /var/virtual/SharedFolder.
Eg:
sudo nano /etc/init/[Link]
3. inside the conf file, type the following.
description "this is to mount the /media/sf_SharedFolder into
/var/virtual/SharedFolder"
start on startup
task
exec mount -t vboxsf <SharedFolder> -o rw,dmode=755,gid=33,uid=33
/var/virtual/<SharedFolder>
Please take note that the gid and uid must match the of the owner of the
/var/virtual/<SharedFolder>
Replace <SharedFolder> with the actual name.
4. restart the VM.
5. check /var/virtual/<sharedfolder> you should see the shared folder successfully mounted
there as well.
Check out the answer in [Link]
Install LibreOffice to Ubuntu
sudo apt-get install libreoffice-core libreoffice-common libreoffice-writer libreoffice-calc
python-uno
Install unoconv package (works for >= 12.04)
cd /tmp
git clone [Link]
cd unoconv/
## if need be, install make
sudo apt-get install make
sudo make install
cd ../
rm -Rf unoconv/
change the /etc/environment to include
UNO_PATH=/usr/lib/libreoffice
for 14.04
simply do
sudo apt-get install unoconv -y
Create New SSH keys
ssh-keygen -t rsa -C "your_email@[Link]"# Creates a new ssh key using
the provided email
# Generating public/private rsa key pair.
# Enter file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]
Gain remote access to another server using ssh
Just like you use a remote control to change channels on a tv without touching a tv, you can
also gain access to a server without actually be in direct contact with a server.
usually you gain access by going to your terminal and type
ssh username@server-ip-address
e.g.,
ssh root@[Link]
or if you have associated the IP Address with a domain, you can do
ssh root@[Link]
have a mail smtp host on ubuntu server
install postfix
[Link]
Add www-data to sudoers file
What this is: we want to add a particular user account to the list of sudoers
Run the following as root:
sudo adduser www-data sudo
Allow all sudoers to execute sudo without password
Your main user is member of group 'sudo'. Default settings is to ask your password in order to
perform any activity which requires some privilegies.
in order to change it, you need to run in a terminal:
sudo visudo
and change this line:
%sudo ALL=(ALL:ALL) ALL
for this line:
%sudo ALL=(ALL:ALL) NOPASSWD: ALL
save the changes and close your session to have your system taking the changes.
Change password for other users
Run the following as root:
passwd www-data
Setup ssh login without password
Assume you want to login from a@A to b@B
First we assume that you have already created your private/public key pair
a) Make .ssh folders for the user b On B
Now use ssh to create a directory ~/.ssh as user b on B. (The directory may already exist,
which is fine):
a@A:~> ssh b@B mkdir -p .ssh
b@B's password:
Warning!! Sometimes, you get a host key verification failed message. This means
that probably you change the IP address of the server. Reset your known_hosts
file like this.
Note: for ssh via a different port number like 3022, use
ssh -p 3022 b@B mkdir .ssh
b) Actually assign a’s public key into user b on B as an authorized key
Finally append a's new public key to b@B:.ssh/authorized_keys and enter b's password one
last time:
a@A:~> cat ~/.ssh/id_rsa.pub | ssh b@B 'cat >> .ssh/authorized_keys'
b@B's password:
Note: for ssh via a different port number like 3022, use
cat ~/.ssh/id_rsa.pub | ssh -p 3022 b@B 'cat >> .ssh/authorized_keys'
From now on you can log into B as b from A as a without password:
a@A:~> ssh b@B hostname
B
A note from one of our readers: Depending on your version of SSH you might also have to
do the following changes:
● Put the public key in .ssh/authorized_keys2
● Change the permissions of .ssh to 700
● Change the permissions of .ssh/authorized_keys2 to 640
Pdftotext how to convert to and from pdf
sudo apt-get install poppler-utils
Prepare /var/virtual for webapp source code
Create the following folders if you want to have 1 production instance and 1 stage instance for
the same webapp
login as www-data
navigate to /var/virtual
use mkdir to create the following folders like:
[Link]
[Link]
The permissions of the folders should be 775
Or you can use
bash -c "$(curl -fsSL [Link] <[Link]>
this is the script [Link]
update packages including those kept back
sudo apt-get update -y
sudo apt-get dist-upgrade -y
will update all packages including those kept back.
After this, run
sudo apt-get autoremove -y
This will remove any unwanted packages.
You will be prompted to restart the system with
Graph this data and manage this system at [Link]
*** System restart required ***
Go to your Amazon EC2 or Rackspace to reboot the system.
how to purge old kernel packages when run of disk
space
sudo apt-get autoremove -f
This will forcibly remove unwanted kernel packages
If this doesn't work,
uname -a
to find out current kernel used
then
cd /boot
sudo rm *-3.03-61-generic
and remove any generic that is NOT current kernel.
Then try autoremove again.
Finally
sudo update-grub
how to display list of users and their ids
sudo nano /etc/passwd
how to remove the 12 packages can be installed
message when you login via ssh
this message is called motd or Message of the Day.
There are 2 reasons for this.
1) you have not updated packages that are held back. You need to update all packages
including those held back
2) There is a bug with the [Link] file. You need to run
sudo touch /etc/[Link]
if ubuntu is guest OS, ssh into it
[Link]
Add a port forwarding rule assuming you are using virtualbox
The best way to login to a guest Linux VirtualBox VM is port forwarding. By default you should
have one interface already which is using NAT. Then go to the Network settings and click the
Port Forwarding button. Add new Rule:
Host port 3022, guest port 22, name ssh, other left blank.
How to unzip zip file in terminal
1. install unzip [Link]
2. unzip [Link] -d destination_folder
How to install Jenkins on ubuntu
This is greatly referenced from
[Link]
Run the following as root:
wget -q -O - [Link] | sudo apt-key add -
sh -c 'echo deb [Link] binary/ >
/etc/apt/[Link].d/[Link]'
apt-get update -y
apt-get install jenkins -y
adduser jenkins sudo
curl -L [Link] | sed '1d;$d' | curl -X POST -H 'Accept:
application/json' -d @- [Link]
or you can use
bash -c "$(curl -fsSL
[Link]
21a/[Link])"
The script is here [Link]
It is important all of the above commands are executed. The first is to install. The second adds
`jenkins` to sudoers. The last one is to update the updatecenter so that you can properly use
shortname to install plugins.
if you get a curl: (7) couldn't connect to host
run the curl command again
How to configure jenkins to use subdomain like
[Link]
See this [Link]
How to make prompt appear if it is missing
Refer [Link] for more details
first at root i did a
echo $SHELL
I saw that I have /bin/bash
then i switch to www-data
sudo su www-data
then i do a
echo $SHELL
I saw that I had
/bin/sh
instead.
So I did a
chsh -s /bin/bash
I was prompted for my www-data password so I gave it.
Password:
after that I switch back to root
exit
then i log back into www-data
sudo su www-data
I checked the $SHELL again
echo $SHELL
I saw that now it is
/bin/bash
and also my prompt is back
This account is currently not available
sudo chsh -s /bin/bash username
to change the bash
How to find out full path of a command
If i want to know the full path to `service` as in `sudo service php5-fpm restart`
i will use `which service`
this will return me the full path which is usually \user\sbin\service
How to update known_hosts file when the ip address
changes for a server and you try to ssh
When you try to ssh to a server, sometimes the ip address changes and you get prompted for a
host key verification failed message.
So what you do is you need to reset the known_hosts
ssh-keygen -R hostname
How to allow a certain command be sudo by a
particular user without password prompted.
taken from [Link]
visudo as root
then
type
Phing ALL=(root) NOPASSWD: /full/path/to/service
assuming Phing is the user.
use which service to find out which service is used
when you change visudo, you need to reboot
how to prepare server for ssh agent forwarding
because sometimes a user needs to mkdir in another dir owned by another user and you do not
wish to change user privileges nor ownership or even which group the user belongs to.
easiest way is to use ssh agent forwarding.
but you need to update the known_hosts file.
otherwise you will keep triggering host key verification error..
so eg jenkins wants to mkdir a folder inside /var/virtual which belongs to www-data
first update the known_hosts inside jenkins
Login as jenkins
Do a
www-data@ipaddress
you will see a
The authenticity of host 'ipaddress (ipaddress)' can't be established.
ECDSA key fingerprint is [Link].
Are you sure you want to continue connecting (yes/no)? yes
then allow jenkins to access www-data@ipaddress without prompting for password
show all users
cut -d: -f1 /etc/passwd
How to use tar and gzip
Creating a tape archive:
tar -cf [Link] myDirectories/
Note - using the "v" flag prints out extra messages, as verbose mode, though it's not related to
extracting files.
Listing the contents of an archive:
tar -tf [Link]
It is generally a good idea to preview the contents of tape archives before unpacking them. This can
become a serious problem if you are currently root, and the archive just happens to jump out of the
current directory, and write over some important system files.
Extracting all files from an archive:
tar -xf [Link]
To extract just partial pieces from the archive, supply a file or directory name after the archive name.
You can list as many as desiered here, separated by spaces.
tar -xf [Link] filename
Compress:
gzip [Link]
Decompress:
gunzip [Link]
Merging files
The "z" flag works with gzip, to either create a tar/gzipped archive:
tar -czvf [Link] files/
...or decompress a tar/gzipped archive:
tar -xzvf [Link]
Update system clock
Sync Clock Via NTP
If you want to sync your clock with NTP servers, it is also very easy. Just make sure you have the file [Link] file in
/etc. How can you check it?
ls /etc/[Link]
If you see /etc/[Link] as a result, you already have that file. If the ls command gives an error, you do not have it. If
so, you may create it yourself.
sudo vim /etc/[Link]
This file will be used to automatic synchronization of the clock. I do not know if the client uses this file automatically or
one has to configure something first. Thanks to Sean (see comment below): You need to install ntpd in order to make
use of this [Link] file.
Whether you have the file already or not, make sure it has at least the following data
driftfile /var/lib/ntp/[Link]
server [Link]
server [Link]
server [Link]
server [Link]
Here you may replace, add, and/or remove any servers you wish. You will find a list of time servers from the public
NTP time server list.
You may manually sync the clock using the following
sudo ntpdate servername
where servername can be any public or private time server. You may always choose the following without hesitation
sudo ntpdate [Link]
If you don’t have ntpdate installed, you can install it via:
sudo aptitude install ntpdate
Setup Puppet Master on Ubuntu 12.04 LTS
1. [Link]
d-ubuntu
2. wget [Link]
sudo dpkg -i [Link]
sudo apt-get update
3. if the server is hosted somewhere in internet, use
sudo vim /etc/hosts
and add puppet to the [Link] entry
4. install the Jenkins see How to install Jenkins on ubuntu
5. switch to Cloudflare for your domain
6. wait for 24 hours before the nameservers DNS switches over to cloudflare
How to update to higher versions of ubuntu
$ sudo apt-get update
$ sudo apt-get install update-manager-core
then
$ sudo do-release-upgrade
if still no release
do
sudo do-release-upgrade -d
taken from
[Link]
A better answer is here for silent upgrade using defaults:
[Link]
Verify your settings on ubuntu Check version
$ lsb_release -a
$ uname -mrs
$ tail -f /var/log/app/log/file
How to restart jenkins when you accidentally lock
yourself out by security
root access and then navigate to /var/lib/jenkins
vim [Link]
look for useSecurity and change true to false
sudo reboot to restart server
worst case scenario is
sudo apt-get remove jenkins
then reinstall
How to find all files and delete
find . -name "*.txt" -type f -delete