Получение членов группы в Linux не так просто, как может показаться. На мой взгляд, проще всего использовать команду lid
. Установите его, используя
sudo apt-get update && sudo apt-get install libuser
, тогда вы должны попробовать, если это работает, используя
lid -g root
Если пишет, что команда не найдена, попробуйте
/usr/sbin/libuser-lid -g root
И для твоего сценария
bajagroup () {
printf "\n Enter the name of the group to delete: \n"
read -p groupname #the variable has to be one word(normally)
deletegroup=$(lid -g $groupname)
[ -z $deletegroup ] && groupdel $deletegroup #between $ and the name no space
Редактировать
Поскольку вы не можете установить пакет, я написал небольшой скрипт, который должен решить вашу проблему
#!/bin/bash
read -p "Enter groupname here: " groupname #Takes the input and save it to the variable groupname
gid=$(cat /etc/group | grep ^"$groupname": | cut -d":" -f3) #get the content of /etc/group (list of every group with groupid) | search for the line that starts with $groupname: (That means if a group name is Test, Test1 or 1Test wouldn't be matched) | get the groupid
member=$(cat /etc/passwd | cut -d":" -f4 | grep -x "$gid") #get the content of /etc/passwd (list of all users with some extra information like the attached gid) | get the part with the gid | grep the line that is exactly $gid
[ -z $member ] && groupdel $groupname #if $member is empty then delete that group
Это база, которая вам нужна. Вы можете изменить окончание и начало по своему усмотрению.
Я думаю, что наиболее распространенный способ сделать это — использовать общую группу и убедиться, что файлы доступны для чтения/записи/исполнения группы и, очевидно, принадлежат общей группе.
Вы также можете создать функционального пользователя без прав входа в систему, для которого вы оба можете использовать sudo, но тогда вы потеряете некоторую отслеживаемость. На самом деле, я подозреваю, что на вашем компьютере есть пользователь www, которому могут принадлежать эти файлы, и вам обоим может быть разрешено sudo -u www -s
получить сеанс оболочки от имени пользователя www. Это, вероятно, пользователь, которому принадлежит процесс веб-сервера, и вместо этого вы можете использовать другую учетную запись, либо если вы не доверяете себе или другому пользователю права доступа к веб-серверу, либо если вы хотите, чтобы веб-сервер server иметь права только на чтение веб-контента.
Я использую Unix и Linux в течение 30 лет, и я не думаю, что когда-либо работал в организации, где люди действительно использовали ACL. Это не значит, что это плохо, но это заставляет меня подозревать, что это будет решение, которое может запутать как пользователей, так и некоторые инструменты. Вы можете подумать, что пора большему количеству людей узнать о ACL, и это может быть правильно...
Классический владелец -группа -другая система имеет недостатки. Например, если есть люди, с которыми вы хотите поделиться доступом на запись к файлам, и другие, с которыми вы хотите поделиться доступом на чтение, а затем третья группа с доступом к файловой системе, которая не должна даже иметь возможность читать файлы, у вас заканчиваются категории в обычной пользовательской -группе -другой иерархии... Однако это не тот вариант использования, который вы описываете.