Я создал группу для разработчиков, чтобы предоставить им доступ к: / var / lib / dev, папке, в которой уже есть некоторые папки и файлы.
Я представил следующие команды:
$ sudo useradd -d /var/dev -M -r devmaster
Так, devmaster
новый системный пользователь с основной группой devmaster
. Это можно проверить с помощью id
:
$ id devmaster
uid=998(devmaster) gid=998(devmaster) groups=998(devmaster)
Затем я изменил разрешения (используя chmod
/chown
) следующим образом:
$ cd /var
$ sudo chown -R root:devmaster dev
$ sudo chmod -R o-wrx dev
$ sudo chmod -R g+wrx dev
И наконец (мое имя пользователя здесь просто justme
):
$ sudo usermod -G devmaster justme
$ id justme
uid=1000(justme) gid=1000(justme)
groups=1000(justme),998(devmaster)
$ ls -lh
// Omitted
drwxrwx--- 3 root devmaster 4,0K dic 12 19:48 dev
// Omitted
Но если я попытаюсь зайти в каталог:
$ cd dev
-bash: cd: dev: Permission denied
Что со мной не так?
Ваша проблема в том, что вы не перезапустили сеанс после того, как предоставили себе новое членство в группе. Да, id justme
говорит вам, что когда justme
входит в систему в будущем, он будет (у вас) членством в группе devmaster
. Но это не влияет на его (вашу) ток сеансы оболочки, как id -a
сказал бы вам.
Выйдите из системы и войдите снова, убедитесь, что вы приобрели новое членство в группе с id -a
, тогда посмотри, сможешь ли ты cd /var/dev
(или /var/lib/dev
, ваш вопрос неоднозначный).
Дело в том, что, хотя я действительно не знаю почему, мне пришлось выйти и снова войти в систему, чтобы проверить результаты, которые работают как за исключением, за исключением того, что:
$ sudo usermod -G devmaster justme
нуждался в -a
вариант:
$ sudo usermod -a -G devmaster justme
Потому что в противном случае второстепенные группы полностью заменяются devmaster
, вместо того, чтобы объединяться с какой-либо группой, указанной ранее, и поскольку justme
была исходной административной учетной записью, я не входил в группы sudo, adm, cdrom, plugdev и другие 5 групп.
Итак, я не мог использовать sudo
, и, поскольку в системе не было другой учетной записи пользователя, мне пришлось перезагрузить компьютер, перезапустить в безопасном режиме и открыть корневую оболочку, чтобы добавить себя в sudo
группе и другим потерянным группам.