Dropbox 询问需要身份验证才能以超级用户身份运行 `/usr/sh'

tpg*_*tpg 17 permissions dropbox 18.04

这个问题已经被问过几次了,但标准答案并不适用。

当前系统:Ubuntu 18.04,内核版本 4.15.0-29-generic。但它开始于 - 我认为 - 16.xx。

系统在用户登录时带有此问题。一个简单的取消就可以让 Dropbox 做它应该做的事情。有时它会在登录会话的某个地方询问 3 次。

论坛上的标准建议是将相应的行更改/usr/bin/dropboxPARENT_DIR = os.path.expanduser("~"),但过去几年已经是这样了。我在交替的根分区上从头开始安装每个版本,所以没有剩余。/home位于一个单独的分区上,所以这是一个可能遗留的地方。该消息最近已经消失了大约 3 周,但在最新的内核更新后它又回来了。请注意,系统现在要求执行权限/bin/sh,而不是/usr/bin/dropbox.

bma*_*pin 7

回答

如果 Dropbox 在其文件夹中发现不属于您的用户的文件,它会尝试运行具有超级用户权限的脚本,将这些文件的所有权更改为您的用户。

如果单击取消,Dropbox 将不会运行该脚本,但您会继续看到弹出窗口,因为它会继续检测问题。

如果您能够确认是 Dropbox 导致弹出窗口,那么解决方案是输入您的凭据并让它运行脚本。更多详情如下。

细节

我刚刚得到了同样的弹出窗口,但在登录时没有:

在此处输入图片说明

我展开了详细信息,然后在网上搜索了org.freedesktop.policykit.exec指向我的pkexec.

查看我的流程pkexec,我发现:

$ ps -ef | grep [p]kexec
root     11040 26447  0 14:16 ?        00:00:00 pkexec /bin/sh /tmp/tmp5vgk_93m
Run Code Online (Sandbox Code Playgroud)

所以我当然很好奇那个文件在做什么:

$ cat /tmp/tmp5vgk_93m
#!/bin/bash
chown -h -R 1234 "/home/user/Dropbox"
chmod  -R u+rwX "/home/user/Dropbox"
Run Code Online (Sandbox Code Playgroud)

看起来 Dropbox 一定已经检测到我的 Dropbox 文件夹中有一些文件不属于我的当前用户所有。

我曾经find确认:

$ find ~/Dropbox/ ! -user $USER
/home/user/Dropbox/Projects/picodrive/cpu/fame/famec.o
/home/user/Dropbox/Projects/picodrive/cpu/drc/cmn.o
/home/user/Dropbox/Projects/picodrive/cpu/cz80/cz80.o
...
Run Code Online (Sandbox Code Playgroud)

果然,看起来有些文件不属于我的用户:

$ ls -l /home/user/Dropbox/Projects/picodrive/cpu/fame/famec.o
-rw-r--r-- 1 root root 1346564 Dec 18 13:33 /home/user/Dropbox/Projects/picodrive/cpu/fame/famec.o
Run Code Online (Sandbox Code Playgroud)

理论上,Dropbox 同步该文件应该没有任何问题,因为它是世界可读的,但至少他们所做的事情是有道理的。

我还注意到,在 Dropbox 同步时,我看到了这样的错误,这似乎是一个额外的确认:

Can't sync "famec.o" (access denied)

最后但并非最不重要的一点,我将把它放在这里,因为我在网上搜索这个问题时遇到了麻烦:

Authentication is needed to run `/bin/sh' as the super user


Pab*_*chi 5

Dropbox 可能因各种原因(例如所有权、权限位或损坏的链接)而无法读取文件。我假设您正在使用当前的普通用户。

\n\n\n\n

IMO 这是 Gnome 上的一个安全问题。

\n


Pio*_* M. 4

因为某些原因

chmod 755 ~/Dropbox
Run Code Online (Sandbox Code Playgroud)

为我解决了问题。我记得我最近将我的 Dropbox 文件夹从我的主文件夹中符号链接的 NTFS 分区移动到了我的主文件夹中 - 并且之后可能没有设置权限。


CPB*_*PBL 1

运行“start dropbox”时观察终端,我还看到以下建议:

Please run "echo fs.inotify.max_user_watches=100000 | sudo tee -a /etc/sysctl.conf; sudo sysctl -p" and restart Dropbox to fix the problem.
Run Code Online (Sandbox Code Playgroud)

这为我解决了问题,而无需授予 Dropbox sudo 权力来执行它想做的任何事情。