Ubuntu 22.04.2 LTS 学习记录
问题
poweroff 指令在不需要sudo模式即可使用(执行后无提示,直接关机),并不会出现错误信息。
分析
出现错误信息是因为没有对应权限,而能直接执行说明在用户模式下也有权限。只需要查看其在用户状态下是否有可执行权限即可。
执行
在ubuntu下对文件的权限查看命令为:ls -l "文件名"。
首先通过 which poweroff 查找文件路径,再ls -l /usr/sbin/poweroff来查看权限。

如图,最后一行前十个字母代表权限。
其中:
l(link)连接文件(软链接),(此处可参照操作系统的文件管理->文件共享)
r(read)读,
w(write)写,
x(execute)执行。
1-3位为用户权限,
4-6位为所在组的权限,
7-9位为其他用户权限。
合起来就是软链接文件,用户、所在组和其他用户可以读写执行。
箭头后面为软链接指向的路径。
结果是用户状态有执行权限,所以并不需要在sudo状态下才能执行poweroff。
其他问题
使用ssh虚拟机并不能直接poweroff后关机,需要sudo状态。原因可能是systemd的默认配置是让本机的非root用户可以执行这种命令,而ssh用户不可以。
最后,感谢姚同学为我解答问题。