#!/bin/sh
function ff()
{
echo "Users in group '$1':"
sed -rn "/^$1:/s/([^:]*:){3}//;T;s/,/\n/gp" /etc/group | tee users.tmp
FILE_NAME="$2"
echo "FILE_NAME: $FILE_NAME"
PERM=`stat --format="%a" "$FILE_NAME" | sed -r 's/.*(...)$/\1/'`
OWNER=`stat --format="%U" "$FILE_NAME"`
GROUP=`stat --format="%G" "$FILE_NAME"`
echo "PERM: $PERM, OWNER: $OWNER, GROUP: $GROUP"
while [ -n "$3" ]
do
USER="$3"
echo "USER '$USER'"
if [ "$USER" = "$OWNER" ]; then
echo "user - owner. perm = ${PERM:0:1}"
else
GR=`sed -rn "s/^$GROUP:.*$USER[^:]*$/&/p" /etc/group`
if [ -n "$GR" ]; then
echo "user - in group. perm = ${PERM:1:1}"
else
echo "other user. perm = ${PERM:2:1}"
fi
fi
shift
done
}
ff "adm" "/dev/audio" "root" "ksu" "adm"
#!/bin/sh
function ff()
{
# Показываем всех пользователей в группе указанной в $1
echo "Users in group '$1':"
sed -n "s/^$1:.*://;T;s/,/\n/g;p" /etc/group
# Показываем имя файла заданного в $2
FILE_NAME="$2"
echo "FILE_NAME: $FILE_NAME"
# Выясняем и показываем права доступа, владельца и группу файла
PERM=$(stat --format="%a" "$FILE_NAME" | sed -r 's/.*(...)$/\1/')
OWNER=$(stat --format="%U" "$FILE_NAME")
GROUP=$(stat --format="%G" "$FILE_NAME")
echo "PERM: $PERM, OWNER: $OWNER, GROUP: $GROUP"
# В цикле перебираем всех пользователей заданных в $3, $4, ...
while [ -n "$3" ]
do
# Показываем очередное имя пользователя
USER="$3"
echo "USER '$USER'"
# Если пользователь владелец файла, показываем сообщение об этом
if [ "$USER" = "$OWNER" ]; then
echo "user - owner. perm = ${PERM:0:1}"
else
# в противном случае показываем что пользователь в группе владельцев
# или относится к "остальным", с показом прав доступа
GR=$(sed -n "/^$GROUP:.*$USER[^:]*$/p" /etc/group)
if [ -n "$GR" ]; then
echo "user - in group. perm = ${PERM:1:1}"
else
# или
echo "other user. perm = ${PERM:2:1}"
fi
fi
shift
done
}
ff "adm" "/dev/audio" "root" "ksu" "adm"
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.