linux中4710是什么权限

linux中4710是什么权限,第1张

在linux下可以读取的权限r=4,可以写入的权限r=2,可以执行的权限x=1,要是3个权限斗没有就是0

4710中的7 =4+2=1,标示对于文件所有者而言,该文件可读,可写,可执行。

1 标示和文件所有者处于同一个组里面的其他成员,该文件仅有执行权限。

0,表示了即不是文件所有者本身,有和文件所有者不在同一个组的其他人,什么权限都没有。

对于linux的用户和组的概念,可以这么理解:先依据某种标准来分组。符合标准的为一组,其他的不和标准的为另外一组。然后,再吧符合标准的那个组里,分成两部分,一个是该组之中的某个具体的成员,还有就是该组中的其他成员。

举个例子:全世界的人都可以根据国籍区分为具有某国国籍的人士,和不具有某国国籍的人士(这里我们不考虑无国籍和双重国籍)。按 中国人的立场,世界上的人分成两组:中国人、外国人,要是美国人来分,就是美国人和外国人。

在中国人这个组里面再分某个具体的个人,和其他的中国人。

最前面的4是suid权限

文件在被设置了s权限后将以root身份执行。

对于linux来说,最典型的实例就是修改用户密码。

[test@localhost ~]$ ls `which passwd` -al

-rwsr-xr-x. 1 root root 30768 11月 24 2015 /usr/bin/passwd

修改密码使用的passwd在/usr/bin目录下。从安全的角度来说,把登录系统的密码收归到root手中是比较安全的。否则,如果无论谁都能改密码,那是不安全的万一有人能随意的设置修改自己的密码,那很难说他会不会在某一天就登录linux了,登录上去后,就会做各种事情,万一他 *** 作时一时疏忽或者别有用心。吧电脑中的重要的数据给改了,或者删除了。就麻烦了。

但是在实际生产中,无论什么事都要等root来,也不现实。就需要其他不是root的人来登录系统。登录系统要有密码,而且某些企业为了安全,还要求定期的更换密码。把设置和修改所有人的密码的权限全部交给root也不合适。因为root也是人,也有疏忽大意的时候。这样一来就有矛盾了,一方是安全的需求,一方是实际使用要求方便。一般的用户要求能自己设置和更改自己的密码,而不必等待root。这矛盾怎么解决?就用SUID。

回头看看刚刚输入的那条指令。[test@localhost ~]$ 这个提示符说明了什么?中括号[]里面test表明当前登录系统的用户是一般用户test。运行后发现。/usr/bin/passwd这个文件粟裕root用户root组。test只是个一般用户,不是root照道理来说,是没有修改密码资格的。但是,如果每次需要改个密码,都要找root,不现实,太麻烦。所以,把root用户的x执行权限,改成了小s。这样一来,即使 test用户不是root,也能改自己的密码了。或者说,也有了使用passwd命令改动自己的密码的权限了。

这个s就是suid。对应的数值是4

我来为你解释吧!

unix系统里,当用户登录时会为每个用户创建一个shell进程,提供交互功能,如果你使用的是bash,那么这个shell进程就是bash,使用的ksh,这个进程就是ksh,其他shell也是一样。

而对于进程而言,在它的进程PCB(进程控制块)里,有实际用户ID和有效用户ID这两个值,所谓实际用户ID是指该进程是以什么身份创建的,比如:我当前是root用户,我创建的进程的实际用户ID就是root的ID,一般为0。而有效用户ID是指对该进程当前拥有使用权限的用户的ID,比如我有一辆车,我把它组出去了,这个车的拥有者是我,但是使用权限却不是我的。

一般情况下实际用户ID和有效用户ID都是相同的,su命令就是拥有这样的功能,让一个进程可以以命令拥有者的权限运行,即可以使进程的实际用户ID和有效用户ID不相同。你可以用ls -l去查看su这个命令,在它的拥有者的x权限位上写的一定是个s(小s),passwd命令也是一样,他们拥有相同的功能。这个s位的意思是 执行该命令的用户可以以该命令的拥有者权限来执行,如果你把这个s位取消了,也就只有su的拥有者可以su了。

现在来进一步解释下吧,希望你能看的懂。

当我们以root执行su时,su命令会以当前shell进程为父进程来创建一个新的shell进程,这个shell进程是提供给我们所要su到的那个用户使用的,而root的shell进程仍然存在,反过来也是一样的,这就是你所问的问题的原因,因为之前那个用户的shell进程还没关闭,你可以使用exit退出一下,可以看到,并不是退出登录了,而是回到之前的那个用户去了。因为它们是父子进程的关系,子进程的结束当然 不会影响到父进程的执行了。但是我们如果强行杀死父进程,那就直接退出了。

其实很多人并不了解,whoami和who am i的区别,他们的作用是不同的。

who am i 显示当前shell进程的实际用户ID。

whomai 显示当前shell进程的有效用户ID。

很多时候,这两个输出是一样的,以至于我们以为这两个命令的作用是相同的。

实例:root@yunhw-Aspire-4750G:~# who am i

root pts/02011-12-10 13:13 (:0.0)

root@yunhw-Aspire-4750G:~# whoami

root

root@yunhw-Aspire-4750G:~#ps -ef

root 2939 2935 0 13:18 pts/000:00:00 bash

root@yunhw-Aspire-4750G:~# su - yunhw

yunhw@yunhw-Aspire-4750G:~$ who am i

root pts/02011-12-10 13:13 (:0.0)

yunhw@yunhw-Aspire-4750G:~$ whoami

yunhw

root@yunhw-Aspire-4750G:~#ps -ef

root 2939 2935 0 13:18 pts/000:00:00 bash

yunhw 2958 2939 0 13:19 pts/000:00:00 su - yunhw

yunhw 2966 2958 7 13:19 pts/000:00:00 -su

root@yunhw-Aspire-4750G:~#sudo kill -9 2939

这条命令一执行,也就完全退出了。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/8510632.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-17
下一篇 2023-04-17

发表评论

登录后才能评论

评论列表(0条)

保存