【问题标题】:Insufficient permissions in vscodevscode权限不足
【发布时间】:2018-08-03 14:17:38
【问题描述】:

如何解决vs代码保存文件时权限不足的问题

我已授予代码目录适当的权限: chown -R me:staff my-app/

但是当我打开 vscode 并尝试保存文件时,它显示“权限不足,请以管理员身份重试”

如果我从 cmd line sudo code 使用 sudo 启动 vscode。然后我没有收到那个错误,但是自动完成扩展似乎不起作用

【问题讨论】:

  • 您的项目在哪里?可能是文件夹的权限
  • @GonzaloLorieto 项目位置是~/Code/my-app
  • 你是如何安装 vscode 的?
  • 应该是 chmod 而不是 chownchmod -R 766 my-app
  • 您或登录的用户帐户似乎没有读取和写入文件所在文件夹的权限。我已经在下面发布了我的答案,将您的帐户添加到文件夹并授予读写权限。

标签: visual-studio-code


【解决方案1】:

试试这个代码:

sudo chown -R username directory_name

在哪里,

  • username 是您要授予访问权限的笔记本电脑用户的用户名
  • directory_name 是您要更改其权限的目录的名称

【讨论】:

  • 这个答案比公认的将所有权限应用于文件和目录的答案更好。
  • 在 Ubuntu 上工作没有遇到任何问题
  • 最佳解决方案!帮我解决了,谢谢。
【解决方案2】:

更改你的项目目录的权限级别,例如:

sudo chmod -R 777 testproject

【讨论】:

  • 这是一个不好的方法,我认为他应该更改文件夹或 vs 代码的权限
  • 这对我有用,但不确定它是否最安全。
  • ichimaru,为什么不好?
  • 您不应授予所有人写权限。这很容易被设法闯入低权限帐户以获得额外权限的坏人滥用。
  • 我认为这种方式有风险
【解决方案3】:

尝试使用以下命令(适用于 linux/mac)

sudo chown -R abhinav-kumar my-app

让我们分解一下。

  • sudo - 必须使用管理员权限,因为我们正在处理属于另一个用户的文件夹
  • chown - 更改所有权的命令
  • -R - 确保所有子对象获得相同所有权更改的递归开关
  • abhinav-kumar – 文件夹的新所有者
  • my-app - 要修改的目录

【讨论】:

  • 好答案。细分很有帮助,但许多答案经常遗漏。
【解决方案4】:

我发现有用的两个简化步骤是:

  1. cd 到那个目录cd /var/www/target-directory
  2. 将所有权更改为 vscode 拥有所有读写权限的家庭用户chown $(whoami) -R .
  3. 然后执行code . 以在 vscode 中打开当前目录,一切正常。

$(whoami) - 将当前用户的结果通过管道传递给chown 命令。简洁直接。
-R 命令指示chown递归更改本目录下的子目录

【讨论】:

    【解决方案5】:

    我应该给你一条鱼吗?不..这根本不对! 我应该教你怎么钓鱼,它会救你一辈子。

    亲爱的任何人,问题都与访问该目录甚至文件的权限有关。所以你需要使用chmod命令来改变访问权限,我们通常使用三个八进制数字(0-7)的组合访问代码。

    三个chmod 代码为这三个组设置权限 顺序:

     1. Owner (you)
     2. Group (a group of other users that you set up)
     3. World (anyone else browsing around on the file system)
    

    此代码的每个数字都将这些组之一的权限设置为 跟随。读取为 4。写入为 2。执行为 1。

    这些数字的总和给出了这些权限的组合:

    0 = no permissions whatsoever; this person cannot read, write, or execute the file
    1 = execute only
    2 = write only
    3 = write and execute (1+2)
    4 = read only
    5 = read and execute (4+1)
    6 = read and write (4+2)
    7 = read and write and execute (4+2+1)
    

    阅读更多来自article

    因此,在您的情况下,您可以尝试运行sudo chmod 777 folder-name,我相信它会起作用! 但是... 使用起来不安全!!!远离你自己!这是一个风险!..

    我建议尝试 755 使其工作。或者一些不同的东西,因为你现在明白你在做什么了! (我的意思是钓鱼!)

    【讨论】:

      【解决方案6】:

      请不要使用777 获取权限,这是一个安全风险。

      您必须是所有文件和文件夹的所有者

      在您的项目文件夹中运行(将<user> 替换为您的用户名):

      chown <user>:<user> -R .
      

      如果root 拥有任何文件,则需要sudo

      所有文件夹必须有权限755

      find . -type d -exec chmod 755 {} +
      

      所有源代码文件必须有644的权限

      让我们开始只更改源文件。由于我的项目是一个 Python 项目,因此我们最初只对 .py 源文件应用更改(更改源文件的扩展名):

      find -name "*.py" -exec chmod 644 {} +
      

      完成

      检查它是否有效。

      如果这还不够,您可以另外将所有项目文件的权限更改为644,但这可能会更改图像和某些可执行文件的权限。

      因此,被警告您可以更改图像和二进制文件的权限

      find . -type f -exec chmod 644 {} +
      

      【讨论】:

        【解决方案7】:

        您应该将您的用户或当前登录的用户添加到文件夹并授予读写访问权限。

        【讨论】:

        • 为什么有人会发布这样的非英语屏幕截图???
        • 步骤很常见,这里的关键细节是权限的下拉菜单。您是否希望每个人都会为了截图而切换语言设置?
        【解决方案8】:

        您可以更改项目文件夹的所有权。

        sudo chown -c -R $USER:$USER (project folder)
        

        解释:

        • chown:更改文件/目录的所有权
        • c:报告所有更改
        • -R:递归执行此操作(针对给定文件/目录下的所有文件/目录)
        • $USER:$USER:将拥有该条目的所有者和组更改为发出命令的用户(sudo 保留值)
        • (项目文件夹):包含项目文件的文件夹的名称

        您可以使用以下命令测试这些环境变量

        echo $USER
        sudo echo $USER
        

        【讨论】:

          【解决方案9】:

          向您的项目文件夹授予权限,如下所示

          sudo chown -R $USER:$USER your_project_folder_name
          

          【讨论】:

            【解决方案10】:

            尝试以管理员身份运行打开vs代码

            【讨论】:

            • sudo是macOS命令,与windos无关run as admin
            【解决方案11】:

            这是因为您没有以管理员身份运行 VS Code。所以 VS Code 没有保存文件的权限。

            您应该始终以管理员身份运行 VS Code。为此,请转到安装它的文件夹。默认情况下,VS Code 安装在C:\users\{username}\AppData\Local\Programs\Microsoft VS Code 下。

            找到文件“Code.exe”并打开属性,转到“兼容性”选项卡并选中“以管理员身份运行此程序”字段。

            这种方法对我来说效果很好。

            【讨论】:

            • 这是一个糟糕的建议。
            • 作为一般规则,除非绝对必要,否则应避免以管理员身份运行应用程序。在这里你应该修改代码目录的权限,这样你就不需要管理员在那里保存了。
            • 请问windows的解决方案是什么?
            【解决方案12】:

            对我来说,我在 Windows 10 操作系统上工作时遇到了同样的问题

            仅来自项目文件夹 -> 属性 -> 取消选中属性中的只读

            【讨论】:

              【解决方案13】:

              看起来您以某种方式更改了主目录中的文件所有权。

              在不危及您的系统的情况下纠正此问题的一种方法是

              sudo chown -c -R $USER:$USER $HOME
              

              解释:

              chown:更改文件/目录的所有权
              -c:报告所有更改
              -R:递归执行此操作(针对给定文件/目录下的所有文件/目录)
              $USER:$USER: 将拥有该条目的所有者和组更改为发出命令的用户(sudo 保留值)
              $HOME:使用你的主目录执行此操作

              您可以使用以下命令测试这些环境变量

              echo $USER
              sudo echo $USER
              echo $HOME
              sudo echo $HOME
              

              【讨论】:

                【解决方案14】:

                这个问题可以通过将项目用户的权限更改为自己来解决。

                但是,如果你改变一个文件的权限,当你在开发一个团队时,你最终甚至可以将文件的权限推送到 git。

                如果发生这种情况,团队可能会警告您。

                所以,如果你更改本地项目文件夹的权限,同时忽略文件权限更改到git的推送会更好。

                这样,更改权限的文件将不会在线发布。

                $ sudo chown -R userName /Users/userName/projectName
                $ cd /Users/userName/projectName
                $ git config core.filemode false
                $ git config -l | grep filemode
                

                验证core.filemode = false

                关于

                git config core.filemode默认设置为true,如果不设置为false,如果权限设置为755会自动转换为644

                【Vscode】How to solve the problem when a file cannot be updated due to lack of permissions in vscode

                【讨论】:

                  【解决方案15】:

                  在 Windows 10 上,我的防病毒软件是导致此错误发生的原因。

                  我必须将要保存的文件所在的文件夹添加到我的勒索软件保护的排除文件夹中。

                  【讨论】:

                    【解决方案16】:

                    在 Windows10 上,我解决了将“修改”权限(对“经过身份验证的用户”)添加到项目文件夹的问题。

                    【讨论】:

                      【解决方案17】:

                      权限不足。选择“重试为 Sudo”以重试为 超级用户。

                      在 Ubuntu 20.04 中,尝试以下命令为您的文件和文件夹授予正确的权限:

                      cd /PATH/TO/YOUR/FOLDER
                      sudo chown -R $USER:www-data .
                      sudo find . -type f -exec chmod 664 {} \;
                      sudo find . -type d -exec chmod 775 {} \;
                      

                      然后尝试再次保存您的文件。

                      【讨论】:

                        【解决方案18】:

                        我在 ubuntu 上执行 sudo git pull 后遇到此错误,通过运行更改项目的所有文件和文件夹的所有者、组和其他人的文件/目录人员解决了该问题 sudo chmod -R 770 projectFolder 出于安全原因,请勿运行 sudo chmod -R 777 projectFolder

                        【讨论】:

                          猜你喜欢
                          • 2014-10-24
                          • 2018-12-07
                          • 2020-07-22
                          • 2015-10-10
                          • 2015-06-25
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          • 2021-12-31
                          相关资源
                          最近更新 更多