「nologin」アカウントの場合、sudo -i

「nologin」アカウントの場合、sudo -i

アカウントがあります

grafana:x:494:494:Grafana User:/tmp:/sbin/nologin

コンテナの実行に使用したいです。もし私がするなら

jsmith$ sudo -u grafana -s TMPDIR=/bs XDG_DATA_HOME=/bs XDG_CONFIG_DIR=/bs podman run --network-config-dir=/bs -it alpine

「/home/jsmithにchdirを指定できませんでした。権限が拒否されました」というメッセージが表示されます。 grafanaが書き込むことができるディレクトリに初めてchdirを指定すると、OKコマンドを実行できます。しかし、ディレクトリを変更せずに、つまり単一のコマンドを使用して起動スクリプトから起動したいと思います。私は何をすべきかわかりません。 HOMEを設定しても役に立ちません。私は以下を使用しなければこの問題を解決できませんでした。

jsmith$ sudo su -l -s /bin/bash -c 'XDG_DATA_HOME=/bs XDG_CONFIG_DIR=/bs podman run --network-config-dir=/bs -it alpine' grafana

しかし、これはバイパスのようです。

ベストアンサー1

私が見るには、これは2つの方法で達成できるようです。

最初の方法は、ログインできるようにアカウントを変更することです。

grafana:x:494:494:Grafana User:/tmp:/bin/bash

これは潜在的なセキュリティリスクになる可能性があるため、それを望まない場合は、起動スクリプトの代わりにシステム単位ファイルを使用して起動することを検討できます。

/etc/systemd/system/[mycontainer].service に保存します。 (mycontainerを適切な名前に置き換えます。)

[Unit]
Description=Run Container
AssertPathExists=/bs

[Service]
User=grafana
Group=grafana
Environment="XDG_DATA_HOME=/bs"
Environment="XDG_CONFIG_DIR=/bs"
Environment="TMPDIR=/bs"
ExecStart=podman run --network-config-dir=/bs -it alpine
Nice=5
# Uncomment this if you want the container to be started on boot, otherwise don't
#[Install]
#WantedBy=multi-user.target  

その後、実行systemctl enable mycontainerして使用systemctl start mycontainerしてsystemctl stop mycontainer管理します。

私が見つけたSystemdデバイスの詳細については、これとても役に立ちます。

おすすめ記事