我想创建一个带有受限外壳的新用户,所以我:
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
但是之后我可以 cd 进入任何我想要的地方。看起来受限制的外壳不起作用。为什么 ?
在
man bash
中,受限壳被提及如下:但是,看起来
su
Ubuntu 18.04 中的版本将 shell 的名称替换为su
; 因此,当 bash 查看它时,它argv[0]
会看到su
(或者在使用或选项之一调用的-su
情况下)而不是(或)。su
-
-l
--login
rbash
-rbash
您实际上可以通过编辑
/etc/login.defs
文件并注释掉SU_NAME
设置来更改此行为:这是一个好主意,还是可能产生其他意想不到的后果,我不能说。请注意,较新版本的 Ubuntu 可能使用
/bin/su
(来自util-linux
软件包)的不同实现,这可能不会表现出相同的行为。