Как я могу `usermod` старых пользователей с новыми файлами `/etc/skel`?

Я хотел сделать то же самое, и после некоторых поисков и экспериментов, наконец, это заработало.

Решение 1

(См. решение 2 ниже, которое потенциально лучше)

Шаг 1 (сопоставление caps _lock + hjkl):Следуйте этому ответу и добавьте файл config.Вы должны добавить в файл «us», если вы используете раскладку клавиатуры для США, и пропустить другие сочетания клавиш, которые вам не интересны. Затем запустите setxkbmap -layout us.

Шаг 2 (колпачки _запираются как выход):Прогон xcape -e 'ISO_Level3_Shift=Escape'. Вы можете добавить эту строку в свой /etc/profile, чтобы вам не приходилось запускать ее вручную после перезагрузки.

============================================== ====

Решение 2 (возможно лучше)

Я был доволен решением 1, пока не понял, что не могу использовать привязки клавиш в IntelliJ, что является большим обломком. В конце концов я понял, что могу просто использовать xmodmap и xcape для выполнения этой работы, но при этом иметь возможность использовать их в IntelliJ!

Шаг 1 (сопоставление заглавных букв _lock + hjkl):Создайте файл (скажем «~/.xmodmap» )со следующим содержимым:

keycode 66 = Mode_switch
keysym h = h H Left
keysym l = l L Right
keysym k = k K Up
keysym j = j J Down
keysym u = u U Prior
keysym i = i I Home
keysym o = o O End
keysym p = p P Next

Можете пропустить последние 4 строки. Я вставил их, потому что они могут быть полезны и вам. На самом деле, я очень надеюсь, что caps _улучшение блокировки будет работать в Linux.

Затем запустите xmodmap ~/.xmodmap.

Шаг 2 (колпачки _запираются как выход):Прогон xcape -e 'Mode_switch=Escape'.

Шаг 3 (необязательный):Чтобы не применять сочетания клавиш вручную, поместите 2 приведенные выше команды в свой /etc/profile.

1
09.01.2020, 19:11
2 ответа

Вы можете обновить файлы /etc/skelв каталогах пользователей с помощью скрипта, подобного этому.

#!/bin/bash
#
getent passwd |
    while IFS=: read username x uid gid gecos home shell
    do
        [[ "$username" == root || ! -d "$home" ]] && continue
        tar -cf - -C /etc/skel. | sudo -Hu "$username" tar --skip-old-files -xf -
    done

Примечания

  • Намеренно он не будет обновлять уже существующие файлы, но не может идентифицировать файлы, которые пользователь удалил, и которые вы хотите вернуть обратно, чтобы они были воссозданы:
  • Файлы rootвообще не будут обновляться
2
28.04.2021, 23:26

Для тех, кто найдет этот вопрос и использует FreeBSD, команда

pw usermod user -m

сделает именно это. Обратите внимание, что вы также можете использовать -k dirдля выбора другого каталога скелета как часть этой команды.

1
28.04.2021, 23:26

Теги

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