Linux命令(shell)从入门到精通 学习笔记之1 文件安全与权限

时间:2022-01-21 06:44:30

1.ls -l 命令:

Linux命令(shell)从入门到精通 学习笔记之1 文件安全与权限

最前面的一位表示文件类型:

d 目录。

l 符号链接(指向另一个文件)。

s 套接字文件。

b 块设备文件。

c 字符设备文件。

p 命名管道文件。

- 普通文件,或者更准确地说,不属于以上几种类型的文件。

后面的连续九位,表示文件的读写权限:

r w x:文件属主权限 这是前面三位

r - x:同组用户权限 这是中间三位

r - x:其他用户权限 这是最后三位

2.新创建文件(夹)的权限

目录:

Linux命令(shell)从入门到精通 学习笔记之1 文件安全与权限

可以看到,新创建的目录myshell的权限是:rwxr-xr-x,即:

onwer用户具有read、write、execute权限,group和其他用户具有read、execute权限。

文件:

Linux命令(shell)从入门到精通 学习笔记之1 文件安全与权限

可以看到,新创建的文件myfile的权限是:rw-r--r--。

文件在新创建的状态下,不会被赋予执行的权限,这是出于安全性的考虑。

文件权限修改:

Linux命令(shell)从入门到精通 学习笔记之1 文件安全与权限

#chmod777myfile 为所有用户赋予了该文件的所有权限。

#chmoda-xmyfile 回收所有用户的执行权限(注意a-x,-x前面没有空格)。

Linux命令(shell)从入门到精通 学习笔记之1 文件安全与权限

#chmodu+x,go-wmyfile 赋予文件属主执行权限,同时回收其他用户的写权限

3.chmod命令两种模式:符号模式和绝对模式

符号模式:

#u:文件属主

#g:同组用户

#o:其他用户

#a:所有用户

+增加权限

-回收权限

如:

chmoda-xmyfile 剥夺所有用户的文件执行权限

chmodog-wmyfile

chmodg+wmyfile

chmodu+xmyfile

chmodgo+xmyf

chmodu+x,o-wmyfile

绝对模式:

004 可读

002 可写

001 可执行

000 没有权限

chmod750myfile

对文件myfile增加权限:

7=4+2+1(属主可读、写、执行)

5=4+1(同组用户可读、执行)

0=0 (其他用户没有任何权限)

如果对一个目录执行:

chmod740*

表示对该目录下的所有文件赋予740权限,但以后新增的目录,权限仍是默认的rw-r--r--

4.目录的权限

对目录而言,意味着:

读权限:可以列出该目录中的文件

写权限:可以在该目录中创建或删除文件

执行权限:可以搜索或进入该目录

目录的权限将会覆盖该目录中文件的权限。例如,如果目录docs具有如下的权限:

Linux命令(shell)从入门到精通 学习笔记之1 文件安全与权限

而其中的文件pay的权限为:

Linux命令(shell)从入门到精通 学习笔记之1 文件安全与权限

那么admin组的用户将无法编辑该文件,因为它所属的目录不具有这样的权限。

该文件对任何用户都可读,但由于它所在的目录并未给admin组的用户赋予执行权限,所以该组的用户都将无法访问该目录,他们将会得到“访问受限”的错误消息。

5.suid和guid(了解)

suid意味着如果某个用户对属于自己的shell脚本设置了这种权限,那么其他用户在执行这一脚本时也会具有其属主的相应权限。

如文件myfile具有741的权限,要对其设置suid,只需在其权限数字前加4(guid是加2,两个都设置就是4+2=6),

Linux命令(shell)从入门到精通 学习笔记之1 文件安全与权限

Linux命令(shell)从入门到精通 学习笔记之1 文件安全与权限

6./etc/passwd文件

该文件中列出了系统合法的用户相关信息。

7.chown和chgrp

chown:文件的所有者和管理员能用这一命令改变文件的所有权,改变之后,原来的所有者,就不能回收他的权限了,如果真要回收,必须求助与管理员。

如:

Linux命令(shell)从入门到精通 学习笔记之1 文件安全与权限

将myfile的所有者,从root变更为用户zhy(zhy必须是在/etc/passwd中合法的)。

chgrp:改变文件所属的组。

如:

Linux命令(shell)从入门到精通 学习笔记之1 文件安全与权限

将myfile所属的组,从root改成了zhy组。

(

#groups

查看当前登录用户所在的组内所有的成员。

#id

Linux命令(shell)从入门到精通 学习笔记之1 文件安全与权限

查看当前登录用户的信息

#whoami

查看系统当前是被哪个用户登录的。

#groupszhy

查看zhy用户所在的组,以及组内成员。

用户组的特性在系统管理中为系统管理员提供了极大的方便,但安全性也是值得关注的,如某个用户下有对系统管理有最重要的内容,最好让用户拥有独立的用户组,或者是把用户下的文件的权限设置为完全私有;另外root用户组一般不要轻易把普通用户加入进去。

8.umask命令

一个用户登录到系统之后,他所创建的文件有一个缺省的权限,这个权限可以由管理员配置,也可以由用户登录之后用umask命令自己配置,这种配置在退出该shell或使用另外的umask命令之前一直有效。

一般来说,umask命令是在/etc/profile文件中设置的,每个用户在登录时都会引用这个文件,所以如果希望改变所有用户的umask,可以在该文件中加入相应的条目。如果希望永久性地设置自己的umask值,那么就把它放在自己$home目录下的.profile或.bash_profile文件中。

umask值与权位:

Linux命令(shell)从入门到精通 学习笔记之1 文件安全与权限

通过:

#umask

命令查看当前umask值(后三位):

Linux命令(shell)从入门到精通 学习笔记之1 文件安全与权限

可以看到,当前umaks值为022,通过上面的表,就可以知道,umask对应的文件权限是644,目录权限是755。

如果没有上面的表,还有另外一种计算方法:

777: rwxrwxrwx

022: ----w--w-

取上面两行中没有匹配的位就是目录的权限:

rwxr-xr-x

换成值就是:755(目录权限)

再将上面算出的结果(rwxr-xr-x)中为x的位换成-,就是文件的权限:

rw-r--r--

换成值就是:644(文件权限)

如果希望改变系统的umask值,可以这样:

#umask007

例:

Linux命令(shell)从入门到精通 学习笔记之1 文件安全与权限

可以看到,文件的权限确实被改变了。

9.符号链接

是一个指向文件的指针,在我理解就是window下的快捷方式:

Linux命令(shell)从入门到精通 学习笔记之1 文件安全与权限

.profile就是/usr/local/menus/sales.profile的快捷方式了,这样很方便,比如我们有多个用户,比如50个,可以为他们分别创建一个.profile文件,都指向这同一个sales.profile文件,以后我们修改一个sales.profile就可以了,不用对每个用户的.profile做修改。

创建符号链接的命令格式:

#ln[-s]source_pathtarget_path

source_path是要指向的文件

target_path就是指针(快捷方式)

例:

#ln-s/usr/opt/monitor/regstar/reg.log/var/adm/logs/monitor.log

在新安装的系统上,通常要进行这样的操作,在/var目录中创建一个指向/tmp目录的链接,因为有些应用程序认为存在/var/tmp目录(然而它实际上并不存在),有些应用程序在该目录中保存一些临时文件。为了使所有的临时文件都放在一个地方,可以使用ln命令在/var目录下建立一个指向/tmp目录的链接:

#ln-s/tmp/var/tmp

以后,如果有应用程序试图将一些临时文件放在/var/tmp下,实际上它是被存放在了/tmp目录下了,因为/var/tmp只是一个符号链接而已。