发表于 2013-07-18 | 更新于: 2018-02-16 | 分类于 Linux , CentOS , Fedora | | 阅读次数: 408
今天给各位渗透测试同行们提供一种Linux提权方法,在这篇文章中,我们将介绍如何使用Cron Jobs来实现Linux下的权限提升,并获取远程主机的root访问权。
前面文章介绍了Linux下进程的创建、管理、使用、通信,了解了多进程并发;这篇文章介绍Linux下线程的基本使用。
节后总是遇到各式各样的问题好奇怪,今天遇到的问题是使用svn提交项目文件时提示“run 'svn cleanup' to remove locks”错误,节前是好用的,之前还特意写了一篇关于宝塔linux面板搭建SVN控制系统的图文教程,所以功能插件是没有问题的,但是不知道为什么,节后上班提交项目就出现了这个提示,贴出完整的错误提示:
#include <linux/module.h> #include <linux/init.h> #include <linux/kernel.h> #include <linux/proc_fs.h> #include <linux/fs.h> #define CUTBAG_DIR "CU_T-bagwell" #define CUTBAG_NODE "test_node" struct proc_dir_entry *cutbag_dir; static int __init
就是这个智障提的建议:`brew cleanup` should be run automatically · Issue #4760 · Homebrew/brew · GitHub[1] 大家去喷他。
大家好,我是程栩,一个专注于性能的大厂程序员,分享包括但不限于计算机体系结构、性能优化、云原生的知识。
在一个我们谈到了如何编写一个简单的字符设备驱动程序,我们不是神,编写肯定会失败的代码,在这个过程中,我们需要继续写代码调试。在普通c应用。我们经常使用printf输出信息。或者使用gdb要调试程序,然后司机如何调试它?的问题,在应用程序中执行这样的程序就会报segmentation fault的错误,而因为驱动程序的特殊性,出现此类情况后往往会直接造成系统宕机。并会抛出oops信息。那么我们怎样来分析oops信息呢,甚至依据oops信息来定位详细的出错的代码行呢?以下就依据一个简单的实例来说明怎样调试驱动程序。
使用 Python, Node.js 等开发云函数时, 可能遇到的一个问题就是依赖安装. 由于操作系统版本, 系统库版本及语言版本不一致, 有时在本地环境可以运行良好的程序在部署到 SCF 后可能会出现错误.
自打进入技术运维领域,相信很多小伙伴每日都是技术身傍(绑),Linux 、docker、k8s、devops,发布、升级、当然可能还有“删库”
#include <linux/module.h> #include <linux/init.h> #include <linux/kernel.h> #include <linux/slab.h> #include <linux/fs.h> #define CUTBAG_DIR "CU_T-bagwell" #define MAX_STRING_TEST 20 static struct kmem_cache *T_bagwell_slab_test; struct test{
上一篇我们大概聊了如何写一个简单的字符设备驱动,我们不是神,写代码肯定会出现问题,我们需要在编写代码的过程中不断调试。在普通的c应用程序中,我们经常使用printf来输出信息,或者使用gdb来调试程序,那么驱动程序如何调试呢?我们知道在调试程序时经常遇到的问题就是野指针或者数组越界带来的问题,在应用程序中运行这种程序就会报segmentation fault的错误,而由于驱动程序的特殊性,出现此类情况后往往会直接造成系统宕机,并会抛出oops信息。那么我们如何来分析oops信息呢,甚至根据oops信息来定位
这个线程池是在学习完《Linux/UNIX系统编程手册》中线程相关知识后用来练手的小项目,线程相关函数都是直接调用Linux的API,并且使用了C++中的queue和vector。 虽然C++中也提供了线程创建、互斥锁等函数库,但是也是对系统函数的封装。并且作为初学,先学会用原生函数比较好。
程序是指储存在外部存储(如硬盘)的一个可执行文件, 而进程是指处于执行期间的程序, 进程包括 代码段(text section) 和 数据段(data section), 除了代码段和数据段外, 进程一般还包含打开的文件, 要处理的信号和CPU上下文等等.
在更新 PHP 版本的时候,出现了NOKEY的错误提示后,暂时没有解决掉这个问题,于是就手动安装了php-mbstring...rpm 包的高版本,这样在接下来的错作中就出现了错误信息:The program package-cleanup is found in the yum-utils package. 什么是yum-utils: yum-utils are tools for manipulating repositories and extended package management. It is a collection of tools and programs for managing yum repositories, installing debug packages, source packages, extended information from repositories and administration. yum-utils package includes: debuginfo-install - install debuginfo packages and their dependencies package-cleanup - manage package cleanup, duplicates, orphaned packages and outstanding dependency problems repo-graph - outputs a full package dependency list in dot format repo-rss - generates an RSS feed from one or more repositories repoclosure - reads metadata of repositories, checks dependencies and displays list of unresolved dependencies repodiff - takes two or more repositories, returns a list of added, removed or changed packages repomanage - manages a directory of rpm packages, returns a list of newest or oldest packages in a directory repoquery - query yum repositories and get additional information on the them reposync - synchronize a remote yum repository to a local directory using yum to retrieve packages repotrack - track packages and its dependencies and downloads them yum-builddep - installs missing dependencies to build a specified package yum-complete-transaction - finds incomplete or aborted yum transactions and attempts to complete them yum-installed - print a compact package list making use of comps groups yumdownloader - downloads packages from yum repositories including source RPMs 出现这句话说明清除程序包存在并在yum-utils套件包里找到了,看不出安装存在问题。存在不兼容问题的话一般是用yum安装一些rpm packages时候会出现missing dependency error,会有error提示的。 解决办法: yum install yum-utils yum-complete-transaction --cleanup-only 清除可能存在的重复包 package-cleanup --dupes 清除可能存在的损坏包 package-cleanup --problems 清除重复包的老版本: package-cleanup --cleandupes package-cleanup 帮助信息如下: options: -h, --help show th
当前文章介绍如何使用C语言调用libcurl库在Linux(Ubuntu)操作系统下实现网络文件下载功能。
Helm V3 与 V2 版本架构变化较大,数据迁移也比较麻烦,官方为了解决数据迁移问题,提供一个 helm-2to3 工具,本文基于 helm-2to3 工具来迁移 V2 版本中的数据。
阅读了kernel的start_kernel代码后,学习了一下kernel_thread的使用
本文适用于解决openssl升级到1.1.0以上版本,导致shadowsocks2.8.2启动报undefined symbol: EVP_CIPHER_CTX_cleanup错误。 最近将kali升级到了最新版本,编译之后shadowsocks无法启动,报错如下: INFO: loading config from ss.json 2016-12-14 22:47:50 INFO loading libcrypto from libcrypto.so.1.1 Traceback (most recen
今天突然发现项目更新脚本在拉代码的时候抛出了一个如下错误: svn: E155004: Working copy '/home/svn/***/trunk/staticfiles' locked. s
如果不做交叉编译,host指定为当前机器的架构(x86_64-linux-gnu)则编译正常 如果设置为mips-linux-gnu进行交叉编译,就报错了:
学习一下linux kernel namespace的代码还是很有必要的,让你对docker容器的namespace隔离有更深的认识。我的源码分析,是基于Linux Kernel 4.4.19 (https://www.kernel.org/pub/linux/kernel/v4.x/patch-4.4.19.gz)版本的,由于namespace模块更新很少,因此其他相近版本之间雷同。User namespace由于与其他namespaces耦合在一起,比较难分析,我将在后续再作分析。 Kernel,Nam
为什么这么说呢? 卸载deb包时候,可以连不要的依赖关系包一起删除,但是多如牛毛的rpm却不可以。 这个真的是rpm的痛! yum仅仅能在线安装rpm,但是只能在安装的时候解决依赖关系,卸载的时候却不行。 不过,有个工具可以专门解决rpm依赖关系:package-cleanup Options: -h, --help show this help message and exit --problems List dependency problems in the local RPM database --leaves List leaf nodes in the local RPM database --all When listing leaf nodes also list leaf nodes that are not libraries --orphans List installed packages which are not available from currenly configured repositories. -q, --quiet Print out nothing unecessary -y Agree to anything asked -d, --dupes Scan for duplicates in your rpmdb --cleandupes Scan for duplicates in your rpmdb and cleans out the older versions --oldkernels Remove old kernel and kernel-devel packages --count=KERNELCOUNT Number of kernel packages to keep on the system (default 2) --keepdevel Do not remove kernel-devel packages when removing kernels -c CONFFILE config file location Please specify either --problems, --leaves, --orphans or --oldkernels 例如,你不小心安装了gnome-games,然后马上把这个卸载。你会发现只卸载了gnome-games,那些“包庇”gnome-games的“同党”还留在你的硬盘里! 这时,你输入:package-cleanup --leaves 就会列出一系列的关系包,都是在rpm数据库里没有被依赖的依赖包。 把这些包统统remove,你的硬盘从此干净了。
下面使用IIC子系统框架编写EEPROM的驱动,驱动端代码使用杂项字符设备框架,并且实现了文件指针偏移;在应用层可以将EEPROM当做一个255字节大小的文件进行编程读写。
作为移动互联新时代的程序员,经常会把程序装进容器内运行,但是慢悠悠的镜像构建过程、国际网络的不稳定、移动联网时的流量狂奔,都让人又爱又恨。本文介绍的两步快速构建容器镜像方法,速度快到以秒为单位,能缓解镜像构建痛点。
让老赵帮我装了这套 E3-1245 v2 + GTX660 的黑苹果之后,到是一直拿来在玩游戏和娱乐,基本上没有用到开发,这几天算是体验完了,干回码农的老本行,开发环境装了一大堆,有些小工具还是需要 homebrew 来安装管理,记录下 homebrew 的常用命令列表。 指令 查看有哪些指令可以使用 % brew help 查找相关软件,以mongodb为例: % brew search mongodb 安裝 MongoDB % brew install mongodb 查看已安裝软件信
作者:柴锋 原文链接:https://chaifeng.com/unit-testing-bash-scripts/
Unix标准的复制进程的系统调用时fork(即分叉),但是Linux,BSD等操作系统并不止实现这一个,确切的说linux实现了三个,fork,vfork,clone(确切说vfork创造出来的是轻量级进程,也叫线程,是共享资源的进程)
我们在服务器运行一些服务经常会产生很多临时文件, 而有些临时文件不定期处理很容易就打满了整个磁盘; 所以有必要去定期清理,基于这个需求我们就可以搞一个脚本结合crontab或者服务调度这些来使用;
AT24C02是IIC接口的EEPROM存储芯片,这颗芯片非常经典,百度搜索可以找到非常多的资料,大多都是51、STM32单片机的示例代码,大多采用模拟时序、裸机系统运行。当前文章介绍在Linux系统里如何编写AT24C02的驱动,并且在应用层完成驱动读写测试,将AT24C02的存储空间映射成文件,在应用层,用户可以直接将AT24C02当做一个普通文件的形式进行读写,偏移文件指针;在Linux内核里有一套标准的IIC子系统框架专门读写IIC接口设备,采用平台设备模型框架,编写驱动非常方便。
上篇我们从进程 clone 的角度,结合代码简单分析了 Linux 提供的 6 种 namespace,本篇从源码上进一步分析 Linux namespace,让你对 Docker namespace 的隔离机制有更深的认识。我用的是 Linux-4.1.19 的版本,由于 namespace 模块更新都比较少,所以,只要 3.0 以上的版本都是差不多的。 从内核进程描述符 task_struct 开始切入 由于 Linux namespace 是用来做进程资源隔离的,所以在进程描述符中,一定有 names
对于那些经常使用的,或者是特别复杂的Git命令,我们可以为其设置别名,这样在我们想要执行对应的Git命令时,只要执行这个别名命令就好了,简单方便。
这篇文章介绍Linux下线程的创建与基本使用案例,主要是案例代码为主;相关的函数详细介绍在上篇文章里已经介绍过了。
进程(Process)是 Unix/Linux 系统下编程的核心知识。无论是小 Script 还是大 Daemon,启动后都是以进程的形势在 OS 中存在和执行。 进程的启动 启动进程其实最简单,假如我们有一段 Python Script (hello.py): print “hello world” 运行它非常容易: python hello.py 然后一个新的进程就产生了,由于代码很短,输出 “hello world” 之后进程就结束了。 启动进程的核心其实就是构建一个合法的命令行,通过 CLI /
在mac os系统上我们安装程序会用到Homebrew,它是一个包管理工具,相当于linux系统下的yum
在Linux系统下,你可以使用 exit()、_exit() 和 _Exit() 来终止程序运行,特别是在出现错误或执行失败的情况下。这样可以确保程序在发生严重错误时能够安全地退出。
读者群里一位同学的线上服务器出现一个诡异的问题,执行任何命令都是报错“fork:无法分配内存”。这个问题最近出现的,前几次重启后解决的,但是每隔 2-3 天就会出现一次。
如果你使用惯了linux,你会对软件包管理、命令行不能自拔。由于mac的底层是类unix系统,也可以配置向linux一样好用。 安装HomeBrew /usr/bin/ruby -e "$(curl
本文不讲述 Go 的单元测试如何编写,这里直接以filenamify(一个合法化文件路径的库)为例子。已为filenamify.go编写测试文件filenamify_test.go。只需要在tracis中执行go test -v即可。
以上显示了接口172.20.10.4对应的局域网内所有主机IP地址,其中,172.20.10.11作为攻击主机,172.20.10.12作为被攻击主机。
网上都在讲watchBog,有什么用,能做什么事,没有特别好的方法去应对变种的挖矿病毒。
大家好,我是天天被白嫖却越被白嫖越爽、秃顶法师老赵养猪的御用兽医、东北大膘客的灵魂伴侣、早就进化且早就开始享受的高等文明、欧阳狂霸的第二面孔---谢顶道人老李。
Nebula 是一个云和(希望如此)DevOps 渗透测试框架。它为每个提供者和每个功能构建了模块。截至 2021 年 4 月,它仅涵盖 AWS,但目前是一个正在进行的项目,并有望继续发展以测试 GCP、Azure、Kubernetes、Docker 或 Ansible、Terraform、Chef 等自动化引擎。
在《[apue] 进程控制那些事儿 》一文中,曾提到进程 ID 并不是唯一的,在整个系统运行期间一个进程 ID 可能会出现好多次。
本章介绍所有的关于模块和内核编程的关键概念,通过一个 hello world 模块来认识驱动加载的流程及相关细节。
笔者在很早之前就看eBPF这类似的文章,那时候看这个技术一脸懵逼,不知道它是用来做什么,可以解决什么问题。所以也没有太关注这个技术。很庆幸最近刚好有机会研究这个技术。
领取专属 10元无门槛券
手把手带您无忧上云