Несовместимые групповые разрешения в Linux - это ошибка?

Я нахожусь на Ubuntu 11.04. Я создаю другого пользователя и помещаю существующего пользователя в группу другого пользователя, надеясь записать в домашний каталог другого пользователя.

# uname -a
Linux vini 2.6.38-11-generic #50-Ubuntu SMP Mon Sep 12 21:18:14 UTC
2011 i686 athlon i386 GNU/Linux
# whoami
sachin
# su root
# useradd -m -U foo               // create user foo
# usermod -a -G foo sachin      // add user `sachin' to group `foo'
# chmod 770 /home/foo/
# exit
# whoami
sachin
# cd /home/foo/
bash: cd: /home/foo/: Permission denied
# groups sachin
sachin : sachin foo

Это совершенно странно. Хотя пользователь sachin находится в группе foo, а биты группы для / home / foo / установлены в rwx, sachin не может chdir в / home / foo /. Я не могу этого понять.

Но, если на шаге exit я переключаюсь на sachin пользователя из корня, вот что происходит:

# uname -a
Linux vini 2.6.38-11-generic #50-Ubuntu SMP Mon Sep 12 21:18:14 UTC
2011 i686 athlon i386 GNU/Linux
# whoami
sachin
# su root
# useradd -m -U foo               // create user foo
# usermod -a -G foo sachin      // add user `sachin' to group `foo'
# chmod 770 /home/foo/
# su sachin
# whoami
sachin
# cd /home/foo/
# ls
examples.desktop

Теперь, что бы здесь ни происходило, совершенно непостижимо. Унаследует ли su sachin некоторые разрешения от пользователя root на этом этапе?

Любые объяснения будут высоко оценены.

2
задан 12 February 2014 в 16:47

2 ответа

Выйдите из системы, а затем войдите снова, это сработает, или вы можете использовать новый терминал (не gnome-терминал, устройства tty).

Кажется, это ошибка, поскольку требование этого выхода из системы и входа в систему совершенно не нужно.

0
ответ дан 12 February 2014 в 16:47

Какое разрешение / дома? Вам также нужно + x разрешений.

Кроме того, вам нужно использовать su - sachin, чтобы перейти в полную среду нового пользователя.

Обратите внимание, что на странице руководства для useradd теперь написано:

   useradd is a low level utility for adding users. On Debian,
   administrators should usually use adduser(8) instead.

Если вы используете версию для настольного компьютера или графического интерфейса пользователя, с помощью users-admin инструмент.

Пользователь с активной оболочкой не будет наследовать новую группу в этом сеансе (при условии, что вы делаете это, как в примере или по сценарию) - вам нужно иметь новую оболочку для этого пользователя, чтобы протестировать членство в группе. (Если вы не являетесь пользователем root.) Это давнее поведение Unix - поэтому вы обычно запускаете новый процесс оболочки для пользователя, например, открывая новый терминал (который порождает новую оболочку, читая вашу среду по умолчанию), или порождая новую оболочку для пользователя в том же терминале.

0
ответ дан 12 February 2014 в 16:47

Другие вопросы по тегам:

Похожие вопросы: