Пост был взят с Reddit и переведен. Приятного чтения!
Дело было в одном немецком университете где-то на рубеже веков. У студентов кафедры физики были королевские условия — два кабинета с компьютерами, в первом все машины работали на HP-UX, во втором при загрузке можно было выбрать WindowsNT или Linux. Все пользовательские данные лежали на сервере и были доступны из любой системы.
В начале семестра один из кураторов завел новым студентам профили в «Линуксе». Я служил передаточным звеном между кураторами и админами, которые управляли системой. Поэтому, когда кураторы не знали, что делать, поддержку почему-то всегда спихивали на меня.
Однажды ко мне отправили студентку, назовем ее Саманта Мелинда Батлер. Она неплохо разбиралась в компьютерах, но не понимала, что у нее за проблема. Она могла заходить в свою папку /home/имя_пользователя/, но изменять некоторые файлы не получалось. С другой стороны, она обнаружила, что может читать почти все файлы в /home/*, даже в папках некоторых преподавателей.
Я попросил ее залогиниться и открыл терминал. Проверил ее файлы, но вроде все было нормально:
ls -als .vimrc
-rw-rw---- 2 smb smb 1024 Jan 11 09:15 .vimrc
Попробовал перейти в свою собственную подпапку /home/ — и получилось. Так не должно быть!
ls -als .vimrc
-rw-rw---- 2 cyrond cyrond 2048 Jan 19 07:42 .vimrc
У нее же не должно быть доступа! Вдруг я обратил внимание на ее имя пользователя: оно состояло из инициалов. Саманта Мелинда Батлер — то есть smb.
Я зашел через su в собственный профиль.
groups
cyrond cdrom lpt smb
Саманта превратилась в Samba и получила все права ServerMessageBlock. А в группу smb входили все пользователи.
Куратор, который завел Саманте профиль, даже не понял, в чем его вина.
Потом мы внесли в тест для кураторов такой вопрос. Предположим, пришел студент по имени Ричард Оот. Он просит завести ему логин, состоящий из первой буквы имени и полной фамилии. Как в терминале «Линукса» создать ему профиль?
Если куратор отвечал «adduser root», его не брали...