Linux命令(shell)从入门到精通 学习笔记之1 文件安全与权限
1.ls -l 命令:
最前面的一位表示文件类型:
d 目录。
l 符号链接(指向另一个文件)。
s 套接字文件。
b 块设备文件。
c 字符设备文件。
p 命名管道文件。
- 普通文件,或者更准确地说,不属于以上几种类型的文件。
后面的连续九位,表示文件的读写权限:
r w x:文件属主权限 这是前面三位
r - x:同组用户权限 这是中间三位
r - x:其他用户权限 这是最后三位
2. 新创建文件(夹)的权限
目录:
可以看到,新创建的目录 myshell 的权限是:rwx r-x r-x, 即:
onwer 用户具有 read、write、execute 权限,group 和其他用户具有 read、execute权限。
文件:
可以看到,新创建的文件 myfile 的权限是:rw- r-- r--。
文件在新创建的状态下,不会被赋予执行的权限,这是出于安全性的考虑。
文件权限修改:
# chmod 777 myfile // 为所有用户赋予了该文件的所有权限。
# chmod a-x myfile // 回收所有用户的执行权限(注意 a-x,-x 前面没有空格)。
# chmod u+x,go-w myfile // 赋予文件属主执行权限,同时回收其他用户的写权限
3. chmod 命令两种模式:符号模式和绝对模式
符号模式:
# u: 文件属主
# g: 同组用户
# o: 其他用户
# a: 所有用户
+ 增加权限
- 回收权限
如:
chmod a-x myfile // 剥夺所有用户的文件执行权限
chmod og-w myfile
chmod g+w myfile
chmod u+x myfile
chmod go+x myf
chmod u+x,o-w myfile
绝对模式:
004 可读
002 可写
001 可执行
000 没有权限
chmod 750 myfile
对文件myfile增加权限:
7 = 4 + 2 + 1 (属主可读、写、执行)
5 = 4 + 1 (同组用户可读、执行)
0 = 0 (其他用户没有任何权限)
如果对一个目录执行:
chmod 740 *
表示对该目录下的所有文件赋予740权限,但以后新增的目录,权限仍是默认的 rw- r-- r--
4. 目录的权限
对目录而言,意味着:
读权限:可以列出该目录中的文件
写权限:可以在该目录中创建或删除文件
执行权限:可以搜索或进入该目录
目录的权限将会覆盖该目录中文件的权限。例如,如果目录 docs 具有如下的权限:
而其中的文件 pay 的权限为:
那么 admin 组的用户将无法编辑该文件,因为它所属的目录不具有这样的权限。
该文件对任何用户都可读,但由于它所在的目录并未给 admin 组的用户赋予执行权限,所以该组的用户都将无法访问该目录,他们将会得到“访问受限”的错误消息。
5.suid 和 guid(了解)
suid 意味着如果某个用户对属于自己的 shell 脚本设置了这种权限,那么其他用户在执行这一脚本时也会具有其属主的相应权限。
如文件 myfile 具有 741 的权限,要对其设置suid,只需在其权限数字前加 4 (guid 是加 2,两个都设置就是 4+2=6),
6. /etc/passwd 文件
该文件中列出了系统合法的用户相关信息。
7. chown 和 chgrp