В этом вопросе вы поднимаете два разных вопроса.
Как разрешить/проверить привилегии sudo для пользователя A
Ссылка на домашнюю страницу проекта Sudo
Как просмотреть настройки sudo от имени пользователя B (, а не root)
#1 можно выполнить, углубившись в документацию для /etc/sudoers и связанных файлов sudo и команды. У меня нет опыта ограничения команд одним пользователем в качестве другого пользователя, не являющегося -root, поэтому я не могу точно сказать, за исключением того, что я случайно знаю, что это можно сделать.
#2 полностью проблема с разрешениями конфигураций для sudo, таких как /etc/sudoers /etc/sudo.conf /etc/sudoers.d/ *и т. д. В моих системах эти файлы находятся в режиме -r--r-----. root root
Ваш пользователь B не смог бы их прочитать без:
Это так просто; без одной из этих двух вещей пользователь B не сможет прочитать или проанализировать файл.
Вы можете использовать хеш-код для отсортированных элементов:
$ perl -lne 'print unless $h{join ",", sort split /, /, $_}++' file
alice, bob
bob, cat
cat, dennis
dennis, alice
Ровно для 2 полей может хватить чего-то подобного
$ awk -F', ' '!seen[$2 FS $1]; {seen[$0]++}' file
alice, bob
bob, cat
cat, dennis
dennis, alice
Каждая строка сортируется по полям, затем файл и выбираются только уникальные строки
while read line
do
echo $line |
tr ',' '\n' |
sort |
tr '\n' ','
done < 1 |
sed -e 's/^,//' -e 's/,$//' -e 's/,,/\n/g' |
sort -u
Идиоматический ответ awk:
$ awk -F', ' '!seen[$1>$2 ? $1 FS $2 : $2 FS $1]++' file
alice, bob
bob, cat
cat, dennis
dennis, alice
Общий подход для любого количества полей состоит в том, чтобы отсортировать их и использовать отсортированный список в качестве индекса для visible[].