unix命令

Linux Setuid(SUID)和Setgid(SGID) sticky bit

泪湿孤枕 提交于 2020-02-29 02:53:15
http://www.php100.com/html/webkaifa/Linux/2010/0812/6392.html  1、setuid和setgid的解说    setuid和setgid位是让普通用户可以以root用户的角色运行只有root帐号才能运行的程序或命令 。比如我们用普通用户运行passwd命令来更改自己的口令,实际上最终更改的是/etc/passwd文件,我们知道/etc/passwd文件是用户管理的配置文件,只有root权限的用户才能更改:   [root@localhost ~]# ls -l /etc/passwd   -rw-r--r-- 1 root root 2379 04-21 13:18 /etc/passwd   作为普通用户,如果修改自己的口令通过修改/etc/passwd肯定是不可完成的任务,是不是可以通过一个命令来修改呢?答案是肯定的,作为普通用户可以通过passwd 来修改自己的口令,这归功于passwd命令的权限。我们来看一下:   [root@localhost ~]# ls -l /usr/bin/passwd   -r-s--x--x 1 root root 21944 02-12 16:15 /usr/bin/passwd   因为/usr/bin/passwd 文件已经设置了setuid 权限位(也就是r-s--x-

linux:SUID、SGID详解

a 夏天 提交于 2020-02-28 21:43:17
linux:SUID、SGID详解 文章转载至: http://tech.ccidnet.com/art/2583/20071030/1258885_1.html 如果你对SUID、SGID仍有迷惑可以好好参考一下! Copyright by kevintz. 由于用户在UNIX下经常会遇到SUID、SGID的概念,而且SUID和SGID涉及到系统安全,所以用户也比较关心这个问题。关于SUID、SGID的问题也经常有人提问,但回答的人一般答得不够详细,加上曾经回答过两个网友的问题,还查了一些资料,决定整理成本文,以供大家参考。限于本人的水平问题,文章中如果有不当之处,请广大网友指正。 一、UNIX下关于文件权限的表示方法和解析 SUID 是 Set User ID, SGID 是 Set Group ID的意思。 UNIX下可以用ls -l 命令来看到文件的权限。用ls命令所得到的表示法的格式是类似这样的:-rwxr-xr-x 。下面解析一下格式所表示的意思。这种表示方法一共有十位: 9 8 7 6 5 4 3 2 1 0 - r w x r - x r - x 第9位表示文件类型,可以为p、d、l、s、c、b和-: p表示命名管道文件 d表示目录文件 l表示符号连接文件 -表示普通文件 s表示socket文件 c表示字符设备文件 b表示块设备文件 第8-6位、5-3位、2

k8s centos

泪湿孤枕 提交于 2020-02-28 13:30:23
https://www.2cto.com/net/201905/810399.html 问题描述 安装完docker后,执行docker相关命令,出现 ”Got permission denied while trying to connect to the Docker daemon socket at unix: // /var/ run /docker.sock: Get http:/ /%2Fvar%2Frun%2Fdocker.sock/ v1. 26 /images/ json: dial unix /var/ run /docker.sock: connect: permission denied“ 原因 摘自docker mannual上的一段话 Manage Docker as a non-root user The docker daemon binds to a Unix socket instead of a TCP port. By default that Unix socket is owned by the user root and other users can only access it using sudo. The docker daemon always runs as the root user. If you don’t want

C Primer Plus(第五版)1

筅森魡賤 提交于 2020-02-28 03:44:48
这是C Primer Plus(第五版)的第一章,上传上来主要是方便我进行做笔记,写注释,还有我会删掉一些“废话”等。 1.1 C语言的起源 贝尔实验室的 Dennis Ritchie 在1972年开发了C,当时他正在与Ken Thompson 一起设计 UNIX操作系统 。 1.4 计算机工作的基本原理 现代计算机可分为几个部件。中央处理单元(或称CPU)担负着绝大部分的计算工作,随机访问存储器(或称RAM)作为一个工作区来保存程序和文件;永久存储器,一般是硬盘,即使在计算机关机时也能记下程序和文件;还有各种外围设备(如键盘,鼠标和监视器)用来提供人与计算机之间的通信。CPU负责处理程序,所以我们集中来讨论它的功能。 CPU 的工作非常简单,至少在我们所做的这一简短的描述中是这样的。它从内存中获取一个指令并执行该指令,然后从内存中获取下一个指令并执行,。一个千兆 CPU 可以在一秒种内进行大约一亿次这样的操作,所以 CPU 能以惊人的速度来从事其枯燥的工作。CPU 有自己的小工作区,该工作区由若干个寄存器(registers)组成,每个寄存器可以保存一个数。一个寄存器保存下一条指令的内存地址,CPU 使用该信息获取下一条指令。获取一条指令后,CPU 在另一个寄存器中保存该指令并将第一个寄存器的值更新为下一条指令的地址。CPU 只能理解有限的指令(指令集)。还有

linux / unix进程的峰值内存使用情况

↘锁芯ラ 提交于 2020-02-27 21:11:08
是否有一个工具可以运行命令行并报告峰值RAM使用总量? 我在想象类似于/ usr / bin / time的东西 #1楼 Valgrind单线: valgrind --tool=massif --pages-as-heap=yes --massif-out-file=massif.out ./test.sh; grep mem_heap_B massif.out | sed -e 's/mem_heap_B=\\(.*\\)/\\1/' | sort -g | tail -n 1 注意使用--pages-as-heap来测量进程中的所有内存。 更多信息: http : //valgrind.org/docs/manual/ms-manual.html #2楼 如果进程运行至少几秒钟,那么您可以使用以下bash脚本,它将运行给定的命令行,然后打印到stderr峰值RSS(替换 rss 您感兴趣的任何其他属性)。 它有点轻量级,它适用于我使用Ubuntu 9.04中包含的 ps (我不能说 time )。 #!/usr/bin/env bash "$@" & # Run the given command line in the background. pid=$! peak=0 while true; do sleep 1 sample="$(ps -o rss= $pid 2>

Windows等效的Unix tail命令[关闭]

☆樱花仙子☆ 提交于 2020-02-27 05:47:31
我正在寻找相当于Unix'tail'的命令,它允许我在写入时查看日志文件的输出。 #1楼 Windows资源工具包工具 包中提供了 tail 命令和许多其他命令。 #2楼 任何对使用批处理命令的 DOS CMD尾部感兴趣的人(见下文)。 这不是完美的,有时会重复。 用法:tail.bat -d tail.bat -f -f @echo off SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION rem tail.bat -d <lines> <file> rem tail.bat -f <file> rem ****** MAIN ****** IF "%1"=="-d" GOTO displayfile IF "%1"=="-f" GOTO followfile GOTO end rem ************ rem Show Last n lines of file rem ************ :displayfile SET skiplines=%2 SET sourcefile=%3 rem *** Get the current line count of file *** FOR /F "usebackq tokens=3,3 delims= " %%l IN (`find /c /v "" %sourcefile

mysql主从复制读写分离之——proxysql应用

北战南征 提交于 2020-02-26 16:04:24
一、说明 ProxySQL是一个开源的MySQL代理服务器,这意味着它充当MySQL服务器和访问其数据库的应用程序之间的中介。ProxySQL可以通过在多个数据库服务器池之间分配流量来提高性能,并且如果一个或多个数据库服务器发生故障,还可以通过自动故障切换到备用数据库来提高可用性。 系统环境:master1:ubuntu16.04 mysql5.6 192.168.1.10 3307 master2:ubuntu16.04 mysql5.6 192.168.1.20 3307 slave1: ubuntu16.04 mysql5.6 192.168.1.10 3308 slave2: ubuntu16.04 mysql5.6 192.168.1.10 3309 slave3: ubuntu16.04 mysql5.6 192.168.1.20 3308 slave4: ubuntu16.04 mysql5.6 192.168.1.20 3309 【proxysql】:ubuntu16.04 mysql 192.168.1.30 3306 master1与master2为双主双从模式。 主从复制前边文章和网上文章都特别详细。这里不做介绍。请参考https://blog.51cto.com/13120271/2140400。 第一步 - 安装ProxySQL

linux去掉windows下文件中的\r

若如初见. 提交于 2020-02-26 04:57:16
Unix体系里,每行结尾只有“<换行>”,即“\n”; Windows体系里面,每行结尾是“<换行><回 车>”,即“\n\r”。 一个直接结果是,Unix体系下的文件在Windows里打开的话,所有文字会变成一行; 而Windows里的文件在Unix下打开的话,在每行的结尾可能会多出一个^M符号。 方法1: 在命令模式下:输入:%s/^M//g 然后,回车即可替换 注,其中”^M”的输入,分别是“Ctrl+v”、“Ctrl+M”键生成的 方法2: 使用vi打开文本文件 vi dos.txt 命令模式下输入 :set fileformat=unix :w 方法3: 使用sed 工具 sed ’s/^M//’ filename > tmp_filename 方法4: 既然window下的回车符多了‘\r’,那么当然通过删除‘\r’ ,也可以实现: tr -d ‘\r’ 方法5:(最常用的方法) 在终端下敲命令: $ dos2unix filename 直接转换成unix格式,就OK了!~ sed -i 's/\r//' startup.sh window下默认是 \r\n linux下是\n unix下是\r 来源: 51CTO 作者: KingApple 链接: https://blog.51cto.com/14013608/2443455

信息安全系统设计第一周实验报告

纵饮孤独 提交于 2020-02-26 02:53:36
一、学习目标 1. 能够独立安装Linux操作系统 2. 能够熟练使用Linux系统的基本命令 3. 熟练使用Linux中用户管理命令/系统相关命令/文件目录相关命令/打包压缩相关命令/比较合并相关命令/网络相关命令等 二、如何学习Linux 三、Linux终端 1.Terminal(终端) 通常在我们使用 Linux 时,我们并不是直接与系统打交道,而是通过一个叫做 Shell 的中间程序来完成的,在图形界面下为了实现让我们在一个窗口中完成接受用户输入和显示输出,Linux 系统还提供了一个叫做终端模拟器的程序(Terminal),下面几个比较常见的终端模拟器,例如 gnome-terminal,kconsole,xterm,rxvt,kvt,nxterm 和 eterm,目前我们的实验中的终端程序是 xfce 桌面环境自带的 xfce-terminal。不过要注意的是这里所说的终端(Terminal)和控制台(Console)是有区别的。 2.Shell 通常在图形界面中对实际体验带来差异的不是上述的不同发行版的各种终端模拟器,而大都是这个 Shell(壳),有壳就有核,这里的核就是指的 UNIX/Linux 内核 3.命令行操作体验 快捷键:(1)使用Tab键来进行命令补全,当忘记某个命令的全称时可以只输入它的开头的一部分然后按下Tab键就可以得到提示或者帮助完成 (2)

Linux/Unix重要find命令详解

↘锁芯ラ 提交于 2020-02-26 02:26:40
find(查找)主要沿着文件层次(目录)结构依次向下遍历,匹配符合条件的文件,可以附带执行相应的操作选项,默认的操作结果是打印出符合条件的文件与目录。 主要功能如下(所有测试均在当前目录(test)下开始匹配,搜索): 基本用法 列出给定目录(base_path)下所有的文件和子目录: find base_path -print 补充:根据文件名和正则表达式进行搜索,使用选项 -name或-iname(忽略大小写): find base_path -name ‘xxx’ -print find base_path -iname ’xxx‘ -print 否定参数,可以用 !排除所指定到的模式 此处将打印出除txt文本文件外的的所有文件。 基于目录深度的搜索 find 命令 指定遍历完所有的子目录。使用-maxdepth和-mindefth可以限制find 命令 遍历的目录深度,并且find命令默认不搜索符号链接,可以用-L选项改变这种行为。 例如-maxdepth的参数为1时,只匹配当前目录下。 -mindepth的参数代表了开始进行匹配的目录到base_path的最短距离。 基于文件类型搜索 使用-type可以指定搜索的文件类型, linux /unix将所有的的一切都视为文件(文件类型有:普通文件f,目录d,符号链接 l,字符设备c,块设备b,套接字s,FIFO-p),使用