To add a existing user to a group
usermod -a -G thegroup theuser
To add a user to a group when the user is created
useradd -G thegroup theuserTo add a existing user to a group
usermod -a -G thegroup theuser
To add a user to a group when the user is created
useradd -G thegroup theuserOn *nix environments it is possible to forward the mail to one account to another user (or another email address if external mail is supported).
This is done by adding the recipient in a file called .forward in the home directory.
Example To simply forward to another address:
user@server$ echo recipient@mail.com > ~/.forward user@server$ chmod go-w ~/.forward
In order to forward to several addresses coma (,) is used as a delimiter between the different recipients.
Example To forward to two addresses at the same time:
user@server$ echo recipient1@mail.com,recipient2@mail.com > ~/.forward user@server$ chmod go-w ~/.forward
Sometimes it is nice to send a log or some other file as a email to someone (or a part of a file)
cat myfile.txt | mail -s 'SUBJECT' example@mail.com;
Change myfile.txt, SUBJECT and example@mail.com to something useful.
It is also possible to send the output of a command to someone
ps -ef|mail -s 'SUBJET' example@mail.com;
To mark a message as unread in pine this can be done using flags.
First flags have to be turned on in setup
[M]ain [S]etup [C]onfig
Then find “enable-flag-cmd” and turn it on.
After this marking a message as unread is done by “* N” in the list view or when looking at the message.
All the flags are:
[^T] Can be used to see all the flags and set/unset them one by one (or all).
Using SSH you can run commands at remote servers.
By default the remote server will ask for credentials but for instance when writing a script it is not a good idea to store the login credentials in a script.
The solution to this is to create a key pair at the origin machine (where the script is) and then send this key to the remoteserver (where the script needs to login).
jonas@jonas-desktop:~$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/jonas/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/jonas/.ssh/id_rsa. Your public key has been saved in /home/jonas/.ssh/id_rsa.pub. The key fingerprint is: 11:f9:5a:8f:7d:74:e4:68:3b:4b:22:1c:78:e6:be:2d jonas@jonas-desktop The key's randomart image is: +--[ RSA 2048]----+ | .. | | .. .| | .o + | | ..* + o| | SB = o o | | . = + = | | . . + o | | E. . | | .o. | +-----------------+
Passphrase is needed to “unlock” this key before being able to use it. Leaving passphrase blank means that the key can be used without any inputs.
jonas@jonas-desktop:~$ ssh-copy-id -i .ssh/id_rsa.pub user@remoteserver Warning: Permanently added 'remoteserver,11.222.333.222' (RSA) to the list of known hosts. user@remoteserver's password: Now try logging into the machine, with "ssh 'user@remoteserver'", and check in: .ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting.
-i is the identity file we created with ssh-keygen
This is it. Now you are able to login to remoteserver as user without a password.
By default untaring will put the contents into the current directory.
Sometimes it is not desirable to change directory to the target (such as in a scrip).
tar -xvvf /source/tarfile.tar -C /target
This will extract(x), very verbosly(vv) the file(f) /source/tarfile.tar to the directory(-C) /target (it will change the output folder to /target (so make sure it exists).
netstat can be used to figure out what program is using a port.
$ netstat -nlp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1096/sshd tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1733/apache2 tcp6 0 0 :::22 :::* LISTEN 1096/sshd Active UNIX domain sockets (only servers) Proto RefCnt Flags Type State I-Node PID/Program name Path unix 2 [ ACC ] STREAM LISTENING 6338 1071/gdm-simple-sla @/tmp/gdm-greeter-LvjLQPzT unix 2 [ ACC ] STREAM LISTENING 5165 1072/X /tmp/.X11-unix/X0
If you have a lot open then grep can be used to only find what you are looking for
netstat -nlp|grep :22 tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1096/sshd tcp6 0 0 :::22 :::* LISTEN 1096/sshd
For windows, simply start with
netstat -n
The arp cache should (normally) be cleared within 20 minutes (or less, this depends on what platform is used).
If you don’t know what ARP is and what is is good for, then perhaps you should take a moment and read the man page:
DESCRIPTION Arp manipulates or displays the kernels IPv4 network neighbor cache. It can add entries to the table, delete one or display the current content. ARP stands for Address Resolution Protocol, which is used to find the media access control address of a network neighbor for a given IPv4 Address.
On a windows platform to show the arp cache
C:\> arp -a Interface: 192.168.1.49 --- 0xb Internet Address Physical Address Type 192.168.1.29 00-1d-92-08-49-25 dynamic 192.168.1.34 00-24-81-85-ab-b6 dynamic
To clear the cache
C:\>netsh interface ip delete arpcache
Ok.To show the arp cache on a nix machine:
$ arp -vn; cat /proc/net/arp Address HWtype HWaddress Flags Mask Iface 192.168.1.254 ether 00:08:ae:09:20:a0 C eth0 IP address HW type Flags HW address Mask Device 192.168.1.254 0x1 0x2 00:08:ae:09:20:a0 * eth0
To clear the apr cache on a nix machine.
$ ip neigh flush all
sendmail expects to the machine to have a FQDN (fully qualified domain name).
If it does not have that (type “hostname” to check what name the machine has) sendmail will complain about this and take a loot of extra time trying to find it.
To use a FQDN edit “/etc/hosts” and change [something] to [something.yourdomain.com] and this will go away. Updating “/etc/hostname” at the same time might be a good idea; don’t forget to run “/bin/hostname -F /etc/hostname” after updating /etc/hostname.