type
date
slug
summary
status
tags
category
password
Last edited time
Dec 17, 2023 05:24 AM
icon
服务器配置
CPU架构 | 规格 | OS镜像 | 系统盘 |
鲲鹏计算 | 鲲鹏通用计算增强型:kc1.large.2:2vCPUs:4GB | openEuler 20.03 64bit with ARM(40GB) | 通用型SSD:40GB |
基本步骤
尝试中发现,后续进行编译安装时,须使用root用户权限,因此建议一开始就在root用户的工作目录下进行
思路
- 因为作业要求是封装挂载过程开放给用户,那么用户的挂载点应当在自己的工作目录下,而不需要统一放在
/mnt
这样的系统根目录;
- 因此,只需封装出一个具有sudo权限的脚本,使得所有用户都具有不可读写、只可执行且无需密码的权限,
1. 创建本地挂载点 2. 更新secrets文件 3. 配置执行挂载命令之后将该脚本通过visudo
命令为所有用户设置无密码执行的权限,之后通过C语言代码执行。
- sh脚本和其调用的C语言程序都含有
sudo
命令,在配置visudo后依旧存在权限问题。
无论是C程序的编译文件还是shell脚本,在执行时都须加上sudo
环境安装与配置
以下步骤均以root用户进行
(1)安装neon
- 安装相关依赖libxml2:
报错`Error: GPG check FAILED`,表示GPG检查不通过,在命令后添加`
--nogpgcheck
`规避检查安装完之后查找xml2-config文件是否存在,有路径名代表安装成功。
- 安装neon
(2)安装davfs2
- 下载安装包
- 解压缩并安装
这个步骤卡我好久,就是要在configure
的时候指定参数-fPIC
- 测试安装
davfs2的路径为
/usr/local/etc/davfs2
;(该信息是文档看到的,文档在/root/davfs_install/share/doc
)- 配置davfs2模块,编辑
/usr/local/etc/davfs2/davfs2.conf
文件,添加或更改以下行:
(3)测试网盘挂载
- 创建davfs2用户
- 编辑`/usr/local/etc/davfs2/secrets`文件,添加webdav访问的凭证,格式如下:
之后更改设置权限,确保只有root权限才可访问:
- 网盘挂载和卸载
网盘挂载
- 创建davfs2用户
- 编辑
/usr/local/etc/davfs2/secrets
文件,添加webdav访问的凭证,格式如下:之后更改设置权限,确保只有root权限才可访问:
- 网盘和卸载
为了写作业搓的程序
测试程序
在测试时,为模拟用户使用的真实场景,我们将编译后的可执行文件
mountWebdav
移动到了/usr/local/sbin/
文件夹下。- 执行
visudo
命令,修改sudoers
文件,添加下行:使得davfs2用户能够无密码执行该文件
- 切换到davfs2用户,尝试网盘挂载和卸载:
注意,运行时开头须加上sudo
运行截图如下:
- 作者:Antony_Zhang
- 链接:https://antonyzhang.cn/article/8e2c0cf6-02f4-46d0-adc9-e5dc1a2ceb40
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。