Я импортировал данные из резервной копии со старой версией gpg. Так как старый компьютер был недоступен, только резервная копия, я не мог сначала экспортировать ее. Это то, что сработало для меня.
gpg --import old_home_dir/.gnupg/pubring.gpg
gpg --import old_home_dir/.gnupg/secring.gpg
Если вы хотите иметь возможность импортировать секретные ключи без немедленного ввода парольной фразы, используйте опцию --batch
.
Для проверки открытых ключей:
gpg --list-keys
Для проверки секретных ключей:
gpg --list-secret-keys
Когда вы используете sudo
, вы запускаете новую оболочку от имени пользователя, которому вы сказали sudo
переключиться на (root, по умолчанию ). Это установит переменную SUDO_USER
в имя пользователя этого пользователя :
$ cat foo.sh
#!/bin/bash
echo "SUDO_USER: $SUDO_USER"
Если я запущу этот скрипт от своего имени, я ничего не получу, так как переменная не установлена :
$ foo.sh
SUDO_USER:
Но если я запускаю его с sudo
, переменная устанавливается:
$ sudo foo.sh
SUDO_USER: terdon
Имея это в виду, вы можете просто запускать определенные команды, которые вы хотите запускать как обычный пользователь, используя имя пользователя, запускающего скрипт. Итак, измените ваши wget
и chmod
и любые другие команды, которые вы хотите запускать от имени обычного пользователя в сценарии, и заставьте их запускаться с sudo -u $SUDO_USER
, чтобы они выполнялись от имени обычного пользователя, а не от root :
apt install python2.7 python-pip ## will run as root
sudo -u $SUDO_USER mkdir foo ## will run as $SUDO_USER
Использование переменной SUDO_USER
гарантирует, что все созданные вами каталоги и файлы будут принадлежать пользователю, запустившему скрипт, и вам не нужно явно указывать в скрипте имя этого пользователя при каждом его запуске.
Чтобы сделать каталоги, созданные mkdir, доступными для всех пользователей, вам необходимо изменить разрешение на чтение/запись WORLD с помощью команды chmod.
В сценарии после выполнения mkdir
используйте приведенную ниже команду:
chmod -R 755 «directory-name»
(Доступно для чтения всем, запись доступна только пользователю root)
или
chmod -R 777 «directory-name»
(Доступно для чтения и записи для всех пользователей системы)
Для wget
используйте команду chmod
после загрузки.
ИЛИ
Тем не менее, если вы хотите выполнить команду от имени другого пользователя, используйте команду su:
su - «username» -c 'command to be executed'