Как добавить Sudouser в Yocto

Я хотел бы добавить нового Sudouser в Yocto. Корневой пароль хорошо работает с изменениями и добавлением нового пользователя, но это не Sudouser. Как я могу добавить Sudouser? Я прочитал много статей в Google и пытался их скопировать, но все они потерпели неудачу. Я сделал рецепт, но он не сработал, и только добавленный в local.conf работает.

  1. Добавьте дополнительных пользователей. (новый пользователь: test1, пароль: pass11!)
  2. Отключите debug-tweaks, чтобы изменить пароль root.
  3. Изменить пароль root. (Нет --> pass1234!)

Ниже приведен мой код, добавленный в local.conf.

# EXTRA_IMAGE_FEATURES = "debug-tweaks package-management"

INHERIT += "extrausers"
EXTRA_USERS_PARAMS = " usermod -P pass1234! root; \
                       useradd test1; \
                       usermod -P pass11! test1; "

Буду признателен за любые предложения.


person Hans    schedule 01.05.2020    source источник
comment
Во-первых, наличие двух пользователей с полными правами root никоим образом не повышает безопасность: вы можете подумать, имеет ли смысл ваш план (упомянутый в комментарии). Во-вторых, термин sudouser мне не знаком. Если вы хотите использовать sudo, вам сначала нужно добавить его в свой образ (он не включен по умолчанию, потому что обычно не имеет большого смысла во встроенном контексте) и настроить его так, чтобы новый пользователь получил необходимые разрешения.   -  person Jussi Kukkonen    schedule 01.05.2020


Ответы (4)


Спасибо, Роберт. Я нашел решение от инженера Toradex.

Если у кого-то есть проблема, как у меня, попробуйте следующее.

  1. Изменить пароль root.

Добавьте следующее в local.conf. Я не воспользовалась своим рецептом.

EXTRA_IMAGE_FEATURES=""
INHERIT += "extrausers"
EXTRA_USERS_PARAMS = " usermod -P password root; "

Если кто-то не может использовать ssh, см. здесь

  1. Добавьте нового пользователя с правами суперпользователя.
EXTRA_IMAGE_FEATURES=""
INHERIT += "extrausers"
EXTRA_USERS_PARAMS = " usermod -P password1 root; \
            useradd -ou 0 -g 0 newuser; \ 
            usermod -P password2 newuser; "

Возможно, ваша учетная запись не может использовать какую-либо команду, такую ​​​​как «ifconfig», потому что в вашей учетной записи пользователя нет пути «/ sbin». Перейдите к своему коду Yocto, найдите правильный файл и добавьте /sbin для своей учетной записи пользователя.

r@p:~/oe-core/layers$ grep -r /etc/profile .
./meta-toradex-demos/recipes-core/base-files/base-files/profile:# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
./meta-toradex-demos/recipes-core/base-files/base-files/profile:if [ -d /etc/profile.d ]; then
./meta-toradex-demos/recipes-core/base-files/base-files/profile:  for i in /etc/profile.d/* ; do
if [ "$HOME" = "/home/root" ]; then
   PATH=$PATH:/usr/local/sbin:/usr/sbin:/sbin
fi

if [ "$HOME" = "/home/newuser" ]; then
   PATH=$PATH:/usr/local/sbin:/usr/sbin:/sbin
fi
person Hans    schedule 13.05.2020

0) Где вы хотите внести изменения?

В каком-то конфигурационном файле, как указано выше, или, например. в рецепте изображения - см. ниже.

1) Вы хотите дать root пароль?

Это может помочь:

https://wiki.yoctoproject.org/wiki/FAQ:How_do_I_set_or_change_the_root_password

2) И затем вы хотите создать другого пользователя, который является членом группы sudoer или около того?

Это означает, что больше пользователей будут иметь root-права.

Почему?

person robert.berger    schedule 01.05.2020
comment
Привет. Спасибо за ваш ответ. Ответ 2) да. Я хочу дать права root другому пользователю. Я хочу изменить файл конфигурации, потому что я тестировал нового пользователя в своем рецепте, но не смог добиться успеха. У моей корневой учетной записи уже есть пароль. Так что это нормально. Меня беспокоит предоставление root-прав новому пользователю. Мой менеджер хочет добавить еще одного пользователя, но у этого пользователя также есть права root, такие как учетная запись root. Поэтому мне нужно добавить пользовательского пользователя, такого как учетная запись root. Если вы видите мой код, test1 — новый пользователь, но test1 не имеет прав root. Пожалуйста, дайте мне знать, если вы знаете, как дать root-права для test1. - person Hans; 01.05.2020

Итак, приступим ко второй части) sudoers

Это то, что я сделал на своей плате в качестве быстрого теста. Можете ли вы попробовать что-то подобное и сказать мне, если это то, что вы хотите? Как только вы подтвердите, мы увидим, как добавить это в OE/YP.

Resy (Reliable Embedded Systems Reference Distro) 3.0.1 multi-v7-ml ttymxc1

multi-v7-ml login: root

root@multi-v7-ml:~# sudo adduser anotheruser
Changing password for anotheruser
Enter the new password (minimum of 5 characters)
Please use a combination of upper and lower case letters and numbers.
New password:
Re-enter new password:
passwd: password changed.

root@multi-v7-ml:~# id anotheruser
uid=1001(anotheruser) gid=1001(anotheruser) groups=1001(anotheruser)
root@multi-v7-ml:~#

root@multi-v7-ml:~# sudo visudo -f /etc/sudoers.d/anotheruser

add this lines:
# users ins anotheruser group can do this:
anotheruser ALL=(ALL) NOPASSWD: ALL

root@multi-v7-ml:~# logout

Resy (Reliable Embedded Systems Reference Distro) 3.0.1 multi-v7-ml ttymxc1

multi-v7-ml login: anotheruser
Password:
multi-v7-ml:~$ whoami
anotheruser
multi-v7-ml:~$ id
uid=1001(anotheruser) gid=1001(anotheruser) groups=1001(anotheruser)
multi-v7-ml:~$ sudo ls /
bin  boot  dev  etc  home  lib  media  mnt  my-core-image-minimal  opt  proc  run  sbin  sys  tmp  usr  var
multi-v7-ml:~$
person robert.berger    schedule 02.05.2020
comment
Привет. Пожалуйста, смотрите мой комментарий ниже. - person Hans; 02.05.2020

Пожалуйста, смотрите следующее. idh — мой новый пользователь, но у него много сообщений «Отказано в доступе». Поэтому я не могу скопировать некоторые файлы. Но если вы видите мою корневую учетную запись, ошибки нет.

colibri-imx6ull login: idh
Password:
Last login: Sat May  2 12:13:20 UTC 2020 on ttymxc0
-sh: /etc/profile.d/utf8.sh: Permission denied
colibri-imx6ull:~$ cp /usr/bin/precept/*.* .
cp: can't open '/usr/bin/precept/SSID-psk.config': Permission denied
cp: can't open '/usr/bin/precept/flash.sh': Permission denied
cp: can't open '/usr/bin/precept/gettysburg10.wav': Permission denied
cp: can't open '/usr/bin/precept/run-htrc.sh': Permission denied
cp: can't open '/usr/bin/precept/wifi.sh': Permission denied
colibri-imx6ull:~$ ls /home
idh   root
colibri-imx6ull:~$
colibri-imx6ull login: root
Password:
Last login: Sat May  2 12:15:11 UTC 2020 on ttymxc0
root@colibri-imx6ull:~# cp /usr/bin/precept/*.* .
root@colibri-imx6ull:~# ls /home
idh   root
root@colibri-imx6ull:~#

Я хочу дать разрешение новому пользователю, например учетной записи root. Пожалуйста, дайте мне знать, если вы знаете, как дать это разрешение в Yocto.

person Hans    schedule 02.05.2020
comment
Мы еще не реализовали это Yocto, поскольку ваша постановка проблемы изменилась с пользователя sudo на разрешения. Не могли бы вы попробовать добавить своего пользователя idh, как я описал ниже, в свои sudoers? Затем этот пользователь может сделать что-то вроде sudo cp, что должно сработать... но... я думаю, у вас еще одна проблема с разрешениями. - person robert.berger; 03.05.2020