该用户当前不可用-但允许该用户运行脚本


22

我在/ etc / passwd中使用以下方法创建了特殊用户:

secure:x:2000:2000:secure:/bin:/usr/sbin/nologin

我不想允许该用户登录(通过控制台,ssh,ftp,以任何方式)。

他仅用于通过以下方式运行一个脚本:

sudo su secure -c '/home/someuser/secure.script'

但这给了我This user is currently not available.。如何设置它以便能够以这种方式运行脚本,但阻止该用户登录系统(控制台,ssh,ftp等)?


我注意到,当我/usr/sbin/nologin在命令行上键入时,计算机将以响应This account is currently not available.


Answers:


27

这是的典型用例sudo

您正在混用sudo,这允许以其他用户身份运行命令,并且高度可配置(您可以选择指定哪个用户可以以哪个用户身份运行哪个命令),su如果知道密码(或是root 用户),则可以切换到另一个用户。即使使用,也su始终运行用编写的shell 。因此不兼容。/etc/passwdsu -csu/usr/sbin/nologin

你应该用

sudo -u secure /home/someuser/secure.script

作为sudo可配置的,您可以控制谁可以使用此命令,以及他/她是否需要输入密码才能运行它。您需要/etc/sudoers使用进行编辑visudo。(在编辑/ etc / sudoers时要小心,并始终使用visudo来执行。语法并非易事,一个错误可能会使您无法使用根帐户。)

sudoers中的这一行允许组中的任何人somegroup以以下方式运行命令secure

%somegroup    ALL=(secure) /home/someuser/secure.script

这允许组中的任何人都无需输入密码somegroup即可运行命令secure

%somegroup    ALL=(secure) NOPASSWD: /home/someuser/secure.script

这允许user1secure不输入密码的情况下运行命令:

user1    ALL=(secure) /home/someuser/secure.script

13

我发现的主要问题是“ /usr/sbin/nologin”在/etc/passwd 当我想在这种情况下使用su命令,它必须有-s /bin/bash内,因此,例如:su -s /bin/bash -c '/home/someuser/secure.script' secure


1
是的,su默认情况下使用写在/ etc / passwd中的shell。使用su是从另一个用户作为用户登录的一种方式。nologin打印消息“此用户当前不可用。” 然后退出。sudo不使用外壳执行命令,因此使用sudowith su也可以。有关更多信息,请参见我的答案sudo
cg909

2

su正在使用中指定的外壳/etc/passwd

你并不需要使用susudo

因此,请勿susudo:混合使用sudo -u secure '/home/someuser/secure.script'


-2

这可能与问题并非100%相关,但可能会帮助具有类似警告消息的人 This user is currently not available

1)请与您的托管公司联系,以确保您已获得外壳访问权限。

2)如果您正在使用CWP7:将Shell访问权限设置为ON 在此处输入图片说明


2
1)Shell访问显然是可作为有关运行问题的会谈susudo以及各种其他的事情。2)问题中没有迹象表明相关安装位于任何形式的Web控制面板后面。
菲利普·肯德尔

1
是的(除了它是一个问答网站,而不是一个论坛)。但是,作为有用的部分是确保你的回答是这个问题实际上是相关的,我不认为这个答案实际相关:海报显然有shell访问的了,所以怎么会通过控制面板打开它(这可能甚至不存在)解决问题?
菲利普·肯德尔

3
@ShapCyber​​:请注意,此问题与一个人手动创建一个新的特殊用户有关。此“线程”(问题)中的答案应解决该问题中的情况。如果您遇到其他可以解决此问题的问题,则正确的做法是询问并自行回答自己的新问题。
杰夫·谢勒

1
@JeffSchaller说的是正确的。而且,我希望您(ShapCyber​​)真正做到有关您遇到的问题和解决方案的问题并进行自我回答(足够详细以至有用);然后在此问题上添加评论以链接到您的问题。这就是如何在本网站的设置框架中最好地帮助未来的读者。:)
通配符'18

2
这就是@ShapCyber​​的原因,我们鼓励您提出一个新问题,以便搜索找到他们问题的正确答案。
杰夫·谢勒
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.