linux 相关命令-权限

114 阅读2分钟

1. 更改文件/目录的拥有者 chown

chown(英文全拼:change owner)命令用于设置文件所有者和文件关联组的命令。

Linux/Unix 是多人多工操作系统,所有的文件皆有拥有者。利用 chown 将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户 ID,组可以是组名或者组 ID,文件是以空格分开的要改变权限的文件列表,支持通配符。

chown 需要超级用户 root 的权限才能执行此命令。

只有超级用户和属于组的文件所有者才能变更文件关联组。非超级用户如需要设置关联组可能需要使用 chgrp 命令。

使用权限 : root

语法

chown [-cfhvR] [--help] [--version] user[:group] file...

参数 :

  • user : 新的文件拥有者的使用者 ID
  • group : 新的文件拥有者的使用者组(group)
  • -c : 显示更改的部分的信息
  • -f : 忽略错误信息
  • -h :修复符号链接
  • -v : 显示详细的处理信息
  • -R : 处理指定目录以及其子目录下的所有文件
  • --help : 显示辅助说明
  • --version : 显示版本

实例

把 /var/run/httpd.pid 的所有者设置 root:

chown root /var/run/httpd.pid

将文件 file1.txt 的拥有者设为 runoob,群体的使用者 runoobgroup :

chown runoob:runoobgroup file1.txt

将当前前目录下的所有文件与子目录的拥有者皆设为 runoob,群体的使用者 runoobgroup:

chown -R runoob:runoobgroup *

把 /home/runoob 的关联组设置为 567 (关联组ID),不改变所有者:

chown :567 /home/runoob

2. 让用户有sudo能力

vi /etc/sudoers 查看有sudo的账户 或者执行 visudo

有时候,linux下面运行sudo命令,会提示类似:  xxx is not in the sudoers file.  This incident will be reported.  这里,xxx是用户名称,然后导致无法执行sudo命令,这时候,如下解决

  1. 进入超级用户模式。也就是输入"su ",系统会让你输入超级用户密码,输入密码后就进入了超级用户模式。(当然,你也可以直接用root账户)
  2. 添加文件的写权限。也就是输入命令"chmod u+w /etc/sudoers"。 
  3. 编辑/etc/sudoers文件。也就是输入命令"vim /etc/sudoers",进入编辑模式,找到这一 行:"root ALL=(ALL) ALL",在下面添加"xxx ALL=(ALL) ALL"(这里的xxx是你的用户名),然后保存退出。(使用wq!, 不是wq)
  4. 撤销文件的写权限。也就是输入命令"chmod u-w /etc/sudoers"。  然后就行了。
设置普通用使用sudo免去使用密码的步骤

image.png

到/etc/sudoers中 添加相关的账户的 NOPASSWD: ALL ( xxx 为账户)

xxx ALL=(ALL:ALL) NOPASSWD: ALL

3. 切换账户的命令 su