linux文件权限表示及用户权限管理

  UNIX/Linux下关于文件权限的表示和查看想必是最熟悉不过的,然而你是否真正了解用户文件的权限标识和用户的权限呢?

  实际上文件权限标识不仅仅只有U, G, O

11 10 9 8 7 6 5 4 3 2 1 0
SUID GUID SBIT R W X(S/s) R W X(S/s) R W X(S/s)

  如上所示,linux中除了常见的读(r)、写(w)、执行(x)权限以外,还有3个特殊的权限,分别是setuid、setgid和stick bit

1、setuid、setgid

  先看个实例,查看你的/usr/bin/passwd 与/etc/passwd文件的权限

[[email protected] ~]# ls -l /usr/bin/passwd /etc/passwd
-rw-r--r-- 1 root root 1549 08-19 13:54 /etc/passwd
-rwsr-xr-x 1 root root 22984 2007-01-07 /usr/bin/passwd

  众所周知,/etc/passwd文件存放的各个用户的账号与密码信息,/usr/bin/passwd是执行修改和查看此文件的程序,但从权限上看,/etc/passwd仅有root权限的写(w)权,可实际上每个用户都可以通过/usr/bin/passwd命令去修改这个文件,于是这里就涉及了linux里的特殊权限setuid,正如-rwsr-xr-x中的s

  setuid就是:让普通用户拥有可以执行“只有root权限才能执行”的特殊权限,

  setgid同理指”组“

  作为普通用户是没有权限修改/etc/passwd文件的,但给/usr/bin/passwd以setuid权限后,普通用户就可以通过执行passwd命令,临时的拥有root权限,去修改/etc/passwd文件了

2、stick bit (粘贴位)

  再看个实例,查看你的/tmp目录的权限

[[email protected] ~]# ls -dl /tmp
drwxrwxrwt 6 root root 4096 08-22 11:37 /tmp

  tmp目录是所有用户共有的临时文件夹,所有用户都拥有读写权限,这就必然出现一个问题,A用户在/tmp里创建了文件a.file,此时B用户看了不爽,在/tmp里把它给删了(因为拥有读写权限),那肯定是不行的。实际上是不会发生这种情况,因为有特殊权限stick bit(粘贴位)权限,正如drwxrwxrwt中的最后一个t

  stick bit (粘贴位)就是:除非目录的属主和root用户有权限删除它,除此之外其它用户不能删除和修改这个目录。

  也就是说,在/tmp目录中,只有文件的拥有者和root才能对其进行修改和删除,其他用户则不行,避免了上面所说的问题产生。用途一般是把一个文件夹的的权限都打开,然后来共享文件,象/tmp目录一样。

3、如何设置以上特殊权限
  setuid:chmod u+s xxx      chmod 4***  xxx

  setgid: chmod g+s xxx      chmod 2***  xxx

  stick bit : chmod o+t xxx          chmod 1***  xxx

  或者使用八进制方式,在原先的数字前加一个数字,三个权限所代表的进制数与一般权限的方式类似,如下:

  suid   guid   stick bit

  1     1     1

  最后,在一些文件设置了特殊权限后,字母不是小写的s或者t,而是大写的S和T,那代表此文件的特殊权限没有生效,是因为你尚未给它对应用户的x权限

时间: 2024-09-29 22:07:51

linux文件权限表示及用户权限管理的相关文章

Linux文件的三种特殊权限SUID、SGID、STICKY

三种特殊的文件系统格式: 1>. SUID 作用对象: 只能作用在二进制的可执行文件,也就是说它本身运行起来就是一个进程. 效果: 没有suid权限的二进制文件, 能否执行取决于当前用户有无对该文件执行权限, 执行之后,进程的拥有者也是当前系统用户. 被服务suid后, 当文件被运行后, 进程的拥有者不是系统当前的用户, 而是文件的所属者. 命令: chmod u+s 文件 2>. SGID SGID权限分为两种情况, 分别为作用在文件上, 作用在目录上. a>. 作用在文件上, 一旦一

《Linux菜鸟入门2》用户权限列表

第二单元   用户权限列表 1.权限列表的定义 指定特殊用户对某个文件有特殊权限的记录表格 2.权限列表的识别 -rw-rw-r--+ 1 root root 12 Oct 29 21:20 file      权限位有加号权限列表开启 -rw-r--r--. 1 root root  0 Oct 29 21:22 westos    权限位有点号权限列表未开启 3.权限列表的查看 getfaclfile file: file          文件名称 owner: root         

Linux文件和目录的特殊权限

特殊权限: SUID: 用户在运行某程序时,相应进程的属主是程序文件自身的属主,而不是启动进程用户的属主. #chmod u+|-s FILE 若FILE原来有执行权限,则显示为s,否则为S. SGID: 用户在运行某程序时,相应进程的属组是程序文件自身的属组,而不是启动进程用户的属组. #chmod g+|-s FILE 若FILE原来有执行权限,则显示为s,否则为S. Sticky(冒险位): 在一个公共目录,每个用户都能创建文件,删除自己的文件,但不能删除其他用户的文件. #chmod o

Linux上给数据库指定用户权限

要给数据库指定用户只能操作这一个数据库,两句话就行了. grant all on 对应的数据库.* to '要创建的用户名'@'ip' identified by '要设的密码' with grant option;  对应的数据库.* :指的是这个数据库的增删改查等操作都可以: 'ip': 如果你想让任何一个地方的IP都能连接的话就给'%'就好了,要限定的话就给相应的IP在那里就行了 然后刷新下权限 flush privileges; 如果不是太确定,就先自己连接测试下^_^

Linux文件与目录的默认权限与隐藏权限 - umask, chattr, lsattr, SUID, SGID, SBIT, file

文件默认权限:umask [[email protected] ~]# umask 0022 <==与一般权限有关的是后面三个数字! [[email protected] ~]# umask -S u=rwx,g=rx,o=rx 默认的情况如下: 若使用者创建为『文件』则默认『没有可运行( x )权限』,亦即只有 rw 这两个项目,也就是最大为 666 分,默认权限如下: -rw-rw-rw- 若使用者创建为『目录』,则由於 x 与是否可以进入此目录有关,因此默认为所有权限均开放,亦即为 777

Linux文件权限管理

一.设置文件所属的用户以及所属的组(chown,chgrp) chgrp用来更改文件的组拥有者,其一般格式为: chgrp [option] group file (1)把文件test的组拥有者改为zfs: chgrp zfs test (2)把test及其子目录下的所有文件的组拥有者改为zfs: chgrp -R zfs test chown用来更改文件所有者与组拥有者,其一般格式为: chown [option] owner[:group] file (1)将test及其子目录下的所有文件的

文件权限管理 -- u+s、g+s、o+t/三种用户权限

https://blog.csdn.net/linting0909/article/details/82902196 liunx中有文件有三种权限,用户权限,群组权限,其他用户权限,分别为r(可写)w(可读)x(可执行)rwxrwx ,还有s/t特殊权限,可分为: rwsrwxrwx 用户权限出现s,替代了xrwxrwsrwx 群组权限出现s,替代了xrwxrwxrwt 其他权限出现t,替代了xy u+s 用户权限:执行命令chmod u+s, 就是针对某个程序任何用户都有读写这个程序的权限,可

linux文件组、权限等

文件所有者.所在组合其他组  --改变用户所在组    组和在oa系统中的组差不多,用户代表的好像是个体,组有点像角色的意思.不过权限的话并不是个体从组中获得,组仅仅是一个机制,进行部分文件控制与共享,管理权限的机制,有点类似一个容器.            如何在linux中添加组    groupadd policeman       在添加用户时,指定将某个用户添加到哪个组中    useradd -g 组名 用户名 root权限改变某个用户所在的组:    usermod -g 组名 用

Linux &nbsp; 用户组和用户权限的使用2

touch /etc/nologin echo system is maintanining >> /etc/nologin 可以控制非管理员root之外的所有普通用户不能登陆 7版本里面 cd /run/ touch /run/nologin 效果一样让普通用户不能登陆 ehho weihu > /run/nologin useradd -ou0 root2 通过强制该成UID=0 生成管理员用户 cp -r /etc/skel/. /home/zczx cp -r /etc/skl/