每天学五分钟 Liunx 0111 | 服务篇:进程权限
程序存储在硬盘中,需要执行的时候被加载到内存里,内存中的程序以进程的方式运行,进程会根据程序的内容去做读写文件,执行指令等操作。
进程权限
[root@lianhua lib]$ cat /proc/37220/status | egrep "Uid|Gid"
Uid: 1004 1004 1004 1004
Gid: 1007 1007 1007 1007
[robot@lianhua ~]$ ll /bin/passwd
-rwsr-xr-x. 1 root root 27832 Jan 30 2014 /bin/passwd
[robot@lianhua ~]$ passwd
Changing password for user robot.
Changing password for robot.
(current) UNIX password: [root@lianhua ~]$ ps -lA | grep passwd
4 S 0 38063 37943 0 80 0 - 47201 wait_w pts/15 00:00:00 passwd
[root@lianhua ~]$ cat /proc/38063/status | egrep "Uid|Gid"
Uid: 1004 0 0 0
Gid: 1007 1007 1007 1007
程序实现
[root@lianhua lib]$ cat copy.sh
#!/bin/bash sleep 10 cp /home_local/robot/systemd/tmp.log /home_local/robot/systemd/lib/
chown test /home_local/robot/systemd/lib/tmp.log
rm -rf /home_local/robot/systemd/lib/tmp.log sleep 10
[root@lianhua lib]$ systemctl cat copy.service
# /usr/lib/systemd/system/copy.service
[Unit]
Description=a test copy demo for process conflict handle
Documentation=man:systemd.unit(8) [Service]
Type=simple
ExecStart=/bin/bash /home_local/robot/systemd/lib/copy.sh
Restart=on-failure # /usr/lib/systemd/system/copy.service.d/app.conf
[Service]
User=
User=robot
[root@lianhua ~]$ systemctl status copy.service
● copy.service - a test copy demo for process conflict handle
Loaded: loaded (/usr/lib/systemd/system/copy.service; static; vendor preset: disabled)
Drop-In: /usr/lib/systemd/system/copy.service.d
└─app.conf
Active: activating (start) since Sun 2020-05-10 16:24:40 CST; 7s ago
Docs: man:systemd.unit(8)
Control: 40081 (bash)
Memory: 432.0K
CGroup: /system.slice/copy.service
├─40081 /bin/bash /home_local/robot/systemd/lib/copy.sh
└─40083 sleep 10
May 10 16:33:52 lianhua systemd[1]: Starting a test copy demo for process conflict handle...
May 10 16:34:02 lianhua bash[40767]: chown: changing ownership of ‘/home_local/robot/systemd/lib/tmp.log’: Opera…ermitted [root@lianhua ~]$ cat /proc/40081/status| egrep "Uid|Gid"
Uid: 1004 1004 1004 1004
Gid: 1007 1007 1007 1007
[root@lianhua ~]$ ps -lAf | grep copy.service
4 S root 40075 32280 0 80 0 - 33707 poll_s 16:24 pts/15 00:00:00 systemctl restart copy.service
0 S root 40130 32507 0 80 0 - 28179 pipe_w 16:25 pts/16 00:00:00 grep --color=auto copy.service
[root@lianhua ~]$ ps -lAf | grep 40081
4 S robot 40081 1 0 80 0 - 28296 do_wai 16:24 ? 00:00:00 /bin/bash /home_local/robot/systemd/lib/copy.sh
0 S robot 40098 40081 0 80 0 - 26990 hrtime 16:24 ? 00:00:00 sleep 10 [root@lianhua lib]$ ll
total 4
-rw-r--r-- 1 root root 197 May 10 16:24 copy.sh
-rw-r--r-- 1 robot robot 0 May 10 16:26 tmp.log
[root@lianhua lib]$ cd ..
[root@lianhua systemd]$ ll
total 0
drwxrwxrwx 2 root root 6 May 7 11:17 bin
drwxrwxrwx 2 root root 36 May 10 16:24 lib
-rw-r--r-- 1 root root 0 May 7 11:17 tmp.log
SUID and SGID
- SUID 仅对二进程程序有效;
- 执行者对于该程序需要有 x 的可执行权限;
- 执行者将执行程序时将取得该程序所有者的权限;
- 执行者取得该程序的权限仅在运行过程 (run-time) 中有效;
[root@lianhua ~]$ which chown
/usr/bin/chown
[root@lianhua ~]$ ll /usr/bin/chown
-rwxr-xr-x. 1 root root 62904 Dec 4 2017 /usr/bin/chown
[root@lianhua ~]$ chmod 4755 /usr/bin/chown
[root@lianhua ~]$ ll /usr/bin/chown
-rwsr-xr-x. 1 root root 62904 Dec 4 2017 /usr/bin/chown
[root@lianhua ~]$ su - robot
[robot@lianhua ~]$ ll /home_local/robot/systemd/lib/tmp.log
-rw-r--r-- 1 robot robot 0 May 10 17:14 /home_local/robot/systemd/lib/tmp.log
[robot@lianhua ~]$ chown test /home_local/robot/systemd/lib/tmp.log
[robot@lianhua ~]$ ll /home_local/robot/systemd/lib/tmp.log
-rw-r--r-- 1 test robot 0 May 10 17:14 /home_local/robot/systemd/lib/tmp.log [root@lianhua lib]$ systemctl status copy.service
● copy.service - a test copy demo for process conflict handle
Loaded: loaded (/usr/lib/systemd/system/copy.service; static; vendor preset: disabled)
Drop-In: /usr/lib/systemd/system/copy.service.d
└─app.conf
Active: inactive (dead)
Docs: man:systemd.unit(8) May 10 17:31:03 lianhua systemd[1]: Starting a test copy demo for process conflict handle...
May 10 17:31:23 lianhua systemd[1]: Started a test copy demo for process conflict handle.
每天学五分钟 Liunx 0111 | 服务篇:进程权限的更多相关文章
- 五分钟学Java:如何才能学好Java Web里这么多的技术
原创声明 本文作者:黄小斜 转载请务必在文章开头注明出处和作者. 系列文章介绍 本文是<五分钟学Java>系列文章的一篇 本系列文章主要围绕Java程序员必须掌握的核心技能,结合我个人三年 ...
- 如何从40亿整数中找到不存在的一个 webservice Asp.Net Core 轻松学-10分钟使用EFCore连接MSSQL数据库 WPF实战案例-打印 RabbitMQ与.net core(五) topic类型 与 headers类型 的Exchange
如何从40亿整数中找到不存在的一个 前言 给定一个最多包含40亿个随机排列的32位的顺序整数的顺序文件,找出一个不在文件中的32位整数.(在文件中至少确实一个这样的数-为什么?).在具有足够内存的情况 ...
- 零元学Expression Blend 4 - Chapter 42 五分钟快速完成扇形变圆形动画
原文:零元学Expression Blend 4 - Chapter 42 五分钟快速完成扇形变圆形动画 零元学Expression Blend 4 - Chapter 42 五分钟快速完成扇形变圆形 ...
- 五分钟给你的 gRPC服务 加上 HTTP 接口
gRPC 服务要加 HTTP 接口? go-zero 给大家带来极简的 RESTful 和 gRPC 服务开发体验的同时,社区又给我们提出了新的期望: 我想只写一次代码 既要 gRPC 接口 也要 H ...
- [分享] 史上最简单的封装教程,五分钟学会封装系统(以封装Windows 7为例)
[分享] 史上最简单的封装教程,五分钟学会封装系统(以封装Windows 7为例) 踏雁寻花 发表于 2015-8-23 23:31:28 https://www.itsk.com/thread-35 ...
- (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境
. . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...
- 《sed的流艺术之一》-linux命令五分钟系列之二十一
本原创文章属于<Linux大棚>博客,博客地址为http://roclinux.cn.文章作者为rocrocket. 为了防止某些网站的恶性转载,特在每篇文章前加入此信息,还望读者体谅. ...
- GC算法精解(五分钟让你彻底明白标记/清除算法)
GC算法精解(五分钟让你彻底明白标记/清除算法) 相信不少猿友看到标题就认为LZ是标题党了,不过既然您已经被LZ忽悠进来了,那就好好的享受一顿算法大餐吧.不过LZ丑话说前面哦,这篇文章应该能让各位彻底 ...
- zookeeper-架构设计与角色分工-《每日五分钟搞定大数据》
本篇文章阅读时间5分钟左右 点击看<每日五分钟搞定大数据>完整思维导图 zookeeper作为一个分布式协调系统,很多组件都会依赖它,那么此时它的可用性就非常重要了,那么保证可用性的同 ...
- zookeeper核心-zab协议-《每日五分钟搞定大数据》
上篇文章<paxos与一致性>说到zab是在paxos的基础上做了重要的改造,解决了一系列的问题,这一篇我们就来说下这个zab. zab协议的全称是ZooKeeper Atomic Bro ...
随机推荐
- Oracle-Rman备份全解析
RMAN备份数据库物理文件到备份集(backupset)中.在创建备份集时,仅备份已经使用的数据库(不备份空闲的数据块),而且还可以采用压缩功能. RMAN恢复时指当数据库出现介质失败时,使用RMAN ...
- Selenium-ActionChains动作链(针对鼠标、滚轮等操作
https://www.selenium.dev/documentation/webdriver/actions_api/ 注意:对于滚轮的操作,只支持chrome浏览器,且selenium版本在4. ...
- python tkinter 使用(六)
python tkinter 使用(六) 本文主要讲述tkinter中进度条的使用. 1:确定的进度条 progressbar = tkinter.ttk.Progressbar(root, mode ...
- 为什么要重写equals()?
为什么要重写equals()? Equals和 == 的区别: ==:是个运算符, 判断是否相等,基本数据类型进行判断 也可判断两个对象相等,比较两个对象的哈希码值 Equals:是个Object类的 ...
- MS17-010(永恒之蓝)漏洞分析与复现
一.漏洞简介1.永恒之蓝介绍:永恒之蓝漏洞(MS17-010),它的爆发源于 WannaCry 勒索病毒的诞生,该病毒是不法分子利用NSA(National Security Agency,美国国家安 ...
- IDEA将JavaFx打包为exe Win+Mac+Linux多平台分发等等
IDEA将JavaFx打包为exe Win+Mac+Linux多平台分发等等 前面介绍到了用packr打包javafx17为exe多平台分发,比较复杂,这篇则介绍用idea直接打包exe,比较简单,但 ...
- Azure Data Factory(十一)Data Flow 的使用解析
一,引言 上一篇文字,我们初步对 Data Flow 有个简单的了解,也就是说可以使用 Data Flow 完成一些复杂的逻辑,如,数据计算,数据筛选,数据清洗,数据整合等操作,那我们今天就结合 Da ...
- DevOps常用工具全家桶,实现高效运维和交付
DevOps常用工具全家桶,实现高效运维和交付 1.DevOps发展 DevOps发展背景: 随着互联网技术的快速发展,软件开发和运维的挑战也日益增加.传统的软件开发和运维模式往往存在分离.效率低下. ...
- C#数据结构与算法系列(十七):时间复杂度(下)
1.常见的时间复杂度 常数阶:O(1) 对数阶:O(log2n) 线性阶:O(n) 线性对数阶:O(nlog2n) 平方阶:O(n^2) 立方阶:O(n^3) k次方阶:O(2^n) 常见的算法时间复 ...
- 华为云GaussDB圈层活动走进香港,以技术创新构筑金融政企数智发展基石
摘要:近日,华为云GaussDB圈层活动在中国·香港如期举办,活动聚集了22家香港金融政企客户和合作伙伴. 本文分享自华为云社区<华为云GaussDB圈层活动走进香港,赋能金融政企数字化转型&g ...