社区
模式及实现
帖子详情
如何用C语言实现linux的命令?cd,ls,pwd等
haihui0705
2010-04-30 09:36:15
如题,问题一:我想在linux中新建一个用户(No_Cmd_User)让他没有任何命令的使用权限怎么做??
问题二:用C语言实现linux的常用命令,并在这个用户(No_Cmd_User)下掉用自己写的命令
...全文
1637
13
打赏
收藏
如何用C语言实现linux的命令?cd,ls,pwd等
如题,问题一:我想在linux中新建一个用户(No_Cmd_User)让他没有任何命令的使用权限怎么做?? 问题二:用C语言实现linux的常用命令,并在这个用户(No_Cmd_User)下掉用自己写的命令
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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("./命令 命令参数");
ftp.rar_ftp_ftp
cd
pwd
_ftp
cd
pwd
dir_ftp
ls
cd
_
linux
ftp
在
linux
环境下,用
c语言
实现
简单的ftp服务系统,比较简单
linux
内核注释&
Linux
操作系统下
C语言
编程入门&
Linux
基础入门
Linux
内核注释(强烈推荐)
Linux
操作系统下
C语言
编程入门
Linux
基础入门
lab2-
c语言
实现
shell程序.zip-
linux
实验
实验二:
Linux
命令
环境下 C/C++语言实践 2. 实验内容 基本任务 1:用 C/C++编写一个简单的 shell 程序,
实现
以下基本的
命令
。 1) 浏览目录和文件的各种属性
ls
(可以不支持参数) 2) 回显
命令
echo 3) 显示文件内容 cat 4) 创建目录 mkdir 5) 删除文件 rm 6) 切换目录
cd
7) 显示当前目录
pwd
8) 文字统计 wc 基本任务 2:每一条
命令
单独对应一个源程序文件,不允许所有
命令
一个源文件。 基本任务 3:写一个 makefile 来管理这些源文件。 基本任务 4:并写清楚 make 编译和运行的过程。 选做任务 Advanced shell 功能,例如: 1) 输入输出重定向,例如 ./a.out > output.dat 2) 支持多管道
命令
,例如 ./a.out | ./b.out | ./c.out 3) 支持后台运行
命令
,例如
ls
| wc & 4) 其它:参考 GNU bash 提供的功能。 提供友好的人机界面:例如提供
命令
列表、
命令
查询、
命令
帮助等; 任何你想
实现
的其它
命令
C语言
实现
:
Linux
下的myshell
基本功能: 1.基本的内部
命令
。如:
cd
,
ls
,
pwd
等; 2.能处理后台程序; 3.具有管道和重定向功能。如输入:who | wc -l 进行测试; 4.可以处理多条
命令
,以';'分隔, 滤掉无效的空格、tab符等;
基于
C语言
实现
的虚拟Ext文件系统.pdf
基于
C语言
实现
的虚拟Ext文件系统.pdf
模式及实现
5,530
社区成员
4,167
社区内容
发帖
与我相关
我的任务
模式及实现
C/C++ 模式及实现
复制链接
扫一扫
分享
社区描述
C/C++ 模式及实现
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章