====== GNU/Linux ======
This page concerns the //Debian// distribution (//Jessie//, then //Stretch//), but may also be applied to other //GNU/Linux// (or //POSIX//) distributions.
The extended //Debian// security advisories in //RDF// format and in English : https://www.debian.org/security/dsa-long.en
===== Connection through 'ssh' without password =====
To enable the connection to a host without password, launch from the machine from where you want to connect : ''ssh-copy-id [@]''.
===== Numlock enabled by default =====
When installing //Debian// //Jessie// in a virtual machine, the numlock is disabled by default. To enable it by default, you should do the following :
* Install the //numlockx// package,
* add ''/usr/bin/numlockx on &'' to the end of file ''/etc/X11/xinit/xinitrc''.
===== Compiling for IA-32 under an AMD64 environment =====
When compiling for //IA-32// under a //AMD64// enviroment (by passing the ''-m32'' option to both compiler and linker), the compiler will complain about missing headers. To fix this, install ''g++-multilib'' package.
===== Fetching informations =====
==== OS ====
* ''uname -a'',
* ''lsb_release -a'' (package //lsb-release//, with ''-'', not ''_''),
* ''cat ''...
* ''/proc/version'',
* ''/etc/issue'',
* ''/etc/issue.net'',
* ''/etc/*release'',
* ''/etc/*version''.
==== Hardware ====
http://www.binarytides.com/linux-commands-hardware-info/
* ''lscpu'',
* ''lshw -short'',
* ''hwinfo %%--%%short'',
* ''df -h'',
* ''free'',
* ''cat /proc/''...
* ''cpuinfo'',
* ''meminfo'',
* ...
* ...
==== Miscellaneous ====
* Temperature : with package //lm-sensors// ''sensors'',
* frequencies : with package //cpufrequtils// ''cpufreq-info''.
===== 'sudo' =====
==== Setting ====
To give a user same rights as for //root// through //sudo//, add a file in ''/etc/sudoers.d/'' with following content :
ALL=(ALL) ALL
where '''' is the user's login.
''visudo'' should be used to edit this file, but it's not needed. The content of the created file is immediately take in account by //sudo//.
==== Error 'unable to resolve ' ====
To avoid this error when //sudoing//, following conditions must be met (from http://askubuntu.com/questions/59458/error-message-when-i-run-sudo-unable-to-resolve-host-none) :
* ''/etc/hostname'' must contain //// (''hostname ////'' command works only until next reboot),
* there must be an entry in ''/etc/hosts/'' where ''////'' points to ''127.0.0.1''.
Depending on your configuration, the modification in ''/etc/hosts'' will not survive to a //reboot//. You should then have a comment at the head of your ''/etc/hosts'' file, which indicates that you have to modify a file in ''/etc/cloud/templates'', but the given file may not be the correct one. Under //Debian//, for example, you have to modify ''hosts.debian.tmpl'' file, not ''hosts.tmpl''.
===== USB =====
What follows may only concern //ARM// architectures ; it was not tested on //x86// architectures.
:!: It seems that you have to install the //ntfs-3g// package __before__ installing the //usbmount// package, or the //NTFS// devices will only be //read-only//.
* To //automount// //USB// devices, install //usbmount// package,
* In order to mount //NTFS// devices, add '' ntfs fuseblk'' to ''FILESYSTEMS'' in ''/etc/usbmount/usbmount.conf''
The devices will be accessible under ''/media/usb...''.
The ''fdisk -l'' command will show if your //USB// device is recognized (//recognized// does not means //mounted//).
:!: Trouble with //NTFS// devices auto-mounting : https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=774149.
===== Clock =====
* To set the correct time from a server (package //ntpdate//) : ''ntpdate '', with '''', a //NTP// server (''ntp.ubuntu.com'' for example),
* to display the hardware clock : ''hwclock'',
* to synchronize the hardware clock with system clock : ''hwclock --systohc'',
* to synchronize the system clock with hardware clock : ''hwclock --hctosys''.
===== WiFi =====
==== Raspberry Pi/ODROID ====
For each //Wifi// network, add following in the ''/etc/wap_supplicant/wpas_supplicant.conf''
network={
ssid=""
scan_ssid=1
psk=""
key_mgmt=
}
Replace the entry with correct values. '''' can be something like ''WPA-PSK'' or ''NONE'' (without double-quotes!). ''scan--ssid'' is for hidden network, but should also work for not hidden network. ''psk'' can be omitted when the network is open.
==== Other ====
Was once used, but above should be used instead.
* Install ''wpasupplicant'' package,
* Launch ''wpa-passphrass '', where '''' is the //SSID// of the WiFi network, and '''', the corresponding key. You should obtain something like :
network={
ssid=""
#psk=""
psk=3a19d8ecd12eff56bbebd67af8e4c14e1b4b5fb1a278f7e5c474ad252853a1d9
}
* in ''/etc/network/interfaces'', insert :
auto wlan0
iface wlan0 inet dhcp
wpa-ssid
wpa-scan-ssid 1 # If the SSID id hidden.
wpa-psk
where '''' is the //SSID// of the WiFi network, and '''' the hexadecimal string right of the uncommented above ''psk='' entry.
* launch ''ifup wlan0''.
===== Hostname =====
To change //hostname// :
* Until next //reboot// : ''hostname '' (you must logout to see the change),
* permanently : modify file ''/etc/hostname''.
If the //hostname// doesn't match an ID of the //SSL// certificate, //apache// will complain.
How to correctly set the //hostname// to avoid some error messages (for example ''unable to resolve host ...'' with //sudo//): https://askubuntu.com/questions/59458/
===== Configuring an account to allow backup only =====
You may want to backup the entire //www-data// account (which contains the web pages) using //scp// or //rsync//, but you get a message like ''protocol version mismatch -- is your shell clean?''. This is because the the shell for this account is a restricted one (probably ''/usr/sbin/nologin'', as you will see in ''/etc/passwd'').
To fix this :
* install ''rssh'' package,
* modify ''/etc/passwd'' so the shell will be ''/usr/bin/rssh'' (''bin'', not ''sbin'') for the desired account,
* modify ''/etc/rssh.conf'' accordingly.
===== Killing a connection =====
To kill the a TCP connection without having to stop the corresponding program:
''sudo ss -K dst [dport ]''
===== Remote copy with resuming =====
An alternative to ''scp'', which allows to resume an interrupted transfer:
''rsync %%--%%append-verify [%%--%%progress] [-e ssh] ''
* ''-e ssh'' should be the default, but may be useful to add some parameters to ssh (put ''ssh'' and its parameters between quotes then),
* ''%%--%%progress'' is to display the progress.
Can be used directly, or after an aborted ''scp''.
===== Other =====
* //[[.:systemd:]]//,
* //[[.:Odroid:]]//.