Linux Command For System Admin

User Management sudo

查看所有有 sudo 权限的用户

sudo cat /etc/sudoers

查看自己账户的 sudo 权限

sudo -l

给予某个用户 sudo 权限

首先你得使用一个已经有 sudo 权限的用户, 然后你需要通过修改 /ect/sudoers 配置文件来指定哪些用户有 sudo 权限.

sudo chmod u+w /etc/sudoers # 给予 /ect/sudoers 写权限
sudo vim /etc/sudoers       # 修改 /ect/sudoers 配置文件
sudo chmod u-w /etc/sudoers # 收回 /ect/sudoers 写权限

进入配置文件后, 搜索 root  ALL=(ALL)   ALL 你会定位到允许 root 用户 sudo 的一行. 然后再下面加上如下内容. 其中 最后的 ALL 表示允许直接 sudo, NOPASSWD: ALL 表示允许不输入密码的情况下进行 sudo:

${USERNAME}  ALL=(ALL)   ALL
${USERNAME}  ALL=(ALL)   NOPASSWD: ALL

切换成超级用户 root

sudo su -

切换成其他用户

sudo su - ${USERNAME}

File Directory Permission chmod

chmod 详解

chmod 是 Linux 下的一个命令, 用于控制文件和目录的访问权限, 简单来说, 就是 允许/禁止, 哪些用户, 对哪些文件, 进行哪些操作.

Principal (当事人):

有三种不同类型的用户可对文件或目录进行访问: 文件所有者, 同组用户, 其他用户.

文件所有者一般是文件的创建者. 文件所有者可以允许同组用户有权访问文件, 还可以将文件的访问权限赋予系统中的其他用户. 在这种情况下, 系统中每一位用户都能访问该用户拥有的文件或目录.

  • u: 目录或者文件的当前的用户

  • g: 目录或者文件的当前的群组

  • o: 除了目录或者文件的当前用户或群组之外的用户或者群组

  • a: 所有的用户及群组

如果不指定, 默认是 u.

Permission (文件的权限):

文件或目录的访问权限分为 只读, 只写 和 可执行 三种. 以文件为例, 只读权限表示只允许读其内容, 而禁止对其做任何的更改操作. 可执行权限表示允许将该文件作为一个程序执行. 文件被创建时, 文件所有者自动拥有对该文件的读, 写和可执行权限, 以便于对文件的阅读和修改. 用户也可根据需要把访问权限设置为需要的任何组合.

  • r: 读权限, 用数字 4 表示

  • w: 写权限, 用数字 2 表示

  • x: 执行权限, 用数字 1 表示

  • -: 删除权限, 用数字 0 表示

  • s: 特殊权限

chmod 命令语法有两种形式:

文字设定法:

chmod [principal] [+|-|=] [permission] filename

数字设定法:

chmod [permission] filename

例如将连接远程服务器的 ssh key 设置为允许创建者用户只读, 其他用户什么都不允许: chmod 400 ~/ec2.pem. 可以看出数字设定法的格式是 3 个 0~7 的八进制数, 数值是通过 2 进制编码决定了 r/w/x 的权限, 0 表示什么都不能做. 顺序分别是 u/g/o. 第一位 4 表示允许创建者用户只读, 后两位分别表示 当前群组以及其他用户什么都不能做.

查看文件的权限

ls -l 命令可以列出文件和目录的访问权限. 其中第一列表示了当前文件的访问权限.

第一列共有10个字符, 第一个字符指定了文件类型. 在通常意义上, 一个目录也是一个文件. 如果第一个字符是横线, 表示是一个非目录的文件. 如果是d, 表示是一个目录. 从第二个字符开始到第十个共9个字符, 3个字符一组, 分别表示了3组用户(顺序为 u/g/o) 对文件或者目录的权限. 权限字符用横线代表空许可, r代表只读, w代表写, x代表可执行.