8. 测试模拟用户:
a. root:jerry
b. user: andy, alex, bob, dave, john, mary, zhao
9. 权限管理:
a. -rw-r–r– 1 root root 37367 Jul 4 14:36 install.log
i. 左三:定义user权限,中三:定义属组权限,右三,other权限
ii. 每个文件都有属主属组和其他权限,
iii. 进程的属主与文件的属主是否相同,如果相同,则应用属主权限(左三位),
iv. 否则,检查进程的属主是否属于文件的属组,如果是,则应用属组权限,
v. 否则,就只能应用other权限
b. 文件:测试前注意将上一级目录权限更改为777来验证里面的文件
i. r:可以使用文件查看类工具获取其中的内容
ii. w:可修改文件的数据
iii. x:可将此文件运行为进程
iv. -w-:文件只有读权限,可以使用echo追加数据到文件,但是看不到文件的内容,用vim打开也是空的,显示不出来
c. 目录:
i. r:可使用ls命令获取其下所有文件列表
ii. w:可修改此目录下的文件列表,创建或删除文件,只有rw,和只有r一样。只有w,不能看目录,不能创建,不能删除
iii. x:可cd至此目录,可使用ll获取所有文件的详细属性信息
d. 权限组合机制:mode:rwxrwxrwx
i. — 000:0
ii. –x 001:1
iii. -w- 010:2
iv. -wx 011:3
v. r– 100:4
vi. r-x 101:5
vii. rw- 110:6
viii. rwx 111:7
e. 默认权限
i. 普通用户在/tmp/下创建目录默认权限
1. drwxrwxr-x. 2 zhao zhao 6 Jul 24 09:16 /tmp/zhao
ii. root在/tmp/下创建目录默认权限
1. drwxr-xr-x. 2 root root 6 Jul 24 09:20 /tmp/jerry
10. 权限管理命令:
a. 注意:用户只能修改属主为自己的那些文件的权限
b. 注意:属主属组只能管理员才能改
c. 注意:管理员可以创建目录,而不管文件的权限配置,
d. 注意:管理员可以更改属主为用户的文件的权限配置
e. 文件设置为000时,连用户都不能做任何修改
f. chmod命令:change file mode bits
i. 三类用户:
1. u:user,属主
2. g:group,属组
3. o:other,其他
4. a:all,所有
ii. chmod [OPTION]… MODE[,MODE]… FILE… 直接操作一类用户的所有权限位rwx
1. chmod执行权限关掉了,可以复制出来的时候重新制定权限来重新设置权限
2. 赋权表示法:u=rw a=r
a. chmod u=rwx,g=rw,o= /tmp/jerry 则权限为:drwxrw—-.
3. 授权表示法:直接操作一类用户的一个权限
a. chmod o+rx, og-x /tmp/jerry +:添加,-去除
b. chmod +w /tmp/jerry 表示只有用户属主增加写权限
[root@localhost /hello]#ll
total 0
———-. 1 root root 0 Aug 30 12:55 a
[root@localhost /hello]#chmod +w a
[root@localhost /hello]#ll
total 0
–w——-. 1 root root 0 Aug 30 12:55 a
c. chmod +r /tmp/jerry 表示所有的类都添加了读权限
d. chmod +x /tmp/jerry 表示所有的类都添加了执行权限
e. 示例
[root@localhost /etc]#ll yum.conf
-rw-r–r–. 1 root root 970 Dec 3 2015 yum.conf
[root@localhost /etc]#chmod +x yum.conf
[root@localhost /etc]#ll yum.conf
-rwxr-xr-x. 1 root root 970 Dec 3 2015 yum.conf
4. chmod [OPTION]… OCTAL-MODE FILE… 8进制直接赋值,要全写,不能省略
a. chmod 234 /tmp/jerry
5. chmod [OPTION]… –reference=RFILE FILE… 和参考文件的属性一样
a. chmod –reference=/,,, /tmp/jerry
i. chmod –reference=/etc/passwd /tmp/jerry
6. 选项:
a. -R: –recursive 递归修改,一般用于授权表示法,其他不建议使用
i. chmod -R 0 /tmp
7. X:一般是递归修改权限时,为防止文件夹里面的二进制程序拥有执行权限,而文件夹可以查看,用 X ,只给目录x加权限,不给文件加x,当文件有x时无影响,只给目录加执行权限,为了安全
a. # chmod -R o=rwX /test 目录下的文件权限rw- 目录权限rwx
8. 当用户设置目录权限为000,连自己都不能看里面的文件,复制文件
g. 思考:用户对目录有写权限,但对目录下的文件没有写权限,能否修改此文件内容?能否删除此文件?
i. 不能修改此文件内容,但是能删除此文件
h. umask: 文件的权限反向掩码,
i. umask:# umask 027 设置
ii. umask -p >> ~/ .bashrc 添加umark到配置文件中
iii. 全局设置:/etc/bashrc 用户设置:~/,bashrc
iv. 新建文件:
1. 666-umask
a. 用户默认:002 666-002=664
i. -rw-rw-r–. 1 zhao zhao 0 Aug 3 21:40 i
b. root默认:022 666-022=644
i. -rw-r–r–. 1 root root 0 Aug 3 21:39 h
v. 新建目录:
1. 777-umask
a. 用户默认:002 777-002=775
i. drwxrwxr-x. 2 zhao zhao 6 Aug 3 21:40 h
b. root默认:022 777-022=755
i. drwxr-xr-x. 2 root root 6 Aug 3 21:39 g
vi. 之所以文件用666去减,表示文件默认不能拥有执行权限,如果减得结果中有执行权限位,则需要将该位加1,
1. umask: 125 设置umask125,更新设置,新建文件和目录
2. 666-125=541 理论 r-xr—-x
a. -rw-r—w-. 1 andy andy 0 Aug 3 21:51 file 实验得642
3. 777-125=652 理论 rw-r-x-w-
a. drw-r-x-w-. 2 andy andy 6 Aug 3 21:51 file1 实验得652
4. 如果所得结果某位有执行(奇数)权限,将其权限+1
5. mask意思为按位屏蔽,1为该位要屏蔽。
a. 666 110 110 110
b. 125 001 010 101 umask
c. 642 110 100 010 真实的结果
d. 屏蔽位为1,则该位上有1,则屏蔽为0,因为666已经将执行权限删除了,所有结果中不应该有执行权限。不应该用减,直接减不对,这种又不容易计算,所以用直接计算和+1来方便计算
vii. umask 查看当前,umask越大,得出的默认权限越小,别的用户不能随意访问,为了安全起见,文件即使没有权限,root也能访问
1. 用户默认:002
2. root默认:022
viii. 注意:此类设定仅对当前shell进程有效。如果要永久有效,需写入用户家目录下的.bashrc
i. install: copy files and set attributes复制目录的同时修改权限
i. 单源复制
1. install [OPTION]… [-T] SOURCE DEST
ii. 多源复制
1. install [OPTION]… SOURCE… DIRECTORY
2. install [OPTION]… -t DIRECTORY SOURCE…
iii. 创建目录
1. install [OPTION]… -d DIRECTORY…
iv. 常用选项:
1. -m,–mode==MODE: 设置目标文件权限,默认755
2. -o,–owner==OWNER: 设置目标文件属主
3. -g,–group=GROUP: 设置目标文件属组
a. install -g zhao /etc/virc /tmp/v 复制文件修改文件名,修改文件属组
v. # install -m 640 /etc/inittab /root 复制的同时设置属性
j. chown:change file owner and group
i. chown将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID;组可以是组名或者组ID;文件是以空格分开的要改变权限的文件列表,支持通配符。系统管理员经常使用chown命令,在将文件拷贝到另一个用户的名录下之后,让用户拥有使用该文件的权限。命令中的:可以用 . 来代替
ii. chown mail:group1 log2012.log log2013.log 将两个文件的属主改为mail,属组改为group1
iii. chown zhao:group1 /tmp/{v,virc}
iv. chown -R :mail test6 递归修改组
k. chgrp – change group ownership 更改属组
i. # chgrp group file 将file的属组更换为group
l. mktemp:create a temporary file or directory
i. mktemp会将创建的临时文件名直接返回,因此,可直接通过命令引用保存
ii. mktemp /tmp/mytmp.XXXXXXX
iii. # myfile=$(mktemp /tmp/mytmp.XXXXXXXX) 应该是变量赋值
iv. # echo $myfile 显示变量的值
————————————————————————————–
chmod命令用于改变linux系统文件或目录的访问权限。用它控制文件或目录的访问权限。该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。
Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作。
文件或目录的访问权限分为只读,只写和可执行三种。以文件为例,只读权限表示只允许读其内容,而禁止对其做任何的更改操作。可执行权限表示允许将该文件作为一个程序执行。文件被创建时,文件所有者自动拥有对该文件的读、写和可执行权限,以便于对文件的阅读和修改。用户也可根据需要把访问权限设置为需要的任何组合。
有三种不同类型的用户可对文件或目录进行访问:文件所有者,同组用户、其他用户。所有者一般是文件的创建者。所有者可以允许同组用户有权访问文件,还可以将文件的访问权限赋予系统中的其他用户。在这种情况下,系统中每一位用户都能访问该用户拥有的文件或目录。
每一文件或目录的访问权限都有三组,每组用三位表示,分别为文件属主的读、写和执行权限;与属主同组的用户的读、写和执行权限;系统中其他用户的读、写和执行权限。当用ls -l命令显示文件或目录的详细信息时,最左边的一列为文件的访问权限。
[root@localhost ~]#ll
total 12
drwxr-xr-x 2 root root 4096 Mar 17 00:09 source
drwxr-xr-x 3 root root 4096 Mar 17 01:12 target
-rw-r–r– 1 root root 53 Mar 19 00:44 test.txt
1、