所以,我做了一件愚蠢的事情......
我正在从 tarball 安装一些软件(Java SE 7,如果你必须知道),我厌倦了使用sudo
,所以我去把我的/usr
目录的所有者更改为我自己。
$ sudo chown -R sammy /usr
Run Code Online (Sandbox Code Playgroud)
哎呀!
自从sudo
住进去/usr/bin/
,也就换了主人。现在,我不能再使用它了。我是不是不小心陷入了 sudo-Catch 22?我无法使用apt-get install
或任何数量的 shell 环境的其他基本功能。
$ sudo
sudo: must be setuid root
Run Code Online (Sandbox Code Playgroud)
有没有办法将此目录(以及子目录)的所有者更改回root
?
如何更改 Ubuntu 12.04 中特定文件夹中用户的权限(555 或 755)。我用过这个命令,但是没有用
sudo chown -R username:group directory
Run Code Online (Sandbox Code Playgroud)
谢谢,
我用了
adduser <name>
Run Code Online (Sandbox Code Playgroud)
并创建了一个新用户,andrew。现在,我想给他读/写访问只对/var/www/sitename.com
和它的内容。
我该怎么做?
我试过了,sudo chown andrew /var/www/sitename.com
但他仍然能够看到 /var/www 和其他目录下的所有文件夹和文件。
我正在尝试通过键入以下任一内容来更改文件夹和子文件夹的所有权:
sudo chown $user -R /usr/bin/.folder/
sudo chown $user -R /usr/bin/folder/
sudo chown $user -R /usr/bin/.folder
sudo chown $user -R /usr/bin/folder
Run Code Online (Sandbox Code Playgroud)
但我得到输出:
chown: missing operand after '/usr/bin/.folder/'
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
permissions command-line directory environment-variables chown
当我想使用sudo
命令时遇到这个问题:
sudo: /etc/sudoers is owned by uid 1000, should be 0
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin
Run Code Online (Sandbox Code Playgroud)
然后我尝试了类似问题的解决方案,以便将所有者更改回根目录:
$ pkexec visudo
Run Code Online (Sandbox Code Playgroud)
我也尝试过这个
$ pkexec chown root:root /etc/sudoers /etc/sudoers.d -R
Run Code Online (Sandbox Code Playgroud)
但我在使用这些命令时遇到了另一个问题:
Error getting authority: Error initializing authority: Could not connect: No such file or directory
Run Code Online (Sandbox Code Playgroud)
那么这个问题有解决办法吗?
完整的 shell 问题片段:
ubuntu@LAPTOP-D4T16P7J:~$ sudo -i
sudo: /etc/sudoers is owned by uid 1000, should be 0
sudo: no valid sudoers sources found, quitting
sudo: unable to …
Run Code Online (Sandbox Code Playgroud) 尝试按照本指南设置灯开发环境:https : //www.linode.com/docs/web-servers/lamp/how-to-install-a-lamp-stack-on-ubuntu-18-04 / .
麻烦从虚拟主机部分开始,步骤#4,我将example.com 替换为deckdev.local,所以最后的命令应该是
sudo chown -R $www-data:$www-data /var/www/html/deckdev.local/public_html
Run Code Online (Sandbox Code Playgroud)
产生以下输出
chown: invalid option -- 'd'
Try 'chown --help' for more information.
Run Code Online (Sandbox Code Playgroud)
我开始去谷歌搜索并发现了这个论坛帖子:https : //www.linode.com/community/questions/20208/chown-invalid-option-d 用户 jyoo 建议使用变量名 $www-data:$ www-data 以某种方式导致命令解析器误解。我倾向于同意这一评估,问题是两个多月以来在这些论坛上没有发布任何解决方案。
我个人不明白自己有什么问题,还有其他人能够帮助解开这个谜吗?自从我上次展示我的 linux 肌肉以来已经有一段时间了。
我知道这可能是重复的,但我查看了其他答案并且对这些答案不满意。如果您是超级用户或文件的所有者,您应该能够使用 chown 命令。好吧,就我而言,我是文件的所有者,我想使用 chown。但我想将文件的所有权更改为超级用户,所以我输入以下内容:
$ chown root testfile
Run Code Online (Sandbox Code Playgroud)
但它给了我错误:
chown: changing ownership of `testfile': Operation not permitted
Run Code Online (Sandbox Code Playgroud)
但是,我是该文件的所有者,并授予自己对该文件的读取、写入和执行权限:
-rwx------ 1 viggy viggy 10 Nov 14 13:01 testfile
Run Code Online (Sandbox Code Playgroud)
那么作为文件的所有者,为什么我不能更改文件的所有权?
我正在使用 Ubuntu 13.04 x86_64。
我想在我的主目录中拥有全部内容。所以我执行了这两个命令。
sudo chown -RcH rootkea ~
sudo chown -RcL rootkea ~
Run Code Online (Sandbox Code Playgroud)
现在由于这些符号链接链接到文件系统中的其他一些文件,我不小心拥有了驻留在我的主目录之外的文件。
我注意到的直接后果是:
须藤不工作
$ sudo
sudo: effective uid is not 0, is sudo installed setuid root?
Run Code Online (Sandbox Code Playgroud)创建一个/var/log/cups/error_log
大小不定的日志文件,它消耗了我硬盘驱动器的最后一个字节(经过相当长的时间)。上次是 17.8 GB!
文件的内容只有无数次重复的这两行:
E [24/May/2013:02:27:52 +0530] File "/usr/lib/cups/notifier/dbus" has insecure permissions (0100755/uid=1000/gid=0).
W [24/May/2013:02:27:52 +0530] Notifier for subscription 531 (dbus://) went away, retrying!
Run Code Online (Sandbox Code Playgroud)很明显,cups
程序也被搞砸了。
现在我不知道有多少其他程序进入了无法使用的状态。
有什么办法可以撤消上述两个命令的效果吗?
如何恢复整个文件系统的默认权限设置?
为什么 Ubuntu 中文件的所有者需要运行 sudo 才能执行 chown。
在没有 sudo 的情况下运行它会导致“不允许操作”错误消息。
我-rwxr-xr-x
在 Ubuntu 中有一个具有权限的文件。我该如何将其更改为-rw-rw-r--
. 我玩过chmod
设置,但无法获得-rw-rw-r--
.
chown ×10
permissions ×6
command-line ×3
chmod ×2
sudo ×2
14.04 ×1
apache2 ×1
bash ×1
directory ×1
filesystem ×1
ftp ×1
ownership ×1
root ×1
users ×1