Piccola sicurezza di MySQL …


Spesso e volentieri l’attività di SysADM è gravosa. Ma basta poco :D
Ad esempio per avviare il processo di messa in sicurezza di MySQL su una macchina CentOS basta digitare:

mysql_secure_installation

Basta poco, che ce vò ?

Windows Update come utente non Amministratore del sistema


Come sapere su sistemi Windows solo utente con qualifica di “Amministratore” può aggiornare il sistema (ovvero effettuare un Windows Update).
Questa situazione potrebbe risultare pericolosa in ambiente “Dominio” in quanto le macchine non riceverebbero (e, conseguentemente, installerebbero) gli aggiornamenti periodici di Microsoft.
Per risolvere il problema basta effettuare le seguenti modifiche:

Creare un file che chiameremo “windowsupdate.reg” all’interno del quale inseriremo il seguente codice:


Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]
“NoAutoUpdate”=dword:00000000
“AUOptions”=dword:00000004
“ScheduledInstallDay”=dword:00000000
“ScheduledInstallTime”=dword:00000012
“RescheduleWaitTime”=dword:0000000a
“UseWUServer”=dword:00000000

Basterà eseguire il codice per potere effettuare gli aggiornamenti di sistema anche come utenti non-amministratori.

Aggiungere/modificare utenti ad un PDC realizzato con Samba e OpenLDAP


Aggiungere un utente:

… come “Administrator”
smbldap-useradd -N “Nome” -S “Cognome” -P -a -m -c “Nome Cognome” username_assegnato -s /bin/bash -g “Domain Admins” -u 500 Administrator

… come utente normale
smbldap-useradd -N “Nome” -S “Cognome” -P -a -m -c “Nome Cognome” username_assegnato

Aggiungere un gruppo all’utente:

Aggiungere l’utente “username_asegnato” al gruppo “Amministratori” (oltre al gruppo principale di appartenenza)
smbldap-usermod -G “Domain Admins” username_assegnato

Vedere chi appartiene ad un determinato gruppo:

smbldap-groupshow “Domain Admins”

Ottenere una lista degli utenti presenti sul sistema:

smbldap-userlist

Configurare il proxy di Internet Explorer tramite registro


All’interno di una azienda potrebbe esistere la necessità di configurare il parametro del proxy server per un gruppo di PC.
Potrebbe risultare comodo farlo tramite chiave di registro.
Basta creare un file con estensione .reg (per comodità lo chiameremo proxy.reg) e inserire le seguenti righe di codice:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings]
“MigrateProxy”=dword:00000001
“ProxyEnable”=dword:00000001
“ProxyHttp1.1″=dword:00000000
“ProxyServer”=”[INDIRIZZO_PROXY]:[PORTA_PROXY]“
“ProxyOverride”=”"

Realizzare un PDC con CentOS e OpenLDAP come backend


Premessa (1): questo how to funziona con la release 5.x di Centos
Premessa (2): per il corretto funzionamento di questo how to è necessario disinstallare samba (ramo 3.0.x) ed installare samba3x (ramo 3.5.x)
Premessa (3): per il corretto funzionamento di questo how to è necessario installare smbldap-tools

Dopo avere aggiornato il sistema e installati gli aggiornamenti di cui all’articolo http://opuntia.biz/2009/07/07/aggiornare-centos-in-un-sol-colpo/ editiamo il file /etc/hosts

127.0.0.1 localhost.localdomain localhost
(IP_SERVER) serverpdc.azienda.it serverpdc

Ora iniziamo a lavorare su OpenLDAP.
Editiamo il file /etc/openldap/ldap.conf ed inseriamo:

BASE dc=serverpdc, dc=local
URI ldap://127.0.0.1

Editiamo il file /etc/openldap/slapd.conf ed andiamo a modificare i campi:

include /etc/openldap/schema/samba.schema

suffix “dc=serverpdc,dc=local”
rootdn “cn=admin,dc=serverpdc,dc=local”
rootpw (PASSWORD)

index sambaSID eq
index sambaPrimaryGroupSID eq
index sambaDomainName eq

#access to attrs=userPassword,shadowLastChange,sambaNTPassword,sambaLMPassword

Digitiamo i seguenti comandi:

cp /usr/share/doc/samba3x-3.5.4/LDAP/samba.schema /etc/openldap/schema/

cp /etc/openldap/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
chown ldap:ldap /var/lib/ldap/DB_CONFIG
chmod 600 /var/lib/ldap/DB_CONFIG

service ldap restart

Digitiamo il comando …

slappasswd

che, dopo avere inserito la password restituirà la stessa criptata …

{SSHA}wU7yzn+xv4fHfLTMceg0fgmOa40LcRfC

Creiamo con il nostro editor di testo preferito un file che chiameremo “admin.ldif” compilato nel seguente modo:

# Voce 1: dc=serverpdc,dc=local
dn: dc=serverpdc,dc=local
dc: serverpdc
o: serverpdc.local
objectclass: top
objectclass: dcObject
objectclass: organization

# Voce 2: cn=admin,dc=serverpdc,dc=local
dn: cn=admin,dc=serverpdc,dc=local
cn: admin
objectclass: organizationalRole
objectclass: simpleSecurityObject
objectclass: top
userpassword: {SSHA}wU7yzn+xv4fHfLTMceg0fgmOa40LcRfC

Digitiamo il comando:

ldapadd -x -D “cn=admin,dc=serverpdc,dc=local” -w [PASSWORD_IN_CHIARO] -f /root/admin.ldif

Recuperiamo il SID della macchina …

[root@serverpdc html]# net getlocalsid
SID for domain SERVERPDC is: S-1-5-21-3901001746-2498536636-3303555514

… ed editiamo il file /etc/smbldap-tools/smbldap.conf in questo modo:

SID=”S-1-5-21-3901001746-2498536636-3303555514″
sambaDomain=”SERVERPDC.LOCAL”
#slaveLDAP=”ldap.iallanis.info”
#slavePort=”389″
masterLDAP=”127.0.0.1″
suffix=”dc=serverpdc,dc=local”
ldapTLS=”0″
userSmbHome=”\\SERVERPDC\%U”
userProfile=”\\SERVERPDC\profiles\%U”
mailDomain=”DOMINIO_DI_POSTA.IT”

Altresì editiamo il file /etc/smbldap-tools/smbldap_bind.conf

slaveDN=”cn=admin,dc=serverpdc,dc=local”
slavePw=”(PASSWORD)”
masterDN=”cn=admin,dc=serverpdc,dc=local”
masterPw=”(PASSWORD)”

Editiamo il file /etc/samba/smb.conf in questo modo:

[global]
workgroup = SERVERPDC.LOCAL
server string = Samba PDC Server Version %v
obey pam restrictions = Yes
passdb backend = ldapsam:ldap://127.0.0.1
passwd program = /usr/sbin/smbldap-passwd %upasswd chat = *New*password* %n\n *Retype*new*password* %n\n *all*authentication*tokens*updated*
add user script = /usr/sbin/smbldap-useradd -m “%u”
delete user script = /usr/sbin/smbldap-userdel “%u”
add group script = /usr/sbin/smbldap-groupadd -p “%g”
delete group script = /usr/sbin/smbldap-groupdel “%g”
add user to group script = /usr/sbin/smbldap-groupmod -m “%u” “%g”
delete user from group script = /usr/sbin/smbldap-groupmod -x “%u” “%g”
set primary group script = /usr/sbin/smbldap-usermod -g “%g” “%u”
add machine script = /usr/sbin/smbldap-useradd -w “%u”
logon path = \\%N\profiles\%U
logon drive = H:
domain logons = Yes
domain master = Yes
dns proxy = No
wins support = Yes
ldap admin dn = cn=admin,dc=serverpdc,dc=local
ldap delete dn = Yes
ldap group suffix = ou=Groups
ldap idmap suffix = ou=Idmap
ldap machine suffix = ou=Computers
ldap passwd sync = Yes
ldap suffix = dc=serverpdc,dc=local
ldap user suffix = ou=Users
ldap ssl = off
# invalid users = root
cups options = raw
time server = yes
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_SNDBUF=8192 SO_RCVBUF=8192

[homes]
comment = Home Directories
read only = No
create mask = 0700
directory mask = 0700
browseable = No

[printers]
comment = All Printers
path = /var/spool/samba
printable = Yes
browseable = No

[netlogon]
comment = Network Logon Service
path = /home/netlogon
guest ok = Yes
share modes = No

[profiles]
path = /home/profiles
read only = No
create mask = 0600
directory mask = 0700
hide files = /desktop.ini/outlook*.lnk/*Briefcase*/
veto files = /*.mp3/ /*.wav/ /*.mpeg/ /*.avi/

Digitiamo i comandi:

mkdir /home/profiles
mkdir /home/netlogon
chmod 0775 /home/profiles

smbpasswd -w (PASSWORD IN CHIARO)

smbldap-populate -a Administrator -k 0

service smb restart
service nmb restart

Contestualmente modifichiamo il file /etc/nsswitch.conf aggiungendo “ldap” al file in questo modo:

da
passwd: files
shadow: files
group: files
a
passwd: files ldap
shadow: files ldap
group: files ldap

Contestualmente utilizzare il comando “authconfig-tui” flaggando i campi “Usa LDAP”, “Usa Password MD5″, “Usa password Shadow”, “Usa autenticazione LDAP” e specificando (dopo avere premuto il tasto “Avanti”) i parametri “Server: ldap://127.0.0.1/” e “Base DN: dc=serverpdc,dc=local”

Creiamo il primo utente con il comando:

smbldap-useradd -N “Roberto” -S “Pennolino” -P -a -m -c “BoB” bob

—–
cd /var/www/html/
wget http://downloads.sourceforge.net/project/phpldapadmin/phpldapadmin-php5/1.2.0.5/phpldapadmin-1.2.0.5.tgz
tar -zxvf phpldapadmin-1.2.0.5.tgz
mv phpldapadmin-1.2.0.5 phpldapadmin
cp /var/www/html/phpldapadmin/config/config.php.example /var/www/html/phpldapadmin/config/config.php
vi /etc/php.ini
memory_limit = 32M
service httpd restart
—–

Installare VMware Tools su VMware ESXi+Centos


rpm –import http://packages.vmware.com/tools/VMWARE-PACKAGING-GPG-KEY.pub

vi /etc/yum.repos.d/CentOS-Base.repo

[vmware-tools]
name=VMware Tools for Red Hat Enterprise Linux $releasever – $basearch
#baseurl=http://packages.vmware.com/tools/esx//rhel5/
baseurl=http://packages.vmware.com/tools/esx/4.0u1/rhel5/i686/
enabled=1
gpgcheck=1

yum install vmware-tools

Best practices per “alzare” un nuovo server …


SSH
/etc/ssh/sshd_config

UseDNS no
Protocol 2
PermitRootLogin no

YUM

yum -y update
rpm –import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
rpm -Uvh http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.1-1.el5.rf.i386.rpm
yum install fetchmail wget bzip2 unzip zip nmap openssl lynx fileutils ncftp gcc gcc-c++ system* quota bind-chroot mysql mysql-devel mysql-server cyrus-sasl cyrus-sasl-devel cyrus-sasl-gssapi cyrus-sasl-md5 cyrus-sasl-plain postfix dovecot php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc curl curl-devel perl-libwww-perl ImageMagick libxml2 libxml2-devel webalizer ntp perl-HTML-Parser perl-DBI perl-Net-DNS perl-Digest-SHA1 rpm* postgrey kernel-headers kernel-devel smbldap* alpine

updatedb
makewhatis

INITTAB
/etc/inittab

modificare il parametro da: “id:5:initdefault:”
a: “id:3:initdefault:”

File HOSTS
/etc/hosts

Modificare il file da …
127.0.0.1 pdc.server.it pdc localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6

a …
127.0.0.1 localhost.localdomain localhost
(INDIRIZZO_IP_SERVER) pdc.server.it pdc

/etc/sysctl.conf

Aggiungere al file:

# Enable TCP SYN Cookie Protection
net.ipv4.tcp_syncookies = 1
# Disable ICMP Redirect Acceptance
net.ipv4.conf.all.accept_redirects = 0
# Enable IP spoofing protection, turn on source route verification
net.ipv4.conf.all.rp_filter = 1
# Enable ignoring broadcasts request
net.ipv4.icmp_echo_ignore_broadcasts = 1
# Enable bad error message Protection
net.ipv4.icmp_ignore_bogus_error_responses = 1
# Log Spoofed Packets, Source Routed Packets, Redirect Packets
net.ipv4.conf.all.log_martians = 1
# increase TCP max buffer size setable using setsockopt()
net.core.rmem_max = 40500000
net.core.wmem_max = 40500000
# increase Linux autotuning TCP buffer limits
# min, default, and max number of bytes to use
# set max to at least 4MB, or higher if you use very high BDP paths
net.ipv4.tcp_rmem = 4096 87380 40500000
net.ipv4.tcp_wmem = 4096 65536 40500000
# don’t cache ssthresh from previous connection
net.ipv4.tcp_no_metrics_save = 1
net.ipv4.tcp_moderate_rcvbuf = 1
# recommended to increase this for 1000 BT or higher
net.core.netdev_max_backlog = 2500
# for 10 GigE, use this
# net.core.netdev_max_backlog = 30000

net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.tcp_max_syn_backlog = 1280
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.all.secure_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.default.secure_redirects = 0
net.ipv4.tcp_timestamps = 0

yum install chkrootkit rkhunter

rkhunter –update
rkhunter -c
chkrootkit

AGGIORNAMENTI AUTOMATICI DI SISTEMA

Digitare: crontab -e ed inserire
07 00 * * * /usr/bin/yum -y update

Nel caso di aggiornamento di macchina virtuale con installati i VMware Tools …
07 00 * * * /usr/bin/yum -y update –exclude=*kernel*

Stoppare i servizi “inutili”
chkconfig anacron off
chkconfig atd off
chkconfig auditd off
chkconfig cpuspeed off
chkconfig kudzu off
chkconfig netfs off
chkconfig ip6tables off
chkconfig smartd off
chkconfig pcscd off
chkconfig cups off
chkconfig mcstrans off
chkconfig nfslock off
chkconfig rpcgssd off
chkconfig rpcidmapd off
chkconfig portmap off
chkconfig nfs off

Gestione del firewall …
wget ftp://ftp.pbone.net/mirror/ftp.falsehope.net/home/tengel/centos/4/te/i386/RPMS/portsentry-1.2-1.te.i386.rpm
rpm -Uvh portsentry-1.2-1.te.i386.rpm
chkconfig portsentry on

vi /etc/portsentry/portsentry.conf
# Default TCP ident and NetBIOS service
ADVANCED_EXCLUDE_TCP=”21,22,25,53,80,110,113,135,137,138,139,443,445″
# Default UDP route (RIP), NetBIOS, bootp broadcasts.
ADVANCED_EXCLUDE_UDP=”520,517,518,513,138,137,123,68,67,53″

scommentare:
#KILL_RUN_CMD=”/bin/mail -s ‘Portscan from $TARGET$ on port $PORT$’ user@host < /dev/null"

Skel
Quando viene creata la home directory di un nuovo utente, viene inizializzata con i file dalla directory /etc/skel.
L’amministratore di sistema può creare dei file in /etc/skel che daranno un ambiente di default per gli utenti.
Ad esempio può creare un file /etc/skel/.profile che imposta la variabile d’ambiente EDITOR ad un editor facile da usare.

Comunque di solito è meglio provare a tenere /etc/skel il più piccolo possibile, perché sarebbe poi quasi impossibile aggiornare i file degli utenti esistenti. Ad esempio, se cambia il nome dell’editor, tutti gli utenti esistenti dovrebbero modificare il proprio .profile . L’amministratore di sistema può provare a farlo automaticamente, con uno script, ma è quasi certo che danneggerebbe il file di qualcuno.

Quando possibile è meglio mettere le configurazioni globali nei file globali, come /etc/profile . In questo modo è possibile aggiornarlo senza rovinare i setup personali degli utenti.

cd /etc/skel
mkdir -p /etc/skel/Maildir/new
mkdir -p /etc/skel/Maildir/cur
mkdir -p /etc/skel/Maildir/tmp

Postfix e LDAP-aliases


Molto spesso risulta comodo gestire gli aliases di posta elettronica direttamente tramite LDAP.
Assunto che gli aliases di posta elettronica siano stati migrati da un precedente sistema tramite lo script migrate-aliases e che all’interno dell’albero LDAP sia stata creata la UO “Aliases” …
Queste sono le modifiche da apportare:

/etc/postfix/main.conf

alias_maps = hash:/etc/aliases, ldap:/etc/postfix/ldap-aliases.cf

/etc/postfix/ldap-aliases.conf

server_host = 127.0.0.1
search_base = ou=Aliases, dc=math, dc=unipa, dc=it
bind_dn = cn=admin, dc=math, dc=unipa, dc=it
bind_pw = AtavacroN
query_filter = (&(objectClass=nisMailAlias)(cn=%u))
result_attribute = rfc822MailMember
#result_format = %s
scope = sub
#cache = yes
bind = yes

Script per la creazione di un utente tramite CPU(Change Password Utility)/OpenLDAP


#!/bin/sh
#
# Nome utente …
echo -e “Immettere nome utente: \c “
read USER_NAME
#
# Password utente
echo -e “Introdurre password: \c “
read PASSWORD
#
# Oggetto dell’email
SUBJECT=”Creazione account utente”
#
# Invia l’email all’utente appena creato …
EMAIL=$USER_NAME
#
# Aggiunge l’utente all’albero LDAP
/usr/sbin/cpu useradd –password=$PASSWORD $USER_NAME –makehome –directory=/home/$USER_NAME –skel=/etc/skel/ –shell=/sbin/nologin –gid=100
#
# Testo dell’email da inviare all’utente
EMAILMESSAGE=”/tmp/emailmessage.txt”
echo “Gentile utente” $USER_NAME”,”> $EMAILMESSAGE
echo “si comunica che il suo account e’ stato attivato. Il suo indirizzo di posta e’: “$USER_NAME”@server.it” >>$EMAILMESSAGE
echo “Si ricorda che la password (che deve essere tenuta nascosta) e’: ” $PASSWORD >>$EMAILMESSAGE
echo “Cordiali saluti.” >>$EMAILMESSAGE
echo ” ” >>$EMAILMESSAGE
echo “Area ICT – server.it” >>$EMAILMESSAGE
echo ” ” >>$EMAILMESSAGE
echo “– Questo messaggio e’ stato generato automaticamente dal sistema –” >>$EMAILMESSAGE
#
# Invia l’email di comunicazione creazione account all’utente
/bin/mail -s “$SUBJECT” “$EMAIL” $EMAILMESSAGEITADMIN
echo “si comunica che l’account dell’utente ‘”$USER_NAME”‘ e’ stato attivato. E’ stato attivato, altresi’, l’indirizzo di posta: “$USER_NAME”@server.it” >>$EMAILMESSAGEITADMIN
echo “Si ricorda che per l’inserimento dei dati telefonici all’interno della rubrica centralizzata e’ necessario utilizzare PHPldapADMIN.” >>$EMAILMESSAGEITADMIN
echo “Cordiali saluti.” >>$EMAILMESSAGEITADMIN
echo ” ” >>$EMAILMESSAGEITADMIN
echo “Il vostro umile ed indefesso servo – server.it” >>$EMAILMESSAGEITADMIN
echo ” ” >>$EMAILMESSAGEITADMIN
echo “– Questo messaggio e’ stato generato automaticamente dal sistema –” >>$EMAILMESSAGEITADMIN
#
# Invia l’email di comunicazione creazione account all’amministratore di sistema
/bin/mail -s “$SUBJECT” area-ict@localhost < $EMAILMESSAGEITADMIN
# Aggiunge l’utente all’albero LDAP
#/usr/sbin/cpu useradd –password=$PASSWORD $USER_NAME –makehome –directory=/home/$USER_NAME –skel=/etc/skel/ –shell=/sbin/nologin –gid=100

Aggungere un utente su un server LDAP


Dopo avere installato, configurato ed abbondantemente testato un server LDAP sorge generalmente un “piccolo” problema: per aggiungere un utente fino ad oggi siamo stati abituati a digitare …

useradd nome utente

Con questo comando, però, aggiungiamo un utente al sistema.
Per aggiungere un utente all’albero LDAP abbiamo diverse scelte. Possiamo farlo via web (PHPldapAdmin) e da shell (utilizzando il comando ldapadd).
In quest’ultimo caso, però, dovremmo creare una struttura ldif, cosa che magari non è di immediato utilizzo.
Siccome Linux=semplicità …
La soluzione si chiama: CPU (Change Password Utility) !!!
Basterà scaricare da qui la versione più adatta alla propria distribuzione Linux (per CentOS io ho sempre utilizzato questo rpm) e digitare il comando:

rpm -Uvh cpu-1.4.3-0.2.el4.rf.i386.rpm

Una volta effettuata l’installazione potremo aggiungere un nuovo utente digitando il comando:

cpu useradd –password=passowrd_utente nome_utente –makehome –directory=/home/nome_utente –skel=/etc/skel/ –shell=/sbin/nologin –exec=/root/mandamail.sh –gid=100 –firstname=”Utente” –lastname=”Fittizio”

dove:
–password = password dell’utente
–makehome = crea la home dell’utente
–directory = home directory dell’utente
–skel = quando viene creata la home directory di un nuovo utente, viene inizializzata con i file dalla directory /etc/skel . L’amministratore di sistema può creare dei file in /etc/skel che daranno un ambiente di default per gli utenti. Ad esempio può creare un file /etc/skel/.profile che imposta la variabile d’ambiente EDITOR ad un editor facile da usare.
–shell = shell di default del nuovo utente
–exec = file batch da eseguire alla creazione del nuovo utente
–gid = gruppo di afferenza dell’utente
–firstname/–lastname = dati dell’utente

CPU può essere finemente parametrizzato tramite il file /etc/cpu.conf
Ecco un esempio del file …

# See cpu.conf(5) for documentation

[GLOBAL]
DEFAULT_METHOD = ldap
CRACKLIB_DICTIONARY = /usr/lib/cracklib_dict

[LDAP]
LDAP_HOST = 127.0.0.1
LDAP_PORT = 389
# Can also use LDAP_URI = ldaps://localhost:389 for TLS support
BIND_DN = cn=admin,dc=ldap,dc=server,dc=it
BIND_PASS = password_amministrazione_ldap_server
USER_BASE = ou=People,dc=ldap,dc=server,dc=it
# replace account with inetOrgPerson if you want first or last name
GROUP_BASE = ou=group,dc=ldap,dc=server,dc=it
USER_OBJECT_CLASS = account,posixAccount,shadowAccount,top
GROUP_OBJECT_CLASS = posixGroup,top
USER_FILTER = (objectClass=posixAccount)
GROUP_FILTER = (objectClass=posixGroup)
USER_CN_STRING = uid
GROUP_CN_STRING = cn
SKEL_DIR = /etc/skel
DEFAULT_SHELL = /sbin/nologin
HOME_DIRECTORY = /home
MAX_UIDNUMBER = 10000
MIN_UIDNUMBER = 2000
MAX_GIDNUMBER = 10000
MIN_GIDNUMBER = 100
ID_MAX_PASSES = 1000
USERGROUPS = yes
USERS_GID = 100
RANDOM = “false”
PASSWORD_FILE = “/etc/passfile”
SHADOW_FILE = “/etc/shadowfile”
HASH = “md5″
#ADD_SCRIPT = “contrib/postaddscript.sh”
#DEL_SCRIPT = “foo”
SHADOWLASTCHANGE = 11192
SHADOWMAX = 99999
SHADOWWARING = 7
SHADOWEXPIRE = -1
SHADOWFLAG = 134538308
SHADOWMIN = -1
SHADOWINACTIVE = -1

[PASSWD]
# Broken
GROUP = 1000
HOME = /home
INACTIVE = -1
#EXPIRE =
SHELL = /bin/bash
SKEL = /etc/skel
COMMENT = “Default Gecos”
PASSWORD = /etc/passwd
SHADOW = /etc/shadow

Iscriviti

Get every new post delivered to your Inbox.

Join 35 other followers