なんかエラー出るのなんで? という質問がXに上がっていた。そういえばユーザー作ってないな。作って見る。

UNIX的には、ずっとrootで操作するのはキモいのでユーザー作りたいという気持ちもわかるけど、組み込みだとこれで普通という気もしないでもない。
root@m5stack-LLM:~# sudo adduser kinneko
Adding user `kinneko' ...
Adding new group `kinneko' (1000) ...
Adding new user `kinneko' (1000) with group `kinneko' ...
Creating home directory `/home/kinneko' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for kinneko
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] y
グループも同時にできてる。
root@m5stack-LLM:~# sudo groupadd kinneko
groupadd: group 'kinneko' already exists
root@m5stack-LLM:~# cat /etc/passwd | grep kinneko
kinneko:x:1000:1000:,,,:/home/kinneko:/bin/bash
root@m5stack-LLM:~# cat /etc/group | grep kinneko
kinneko:x:1000:
sshしてみる。
kinneko@kinnekonoMacBook-Pro ~ % ssh kinneko@m5stack-llm.local
kinneko@m5stack-llm.local's password:
Welcome to Ubuntu 22.04 LTS (GNU/Linux 4.19.125 aarch64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
This system has been minimized by removing packages and content that are
not required on a system that users do not log into.
To restore this content, you can run the 'unminimize' command.
The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.
-bash: /proc/sys/kernel/core_pattern: Permission denied
なるほど、Xで質問が流れていたように、確かに「-bash: /proc/sys/kernel/core_pattern: Permission denied」とエラーっぽいのが出てしまうね。
/proc/sys/kernel/core_patternはコアダンプ先の指定を行なっているファイルなので、おそらくシェルの設定ファイルでなんかする仕込みがされているのじゃなかろうかな。んで、rootじゃないから権限ないと出る。
.bashrcを見ても、該当しそうな何かはない。
犯人はこれか。/etc/profileになにやら普通と違う部分が追記されている。
kinneko@m5stack-LLM:~$ cat /etc/profile
# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
if [ "${PS1-}" ]; then
if [ "${BASH-}" ] && [ "$BASH" != "/bin/sh" ]; then
# The file bash.bashrc already sets the default PS1.
# PS1='\h:\w\$ '
if [ -f /etc/bash.bashrc ]; then
. /etc/bash.bashrc
fi
else
if [ "$(id -u)" -eq 0 ]; then
PS1='# '
else
PS1='$ '
fi
fi
fi
if [ -d /etc/profile.d ]; then
for i in /etc/profile.d/*.sh; do
if [ -r $i ]; then
. $i
fi
done
unset i
fi
export PATH=$PATH:"/bin:/sbin:/usr/bin:/usr/sbin:/opt/bin:/opt/usr/bin:/opt/scripts:/soc/bin:/soc/scripts:/usr/local/bin"
export LD_LIBRARY_PATH="/usr/local/lib:/usr/lib:/opt/lib:/opt/usr/lib:/soc/lib"
ulimit -s 2048
ulimit -c unlimited
echo /opt/data/core-%e-%p-%t > /proc/sys/kernel/core_pattern
最後の1行に追記されているのが正体。カーネルのコアダンプファイルのパスおよび名前形式を設定している。実行には管理者権限が必要なので、エラーになっている。
他にもPATH以下の部分が追加されている。
PATHとLD_LIBRARY_PATHとulimitでスタックサイズを2048KBに制限して、コアダンプのサイズを無制限に設定している。
そのままでも実害はないね。普通の人はコアダンプとか使わないので、キモければコメントアウトしてしまってもいいと思います。
さて、このままだと作ったユーザーでsudoできない。
kinneko@m5stack-LLM:~$ sudo su -
sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set
いろいろ困るので、設定する。
/etc/sudoersを見ると、adminグループに入れるとsudoできる感じ。
root@m5stack-LLM:~# cat /etc/sudoers
(snip)
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
(snip)
でも、デフォルトでadminグループはない。
root@m5stack-LLM:~# cat /etc/group | grep admin
root@m5stack-LLM:~#
新規に作るのも面倒なので、sudoグループに入れる。
root@m5stack-LLM:~# sudo usermod -aG sudo kinneko
root@m5stack-LLM:~# cat /etc/group | grep sudo
sudo:x:27:kinneko
sudoしてみる。あれ? ダメだな。
kinneko@m5stack-LLM:~$ sudo
sudo: /usr/bin/sudo must be owned by uid 0 and have the setuid bit set
sudoコマンドにsビットが立ってないっすね... これって普通だっけ? 普通じゃないよね。意図的に改変されている。
root@m5stack-LLM:~# ls -al /usr/bin/sudo
-rwxr-xr-x 1 root root 215944 Apr 4 2023 /usr/bin/sudo
立てる。
root@m5stack-LLM:~# chmod 4755 /usr/bin/sudo
root@m5stack-LLM:~# ls -al /usr/bin/sudo
-rwsr-xr-x 1 root root 215944 Apr 4 2023 /usr/bin/sudo
sudoできるようになった。
kinneko@m5stack-LLM:~$ sudo su -
[sudo] password for kinneko:
root@m5stack-LLM:~# exit
logout
kinneko@m5stack-LLM:~$

100円投げ銭 https://kinneko.booth.pm/items/1963720
オリジナル投稿:
LLMモジュールでユーザー追加すると?|kinneko|pixivFANBOX
https://kinneko.fanbox.cc/posts/9271408



