`
willsunforjava
  • 浏览: 167854 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

vim保存root权限的文件

 
阅读更多

在Linux,没有sudo 就直接用vim 编辑/etc/内的文件,等编辑好了之后,使用vim保存时,得到提示说文件无法保存,这时候才发现没权限。针对这种问题,目前有如下几种解决方案。

1. vi /etc/httpd.conf 保存时,用命令:w !sudo tee %

    :w - Write a file.

    !sudo - Call shell sudo command.

    tee - The output of write (vim :w) command is redirected using tee. The % is nothing but current file name i.e. /etc/httpd.conf. In other words tee command is run as root and it takes standard input and write it to a file represented by %. However, this will prompt to reload file again (hit L to load changes in vim itself).

强烈推荐这一种用法。不过,首先得保证运行vim的用户有sudo的权限。关于用户的sudo权限可以参考这里:

http://www.51testing.com/?uid-225738-action-viewspace-itemid-216699

 

2.编辑用户$HOME/.vimrc文件将第一种方案的比较难记的命令重命名一下,下次可以直接使用。

   vim $HOME/.vimrc  添加如下的一句话,并保存。

   command -nargs=? Sudow :w !sudo tee %

   今后用vim编辑时,需要sudo保存时,直接用此处定义的Sudow命令保存即可。

 

3. 先保存到一个临时文件中,然后用root去拷贝它去覆盖需要编辑的文件。

    可能用user账号打开的一个文件,vim /etc/httpd.conf,然后在vim编辑号后,用:w /tmp/httpd.conf即可保存为一个临时文件。

 

4. 使用vim之时直接用sudo vim也可以,哈哈,如  sudo vim /etc/httpd.conf

 

参考:http://www.51testing.com/?uid-225738-action-viewspace-itemid-248016

分享到:
评论

相关推荐

    Fedora12如何获得root用户权限

    请注意,虽然现在你可以直接以root用户登录,但为了系统的安全性,建议仅在必要时使用root权限,并且避免在root权限下进行非管理任务,以免误操作损坏系统。 在终端中编辑VI(Vim)文件时,了解基本操作是非常重要...

    Vim 强制保存只读类型文件的方法

    每次遇到这样的问题,我都很头疼,好不容易把文件编辑完了,却无法保存,就只能放弃,然后退出,再以root权限打开,重新编辑。 我总是相信,所有的问题都有解决的方法。通过查阅资料,终于解决了这个问题。 解决方案...

    vim命令详细文档

    sudo tee %`:以root权限保存文件,适用于权限不足的情况。 - `:f` 或 `Ctrl-G`:显示文件名、行号、总行数、百分比和列信息。 - `:!command`:暂时退出Vim执行shell命令,完成后返回。 - `:r!command`:将命令的...

    vim_dev_V1.1

    4、根据自己的具体环境修改system-tags,主要是库目录,然后运行,可能需要root权限 5、修改lookupfile的工程目录索引g:LookupFile_TagExpr,将makefiles_tags复制到目录并执行 6、运行vim并打开一个c文件编辑 三、...

    Fedora14中使用root登录图形界面

    保存并关闭文件。 ##### 2.4 重启登录界面 完成上述修改后,需要重新启动图形界面登录服务。可以通过以下命令实现: ```bash service gdm restart ``` 重启完成后,您就可以使用 root 用户登录到 Fedora 14 的...

    Ubuntu18 root账号自动登陆.docx

    这是一个隐藏文件,你可以通过终端使用`vim`或`vi`编辑器打开,或者在文件管理器中显示隐藏文件。在文件末尾添加`tty -s && mesg n || true`,确保其前面有空格。这样设置是为了避免某些不必要的提示信息。 最后,...

    Linux使用suid vim.basic文件实现提权

    保存并关闭文件后,新的root权限用户就被添加到了系统中。可以通过`su toor`切换到新用户,然后用`id`命令确认是否获得了root权限。 总结来说,利用SUID的`vim.basic`实现提权,主要是通过修改`/etc/passwd`文件,...

    Ubuntu 16.04无法切换root权限问题的解决

    在Ubuntu 16.04系统中,root权限是管理员级别的权限,允许用户执行系统级操作,如安装软件、管理用户、修改系统配置等。然而,有时用户可能会遇到无法切换到root权限的问题,这通常是由于某些配置错误或者权限设置...

    ubuntu如何运行.sh文件,.sh文件运行提示脚本异常

    ubuntu执行.sh文件,1 .sh文件是Ubuntu下可执行文件,首先需要确定它的权限是否是可执行的,2、 用vim打开sh文件,3、查看文件格式:4. 修改文件格式: 5. 保存退出: 6. 执行:./filename 注意:不可以用sh ...

    Vim不常见但是很实用的命令技巧.doc

    sudo tee %`,这将以root权限保存文件。 6. **自动补全**: - Vim内置的自动补全功能,当你在文件中输入部分单词后,按 `Ctrl+n` 可以看到基于已输入内容的补全建议。 7. **比较文件差异**: - 使用 `vimdiff` ...

    linux得vim包安装

    建议初学者查阅Vim教程,熟悉基本操作,如移动光标、编辑文本、保存文件等。 8. **配置Vim**:Vim允许用户自定义配置,你可以创建`.vimrc`文件在主目录下,以设定个性化设置,如颜色方案、快捷键等。 9. **更新与...

    VI及VIM命令详解.docx

    sudo tee %`:以普通用户身份编辑,root权限保存。 3. 模式转换 - **命令行模式**:用于移动光标、删除、复制等操作,按`i/a/o/O`进入插入模式。 - **插入模式**:允许输入文本,按`ESC`返回命令行模式。 - **...

    忘记mysql 的root密码怎么办

    1. 首先,我们需要修改 MySQL 配置文件 `my.cnf`,可以使用 `vim` 命令打开文件,添加 `skip-grant-tables` 配置,保存后重启数据库。 2. 重启数据库后,我们可以使用以下命令连接 MySQL:`./mysql -p` 3. 连接成功...

    linux赋予普通用户修改系统时间权限

    在Linux环境中,为了保证系统的安全性,通常只有管理员(通常是root用户)具有修改系统时间的权限。然而,在某些情况下,我们可能需要让普通用户也能够修改系统时间,比如在多用户环境中进行时间同步或者进行特定...

    linux普通用户su root切换提示没有文件或目录的解决方法

    在单用户模式下,使用文本编辑器(如`vim`)打开`/etc/passwd`文件。这个文件包含了所有用户的登录信息,包括shell路径。确保你的用户条目(如`username:x:UID:GID:User Info:Home Directory:Login Shell`)的`Login...

    非root安装mysql.docx

    保存并关闭文件,然后执行`source .bash_profile`使改动生效。 启动MySQL服务: ``` mysqld --defaults-file=/home/mysql/my.cnf & ``` 首次启动后,需要设置root用户的密码: 1. 连接到MySQL: ``` mysql -u...

    最牛的Linux Shell 命令.pdf

    3. **以普通用户身份在VIM中保存ROOT用户文件** `:w !sudo tee %` 在VIM编辑器中,如果你试图编辑一个需要root权限才能保存的文件,可以使用此技巧。`:w !sudo tee %`命令会利用`tee`工具将VIM中的内容通过`sudo`...

    Centos下搭建golang环境及vim高亮Go关键字设置的方法

    3. **返回普通用户权限**:完成解压后,无需保持root权限,返回到普通用户状态。 4. **设置环境变量**:打开并编辑`~/.bash_profile`文件,添加以下行以定义`GOROOT`,`GOBIN`和`GOPATH`,并更新`PATH`: ``` ...

Global site tag (gtag.js) - Google Analytics