Restricted shell is not working for a newly created user (ubuntu 18.04)

I want to create a new user with a restricted shell so I :

ln -s bash rbash  # create a symbolic link to bash with a name "rbash" 

useradd -s /bin/rbash student # add a new user with a shell pointing to that symlink I've created

passwd student # create a password 

su - student # Login as a user 

However afterwards I can cd into wherever I want. Похоже, ограниченная оболочка не работает. Зачем ?

2
задан 7 June 2020 в 19:01

1 ответ

В man bash ограниченная оболочка упоминается следующим образом:

  Если bash начинаются с имени rbash, или опция -r указана в
 вызов, оболочка становится ограниченной.

Однако, похоже, что версия su в Ubuntu 18.04 заменяет имя оболочки на su ; поэтому, когда bash смотрит на свой argv [0] , он видит su (или -su в случае, когда su был вызван с одним из - , -l или - параметры входа ) вместо rbash (или -rbash ) .

Вы действительно можете изменить это поведение, отредактировав файл /etc/login.defs и закомментировав настройку SU_NAME :

# If defined, the command name to display when running "su -".  For
# example, if this is defined as "su" then a "ps" will display the
# command is "-su".  If not defined, then "ps" would display the
# name of the shell actually being run, e.g. something like "-sh".
#
# SU_NAME               su

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

2
ответ дан 19 June 2020 в 21:29

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

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