.dsy:it. Pages (39): « First ... « 2 3 4 5 [6] 7 8 9 10 » ... Last »
Show 150 posts per page

.dsy:it. (http://www.dsy.it/forum/)
- Sistemi operativi I (http://www.dsy.it/forum/forumdisplay.php?forumid=269)
-- Esame di laboratorio (Giugno 2007) - Domande (http://www.dsy.it/forum/showthread.php?threadid=31182)


Posted by Simaldeff on 16-07-2007 13:01:

ho risolto con un piccolo script del genere :

#!/bin/sh
ID="(grep "^$1" /etc/passwd | cut -f 3 -d :)"
find / -user "$ID" - type f | ls -l | grep "^[rw-]*x"
exit 0

cosi facendo me li ha trovati tutti ... anche quelli piu insoliti (tipeo 657 421 523 etc ... basta che ci sia un x nella stringa permessi di ls -l)

per chiamare il script basta fare
./script.sh <username>

naturalmente.

__________________
There is no way to happyness, happyness is the way. -Buddha-


Posted by n3o on 16-07-2007 13:05:

@imperator
Quando passwd richiede la password tu scrivila! è NORMALE che non si veda a video :D:D:D

Originally posted by Simaldeff
conclusione -perm -1 guarda solo il primo numero.

confermo che i +1 +111 /1 /111 sono inutile ... non danno erore ma non danno nessun risultato di ricerca

la domanda e' dunque : Basta che sia eseguibile dall' user o deve essere eseguibile da tutti?

se basta il user allora basta la linea di comando ... seno bisogna fare un script shell che faccia tutti i casi di permesso ... *sigh*
Ottimo, ho modifica anche il mio post per sicurezza.
L'interpretazione dell'esercizio rimane libera, consiglio vivamente di chiedere spiegazioni più particolari al prof all'esame.
Per quanto riguarda tutti i casi di permesso, auguroni!

Ho trovato l'opzione -F di ls che stampa un asterisco dopo il nome di un file se esso è eseguibile !!!!!

Trovare tutti i files eseguibili > 5k e evidenziando i 5 più grandi SOLUZIONI DEFINITIVA TESTATA!

find / -type f -size +10 | xargs ls -lF | grep "\*$" | tr -s ' ' ' ' | cut -d ' ' -f 5,9 | sort -n | tail -5

Spiegazione:
1) find / -type f -size +10 => trova tutti i file di dimensione > 5KB (-size si riferisce a blocchi da 512 byte)
2) xargs ls -lF => per ogni file (riga del find) stampa le sue info estese mettendo un asterisco in fondo alla riga se esso è eseguibile
3) grep "\*$" => cerca quelle righe che hanno un asterisco (\*) prima della fine della riga ($)
4) tr -s ' ' ' ' => comprimi tutti gli spazi contigui in uno solo
5) cut -d ' ' -f 5,9 => estrai la 5^ e 9^ colonna separate da spazio (dimensione e nome file)
6) sort -n => ordina le righe numericamente (secondo la 1^ colonna per default, in questo caso la dimensione del file)
Ii passaggi 4 e 5 sono fondamentali, se no il sort non funziona bene!
7) tail -5 => estrai solo le ultime 5 righe (i file maggiori nel nostro caso)

Provate ogni singolo paso in successione per capire bene i passaggi e controllate con il man dei vari comandi il significato delle opzioni che ho usato.
Tranquilli, se capite questo capirete ogni altro esercizio!!!

__________________
The answer is blowing in the wind...


Posted by imperator on 16-07-2007 13:14:

Originally posted by n3o
@imperator
Quando passwd richiede la password tu scrivila! è NORMALE che non si veda a video :D:D:D

[/Color]


pensavo che mentre digitavo almeno mi segnalasse con degli * il fatto che digitavo un tasto; invece non fa nulla...
cmq sn un pirla!!:D:D:D:D:D:D:D:D:D
grazie


Posted by n3o on 16-07-2007 13:16:

@Simaldeff
Ottima anche la tua soluzione, devi solo aggiungere le restrizioni successive che chiede il problema, praticamente ordinare ed estrarre i 5 maggiori (se uno trova un metodo più semplice anche per questo...)

@=kimi=
Cercare tutti i file con SUID attivato

find / -type f -perm -004000 (testato)

__________________
The answer is blowing in the wind...


Posted by Simaldeff on 16-07-2007 13:19:

ma i tuoi passagi 4 e 5 sono solo utili se si vuole un certo formato all'output della cosa ...
si possono saltare metendo in
sort +5 -n
no?

__________________
There is no way to happyness, happyness is the way. -Buddha-


Posted by n3o on 16-07-2007 13:21:

Io ho provato ad omettere quei passaggi e non funziona...credo di averlo scritto anche nel post...almeno provatelo!!!

__________________
The answer is blowing in the wind...


Posted by Simaldeff on 16-07-2007 13:31:

trovo la tua soluzione della ls -lF motlo piu furba. Ma li e' da verificare se fa anche i casi anomali ... tipo i permessi 523 o 421 ... cioe se guarda tutti i bit di permesso o solo quelli riguardante il user (ovvero la prima ciffra).

__________________
There is no way to happyness, happyness is the way. -Buddha-


Posted by Simaldeff on 16-07-2007 13:46:

solo un suggerimento : sarebbe meglio scrivere il nostro codice in font courier nelle nostre risposte sul forum ... cosi capiamo meglio gli spazi ... no?

esempio

find / -type f -size +5 | xargs ls -lF | grep "\*$" | tr -s ' ' ' ' | cut -d ' ' -f 5,9 | sort -n | tail -5

invece di

find / -type f -size +5 | xargs ls -lF | grep "\*$" | tr -s ' ' ' ' | cut -d ' ' -f 5,9 | sort -n | tail -5

__________________
There is no way to happyness, happyness is the way. -Buddha-


Posted by antares85 on 16-07-2007 16:51:

ragazzi qualcuno mi sa indicare o dire qual'è la legenda per leggere le varie colonne dei file? tipo dove sta scritto che la colonna 5 è la dimensione del file e la 9 il nome? (magari qst si capiscono ma le altre?)


Posted by poi_1969 on 16-07-2007 17:00:

n3o, non bisogna metere xargs -l 1 per predere una riga alla volta, altrimenti prende un blocco e ne fa ls?


Posted by n3o on 16-07-2007 17:17:

Originally posted by antares85
ragazzi qualcuno mi sa indicare o dire qual'è la legenda per leggere le varie colonne dei file? tipo dove sta scritto che la colonna 5 è la dimensione del file e la 9 il nome? (magari qst si capiscono ma le altre?)
Non c'è alcuna legenda, guardi l'output di un programma e ti comporti di conseguenza (per ls e ps ho fatto così!!!)

ls -l
Risultato di esempio:
-rw-r--r-- 1 root operator 186 Jul 12 12:45 test.c
Colonne:
1) -rw-r--r-- => permessi (il 1° - vuol dire che è un file, d = directory, l = link e ce ne sono altri che non mi ricordo...)
2) 1 => n° di link
3) root => proprietario
4) operator => gruppo
5) 186 => dimensione in byte
6) Jul => mese creazione
7) 12 => giorno creazione
8) 12:45 => ora creazione
9) test.c => nome file

Originally posted by poi_1969
n3o, non bisogna metere xargs -l 1 per predere una riga alla volta, altrimenti prende un blocco e ne fa ls?
L'opzione -l su Minix non esiste! Provate i comandi su Minix e fate riferimento ai manuali al suo interno!!! Moooolto pericoloso pensare che le proprio conoscenze di Linux bastino! (provato sulle mie spalle!)

__________________
The answer is blowing in the wind...


Posted by antares85 on 16-07-2007 17:49:

mmh...ci proverò, grazie


Posted by Vid on 16-07-2007 21:54:


1) find / -type f -size +5 => trova tutti i file di dimensione > 5KB


ma la dimensione del size non si riferisce ai blocchi da 512 bytes?

Io credo sia corretto mettere -size +10.


Posted by ^Belzebu^ on 16-07-2007 22:02:

Originally posted by maxj8
La domanda di Shell di copiare tutti i file da una cartella ad una nuova mantenendo inalterati gli attributi prevede anche di prendere file che iniziano per una lettera specifica (banale) e di copiare anche tutto il path dei file nella nuova cartella (meno banale).


e come sarebbe per copiare anche tutto il path dei file?
grazie!

ByezAll
^Belzebu^

__________________
Meglio essere Padroni all'Inferno che schiavi in paradiso!


Posted by n3o on 16-07-2007 23:13:

Originally posted by Vid
ma la dimensione del size non si riferisce ai blocchi da 512 bytes?

Io credo sia corretto mettere -size +10.
Hai ragione :oops:, pensa che non ci avevo mai fatto caso, aggiorno il post per sicurezza...

__________________
The answer is blowing in the wind...


All times are GMT. The time now is 17:26. Pages (39): « First ... « 2 3 4 5 [6] 7 8 9 10 » ... Last »
Show all 571 posts from this thread on one page

Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.