Разрешение представления / владелец полного дерева каталогов

Дочерний процесс наследовался что nice значение сохранено родителем в то время, когда это разветвлено (в Вашем примере, 5).

Однако, если nice значение изменений родительского процесса после разветвления дочерних процессов, дочерние процессы не наследовали новое nice значение.

Можно легко наблюдать это с контрольным инструментом top. Если nice поле (NI) не показывают по умолчанию, можно добавить его путем нажатия f и выбор I. Это добавит NI столбец к top дисплей.

* I: NI = Nice value

 PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
1937 root      20   0  206m  66m  45m S  6.2  1.7  11:03.67 X                                         

Хорошая информация от man 2 fork

ветвление () создает новый процесс путем дублирования обработки вызовов. Новый процесс, называемый ребенком, является точным дубликатом обработки вызовов, называемой родителем, за исключением следующих моментов:

  • У ребенка есть его собственный уникальный идентификатор процесса, и этот PID не соответствует идентификатору никакой существующей группы процесса (setpgid (2)).
  • Идентификатор родительского процесса ребенка совпадает с идентификатором процесса родителя.
  • Ребенок не наследовал блокировки памяти его родителя (mlock (2), mlockall (2)).
  • Использования ресурса процесса (getrusage (2)) и счетчики процессорного времени (времена (2)) обнулены в ребенке.
  • Множество ребенка незаконченных сигналов первоначально пусто (sigpending (2)).
  • Ребенок не наследовал семафорные корректировки от его родителя (semop (2)).
  • Ребенок не наследовал рекордные блокировки от его родителя (fcntl (2)).
  • Ребенок не наследовал таймеры от его родителя (setitimer (2), предупреждение (2), timer_create (2)).
  • Ребенок не наследовал выдающиеся асинхронные операции ввода-вывода от его родителя (aio_read (3), aio_write (3)), и при этом он не наследовал асинхронных контекстов ввода-вывода от своего родителя (см. io_setup (2)).
27
09.07.2013, 23:37
5 ответов

Команда, возможно, была:

namei -m /home/user/dir/child/file
31
27.01.2020, 19:39
  • 1
    namei -mo является большим, что это также дает Вам владельца. –  earthmeLon 16.06.2015, 08:17
  • 2
    ОСТЕРЕГАЙТЕСЬ: namei не покажет Linux или MAC ACL SELinux. Я выяснил, что ACL блокировал nginx путем ручного сверения sudo su nginx -s/bin/bash –  Ray Foss 29.09.2016, 03:36

Я думаю, что Вы могли бы думать tree команда. Например:

$ tree -pufid apps/glassfish3/ | less
apps/glassfish3
[drwxr-xr-x saml    ]  apps/glassfish3/bin
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/bin
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/config
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/docs
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/docs/api
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/docs/api/doc-files
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/docs/api/javax
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/docs/api/javax/annotation
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/docs/api/javax/annotation/security
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/docs/api/javax/annotation/sql
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/docs/api/javax/decorator
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/docs/api/javax/ejb
[drwxr-xr-x saml    ]  apps/glassfish3/glassfish/docs/api/javax/ejb/embeddable
...
...

Вышеупомянутые переключатели делают следующее:

  • -p - полномочия
  • -u - имя пользователя/идентификатор пользователя
  • -f - полный путь
  • -i - не печатайте строки добавления отступа
  • -d - каталоги печати только

Ссылки

29
27.01.2020, 19:39
  • 1
    я думаю, что попросили отобразить предков /home/user/dir/child/file не дети. –  Raphael Ahrens 10.07.2013, 08:12
  • 2
    @RaphaelAhrens - да я понимаю, что, но нет команды, о которой я знаю, который делает точно, что, существует однако древовидная команда, которая делает то, что я показал, и это подозрительно подобно тому, о чем думал OP. –  slm♦ 10.07.2013, 09:18
  • 3
    -u действительно необходимый? Кажется, что это - значение по умолчанию здесь (Дерево ver. 1.6.0 под GNU колотят 4.2.45). Существует ли опция заставить "имя пользователя/идентификатор пользователя" замолчать? –  Nikos Alexandris 14.12.2013, 01:42
  • 4
    @NikosAlexandris - если я отбрасываю тот переключатель, я не получаю имя пользователя. Мой ver: дерево v1.6.0. Я нахожусь на Fedora 19, ударе GNU, версии 4.2.45 (1) - выпуск (x86_64-redhat-linux-gnu). –  slm♦ 14.12.2013, 02:17
  • 5
    Различные "значения по умолчанию" между версиями удара? Спасибо за информирование. –  Nikos Alexandris 16.12.2013, 12:56

После предоставления его некоторые думали, что я придумал это

#!/bin/sh
l_path=$1
while [ "$l_path" != / -a "$l_path" != . ]; do
     ls -ld $l_path
     l_path=$(dirname -- "$l_path")
done

Вывод похож на это

-rw------- 1 tant tant 181016423 Jun 25 23:49:17 2013 /home/tant/test_file
drwxr-xr-x 85 tant tant 5632 Jul  9 19:40:11 2013 /home/tant
lrwxr-xr-x 1 root wheel 8 Sep  4 23:53:27 2012 /home -> usr/home

Я надеюсь, что все в порядке, который это в обратном порядке.

На основе комментариев вот способ перечислить от корня вниз:

#!/bin/sh
l_path=$1
while [ "$l_path" != / -a "$l_path" != . ]; do
     ls -ld $l_path
     l_path=$(dirname -- "$l_path")
done | sed '1!G;h;$!d'
3
27.01.2020, 19:39
  • 1
    Можно инвертировать с | tac если у Вас есть он, или | sed '1!G;h;$!d' если нет. –  mrb 09.07.2013, 20:44
  • 2
    Это повредится для относительных путей. Сделать [ "$l_path" != / -a "$l_path" != . ] вместо этого. –   09.07.2013, 20:52
  • 3
    @Evan Teitelman dirname должен давать полный путь –  Raphael Ahrens 09.07.2013, 20:57
  • 4
    @RaphaelAhrens не, он возвратит точку для относительного пути в конце. –  rush 09.07.2013, 20:58
  • 5
    Кроме того, stat -l должен, вероятно, быть stat или ls -ld. –   09.07.2013, 20:59

Команда Вы ищете список полномочий и владельцев/групп, является ls-l.

- l опция используется для длинного формата списка.

ls-l/path/to/list

Кроме того, если Вы хотите перечислить, и скрытые файлы затем добавляют-a (вся) опция.

ls - al/path/to/list

Кроме того, если Вы хотите перечислить полномочия в своем-R использования подкаталогов (рекурсивная) опция.

ls-Rl/path/to/list

Первые отображения столбца полномочия (читает (r), запишите (w), выполнитесь (x)) и некоторые специальные полномочия (каталоги (d), - (регулярный файл)), и 3-й и 4-й столбец показывает Вам владельца файла/каталога и группу соответственно.

-1
27.01.2020, 19:39
  • 1
    я не думаю, что это - то, относительно чего просят. Похож на автора вопроса, ищет список полномочий каталогов, которые приводят к файлу. –  Mat 09.07.2013, 20:13

В каталоге которого вы хотите узнать разрешения и владельцев предка:

for i in $(seq 0 $(pwd | tr -cd / | wc -c)) ; do pwd ; ls -lad ; cd.. ; done

Обратите внимание, что после этого вы окажетесь в /:), если вы хотите вернуться туда, где вы были, оберните команду внутри

HERE=$(pwd)
...
cd ${HERE}
0
27.01.2020, 19:39

Теги

Похожие вопросы