vscode总是要求保存权限

Oma*_*ady 7 linux ubuntu visual-studio-code

我是Ubuntu的新手,这是我的问题:
VSCode一直在寻求权限来保存对任何文件的任何编辑。

我只想编辑和保存而不必每次都输入密码,因此在Ubuntu上可以吗?
我试图添加一个新用户,但是我也看到了同样的问题。
我试图以root身份运行VSCode,但是它说以root身份运行是危险的。

使用VSCode保存文件时,如何避免此权限步骤?

小智 19

sudo chmod -R 777 filename 适用于文件的父文件夹。

  • 这是一个很好的解决方案,但如果您这样做,您可能会更改项目中所有文件的权限,并且您将再次提交所有文件。可能会给项目中的其他贡献者带来一些麻烦 (3认同)

Von*_*onC 13

确保您(作为Ubuntu用户帐户)是您在VSCode中编辑的文件夹和文件的所有者:

cd /path/to/my/files
chown -R $USER:$USER .
Run Code Online (Sandbox Code Playgroud)

注意:如果您不是大客户,则可能必须在前面加上sudo

sudo chown -R $USER:$USER .
Run Code Online (Sandbox Code Playgroud)

  • @OmarMohmedAbdelhady 实际上,完整的命令是`sudo chown -R $USER:$USER .` (2认同)
  • 这个解决方案对我来说就像一个魅力......谢谢 (2认同)

Gri*_*lay 12

这是一个常见的问题。您不想更改文件的所有者:组,并且出于安全原因不想以 root 身份运行 VSCode。这是我的解决方案,有一些背景信息。在典型的 Web 服务器上,Web 文件将是 owner:group www-data:www-data(例如) - 只有所有者 (www-data) 具有写入权限。VSCode 在 $USER 帐户下运行,而不是 www-data,因此它没有写入权限。您无法将 VSCode 更改为作为 www-data 运行(不容易),因此另一种方法是将 $USER 添加到 www-data 组,并为该组授予文件夹写入权限。这仅比只有读取权限的组安全一点 - 在我看来,在开发机器上是可以接受的。将自己添加到 www-data 组:

sudo usermod -aG www-data $USER
Run Code Online (Sandbox Code Playgroud)

这不会立即生效,您需要对自己进行 su 然后注销并重新登录

su $USER
Run Code Online (Sandbox Code Playgroud)

检查您是否在 www-data 组中

id
Run Code Online (Sandbox Code Playgroud)

注销并重新登录。接下来,更改 /var/www/html (或您尝试写入的任何位置)的权限:

sudo chmod -R ug+rw /var/www/html
sudo chown -R www-data:www-data /var/www/html
Run Code Online (Sandbox Code Playgroud)

重新启动 VSCode,您的用户现在应该拥有该文件夹的写入权限。如果由于任何原因您不小心更改了目录权限,您可以使用以下方法恢复它们:

sudo find /var/www/html -type d -execdir chmod 750 {} +
Run Code Online (Sandbox Code Playgroud)


Mir*_*din 7

据我所知,基本上有三种解决方案

  1. 使用root特权运行 VS Code (不推荐

    sudo code --user-data-dir="~/.vscode-root"

如果您从终端运行此命令,VS Code 将以 root 权限启动,但以 root 权限运行用户级应用程序具有潜在危险,因为如果在 VS Code 中发现某些漏洞,可能会影响您的系统。VS Code 也会就此向您发出警告。

img_warning

  1. 使用chmod -R 777命令(这取决于

sudo chmod -R 777 your_project_directory_location

例子

 sudo chmod -R 777 /var/opt
Run Code Online (Sandbox Code Playgroud)

如果你使用这个命令,不仅你,机器上的其他用户也能看到、修改你的项目。因为chmod 777让每个人都可以完全控制文件。因此,仅当您想与他人共享您的项目时才使用此命令。

  1. 使用chown命令(推荐

cd location

sudo chown your_username your_project_directory

例子

假设我project1在我的/var/opt位置有一个目录,我的用户名是mir

cd /var/opt


sudo chown mir project1
Run Code Online (Sandbox Code Playgroud)

但是,如果您在申请之前已经创建了一些文件chown,也不要忘记更改他们的权限

sudo chown your_username your_project_directory/your_file_name

例子

sudo chown mir project1/file1.txt
Run Code Online (Sandbox Code Playgroud)

建议这样做,因为它既不会造成任何安全问题,也不会让其他人对您的项目进行不必要的访问。它通过让您的项目由您来解决您的问题