- id:显示用户身份标识
- chmod:更改文件的模式
- umask:设置文件的默认权限
- su:以另一个用户的身份运行shell
- sudo:以另一个用户的身份来执行命令
- chown:更改文件所有者
- chgrp:更改文件所属群组
- passwd:更改用户密码
所有者、组成员和其他用户
更改权限
对文件和目录的访问权限是按照读访问、写访问以及执行访问来定义的。
chmod——更改文件模式
chmod命令支持两种不同的改变文件模式的方式——八进制数字表示法和符号表示法。
八进制数字表示法
八进制 | 二进制 | 文件模式 |
---|---|---|
0 | 000 | — |
1 | 001 | –x |
2 | 010 | -w- |
3 | 011 | -wx |
4 | 100 | r– |
5 | 101 | r-x |
6 | 110 | rw- |
7 | 111 | rwx |
通过使用3位八进制数,我们可以分别设置文件所有者、组成员和其他所有用户(world)的文件模式。
$ chmod 600 foo.txt
通过传递参数600,我们可以设置文件所有者具有读写权限,而取消用户和其他用户(world)的所有权限。常用数对:7(rwx)、6(rw-)、5(r-x)、4(r–)、0(—)。
符号表示法
符号表示发分为三部分:更改会影响谁、要执行那种操作以及要设置哪种权限。可以通过u、g、o和a的组合来制定要影响的对象。
符号 | 含义 |
---|---|
u+x | 为文件所有者添加可执行权限 |
u-x | 删除文件所有者的可执行权限 |
+x | 为文件所有者、所属群组和其他所有用户添加可执行权限,等价a+x |
o-rw | 删除其他用户的读写权限 |
go=rw | 设置所属群组和其他用户仅具有读写权限 |
u+x,go=rx | 为文件所有者添加可执行权限,同时设置所属群组和其他用户仅具有读、执行权限 |
umask——设置默认权限
umask命令控制着创建文件时指定给文件的默认权限。它使用八进制表示法来表示从文件模式属性中删除一个位掩码。
可以发现所属群组和其他用户没有获得文件的写权限,没有获得的原因在于掩码值。
原始文件模式 | — | rw- | rw- | rw- |
---|---|---|---|---|
掩码 | 000 | 000 | 010 | 010 |
结果 | — | rw- | r– | r– |
观察掩码出现1的地方,将会发现1的位置对应的属性被删除。这就是掩码的操作方式。掩码的二进制数值中每个出现1的位置,其对应的属性都被取消。
更改身份
在很多时候,我们会发现可以拥有另一个用户的身份是很必要的。我们经常需要获得超级用户的特权来执行一些管理任务。有三种方法用来转换身份,具体如下:
- 注销系统并以其他用户的身份重新登录系统。
- 使用su命令。
- 使用sudo命令。
在shell会话的状态下,使用su命令将允许你假定为另一个用户的身份,既可以以这个用户的ID来启动一个新的会话,也可以以这个用户的身份来发布一个命令。使用sudo将允许管理者创建一个称为/etx/sudoer的配置文件,并且定义一些特定的命令,这些命令只有被赋予为假定身份的用户才允许被执行。
su——以其他用户和组ID的身份来运行shell
su命令用来以另一个用户的身份来启动shell。
如果包含选项“-l”选项,那么得到的shell会话洁面将是用于指定用户的登陆shell(login shell)界面。这就意味着,该指定用户的运行环境将被加载,而且其工作目录也将更改为该指定用户的主目录。如果没有指定用户,那么默认假定为超级用户。-l可以缩写为-。我们可以通过以下的操作来以超级用户的身份启动shell。
$ su -
我们也可以使用su 命令执行单个命令,而不需要开启一个新的交互式命令界面,
$su -c 'command'
使用这种格式,单个命令行将被传递到一个新的shell环境下进行执行。
sudo——以另一个身份执行命令
使用sudo命令并不需要输入超级用户的密码。使用sudo命令时,用户只需要输入自己的密码进行认证。
其他命令
- chown:更改文件所有者和所属群组
- chgrp:更改文件所属群组
- passwd:更改用户密码