社区
模式及实现
帖子详情
如何用C语言实现linux的命令?cd,ls,pwd等
haihui0705
2010-04-30 09:36:15
如题,问题一:我想在linux中新建一个用户(No_Cmd_User)让他没有任何命令的使用权限怎么做??
问题二:用C语言实现linux的常用命令,并在这个用户(No_Cmd_User)下掉用自己写的命令
...全文
1761
13
打赏
收藏
如何用C语言实现linux的命令?cd,ls,pwd等
如题,问题一:我想在linux中新建一个用户(No_Cmd_User)让他没有任何命令的使用权限怎么做?? 问题二:用C语言实现linux的常用命令,并在这个用户(No_Cmd_User)下掉用自己写的命令
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
haihui0705
2010-05-27
打赏
举报
回复
都有什么api可以调用呀,比如我想重新实现su功能
非兔子_Logic0
2010-05-23
打赏
举报
回复
问题1:将No_Cmd_User的命令搜索目录设置为“自定义的目录”,然后减去它对/bin 和/sbin的操作权限
问题2:要实现命令的定制的话,可以直接修改coreutils里的ls,cat等源码,然后编译后放在“自定义的目录下”
sudo apt-get source coreutils就可以得到源码
也可以直接搜索下载,系统用的ls,cat等命令的源码都在里边
要是有不在coreutils里的可以用
dpkg -S 命令名 来获取在哪个包里,然后下载源码包解压即可
lei001
2010-05-22
打赏
举报
回复
查查一些文件、目录操作函数吧
huanmie_09
2010-05-17
打赏
举报
回复
[Quote=引用 6 楼 icansaymyabc 的回复:]
引用楼主 haihui0705 的回复:
问题一:我想在linux中新建一个用户(No_Cmd_User)让他没有任何命令的使用权限怎么做??
这个颇为不易,linux的权限控制策略太简单。
所有文件仅可以设置三种权限,针对文件所有者设一种,针对文件所有者同组用户设一种,针对其它人设一种。
要达到你的目的必须有大动作:把系统中全部可执行文件的所有人设为root,把其余用户的用户组改成和……
[/Quote]
up!
Garyhou
2010-05-16
打赏
举报
回复
我推荐一本书你看看那里有很多命令的实现:《UNIX/LINUX编程实践教程》
linyilong3
2010-05-16
打赏
举报
回复
linux实例编程,我记得是这本书吧,里面有linux命令里面的写法
yzx714
2010-05-16
打赏
举报
回复
直接使用busybox的源代码!
icansaymyabc
2010-05-13
打赏
举报
回复
[Quote=引用楼主 haihui0705 的回复:]
问题一:我想在linux中新建一个用户(No_Cmd_User)让他没有任何命令的使用权限怎么做??
[/Quote]
这个颇为不易,linux的权限控制策略太简单。
所有文件仅可以设置三种权限,针对文件所有者设一种,针对文件所有者同组用户设一种,针对其它人设一种。
要达到你的目的必须有大动作:把系统中全部可执行文件的所有人设为root,把其余用户的用户组改成和root一个组。把所有可执行文件其它组的权限全部取消。这样你创建的非root组用户就用不了任何命令了。
[Quote=引用楼主 haihui0705 的回复:]
问题二:用C语言实现linux的常用命令,并在这个用户(No_Cmd_User)下掉用自己写的命令
[/Quote]
你也没必要自己写,把 ls 、 cat、login(
这个最重要
) 这些可以用的命令复制出来,放在新用户的搜索路径里,把文件的所有者改成新用户或同组人,就可以了。
liranke
2010-05-12
打赏
举报
回复
通过调用系统函数来实现。具体的,楼主可以参考《Unix环境高级编程》,相信楼主肯定能找到答案。
haihui0705
2010-04-30
打赏
举报
回复
公司不能用shell编程,system是调linux的命令,而此登录用户(No_Cmd_User)没有命令使用权限。所以syetem函数也不能用的。大羊头do_fork给说说呗!!!
cattycat
2010-04-30
打赏
举报
回复
没有任何命令权限的话,就是这个用户什么事情也做不了吧。
你可以fork子进程中exec调用常用的命令,一直在循环,相当于你的shell
do_fork
2010-04-30
打赏
举报
回复
build-in 和 外部程序是不同的.
不能简单的system
赵4老师
2010-04-30
打赏
举报
回复
system("./命令 命令参数");
Linux
命令
的
实现
--
ls
pwd
cd
Linux
命令
的
实现
--
ls
pwd
cd
用
C语言
编写一个
Linux
下的简单shell程序
用
C语言
编写一个
Linux
下的简单shell程序 这是一个简单的C程序,展示了如何进行系统调用执行logout
cd
ls
pwd
pid rm mkdir mv cp等
命令
,这是一个简单的
命令
解释程序shell,其源代码如下:#include >stdio.h#includ
C语言
文件系统漫游指南:从
pwd
到
ls
的
实现
本文介绍了如何使用
C语言
实现
Linux
基础
命令
pwd
、
cd
和
ls
的核心功能。通过getcwd()函数获取当前路径
实现
pwd
;使用chdir()函数改变当前目录位置
实现
cd
;借助opendir()、readdir()、closedir()函数组合
实现
ls
的基本目录列表功能。文章包含完整代码示例,展示了这三个
命令
的底层
实现
原理,帮助读者理解文件系统的基础操作机制。
无线通信背负式自组网电台技术规格:WFS7000GDPBF系列多接口高带宽MESH网络设备设计与应用
内容概要:WiFiSupply斯普莱背负式自组网电台WFS7000GDPBF系列产品是一款基于无线宽带自组网技术的专网通信设备,无需依赖基础设施即可快速构建无中心、多跳、自组织的通信网络,支持视频、语音、数据、位置信息等多种IP业务的透明传输。产品采用MIMO 2x2双发双收技术,最大传输速率超80Mbps(组播60Mbps),通视传输距离不小于10公里,支持1.4GHz~1.5GHz及570MHz-595MHz等可定制频段,具备AES 256加密、IP68防护等级、7×24小时连续工作能力,适用于复杂地形与移动环境下的应急通信与网络覆盖。; 适合人群:应急通信、公共安全、军事安防、野外救援等领域中从事通信系统部署与运维的技术人员及工程团队。; 使用场景及目标:①在无公网覆盖区域(如地震灾区、森林、山区)快速搭建临时通信网络;②用于移动执法、前线指挥、无人机集群通信等需要高机动性与稳定传输的场景;③
实现
多节点自组网、多跳中继、动态拓扑调整与远程数据回传; 阅读建议:本文档为产品规格说明书,重点在于技术参数与功能特性说明,使用者应重点关注频段配置、接口选项、供电方式与环境适应性,以便根据实际应用场景进行设备选型与系统集成。
清印 ClearMark - 智能文档去水印工作台.part1 V2.0 · 基于 PySide6 + PyMuPDF + OpenCV + RapidOCR 的本地文档去水印桌面应用
清印 ClearMark 是一款运行于本地(离线)的智能文档去水印工具,支持 PDF 和图片格式,能够自动检测并移除文字水印、图片水印、透明度图层水印、扫描件内嵌浅色斜铺水印等多种类型。所有处理均在本地完成,文件不上传任何服务器,源文件不会被修改。 ClearMark 分卷压缩包解压说明 ======================================== 【重要前提】所有分卷文件 ClearMark.7z.001、ClearMark.7z.002必须放在同一个文件夹,缺一不可。只需要操作 .001 文件,不要单独打开其他分片。 ---------- Windows系统 ---------- 1. 安装免费开源 7-Zip(官网:7-zip.org) 2. 全部分卷放同一目录 3. 右键 ClearMark.7z.001 → 7-Zip → 提取到当前文件夹 ---------- 银河麒麟 /
Linux
系统 ---------- # 桌面图形方式 终端执行安装
命令
: sudo apt update sudo apt install p7zip-full 安装完成后,双击 ClearMark.7z.001 即可解压。 # 服务器
命令
行方式 所有分卷放在同一目录,执行: 7z x ClearMark.7z.001 ---------- 常见问题 ---------- 1. 提示文件缺失:确认所有分卷文件已全部下载,放在同一目录。 2. 解压报错:文件传输损坏,重新下载。
模式及实现
5,529
社区成员
4,167
社区内容
发帖
与我相关
我的任务
模式及实现
C/C++ 模式及实现
复制链接
扫一扫
分享
社区描述
C/C++ 模式及实现
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章