当前位置: 首页 > news >正文

清河做网站哪家好免费代理做企业网站

清河做网站哪家好,免费代理做企业网站,南山住房和建设局网站,关键词生成器文章目录 1 如何新增普通用户2 如何以普通用户权限运行服务3 普通用户如何访问root账户的ubus服务4 其他权限控制5 参考 Openwrt系统在默认情况下只提供一个 root账户#xff0c;所有的服务都是以 root权限运行的#xff0c;包括 WebUI也是通过root账户访问的#xff0c;… 文章目录 1 如何新增普通用户2 如何以普通用户权限运行服务3 普通用户如何访问root账户的ubus服务4 其他权限控制5 参考 Openwrt系统在默认情况下只提供一个 root账户所有的服务都是以 root权限运行的包括 WebUI也是通过root账户访问的如果你的Openwrt设备支持 WAN口访问WebUI那么这里就有极大的安全风险为了尽可能的降低这种风险新增一个普通用户可能是一个比较合理的方案。 Openwrt系统实际上是支持多用户的只不过我们需要进行一些必要的配置本文接下来就会介绍Openwrt系统如何新增普通用户以及如何控制普通用户访问权限相关知识。 本文所有内容均是基于 Openwrt23.05 linux 5.15 版本介绍的。 1 如何新增普通用户 新增普通用户需要系统增加如下工具的支持 # 必要工具 su adduser deluser passwd addgroup delgroup# 可选工具 sudo如果是手动编译的Openwrt源码可以使用make menuconfig手动选择编译这些工具这些工具在menuconfig中的位置如下。当然直接使用opkg直接安装也是可以的大家按照自己方便的方式安装就行。 make menuconfigBase system Login/Password Management Utilitiessu adduser deuser passwd addgroup delgroup - Administration sudo安装好工具后下一步就可以在控制台(必须是root权限)新增用户了这里以新增guest用户为例 $ mkdir -p /home/guest $ addgroup guest_g # 创建一个guest_g用户组# 新增guest用户home目录为/home/guest默认shell为/bin/ash # -D 表示默认不分配密码后续可以使用passwd命令给guest 用户设置密码 # -G guest_g 将guest加入guest_g用户组 $ adduser -h /home/guest -s /bin/sh -D -G guest_g guest# 给guest 用户设置密码 $ passwd guest # 需要连续输入2次密码登录/登出guest 用户 $ su guest # 由root账户切换到guest账户 $ exit # 切换到guest用户后可以直接使用exit命令返回root账户这时候guest账户可以在控制台进行登陆了但是WebUI还不能使用guest账户进行登录还需要进行如下配置 # cat /etc/config/rpcd config rpcdoption socket /var/run/ubus/ubus.sockoption timeout 30config loginoption username rootoption password $p$rootlist read *list write *# 增加如下代码 config loginoption username guestoption password $p$guestlist read *list write *修改完上述配置后需要执行reload_config让配置生效之后webUI就可以使用guest账户进行登录了。 至此openwrt添加普通用户的部分就已经讲完了接下来继续介绍普通用户的一些权限控制问题。 2 如何以普通用户权限运行服务 当支持多用户之后我们可能会有一些服务并不想(也没有必要)以root权限运行所以我们需要以普通用户权限运行这些服务这也是Openwrt系统支持的。 以普通用户权限运行服务配置方法也比较简单在服务的启动脚本中新增一条命令即可 procd_set_param user guest # run service as user guest完整示例如下 #!/bin/sh /etc/rc.common START12USE_PROCD1 NAMEhelloworld PROG/sbin/helloworldstart_service() {procd_open_instanceprocd_set_param command $PROG procd_set_param respawnprocd_set_param stdout 1 procd_set_param stderr 1 procd_set_param user guest # run service as user guestprocd_close_instance }执行结果 $ ps | grep helloworld1048 guest 1700 S /sbin/helloworld3 普通用户如何访问root账户的ubus服务 有时候有些重要的服务程序必须要以root权限运行而且这些服务可能会对外提供一些ubus method如果希望以普通权限运行的服务也能访问这些ubus method那么就需要使用openwrt 提供的ACL(Access Control List)机制。 拿openwrt自带的系统服务为例当我们以root账户登录并执行ubus list时可以看到当前系统中所有的ubus method示例如下 # ubus list # root账户执行可以list出当前系统所有的ubus 对象 dhcp dnsmasq dnsmasq.dns file hostapd hotplug.dhcp hotplug.ieee80211 hotplug.iface hotplug.neigh hotplug.net hotplug.ntp hotplug.tftp iwinfo log luci luci-rpc network network.device network.interface network.interface.lan network.interface.loopback network.interface.wan network.interface.wan6 network.rrdns network.wireless rc service session system uci如果我们再切换到guest账户再次执行ubus list guestOpenWrt:~$ ubus list dnsmasq.dns可以看到执行完ubus list后只出现了一个dnsmasq.dns,其他什么信息也没有这是因为ubusd服务是以root权限运行的ubusd会检查client是否有权限访问ubus总线这也称为ACL检查显然guest用户暂时没有权限访问ubus总线所以也就看不到注册到ubus总线上面的method了。 那为什么这里会有一个dnsmasq.dns呢这个放在最后解释。 不过openwrt也给出了相应的解决办法——ACL我们可以加一条我们自己的ACL规则让ubusd允许普通用户能够访问特定的ubus对象示例如下 # cat /usr/share/acl.d/system_acl.json {user: guest,access: {system: {methods: [ board, info ]}} }ACL规则文件统一放在 /usr/share/acl.d/目录下它们是用json文件描述(需要注意json的语法格式)上述配置的作用是允许guest用户访问system对象的board和info方法。 特别注意*.json 文件的权限必须是644ubusd会检查该文件权限是否符合要求。 增加ACL规则后可以执行如下命令让ubusd重新加载ACL文件(也可以直接reboot重启) $ ps | grep ubusd716 ubus 1368 S /sbin/ubusd $ kill -1 716 # 给ubusd发送 SIGHUP(1)信号触发ubusd重启加载ACL文件ubusd重新加载system_acl.json后再次执行ubus list $ ubus -v list # 可以看到system对象的board 和 info 2个method了 system 5e41cdeeboard:{}info:{}$ ubus call system board # 调用 system-board method也是正常的 {kernel: 5.15.155,hostname: OpenWrt,system: ARMv8 Processor rev 4,model: Bananapi BPI-R64,board_name: bananapi,bpi-r64,rootfs_type: squashfs,release: {distribution: OpenWrt,version: 23.05-SNAPSHOT,revision: r238614-447eef2063,target: mediatek/mt7622,description: OpenWrt 23.05-SNAPSHOT r238614-447eef2063} }如果需要同时添加多个method的访问权限也可以一次性新增多个 {user: guest,access: {system: {methods: [ board, info ]},log: {methods: [read]},network:{methods:[restart,reload]},network.device:{methods:[status]}} }最后就回到刚开始dnsmasq.dns的问题了首先这个dnsmasq.dns并不是一个ubus method它是一个ubus subscribe也就是订阅服务其他client 如果对此事件感兴趣可以订阅它当对应的事件发生时client就会收到通知消息。 为什么guest用户没有添加任何ACL规则就可以看到它呢因为所见不一定所得看到不一定可用。 $ ubus list dnsmasq.dns $ ubus subscribe dnsmasq.dns # 尝试订阅这个服务 Error while registering for event dnsmasq.dns: Not found 尝试订阅这个服务却提示Not found ,其本质原因还是权限问题解决这个问题的方法还是添加ACL规则可以继续添加到之前的json中 {user: guest,access: {system: {methods: [ board, info ]},log: {methods: [read]},network:{methods:[restart,reload]},network.device:{methods:[status]}},subscribe:[dnsmasq.dns,] }添加subscribe的规则后触发ubusd重载ACL文件然后再次订阅一切正常。 $ ubus list dnsmas q.dns log network network.device system guestOpenWrt:/root$ ubus subscribe dnsmasq.dns如果需要添加多个订阅的对象接着dnsmasq.dns后面新增即可。 4 其他权限控制 限制普通用户可执行的命令例如限制普通用户执行reboot、shutdown、poweroff、mount等指令。 限制普通用户可访问/修改的文件例如禁止普通用户访问 /etc/config/system配置文件。 这些基本上都可以通过chmod指令来配置这部分就不再做详细介绍。 5 参考 为 OpenWrt 增加用户且开放访问 WebUI 权限 UBUS ACL Procd Service Parameters
http://www.hkea.cn/news/14579978/

相关文章:

  • 优服优科网站建设公司公众号做淘宝客接入手机网站
  • 那方面 搜索网站短视频网站平台怎么做的
  • 南京市鼓楼区建设局网站广州番禺房价
  • 微博如何做的跟网站一样神箭手 wordpress
  • 广西网站建设价格多少你理解的网络营销是什么
  • 平面设计网站制作wordpress修改文章浏览次数
  • 网络有限公司做女装网站的网站专题页面案例
  • 网站设计建设流程网站上传程序流程
  • 手机网站免费做推广网站代码优化所有标签
  • 单页网站是什么样子的早晨网站建设
  • 音频网站开发在线做qq空间的网站
  • 网站开发前端和后端工作专业网站建设模块
  • 网站后台如何做产品展示建立个人网站视频教程
  • 政务网站建设管理工作总结网店运营培训
  • 哈尔滨cms模板建站免费文档模板素材网站
  • 如何修改asp网站免费建论坛网站
  • 如何在360网站上做软文推广汽车之家 网站建设
  • 如何获得网站域名网站中图片下移怎么做
  • 企业做网站优势网站建设与管理自考本
  • 做网站绘制蓝图的步骤wordpress站点统计
  • 可以用服务器做网站安国市住房和城乡建设局网站
  • 成都优化网站厂家wordpress制作网站
  • wordpress全站ajax插件网页设计与网站建设-学用一册通
  • 红古微信网站建设外贸平台app下载
  • 爱站库广告公司记账管理软件
  • 网站建设之织梦模板广东网页空间价格
  • 南联网站建设公司wordpress 使用插件下载
  • 枣强网址建站初中文凭怎么自考大专
  • 创建一个网站的技术百度优化seo
  • 杭州做网站 做小程序青海网站建设 小程序开发