Я думаю rsync
не обрабатывает копирование редкого файла простым способом. cp
дескрипторами по умолчанию это очень хорошо.
На urxvt
вы должны ввести
chown root.utmp /usr/bin/urxvt
chmod g+s /usr/bin/urxvt
, и он начнет работать.
Я не понимаю, почему, просто скопировал (и протестировал) из http://permalink.gmane.org/gmane.comp.terminal-emulators.rxvt-unicode.general/1484 .
Перечисленные терминалы намекают на то, что такое поведение наблюдается в Linux: Подсказки находятся на странице руководства для wall
(Solaris, например, отличается):
wall
отображает сообщение, или содержимое файла, или иначе его стандартный ввод, на терминалы всех зарегистрированных в данный момент пользователей.Некоторые сессии, такие как
wdm
, имеющие в начале данных utmp(5)ut_type
символ ':', не получат сообщение отwall
. Это сделано для того, чтобы избежать ошибок записи.
То есть, wall
использует данные utmp, ищет используемые терминалы (т.е. вошедших в систему пользователей) и записывает на соответствующее device. Каждая строка в выводе w
показывает (возможный) терминал, записанный терминалом в utmp-файл. Например, я подключен к серверу по ssh'd и запускаю screen, в то же время я вошел в консоль. Для полноты картины я запустил xterm, используя опцию -ls
(login-shell). Вот вывод w
:
$ w
19:53:15 up 4:08, 5 users, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
tom tty2 19:48 5:11 0.04s 0.02s -tcsh
tom pts/0 michener:S.0 15:51 13:18 0.35s 0.24s ssh -X thomas@b
tom pts/2 michener:S.1 16:34 2.00s 0.14s 0.00s sh -c w
tom pts/4 michener:S.3 15:52 3:59m 0.12s 0.00s /bin/sh /users/
tom pts/3 localhost:10.0 19:53 7.00s 0.03s 0.03s -tcsh
и выполнение wall
пишет на каждое из этих TTY
устройств.
Однако, если терминал не записывает в файл utmp, он не будет указан в списке - и wall
проигнорирует его.
Итак, некоторые программы могут иметь скомпилированную функцию, но не иметь привилегий для ее изменения. Поэтому некоторые программы запускаются с setgid
для группы "utmp". Другие программы (такие как xterm - или gnome-terminal) могут использовать внешнюю программу, которая обновляет utmp от их имени.
В gnome-terminal эта функция была упразднена из-за того, что разработчики gnome считают, что (а) пользователи работают на локальной машине, где gdm
обрабатывает вход в систему, и (б) поэтому нет различий между оболочками для входа в систему и оболочками без входа в систему. Это приводит к появлению некоторых интересных сообщений об ошибках: