Это подошло как проблема разрешения о Ubuntu 16.04. Я не мог удалить некоторые библиотеки R, установленные в /usr/local/lib/R/site-library
. Оказалось, что у меня не было разрешения. Каталог принадлежал root
и группа была staff
.
Я временно решил вопрос разрешения путем ручного добавления моего пользователя к staff
группа.
sudo usermod -a -G staff myusername
# *see blockquote before using this!*
Это позволяет мне удалять библиотеки из IDE.
Однако, когда я попытался искать больше информации штатная группа и не смог найти любой определенный материал по теме. Даже, для чего была, прежде всего, предназначена группа. Я мог только предположить, что это используется для предоставления подобного 'расширенного' доступа пользователям на определенных каталогах.
Есть ли какие-либо последствия ручного добавления пользователя группе штата?
Как в стороне, там какая-либо команда должна знать полномочия в масштабе всей системы для группы? Например, что все - каталоги, для которых у штата группы будет разрешение записи?
Спасибо.
Править: Я должен добавить здесь то использование
adduser
вместоusermod
намного более разумная опция для этой операции [см. комментарий ниже]
sudo adduser myusername staff
Хорошо, как пошагово перемещено @muru, я отправляю ответ на свой собственный вопрос до степени, я могу. Файл file:///usr/share/doc/base-passwd/users-and-groups.html
включает подробную информацию о группах и полномочиях. Зеркало этой страницы может быть найдено здесь: Пользователи и Группы
Соответственно:
штат
Позволяет пользователям добавлять локальные модификации к системе (
/usr/local
,/home
) не нуждаясь в полномочиях пользователя root. Сравните с группойadm
, который более связан с контролем/безопасностью.Обратите внимание что способность изменить
/usr/local
эффективно эквивалентно корневому доступу (так как/usr/local
находится намеренно на путях поиска перед/usr
), и таким образом, необходимо только добавить доверяемых пользователей к этой группе. Будьте осторожны в средах с помощью NFS начиная с получения полномочий другого некорневого пользователя, часто легче в таких средах.
Конечно, adm уже находится в моем groups
таким образом, я могу сделать dmesg
. Но я должен был вручную добавить меня к staff
Вход списка каталогов, принадлежавших штату, показывает, что все они принадлежат одному из них:
sudo find / -maxdepth 8 -type d -group staff -perm -g=w >>stafflog.txt
/var/local
/usr/local/lib
/usr/local/share
Неудивительный членство штата дает мне доступ для записи к моим общим библиотекам языка программирования.
проверка разрешения для одного из них:
ls -al /var/local
drwxrwsr-x 2 root staff 4096 Apr 11 2014 .
drwxr-xr-x 16 root root 4096 Aug 3 15:55 ..
Таким образом, по-видимому, прием штата выполняется системой путем установки бита s каталогов (setguid
)., так, чтобы, какой бы ни пользователь или процесс создают файлы в том каталоге, файл всегда работал с полномочиями, совместно использованными через группу штата. Посмотрите здесь
Однако я все еще задаюсь вопросом, могу ли я безопасно сохранить меня в этой группе. По моему мнению это должно быть довольно безопасно, учитывая это, ноутбук, к которому в худшем случае получат доступ по доверяемой LAN через кого-то или ssh. Слова, 'эффективно эквивалентные корневому доступу', пугают меня. Любые мысли об этом приветствуются.