2018. március 30., péntek

mount USB disk Ubuntun

Az USB disk Ubuntu-n csak a grafikus felületen bejelentkezett felhasználó számára érhető el. Ha azt szeretnénk, hogy más felhasználók vagy programok userei (pl nobody, minidlna) is el tudják azt érni, két dolgot tehetünk:

  •  root user nevében futtatjuk az alkalmazást
  • beállítjuk a mount és file ACL jogosultságokat.

root-ként futtatni egy programot nagyon veszélyes, nem véletlenül van nekik saját felhasználójuk, emiatt a második megoldásról szeretnék írni.

1. keressük meg az USB disk nevét (pl SAMSUNG), a mount pontot (pl /dev/sdb1) és azonosítóját (UUID) a blkid paranccsal
/dev/sdb1: LABEL="SAMSUNG" UUID="8CDC9584ABC123456" TYPE="ntfs"

2. nézzük meg a mount parancs kimenetében, hogy hova (pl /media/<username> ) és milyen paraméterekkel (pl rw,nosuid,nodev,allow_other,default_permissions,blksize=4096) csatlakoztatja fel a rendszer a disk-et

3. keressük meg az /etc/group file-ban, hogy az engedélyezni kívánt felhasználó (pl nobody, minidlna) melyik csoportnak (pl nogroup, minidlna) a tagja és annak mi az ID-ja (pl 128)

4. keressük meg az /etc/passwd file-ban a mi user-ünk azonosítóját (pl 1000)

5. nézzük meg a file ACL-t a csatolási ponton (pl media/<username>)

sudo getfacl /media/<username>
# file: media/<username>
# owner: root
# group: root
user::rwx
user:<username>:r-x
group::---
mask::r-x
other::---
Ebből látjuk, hogy csak nekünk van jogunk, másnak nincs (group::---)


6. módosítsuk a file ACL-t: adjuk hozzá a kiválasztott csoportot
sudo setfacl -m g:<group>:rx /media/<username>

7. ellenőrizzük le a getfacl paranccsal a jogot: plusz egy sor kell megjelenjen a beállított értékkel
group::<group>

8. grafikus felület alatt csatlakoztassuk le az USB disk-et (Safely Remove)

9. adjunk hozzá az /etc/fstab-hoz egy sort a fenti adatokkal, pl
UUID=8CDC9584ABC123456 /media/<username>/SAMSUNG auto

user,uid=1000,gid=128,umask=027,rw,nosuid,nodev,allow_other,default_permissions,blksize=4096

2018. március 25., vasárnap

Cisco ASA anyconnect username és e-mail address

Az alábbi kis script lekérdezi SNMP-vel a Cisco ASA eszköztől az anyconnect userek usernevét, a Microsoft Active Directory-ból pedig az e-mail címet.
# ./userlist
jgipsz   gpisz.jakab@company,com

A lekérdezés SNMPv3-mal működik, amihez létre kell hozni az ASA-n egy SNMPv3 user-t az alábbi paranccsal
snmp-server group LEKERDEZ v3 priv
snmp-server user <SNMP usernév> LEKERDEZ v3 auth sha <auth-password> priv aes 128 <encr-password>

Az alábbi bash script kérdezi le SNMP-vel az adatokat, majd meghív egy awk script-et, ami feldogozza azokat.
A <...> helyére kell beírni a mi rendszerünkben használt értékeket.
cat userlist
/usr/bin/snmpwalk -v3 -l authPriv -u <SNMP usernév> -a SHA -A "<auth-password>" -x AES -X "<encr-password>" <ASA belső IP címe> 1.3.6.1.4.1.9.9.392.1.3.21.1.2 | awk -fuserlist.awk|sort -u

Az awk script átalakítja az SNMP kimenetben található, de kódolt usernevet olvasható formátumra és meghívja az e-mail lekérdező részt
cat userlist.awk
{
kisnev="";nev="";extra=0;
split($1,a,".");
for(i=1;i<=a[10];i++) nev=nev sprintf("%c", a[i+10]);
kisnev=tolower(nev);
if (length(kisnev)<8) extra=1;
system("./userlist.get-email "kisnev" "extra)
}

Végül ez lekérdezi az e-mail címet és kiírja az adatokat
cat userlist.get-email
if [ "$2" == "1" ] ; then
        echo -ne $1"\t\t"
else
        echo -ne $1"\t"
fi
/usr/bin/ldapsearch -x -b <LDAPbase> -LLL -p 389 -h <MS AD DC IP cím> -D 'CN=<LDAP-user>,<LDAPUserbase>' -w<LDAP-jelszo> samaccountname=$1 mail|grep mail:|awk '{print $2}'

LDAP paraméterek
- LDAPbase : a teljes domain név, de a pontok helyén "dc=" van, pl dc=company,dc=com
- LDAPUserbase : az előző, de elé kell írni, hogy ou=users, pl ou=users,dc=company,dc=com