快乐的Linux命令行笔记-文件权限
第一天的笔记-基本的命令和使用方法
第二天的笔记-操作文件
第三天的笔记-查阅命令文档并创建命令别名
第四天的笔记-重定向标准输入和输出以及处理查询结果
第五天的笔记-命令的展开
第六天的笔记-快捷键
总结
今天学习了文件权限的意义, 如何修改文件权限, 修改掩码值以及如何添加用户和用户组。
身份信息
使用以下命令来查看关于当前登陆用户的身份信息:
1 |
|
结果:
1 |
|
不同的系统的输出看起来不一样。
所有的用户和用户组被定义在 /etc/passwd
和 etc/group
这两个文件中。
文件读写权限
使用
1 |
|
来显示文件的权限,结果有可能是这样的:
1 |
|
结果中的第一个字符表示文件的类型, 还有以下其他的类型:
属性 | 文件类型 |
---|---|
- | 一个普通文件 |
d | 一个目录 |
l | 一个符号链接, 所有的符号链接的剩余的属性总是 rwxrwxrwx , 真正的属性需要查看源文件 |
c | 一个字符设备文件, 表示按照字节流来处理数据的设备, 比如终端机或者调制解调器 |
b | 一个块设备文件, 表示按照数据块处理数据的设备, 比如一个硬盘或者一个CD-ROM盘 |
剩下的属性代表着文件读写的权限:
Owner | Group | World |
---|---|---|
rwx | rwx | rwx |
权限属性:
属性 | 文件 | 目录 |
---|---|---|
r | 允许读取文件内容 | 允许列出目录中的文件,前提是目录中设置了x属性 |
w | 允许写入内容或截断文件, 但是不允许对文件执行重命名或删除, 重命名或删除是由目录的属性决定的 | 允许在目录下新建, 删除或重命名文件, 前提是目录中设置了x属性 |
x | 允许将文件作为程序来执行, 使用脚本语言编写的文件必须设为可读才能被执行 | 允许进入目录(cd) |
更改文件或目录权限
使用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 |
将一个文件的权限修改为只有拥有者可读可写:
1 |
|
符号表示法
使用符号来修改文件权限
缩写 | 意义 |
---|---|
u | “user”的缩写 |
g | “group”的缩写 |
o | “other”的缩写 |
a | “all”的缩写 |
这里other代表拥有者和拥有者的用户组之外的其他人。
如果想指定拥有者对该文件的权限是可读可写, 那么可以这样:
1 |
|
如果想指定所有人对该文件的权限, 可以直接这样写:
1 |
|
下面这行命令代表赋予用户组和其他人读写的权限, 如果已经有该权限, 则移除
1 |
|
修改默认权限
使用 umask
命令修改默认权限(掩码值), 比如:
1 |
|
此时, foo.txt的权限为rw-r-r
。umask
使用八进制表示权限
0022表示000 000 010 010
, 出现1的位置, 删除原来的权限, 0则保留。
更改身份
su命令
可以指定用户运行一个shell
1 |
|
如果不指定用户名, 则默认是超级用户, 输入好超级用户的密码之后就可以以超级用户身份下运行shell了, 退出输入exit
也可以只使用超级用户身份运行一行命令:
1 |
|
sudo命令
sudo和su命令的差异:
- 管理员可以配置sudo命令
- sudo命令需要的密码是当前用户的密码, 而su命令是管理员的密码
更改文件所有者和用户组
语法:
1 |
|
参数 | 结果 |
---|---|
bob | 更改文件拥有者为bob |
bob:users | 更改文件拥有者为bob, 文件用户组为users |
:admins | 文件用户组更改为admins, 拥有者不变 |
bob: | 文件拥有者为bob, 用户组改为bob所在的用户组 |
chgrp
在旧版的unix系统中, chown不能更改用户组所有权, 可以使用chgrp命令来更改用户组所有权
添加一个用户
1 |
|
添加一个名为bill的用户并为bill设置密码
添加一个用户组
1 |
|
添加一个名为test用户组
将已有的用户放到其他用户组
1 |
|