注意:我重新发布问题,因为我无法回复或评论。
我正在创建一个非 root 用户来单独执行对象文件(没有 root 访问权限)。我的目的是让用户运行位于 的文件/atlas/Bin
。所以我设置/etc/passwd
为user:x:0:0:test:/:/atlas/Bin/object
.但是当我通过 SSH 打开一个新的 shell(通过 teraterm)来登录用户时,我收到一个错误,因为它找不到该对象。
我已进行更改以/etc/profile
设置要包含的路径/atlas/Bin
以帮助查找对象。不知道我在这里缺少什么。如果我通过 SSH 使用 root 用户登录,我可以毫无问题地执行该对象。
我提供了/etc
用于下面构建文件的值。
/etc/密码
root:x:0:0:root:/:/bin/sh
....
user:x:0:0:test:/:/atlas/Bin/object
sshd:x:15:6:sshd:/var/chroot/sshd:/bin/sh
/etc/组
root:x:0:root
...
sshd:x:6:user
/etc/配置文件
PATH=/atlas/Bin:/usr/bin:/bin:/usr/sbin:/sbin
LD_LIBRARY_PATH=/lib:/usr/lib:/lib/dll/
alias ll="ls -l"
/etc/ssh/ssh_config
Host *
SendEnv LANG LC_*
/etc/ssh/sshd_config
Protocol 2
LoginGraceTime 600
LogLevel DEBUG3
PermitRootLogin yes
PasswordAuthentication yes
PermitEmptyPasswords no
答案1
如果您想将可执行文件用作用户的 shell,那么您可能需要将程序添加到/etc/shells
.
您可能希望为具有运行脚本并退出的配置文件的用户使用受限 shell。
您可以使用/bin/false
在authorized_keys 文件中为用于访问服务器的密钥指定的shell 和命令。如果/bin/false
不起作用,请尝试使用受限制的 shell,例如/usr/bin/rbash
.