在centos中创建专用于单个脚本的用户帐户

在centos中创建专用于单个脚本的用户帐户

我正在尝试为我的机器上的某人创建 SSH 登录。但当他们登录时,我希望它自动加载一个 perl 脚本,并且只允许他们查看/使用该 perl 脚本。

我只知道如何使用 useradd 命令,不知道如何设置权限等。

我不知道如何更详细地解释这一点。但任何帮助都会很有帮助!!!

答案1

为这个“某人”创建一个新用户,并将您的perl脚本放在他的主目录中,然后在他的目录中创建一个条目.bash_profile以调用该perl脚本。

仅供参考:~/.bash_profile 在每个登录 shell 期间执行(例如:ssh、切换用户等)

例子:

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将创建一个用户,其主目录为/home/username

如果你真的想限制该用户的范围只能读取和执行你的 perl 脚本,你需要为他的主目录设置不可变属性

设置不可变属性:

sudo chattr +i /home/username

删除不可变属性:

sudo chattr -i /home/username

如果你这样做,该用户将无法触及他主目录下的任何新内容。但他可以执行/读取你的 perl 脚本

答案2

最好的方法是使用 authorized_keys 文件。您可以限制用户只能使用一个密钥运行一个命令。因此,如果用户使用一个指定的密钥登录,他将只能运行一个命令。

设置是使用在 authorized_keys 文件中指定的 command ="" 指令。其语法如下:

command ="command",  KEY

这告诉 SSH 运行命令然后退出。它有效地限制了您在远程服务器上运行命令的能力。

为了安全地运行多个命令,您有几个选择。首先,考虑调用脚本而不是命令。例如,从名为myscript.shand set 的shell 脚本运行 top、df -k 和 hostname command="/path/to/myscript.sh"。其次,如果您需要在一天中的不同时间对同一主机运行多个命令,您可以为您的用户创建另一个密钥。

对于自动加载功能,您可以简单地将其放在主目录中的 .bash_profile 中,如 Suku 所述。

相关内容