每天学五分钟 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 ...
随机推荐
- 一招MAX降低10倍,现在它是我的了
一.背景 性能优化是一场永无止境的旅程. 到家门店系统,作为到家核心基础服务之一,门店C端接口有着调用量高,性能要求高的特点. C端服务经过演进,核心接口先查询本地缓存,如果本地缓存没有命中,再查询R ...
- 【UniApp】-uni-app-项目计算功能(苹果计算器)
前言 本文主要介绍苹果计算器项目中计算功能的实现 在前面的文章中已经实现了输入,动态计算字体大小,以及计算器的布局 本文主要介绍计算功能的实现 正文 实现/清空/改变正负/除以100 inputTex ...
- 面试官:说一下MySQL主从复制的原理?
MySQL 主从复制(Master-Slave Replication)是一种数据复制技术,用于在多个数据库服务器之间的数据同步.在主从复制架构中,一个服务器被设置为主服务器(Master),充当数据 ...
- Python——第五章:hashlib模块
hashlib 模块(hash)算法 hashlib 模块是 Python 中用于加密散列(hash)算法的模块.它提供了对常见的哈希算法(如MD5.SHA-1.SHA-256等)的支持,使得开发者可 ...
- Python——第五章:模块(Module)、自定义模块、第3方开源模块、包(Package)
什么是模块(Module)? 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多代码按功能分组,分别放到不同的文件里,这 ...
- JavaFx之触发激发鼠标事件(二十三)
JavaFx之触发激发鼠标事件(二十三) 有时候,我们不能直接触发/激发某个按钮的点击事件,因为发起方可能是子线程.使用屏幕点击又不优雅,javafx已经提供了事件的激发,即使在子线程中也能激发某个按 ...
- just_audio音频播放器
代码 import 'package:flutter/material.dart'; import 'package:just_audio/just_audio.dart'; void main() ...
- API安全技术
自己在日常工作中会涉及到些安全的概念,但是没有成体系,因此最近研读了<API安全技术与实战>一书,在此做些文章记录. API安全是从安全的角度关注API领域的安全问题和这些问题的解决方案, ...
- Java 创建/编辑/删除Excel迷你图表
迷你图是Excel工作表单元格中表示数据的微型图表.使用迷你图可以非常直观的显示数据变化趋势,突出最大值.最小值,放在数据表格中可起到很好的数据分析效果.本文将通过Java代码示例介绍如何在Excel ...
- Open Harmony移植:build lite编译构建过程
摘要:本文介绍了build lite 轻量级编译构建系统编译构建过程,调用依赖关系等等. 本文分享自华为云社区<移植案例与原理 - build lite编译构建过程>,作者: zhushy ...