2019-03-15 遇到的一点小问题
公司要给设备增加web管理页面,页面只有关机和重启功能。我一看就一个web加两个按钮,就接下来了,没想到还挺复杂的。
设备使用的Arch Linux,小型http服务器选用的mini_httpd。
环境搭建好后,就是html和Linux交互。搜索了下,看到这篇通过CGI实现在Web页面上执行shell命令,试了一下,能正常运行。
对.cgi文件不熟的可以参考这几篇文章,博主分了好几篇介绍,就是有点懒,没弄个目录,这里贴一下:1-编写运行第一个脚本、2-Shell变量、3-Shell特殊变量、4-Shell数组、5-shell替换 、6-与用户交互、7-Shell运算符、8-shell注释、9-shell注释、10-printf、11-if语句、12-case语句、13-for语句、14-while语句、15-until循环、16-shell函数、17-shell输入输出重定向、18-shell文件引用包含。
编写shell命令,在js里执行就可以了。
#!/bin/sh
echo -e "Content-type: text/plain;charset=utf-8\n"
result=`shutdown -h now`
echo "$result"
测试中遇到的问题就是权限问题,试了使用setuid更改脚本文件权限
,使用sudo命令执行
,发现在Arch Linux
上都挺麻烦的,先临时把mini_httpd
的用户权限改高点,下次再试试别的方法。
Failed to set wall message, ignoring: The name org.freedesktop.PolicyKit1 was not provided by any .service files
Failed to reboot system via logind: The name org.freedesktop.PolicyKit1 was not provided by any .service files
Failed to talk to init daemon.
system management
2019-03-21 遇到的一点小问题
今天在测试cgi文件时遇到500 Internal Error
错误Something unexpected went wrong running a CGI program.
。
找了一阵子原因才发现是我的
.cgi
文件没有执行权限,使用
ls -ail
命令打印如下:14286865 -rw-r--r-- 1 root root 93 Mar 21 09:57 wannoo.cgi
使用命令增加文件执行权限
chmod u+x wannoo.cgi
使用
ls -al
命令打印如下:-rwxr--r-- 1 root root 93 Mar 21 09:57 wannoo.cgi
再次测试后可以了。
修改权限:
chmod u+x wannoo.cgi
u 代表用户. g 代表用户组. o 代表其他. a 代表所有.
+增加权限. -减少权限
网友评论