小编ari*_*rif的帖子

SELinux 和 Apparmor 的核心区别

什么是核心[或内核级]的差异SELinuxApparmor

selinux apparmor lsm

13
推荐指数
1
解决办法
2万
查看次数

文件系统 ACL 中“掩码”的确切用途是什么?

当我在目录中应用默认 ACL 时,我看到default:mask或仅mask在以下两种情况下。

场景一

-bash-4.2$ ls -ld test/
 drwxr-x---. 2 test test 4096 Oct 15 19:12 test/

-bash-4.2$ setfacl -d -m u:arif:rwx test/

-bash-4.2$ getfacl --omit-header test
 user::rwx
 group::r-x
 other::---
 default:user::rwx
 default:user:arif:rwx
 default:group::r-x
 default:mask::rwx
 default:other::---
Run Code Online (Sandbox Code Playgroud)

场景二

-bash-4.2$ ls -dl dir/
 drwxr-x---. 2 test test 4096 Oct 15 18:17 dir/

-bash-4.2$ getfacl dir
 # file: dir
 # owner: test
 # group: test
 user::rwx
 group::r-x
 other::---

-bash-4.2$ setfacl -m user:arif:rwx dir

-bash-4.2$ getfacl --omit-header dir
 user::rwx
 user:arif:rwx
 group::r-x …
Run Code Online (Sandbox Code Playgroud)

linux acl permissions umask

6
推荐指数
1
解决办法
3633
查看次数

每个进程的磁盘 I/O

我想检查哪个进程占用最高的 I/O。确切地说,我想检查哪个进程执行最高的写入操作以及多少。

我知道有一些工具,例如iotop. 但由于我必须在没有 sudo 和权限非常有限的外部环境的情况下工作,我想知道如何使用ps. 我想要类似下面的东西来查找 CPU/内存使用情况,

$ps -eo pid,command,%cpu,%mem --sort=-%cpu
Run Code Online (Sandbox Code Playgroud)

更新:在尝试了几种方法后,我发现由于缺乏权限而无法读取/proc/[pid]/io文件,因此我想如果没有适当的权限就无法获取 I/O。

 $cd /proc/; for i in $(ls | egrep -o ^\[0-9\]*); do cat $i/io; done
 cat: 1/io: Permission denied
 cat: 10/io: Permission denied
 cat: 10284/io: Permission denied
 cat: 11/io: Permission denied
 cat: 1174/io: Permission denied
 cat: 12/io: Permission denied
 ........
Run Code Online (Sandbox Code Playgroud)

process monitoring io

5
推荐指数
1
解决办法
2万
查看次数

如何在 `ps` 命令中使用 `--lines` `--row` 修饰符

我经常使用以下命令,

ps -eo pid,cmd,pcpu,pmem --sort=-pcpu | head
Run Code Online (Sandbox Code Playgroud)

但是在man页面中我看到了以下输出修饰符,

   --lines n
          Set screen height.
   --rows n
          Set screen height.
Run Code Online (Sandbox Code Playgroud)

好像这些修饰符可以限制行高,那么我就不必使用任何类型的管道,这让我在使用 python 子进程编写脚本时感到有点舒服。

但我不知道如何使用它们。因为我已经尝试在命令的末尾添加它们。

ps

4
推荐指数
1
解决办法
298
查看次数

为什么在服务的单元文件中使用分叉?

我的 nginx 单元文件如下,

[root@arif ~]# cat /usr/lib/systemd/system/nginx.service
[Unit]
Description=The nginx HTTP and reverse proxy server
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/run/nginx.pid
# Nginx will fail to start if /run/nginx.pid already exists but has the wrong
# SELinux context. This might happen when running `nginx -t` from the cmdline.
# https://bugzilla.redhat.com/show_bug.cgi?id=1268621
ExecStartPre=/usr/bin/rm -f /run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t
ExecStart=/usr/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
KillSignal=SIGQUIT
TimeoutStopSec=5
KillMode=process
PrivateTmp=true

[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)

在这里,在该[Service]部分中,的值Type等于forking这意味着从这里开始

以 ExecStart 启动的进程会生成一个子进程,该子进程成为服务的主进程。启动完成后,父进程退出。

我的问题是,

  • 为什么服务会这样做? …

linux fork systemd

4
推荐指数
1
解决办法
2191
查看次数

标签 统计

linux ×2

acl ×1

apparmor ×1

fork ×1

io ×1

lsm ×1

monitoring ×1

permissions ×1

process ×1

ps ×1

selinux ×1

systemd ×1

umask ×1