Я нахожусь на 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
на этом этапе?
Любые объяснения будут высоко оценены.
Выйдите из системы, а затем войдите снова, это сработает, или вы можете использовать новый терминал (не gnome-терминал, устройства tty).
Кажется, это ошибка, поскольку требование этого выхода из системы и входа в систему совершенно не нужно.
Какое разрешение / дома? Вам также нужно + x разрешений.
Кроме того, вам нужно использовать su - sachin
, чтобы перейти в полную среду нового пользователя.
Обратите внимание, что на странице руководства для useradd
теперь написано:
blockquote>useradd is a low level utility for adding users. On Debian, administrators should usually use adduser(8) instead.
Если вы используете версию для настольного компьютера или графического интерфейса пользователя, с помощью
users-admin
инструмент.Пользователь с активной оболочкой не будет наследовать новую группу в этом сеансе (при условии, что вы делаете это, как в примере или по сценарию) - вам нужно иметь новую оболочку для этого пользователя, чтобы протестировать членство в группе. (Если вы не являетесь пользователем root.) Это давнее поведение Unix - поэтому вы обычно запускаете новый процесс оболочки для пользователя, например, открывая новый терминал (который порождает новую оболочку, читая вашу среду по умолчанию), или порождая новую оболочку для пользователя в том же терминале.