据答案约泊坞窗这个问题,运行它作为一个非root是那么容易,因为添加的非root用户名到docker组,注销并回。果然,当我用它作为sudo对hello-world图像进展顺利。但是对于另一个名为whalefortune我的测试图像,我仍然收到access denied错误——见下文。
通常不再可以以非 root 用户身份运行 docker 了吗?我使用的是 Ubuntu 19.04,它比示例版本更新,并且有人提到可能存在以非 root 身份运行 docker 的安全漏洞。
我的想法是以普通用户身份运行 nvidia-docker,这可能吗(甚至是个好主意)?
$ sudo docker run --rm hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
1b930d010525: Pull complete
Digest: sha256:6540fc08ee6e6b7b63468dc3317e3303aae178cb8a45ed3123180328bcc1d20f
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker …Run Code Online (Sandbox Code Playgroud) 我正在运行 Ubuntu 16.04 作为 Windows 7 主机的来宾。
我在 Windows 中共享了一个文件夹,我应该能够在 Linux 中查看和打开该文件。
问题是我作为 root 无法打开文件,因为 root 不在vboxsf组中。
在这篇文章中,我只是运行了这个命令:
$ usermod -G vboxsf rootusername
Run Code Online (Sandbox Code Playgroud)
之后我就失去了root权限。我不能使用sudo su命令,不能打开根文件等。
那么如何在vboxsf不丢失所有管理员权限的情况下添加 rootUser呢?
这是 Ubuntu 16.04 上的权限问题。我无法删除安装在/usr/local/lib/R/site-library. 原来我没有得到许可。该目录是由国有root和组staff。
我通过手动将我的用户添加到staff组来临时解决了权限问题。
sudo usermod -a -G staff myusername
# *see blockquote before using this!*
Run Code Online (Sandbox Code Playgroud)
这允许我从 IDE 中删除库。
但是,当我尝试查找有关员工组的更多信息时,却找不到有关该主题的任何明确材料。甚至不是该小组的主要目的。我只能猜测它用于为某些目录上的用户提供类似的“增强”访问权限。
将用户手动添加到员工组是否有任何影响?
顺便说一句,是否有任何命令可以了解组的系统范围权限?例如,组员工将拥有写入权限的所有目录是什么?
谢谢。
编辑:我必须在这里补充一点,使用
adduser而不是usermod此操作的更明智的选择[请参阅下面的评论]
sudo adduser myusername staff
当我cat /etc/group在 Ubuntu 18.04 上运行时,我得到以下输出:
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:syslog,singrium
tty:x:5:
disk:x:6:
lp:x:7:
mail:x:8:
news:x:9:
uucp:x:10:
man:x:12:
proxy:x:13:
kmem:x:15:
dialout:x:20:
fax:x:21:
voice:x:22:
cdrom:x:24:singrium
floppy:x:25:
tape:x:26:
sudo:x:27:singrium
audio:x:29:pulse
dip:x:30:singrium
www-data:x:33:
backup:x:34:
operator:x:37:
list:x:38:
irc:x:39:
src:x:40:
gnats:x:41:
shadow:x:42:
utmp:x:43:
video:x:44:
sasl:x:45:
plugdev:x:46:singrium
staff:x:50:
games:x:60:
users:x:100:
nogroup:x:65534:
systemd-journal:x:101:
systemd-network:x:102:
systemd-resolve:x:103:
input:x:104:
crontab:x:105:
syslog:x:106:
messagebus:x:107:
netdev:x:108:
mlocate:x:109:
ssl-cert:x:110:
uuidd:x:111:
avahi-autoipd:x:112:
bluetooth:x:113:
rtkit:x:114:
ssh:x:115:
lpadmin:x:116:singrium
whoopsie:x:117:
scanner:x:118:saned
saned:x:119:
pulse:x:120:
pulse-access:x:121:
avahi:x:122:
colord:x:123:
geoclue:x:124:
gdm:x:125:
hani:x:1000:
sambashare:x:126:singrium
nvidia-persistenced:x:127:
rdma:x:128:
docker:x:999:
Run Code Online (Sandbox Code Playgroud)
我知道 'root'、'daemon' 等 .. …
最近我注意到logrotate它不会旋转我的日志。
user1@host:~$ /usr/sbin/logrotate /home/user1/logrotate.conf -v 给我一个错误:
error: error setting owner of /home/logs/mylog.log.1 to uid 10111 and gid 10111:
Operation not permitted
error: error creating output file /var/lib/logrotate/status.tmp:
Permission denied
Run Code Online (Sandbox Code Playgroud)
这gid让我user1很困惑,因为只有一个具有不同gid:
user1@host:~$ id
uid=10111(user1) gid=1001(mygroup) groups=1001(mygroup)
Run Code Online (Sandbox Code Playgroud)
但是,还有另一个名为 的组user1,但是,正如我所提到的,实际用户user1不是其成员:
user1@host:~$ cat /etc/group | grep user1
user1:x:10111
Run Code Online (Sandbox Code Playgroud)
这里很简单,但我看不到。
更新:这是 logrotate.conf 的样子:
/home/logs/*.log {
rotate 7
daily
copytruncate
compress
notifempty
}
user1@host:~$ ls -al /home/logs/
-rw-r--r-- 1 user1 mygroup 190826983 Dec 18 …
有人可以发布您的第一个 Ubuntu 帐户所在的组吗?我试图将我的帐户添加到一个组,但它删除了所有其他组。
我记得它是 adm、sudo 等的一部分。我猜没有办法恢复它?现在我想我应该启动恢复以将主帐户添加到其他组
我最近设法将我的 Ubuntu Server 18.04 计算机连接到我公司的 Windows AD。我可以使用我的 AD 凭据登录,但我想更进一步......
这是我为了让我的 Ubuntu 18.04 机器进入 Windows 域而遵循的文章,请注意,我没有做任何限制 ssh 登录到域组的配置,因为我仍然在挣扎。 https://www.smbadmin.com/2018/06/connecting-ubuntu-server-1804-to-active.html?showComment=1548915938955#c6716393705599388679
然而....
这可能是什么原因?是否可能是由于我在将机器连接到 AD 域时指定的配置所致?
该组的完整路径如下:-domainname/Groups/Elab/Elab-Level3
以下是我用于加入 AD 域的文件的配置:
krb5.conf
[libdefaults]
default_realm = MYREALM
dns_lookup_kdc = true
dns_lookup_realm = true
Run Code Online (Sandbox Code Playgroud)
......文件的其余部分......
领域配置文件
[users]
default-home = /home/%D/%U
default-shell = /bin/bash
[active-directory]
default-client = sssd
os-name = Ubuntu Server
os-version = 18.04
[service]
automatic-install …Run Code Online (Sandbox Code Playgroud) 尝试在 Ubuntu 18.04 上安装 MythTV,我跑了……
sudo usermod -a -G mythtv roger
Run Code Online (Sandbox Code Playgroud)
...然后注销并重新登录。这应该足够了。但是:我的组成员身份没有改变。
我不得不重新启动。为什么?
我想将我的 usr 添加ron到该docker组中,因此我执行了以下操作:
ron@regDesktopHome:~$ sudo usermod -a -G docker ron
ron@regDesktopHome:~$ groups
ron
Run Code Online (Sandbox Code Playgroud)
为什么它只显示组,因为用户显然也是(+其他)...ron的成员?sudo
编辑
$ grep ron /etc/group
sudo:x:27:ron
dip:x:30:ron
crontab:x:102:
netdev:x:111:ron
vboxusers:x:124:ron
ron:x:1001:
incron:x:138:
wireshark:x:148:ron
docker:x:153:ron
Run Code Online (Sandbox Code Playgroud)
现在有些东西看起来不太对劲:以下是我XTerm在桌面上打开实例后的情况:
ron@regDesktopHome:~$ groups
ron
ron@regDesktopHome:~$ su ron
Password:
ron@regDesktopHome:~$ groups
ron sudo dip netdev vboxusers wireshark docker
ron@regDesktopHome:~$
Run Code Online (Sandbox Code Playgroud)
为什么我首先需要以我自己的用户身份“重新登录”才能成为该组的成员,这似乎没有意义,不是吗?
我在打开 USB 端口时遇到问题/dev/ttyUSB0。
此端口的设备节点是:
crw-rw---- 1 root dialout 188, 0 juil. 25 17:18 /dev/ttyUSB0
Run Code Online (Sandbox Code Playgroud)
groups命令和组似乎存在问题,dialout如下所示:
doom@doom-PC:~$ groups
doom adm cdrom sudo dip plugdev lpadmin sambashare
doom@doom-PC:~$ whoami
doom
doom@doom-PC:~$ groups doom
doom : doom adm dialout cdrom sudo dip plugdev lpadmin sambashare
doom@doom-PC:~$ groups $USER
doom : doom adm dialout cdrom sudo dip plugdev lpadmin sambashare
Run Code Online (Sandbox Code Playgroud)
由于我是厄运,为什么该groups命令不在dialout其输出中显示该组?
所以,为什么我不能这样做:
doom@doom-PC:~$ touch /dev/ttyUSB0
touch: cannot touch '/dev/ttyUSB0': Permission denied
Run Code Online (Sandbox Code Playgroud)
真以为两者是息息相关的!
这是在 Ubuntu 18.04 …