大家好,今天小编为大家分享关于gg修改器root权限管理_如何给root权限给GG修改器的内容,赶快来一起来看看吧。
Linux 7 Basic NO.5
大家好!本节将讲解关于通过文件系统权限如何去控制Linux系统中文件的访问。如有不足,请指出并指正。 ^-^
Linux 权限有以下三种:
基本权限
特殊权限
高级权限
可以使用命令ls -l查看文件的权限
[root@foundation0 ~]# whatis ls
ls (1) – list directory contents
ls (1p) – list directory contents
eg:
-l表示显示长列表格式,通过man ls可以查找到相应的帮助
[root@foundation0 ~]# ls -l /etc/passwd
-rw-r–r–. 1 root root 2153 Mar 16 2016 /etc/passwd
当然也可执行ll命令进行查看,实际上ll就是ls -l,如下,ll是ls -l的别名
接下来,对ls -l显示出来的内容进行解析
-rw-r–r–. 1 root root 2153 Mar 16 2016 /etc/passwd
第一个字符“-”代表文件的类型,文件类型分类及字符如下
– 普通文件
d 目录
b 块设备
l 链接文件
c 字符设备 /dev/zero
紧接着后面的9个字符,每三个为一组,分别代表user(用户),group(属组),other(其它用户和组)这三个对文件的访问权限,权限有读,写,执行分别对应r(read),w(write),x(exec)
-rw-r–r–. 1 root root 2153 Mar 16 2016 /etc/passwd
第十一个字符为“.”【一个点】,这个涉及到SELINUX是否有禁用,如果没有启用SELINUX,将没有这个点
紧接着的数字1,为文件硬链接数,后面的章节会提及,这里暂不解释
第一个root为user(用户)表示文件的拥有者,可以看到root用户对文件/etc/passwd有读写的权限(rw-)
第二个root为group(属组)表示文件在root组中的权限为只读(r–)
对于Other,即除了root用户和root组,其它的我们称之为other,可以看到权限为只读(r–)
[root@foundation0 ~]# whatis chmod
chmod (1) – change file mode bits
chmod (1p) – change the file modes
chmod (2) – change permissions of a file
chmod (3p) – change mode of a file
eg:
我们拷贝文件passwd进行实验,如下,
参数解析:
u代表user;g代表group;o代表other
a代表所有all
+代表增加权限;- 代表删除权限;= 代表重新分配权限
如上图,可以看到所有的用户拥有所有的权限,我们也可以分开进行权限的更改,如,chmod o-x passwd表示对other删除执行的权限
使用参数a可以同时修改u,g,o的权限,如下,
[root@desktop0 ~]# chmod a=r passwd 将文件的权限设置为全部只读
[root@desktop0 ~]# ll passwd
-r–r–r–. 1 root root 2178 Mar 14 20:33 passwd
[root@foundation0 ~]# whatis chown
chown (1) – change file owner and group
chown (1p) – change the file ownership
chown (2) – change ownership of a file
chown (3p) – change owner and group of a file
[root@foundation0 ~]# whatis chgrp
chgrp (1) – change group ownership
chgrp (1p) – change the file group ownership
eg:
如下图的操作,修改文件的拥有者为student,再修改文件的属组为student,使用chown这个命令可以同时修改文件的拥有者和属组,也可以用于修改属组(只要在冒号前面加个空格即可)
上面讲的都是针对文件修改权限,对于这三个命令chown chgrp chmod,如果要对目录进行权限的修改,可以加选项-R,即–recursive(递归)
演试实验如下:
1.创建目录public,使用参数-d查看目录public的权限
[root@desktop0 ~]# mkdir /public
[root@desktop0 ~]# ll -d /public/
drwxr-xr-x. 2 root root 6 Mar 14 20:43 /public/
2.创建三个用户,分别为ldapuser1 ldapuser2 ldapuser3,可以看到对于public为other的权限,只有读和执行的权限
3.创建组sysgroup
[root@desktop0 ~]# groupadd sysgroup
4.将目录的属组修改为sysgroup
[root@desktop0 ~]# chown :sysgroup /public/
[root@desktop0 ~]# ll -d /public/
drwxr-xr-x. 2 root sysgroup 6 Mar 14 20:43 /public/
5.将ldapuser3加到组sysgroup中,再为目录public的other加写的权限o+w
[root@desktop0 ~]# usermod -G sysgroup ldapuser3
[root@desktop0 ~]# chmod o+w /public/
6.最后的目录public的权限如下
[root@desktop0 ~]# ll -d /public/
drwxr-xrwx. 2 root sysgroup 6 Mar 14 20:43 /public/
此时,以下三个用户对于目录public有什么权限,如下
ldapuser1——rwx
ldapuser2——rwx
ldapuser3——rx
总结权限优先顺序规则如下:
如果UID匹配,就应用用户(user)权限,否则,如果GID匹配,就应用组群(group)权限
如果都不匹配,就应用其它(other)权限
前面讲的是,使用字母的方式(u g o)【user group other】
接下来说以下使用数字的方式如何修改权限
读,写,执行对应的数字如下,
Read(4)
Write(2)
Execute(1)
eg:
chmod 644 passwd 执行该命令后,passwd文件的权限为何,如下
User rw-
Group r–
Other r–
注意:基本权限对root用户不生效,可以将权限设置为—,即什么权限都没有,对于普通用户将看不到该文件,对于root用户失效
对于文件的权限一般为读写,普通文件的执行权限可有可无(脚本文件则需要执行权限)
对于目录的权限一般为读和执行,最重要的权限是执行权限,如果没有执行权限,用户将无法执行cd命令进入到该目录,如 cd /public
如下图,将目录public的权限全部去掉,root还是可以进入到该目录,而其他的用户student则没有权限进入
因此,可见root用户的权限太大了,平时维护工作中,尽量少用该用户,以免误操作
特殊权限有如下三种
setuid=suid(user)
针对文件,必须是应用程序,且有x权限,以文件的拥有者来决定
setgid=sgid (group)
针对文件,必须是应用程序,且有x权限,以组决定
针对目录,必须对目录wx权限,内部新创建的文件和目录有相同的组
sticky bit (other)
针对目录,且他人必须有wx权限,只有root,目录拥有者才能删除
setuid说明如下,
查看文件/etc/shadow的权限为———,表示只有root用户能进行修改,而命令passwd在修改用户密码时,就是修改shadow文件,如下,如果切换到到普通用户student,其没有权限修改文件shadow,为什么可以自行修改密码passwd student?
[root@desktop0 ~]# ll /etc/shadow
———-. 1 root root 1450 Mar 14 20:44 /etc/shadow
[root@desktop0 ~]# su – student
我们通过查看文件/usr/bin/passwd文件的权限,发现user的权限为rws,s这个权限就是特殊权限,即setuid,该权限不管是谁执行,均以文件的拥有者来决定,所以当用户student执行命令passwd student修改密码时,其实是以root用户的身份在执行命令,所以才有权限修改文件/etc/shadow。如下,
[root@desktop0 ~]# ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 27832 Jan 30 2014 /usr/bin/passwd
[root@desktop0 ~]#chmod u-s /usr/bin/passwd
如果我们执行上面的命令,将s权限去掉,那么其他用户将无法自行修改密码
这里就涉及到文件的安全,我们知道,在Linux中,有一个为vi或vim的编辑器,如果我们为该命令添加s,那任何用户都可以去修改Linux中的任何文件,这就很危险了。setuid主要是为了保护文件,通过应用程序去修改文件,不是所有的命令都可添加s的权限,如vim
setgid举例说明如下,
如下图的实验操作,可以看出,通过为目录public的组加s的命令时,在其他的用户下创建文件或子目录,其属组都会继承上一级目录的属组,这个在文件服务器中的权限管理中使用较多
sticky bit 举例说明如下,
在上面的例子中,我们发现其他的用户进入到目录public可以删除用户student创建的文件,此时,只需要执行如下命令即可防止文件被其他普通用户删除chmod o+t /public/,只有这个目录的拥有者和root用户可以删除,这个在文件服务器的使用中,也较多
对于root用户和普通用户创建文件或目录,默认的权限是怎么样,具体如下,
1) 在root用户下面创建文件和目录的默认权限分别为644和755
2) 在普通用户下面创建文件和目录的默认权限分别为664和775
之所以会出现上面的区别,主要跟umask有关,如下
root用户的umask为0022,普通用户的umask为0002
四位数中第一位代表的是特殊权限,后三位代表的时基本权限
对于文件,可以没有执行权限,满权限为666;对于目录,满权限为777
(1)[root@desktop0 ~]# umask
0022
root用户下,默认的文件权限为666-022=644,默认的目录权限为777-022=755
(2)[root@desktop0 ~]# su – student
[student@desktop0 ~]$ umask 666-002 777-002
0002
普通用户下,默认的文件权限为666-002=664,默认的目录权限为777-002=775
由此可见,umask是可以更改,位于文件/etc/profile,如果修改自己的,则为~.bash_profile
对于基本权限,不能对于每一个用户设定独立权限,只能通过高级权限ACL Access Control List,可以对每个用户设置访问控制的规则。(对于高级权限,后面会找时间进行讲解说明)
本节到此结束……
以上就是关于gg修改器root权限管理_如何给root权限给GG修改器的全部内容,希望对大家有帮助。