other sono gli altri utenti che non siano il proprietario o appartengano al gruppo. Cioè, se
un file ha il proprietario "giulio" e gruppo "amicidigiulio", other ti da i permessi dell'utente
"paperino" che non è il proprietario e non fa parte del gruppo "amicidigiulio" perché l'ho cacciato. Cerca su google "permessi file gnu linux" per i dettagli.
Per la prima domanda non ho capito. Do per scontato che sai interpretare r-w-x, quindi
suppongo che tu voglia sapere come si fa a capire quali permessi ha un utente loggato su un qualsiasi file. Io farei così:
DIM sFile AS String
DIM sGruppiUtente AS String
DIM arsGruppi AS String[]
sFile = "/home/pippo/file"
'Senza argomenti groups ti da i gruppi dell'utente loggato.
'Se vuoi sapere altri utenti, "groups utente". In
'questo caso però devi ripulire la risposta prima di creare
'l'array.
SHELL "groups" TO sGruppiUtente
'Creo un'array con i gruppi cui appartiene l'utente loggato,
'poiché InStr può dare falsi positivi.
arsGruppi = Split(Trim$(sGruppiUtente), " ")
IF Stat(sfile).user = User.Name THEN
'l'utente loggato è il proprietario e quindi
'ha i permessi di Stat(sFile).Perm.User
'e puoi finirla qui, perché in genere il proprietario
'ha i maggiori permessi (anche se non è certo).
ENDIF
'Cerco se l'user loggato appartiene al gruppo del file
IF arsGruppi.Exist(Stat(sfile).Group) THEN
'l'utente loggato è nel gruppo del file e quindi
'ha i permessi di Stat(sFile).Perm.Group
ENDIF
'Alla fine se l'utente non è il proprietario
'e non appartiene al gruppo i suoi permesi su quel file sono:
'Stat(sFile).Perm.Other
END
Ciao.
EDIT: allego piccolo esempio. Scegli un file e in console ti scrive che permessi ha su quel file l'utente che sta usando il programma.
Scrive tutti i permessi, se ce ne sono. Sta a te decidere quali vuoi tenere in considerazione, come filtrarli et cetera et cetera. Insomma è un esempio delle cose scritte su.