最近在工作中遇到nobody用户的问题。关于nobody的介绍,可以看这篇文章。

https://blog.csdn.net/weixin_37569048/article/details/83030167?ops_request_misc=&request_id=&biz_id=102&utm_term=nobody&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~sobaiduweb~default-1-83030167

对于服务器来说一般请求发过来以后,apach要执行代码都是通过这个nobody用户权限来执行,我们在调试程序的时候需要使用nobody用户来调试,我们可以使用su命令来实现。

举个例子:

下面的代码是读取一个名叫test的文件,然后关闭。如果这文件不存在时创建这个文件。

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>int main(int argc, char* argv[])
{int fd = open("test", O_RDONLY|O_CREAT);if (fd < 0){perror("open\n");return -1;}if (close(fd) < 0){perror("close\n");return -1;}return 0;
}

编译gcc openfile.c -g -o openfile得到可执行文件openfile

现在我们使用nobody用户来执行:

su -c "./openfile" -s /bin/bash nobody

原因是最开始我们没有创建test这个文件,于是这段代码就要创建test,创建的权限是看该文件夹是否有写的权限,应为对于nobody这个others来说没有写权限。

我觉得就读文件来说nobody的权限低这种说法是不准确的,这个还是要看文件对others设置具体权限是什么。将nobody这个文件夹权限改成777。再试一次。

执行成功了,创建了一个所欲nobody的文件test。这就是我们可能看到的nobody文件的由来,比如服务器的session文件。

su的使用和具体参数含义可以通过man su来查看。

linux中的nobody相关推荐

  1. c++ 进程快照_如何在 Linux 中找出内存消耗最大的进程

    很多次,你可能遇见过系统消耗了过多的内存.如果是这种情况,那么最好的办法是识别出 Linux 机器上消耗过多内存的进程. -- Magesh Maruthamuthu(作者) 很多次,你可能遇见过系统 ...

  2. linux的tar中ztvf,linux中的tar命令(2)

    实例4:只将 /tar 内的 部分文件解压出来 命令: tar -zxvf /opt/soft/test/log30.tar.gz log2013.log 输出: [root@localhost te ...

  3. centos6.5 php5.2,Linux中PHP安装与配置(CentOS-6.5:php-5.2.13)

    1 PHP简介     PHP(PHP: Hypertext Preprocessor的缩写,中文名:"超文本预处理器")是一种通用开源脚本语言.语法吸收了C语言.Java和Per ...

  4. java 外部类似_[求指点] 如何用java 实现类似linux中管道调用外部程序的功能

    想写个小程序实现类似linux中管道的功能,创建一个外部子进程,然后主进程不断地写输入给子进程,而后把子进程的返回值取出. 如下的小代码就是从stdin读入一个字符串,调用子进程(cat)返回这个串, ...

  5. linux 修改java版本_Linux 有问必答:如何在 Linux 中改变默认的 Java 版本

    提问:当我尝试在Linux中运行一个Java程序时,我遇到了一个错误.看上去像程序编译所使用的Java版本与我本地的不同.我该如何在Linux上切换默认的Java版本? 当Java程序编译时,编译环境 ...

  6. linux ls 命令 路径,使用ls命令在Linux中使用完整路径列出文件

    许多人会发现,这是重复的问题,但我已经经历了所有问题,然后问及这个主题,但没有为我工作.使用ls命令在Linux中使用完整路径列出文件 我想打印使用ls命令的特定文件格式的完整路径名到目前为止,我发现 ...

  7. linux中的ln属性,linux 常用基础命令 ln 详细介绍

    命令介绍: ln是linux中又一个非常重要命令,ln是为某一个文件在另外一个位置建立一个同步的链接.当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我 ...

  8. linux内核定义的常用信号6,Linux中的信号

    在 Linux 中,理解信号的概念是非常重要的.这是因为,信号被用于通过 Linux 命令行所做的一些常见活动中.例如,每当你按 Ctrl+C 组合键来从命令行终结一个命令的执行,你就使用了信号.每当 ...

  9. linux用户空间 限制吗,在Linux中限制用户空间

    在Linux中限制用户的磁盘使用空间使用的是Quota,一般Quota在安装Linux时就已包括在内核中,不需要另行安装.Quota可以从两方面指定磁盘的储存限制: 使用者所能够支配的索引节点(ino ...

  10. Linux中的粘滞位

    Linux中的粘滞位 Sticky 位是一个访问权限标志位,可以用来标示文件和路径. 历史: 粘滞位是在1974年Unix的第5版中引入的,用来设置可执行文件.当可执行文件设置粘滞位之后,它能够指示操 ...

最新文章

  1. 《iOS 6核心开发手册(第4版)》——2.1节UIControl类
  2. Python TimedRotatingFileHandler 多进程环境下的问题和解决方法
  3. 同步阻塞处理的几种方法
  4. 过年遇到前任借钱, 如何傲娇的拒绝?
  5. Windows NT OS 的技术架构图
  6. 已知三角形三点坐标求角度_细心研磨椭圆焦点三角形,这肯定是最全的解释。...
  7. 【C语言】C语言Code的编译与执行
  8. JS总是带有一种神奇的魔力
  9. 中国教育电脑市场趋势报告、技术动态创新及市场预测
  10. 第十节 javascript之第四节 函数
  11. 倒计时 5 天!Apache Flink Meetup · 北京站,1.13 新版本 x 互娱实践分享的开发者盛筵!...
  12. android file hascode,AndroidStudio集成Lombok
  13. IT运维服务整体方案
  14. Kubernetes CKA认证运维工程师笔记-Kubernetes故障排查
  15. wireshark抓包实验 分析 详解
  16. 2019年3月最新windwows101809教育版激活密钥及其下载地址
  17. linux中文显示乱码情况解决
  18. 农场世界农场游戏开发
  19. PLEG is not healthy: pleg was last seen active 3m45.252087921s ago; threshold is 3m0s
  20. node 压缩图片_推荐10个常用的图片处理小帮手(下)「值得收藏」

热门文章

  1. C# 9.0新特性详解系列之五:记录(record)和with表达式
  2. matlab如何做粒子模拟,求助,如何用matlab做蒙特卡罗模拟!!??
  3. 酒店智能门锁常见故障及解决办法
  4. vue 一个微博注册模版
  5. JAVA程序员面试总结
  6. SG3525matlab,基于SG3525芯片的大功率恒压/恒流LED电源研制 - 全文
  7. 15、TWS API和IB中的期权相关的操作
  8. 什么是PHP高级工程师
  9. 小学计算机集体听课评课,小学听评课的活动总结(精选5篇)
  10. OC开发之——OC简介(1)