我已经安装了debina8.1,这样设置sudoers配置。
1.apt-get update
2.apt-get install sudo
3.adduser test
4.usermod -a -G sudo test
当我使用测试帐户名称连接vps并更改某些端口时。
vim /etc/ssh/sshd_config
Port 21388
Protocol 2
/etc/init.d/ssh restart #with test account name
[....] Restarting ssh (via systemctl): ssh.serviceFailed to restart ssh.service: Access denied
failed!
test有sudo权限,为什么该命令/etc/init.d/ssh restart
对test名称不起作用?经测试该命令/etc/init.d/ssh restart
对root名称有效。
答案1
这是因为权限的原因,很可能 ssh 可执行文件没有您当时使用的帐户的权限。要查看哪个文件对谁有哪些权限,您只需输入即可ls -l
,然后您会看到一些奇怪的东西,例如
drwxrwxr-x 2 pi acctg 1024 date time file name
也许更多,开头的 d 表示它是一个目录,在你的情况下,开头没有“d”,而是开头有“-”,在第一个字符之后其他 9 个字符是 rwx , rwx再次 rwx,你可以看到它们是否没有破折号,
r代表读权限
w 代表写权限
x代表执行权限,
前 3 个(第一个字符之后)(rwx 或 --- 或 r-- 或其他组合)用于表示该文件的所有者拥有哪些权限。
第二个 3 用于表示该文件组中的其他帐户拥有哪些权限。
第三个3代表的是“其他”;其他所有人。
如果您想获得该测试帐户的权限,我建议您首先阅读man chmod
此处的指南:http://catcode.com/teachmod/,它解释了几乎每个大纲,然后决定是否需要权限,因为它最终可能会出现一些安全问题。
如果您直接希望能够执行:
类型 :sudo chmod 775/etc/init.d/ssh
如果用二进制表示 7,您将看到 111,它代表对所有者和组启用读许可、写许可和执行许可,而对其他人仅启用读许可和执行许可。
但我强烈建议您在使用前阅读手册。