Нет, это не обязательно переносимо. Любая локальная установка может свободно изменять любую пару UID/имя (хотя обычно это не рекомендуется).
Для переносимости всегда следует использовать функции операционной системы для преобразования в числовые/символьные идентификаторы пользователей и групп (uid
и gid
).
Если вам важен числовой идентификатор пользователя (uid
) 2, то используйте команды и системные вызовы, которые принимают и возвращают числовой идентификатор группы. Используйте команду getent
или аналогичную для преобразования числового идентификатора в символьный, если это необходимо.
Если вам важен пользователь daemon
, используйте символическую строку daemon
при выполнении пользовательских операций или получите uid
для пользователя с именем daemon
(опять же, например, из getent
), прежде чем передать uid
команде или функции.
Многие команды, такие как ls
и find
, содержат опции для работы как с символическими именами групп, так и с числовыми идентификаторами групп. Другие команды, такие как getent
, могут использоваться для преобразования в/из
Отключение приостановки при закрытии крышки хорошо освещено на этом сайте, а также на других сайтах SE. Вот список вопросов и ответов по этой конкретной части вашего вопроса:
При настройке действия при открытии крышки, опять же, это рассматривается в нескольких вопросах:
Подход, с которого я начал, использует события APCI вашего оборудования. При таком конкретном подходе вы создадите скрипт, который будет запускаться при открытии события :
./etc/acpi/lid.sh
Затем вам нужно создать файл со следующим содержимым:
$ cat /etc/acpi/events/lm_lid
event=button/lid.*
action=/etc/acpi/lid.sh
Затем перезапустите службу ACPI примерно так:
$ service acpid restart
Существует множество версий скриптов, которые можно использовать для выполнения этой операции. Здесь есть один такой скрипт .
Суть этого скрипта примерно такая:
#!/bin/bash
grep -q close /proc/acpi/button/lid/*/state
if [ $? = 0 ]; then
echo close>>/tmp/screen.lid
fi
grep -q open /proc/acpi/button/lid/*/state
if [ $? = 0 ]; then
echo open>>/tmp/screen.lid
fi
В этом скрипте вам просто нужно переключить устройство LID или LID0 в /proc/acpi/wakeup
. Это переключает устройство LID :
$ echo "LID" > /proc/acpi/wakeup
Таким образом, в приведенном выше скрипте вы должны проверить /proc/acpi/wakeup
, чтобы увидеть, включен он или отключен. Если он отключен, то сделайте вышеописанное echo "LID"...
, иначе ничего не делайте.