移动xxxx.service文件,会直接将权限改变吗

在debian的/etc/systemd/system/aaa.service直接用mv命令移动到/etc/systemd/user/aaa.service,这样的操作会将aaa.service服务的运行权限赋予user用户吗?
请问,这样的操作会对系统有其它影响吗?

aaa.service 文件的权限不变,但会赋予所有普通用户运行 aaa 服务的权限。只影响你所修改的服务,以及依赖这个服务的所有东西。

并没有什么「user用户」这种东西。

您好!
就是前几天装了docker engine,
在root下运行docker info是client和service都正常运行,
但是在user下运行docker info就是只有client而sevice连不上;

有个应用程序是xxctl,启动方式xxctl start,
是以docker加载形式启动的,
如果在user下运行xxctl start,就是连不上docker,加载不上;
但在root下运行xxctl start,就可以连上docker加载,
退出root后就可登陆127.0.0.1:8080

其中我把docker,docker.service,xxctl,这几个文件的所有权和组都赋予了user,结果运行步骤没有一点改变,在user下还是不行

这种情况如何才能解决:可以在user下能运行xxctl start

下面是docker.service的内容,是不是需要修改这个service文件呢
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target

[Service]
Type=notify

the default is not to use systemd for cgroups because the delegate issues still

exists and systemd currently does not support the cgroup feature set required

for containers run by docker

ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID

Having non-zero Limit*s causes performance problems due to accounting overhead

in the kernel. We recommend using cgroups to do container-local accounting.

LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity

Uncomment TasksMax if your systemd version supports it.

Only systemd 226 and above support this version.

#TasksMax=infinity
TimeoutStartSec=0

set delegate yes so that systemd does not reset the cgroups of docker containers

Delegate=yes

kill only the docker process, not all processes in the cgroup

KillMode=process

restart the docker process if it exits prematurely

Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s

[Install]
WantedBy=multi-user.target

又是个 X-Y 问题 啊……你不如好好描述一下原始问题,不要臆想奇怪的解决方案了。

实在抱歉,就是我想要在user的环境下,启动docker engine,并且能把准备运行的镜像挂上去,但现在只能是在root下挂载镜像

在user下运行docker info

Client:
Context: default
Debug Mode: false

Server:
ERROR: permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get “http://%2Fvar%2Frun%2Fdocker.sock/v1.24/info”: dial unix /var/run/docker.sock: connect: permission denied
errors pretty printing info

root下运行docker info,是正常的

Client:
Context: default
Debug Mode: false

Server:
Containers: 2
Running: 0
Paused: 0
Stopped: 2
Images: 1

是你啊……不是叫你去看文档了么?
ls -l /var/run/docker.sock 看看权限吧。

:sweat_smile:srw-rw---- 1 root root 0 7月16日 15:03 /var/run/docker.sock

我猜楼主可能需要这个:Docker - Debian Wiki

问题的答案也在里面,就是把当前用户加入docker用户组:sudo adduser $SUDO_USER docker

哦,你这个只有 root 用户和 root 组可以连接。

换podman

那请问是不是可以改一下用户和组的,改为user名就可以呢?

理论上是这样,但你真的要这么做么?
(你这 docker 咋装得这么奇怪呢?)

1 个赞

是啊,不是桌面版的,第一次用linux,是一个软件包里面带的docker命令安装,之后就这样了啊,理解了,多谢多谢