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代表可执行.