отображать имя, отличное от «реального» URL-имени

В Linux команда ps работает путем чтения файлов в файловой системе proc. Каталог /proc/PID содержит различные файлы, предоставляющие информацию о процессе PID. Содержимое этих файлов генерируется ядром "на лету", когда процесс читает их.

Вы можете найти документацию о записях в /proc в proc(5) man page и в kernel documentation.

Вы можете выяснить это самостоятельно, наблюдая за тем, что делает команда ps с strace, командой, которая перечисляет системные вызовы, сделанные процессом.

% strace -e open ps
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
open("/lib/x86_64-linux-gnu/libprocps.so.3", O_RDONLY|O_CLOEXEC) = 3
open("/lib/x86_64-linux-gnu/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
open("/sys/devices/system/cpu/online", O_RDONLY|O_CLOEXEC) = 3
open("/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3
open("/proc/self/stat", O_RDONLY)       = 3
open("/proc/uptime", O_RDONLY)          = 3
open("/proc/sys/kernel/pid_max", O_RDONLY) = 4
open("/proc/meminfo", O_RDONLY)         = 4
open("/proc/1/stat", O_RDONLY)          = 6
open("/proc/1/status", O_RDONLY)        = 6
open("/proc/2/stat", O_RDONLY)          = 6
open("/proc/2/status", O_RDONLY)        = 6
open("/proc/3/stat", O_RDONLY)          = 6
open("/proc/3/status", O_RDONLY)        = 6
…

% strace -e open ps
…
open("/proc/1/stat", O_RDONLY)          = 6
open("/proc/1/status", O_RDONLY)        = 6
open("/proc/1/cmdline", O_RDONLY)       = 6
…

1
01.05.2019, 11:37
3 ответа

Список каталогов и файлов, которые пользователь(ubuntuв примерах)имеет разрешения на чтение с по:

find -exec sudo -u ubuntu test -r '{}' \; -print

Список каталогов и файлов, для которых пользователь имеет права на запись в:

find -exec sudo -u ubuntu test -w '{}' \; -print

Список каталогов и файлов, для которых пользователь имеет разрешения на выполнение с по:

find -exec sudo -u ubuntu test -x '{}' \; -print

Список каталогов и файлов, для которых пользователь имеет права на чтение, запись и выполнение с по:

find -exec sudo -u ubuntu test -rwx '{}' \; -print
2
27.01.2020, 23:41

Вы можете сделать это, направив вывод команды ls в команду grep. поэтому, если вы хотите просматривать только каталоги или файлы, для которых у вас есть разрешение на чтение, вы можете использовать эту команду

ls -l | grep [d,-]r--

если вы хотите просмотреть каталоги или файлы, для которых у вас есть права на чтение, запись и выполнение, вы можете использовать эту команду

ls -l | grep [d,-]rwx

если вы хотите просмотреть каталоги или файлы, которые вы прочитали, и, возможно, другие разрешения, вы можете использовать эту команду

ls -l | grep [d,-]r*
0
27.01.2020, 23:41

Я нашел способ!

find -maxdepth 1 \( -type d -or -type f \) \( \( -user johnsmith1 -perm /u=r \) -o \( -group johnsmith1 -perm /g=r \) -o -perm /o=r \) -ls 
1
27.01.2020, 23:41

Теги

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