我正在为我的盒子上的某个人做一个SSHlogin。 但是当他们login时,我希望它自动加载一个perl脚本,并且只能大声地看到/使用perl脚本。
我只知道如何使用useradd命令,我不知道如何设置烫发等。
我不知道如何更详细地解释这一点。 但任何帮助将是aswsome!
为这个“someone”创build一个新用户,并将你的perl脚本放在他的主目录中,然后在他的.bash_profile创build一个条目来调用perl脚本。
仅供参考:〜/ .bash_profile在每个loginshell中执行(例如:ssh,switch user等)
例:
suku@ubuntu-vm:~$ cat hello.pl #!/usr/bin/perl print "Hello World\n"; suku@ubuntu-vm:~$ cat .bash_profile perl ~/hello.pl suku@ubuntu-vm:~$ su - suku Password: Hello World
[编辑] useradd -m username名将创build一个用户的主目录为/home/username
如果你真的想限制这个用户的作用域只是读取和执行你的perl脚本,你需要为他的主目录设置不可变属性
设置不可变属性:
sudo chattr +i /home/username
删除不可变属性:
sudo chattr -i /home/username
如果你这样做,这个用户不能触摸他的主目录中的新东西。 但是他可以执行/读你的Perl脚本
最好的办法是使用authorized_keys文件。 您可以限制用户只用一个Key运行一个命令。 所以,如果用户使用一个指定的密钥login,他将只能运行一个命令。
设置是使用authorized_keys文件中指定的command =“”指令。 这个语法如下所示:
command ="command", KEY
这告诉SSH运行命令,然后退出。 它有效地限制了您在远程服务器上运行命令的能力。
为了安全地运行多个命令,你有几个选项。 首先,考虑调用脚本而不是命令。 例如,从名为myscript.sh的shell脚本运行top,df -k和hostname,并设置command="/path/to/myscript.sh" 。 其次,如果您需要在一天中的不同时间向同一台主机运行多个命令,则可以为您的用户创build另一个密钥。
对于自动加载function,您可以简单地把它放在.bash_profile中,如Suku所描述的那样存在于它们的主目录中。